[널널한 개발자 TV] 네트워크 기초 이론: 16 - IP 헤더 형식과 의미 요약
이 글은 널널한 개발자 TV 님의 강의영상을 보고 작성한 글입니다.
![](https://velog.velcdn.com/images/securitykss/post/c518b256-3a56-4a43-9058-e8634b263de9/image.png)
Packet의 MTU는 1500bytes이다.
각각 20bytes씩 총 40 bytes를 차지한다.
그래서 MSS 는 1460bytes이다.
전체 Packet
![](https://velog.velcdn.com/images/securitykss/post/9dd4201a-cde1-41d0-8827-8c74aa1c6717/image.png)
그래서 옆에 20bytes 만큼을 차지하고 있는 것을 확인 할 수 있다.
Option: 최대 40bytes
Option은 줄 수도 있고, 안 줄 수도 있다.
주로 없다.
Data: 최대 65536까지 늘어난다.
65536 = 2^16, 64KB 까지 늘어날 수 있다.
그런데? MTU는 1500bytes라고 했는데, 어떻게 된 일인가?
이론상은 65536까지 가능하다고 표현하는 것 같다.
![](https://velog.velcdn.com/images/securitykss/post/c3acf2dd-8a38-4aed-a017-e5c48d65ba09/image.png)
Version: IPv4인지 IPv6인지 (일반적으로 4인다)
엥? 왜 5죠?
0부터 31bit 까지, 32bit -> 4bytes
4bytes x 5 = 20bytes
아... 넵!
그런데 만약에, IHL 값이 6이면 어떻게 되나요?
그때는 Option에 뭔가 값을 준 것일 것이다.
TOS (Type Of Service) : 패킷의 우선 순위를 나타내는 필드
Total length: Packet의 전체 길이 -> 16bit이다.
아하!! 위에서 65536 = 2^16 이라고 했던 것은
즉, Packet의 길이가 2^16까지 가능하다고 했던 것은 여기서 나온 이유때문이구나!
라고 이해했다.
![](https://velog.velcdn.com/images/securitykss/post/c3acf2dd-8a38-4aed-a017-e5c48d65ba09/image.png)
Identification(ID): 이것은 단편화와 관련이 있다.
IP Packet의 MTU는 1500 이라고 했는데 가끔 1400인 경우도 있다.
그 때, Packet을 받을때 1500이 오면, 이거를 반으로 나눠서 보내야 하는 경우가 있다.
이렇게 되는 경우, 즉, 1500짜리 Packet을 반으로 나누는 경우를 단편화라고 하는데,
안그래도 1500도 작은데, 이거를 또 나눠서, 다시 붙여야하는 번거로움이 있기에, 되도록 안 일어나야한다.
어쨋든, ID는 단편화를 할 때 쓰인다.
TTL (Time To Live)
인터넷은 라우터의 집합체다.
라우터들이 유통을 한다.
무엇을 유통하냐면 Packet을 유통을 한다.
이 Packet을 유통하는 과정에서 가끔, 목적지를 못찾는 경우도 있고, 유통 과정에서 뭔가 이상이 생길 수 있다.
그래서, 라우터들이 이 Packet을 마구마구 전달한다.(약간 폭탄돌리기 식으로)
근데, 이 라우터들이 Packet을 전달할 때마다 TTL 값이 1씩 감소한다.
TTL은 위에 그림에서 보면 8bit이고, 경우의 수는 256이다.
0~255 사이에서, 255번을 지나야 0이 된다.
만약 TTL이 0이 되면, 라우터는 이 Packet을 버린다.
Protocol
TCP 인지 UDP 인지 등에 따라, 뒤에 오는 Data를 어떻게 볼 것인지 판단한다.
전송간에 문제(오류)가 있는지 확인하는 필드이다.
뭐 이거는 계산하는 규칙이 있다.
Source address
출발지 주소
Destination address
목적지 주소
Reference