[Web]패킷 전송을 위한 ARP

HW·2023년 12월 2일
0

Web

목록 보기
4/7

서론

다른 디바이스에 IP패킷을 전송하기 위해서는 해당 디바이스의 IP주소와 MAC 주소를 알아야 합니다.

여기서 MAC(Media Access Control)주소란,
하드웨어가 제조될 때 하드웨어에 심어져 변경이 불가한 고유 식별 주소입니다.

유동적으로 변경 가능한 IP 주소와 달리, MAC 주소는 마치 사람의 지문과도 같습니다.

디바이스에 데이터를 보낼 때, IP 주소만 알고 MAC 주소를 모르는 경우에는
ARP(Address Resolution Protocol)를 이용하여 디바이스의 MAC 주소를 알아내고,
이를 ARP 테이블로 관리하여 추후 IP 패킷 전송에 사용합니다.

본론

동일 네트워크

A 장비에서 B 장비로 패킷을 전송한다고 가정했을 때,

A 장비는 서브넷 마스크와 B 장비의 IP 주소를 통해, 두 장비가 같은 네트워크에 속해 있음을 알 수 있으나,
B 장비의 MAC 주소를 모릅니다.

B 장비의 MAC 주소를 알기 위해 A 장비는 ARP Request를 보내고,
ARP Request는 이더넷 헤더를 붙인 패킷으로 브로드캐스팅으로 전송 됩니다.

B 장비는 APR Request을 수신하며 A 장비의 IP 주소와 MAC 주소를 모두 알게 되고,
APR Request에 대한 APR Reply를 IP 주소와 MAC 주소를 특정하여 보냅니다.

B 장비가 보낸 APR Reply를 수신한 스위치는 이더넷 헤더로부터
ARP Reply를 보낸 B 장비와, A 장비의 포트를 MAC 테이블을 조회하여 알아낸 후,
패킷을 A 장비 포트로 전달합니다.

서로 다른 네트워크

A 장비에서 D 장비로 패킷을 전송할 때,

A 장비는 D 장비의 IP 주소를 알고 있으나 MAC 주소를 모른다고 가정합니다.

A 장비는 서브넷 마스크와 D 장비의 IP 주소를 보고 D 장비가 자신이 속한 네트워크와는
다른 네트워크에 속한 장비라는 것을 알 수 있습니다.

다른 네트워크로 IP 패킷을 보내기 위해서는 게이트웨이 역할을 하는 라우터를 통과해야 합니다.

이 때, A 장비가 라우터의 IP 주소만 알고, MAC 주소는 모른다면,
라우터로 IP 패킷을 보낼 수 없으므로, APR Request를 보내고 ARP
스위치 MAC 테이블에 A 장비의 포트번호와 A 장비의 MAC 주소가 기록 되며
라우터의 MAC 주소를 알게 됩니다.

라우터가 아닌 다른 장비들에서 A 장비의 ARP Request는 버려지고,
라우터만이 A 장비의 IP 주소와 MAC 주소를 ARP 테이블에 기록한 후, ARP Reply를 보냅니다.

라우터의 MAC 주소를 알게된 A 장비는 자신의 ARP 테이블에 라우터의 네트워크 포트의
IP 주소와 MAC 주소를 기록하고 D 장비에 보낼 IP 패킷을 만들고 네트워크 포트의 MAC 주소로 보냅니다.

여기서 흥미로운 점은,
이더넷 헤더의 수신 MAC 주소는 라우터의 네트워크 MAC 주소인데,
IP 패킷의 수신 주소는 IP 패킷을 수신할 D 장비의 IP 주소입니다.

라우터는 A장비에서 패킷을 전달 받고,
수신 주소를 확인하고 다른 네트워크에 전달되어야 하는 패킷이라는 것을 알 수 있습니다.

만약 라우터가 D 장비의 MAC 주소를 모른다면
자신의 두번째 포트를 통해 다른 네트워크에 D 장비의 IP 주소를 적은 ARP Request를 보냅니다.

D 장비가 아닌 다른 장비에서 라우터의 ARP Request는 버려지고,
D 장비만이 라우터의 ARP 테이블에 IP 주소와 MAC 주소가 기록 된 후, ARP Reply를 보냅니다.

D 장비의 ARP Reply를 통해 D 장비의 MAC 주소를 알게된 라우터는 자신의 ARP 테이블에
D 장비의 IP 주소와 MAC 주소를 기록하고
A 장비가 D 장비에 패킷을 보내기 위해 보낸 패킷에서
이더넷 헤더의 송신/수신 MAC 주소를 교체하여 스위치를 통해 D 장비의 MAC 주소를 보냅니다.

결론

ARP 프로토콜은 네트워크 통신에서 핵심적인 역할을 수행하며,
IP 주소와 MAC 주소 간의 매핑을 효과적으로 처리합니다.
동일 네트워크와 다른 네트워크 간의 ARP 동작은
각각의 상황에 맞게 효과적으로 MAC 주소를 해결하고 통신을 가능케 합니다.
네트워크 구성 요소들 간의 조화로운 동작은 복잡한 환경에서도 안정적인 통신을 보장합니다.

profile
예술융합형 개발자🎥

0개의 댓글