네트워크 공부 5
ARP 프로토콜
- ARP가 하는 일
- 같은 네트워크 대역에서 통신하기 위해 필요한 MAC 주소를 IP 주소를 통해 알아오는 프로토콜
- 동일 네트워크에서 통신하더라도 데이터를 전송하려면 캡슐화(Encapsulation)가 필요하며, 이때 IP 주소와 MAC 주소가 모두 필요함. ARP는 IP 주소만으로 MAC 주소를 알아내어 통신을 가능하게 함.
- ARP 프로토콜의 구조
- Hardware type: 2계층에서 사용하는 프로토콜 타입 (대부분 이더넷:
0x0001
) - Protocol type: 3계층에서 사용하는 프로토콜 타입 (대부분 IPv4:
0x0800
) - Source Hardware Address: 출발지 MAC 주소 (6바이트)
- Opcode: 요청(1)인지 응답(2)인지 나타내는 오퍼레이션 코드
- Source Protocol Address: 출발지 IP 주소 (4바이트)
- Destination Hardware Address: 도착지 MAC 주소 (6바이트)
- Destination Protocol Address: 도착지 IP 주소 (4바이트)
ARP 프로토콜의 통신 과정
- ARP 요청 프레임 작성 (목적지 MAC 모르므로 주소는 비워둠)
- 이더넷 프로토콜로 캡슐화 (도착지 MAC 주소는 몰라서
FF:FF:FF:FF:FF:FF
로 채워 브로드캐스트) - 스위치는 2계층 장비이므로 2계층까지만 디캡슐화 수행
- 브로드캐스트이므로 스위치가 네트워크 내 모든 장치에 패킷을 전달
- 패킷을 받은 장치들은 3계층까지 디캡슐화하여 목적지 IP 주소를 확인
- IP 주소가 일치하지 않는 장치들은 패킷을 버리고, 일치하는 장치는 패킷을 처리
- 목적지 장치가 ARP 응답 패킷 작성
- 이더넷 프로토콜로 인캡슐레이션하여 응답 전송
- 출발지 장치는 응답 패킷을 받고 MAC 주소를 ARP 테이블에 추가