진짜 개발자
본문 바로가기

CS(Computer Science)/Network

Network - ARP 프로토콜 분석 & 이더넷 프레임 (Wire Shark이용)

728x90


실습 (ARP 패킷 분석)

 


이더넷 프레임 - 2계층 통신에 사용되는 프레임


Preamble – 수신지의 동기화를 위해 사용한다

Destination Address 프레임 송신 6Byte

Source Address 프레임 수신 6Byte

Type 상위계층 프로토콜정보(IP=0x0800, ARP=0x0806) 2Byte

Data 상위계층으로 부터 전달받은 데이터, 최소 46Byte 최대 1500Byte

PAD – Data46Byte이하의 크기면 0 채워 46Byte를 만듦





ARP 캡처 - 와이어 샤크에는 PREAMBLE 과 SOF 는 잡히지 않고 Destination Addr 부터 잡힌다.

(처음 MAC주소를 모를 때의 패킷)



ARP 프로토콜 패킷 구조

 

1. DestinationAddress : 수신지의 MAC Address를 모르므로 ff ff ff ff ff ff

네트워크 영역 전체에 보낸다 (6Byte)


2. SourceAddress : 자신의 MAC Address가 적힌다 (98 83 89 85 19 fe) (6Byte)


3. Type : 상위계층의 서비스가 적힌다 (2Byte) <= ARP이므로 08 06이 보인다.


4. Data - 상위계층에 전달하고자 하는 Data가 담겨있다.

- , 이때부터 ARP프로토콜 패킷이다.

a. 2바이트는 하드웨어 주소 유형을 나타낸다

=> 이더넷 : 00 01

b. 다음 2바이트는 매핑 대상의 프로토콜 주소의 타입을 나타낸다

=> IPv4 : 0800

c. 다음 1 바이트는 하드웨어 길이를 나타낸다

=> 이더넷 : 06 (6Byte 이므로 06)

d. 다음 1 바이트는 프로토콜의 주소 길이를 나타낸다

=> IPv4 : 04 (Ipv44Byte 이므로)

e. 다음 2 바이트는 ARP프로토콜의 동작 코드를 나타낸다

=> 0001 : ARP Request , 0002 : ARP Reply

0003 : RARP Request , 0004 : RARP Reply

f. 다음은 송신자 MAC주소를 나타낸다

=> 그림상에서는 4byte 이지만 위에서 HardWare의 길이를 따로 잡아 주 었으므로 그만큼이 사용된다

g. 다음 송신자 IP주소를 나타낸다

=> 마찬가지로 4byte만 사용되지만 IPv6의 경우 128비트이므로 바뀔 수 있다.

h. 다음 수신자 MAC주소를 나타낸다

I. 다음 수신자 IP주소를 나타낸다

- 최소 46Byte를 맞추어야 한다 46Byte가 되지않으면 PAD0으로 채운다

 

5. Pad : 데이터의 모자른 부분을 채우는 부분이다.