오른쪽 Host 처럼 우리가 어떤 HTTP 요청을 보낸다고 하자. 그러면 이것이 Encapsulation 을 할 때 , TCP 계층에서 Destination 의 포트를 적고 IP 계층에서는 DNS 를 통해서 IP 주소를 받아온 뒤 IP Header 에 Destination IP 를 적을 수 있다고 생각했다.
그런데 Data Link 계층에서 Ethernet Header 에 Destination MAC Address 은 어떻게 적을 수 있을까? 내가 서버의 MAC 주소를 다 알고 있을리는 만무하다.
결론 : 도착지 IP 에 해당하는 머신의 MAC 을 직접 담을 수는 없다. 계속된 Routing 을 통해 목적지까지 보낼 수 있다.
찾아보았더니 ARP (Address Resoultion Protocol) 이라는 것을 통해 LAN 내 모든 연결된 End Point 들의 MAC Addr. 을 찾을 수 있다고 한다. ARP 를 간략하게 요약하면 다음과 같다.
- Broadcast MAC Addr. 을 담고 도착지 IP 로 ARP Request 를 보낸다.
- 도착지에 연결된 모든 Host 중 도착지 IP 와 일치하는 기기가 이를 Accept 하고 (그렇지 않으면 버린다.) 자신의 MAC 을 담아 Source IP 로 ARP Response 를 보낸다.
- Source 는 이 ARP Response 에 담긴 Dest MAC Addr. 을 확인하고 이를 자신의 ARP Table 에 cache 로 저장한다. 따라서 이후의 통신에서는 Dest MAC Addr. 을 Ethernet Header 에 담아 보낼 수 있다.
즉, LAN 외부의 호스트에게 패킷을 전송할 때는 Router 에게 패킷을 전송한다. 즉, 처음 클라이언트가 목적지로 패킷을 보낼 때 이더넷 헤더에는 라우터의 MAC 주소가 담기게 된다. 라우터는 이 패킷의 IP Header 내용을 참조하여 Ethernet Header 의 Dest. MAC Addr. 을 수정해주며 목적지(Destination End Point)에 패킷을 전달해 줄 수 있다.
https://www.netmanias.com/en/?m=view&id=blog&no=6330
Switching and Routing for Dummies - Ethernet Switching
In this and next posts, we will learn about L2 Ethernet switching and L3 IP routing.
www.netmanias.com
위 사이트에 자세히 설명되어 있다.
'데이터 통신' 카테고리의 다른 글
[Data Communication] Virtual Machine 에서의 네트워크 구성 (0) | 2023.05.09 |
---|---|
[Data Communication] 링크 계층에서의 프로토콜 : ARP, PPP (0) | 2023.05.01 |
[Data Communication] IP 주소를 왜 쓸까? (0) | 2023.04.18 |
[Data Communication] Switching, 회선 교환과 패킷 교환 (0) | 2023.04.15 |
[Lab - Data Over Sound] 모스부호로 데이터 전송하기 (0) | 2023.04.05 |