jjj
네트워크 정리 본문
컴퓨터와 컴퓨터가 그물망처럼 통신 매체로 연결되어서 데이터를 운반하는 것
큰 데이터를 작게 나누어서 송신
패킷이 회선을 점유하는 시간이 짧아짐
복수의 컴퓨터가 회선을 공유할 수 있음
리소스를 공유
LAN과 WAN
LAN (Local Area Network)
하나의 라우터로 연결된 네트워크
WAN (Wide Area Network)
떨어져있는 LAN끼리 통신사업자의 통신 케이블을 빌려서 연결한 네트워크
인터넷은 WAN의 대표
OSI 참조모델
계층이 각각 독립되어 있고, 어떤 계층의 프로토콜 변경이 다른 계층에 영향을 끼치지 않음
(HTTP 통신을 해도 전송 계층이 TCP 혹은 UDP일 수 있음)
캡슐화
데이터와 데이터를 보내기 위해 필요한 것들( 수신, 송신 주소 같은 것)이 통합된 상태를 프로토콜 데이터 유닛이라고 한다.
7개 계층을 수행하여 캡슐화 되어 데이터 통신이 가능해짐
1계층 : 물리 계층
케이블이 연결되어 있느 ㄴ기기에 신호를 전달하는 것이 1계층의 역할
데이터(비트)를 신호로 변환
신호를 데이터로 변환
인터페이스
파이프인 케이블과 거기로 보내는 신호 등의 규칙에 따라 실제로 상대에게 데이터를 전달하는 역할
2계층 : 데이터 링크 계층
신호가 닿는 범위에서의 데이터 전송에 관한 규정 ( 세그먼트 범위에서의 데이터 전송)
세크먼트 범위에서 어떻게 데이터를 송수신 할지
세그먼트 범위
컴퓨터와 라우터, 라우터와 라우터 사이
데이터 전송 방법 3종류
유니캐스트 : 1대1 데이터 통신
브로드캐스트 : 1대 전체, 모두에게 메시지를 보내는 데이터 통신
멀티캐스트 : 1대 다, 지정된 여러개의 기기로 메시지를 모배는 데이터 통신
각각의 기기는 유니캐스트 주소를 적어도 한개 가지고 있다.
라우터는 인터페이스마다 유니캐스트 주소를 가지고 있음
이더넷
이더넷에서 사용하는 주소는 MAC주소이다.
MAC주소는 인터페이스에 지정된 고정 주소이다.
따라서 인터페이스를 교환하면 MAC주소도 변한다.
MAC 주소는 48 비트이고, 4비트마다 16진수로 표현한다.
이더넷 프레임
이더넷 헤더와 이더넷 트레일러를 데이터그램에 붙여서 이더넷 프레임으로 캡슐화한다.
수신처 MAC 주소, 송신처 MAC 주소 (이더넷 헤더), 타입, 페이로드, 트레일러
스위치 (2계층 스위치, 이더넷 스위치)
수신한 프레임을 따로따로 보낼 수 있도록 처리해서 충돌을 막는 것
MAC 주소 필터링과 버퍼링을 통해
스위치는 포트에 연결되어 있는 컴퓨터의 MAC 주소를 기억 (어드레스 테이블)
프레임의 수신처 MAC주소를 보고 그 포트에만 프레임을 송신
다른 수신처로 보내는 것을 막을 수 있음
같은 수신처는 버퍼에 일시적으로 저장해놓고 보낸다.
전이중 이더넷
네트워크내의 컴퓨터끼리는 2계층에 의해 연결되어 있다.
3계층 : 네트워크 계층
세그먼트간에서의 데이터 송수신
즉, 라우터와 라우터사이의 데이터를 송수신하는 것
라우터를 넘어서는 브로드캐스트는 송신되지 않음
네트워크간에서의 데이터 송수신을 인터넷작업이라고 한다.
즉, 3계층은 인터넷 작업을 수행
2계층에서는 MAC주소라는 물리주소를 사용
3계층에서는 IP주소라는 논리주소를 사용
즉, 2개의 주소를 사용
라우팅: 수신처까지 어떤 경로로 갈지 결정 (경로 선택)
인터넷 프로토콜 (IP)
IP 헤더
버전, 헤더 길이, 서브시 타입, 데이터 길이, ID, 플래그, 플로그먼트 오프셋, TTL, 프로토콜 (상위 프로토콜), 헤더 체크섬, 송신처 IP주소, 수신처 IP주소, 옵션
페이로드
상위 4계층 PDU 등이 들어간다
논리주소
네트워크 관리자에 의해 네트워크에 접속할 때마다 붙는 것
소속된 네트워크가 변경되면 논리주소도 변경
논리주소도 유니캐스트, 멀티캐스트, 브로드캐스트의 3종류 주소가 있음
IP주소
32비트로 네트워크 번호의 컴퓨터 번호를 나타냄
IP주소는 네트워크 번호, 호스트 번호 (컴퓨터 번호) 로 구성되어 있고
호스트 번호가 전부 0 : 소속된 네트워크 자체를 표시하는 주소 ( 네트워크 주소)
호스트 번호가 전부 1: 소속된 호스트 모두를 표시하는 주소 (브로드 캐스트 주소)
서브네트워크
네트워크를 여러개의 작은 서브네트워크로 분할
서브넷마스크
서브넷마스크 비트열을 IP주소와 동시 표기
서브넷 마스크는 IP 주소 중에 어디까지가 서브넷 번호인지를 나타냄
네트워크 번호, 서브넷 번호의 비트를 1, 호스트 번호를 0
서브넷마스크의 비트가 1인 부분이 네트워크 번호
이더넷을 사용하여 IP 데이터 그램을 송수신하기 위해서는 4개의 주소가 필요
수신처 MAC 주소
ARP
송신처 MAC 주소
인터페이스에 고정된 주소
수신처 IP 주소
DNS
송신처 IP 주소
수동 IP
DHCP
DHCP ( Dynamic Host Configuration Protocol)
IP 주소가 자동으로 컴퓨터에 할당되는 방법
할당할 IP주소를 관리하고, 실제로 할당 작업을 수행하는 서버하고 할당 받는 클라이언트로 이루어진다.
DHCP 서버 소프트웨어, 클라이언트 소프트웨어
DHCP메시지
이더넷 헤더 / IP헤더/ UDP헤더 / DHCP메시지
동작 방법
클라이언트는 DHCP DISCOVER 메시지를 브로드캐스트
DISCOVER를 받은 서버는 할당할 IP주소를 풀에서 선택해서 클라이언트에게 브로드 캐스트 (DHCP OFFER)
OFFER를 받은 IP주소가 문제가 없으면 DHCP REQUEST를 서버에 브로드캐스트
REQUEST를 받은 서버는 문제가 없으면 DHCP ACK을 보냄, 그 때 서브넷 마스크등 옵션 설정도 ACK에 넣어서 보냄
ARP (Address Resolution Protocol)
IP주소의 호스트에게 MAC 주소를 알려달라는 프로토콜
ARP요청은 브로드캐스트로 네트워크내의 모든 컴퓨터로 송신
수신처의 MAC주소를 알 수 있음
ARP테이블
ARP테이블에 IP주소에 맞는 MAC주소 저장
300초 동안만 저장
ARP -a로 확인 가능
DNS (Domain Name System)
도메인명과 IP 주소를 대응시킨 시스템
요약
DHCP, ARP,DNS를 사용하여 4개의 주소를 결정한다.
라우팅
MAC 주소는 같은 네트워크내에서의 수신처
IP주소는 수신처의 컴퓨터를 결정
첫 수신 MAC주소는 네트워크 안에서 중계를 해주는 장치 ( 라우터(기본 게이트웨이) MAC 주소)
홉 바이 홉
홉은 라우터를 가리키는 용어
라우터는 해당 논리주소까지 가기위한 경로를 지정 ( 다음 경로만)
라우터는 다음 수신처를 결정하고 이것이 견결되어 경로가 된다.
컴퓨터가 송신하는 규칙
다른 네티워크 수신이면 라우터
동일 네트워크 수신이면 직접 통신
라우터
복수의 인터페이스를 가지고 있으며, 각각 다른 IP주소를 가진다.
복수의 네트워크끼리 연결하는 역할
필터링기능
EX) 실습실의 네트워크에서는 사무실의 네트워크로 데이터 전송을 하지 못하게
라우팅 테이블
수신처 네트워크까지의 거리
다음에 도달하는 라우터
그 라우터에 연결되어 있는 자신의 인터페이스
등등
라우터 동작
라우팅 테이블에서 다음 수신처가 되는 라우터, 송신할 인터페이스를 결정한다.
최장일치의 룰
수신처 IP주소와 가장 일치하는 것을 선택
프리픽스 길이까지 일치한 것 중에서도 가장 프리픽스 길이가 긴 경로를 사용
브로드캐스트 도메인
브로드캐스트가 도달하는 범위
충돌 도메인은 스위치가 구분, 브로드캐스트 도메인은 라우터가 구분
디폴트 게이트웨이
네트워크의 출입구
디폴트 게이트웨이로 데이터를 보내서 다른 네트워크로 전송
즉, 컴퓨터가 다른 네트워크와 통신할 때 최초로 데이터를 보내는 수신처는 디폴트 게이트웨이
컴퓨터는 다른 네트워크에 데이터를 송신할 떄 디폴트 게이트웨이로 ARP를 수행
라우터는 다른 네트워크로의 브로드캐스트를 막음
동작 방법
다른 네트워크에 데이터를 보내는 경우, 호스트는 디폴트 게이트웨이로 ARP를 수행해서 디폴트 게이트웨이의 MAC 주소를 입수
호스트는 수신처 MAC 주소를 디폴트 게이트웨이로, 수신처 IP 주소를 수신처 호스트로 지정해서 패킷을 보냄
수신받은 디폴트 게이트웨이는 라우팅을 하고, 중계 라우터, 송신포트를결정하여 다음에 수신받을 상대(중계 라우터 또는 수신처)에게 ARP를 수행
ARP에 의해 입수한 MAC 주소를 수신처 MAC주소로, 자기자신의 MAC주소를 송시처 MAC주소로 갱신하여 송신 IP주소는 변경되지 않음
컴퓨터는 디폴트 게이트웨이의 IP주소를 미리 설정해 둠
그 설정 방법은 수동이나 DHCP
라우팅 테이블
수신처 네트워크, 중계지점, 메트릭, 수신처의 출구가 기재되어 있음
수신처 네트워크 주소와 라우팅 테이블을 비교해서 경로를 찾음
수신처 네트워크가 없을 경우 데이터그램을 파기함
정적 라우팅과 동적 라우팅
정적 라우팅
수동으로 라우팅 테이블 갱신
해당 경로에 장애가 있어도 처리 불가
동적 라우팅
라우터가 자동으로 정보를 서로 교환해서 경로를 알아내는 방법
모든 경로 중에서 자동으로 최적의 경로를 선택해서 라우팅 테이블을 작성
단점
라우터끼리 정보를 교환해야함 -> 회선 전송 압박
서로 교환한 정보를 가지고 최적의 경로를 계산해야함
모든 라우터가 동일한 정보를 가져야 함 (컨버젼스)
라우팅 프로토콜
동적 라우팅을 실현할 수 있는 프로토콜
근접해 있는 라우터간의 네트워크 정보를 서로 교환하기 위한 규칙
교환한 정보를 근거로 라우팅 테이블을 변경
자율화 시스템 (Autonomous System)
하나의 관리 단체에 의해 관리되는 네트워크 집합체
복수의 네트워크를 통합해서 큰 단위의 라우팅을 수행한다.
메트릭
수신처 네트워크까지 통과하는 라우터 개수
최적의 경로를 결정할 때의 판단 기준
최소 값을 갖는 것을 최적의 경로로 결정
라우팅 테이블에는 최적의 경로만 저장되어 있음
RIP
디스턴스벡터형 라우팅 프로토콜
라우팅 업데이트
라우터가 다른 라우터와 데이터를 교환하는 정보
라우팅 에이블을 그대로 교환함
30초에 1번
6번 수신 받지않으면 그 루우터에는 장애가 발생했다고 간주해서 그 라우터를 사용하는 경로들을 파기함
알고 있는 경로의 정보를 입수한 경우 메트릭으로 판단
ICMP (Internet Control Message Protocol)
인터넷 제어 메시지 프로토콜 (에러 보고 프로토콜)
네트워크 제어, 관리 등을 수행하는 프로토콜
호스트A가 호스트B에 IP 패킷을 송신하고 싶지만, 라우터는 호스트B가 있는 네트워크의 경로를 모른다.
라우터는 수신처에 도달할 수 없다는 것을 나타내는 송신 불능 메시지를 ICMP로 호스트A에게 통지
보통 IP 데이터ㅡ램의 페이로드에는 TCP 세그먼트나 UDP 데이터그램이 들어가지만 이것들 대신에 ICMP 메시지를 넣어서 보낸다.
TTL (Time To Live)
IP 데이터그램의 TTL은 라우터를 경유할 때마다 1만큼씩만 줄어들고, 0이되면 그 데이터 그램이 파기된다.
보통 Linux는 64, Windows는 128개
Echo
ping
걸리는 시간을 측정해서 네트워크 상태를 조사할 수 있다.
Time Exceeded
TTL이 0이 되어 파기되었을 때
traceroute
수신처까지의 경로를 가르쳐주는 소프트웨어
수신처에 도달하기까지 경유하는 라우터를 알려줌
TTL 1,2,3,4 .. 로 패킷을 보냄
TTL이 0이 되면 송신 IP에 Time Exceeded를 송신하기 때문
4계층 : 전송 계층
1계층 ~ 3계층
수신처 컴퓨터에 데이터를 보내는 것
데이터를 운반하는 직접적인 동작을 하지 않음
전달할, 전달된 데이터에 대해 필요한 처리를 한다
TCP와 UDP가 있다.
TCP
TCP 헤더
송신처 포트 번호 ( 16비트) / 수신처 포트번호(16비트)
시퀀스 번호(32비트)
확인응답 번호(32비트)
데이터오프셋(4비트) / 예약(6비트) / 플래그(6비트) / 윈도우(16비트)
체크섬(16비트) / 긴급포인터(16비트)
TCP의 커넥션
애플리케이션간의 송수신을 하는 데이터의 길
라우팅에서의 경로와는 다른개념, 가상 통신로임
3계층까지는 상대가 수신 준비가 되어 존재하는지 모르는 상태로 보냄
즉, 에러처리를 하지않고 파기함
데이터 전송을 시작하기 전에 미리 확인을 주고받아 두는 것, 상대에게 확실하게 전달하는 것을 확인
쓰리웨이 핸드 쉐이킹
세그먼트 분할
TCP는 애플리케이션으로부터 받은 데이터를 세그먼트로 캡슐화
이 때, 한 개의 데이터를 MSS(Max Segment Size)로 분할
평균적인 인터넷의 경우, 최대 데이터 크기는 1500 옥텟, 여기서 IP 헤더(20옥텟), TCP헤더(20옥텟)을 뺀 1460 옥텟
한 개의 데이터가 복수의 세그먼트가 된다.
각각의 세그먼트에 번호를 부여한다 -> 시퀀스 번호
MSS가 1000이라면 1, 1001, 2001 ...
에러 복구
시퀀스 번호는 보내는 데이터의 앞 부분에 있는 옥텟 번호이고, 확인응답 번호는 다음에 받고 싶은 데이터의 선두 옥텟 번호
RTT내에 오지 않으면 재전송
RTT (Round Trip Time)
지금까지 보낸 데이터에 대해 확인 응답이 돌아오기까지 걸린 시간으로 계산
회선속도에 따라 시간이 달라져야 한다.
초기값은 따로 지정
윈도우 제어
세그먼트송신 -> 확인 응답의 흐름은 너무 비효율적임
복수의 세그먼트 전송 -> 확인응답이 더 효율적임
연속해서 세그먼트를 보냄으로써 효율성이 좋은 전송을 수행
정확, 확실하게 또 효율적으로 보내기 위해 TCP는 흐름제어의 하나인 윈도우 제어를 한다.
수신한 데이터를 일시적으로 보관하기 위한 버퍼가 있음
버퍼사이즈를 전함으로써 송신할 수 있는 데이터 양을 알려준다
윈도우 사이즈라고 함
윈도우 사이즈만큼의 데이터를 한번에 보내도 오버플로 하지 않는단느 것을 알 수 있음
윈도우 사이즈 : 확인응답을 기다리지 않고 보낼 수 있는 데이터 양
애플리케이션간 통신
포트번호
포트번호를 사용해서 어느 애플리케이션으로부터 송신, 수신 되었는지 결정
IP주소와 MAC주소만으로는 애플리케이션을 식별할 수 없다
포트는 16비트, 즉 65,536개가 있다
송신처의 포트번호는 49152 ~ 65535번 까지의 번호가 할당
TCP의 단점
확인응답을 기다려야함 -> 일정시간 기다려야함
UDP
UDP는 TCP의 시퀀스 번호, ACK번호, 윈도우 사이즈, 제어비트도 없다.
UDP헤더
송신처 포트 번호(16비트), 페이로드 사이즈(16비트)
아무것도 하지 않는 프로토콜
정확, 확실 하지 않음
따라서 고속
고속성이나 실시간 송수신이 필요한 애플리케이션에 많이 쓰임
인터넷 전화, 스트리밍..
브로드캐스트를 할 때 사용
NAT (Network Address Translation)
네트워크 주소 변환
내부 네트워크에는 사설 IP주소를 할당
TCP/IP 통신을 하기위해
IP 주소가 필요하기 때문
NAPT (Network Address Port Translation)
하나의 글로벌 IP주소로 복수의 컴퓨터를 접속 가능하게 해준다.
포트 번호도 변환함으로써 복수의 컴퓨터와 동시 접속이 가능해진다.
IP주소를 변환할 때 포트 번호도 변환, 그 대응을 NAT 테이블에 기재
192.168.0.1:1024 <-> 200.100.10.5:6001
예시
송신처 IP 주소 송신처 포트 수신처 IP 주소 수신처 포트 192.168.0.1 1024 1.0.0.1 80 송신처 IP 주소 송신처 포트 수신처 IP 주소 수신처 포트 200.100.10.5 ( 글로벌 IP ) 6001 1.0.0.1 80 응답의 경우, IP 주소와 포트 번호를 NAT 테이블에서 확인하고, IP 주소와 포트 번호를 변환
보안 측면의 효과도 있음
FTP에 단점
FTP에서도 물론 IP 헤더에 수신처와 송신처 IP 주소, TCP 헤더에 수신처와 송신처의 포트 번호가 사용되지만, 데이터 부분에도 송신처의 IP주소와 포트 번호가 기술된다.
FTP는 데이터에 있는 IP주소와 포트번호를 사용하여 통신, 사설IP로 되어있으면 사설 IP 주소에 보내게 된다.
NAPT가 개별적으로 대응한다.
5계층 : 세션 계층
애플리케이션 간의 의논의 관리
FTP는 2개의 커넥션을 사용해서 파일을 주고받음
제어 커넥션, 데이터 전송 커넥션
다이얼로그 제어
대화가 성립하도록 제어
말할 차례, 들을 차례같은 것들을 정해서 대화함
6계층 : 표현 계층
애플리케이션 목적에 맞는 데이터 형식
문자,영상, 동영상, 음성
문자
ASCII
6계층에서 변환을 해서 하드웨어랑 OS에 따른 차이를 없앤 데이터 교환
ASCII와 EBCDIC를 사용하는 컴퓨터가 통신 할 수 있게 해준다.
압축이나 암호화를 수행, 데이터 형식의 전송을 위한 변환을 한다.
네트워크 서비스를 제공하는 계층
HTTP, FTP, SMTP 등을 결정
목적에 따른 프로토콜이 준비되어 있음