주소 결정 프로토콜(Address Resolution Protocol, ARP)는 네트워크 상에서 IP주소를 물리적 네트워크(MAC Address)주소로 연결하기위해 사용되는 포로토콜이다.
ARP는 L3(OSI Layer3) IP를 L2 MAC 주소로 바꿔주는 L3의 프로토콜이다.
반대의 경우 L2 MAC 주소를 L3 IP로 바꿔주는 RARP(Reverse Address Resolition Protocol)도 존재한다.
Hardware Type : L2에서 사용하는 Protocol Type ex)이더넷 프로토콜
Protocol Type : ex) IPv4
Hard Add Len : MAC Address Length
Proto Add Len : IP Address Length
Operation Code : 어떻게 동작하는지 나타내는 코드 값 -> 내가 Reqeust하는지 Response하는지 Request시1 Response시 2
Source Hardware Address : 출발지 주소(출발지 MAC Address)
Source Protocol Address : 출발지 IP
Destination Hadrware Address : 목적지 주소(목적지 MAC Address)
Destion Protocol Address: 목적지 IP
-동일 네트워크
ex) PC-A가 PC-C랑 통신한다.
PC-A가 PC-C의 IP는 알고 있지만, MAC주소는 모른다.
192.168.1.0/24에 물어본다 -> 192.168.1.3/24가 있나요?
1. 저는 192.168.1.1/24 입니다. 192.168.1.0/24 여러분중에 192.168.1.3이 있나요?
Source MAC (PC-A) | Source IP (PC-A) | Destination MAC | Destinaction IP (PC-C) |
00-0B-BE-A2-E4-64 | 192.168.1.1 | FF-FF-FF-FF-FF-FF | 192.168.1.3 |
2. Switch-A는 PC-A의 ARP Request 패킷을 받는다. (그렇다면 Operation Code는 1이 될 것이다..) PC-A의 MAC 주소를 테이블에 기록 만약 스위치의 ARP 테이블에 192.168.1.3의 MAC Address가 없다면, 패킷을 네트워크 전체에 브로드캐스팅한다.
3. PC-B와 Laptop-A는 192.168.1.3/24가 아니기 때문에 이 ARP Request를 폐기시킨다.
4. PC-B는 192.168.1.3/24의 IP기 때문에 ARP 테이블에 PC-A의 MAC Address를 기록하고, 자신의 MAC Address를 알려주는 ARP Relpy 패킷을 전달함.
Source MAC (PC-C) | Source IP (PC-C) | Destination MAC | Destinaction IP (PC-A) |
00-0B-BE-A2-E4-32 | 192.168.1.3 | 00-0B-BE-A2-E4-64 | 192.168.1.1 |
5. Switch-A는 PC-C의 MAC Address를 ARP 테이블에 기록하게 되고, 이 정보를 PC-A로 전달한다.
6. 이제 PC-C의 MAC Address를 알기 때문에 통신이 가능하다.
- 다른 네트워크이 경우 Default Gateway로 ARP Request가 전달되고 해당하는 IP가 존재하는 라우터를 찾아 ARP Request를 보내고 응답받는다.
참고 블로그
'CS > 네트워크' 카테고리의 다른 글
분산시스템속 브로드캐스트 (0) | 2024.08.06 |
---|---|
[네트워크] 로그란 무엇인가 (0) | 2023.03.05 |
[네트워크] Restful하게? Rest란 무엇일까? (0) | 2023.02.23 |
[네트워크] Protobuf란 무엇인가? (0) | 2023.02.21 |
[네트워크] JWT(Token)를 위주로 Cookie & Session 파헤치기 (0) | 2023.01.07 |