IP header & Ethernet header

1. IP(Internet Protocol) header
 - 20 바이트 고정크기 사용가능
 - 옵셔널 필드가 존재하여 사실은 가변크기
 - 최근에는 옵셔널 필드를 거의 사용하지 않기 때문에 20바이트로 고정되어있다.

1.1. IP 헤더의 구성
Figure 1.1 IP헤더의 구조
 - Version (4bits)
   Internet Protocol의 버전을 나타내며 4비트를 차지한다. 주로 IPv4를 사용하기때문에 주로 4이다.

 - Header Length(4bits)
   IP 헤더의 길이를 나태내며 4비트를 차지한다. 옵션의 유무에따라 길이가 달라진다. 4 비트로 최대 표현 할 수 있는 값은 15 하지만 IP헤더의 최소 길이는 20이라서 값을 구할때 4(2^2)를 곱해서 정확한 값을 구한다.

 - Service field (1byte)
   지금은 사용되지 않는다. 고로 0으로 지정해주면 됨.

 - Total Length(Ip 패킷의 전체 크기) (2bytes)
   IP 패킷의 전체의 길이 정보를 가지고있다.

 - Identification (2bytes)
   패킷을 식별하는 번호를 가진다.  IP 클라이언트에 따라 분할된 패킷은 같은 정보를 가지게 된다.
 - Flag & Fragment offset (2bytes)

 - TTL(Time TO Live) (최대 홉의 갯수) (1byte)
  최대로 지날 수 있는 라우터의 숫자를 나타낸다.
   Linux = 64
   Windows= 128
   Unix= 254

 - Protocol type (1byte)
  프로토콜 번호를 가지고 있다.
  TCP = 0x06
  ICMP = 0x11
  UDP = 0x01

 - Header Checksum (2bytes)
   패킷의 오류를 검사하는 용도로 쓰이는 데이터

 - Source Address (4bytes)
   송신지(발신지)의 IP 주소를 담고있다.
 - Destination Address (4bytes)
  수신지( 목적지)의 IP주소를 담고있다.

2. Ethernet Header
 - 2계층
 - PDU = Frame
 - 14 바이트 크기

2.1 Ethernet Header의 구성
 - 출발지 주소(MAC): 6바이트
 - 도착지 주소 (MAC): 6바이트
 - 이더넷 타입 :2 바이트
Figure 2.1 이더넷 header
다음에는 헤더를 분석해 보겠다.

댓글

이 블로그의 인기 게시물

UDP 헤더의 구조와 스니퍼를 이용한 UDP통신 가로채기

UDP 소켓을 이용하여 에코서버와 통신하기.

파이썬을 이용한 TCP 소켓 프로그래밍.