ARP 프로토콜
- 논리적인 주소(IP)를 물리적인 주소(Mac)으로 변환해주는 프로토콜 이다.
- 통신하고자 하는 단말의 IP만을 알고있을 때 사용되는 프로토콜이다
- 결국 두 PC가 통신하기 위해서는 IP가 아닌 MAC주소가 필요하다
( PC1에서 PC2에게 데이터를 전송하고자 하는 경우, PC1은 PC2의 IP address는 알고 있지만 MAC address를 알지 못한다. 이런 경우, Destination MAC address를 알지 못하면 Layer 2 Header를 완성하지 못하기 때문에 데이터를 전송할 수가 없다.)
자세히
원래 연결된 두 PC가 통신을 하기 위해서는 IP가 아닌 MAC address를 이용하여 통신을 하게 된다
보통 같은 네트워크 내에 있는 (물리적으로 연결된) PC들의 MAC address는
허브나 , 스위치 같은 중계장치가 MAC adress 테이블을 가지고 있어 라우터를 통해 나가지 않고
내부에서 MAC address를 가지고 통신을 하게된다
하지만 , MAC address 테이블에 존재하지 않는 즉 물리적으로 연결되지 않은 다른 네트워크 대역에 대한 통신요구가
왔을 경우 라우터를 통해 다른 네트워크 대역으로 가는데
(같은 네트워크 대역이 아닌 경우 물리적으로 연결되어 있지 않으니 MAC Adress를 알 방법이 없으므로)
이때는 IP를 이용하여 통신을 하는 것 처럼 보이지만 결국에 두 PC 가 통신을 하기 위해서는 MAC address 가 필요하다
이때 사용되는 것이 ARP 프로토콜이다 ( 논리적주소인 IP를 통해 물리적 주소를 알아내는 프로토콜)
통신 과정
1. 같은 네트워크 영역
*과정
a) A가B와 통신하기 위해 자신의 네트워크 대역에 BroadCast메시지(ARP Request)로 1.0.0.2/24를 가진 PC가 있는지 물어본다
(Destination MacAddr : ff ff ff ff ff ff)
b) 이 때 중간의 Switch의 Mac 테이블에 1.0.0.2에 대한 MAC주소가 기록 되어있다면
Switch가 A에게 1.0.0.2의 MAC주소를 알려준다
c) 반대로 없다면 B까지 패킷이 전달되고 (이 때 A의 MAC주소가 Switch 의 Mac 테이블에 기록된다)
B가 자신의 MAC주소를 알려준다 (이 때 B의 MAC 주소가 Switch 의 Mac 테이블에 기록된다)
d) A가 알아낸 맥주소로 B와 통신을 한다
(Destination MacAddr : 00:0C:29:80:A9:55)
2. 다른 네트워크 영역
*과정
a) A가 B와 통신하기 위해 자신의 네트워크 대역에 BroadCast 메시지로 2.0.0.1/24를 가진 PC가 있는지 물어본다
(Destination MacAddr : ff ff ff ff ff ff)
b) B(2.0.0.1/24)는 A와 같은 대역이 아니므로 응답이 GateWay로부터 오게된다 (B로 가는길을 알고 있다면)
(Source MacAddr : 00 60 47 7A D4 01)
c) A는 이제 B와 통신하기 위해 라우터에게 메시지를 보낸다
(Destination MacAddr : 00 60 47 7A D4 01
Destination IPaddr : 2.0.0.1 / 24)
d) 이어 라우터에 의해 해당 네트워크 대역까지 패킷이 이동하고
라우터는 목적지의 IP는 알지만 Mac Address는 모르므로 다시
BroadCast 메시지로 2.0.0.1/24 를 가진 PC가 있는지 물어본다
e) B가 자신의 IP와 일치하므로 라우터에게 응답을 한다
(Source Mac : 00 0C 29 80 A9 55
Source IP : 2.0.0.1 /24
Destination Mac : 00 60 47 7A D4 02
Destination IP : 2.0.0.254 / 24)
*ARP Cache
MAC address를 어렵사리 얻어왔는데 이것을 버리기에는 너무 아깝다
그래서 ARP Cache 테이블에 방금 통신한 IP 에대한 Mac Adress 를 기록해두고 일정시간 동안 보관하여
이를 사용한다
명령어
ARP Cache 확인 : arp -a
ARP Cache 삭제 : arp -d
(Linux는 arp -e)
=> dynamic : dynamic 으로 표시된것은 ARP 프로토콜에 의해 자동으로 학습한것이다 시간이 지나면 초기화된다
***Static : 하지만 자주 통신하는 IP라면 오버헤드를 줄이기 위해 관리자가 직접 등록할 수도 있다 이는 Static 으로 표시된다.
'CS(Computer Science) > Network' 카테고리의 다른 글
Network - Application 계층) DNS 프로토콜 (0) | 2018.09.12 |
---|---|
Network - Application 계층) DHCP 프로토콜 (0) | 2018.09.12 |
Network - Network 계층) SubNet (ClassLess) (0) | 2018.09.09 |
Network - Network 계층) SubNet ( Classful IP) (0) | 2018.09.08 |
Network - DataLink 계층 (0) | 2018.09.08 |