패킷 전달 시 logical address(IP), physical address(MAC) 둘 다 필요
=> static or dynamic mappnig

network layer의 protocol 구성
IP protocol : 제일 중요한 protocol
ARP protocol : 크게 봤을 때 table 관리, 개념적으로 input으로 IP 주소가 들어왔을 때 output으로 MAC 주소를 내보냄

같은 network 상에서 A->B, ARP table이 비어있는 상황
1. A가 switch에 연결되어있는 모두에게 request 전송 (request) => broadcast
2. B가 A에게만 MAC 주소 전달 (reply) => unicast

Hardware Type : 하드웨어 주소의 유형, 이더넷 통신 시 1
Protocol Type : 매핑 대상인 프로토콜 주소의 유형, IPv4의 경우 0x0800
Hardware Address Length : 하드웨어의 길이, Byte 단위, 이더넷상 0x06
Protocol Address Length : 프로토콜 주소 길이, Byte 단위, IPv4의 경우 0x04
Operation Code : ARP의 구체적인 동작을 나타냄

-> 3, 4는 생략

A -> B, A와 B는 컴퓨터이거나 router
A는 B의 IP주소는 알고 있고 MAC주소를 알고 싶은 상황

From A to B (request)

Destination address가 0xFFFFFFFFFFFF(모두 1)인 경우
: MAC의 broadcast 주소, switch가 받아서 연결되어있는 모든 컴퓨터에 다 보냄
Source address : A의 MAC 주소
Type : 0x0806 => ARP packet
Data : ARP packet -> 받는 쪽 MAC 주소는 모르니까 다 0으로 보냄
request 도착 시 B는 A의 IP, MAC 주소를 cache table에 저장
=> A의 주소를 모를 시 A에게서 오는 데이터에 대한 응답을 보낼 때 매번 request를 보내야 하는 상황 발생
From B to A (reply)

Destination address : A가 보낸 Request의 ARP packet(Data)에 적힌 A의 MAC 주소를 삽입 => A에게만 전달, unicast
reply 도착 시 A는 자기한테 온 것인지 확인 -> ARP인지 확인 -> ARP이면 reply인지 확인 -> B의 MAC 주소를 cache table에 저장

: IP packet을 받아서 ARP packet (request)를 내보냄
: ARP packet이 들어왔을 때 해당 패킷에 적혀있는 상대방의 주소를 보고 일함
: 특정시간 (교재에서는 60s)마다 깨어나서 line by line으로 수행