데이터 링크 계층( Data-Link Layer/2 )

 - 물리적으로 하나의 네트워크

 - 가장 신뢰성이 높은 구간

 - 무조건 통신이 가능한 네트워크

ARP(Address Resolution Porotocol - 주소 결정 프로토콜)

 - 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응시키기 위해 사용되는 프로토콜

 - 수집된 IP 주소와 이에 해당하는 물리적 네트워크 주소 정보는 각 IP 호스트의 ARP 캐시라 불리는 메모리에 테이블 형태로 저장된 다음, 패킷을 전송할 때에 다시 사용

 - 동일한 세그먼트(segment) 상에서 다른 시스템과 통신을 하는 경우에 프로토콜 주소(IP)를 이용한 통신이 아닌 MAC 주소를 이용해 통신을 하게 된다.

 - ARP 정보는 누가 보냈는지를 검증할 수 있는 수단이 없기 때문에, 만약 같은 네트워크 상에 있는 사용자가 변조된 정보를 보낼 경우 그 정보를 받은 사용자는 잘못된 맥 주소로 패킷을 보내게 된다. 이를 이용한 공격에는 ARP 스푸핑이 있다.


1. ARP 요청(Request)

 - IP 호스트 A가 IP 호스트 B에게 IP 패킷을 전송하려고 할 때 IP 호스트 B의 물리적 네트워크 주소를 모른다면, ARP 프로토콜을 사용하여 목적지 IP 주소 B와 브로드캐스팅 물리적 네트워크 주소 FFFFFFFFFFFF를 가지는 ARP 패킷을 네트워크 상에 전송한다. 


2. ARP 응답(Reply)

 - IP 호스트 B는 자신의 IP 주소가 목적지에 있는 ARP 패킷을 수신하면 자신의 물리적 네트워크 주소를 A에게 응답한다.


ARP 헤더

 1) Hardware Type(2byte) 

    - ethernet(1), token ring(4), frame relay, ...

 2) Protocol Type(2byte) 

    - IPv4(0x0800), IPv6(0x86DD)

 3) Hardware Length(1byte) 

    - 하드웨어 주소의 길이

 4) Protocol Length(1byte)

    - 프로토콜 주소의 길이

 5) Opcode(2byte) 

    - ARP request(1), ARP replay(2)

 6) Sender Mac Address(6byte)

 7) Sender IP Address(4byte) 

 8) Target Mac Address(6byte)

 9) Target IP Address(4byte)



WRITTEN BY
Bugday

,