데이터그램
이라고도 함* 출처: 쉽게배우는 네트워크 강의(한국직업방송)
그림에서 가로행을 보면 한 행이 32Bits = 4Byte로 맨위에서 Option 전까지 5줄(20Byte)은 기본으로 들어가고 그 외의 총 40Byte의 Option이 올 수 있다. 즉, 헤더의 크기는 20에서 60Bytes로 가변적으로 올 수 있다.
하나하나 뜯어서 보자면,
- VER(Version)
IP프로토콜의 버전을 나타내는 것으로 4혹은 6이 될 수 있음
- HLEN(Header Length)
herder의 길이를 나타내는 것으로 해더의 길이는 가변적이기 때문에 어디까지가 헤더인지를 알려줌(한 단위가 4Byte 이기 때문에 옵션이 없다면 들어가는 값은 5
가 될 것임)
- Service
IP패킷이 가져야하는 서비스의 형태를 의미하는 것으로 서비스의 형태는 응용서비스 별로 주요하게 다루어야할 특성을 말한다.(지연시간, 신뢰성, 처리량 등)
- Total length
IP패킷의 전체길이를 나타냄 -> Byte로 나타냄
전체 길이의 필드 크기가 16비트로 이루어져 있기 때문에 IP패킷의 표시할 수 있는 총 가능한 길이의 최대수는 0 ~ 65535Byte까지 가능하다.
- TTL(Time to live, 생존시간)
IP 데이터그램이 지나가는 최대 홉(Hop)의 수로서, 각 라우터는 데이터 그램이 지나갈 때마다 1씩 감소시켜 그 값이 0이 되면 라우터는 해당 데이터 그램을 폐기하게 된다.(이 필드가 없을 경우 송신지에서 IP패킷이 출발해서 수신지 까지 도착하지 못하고 패킷이 돌아다니게 됨! 그렇게 되면 쓸뎅벗이 대역폭을 잡아먹게 되고 속도가 점점 느려지게 됨으로 이를 해결하기위해 TTL값을 넣어두는 것임)
- Protocol
IP 계층위에서 존재하는 상위 프로토콜이 무엇인지 나타냄
즉, header를 잘 파악해서 IP가 데이터를 누군가에게 줘야하는데 누구한테 줄지를 명시해놓은 것임! ICMP
,IGMP
,SCTP
,TCP
,UDP
,OSPF
와 같이 다양한 프로토콜이 있을 때 어디로 보낼지 명시해 놓은 것
- Checksum(체크섬)
IP 패킷 헤더에 대한 오류 검사를 위해서 사용됨(데이터에 대해서 Checksum하지 않고 header에 대해서만 Checksum하게 됨 -> 사용자 데이터가 깨졌는지 안깨졌는지에 상관없이 헤더에 에러났는지 확인해서 에러나면 폐기시킴)
0
이 나오면 에러가 없는 것으로 보겠다- 송신자 주소와 목적지 주소
송신자와 수신자의 IP주소
인터넷은 여러 네트워크가 서로 연결되어 있는 형태로 네트워크가 통과 시킬 수 있는 IP 패킷의 최대 바이트 양이 정해져있고 수용할 수 있는 프레임의 크기와 형태는 네트워크에 따라서 다르다. 그래서 IP 패킷을 네트워크가 수용할 수 있는 크기로 분할시키는 것을 단편화(Fragmentation)
이라고 한다.
MTU(Maximum transfer unit): 어떤 네트워크에서 보낼 수 있는 데이터의 최대 크기
아래와 같은 옵션은 최대 40바이트 까지 가능하다.
(1) Single-byte(옵션이라기보단 옵션을 처리하기 위한 부분)
(2) Multiple-byte(실제 옵션)
* 내용출처: 쉽게배우는 네트워크 강의(한국직업방송)