728x90
반응형

[TCP/IP Protocol #8] Part 2 | Chapter 8. ARP

 

발신지 호스트에서 목적지 호스트로 패킷을 전달할 수 있기 전에 제일 먼저, 다음 홉으로 패킷을 어떻게 전달할 수 있는지 알아야 한다.

다음 홉의 IP 주소를 찾기 위해 라우팅 테이블을 참조한다. 하지만 IP는 데이터링크 계층의 서비스를 사용하므로 다음 홉의 물리 주소를 알아야 한다.

이 과정은 주소 변환 프로토콜(ARP: Address Resolution Protocol)에 의해 수행됨

주소 변환

인터넷은 라우터와 같은 네트워크 간 연결 장치에 의해 상호 연결된 네트워크들로 구성된다.

발신지 호스트로부터 시작한 패킷은 목적지 호스트에 도달하기 전 여러 개의 다른 물리 네트워크를 지나갈 수 있다.

 

호스트와 라우터는 네트워크 레벨에서 자신의 논리 주소(logical address)로 인식된다. ↔ 물리 주소는 로컬 주소(local address)

논리 주소는 인터네트워크 주소이다. (모든 곳에서 유효하고 전 세계적으로 유일하다.)

- 이유: 실제로 소프트웨어 상에 구현되므로 논리 주소라 불린다.

네트워크를 연결하기 위해 사용되는 모든 프로토콜들은 논리 주소를 필요로 한다.

TCP/IP 프로토콜들에서의 논리 주소는 IP 주소라고 하며 32비트 길이를 가지고 있다.

 

e.g., 물리 주소의 예: 이더넷이나 토큰링의 48비트 MAC 주소, 이 주소는 호스트나 라우터 내에 설치된 NIC에 들어 있음

- NIC(Network Interface Controller, 컴퓨터를 네트워크에 연결하여 통신하기 위해 사용하는 하드웨어 장치)

 

호스트나 라우터로 패킷을 전달하기 위해서는 논리 및 물리 계층 주소가 모두 필요하다.

정적 변환

static mapping, 논리 주소와 물리 주소를 연관시키는 테이블 사용

네트워크 상의 각 기계 내에 저장되어 있음, 예를 들어 다른 기계의 IP 주소를 알고 있으나 물리 주소를 모르는 경우 이 테이블을 찾아보면 됨

[한계]

1) 기계는 NIC를 바꿀 수 있고 결과적으로 새 물리 주소를 가지게 됨

2) LocalTalk과 같은 LAN에서는 컴퓨터가 켜질 때마다 물리 주소가 변한다

* LocalTalk: Apple Computer의 AppleTalk 네트워킹 시스템의 물리적 계층을 특정하게 구현한 것

3) 이동 컴퓨터는 하나의 물리적 네트워크에서 다른 네트워크로 이동할 수 있고 이러한 경우 물리 주소는 변하게 된다

이들 변화를 구현하기 위해 정적 변환 테이블은 주기적으로 갱신되어야 한다. 이것은 네트워크에 매우 큰 오버헤드가 된다.

동적 변환

dynamic mapping, 기계가 다른 기계의 논리 주소를 알고 있을 때 프로토콜을 사용하여 물리 주소를 찾을 수 있다.

동적 변환을 수행하기 위해 주소 변환 프로토콜(ARP)과 역 주소 변환 프로토콜(RARP: Reverse ARP)이 설계되었다.

ARP: 논리 주소 → 물리 주소 변환 / RARP: 물리 주소 → 논리 주소로 변환

- RARP는 다른 프로토콜(DHCP)에 의해 대치되어 필요성이 없어짐 → ARP 프로토콜에 대해서만 설명

ARP 프로토콜 필요성

어떤 호스트나 라우터가 다른 호스트나 라우터에 보낼 IP 데이터그램을 가지고 있다면 , 송신자는 수신자의 논리 주소인 IP 주소를 가지고 있다.

그러나 IP 데이터그램은 물리적인 네트워크를 통과하기 위해 프레임 내에 캡슐화되어야 한다.

즉, 송신자는 수신자의 물리 주소를 알아야 한다.

변환(mapping)이란 논리 주소를 물리 주소로 변환하는 것이다.

TCP/IP 프로토콜 모음 내에서 ARP는 IP 프로토콜로부터 논리 주소를 받아 이를 해당하는 물리 주소로 변환한 후 데이터링크 계층에 전달한다.

캡슐화

ARP 패킷은 데이터링크 프레임으로 캡슐화된다.

과정

1. 송신자는 타깃의 IP 주소를 알고 있다.

2. IP가 ARP에게 ARP 요청 메시지를 생성하도록 요청한다.
- 요청 메시지: 송신자의 물리 주소, IP 주소. 타깃의 IP 주소 (타깃의 물리 주소 필드는 0으로 채워짐)
3. 송신자의 물리 주소를 발신지 주소로, 물리 브로드캐스트 주소를 목적지 주소로 하는 프레임에 의해 캡슐화된다.

4. 모든 호스트나 라우터는 이 프레임을 수신한다.
- 타깃만을 제외하고 모든 기계는 이 패킷을 폐기한다. 타깃 기계는 IP 주소를 인식한다.

5. 타깃 장비는 자신의 물리 주소를 포함하는 ARP 메시지를 응답으로 보낸다. 이 메시지는 유니캐스트된다.

6. 송신자는 응답 메시지를 받고 타깃의 물리 주소를 알게 된다.

7. 타깃에게 보내질 데이터를 포함하고 있는 IP 데이터그램은 이 물리 주소를 가지는 프레임으로 캡슐화되어 목적지에 유니캐스트된다.

 

Reference

Behrouz A. Forouzan (2009), TCP/IP 프로토콜(Protoccol Suite), 4th Edition

 

728x90
728x90

+ Recent posts