The Internet Layer (with WireShark)

송승우·2022년 10월 22일
0

network

목록 보기
1/1
post-thumbnail

Internet Layer

네트워크의 주소를 정의하고 IP 패킷의 전달 및 라우팅을 담당하는 계층이다.

Internet Protocol

Internet Protocol(IP)은 네트워크 계층의 프로토콜이고 JAVA가 이해하는 유일한 프로토콜이다. IPv4(32비트 주소)와 IPv6(128비트 주소) 두 가지 프로토콜이 있으며 데이터그램이라는 패킷으로 인터넷 계층을 통해 전송 된다.

IPv4 데이터그램은 20~60바이트 길이의 헤더와 최대 65,515바이트의 데이터를 포함하는 페이로드를 포함한다.

WireShark로 IPv4 살펴보기

IPv4 Header

WireShark IPv4 Header

  1. 첫 바이트(45) : IP version이 4, Header Length가 20바이트인 것을 확인할 수 있다.
    • 4bytes * 5(IHL에 들어가는 필드 값) = 20bytes

  2. 두번 째 바이트(00) : Type of service로 DSCP필드와 ECN필드로 구성되어 있다.
    • DCSP(Differentiated Services Code Point (6bits))
      • 요구되는 서비스 우선순위에 대한 유형을 나타냄
    • ECN(Explicit Congestion Notification (2bits))
      • 혼잡을 알리기 위해 사용, 라우터가 즉각 폐기하지 않고, 최종 노드에게 혼잡을 알리는 용도

  3. 3~4번 째 바이트(02 2d) : Datagram length로 헤더(20bytes)와 데이터의 길이를 합한 값이다. 최대 65535bytes까지 표현할 수 있다.

  4. 5~6번 째 바이트(df c4) : Fragmentation Identifier 데이터그램의 고유번호이다. 큰 IP 패킷들은 여러개의 작은 패킷으로 쪼개어 전송하기 때문에 이를 이용하여 같은 패킷을 식별한다.

  5. 7~8번째 바이트(00 00) : Fragmentation Flag, Fragmentation Offset
    1. Fragmentation Flag(3bits) : 분열의 특성을 나타내는 플래그
      • 첫번 째 bit : 미사용(항상 0)
      • 두번 째 bit : D F bit
        • 0 : 라우터에서도 분열이 가능함을 뜻
        • 1 : 중간에 라우터로 하여금 데이터그램을 분열하지 말라는 뜻
      • 세번 째 bit : M F bit(More Fragment)
        • 현재 조각이 마지막으면 0
        • 더 많은 조각이 뒤에 계속 있으면 1
    2. Fragmentation Offset(13bits) : 8바이트 단위로 최초 분열 조각으로 부터 어떤 곳에 붙여야하는지 위치를 나타냄
      • 첫 단편 옵셋 : 0, 둘째 단편 옵셋 : 첫 단편 크기 만큼


6. 9번 째 바이트(ff) : Time To Live : 라우터를 통과할 수 있는 최대 홉 수를 지정한다.

7. 10번 째 바이트(11) : Protocol Identifier 프로토콜의 종류를 나타내는 식별자

  • TCP(6, 0x06), UDP(17, 0x11)

8. 11~12번 째 바이트(f3 ce) : Header Checksum 헤더에 대한 오류검출

9. 13~16번 째 바이트() : Source IP Address 송신처 IP 주소

10. 17~20번 째 바이트() : Destination IP Address 목적지 IP 주소

profile
VQA, multi-modal

0개의 댓글