본문 바로가기

펌글(출처명시)

Packet 에 대해 알아보자 (펌글)

https://blog.naver.com/hodduk_shin/222264098967

 

Packet 에 대해 알아보자

패킷은 컴퓨터 네트워크가 전달하는 데이터의 형식화된 블록이며, 특정한 형식에 맞추어 전송에 필요한 부...

blog.naver.com

 

OoS / ToS / precedence 

=================

 

패킷은 컴퓨터 네트워크가 전달하는 데이터의 형식화된 블록이며, 특정한 형식에 맞추어 전송에 필요한 부가적인 정보들을 포함한 채로 데이터를 전송할 때, 네트워크는 장문의 메시지를 더 효과적이고 신뢰성 있게 보낼 수 있다. 패킷의 헤더부분에는 보통 신뢰성 있는 통신을 위한 정보들이 담기고, 헤더의 다음 부분에 실제 데이터가 담기게 된다. 그러므로 헤더부분에 담긴 정보들을 통해 해당 패킷의 송신자, 수신자는 누구인지, 그리고 어떠한 경로를 거쳐 전송되는지, 전송되는 데이터의 특징에 관한 정보 등을 얻을 수 있다.

■ 네트워크 인터페이스 계층

Preamble
(8 byte)
Destination Address
(6 byte)
Source Address
(6 byte)
Type
(2 byte)
Data FCS
(4 byte)

- 이더넷(Ethernet) 프레임의 구조

• Preamble(프리앰블) : 동기화에 사용되는 64비트 필드로서 0과 1로 구성되고, 네트워크 장치가 패킷을 받아서 이더넷 프레임의 시작 부분을 결정하고 동기화할 때 사용

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

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

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

• DATA : 상위 레이어의 프로토콜에 의해 사용되는 정보가 포함됨

• FCS : 에러 검출을 위해 사용되는 필드로, 수신측이나 송신측 호스트 시스템에 의해 프레임에 포함되는 내용을 계산한 값. 값이 다르면 해당 프레임은무시됨.

- Type의 대표적인 값들 (0x600 이상의 값 만이 가능함)

• 0800 : IP

• 86DD : IPv6

• 8191 : NetBIOS

• 0600 : Xerox XNS IDP

• 0805 : X.25

• 0806 : ARP

• 0835 : RARP

• 6003 : DEC DECnet Phase Ⅳ

• 8137 : Novell Netware IPX

• 8847 : MPLS

• 8863 : PPPoE Discovery Stage

• 8864 : PPPoE PPP Session Stage

■ 인터넷 계층

- IP(Internet protocol)

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

- IP 주소 체계

비트수 1 7 24
A Class 0 네트워크주소 호스트주소
비트수 2 14 16
B Class 1 0 네트워크주소 호스트주소
비트수 3 21 8
A Class 1 1 0 네트워크주소 호스트주소

- IP 헤더

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

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

• Type Of Service :

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

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

~ 구조

Precedence
(3 bit)
TOS(Type of Service)
(4 bit)
비사용
(1 bit)

~ Precedence(선행)필드 : 3bit

• 현재는 무시됨

• Type Of Service (계속)

~ TOS(Type-Of-Service) 필드 : 4bit

• 각 비트는 최소지연, 최대처리율, 최대 신뢰성, 최소비용을 의미

• 전부 0으로 설정된 경우 표준 서비스를 의미한다.

• 현재 대부분의 NOS를 포함한 OS에서 지원되지 않지만 일부 BSD 계열과 OSPF등의 라우팅 프로토콜은 이를 기반으로 경로 선택이 가능하다.

• 여러 응용 프로그램에 대한 TOS의 권고 값.

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

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

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

~ 첫번째비트 : 사용안함

~ 두 번째 비트 : Do not fragment

~ 세 번째 비트 : More fragment

• Fragment Offset : 각 프래그먼트의 원 데이터에 있어서의 위치를 바이트 단위로 나타냄

• TTL : Time To Live의 약자로 통과가능한 라우터의남은 수, 라우터를경유할 때마다 이 값이 하나씩 줄어든다.

~ 각 라우터에의해 감소된다. (값이 0이 되면 데이터그램은 폐기)

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

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

~ 1 = ICMP

~ 6 = TCP

~17 = UDP

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

• Source 및 Destination IP Address : 발신지 및 수신지의 IP Address

■ ARP

- Address Resolution Protocol은 32bit IP와 48bit 이더넷 주소간에 변환을 담당한다.

- 이들 변환은 동적으로 이뤄진다.

ex) ftp

1. ftp client는 TCP에 접속을 의뢰한다.

2. TCP는 연결요구 segment를 IP에 전달한다.

3. IP는 접속지의 IP와 자신의 netmask를 근거로 동일 네트워크 주소 여부를 확인하고 목적지를 선정한다.

4. 목적지의 IP를 이용 ARP broadcast를 device를 이용 전송한다.

5. 목적지의 host는 수신한 datagram에 대해서 ARP 웅답 패킷을 요청자에게 unicast한다.

6. 수신된 ARP 응답를 이용 ARP cache 목록에 해당 호스트의 MAC주소를 저장하고 이후 통신과정을 계속한다.

- ARP 헤더

• H/W Type (하드웨어 타입) : 하드웨어 주소(Network 유형)

~ http://www.iana.org/assignments/arp-parameters/ 참조

~ Ethernet : 1

• Protocol Type

~ 어떠한 유형의 프로토콜(IPv4,IPv6,ATM등)을 사용하는가 정의

~ IPv4 : 0x0800

• H/W Length : H/W type에서 사용하는 주소의 길이

~ Ethernet : 6byte

• Protocol Length : Protocol Type에서 사용하는 주소의 길이

~ IPv4 : 4byte

• OP : ARP와 RARP를 구별하기 위해 사용

~ 1 : ARP요구, 2 : ARP응답

~ 3 : RARP 요구, 4 : RARP 응답

• SA, Sender IP : Sender의 MAC과 IP

• DA, Target IP : Destination의 MAC과 IP

- ARP 패킷

■ ICMP

- Internet Control Message Protocol은 송신측의 상황과 목적지노드의 상황을 진단한다.

- ICMP 구조

• Type : ICMP 메시지 종류

• Code : 각 Type에 대한 코드 값

Type Code Description
0 0 에코 응답(ping 응답)
8 0 에코 요청(ping 요청)
9 0 라우터 광고
10 0 라우터 청원
3 0
1
...
네트워크 도달 불가
호스트 도달 불가
....
5 ... 재지정(redirection)
... ... ...

• Checksum : ICMP 메시지 자체(헤더 + 데이터)에 대한 오류를 검사하는 필드

■ ICMP – Ping

- Identifier : Ping 프로세스의 프로세스 ID

• 여러 개의 ping이 동일 호스트에서 실행되는 경우 응답을 식별할때 쓰인다.

- Sequence number

• 요구 패킷의 순서, 0부터 시작한다.

[출처] Packet 에 대해 알아보자|작성자 hodduk_shin