ARP
IP 프로토콜이 source 호스트에서 destination 호스트로 패킷을 전송하기 전에, 먼저 next hop으로 패킷을 전송하는 방법을 알아야한다.
IP 패킷은 next hop의 IP 주소를 찾기 위해 라우팅 테이블을 참조할 수 있다.
그러나 IP는 데이터 링크 계층의 서비스를 사용하기 때문에 next hop의 물리적 주소를 알아야 한다.
이 작업은 ARP(Address Resolution Protocol)라는 프로토콜을 사용한다.
Address Mapping
호스트 또는 라우터에 패킷을 전달하려면 logical 및 physical 두 가지 수준의 주소가 필요하다.
logical 주소를 해당 physical 주소에 매핑할 수 있어야 하며, 그 반대의 경우도 가능해야한다.
이러한 작업은 정적 또는 동적 매핑을 사용하여 수행할 수 있다.
정적 매핑
논리 주소와 물리적 주소를 연결하는 테이블 만듦.
동적 매핑
ARP Protocol
호스트나 라우터가 다른 호스트나 라우터에 보낼 IP 데이터그램을 가질 때마다 receiver의 논리적(IP) 주소를 갖음.
그러나 IP 데이터그램은 물리적 네트워크를 통과할 수 있도록 프레임에 캡슐화되어야 한다.
이것은 sender가 receiver의 물리적 주소가 필요하다는 것을 의미한다.
매핑은 물리적 주소에 논리 주소를 대응한다.
ARP는 IP 프로토콜로부터 논리적 주소를 받아 해당 주소를 해당 물리적 주소에 매핑하고 데이터 링크 계층에 전달
ARP operation
- 호스트 또는 라우터가 네트워크에 있는 다른 호스트 또는 라우터의 물리적 주소를 찾아야 할 때마다 ARP 쿼리 패킷을 보낸다
- 패킷은 sender의 물리적 주소와 IP 주소 및 receiver의 IP 주소를 포함
- sender가 receiver의 물리적 주소를 모르기 때문에, 쿼리는 브로드캐스트된다
- 네트워크의 모든 호스트 또는 라우터는 ARP 쿼리 패킷을 수신하고 처리
- 의도된 sender만 IP 주소를 인식하고 ARP 응답 패킷을 다시 보낸다
- 응답 패킷에는 수신자의 IP 및 실제 주소가 포함
- 패킷은 쿼리 패킷에서 수신된 물리적 주소를 사용하여 직접 유니캐스트된다
- 의도된 sender만 IP 주소를 인식하고 ARP 응답 패킷을 다시 보낸다
ARP request는 브로드캐스트
ARP response는 유니캐스트
ARP packet
Hardware type : Ethernet = 1
Protocol type : IPv4 is 0800(16)
Hardware length : Ethernet value = 0x06
Protocol length : IPv4 is 0x04
Opration : request(1), reply(2)
sender protocol address : ARP request에서는 All 0's 다. 송신자는 타겟의 물리 주소를 모르기 때문
Encapsulation of ARP packet
ARP 패킷은 데이터 링크 계층에 직접 캡슐화된다. 예를들어 아래 그림에서 ARP 패킷은 이더넷 프레임에 캡슐화된다.
type field는 프레임이 전송하는 데이터가 ARP 패킷임을 나타낸다.
IP 헤더가 없다 : IP 계층 밑에서 일어나기 때문
7 steps involved in an ARP process
1. sender는 타겟의 IP 주소를 알고 있다.
2. IP는 ARP 요청 메시지를 생성하기 위해 ARP를 물어본다.
-target physical adress 필드는 0으로 채워진다.
- sender의 물리주소가 송신자 주소가 됨.
- 목적지 주소는 physical broadcast address
Four different cases using ARP
Direct delivery 나 indirect delivery에 따라 4가지 ARP operation이 존재
1. 호스트가 같은 네트워크의 호스트에 패킷을 보내는 경우
- 물리적 주소에 매핑되어야 하는 논리적 주소는 데이터그램 해더의 대상 IP 주소
2. 호스트가 다른 네트워크의 호스트에 패킷을 보내는 경우
- 다른 네트워크로 가기 위해 라우터로 간다.
- 호스트는 라우팅 테이블을 보고 이 대상에 대한 다음 홉(라우터)의 IP 주소를 찾는다.
- 라우팅 테이블이 없는 경우 기본 라우터의 IP 주소를 찾는다
- 라우터의 IP 주소는 물리적 주소에 매핑되어야 하는 논리적 주소가 된다.
3. 라우터가 다른 네트워크의 호스트에 패킷을 보내는 경우
- 다른 네트워크로 가기 위해 라우터로 간다.
- 라우팅 테이블을 확인하고 다음 라우터의 IP 주소를 찾는다.
- 다음 라우터의 IP 주소는 물리적 주소에 매핑되어야 하는 논리적 주소이다.
4. 라우터가 같은 네트워크의 호스트에 패킷을 보내는 경우
- 데이터그램의 destination IP 주소는 물리적 주소에 매핑되어야 하는 논리적 주소가 된다.
Proxy ARP
- 호스트를 대신하는 ARP
- 라우터가 ARP 요청을 받아 해당 host 대리로 ARP를 응답함. (Subnetting, Mobile IP)
프록시 ARP를 실행하는 라우터가 호스트 중 하나의 IP 주소를 찾는 ARP 요청을 수신할 때마다
라우터는 자신의 하드웨어(물리적) 주소를 알리는 ARP 응답을 보냄.
라우터는 실제 IP 패킷을 수신한 후 해당 호스트 또는 라우터로 패킷을 보냄.
Reference
https://velog.io/@zh025700/%EC%BB%B4%ED%93%A8%ED%84%B0%EB%A7%9D-5-ARP
'🖥️ Computer Science > Computer Network' 카테고리의 다른 글
Mobile IP (0) | 2024.10.23 |
---|---|
Internet Control Message Protocol Version 4 (ICMPv4) (0) | 2024.10.21 |
Internet protocol Version 4 (IPv4) (0) | 2024.10.10 |
Delivery and forwarding of IP Packets (1) | 2024.10.01 |
IPv4 Address (0) | 2024.09.26 |