인프라 7기/Network

패킷의 이해 -1 [Ethernet, IP]

킹버거 2023. 4. 10. 18:31

SEGMENT

TCP 헤더 MESSAGE

DATAGRAM

IP 헤더 TCP 헤더 MESSAGE

FRAME

Ethernet 헤더 IP 헤더 TCP 헤더 MESSAGE

Link Layer 구조

Premble
(8 byte)
DA
(6 byte)
SA
(6 byte)
Type
(2 byte)
Data FCS
(4 byte)

이더넷(Ethernet) 헤더의 구조

-- 물리적인 이더넷 장비로만 분석할 수 있는 부분

Premble : 동기화에 사용되는 64bit field로서 0과 1로 구성되고, 네트워크 장치가 패킷을 받아서 이더넷 프레임의 시작 부분을 결정하고 동기화 할 때 사용한다. 

FCS(Frame Check Sequence) : 에러 검출을 위해 사용되는 field로, 수신 측이나 송신 측 호스트 시스템에 의해 프레임에 포함되는 내용을 계산한 값.

값이 다르면 해당 프레임은 무시된다. 

 

DA(Destination Address) : 목적지 시스템의 이더넷 주소

SA(Source Address) : 패킷을 전송하는 호스트의 이더넷 주소

Type : 이더넷 프레임 상단의 데이터의 종류

  • 0800 : IP
  • 86DD : IPv6
  • 0806 : ARP

Data : 상위 Layer의 프로토콜에 의해 사용되는 정보가 포함됨

 


패킷 분석 실습 - Ethernet 헤더 

Ethernet 패킷 분석

Ethernet 

  • Destination MAC Add : 00:1a:4d:4e:ad:ac
  • Source MAC Add : 00:0c:29:15:e4:5e
  • Type : 0800 > IP 

Network Layer 구조

IP(Internet protocol)

- 가장 대표적인 네트워크 계층의 프로토콜로, 하위 계층의 서비스를 이용하여 두 노드 간의 데이터 전송 경로를 확립해 주는 역할을 한다. 

 

IP Header

 

IP 헤더의 구조

Version : 인터넷 프로토콜 버전으로 IPv4는 4, IPv6는 6

Header Length : IP 프로토콜 헤더의 길이 (word 단위)

Type Of Service : 교환하는 데이터의 종류에 따라 '지연 통신효율', '신뢰성의 우선순위'를 지정할 수 있음.

데이터그램에 기대되는 QoS(Quality of Service)를 지시하는 8bit 코드

  • TOS 구조 
  • Precedence(선행) 필드 : 현재는 무시됨
Precedence
(3 bit)
TOS(Type-Of-Service)
(4 bit)
비사용
(1 bit)
  • TOS(Type-Of-Service) 필드 : 각 비트는 최소지연, 최대처리율, 최대신뢰성, 최소비용을 의미한다. 전부 0으로 설정된 경우 표준 서비스를 의미한다.

Total Length : IP의 프로토콜 헤더에 계속되는 데이터도 포함한 IP 패킷의 전체 길이, 전체 데이터그램의 길이 (Byte단위)

Identification : 호스트가 연속적으로 전송하는 각 데이터그램을 식별하기 위한 번호 

Flags : IP 데이터그램의 분할(Fragment)에 관한 정보를 나타냄

  1. 첫 번째 비트 : 사용하지 않음 (항상 0으로 설정)
  2. 두 번째 비트 : Do not fragment > 해당 패킷의 분할 여부를 나타낸다. > 0: 분열 가능 , 1: 분열 방지
  3. 세 번째 비트 : More fragment  > 다음 패킷도 Identification number가 같을 것이니 통합하지 말라는 의미이다.             > 0 : 해당 패킷이 마지막 패킷임, 1 : 다음 패킷도 Identification이 같음
  4. 예시 : 000: 난 애초에 분할된 적이 없어. 001: 다음 패킷도 나와 Identification이 같을 거야.  010:  내가 마지막 조각이야. 다음 패킷은 나와 Identification이 다를 거야.

Fragment Offset : 8byte offset으로 조각에 저장된 원래 데이터의 바이트 범위를 나타낸다. 

첫 번째 조각 :      20 Byte(Header)        1,480 Byte(Data)

두 번째 조각 :      20 Byte(Header)        1,480 Byte(Data)

세 번째 조각 :      20 Byte(Header)        1,480 Byte(Data)

마지막 조각 :       20 Byte(Header)        4 Byte(Data)

 

TTL(Time-to-live): 통과 가능한 라우터의 남은 수, 라우터를 경유할 때마다 이 값이 하나씩 줄어든다.

- 각 라우터에 의해 감소된다. 값이 0이 되면 데이터 그램을 폐기한다.

- 라우팅 과정에서 무한 루프에 빠지는 것을 방지한다. (hop count와 무관) 

데이터를 전달할 수 없는 것으로 판단되어 소멸되기 이전에 데이터가 이동할 수 있는 단계의 수를 나타낸다.

Time-to-Live 필드는 1에서 255사이의 값을 지정하며 라우터들은 패킷을 전달 할 때마다 이 값을 하나씩 감소시킨다.

 

Protocol Type : 데이터에 포함되는 상위 프로토콜의 종류

1: ICMP

6: TCP

17: UDP

 

Header Checksum : IP 프로토콜 헤더 자체의 내용이 바르게 교환되고 있는가를 점검

Source IP Address : 발신지 IP Address

Destination IP Address : 수신지 IP Address 


패킷 분석 실습 - IP 헤더 

IP 패킷 분석

IP

  • Version: 4 
  • Header Length: 5     > 5 word > 20 byte
  • Type of Service: 00 
  • Total Length: 00db > 219 byte
  • Identification: 9d7a > 10011101 01111010
  • Flag: 010
  • Fragment Offset: 00000 00000000
  • TTL: 40 > 01000000 > 64
  • Protocol: 06 > TCP 
  • Header Checksum: 06 d2 > 00000110 11010010
  • Source IP Address: c0 a8 0a 7d > 11000000 10101000 00001010 01111101 > 192.168.10.125
  • Destination IP Address: c0 a8 0a 03 > 11000000 10101000 00001010 00000011 > 192.168.10.3