Network Layer Services
네트워크 계층에서의 전송 메커니즘
- 데이터 패킷이 Internet상에서 전송될 때, Source, Router, Destination의 L3에서의 Service는 아래와 같다.
1. Layer-3 Service in Source Host (전송 노드의 L3에서 처리하는 과정)
- Upper Layer(L4)로 부터 Header를 구성할 Parameters*와 Data를 전송받는다.
- Packetize : Paramters와 데이터를 통해 IP-Datagram을 만든다.
- Find NHA : 라우팅 테이블에서 DA와 매칭되는 Interface주소와 NHA를 반환받아서 패킷의 헤더에 추가한다.
(그림의 라우팅 테이블에서 인터페이스의 Attribute는 생략되었다.)
- Find MAC : 논리 주소인 NHA를 ARP 프로토콜을 통해 물리 주소인 MAC으로 변환하여 패킷의 헤더에 추가한다.
- Fragment : MTU 테이블**을 참고하여 패킷을 자른다. 이 때, 조각난 패킷들에도 헤더가 붙어야 할 것이다.
- 노드에 연결된 개수만큼의 L2가 존재하므로, 잘린 패킷은 인터페이스 주소에 맞는 L2로 내려가게 된다.
* Parameters
- Len : 데이터의 길이
- DA : Destination Address; 목적지 노드의 논리 주소(IP 주소)
- PI : Protocol ID; L4의 프로토콜이 TCP인지 UDP인지를 구분
- ST : Service Type; 전송 서비스의 종류를 구분(속도를 중시하는지, 무결성을 중시하는지와 같은)
** MTU(MAX Transfer Unit) Table
- 모든 링크(물리 네트워크)마다 다룰 수 있는 패킷의 크기에 한계가 존재하는데, MTU는 그 한곗값을 의미한다.
- MTU 테이블을 통해 각 링크의 MTU를 파악해서 전송 가능한 크기로 패킷을 자를 수 있게 된다.
2. Layer-3 Service in Router (라우터의 L3에서 처리하는 과정)
- 도착한 Frame의 MAC주소와 현재 노드(라우터) 인터페이스의 MAC주소의 일치 여부를 확인한다.
- 일치한다면, Frame의 H2헤더를 떨어뜨리고, 일치하지 않는다면 Frame을 폐기(Discard datagram)한다.
- Vaild datagram? : 도착한 IP-Datagram에 오류 유무를 검사한다.
(이 때, 라우터의 처리 속도*를 위해 패킷 전체가 아닌, 헤더만 검사하게 된다.)
(유효하지 않은 패킷의 경우, ICMP(L3의 보조 프로토콜)를 통해 Source에게 전송 실패 사실을 알린다.)
- Find NHA : IP-Datagram 헤더의 목적지 논리 주소를 통해 다음 노드로의 인터페이스 주소와 NHA를 라우팅 테이블을 참고하여 알아낸다.
- Find MAC : 논리 주소인 NHA를 ARP 프로토콜을 통해 물리 주소인 MAC으로 변환하여 패킷의 헤더에 추가한다.
- Fragment : MTU 테이블을 참고하여 패킷을 자른다. 이 때, 조각난 패킷들에도 헤더가 붙어야 할 것이다.
- 노드에 연결된 개수만큼의 L2가 존재하므로, 잘린 패킷은 인터페이스 주소에 맞는 L2로 내려가게 된다.
* Router의 처리 속도
- 라우터는 처리 속도의 지표로 pps(Packet per Second)를 사용한다.
- 각각의 패킷에 제공되는 서비스가 많아질수록 pps가 증가하게 되므로, 데이터는 검사하지 않는다.
- 중간 과정에서 검사가 생략된, 패킷의 데이터 부분은 목적지 노드에서 검사하게 된다.
3. Layer-3 Service in Destination Host (목적지 노드의 L3에서 처리하는 과정)
- 도착한 Frame의 헤더를 떼어낸다.
- 도착한 IP-Datagram이 유효한지를 검사한다. (유효하지 않다면 패킷을 폐기한다.(Discard datagram))
- Depacketize : IP-Datagram의 헤더를 떼어낸다.
- 단편화 된 패킷의 다른 부분들이 다 도착할 때 까지 Reassembly Time이 만료되기 전까지 저장된다.
- 단편화 된 패킷의 다른 부분들이 모두 도착했다면, Reassemble 과정을 진행한다.
(다 도착하지 못했다면 연관된 모든 단편화 패킷들이 폐기되고 Source에게 사실을 알린다.(Discard all fragments))
- Reassemble : 단편화 된 패킷들을 순서에 맞게 재조립한다. (단편화 과정을 안 거친 패킷이라면 생략되는 과정이다.)
- 재조립 된 패킷(Segment 혹은 User-Datagram)은 상위 계층(L4)로 올려보내 진다.
Reference: TCP/IP Protocol Suite 4th Edition
(Behrouz A. Forouzan 저, McGraw-Hill, 2010)
Reference: Data Communications and Networking 5th Edition
(Behrouz A. Forouzan 저, McGraw-Hill, 2012)