전송계층에서 Gateway의 IP주소를 DHCP를 통해 파악할 수 있었습니다.
예를 들어, 구글과 통신하는 상황이라면 우선 구글로 향하는 IP 패킷을 만들게 됩니다. 이 IP 패킷의 Source Address는 자기 자신의 IP주소, Destination Address는 DNS가 알려준 구글의 IP주소를 적게 됩니다.
이렇게 완성한 IP 패킷이 MAC frame의 data부분에 들어오고 frame의 Source에는 자기 자신의 MAC주소, Dest는 gateway의 MAC 주소를 적어야 합니다. 이 때 Gateway 라우터의 MAC주소를 어떻게 알 수 있을까요?
이때, IP 주소를 통해 MAC 주소를 찾는 과정이 필요합니다. 이것은 ARP Protocol을 통해 진행됩니다.
ARP Protocol 이란?
ARP(Address Resolution Protocol) 프로토콜은 네트워크 상에서 IP 주소를 MAC 주소로 대응시키는 프로토콜 입니다.
ARP Table
이때 IP 주소와 MAC 주소는 ARP table 에 저장되어 사용됩니다. ARP Table이란 IP주소와 그에 해당하는 MAC주소를 mapping하여 적어놓은 Table입니다.
그리고 ARP table은 <IP address; MAC address; TTL> 의 구조를 가집니다. 여기서 TTL을 두는 이유는 IP 주소와 MAC주소 관계가 바뀔수도 있기 때문에, 일정 시간마다 IP주소와 MAC주소의 관계를 갱신하기 위함입니다.
이 테이블은 다음과 같은 과정으로 채우게 된다. ARP Request Frame을 Broadcast(모두에게)로 전송한다. ARP Request를 받은 Gateway가 IP패킷을 열어보고 자기 자신이면 MAC주소로 응답한다. 2번의 응답을 받은 Host는 ARP테이블을 채운다. 위 과정으로 채운 테이블은 2시간 이내에 사라지며 다시 통신이 필요해지면 위 과정 반복한다.
ARP 프로토콜은 사용되는 범위에 따라 같은 LAN에서 사용하는 경우와 다른 LAN으로 라우팅하는 경우가 있습니다.
ARP Protocol : same LAN
같은 LAN에서의 ARP Protocol 과정입니다.
A가 B에게 데이터를 보내려고 하는데, B의 MAC주소가 A의 ARP table에 없는 상황을 가정해보겠습니다.
ARP 테이블은 다음과 같은 과정으로 채우게 됩니다.
우선, A가 ARP query 패킷을 Broadcast (모두에게) 전송하게 됩니다. 그럼, LAN에 속하는 모든 노드는 A가 보낸 ARP query를 받게 됩니다.
여기서 ARP Request를 받은 Gateway가 IP패킷을 열어보고 자기 자신이면 MAC주소로 응답하게 됩니다. 그래서 B는 A에게 자신의 MAC 주소를 응답하게 됩니다.
그럼 A는 이 응답을 받아 자신의 ARP table에 TTL이 발생하기 전까지 B에 대한 IP-MAC Address를 저장(cashe)하게 됩니다.
ARP Protocol : 다른 LAN으로 라우팅
서로 다른 LAN 사이에서의 ARP Protocol 과정입니다.
A에서 B로 데이터를 보내야하는데 중간에는 R이라는 라우터가 있습니다. 현재 상황은 A는 B의 IP 주소와 R 라우터의 IP 주소와 MAC 주소를 알고 있다고 가정합니다.
A가 datagram에 자신의 IP 주소와 목적지인 B의 IP 주소를 넣습니다. (그림에서 초록색 영역은 network 계층에서 IP 주소를 넣는 작업을, 파란색 영역은 MAC 계층의 작업을 표시한 것)
그리고 datagram의 MAC 주소 영역에 자신의 MAC 주소를 넣어주고, 목적지인 B의 MAC 주소는 모르는 상태이기 때문에 R의 MAC address를 MAC destination에 넣어줍니다.
이제 주소가 담긴 frame이 A 에서 R로 전송되었습니다. R이 frame를 받으면 IP 주소는 수정하지 않고, MAC 주소만 수정합니다.
라우터는 A에 물린 인터페이스와 B에 물린 인터페이스가 있는데, B에 물린 인터페이스에서 MAC 주소를 수정하게 됩니다.
자신의 MAC Address를 출발 MAC 주소로 넣고, B의 MAC 주소를 MAC dest로 넣어서 datagram을 전달합니다.
이제 B가 A에서 보낸 ARP query를 받게 됩니다.
이처럼 서로 다른 LAN 사이에서 MAC 주소를 모르는 상황에서는, 도착지의 IP 주소를 유지한채로 MAC 주소를 수정해가며 IP 주소에 일치하는 MAC 주소를 찾아내게 됩니다.
참고자료
[컴퓨터 네트워크 - 한양대학교 이석복 교수님]
http://www.kocw.net/home/cview.do?cid=6166c077e545b736
https://the-square-of-y.tistory.com/222
https://blog.naver.com/ds4ouj/222337311558
https://inyongs.tistory.com/79
Computer Networking _ A Top Down Approach, 7th
'CS > Network' 카테고리의 다른 글
[네트워크] 무선이동 네트워크 (1) - Wireless Network 소개와 IEEE 802.11 LAN (0) | 2024.02.28 |
---|---|
[네트워크] Switch (0) | 2024.02.28 |
[네트워크] 데이터 링크 계층 : Ethernet (이더넷) (0) | 2024.02.26 |
[네트워크] 데이터 링크 계층 : MAC Protocol (0) | 2024.02.26 |
[네트워크] 라우팅 알고리즘 (Routing Algorithms) (0) | 2024.02.23 |