제17장
프로토콜 주소 변환 (ARP : Address Resolution Protocol)
프로토콜 S/W는 목적지 컴퓨터의 IP주소를 그와 동등한 H/W주소로 변환
주소 변환 수행의 3가지 일반적인 메커니즘
- 주소변환 정보를 포함하는 표에 의존, WAN H/W에서 주로 사용
- 변환을 위해 수학적 함수 사용
- 두 개의 컴퓨터가 Network를 통해 메시지를 교환하는 분산 처리를 사용
프로토콜 주소와 패킷 전달
- 인터넷을 통한 패킷 전달 : 프로토콜 목적지 주소를 사용하여 S/W에 의해 전달
- S/W는 패킷 발송시 IP주소로 동작(Next-hop, Packet 목적지 주소 : IP주소)
- 물리적 네트워크 H/W는 IP주소를 이해 못함 ⇒ H/W 프레임 형식과 H/W주소로의 변환 필요
- Next-hop 프로토콜 주소는 프레임이 보내지기 전에 동등한 H/W주소로 변환되어야 함
주소해석(Address Resolution)
- 컴퓨터의 프로토콜 주소로부터 동등한 H/W주소로 변환하는 것
- 한 Network에서 지역적임(Local개념) : 양쪽 컴퓨터가 동일한 물리적 Network에 부착된 경우만 해결 예) (p.288, 그림17.1)
- 호스트나 라우터는 동일한 물리적 네트워크상의 다른 컴퓨터로 전송할 필요있을 때 주소해석을 사용
주소해석 기술
- 프로토콜과 H/W의 주소지정 방법에 따라 결정
예) Ethernet 주소지정, ATM 주소지정 간 서로 상이
- 라우터, Multi Homed Host : 하나이상의 주소 해결 유형을 사용할 수 있음
- 주소해석 알고리즘
- Table Lookup(표 참조)
: 주소해석이 필요할 경우 소프트웨어가 탐색하는 메모리에 있는 표에 저장(Binding)
- 폐쇄형 계산(Closed-form Computation)
: 컴퓨터의 H/W주소가 프로토콜 주소로부터 기본적인 부울 및 산술 연산을 사용하여 계산될 수 있도록 주의깊게 선택
- 메시지 교환
: 한 컴퓨터가 주소 바인딩을 요구하는 메시지를 보내고, 다른 컴퓨터는 요청된 정보를 포함한 응답을 전송
Table Lookup(표 참조)으로 주소해석
- 주소 바인딩에 관한 정보를 포함하는 자료구조가 요구(배열)
- 두 개의 필드 (P,H)쌍 : P는 프로토콜 주소, H는 동등한 H/W주소
예) (p.290, 그림17.2) : 주소 바인딩 표
- 각 물리적 Network에 대해 별개의 주소 바인딩표가 사용
: 표의 모든 IP주소는 동일한 전치부(Prefix)를 가짐 (예) (그림17.2)는 클래스 C 번호 197.15.3.0인 Network
- 표 참조의 주요 장점 : 일반성
- Network상 컴퓨터는 임의의 집합에 대한 주소 바인딩을 저장할 수 있음
- 프로토콜 주소는 임의의 H/W주소에 매핑 가능
- 주소 해석을 위한 표 참조 알고리즘이 간단, 프로그래밍에 용이
- 12개 미만 Host를 가진 Network : 순차 탐색
- 대형 Network : 과도한 cpu시간이 요구되는 순차탐색보다 계산의 효율성을 개선하기 위해 해싱이나 직접 인덱싱 사용할 수 있음(표준구현)
- 직접인덱싱 : 프로토 콜주소가 작은 범위로부터 컴팩트하게 할당될 때 가능
예) (p.290, 그림17.2) → (p.292, 그림17.3) : IP 주소의 Host 후치부(Suffix)를 H/W주소, 1차원 배열에 대한 인덱스로 사용
폐쇄형(Closed-Form)계산으로 주소 해석
- 구성 가능 주소 (Configurable Addressing)를 사용한 Network에서 사용되는 주소 해석 기법
해석자(Resolver)는 IP주소를 H/W주소로 매핑하는 수학적 함수를 계산
- 함수계산에 필요한 연산은 가능한한 간단하게
예)컴퓨터의 IP주소의 Host 부분을 Computer H/W주소와 동일하게 선택
- 클래스 C Network, IP주소 220.123.5.1 ↔ H/W 주소 1
220.123.5.2 ↔ H/W 주소 2 Hardware-address = IP-address & 0x55
메시지 교환(Message-exchange)으로 주소해석
- 주소를 해석할 필요가 있는 Computer가 Network을 통해 메시지를 보내고 응답을 받는 분산접근
- 메시지는 프로토콜 주소를 명시하는 요청(Request)을 보내고 응답은 그에 대응하는 H/W 주소를 운반
- 주소해석 요청이 보내어져야 할 곳
- 주소 해석 요청에 응답하는 작업을 할당받은 서버(Server) : 서버가 여러개인 경우 응답받을 때까지 순차적 또는 모든 서비스에게 동시에 Request를 Broadcast
- 중앙 집중의 장점 : 주소 해석의 구성, 관리, 제어에 용이
- 특별한 주소 해석 서버없이 Network 상의 각 컴퓨터가 자신의 주소 해석 요청에 응답
: 컴퓨터가 Network 상으로 요청을 Broadcast, 주소 검사 후 Request가 컴퓨터의 주소와 일치할 경우 Response함
- 분산계산의 이점 : 추가적 H/W및 서버의 유지 비용, 대형 Network에서 주소 해석 서버들의 병목적 현상(Deadlock) 발생 가능성
- (p.294, 그림17.4) 세가지 방식의 주소 해석 비교
- 주소 해석 프로토콜
- TCP/IP는 세 가지 주소 해석 기법 모두 사용할 수 있음 : H/W에 의해 사용되는 주소 지정방법에 의존
- Table Lookup : WAN을 통한 IP주소 해석
- 폐쇄형 계산 : 구성가능 Network에서 사용
- 메시지 교환 : 정적 주소 지정을 갖는 LAN H/W에 사용
⇒ TCP/IP는 주소 해석 프로토콜(Address Resolution Protocol : ARP)을 포함
- ARP표준은 요청(Request)과 응답(Response)의 두 개의 기본 메시지 유형을 정의
- 요청 메시지 : IP주소와 대응되는 H/W주소를 요청
- 응답 메시지 : 요청에 보내진 IP주소와 H/W주소 모두를 포함
- ARP 메시지 전달
- ARP 표준안에서 Network을 통해 전송되는 방법을 명시
- ARP 요청 메시지는 H/W 프레임에 위치해야 하고 Network 상 모든 컴퓨터로 Broadcasting
- 각 Computer의 IP주소 검사
- 지정된 컴퓨터의 응답 : 응답은 프레임에 위치되고 요청을 발생한 Computer로 직접 되돌려짐
예) (p.295, 그림17.5) : Ethernet상 컴퓨터들에 의한 ARP교환
ARP 메시지 형식
- ARP 표준안은 ARP 메시지에 대한 일반적인 형식 묘사
- 임의의 물리 주소와 임의의 프로토콜 주소와의 Binding에 사용될 수 있음 (일반성) : ARP 메시지 시작부에 고정된 크기의 H/W주소와 프로토콜 주소의 주소 길이 필드 포함
- 예) (p.297, 그림17.6) : IP(4byte)-Ethernet(6byte)주소 해석을 위해 사용되는 ARP 메시지 형식
- IP 프로토콜 주소 (4 octet)를 해석할 때 이더넷 H/W상에서 사용된
(물리주소 6 octet) 28 octet ARP 메시지 형식
- H/W Address Type : 송신자가 대답을 찾는 것에 대한 H/W 인터페이스 유형. Ethernet은 1
- Protocol Address Type : 송신자가 제공한 상위 레벨 프로토콜 주소의 유형, IP는 0x01000
- HADDR LEN / PADDR LEN : H/W와 프로토콜 주소 각각의 길이(Byte 수)를 명시, 임의의 망에 사용될 수 있도록 해줌
- Operation(동작) Field : 메시지가 ARP요청(1), ARP응답(2), PARP요청(3), RARP응답(4)를 명시
- ARP 메시지 전송 (ARP 캡슐화)
- 컴퓨터간 ARP 메시지의 전달은 H/W 프레임에 실려 운반됨
- 캡슐화(Encapsulation) : 전송을 위해 ARP 메시지가 프레임의 데이터 부분에 위치시키는 것
- ARP 프레임 식별
- 프레임 헤더의 Type Field를 이용해 그 프레임이 ARP메세지를 포함하는지를 명시
- 송신자는 적절한 값 헤더에 할당, 수신자 Network S/W는 각 프레임의 Type Field 조사
예) Ethernet 표준안 : ARP메세지를 운반하는 이더넷 프레임의 Type Field는 0x01006
- 이더넷은 ARP에 단일 Type값을 할당 : 요청과 응답의 구분은 Operation(동작)필드로 이루어짐
ARP 응답의 캐슁
- 메시지 교환에 의한 주소 바인딩 방식의 비효율성(Broadcasting)
: 각 ARP 전송을 위해 3개의 packet이 Network를 통해 전달(ARP Request, Response, Packer Deliver)
- Network 트래픽 감소를 위해 (통신비용절감) 최근에 ARP를 이용해 얻어진 IP-물리주소 바인딩 내용을 버퍼(표)에 유지, 캐쉬로서 관리 ⇒ 각 항목은 응답이 도착할 때마다 갱신
- 컴퓨터는 Network 사용 전 먼저 캐쉬탐색, 원하는 바인딩 찾을 경우 Broadcasting없이 이용. 없을 경우, ARP방송 후 응답, 캐쉬갱신
도착하는 ARP메시지 처리
- ARP 도착시 수신자의 수행 두 가지 기본단계
- 송신자의 주소 바인딩추출 후 캐쉬검사 ⇒ 이전에 저장된 바인딩을 대치(Updating)하기 위해 들어오는 ARP메세지의 바인딩을 사용 : 송신자의 H/W주소 변경시 유용
- 수신자는 메시지가 요청/응답을 결정하기 위해 메시지의 Operation필드를 검사
- 응답메시지이면 수신자는 이전에 요청을 생성 ⇒ 바인딩을 기다림
- 요청 메시지이면 수신자는 TARGET PADDR필드와 지역 프로토콜 주소를 비교. 일치할 경우, 컴퓨터는 요청의 목표지이고 ARP응답을 보내야 함
- 응답의 형성 : 들어온 메시지에서 송신자 및 목표지의 바인딩을 반대로 하고, SENDER HADDR필드에 H/W주소를 삽입하고, operation필드를 2로 변경
- 송신자의 주소 바인딩 추출은 ARP성능을 최적화시킴
: 대부분의 컴퓨터 통신은 2방향 통신으로 한 메시지가 한 컴퓨터로부터 다른 컴퓨터로 이동하면 응답이 다시 돌아올 확률이 높음
- ARP요청의 목표지인 컴퓨터에서만 최적화가 수행
: 주소 바인딩은 메모리를 요청하기 때문에 컴퓨터는 무한히 많은 수의 주소 바인딩을 저장할 수 없음
계층, 주소 해석, 프로토콜 주소
- 주소 해석 : 네트워크 인터페이스 계층과 연관된 기능
- 주소 해석 S/W : 물리적 주소지정의 세부사항을 감추고, 보다 상위 계층의 S/W가 프로토콜 주소지정을 사용하도록 허용(p.298, 그림17.9)
|