CS/Network

About ARP

oxdjww 2023. 9. 19. 02:14
728x90
반응형

Previous Posts

About IP Address
About MAC Address

ARP?

Address Resolution Protocol
네트워크 상에서 IP address에 대응하는 MAC address를 찾기 위해 사용되는 프로토콜이다.
이 프로토콜을 사용하여 매핑된 IP address와 MAC address의 쌍은 ARP table에 저장된다.

ARP는 plub-and-play라는 특징을 가진다.
즉, 특별한 설정 없이 바로 사용 가능하다는 의미이다.

Procedure


LAN에 존재하는 한 host A가 host B의 IP address를 알고 있고, MAC address를 알고자 한다.

  1. host A가 LAN에 물려있는 모든 host에게 ARP request packet을 보낸다. (broadcast)
  2. 동일 LAN에 존재하는 host B는 자신의 IP address가 담긴 ARP request packet을 확인한다.
  3. host B는 자신의 MAC address를 ARP reply packet에 담아 ARP request packet에 담긴 host A의 정보를 통해 host A에게 ARP reply packet을 보낸다.
  4. host B가 ARP reply packet을 보내는 동시에, 자신의 ARP table에 host A의 IP address와 MAC address를 저장한다.
  5. host A는 ARP reply packet을 수신하고, 비로소 host B의 MAC address를 알게 되었다. 이 때, 마찬가지로 ARP table에 host B의 IP address와 MAC address를 저장한다.

ARP Header Structure


Hardware type : 사용중인 hardware 주소의 종류를 나타내는 field

  NETROM = 0, // from KA9Q: NET/ROM pseudo
  ETHER = 1, // Ethernet 10Mbps
  EETHER = 2, // Experimental Ethernet
  AX25 = 3, // AX.25 Level 2
  PRONET = 4, // PROnet token ring
  CHAOS = 5, // Chaosnet
  IEEE802 = 6, // IEEE 802.2 Ethernet/TR/TB
  ARCNET = 7, // ARCnet
  APPLETLK = 8, // APPLEtalk
  LANSTAR = 9, // Lanstar
  DLCI = 15, // Frame Relay DLCI
  ATM = 19, // ATM
  METRICOM = 23, // Metricom STRIP (new IANA id)
  IPSEC = 31 // IPsec tunnel

Protocol type : protocol의 유형을 나타내는 field (IPv4 = 4, IPv6 = 6)

  • 기본적으로 ARP 는 IP layer의 protocol이다.

Hardware address length : hardware 주소(ethernet일 경우 MAC address이기에 6) 의 length를 byte단위로 나타내는 field
Protocol address length : 사용된 IP protocol의 length를 byte단위로 나타내는 field (IPv4 = 4, IPv6 = 6)
Operation code : request packet일 경우 1, reply packet일 경우 2
Sender hardware address : ARP request/reply packet을 보내는 host의 hardware address (MAC address)
Sender protocol address : ARP request/reply packet을 보내는 host의 protocol address (IP address)
Target hardware address : ARP request/reply packet을 수신하는 host의 hardware address (MAC address)
Target protocol address : ARP request/reply packet을 수신하는 host의 protocol address (IP address)
이렇게 줄글로만 설명하면 와닿지 않으니 예시를 통해 알아보자.

Host a
- IP주소 123.123.123.123
- MAC주소 A.A.A.A.A.A
Host b
- IP주소 234.234.234.234
- MAC주소 B.B.B.B.B.B
Host a가 Host b의 주소를 알고자 ARP를 시도하려 한다.
  • ARP 패킷을 실제로 보낼 때, ethernet header(layer 2 header)가 붙게 된다.
  • ARP packet = ethernet header + ARP(IP) header + data
  • 하단의 wireshark에서 captured packet img에서 확인 가능하다.

ARP Request Packet


Ex)

Destination MAC address : A.A.A.A.A.A
Source MAC address : ff:ff:ff:ff:ff:ff (broadcast)

Hardware type : 1 (ethernet)
Protocol type : 4 (IPv4)
Hardware size : 6 (MAC address)
Protocol size : 4 (IPv4)
Operation code : 1 (ARP request)
Sender hardware address : A.A.A.A.A.A
Sender protocol address : 123.123.123.123
Target hardware address : 00:00:00:00:00:00 (sender가 채워줄 값)
Target protocol address : 234.234.234.234

ARP Reply Packet


Ex)

Destination MAC address : A.A.A.A.A.A
Source MAC address : B.B.B.B.B.B

Hardware type : 1 (ethernet)
Protocol type : 4 (IPv4)
Hardware size : 6 (MAC address)
Protocol size : 4 (IPv4)
Operation code : 2 (ARP reply)
Sender hardware address : B.B.B.B.B.B
Sender protocol address : 234.234.234.234
Target hardware address : A.A.A.A.A.A
Target protocol address : 123.123.123.123

Ref


Computer Networking: A Top-Down Approach, 8th Edition
– James Kurose and Keith Ross

728x90
반응형

'CS > Network' 카테고리의 다른 글

DNS  (0) 2023.10.02
Port  (0) 2023.10.02
TCP, UDP  (0) 2023.10.02
About MAC Address  (0) 2023.09.19
About IP Address  (0) 2023.09.19