-
ARP ProtocolCS/네트워크 2022. 12. 3. 16:22728x90
Address Resolution Protocol - ARP는 라우터나 호스트로 전송되는 패킷은 2가지 addressing이 요구된다. Logical & Physical. ARP는 IP 주소를 MAC 주소로 1:1 맵핑하여 frame만들 때 필요한 mac 주소를 전달한다.
ARP operation - Ex) 141.23.56.23의 ip주소를 가지고 있는 physical address를 찾기 위해 요청을 보내면, ARP는 누가 해당 ip 주소를 가지고 있는지 모르므로, broadcast 방식으로 네트워크 내에 존재하는 모든 host에게 packet을 보내고 응답한 정보를 바탕으로 table로 관리한다. time-out을 설정해두어 오랫동안 사용하지 않으면 table은 소멸된다.
ARP 구조
Hardware Type Protocol Type Hard Add Len Proto Add Len Operation Code Source Hardware Address Source Protocol Address Destination Hardware Address Destination Protocol Address Hardware Type : 하드웨어 주소(MAC)의 유형을 나타내며, 이더넷 통신시 항상 1로 설정
Protocol Type : 매핑 대상인 프로토콜 주소의 유형을 나타내며, IPv4의 경우 0x0800 설정
Hardware Address Length : 하드웨어의 길이, Byte로 표시, 이더넷 상에서는 0x06으로 설정
Protocol Address Length : 프로토콜 주소 길이, Byte로 표시, IPv4의 경우 0x04로 설정
Operation Code : ARP의 구체적인 동작을 나타낸다.
값이 1일 경우 : ARP Request
값이 2일 경우 : ARP Reply
값이 3일 경우 : RARP Request
값이 4일 경우 : RARP Reply
ARP 패킷의 캡슐화
Preamble and SFD : 8bytes Destination Address : 6bytes Source Address : 6bytes Type : 2bytes Data : ARP space or datagram CRC : 4bytes Preamble - 수신자의 동기화를 위해 사용한다.
Destination Address - 프레임 송신 6Bytes
Source Address - 프레임 수신 6Bytes
Type - 상위 계층 프로토콜 정보(IP=0x0800 / ARP = 0x0806) 2Bytes. 이를 써주지 않으면 ARP인지 Datagram인지 알 방법이 없다.
Data - 상위 계층으로 부터 전달받은 데이터, 최소 46Bytes~ 최대 1500Bytes
Ex) 130.23.43.20의 IP주소와 B2:34:55:10:22:10의 physical address를 가진 host가 130.23.43.25와 A4:6E:F4:59:83:AB의 ip,physical address를 가진 host에게 패킷을 전송하려고 한다. 두 호스트는 모두 같은 이더넷 네트워크에 있다. ARP request와 ARP reply 패킷을 보여라.
Answer -> 위 ARP 구조와, ARP packet format을 바탕으로 Request / Reply를 작성하면 된다.
ARP Request from A to B : 0x0001(이더넷이므로) / 0x0800(ipv4) / 0x06 (mac길이) / 0x04(ip길이) / 0x0001(request)
/ 0xB23455102210 / 0x82172B14 / 0x000000000000 / 0x82172B19. 그리고 ARP Packet format은
Preamble and SFD / 0xFFFFFFFFFFFF (broadcast 주소) / 0xB23455102210 (보내는사람) / 0x0806 (ARP) / Data 28bytes / CRC
ARP Reply from B to A : 0x0001 / 0x0800 / 0x06 / 0x04 / 0x0002 / 0xA46EF45983AB / 0x82172B19 / 0xB23455102210 / 0x82172B14. 그리고 ARP Packet format은
Preamble and SFD / 0xB23455102210 / 0xA46EF45983AB / 0x0806 / Data / CRC 이다.
ARP Components
ARP 구성 요소에는 크게 Output module / Input module / Cache-control module이 존재한다
Output module은 Ip packet이 들어오면 테이블에서 데이터를 찾아보고 전송한다. 테이블에 없는 경우 ARP packet request하고, 테이블에 있으면 IP packet을 hardware address와 맵핑한다.
Input module은 ARP request나 reply가 들어오면 reply를 보낸다. 만약 reply가 온 경우 IP packet을 hardware address와 맵핑한다.
Cache-control module은 재전송 및 테이블 삭제 등을 위한 구성요소로써, 테이블에 있는 entry를 관리한다.
728x90'CS > 네트워크' 카테고리의 다른 글
Unicast Routing Protocol (0) 2022.12.03 ICMP - Internet Control Message Protocol (0) 2022.12.03 Internet Protocol - IP 프로토콜 (0) 2022.12.01 Delivery & Fowarding (패킷 전송) (0) 2022.12.01 IP Address - IP 주소 (0) 2022.12.01