오늘 하루, develop

#9. [3계층] IP 프로토콜이란? 본문

네트워크

#9. [3계층] IP 프로토콜이란?

toZoe 2024. 5. 7. 02:26

 소개

3계층 프로토콜 중 하나인 IP 프로토콜에 대한 내용을 정리했습니다 :)


 IP 프로토콜 (Internet Protocol)

네트워크 상에서 데이터를 교환하기 위한 프로토콜

  • 데이터가 정확하게 전달될 것을 보장하지 않는다.
  • 중복된 패킷을 전달하거나 패킷의 순서를 잘못 전달할 가능성도 있다.
  • 데이터의 정확하고 순차적인 전달은 그보다 상위 프로토콜인 TCP에서 보장한다.

 구조

20byte라고 생각하면 됨(마지막 줄은 그냥 옵션. 옵션은 4byte 단위로 붙음)

 

  • Version (4bit) : 4 (고정)
  • 프로토콜의 길이 (4bit) : 5 (일반적으로 20byte이므로)
    • 최소 20byte, 최대 60byte
    • 근데 4bit는 0~15까지만 표현 가능!
    • 그래서 4로 나눔
    • 20byte는 5로 표현 (0101)
  • TOS (8bit) : 0 (지금은 안 쓰임)
  • Total Length (16bit) : 헤더뿐 아니라 payload까지 다 합친 길이. 전체 길이
  • Identification (16bit) : 쪼개진 패킷들이 하나의 데이터라는 것을 알려주기 위한 id 값
  • IP Flags (3bit)
    • x : 안 씀
    • D : 패킷을 보내는 사람이 데이터를 안 쪼개서 보내겠다는 것을 명시. 거의 안 쓴다고 보면 됨
    • M : 나 말고 다른 패킷이 더 있음을 알려줌. 최대 전송 단위보다 크면 1로 세팅됨. 아니면 0
  • Fragment Offset (13bit) : 패킷 시작 위치가 어디인지 표시 (패킷의 순서를 알 수 있게 함)
    • 첫 번째 패킷은 0
    • 두 번째 패킷은 첫 번째 패킷의 길이
  • TTL (8bit) : Time to Live. 3계층 장비를 넘어갈 때마다 1씩 줄어듦. 0이 되는 순간 네트워크 장비는 이 패킷을 다른 곳에 전달하지 않고 버림
    • 전세계 어디와 통신해도 30홉이 넘지 않음
    • 리눅스는 54, 윈도우는 128로 설정해둠
  • Protocol (8bit) : 상위프로토콜의 타입 (ICMP, TCP, UDP 등)
  • Header Cheksum (16bit) : 헤더가 오류가 있는지 확인하는 역할

 

✔️ 실습

와이어샤크로 192.168.0.100 -> 192.168.0.51 ping 요청한 후 패킷 캡쳐

IP

 

 


출처

https://youtu.be/8ZwTvTuZlVw?si=e0jzzJE8ZzhLar5W