본문 바로가기
전공 공부/컴퓨터네트워크

[컴퓨터네트워크] IP Datagram, Fragmentation

by Yujin Chang 2024. 12. 17.

IP Datagram

  • VER - IP의 Version을 나타냄. 이 값이 0100(=4)이면 IPv4, 0110(=6)이면 IPv6임을 알 수 있음
  • HLEN - 헤더의 길이를 4바이트(32비트) 단위로 나타냄. 그러므로 HLEN 값에 4를 곱하면 실제 헤더 크기(바이트 단위)를 알 수 있음 (ex: HLEN = 5 → 헤더 크기 = 5 x 4 = 20바이트 (=IPv4 기본 헤더 크기))
  • Service type - 지금은 안 쓰임
  • Total length - IP 데이터그램의 전체 길이(헤더+데이터)를 나타냄. 최대 값은 65535바이트
  • Identification - 파편(Fragmentation)의 구분을 위해 사용됨. 한 패킷에서 나온 모든 파편은 같은 Idenfication값을 가짐
  • Flags - Fragmentation과 관련된 제어 정보를 나타냄 (총 3비트)
    • 첫 번째 비트: 예약된 비트 (항상 0)
    • 두 번째 비트 (D): Do Not Fragment (=더 분할하지 마라)
    • 세 번째 비트 (M): More Fragments (=내 뒤에 분할된 조각이 더 있다)
  • Fragmentation offset - 분할된 데이터 파편의 순서를 나타냄. (총 13비트)
    데이터그램 내의 바이트 오프셋을 8바이트 단위로 계산함.
    분할되기 전의 데이터그램에서의 해당 파편의 위치를 알고 싶으면 이 값에 8을 곱하면 됨. (ex: Fragmentation offset = 1000이면 원래 해당 조각은 8000번째 바이트에 있었던 것)
  • Time to live(TTL) - 데이터그램의 수명을 나타냄. 만약 이 값이 0이 되면 라우터는 이 데이터그램을 버림
  • Protocol - IP 이후에 나오는 헤더는 어떤 것인지를 나타냄
  • Header checksum - 헤더의 오류를 발견하기 위해 사용함
  • Source IP address - 송신 측의 IP 주소
  • Destination IP address - 수신 측의 IP 주소

 

Fragmentation (파편화)

IP Datagram의 크기가 MTU(Maximum Transfer Unit: 최대 전송 단위)를 넘으면 분할(=파편화)되어 전송됨

D: Do Not Fragment (더 분할하지 마라), M: More Fragment (내 뒤에 분할된 조각이 더 있다)

D가 0이면 거기서 더 분할함. 1이면 더 분할하지 않고, 만약 패킷 크기가 MTU보다 클 경우 패킷을 폐기함

M이 0이면 그 패킷 뒤에 분할된 조각이 더 없음을 뜻함 (=마지막 조각), 1이면 뒤에 조각이 더 있음을 뜻함

!! 한 패킷에서 분할된 조각들은 같은 Identification값을 가짐 !!