IP 주소 지정 메커니즘과 IP 패킷의 delivery 및 forwarding에 대해 논의한 후, 이제 IP 패킷의 형식에 대해 논의한다.
IP 패킷이 어떻게 기본 헤더 및 패킷 전송을 용이하게 하거나 제어하는 데 사용되는 옵션이 만들어 지는지 배운다
IP
IP는 데이터그램 접근법을 사용하는 패킷 교환 네트워크를 위한 connectionless 프로토콜이다
즉, 각 데이터그램은 독립적으로 처리되며 각 데이터그램은 목적지까지 다른 경로를 따를 수 있다
이는 동일한 source에 의해 동일한 destination으로 전송된 데이터그램이 비정상적으로 도착할 수 있음을 의미한다
또한, 일부는 전송 중에 분실되거나 손상될 수 있다
IP는 이러한 모든 문제를 처리하기 위해 더 높은 수준의 프로토콜에 의존한다
네트워크 레이어의 패킷을
datagram
이라고 부른다
VER
(version)
HLEN
(header length)
service Type
Total length
()
total length가 헤더를 포함한 datagram의 전체 길이를 나타낸다
total length가 필요한 이유, 추가적 padding을 하는 이유
머신(라우터 또는 호스트)이 프레임을 수신하면 헤더와 트레일러가 데이터그램을 떠난다
IP 데이터그램의 크기가 Minimum보다 작으면 이 요구 사항을 충족하기 위해 일부 padding이 추가된다
이 경우, 기계가 데이터그램의 캡슐화를 해제할 때, 실제 데이터 양과 패딩 양을 결정하기 위해 total length를 확인해야한다
Identification
Flags
Fragmentation offset
Time to live
Protocol
IP가 사용하는 상위 레벨의 프로토콜을 알려준다
IP 데이터그램이 전송되어야 하는 최종 목적지 프로토콜을 지정
UDP, TCP, ICMP, IGMP
이 필드의 값에 따라 사용하는 프로토콜이 바뀐다
Checksum
Source address
source의 IP 주소
Destination address
데이터그램은 다른 네트워크를 통해 이동할 수 있다
각 라우터는 수신한 프레임에서 IP 데이터 그램의 캡슐화를 해제하고 처리한 다음 다른 프레임에 캡슐화한다
수신된 프레임의 형식과 크기는 프레임이 방금 이동한 물리적 네트워크에서 사용되는 프로토콜에 따라 달라진다
전송된 프레임의 형식과 크기는 프레임이 이동할 물리적 네트워크에서 사용되는 프로토콜에 따라 달라진다
datagram이 파편화가 되어도 각 조각들은 헤더를 가지고 있다
조각된 데이터그램들은 더 작은 MTU를 만나면 다시 파편화될 수 있다
데이터그램은 source 호스트 또는 경로에 있는 라우터에 의해 조각화될 수 있다
파편화된 데이터그램은 다른 경로를 통해 이동할 수 있다
datagram의 데이터만 단편화가 된다
처음 비트는 사용되지 않음
두번째 비트는 do not fragment bit
세번째 비트는 more fragment bit
011 불가!
IP 데이터그램의 헤더는 두 부분으로 구성되어 있다
fixed 부분은 20바이트 길이
variable 부분은 최대 40바이트의 옵션으로 구성된다
이름에서 알 수 있듯이 데이터그램에는 옵션이 필요없다
데이터 그램은 네트워크 테스트 및 디버깅에 사용할 수 있다
옵션이 IP 헤더의 필수 부분은 아니지만 IP 소프트웨어의 옵션 처리가 필요하다
즉, 헤더에 옵션이 있는 경우 모든 구현이 해당 옵션을 처리할 수 있어야 한다
TLV
Copy
Class
Number
Length
Value
TCP/IP 프로토콜에서 사용되는 오류 탐지 방법을 checksum이라고 한다
checksum은 패킷 전송 중에 발생할 수 있는 손상으로부터 보호한다
패킷에 추가되는 정보이다
checksum은 sender에서 계산되고 얻은 값은 패킷과 함께 전송된다
receiver는 checksum을 포함한 전체 패킷에 대해 동일한 계산을 반복한다
결과가 만족스러우면 패킷이 수락되고, 그렇지 않으면 거부된다
체크섬은 헤더를 판단한다., 데이터가 아니다