中庸
article thumbnail

 

오른쪽 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 를 간략하게 요약하면 다음과 같다.

 

  1. Broadcast MAC Addr. 을 담고 도착지 IP 로 ARP Request 를 보낸다.
  2. 도착지에 연결된 모든 Host 중 도착지 IP 와 일치하는 기기가 이를 Accept 하고 (그렇지 않으면 버린다.) 자신의 MAC 을 담아 Source IP 로 ARP Response 를 보낸다. 
  3. 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


위 사이트에 자세히 설명되어 있다.

profile

中庸

@짱일모

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!