ARP
ARP
ARP는 "Address Resolution Protocol"의 약자로, 컴퓨터 네트워크에서 IP 주소를 물리적인
MAC 주소로 매핑하는 프로토콜입니다.
ARP는 이더넷과 같은 로컬 네트워크에서 사용되며, 네트워크 상에서 데이터를 전송할 때
중요한 역할을 합니다.
네트워크 상에서 데이터를 보낼 때, 송신자 컴퓨터는 목적지 IP 주소를 가지고 있어야 합니다.
그러나 실제 데이터 전송은 물리적인 MAC 주소를 통해 이루어지므로, 송신자 컴퓨터는 목적지 IP 주소에
해당하는 MAC 주소를 알아야만 데이터를 올바른 장치로 전송할 수 있습니다.
ARP 프로토콜 작동 원리
ARP 요청 (ARP Request):
송신자 컴퓨터가 목적지 IP 주소에 해당하는 MAC 주소를 모르는 경우, 로컬 네트워크 상에 ARP 요청
패킷을 브로드캐스트 합니다.
이 패킷에는 목적지 IP 주소와 송신자의 MAC 주소가 포함됩니다.
이 패킷을 받은 네트워크 내 모든 장치는 이 패킷을 처리하게 됩니다.
MAC 주소 응답 (ARP Reply):
목적지 IP 주소에 해당하는 장치는 ARP 요청 패킷을 받아들이고, 자신의 MAC 주소를 포함한 ARP 응답
패킷을 송신자 컴퓨터로 전송합니다.
이 응답 패킷은 브로드캐스트가 아닌 특정 송신자에게 전송됩니다.
MAC 주소 캐싱:
송신자 컴퓨터는 수신한 ARP 응답 패킷으로부터 목적지 IP 주소에 해당하는 MAC 주소를 알아내고,
이를 자신의 ARP 캐시에 저장합니다.
이후 동일한 목적지 IP 주소로 향하는 데이터를 전송할 때는 ARP 캐시를 참고하여 바로 MAC 주소로
변환하여 전송할 수 있습니다.
ARP는 네트워크에서 중요한 프로토콜로 사용되며, 네트워크 장치들 간의 효율적인 통신을 도와줍니다.
ARP 자세히 알기!!
해성이와 해성이 친구:
해성이는 IP 주소 192.168.1.2를 가지고 있고, 그의 친구는 IP 주소 192.168.1.3을 가지고 있습니다.
해성이가 친구에게 데이터 전송:
해성이가 자신의 컴퓨터에서 그의 친구의 컴퓨터로 데이터를 전송하려고 합니다.
해성이는 친구의 IP 주소를 알고 있지만, 물리적인 데이터 전송은 MAC 주소로 이루어져야 합니다.
ARP 요청과 응답:
해성이의 컴퓨터는 그의 친구의 IP 주소를 가지고 있고, 친구의 MAC 주소를 모릅니다.
따라서 해성이의 컴퓨터는 로컬 네트워크에 ARP 요청 패킷을 브로드캐스트 합니다.
이 요청에는 해성이의 IP 주소와 MAC 주소, 그리고 친구의 IP 주소가 포함됩니다.
친구의 컴퓨터: 친구의 컴퓨터는 자신의 IP 주소가 ARP 요청 패킷에 포함된 것을 확인하고,
자신의 MAC 주소를 포함한 ARP 응답 패킷을 해성이의 컴퓨터로 전송합니다.
MAC 주소 캐싱:
해성이의 컴퓨터는 친구의 MAC 주소를 ARP 응답 패킷에서 얻어내어 ARP 캐시에 저장합니다.
데이터 전송:
이제 해성이의 컴퓨터는 친구의 IP 주소를 가지고 있으며, 이에 해당하는 MAC 주소도 ARP 캐시에
저장되어 있습니다.
해성이의 컴퓨터는 데이터를 친구의 MAC 주소로 보내어 정상적으로 통신을 수행할 수 있습니다.
이 예시에서도 ARP는 해성이가 친구의 IP 주소를 알고 있을 때, 그에 해당하는 MAC 주소를 찾아내어
데이터 전송을 가능하게 해줍니다.
*바쁜 사람을 위한 깜찍한 정리
ARP는 송신자 컴퓨터가 목적지 IP에 물리적으로 매핑하는 것을 말합니다. 매핑을 할 때는 MAC주소를 사용하는데 만약 수신자 MAC주소를 모를 시 ARP를 사용하여 수신자 IP 주소를 가지고 브로드캐스트를 통하여 MAC주소를 알아내어 응답까지 매핑해 주는 역할을 합니다. 예를 들어 슈퍼마켓에서 물건을 보내줄 공장 이름만 알고 주소를 모를 때 공장 이름을 구글이나 네이버에 해당 이름으로 검색을 하여 번지수를 알아내는 것을 브로드캐스트라고 하고 해당하는 번지수를 가지고 원하는 목적지를 매핑시켜주는 역할까지 하는 것이 ARP라고 생각하면 이해하기 쉬울 거 같습니다.
'목차훔치기 > 면접을 위한 CS 전공지식 노트' 카테고리의 다른 글
IP 주소 체계(면접을 위한 CS 전공지식 노트) (0) | 2023.09.04 |
---|---|
홉바이홉 통신(면접을 위한 CS 전공지식 노트) (0) | 2023.09.03 |
물리 계층을 처리하는 기기(면접을 위한 CS 전공지식 노트) (0) | 2023.09.01 |
데이터 링크 계층을 처리하는 기기(면접을 위한 CS 전공지식 노트) (0) | 2023.08.31 |
인터넷 계층을 처리하는 기기(면접을 위한 CS 전공지식 노트) (0) | 2023.08.30 |