본문 바로가기

Computer/0x03 네트워크

ARP 와 UDP의 헤더구조 분석

ARP 와 UDP의 헤더구조 분석



Arp (Address Resolution Protocol ) 은, IP Address 에 대응되는 이더넷 카드의 하드웨어 주소(MAC address)를

알아내는 프로토콜 입니다.


논리적 주소를 물리적 주소로 변환 해줍니다.

주소변환 방법은 크게 2가지가 있습니다.


(1) Static Mapping (정적변환) : 관리자가 수동설정

(2) Dynamic Mapping(동적변환): ARP , RARP


arp는 2계층 이더넷 환경에서 목적지 IP 주소에 대한 MAC 주소 변환 동작을 담당 합니다.

목적지 MAC 주소정보가 없다면, arp 주소 변환이 불가능하기에 데이터를 전송 할 수가 없습니다.


IP -> MAC, MAC -> IP 로 바꿔주는 역활을 담당 합니다.

그러므로 arp는 IP는 알고있지만 MAC 주소를 모를 떄 사용 합니다.


RARP는 IP 호스트가 자신의 물리적 주소(MAC address)은 알고 있지만 논리적 주소(IP) 를 모르는 경우에

서버로 부터 IP 주소를 요청하기 위해 사용 합니다.




[ ARP 헤더분석]



1. Hardware Type 

: 16Bit 로 ARP가 수행되고 있는 네트워크의 유형을 정의 합니다. 

이더넷인 경우 값은 1 로 설정 됩니다.



2. Protocol Type

: 16Bit 로 상위 프로토콜을 정의 합니다

상위 프로토콜이 IP일 경우 0X0800 으로 설정 됩니다.


3. Hardware Length

: 8Bit로 물리주소의 길이를 바이트 단위로 정의 합니다.

이더넷의 경우 '6' 으로 설정 됩니다.


4. Protocol Length


:8 Bit로 논리주소의 길이를 바이트 단위로 정의 합니다.

이더넷인 경우 ' 4 ' 로 설정 됩니다.


5. Operation


: 16 Bit로 패킷의 유형을 정의 합니다.

쉽게말 요청은 1 , 응답은 2 입니다.



6. Sender Hardware Address


: 송신자의 물리주소를 나타내는 필드 입니다. 

6 Byte 입니다.


7. Sender IP Address


: 송신자의 논리주소를 나타내는 필드 이며, 4 Byte 입니다.


8. Target Hardware Address


: 목적지 시스템의 물리주소를 정의 합니다. 6 Byte 값을 가지며, ARP Request 인 경우 송신자는 

목적지 시스템의 물리주소를 모르기 때문에 모두 0 으로 설정 합니다.


9. Target IP Address


: 목적지 시스템의 논리주소를 정의 합니다. IP Protocol 의 경우 4 Byte 값을 가집니다.




[ ARP 메커니즘 ] 


1. 송신자는 목적지 IP Address를 지정해 패킷을 송신 합니다.

2. IP Protocol 이 ARP Protocol 에게 ARP Request 메시지를 생성하도록 요청 합니다.

3. 메세지는 2계층으로 전달되며 이더넷 프레임으로 인캡슐레이션(Encapsulation)이 됩니다.


4. 모든 호스트와 라우터는 프레임을 수신한 후에 자신의 ARP 프로토콜에게 전달 합니다.

5. 목적지 IP 주소가 일치하는 시스템은 자신의 물리주소를 포함하고 있는 ARP Reply 메세지를 보냅니다.

6. 최초 송신측은 지정한 IP Address 에 대응하는 물리주소를 획득 합니다.

* ARP 요청은 브로드캐스트, ARP 응답은 유니캐스트 입니다.



[ ARP Cache ] 


1. ARP Cache를 사용하는 목적은, 송신 시스템이 수신시스템에게 데이터를 보내기 전에 먼저 Cache 내용을

참조하게 함으로써 효율적인 통신을 위해 사용 합니다.

2. ARP Cache 내 저장된 정보는 일정시간이 지날 떄 까지 사용되지 않으면 지워 집니다.

3. ARP Cache 정보 저장 시간은 일반적으로 2분 입니다.(Windows 기준)

4. 2분 이내에 다시 통신이 이루어 지면 10분으로 캐시저장 시간이 늘어 납니다. (역시 윈도우 기준)




UDP Transport Layer


UDP는 TCP보다 빠르며, 비연결지향 입니다.

3Way 핸드쉐이킹을 하지 않습니다. (ex: 실시간 동영상 서비스에 적합 합니다.)

헤더 사이즈는 8 Byte 입니다.




[ UDP 헤더구조 분석 ]




제일 간단 합니다.


1. Source / Destination Port

: 길이는 2의 16승인 65535 에 해당하는 포트 번호를 이용해서 응용프로그램들을 식별 합니다.


2. Total Length

: UDP 헤더와 데이터를 합친 전체 길이를 Byte 로 표시 해 줍니다.


3. Checksum

: 오류 검사 기능