통신프로토콜 전산정보학부 모바일인터넷과 권 춘 우 교재 : Computer Networks and Internets (D.E. Comer) 컴퓨터네트워크와 인터넷(조경산 역) 전산정보학부 모바일인터넷과 권 춘 우 http://www.dongyang.ac.kr/~cwkwon e-mail : cwkwon@dongyang.ac.kr
19장 프로토콜 주소 변환(ARP) School of Computing & Information Department of Mobile Internet
<정리> 1 인터넷에서 사용하는 주소 <정리> 2 주소 해결 문제 <정리> 3 ARP란? <정리> 4 주소 해결 캐쉬 <정리> 5 ARP 구현 <정리> 6 ARP 설계 School of Computing & Information Department of Mobile Internet
<정리> 1 인터넷에서 사용하는 주소 논리 주소(logical address) 호스트나 라우터가 사용하는 네트워크 레벨 주소 전세계적으로 유일한 주소 IP 주소 32 비트 길이 물리 주소(physical address) 로컬 네트워크에서 유효한 주소 로컬 주소(local address) 로컬에서만 유일하면 됨 보통 하드웨어로 구현 호스트나 라우터내에 설치된 NIC에 들어 있음 School of Computing & Information Department of Mobile Internet
<정리> 1 인터넷에서 사용하는 주소(계속) 호스트나 라우터로 패킷을 전달하기 위해 논리 및 물리 주소가 모두 필요 논리 주소를 물리 주소로 변환 또는 그 반대가 필요 정적 또는 동적 변환 가능 School of Computing & Information Department of Mobile Internet
<정리> 1 인터넷에서 사용하는 주소(계속) 정적 변환(static mapping) 논리 주소와 물리 주소 연관 테이블 생성 네트워크상의 각 시스템에 저장 필요시 테이블 검색 물리 주소가 변경될 경우 정적 테이블의 주기적인 갱신으로 인한 오버헤드 (NIC 변경, 이동 컴퓨터의 네트워크 이동 등) School of Computing & Information Department of Mobile Internet
<정리> 1 인터넷에서 사용하는 주소(계속) 동적 변환(dynamic mapping) 물리 주소와 논리 주소 쌍 중 하나만 알면 프로토콜을 이용하여 다른 하나를 알아냄 ARP : 논리 주소를 물리 주소로 변환 RARP : 물리 주소를 논리 주소로 변환 School of Computing & Information Department of Mobile Internet
<정리> 1 인터넷에서 사용하는 주소 ARP(Address Resolution Protocol) RARP(Reverse Address Resolution Protocol) School of Computing & Information Department of Mobile Internet
Address Resolution Problem <정리> 2 주소 해결 문제 기계 A에서 B로 패킷을 전송하고자 할 때 A가 IB만을 알고 있다면 어떻게 A가 B의 물리주소인 PB로 대응시킬 것 인가? 기계A, B에 대한 IP 주소는 IA, IB이고 물리주소는 PA, PB 할당 가정 Address Resolution Problem 상위 계층 주소를 물리적 주소로 대응 시키는 문제 프로토콜에 따라 mapping table을 가지고 있거나 하드웨어 주소를 상위 주소로 부호화 하여 해결 School of Computing & Information Department of Mobile Internet
<정리> 2 주소 해결 문제(계속) 직접 대응을 통한 해결 프로네트(proNET)와 같이 구성이 쉬운 작은 크기의 물리주소를 가진 망에서는 hostid를 물리 주소로 하므로, 쉽게 물리주소 계산 IP주소 IA를 해결하는 것은 PA = f (IA) 계산 문제 효과적인 f 계산을 위해 주소 대응 테이블 검색 시 hash function 사용 동적 바인딩을 통한 해결 이더넷 또는 대부분의 LAN망에서 이더넷 주소는 48-bit이므로, 32-bit IP 주소로 부호화 곤란 기계가 코드를 재 해석 없이 망에 추가 될 수 있고, 중앙 DB의 유지 보수를 줄이는 방향으로 해결 ARP를 이용한 동적 주소 결합 School of Computing & Information Department of Mobile Internet
(a) 호스트 A는 그 망에 있는 모든 기계들에게 (b) 호스트 B는 (IB, PB) 쌍을 포함하는 ARP 응답 <정리> 2 주소 해결 문제 (a) 호스트 A는 그 망에 있는 모든 기계들에게 IB를 갖는 ARP 요청을 브로드캐스트 (b) 호스트 B는 (IB, PB) 쌍을 포함하는 ARP 응답 School of Computing & Information Department of Mobile Internet
ARP 동작 <정리> 3 ARP란? School of Computing & Information Department of Mobile Internet
ARP 기능 32 bit IP 주소 : TCP/IP Protocol suit에서만 동작 여러 가지 형태의 물리적 하드웨어 주소를 처리 IP Addr ↔ Mac Addr ( Ethernet ) IP Addr ↔ ATM Addr ( Classical IP over ATM ) 점 대 점 접속은 ARP를 사용 안 함. School of Computing & Information Department of Mobile Internet
Example ARP Cache <정리> 3 ARP란? (계속) 호스트 A에서 호스트 B의 물리적 하드웨어 주소를 판단 호스트 A의 실행 ARP는 호스트 B의 IP 주소를 포함한 ARP 요구 패킷을 LAN에 방송 LAN상의 모든 호스트의 ARP는 ARP 요구 패킷을 수신 호스트 B의 ARP는 ARP 요구 패킷에서 자신의 IP 주소인지를 확인 송신한 호스트 A에게 호스트 B의 물리적 하드웨어 주소와 ARP 응답 패킷으로 응답 호스트 A에서 ARP 응답 패킷 수신 호스트 B의 IP주소와 물리적 하드웨어 주소의 매핑을 ARP 캐쉬에 저장 ARP Cache 각 호스트는 매번 ARP를 실행하지 않고 ARP 캐시에 물리적 주소 임시 저장 인터넷 주소로부터 하드웨어 주소로 최신정보 유지, 관리 정상적인 엔트리 종료 시간 : 엔트리가 만들어진 20 분 후 School of Computing & Information Department of Mobile Internet
ARP 패킷 형식 <정리> 3 ARP란? (계속) 대부분의 프로토콜들과는 달리, 패킷 길이는 망의 유형에 따라 다름 School of Computing & Information Department of Mobile Internet
Hardware type : 네트워크 유형 정의(이더넷 : 1) <정리> 3 ARP란? (계속) Hardware type : 네트워크 유형 정의(이더넷 : 1) Protocol type : 프로토콜 정의(IPv4 : 080016) Hardware length : 물리 주소의 바이트 단위 길이 Protocol length : 논리 주소의 바이트 단위 길이 Operation : 패킷 유형-ARP 요청(1), ARP 응답(2) Sender hardware address : 송신자 물리 주소 Sender protocol address : 송신자 논리 주소 Target hardware address : 타겟 물리 주소 Target protocol address : 타겟 논리 주소 School of Computing & Information Department of Mobile Internet
캡슐화(Encapsulation) ARP 패킷의 캡슐화 <정리> 3 ARP란? (계속) School of Computing & Information Department of Mobile Internet
ARP 패킷의 캡슐화 동작 과정 <정리> 3 ARP란? (계속) 송신자는 타겟 IP 주소를 알고있다 IP가 ARP에게 ARP 요청 메시지 생성 요청 (송신자 물리 주소, IP 주소; 타겟 IP 주소, 물리 주소(O)) 데이터링크층에 전달되면 발신지 주소는 송신자의 물리주소, 목적지 주소는 물리 브로드캐스트 주소로 하는 프레임에 캡슐화 모든 호스트나 라우터가 프레임을 수신하여 자신의 ARP에 전달 School of Computing & Information Department of Mobile Internet
타겟 시스템을 자신의 물리 주소를 포함한 ARP 응답 메시지 송신(유니케스트) 송신자는 응답 메시지를 받고 타겟 시스템의 물리 주소를 알게 된다 IP 데이터그램은 프레임으로 캡슐화 되어 목적지에 유니캐스트 School of Computing & Information Department of Mobile Internet
<정리> 3 ARP란? (계속) ARP 서비스가 사용되는 4 가지 경우 송신자가 호스트로서 같은 네트워크상에 다른 호스트에 패킷 전송(논리주소는 목적지 IP주소) 송신자가 호스트이고 다른 네트워크상에 있는 다른 호스트에게 패킷 전송(논리 주소는 라우터의 IP 주소) 송신자는 다른 네트워크상에 있는 호스트로 가는 데이터그램을 수신한 라우터(논리 주소는 다음 홉 라우터의 IP 주소) 송신자는 같은 네트워크 상에 있는 호스트로 가는 데이터그램을 수시한 라우터(논리 주소는 목적지 IP 주소) School of Computing & Information Department of Mobile Internet
프록시 ARP <정리> 3 ARP란? (계속) School of Computing & Information Department of Mobile Internet
ARP 성능 향상 방법 <정리> 3 ARP란? 호스트 A에서 B로 메시지 전송 시, B도 가까운 장래에 전송 요구가 있을 가능성이 큰 것으로 예측하여 필요 이상의 Network Traffic을 줄이기 위해, A는 B에게 자신의 IP-물리주소 binding 내용을 포함하여 전송 B는 바인딩 내용을 자신을 자신의 ARP 캐쉬에 저장 호스트 A가 초기 요청을 브로드캐스트 할 때 A의 IP주소와 물리주소 바인딩을 자신의 캐쉬에 저장 시스템 변경 후 부팅 시, ARP 브로드캐스트를 전송하여 새로운 주소 통보 School of Computing & Information Department of Mobile Internet
IP 물리주소 바인딩 내용을 버퍼(Cache)에 저장하여 ARP를 이용한 주소 검색 로드 경감 <정리> 4 주소 해결 캐쉬 컴퓨터에서 최근에 ARP를 이용해 얻은 IP 물리주소 바인딩 내용을 버퍼(Cache)에 저장하여 ARP를 이용한 주소 검색 로드 경감 패킷 전송 시 주소 바인딩 내용을 찾기 위해 ARP 요구를 보내기 전에 캐쉬 버퍼 검색 ARP 캐쉬에 원하는 바인딩이 있으면, 망에 브로드캐스트 할 필요 없음 School of Computing & Information Department of Mobile Internet
다른 기계의 요청에 응답하는 부분으로 구분 가능 ARP구현을 위한 요구 사항 IP 주소를 물리 주소로 대응 시키는 부분과 다른 기계의 요청에 응답하는 부분으로 구분 가능 ARP구현을 위한 요구 사항 송신되는 패킷에 대한 주소 해결 문제 주소 대응을 알기 위해 ARP 요청 브로드캐스트 문제 기계 A가 기계 B의 주소 바인딩 정보를 알고 있지만, B가 H/W 고장으로 교체된 경우 망으로부터 도착하는 ARP 수신 패킷 처리 목적지가 자신이 맞는가? ARP 응답 도달시 변경된 캐쉬 내용의 버전 처리 문제 School of Computing & Information Department of Mobile Internet
ARP 캡슐화와 식별 <정리> 5 ARP 구현 ARP 메시지의 망 프레임으로의 encapsulation 메시지는 물리 망 프레임에 캡슐레이션 된다 ARP 운반 프레임 식별을 위해 송신 측에서 프레임 헤더 부분의 type field에 특수 값 선정 이더넷의 경우, type field=080616 School of Computing & Information Department of Mobile Internet
구성 모듈 캐쉬 테이블 큐 출력 모듈 입력 모듈 캐쉬 제어 모듈 <정리> 6 ARP 설계 School of Computing & Information Department of Mobile Internet
캐쉬 테이블 송신자가 같은 목적지에 여러 개의 IP 데이터그램을 보낼 때 매번 ARP 프로토콜을 사용하는 것은 비 효율적 그런 다음 같은 수신자로 보내지는 데이터그램에 사용 School of Computing & Information Department of Mobile Internet
캐쉬 테이블의 엔트리 구성 <정리> 6 ARP 설계(계속) 상태(State) : FREE, PENDING, RESOLVED 하드웨어 유형(Hardware type) : 하드웨어 길이(Hardware length) : 프로토콜 길이(Protocol length) : 인터페이스 번호(Interface number) : 큐 번호(Queue number) : 시도(Attempt) : ARP 요청 횟수 타임아웃(Time-out) : 엔트리 수명 하드웨어 주소(Hardware address) : 목적지 하드웨어 주소 프로토콜 주소(Protocol address) : 목적지 IP 주소 School of Computing & Information Department of Mobile Internet
출력 모듈 <정리> 6 ARP 설계(계속) Receive: an IP datagram from the processing module 1. Sleep until an IP packet is received from IP software. 2. Check the cache table to find an entry corresponding to this IP packet. 3. If(found) 1. If(the state is RESOLVED) 1. Extract the value of the hardware address from the entry. 2. Send the packet and the hardware address to data link layer. 3. Return. 2. If(the state is PENDING) 1. Enqueue the packet to the corresponding queue. 2. Return. School of Computing & Information Department of Mobile Internet
3. Create a cache entry with state set to PENDING and <정리> 6 ARP 설계(계속) 4. If(not found) 1. Create a queue. 2. Enqueue the packet. 3. Create a cache entry with state set to PENDING and ATTEMPTS set to 1. 4. Send an ARP request. 5. Return. School of Computing & Information Department of Mobile Internet
입력 모듈 <정리> 6 ARP 설계(계속) 1. Sleep until an ARP packer(request or reply) arrives. 2. Check the cache table to find an entry corresponding to this ARP packet. 3. If(found) 1. If(the state is PENDING) 1. Update the entry. 2. While the queue is not empty 1. Dequeue one packet. 2. Send the packet and the hardware address to data link School of Computing & Information Department of Mobile Internet
2. If(the state is RESOLVED) 1. Update the entry. 4. If(not found) <정리> 6 ARP 설계(계속) 2. If(the state is RESOLVED) 1. Update the entry. 4. If(not found) 1. Create an entry. 2. Add the entry to the table. 5. If(the packet is a request) 1. Send an ARP relay 6. Return. School of Computing & Information Department of Mobile Internet
캐쉬 제어 모듈 <정리> 6 ARP 설계(계속) 1. Sleep until the periodic timer matures. 2. For every entry in the cache table 1. If(the state is FREE) 1. Continue. 2. If(the state is PENDING) 1. Increment the value of attempts by 1. 2. If(attempts greater than maximum) 1. Change the state to FREE. 2. Destroy the corresponding queue. School of Computing & Information Department of Mobile Internet
3. If(the state is RESOLVED) <정리> 6 ARP 설계(계속) 3. If(not) 1. Send an ARP request. 4. Continue. 3. If(the state is RESOLVED) 1. Decrement the value of time-out by the value of elagsed time. 2. If(time-out less than or equal to zero) 1. Change the state to FREE. 2. Change the state to FREE. 3. Return. School of Computing & Information Department of Mobile Internet
ARP 예제 캐쉬 테이블의 초기 값 <정리> 6 ARP 설계(계속) State Queue Attempt Time-out Protocol Addr. Hardware Addr. R 5 900 180.3.6.1 ACAE32457342 P 2 129.34.4.8 14 201.11.56.7 8 450 114.5.7.89 457342ACAE32 12 1 220.55.5.7 F 9 60 19.1.7.82 4573E3242ACA 18 3 118.11.8.71 School of Computing & Information Department of Mobile Internet
예제 1 ARP 출력 모듈은 IP 계층으로부터 목적지 주소가 114.5.7.89인 IP 데이터그램을 수신 캐쉬 테이블 검사 결과 : RESOLVED 상태 하드웨어 주소(457342ACAE32)와 패킷을 데이터링크층에 전달 캐쉬 테이블에 변화 없음 School of Computing & Information Department of Mobile Internet
예제 2 20초 후 목적지 주소가 116.1.7.22인 IP 데이터그램 수신 캐쉬 테이블 검사 결과 엔트리가 없음 <정리> 6 ARP 설계(계속) 예제 2 20초 후 목적지 주소가 116.1.7.22인 IP 데이터그램 수신 캐쉬 테이블 검사 결과 엔트리가 없음 새 엔트리를 테이블에 추가 엔트리 상태 : PENDING, Attempt : 1 모듈은 목적지에 해당하는 큐 생성 패킷을 큐에 넣고 데이터링크층을 통하여 ARP 요청을 목적지에 전달 School of Computing & Information Department of Mobile Internet
예제 2의 갱신된 테이블 <정리> 6 ARP 설계(계속) School of Computing & Information Department of Mobile Internet
예제 3 15초 후 목적지 주소가 188.11.8.71인 IP 수신 테이블 검사, 주소가 있음을 확인 <정리> 6 ARP 설계(계속) 예제 3 15초 후 목적지 주소가 188.11.8.71인 IP 수신 테이블 검사, 주소가 있음을 확인 타켓 하드웨어 주소 E3457342ACA 삽입 큐 18에 접근하여 큐에 있는 모든 패킷을 데이터링크층에 보낸다 School of Computing & Information Department of Mobile Internet
예제 3의 갱신된 캐쉬 테이블 <정리> 6 ARP 설계(계속) State Queue Attempt Time-out Protocol Addr. Hardware Addr. R 5 900 180.3.6.1 ACAE32457342 P 2 129.34.4.8 14 201.11.56.7 8 450 114.5.7.89 457342ACAE32 12 1 220.55.5.7 23 116.1.7.82 9 60 19.1.7.82 18 118.11.8.71 E34573242ACA School of Computing & Information Department of Mobile Internet
예제 4 25초 후 캐쉬 제어 모듈이 모든 엔트리 갱신 해결된 4개의 엔트리를 60씩 감소 <정리> 6 ARP 설계(계속) 예제 4 25초 후 캐쉬 제어 모듈이 모든 엔트리 갱신 해결된 4개의 엔트리를 60씩 감소 타임아웃이 0인 엔트리는 상태와 FREE Attempt 값 1씩 증가 Attempt 필드 값이 최대값 보다 크게 되므로 상태는 FREE, 해당 큐를 없애고 원래의 발신지에 ICMP를 보낸다 School of Computing & Information Department of Mobile Internet
예제 4의 갱신된 캐쉬 테이블 <정리> 6 ARP 설계 State Queue Attempt Time-out Protocol Addr. Hardware Addr. R 5 840 180.3.6.1 ACAE32457342 P 2 129.34.4.8 F 8 390 114.5.7.89 457342ACAE32 12 220.55.5.7 23 116.1.7.82 18 118.11.8.71 E34573242ACA School of Computing & Information Department of Mobile Internet
19.2 프로토콜 주소와 패킷 전달 ◑ 프로토콜 주소(IP 주소): 소프트웨어에 의해 제공되는 추상화 19.2 프로토콜 주소와 패킷 전달 ◑ 프로토콜 주소(IP 주소): 소프트웨어에 의해 제공되는 추상화 서로 다른 네트워크를 통하기 위해 필요 ◑ 네트워크 하드웨어: 프로토콜 주소를 이해하지 못한다. 물리 주소로만 전송이 가능 ◑ 다음 홉의 프로토콜 주소는 패킷이 보내지기 전에 전송이 가능한 네트워크의 하드웨어 주소로 변환되어야 한다. School of Computing & Information Department of Mobile Internet
19.3 주소 해석 ◑ 컴퓨터의 프로토콜 주소로부터 동등한 하드웨어 주소로 변환 19.3 주소 해석 주소 해석 (Address Resolution) ◑ 컴퓨터의 프로토콜 주소로부터 동등한 하드웨어 주소로 변환 ◑ 항상 단일 네트워크에 제한: 해당 네트워크에서만 가능 School of Computing & Information Department of Mobile Internet
19.4 주소 해석 기술 ◑ 프로토콜과 하드웨어의 주소지정 방법에 따라 결정 1) 주소 해석 방법들 ◑ 표 참조 19.4 주소 해석 기술 ◑ 프로토콜과 하드웨어의 주소지정 방법에 따라 결정 1) 주소 해석 방법들 ◑ 표 참조 메모리상의 표에 구속(Binding) 또는 매핑(mapping)정보를 저장 ◑ 닫힌-형식 계산 프로토콜 주소로부터 기본적인 부울 및 산술 연산을 사용하여 컴퓨터의 하드웨어 주소를 계산 ◑ 메시지 교환 주소를 해석하기 위해 네트워크를 통해 메시지를 교환 School of Computing & Information Department of Mobile Internet
19.5 표 참조(table lookup)로 주소 해석 ◑ 표 참조 접근 : 일반적 기법, 순차적으로 각 항목을 탐색 ◑ 해싱(hashing) ◑ 직접 인덱싱 School of Computing & Information Department of Mobile Internet
19.6 닫힌-형식(Closed-Form) 계산으로 주소 해석 ◑ 특정 하드웨어 주소가 할당될 수 있는 구성 가능(configurable) 주소지정을 사용 ◑ 하드웨어_주소 = IP_주소 & 0xff School of Computing & Information Department of Mobile Internet
19.7 메시지 교환(message-exchange)으로 주소 해석 ◑ 주소 해석 요청 및 응답의 메시지 교환 – 프로토콜 정의 ◑ 중앙 서버, 분산 처리의 두 방법 주소 해석의 비교 School of Computing & Information Department of Mobile Internet
19.8 주소 해석 프로토콜 ◑ 표 참조: WAN 을 통한 IP 주소 해석 ◑ 닫힌 형식 계산: 구성 가능 네트워크에서 사용 19.8 주소 해석 프로토콜 TCP/IP는 3개의 주소 해석 방법 중 어느 것이라도 사용 ◑ 표 참조: WAN 을 통한 IP 주소 해석 ◑ 닫힌 형식 계산: 구성 가능 네트워크에서 사용 ◑ 메시지 교환: 정적 주소 지정의 LAN 에서 사용 ◑ 주소 해석에 사용되는 메시지의 정확한 형식과 의미에 동의를 보장 하기위해, TCP/IP 프로토콜은 주소 해석 프로토콜(ARP)를 포함 School of Computing & Information Department of Mobile Internet
19.9 ARP 메시지 전달 School of Computing & Information Department of Mobile Internet
19.10 ARP 메시지 형식 School of Computing & Information Department of Mobile Internet
19.11 ARP 메시지 전송 School of Computing & Information Department of Mobile Internet
19.12 ARP 프레임 식별 School of Computing & Information Department of Mobile Internet
19.13 ARP 응답의 캐슁 ◑ 네트워크 트래픽을 감소시키기 위해 ◑ 캐쉬의 관리 – 캐쉬 참조, 제거 School of Computing & Information Department of Mobile Internet
19.14 도착하는 ARP 메시지 처리 1) 대부분의 컴퓨터 통신은 양방향 통신을 포함 2) 주소 변환(구속)은 메모리를 요청 만일 메시지가 한 컴퓨터로부터 다른 컴퓨터로 이동하면, 응답이 다시 돌아올 확률이 높다. 2) 주소 변환(구속)은 메모리를 요청 컴퓨터는 무한히 많은 수의 주소 변환 정보를 저장할 수 없다. School of Computing & Information Department of Mobile Internet
19.15 계층화, 프로토콜 주소 School of Computing & Information 19.15 계층화, 프로토콜 주소 School of Computing & Information Department of Mobile Internet