블로그 이미지
그냥 닥치고 해;
상Q

Notice

Recent Post

Recent Comment

Recent Trackback

Archive

calendar

1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
  • total
  • today
  • yesterday
2009. 6. 19. 02:01 Computer/Network
네트워크 계층 주소(가령, 인터넷 IP 주소)와 링크 계층 주소(즉, MAC주소)가 있으므로 이들 주소 사이에 변환이 필요하다. 인터넷에서는 이것을 ARP(address resolution protocal)라고 한다.

 

  각 노드는 하나의 IP 주소를 가지며 각 노드의 어댑터는 하나의 MAC 주소를 가진다. IP 주소는 점으로 구분한 십진(dotted-decimal) 표기법으로 표현하고 MAC주소는 16진 표기법으로 표현한다. 이제 IP 주소 222.222.222.220을 가진 노드가 노드 222.222.222.222로 IP 데이터그램을 전송하려고 한다고 가정하자(가령, 목적지 노드 222.222.222.222는 웹서버이고, 송신 노드 222.222.222.220은 DNS로부터 웹 서버의 IP 주소를 알아냈다고 하자). 이 예에서 근원지와 목적지 노드가 동일한 네트워크(LAN)에 있다. 데이터그램을 전송하기 위해서, 근원지 노드는 반드시 자신의 어댑터에게 IP 데이터그램뿐만 아니라 목적지 노드 222.222.222.222의 MAC 주소도 주어야 한다. IP 데이터그램과 MAC 주소가 어댑터에게 주어지면, 송신 노드의 어댑터는 목적지 노드의 MAC 주소가 포함된 링크 계층 프레임을 구성해서 그 프레임을 랜으로 전송한다.

  중요한 질문은 ‘송신 노드가 어떻게 IP 주소 222.222.222.222를 가진 목적지 노드의 MAC 주소를 결정할 수 있는가’ 이다. 우리는 이것이 ARP를 사용할 것을 추측할 수 있다. 송신 노드의 ARP 모듈은 입력 값으로서 동일한 랜상의 임의의 IP 주소를 선택하고 대응되는 MAC 주소를 돌려준다. 앞에서 말한 것처럼 송신 노드 222.222.222.220은 자신의 ARP 모듈에게 IP 주소 222.222.222.222를 준다. 이러면 ARP 모듈은 대응하는 MAC 주소로 응답한다.

  따라서 ARP는 IP 주소를 MAC 주소로 변환해 준다. 여러 면에서 ARP는 호스트 네임을 IP 주소로 해결하는 DNS와 비슷하다. 그러나 이들 변환기의 중요한 차이점 하나는, DNS가 인터넷의 임의의 장소에 있는 호스트의 호스트 네임을 해결하는 반면에, ARP는 동일한 랜상에 있는 노드의 IP 주소만을 해결한다는 것이다. 만일 캘리포니아에 있는 노드가 미시시피에 있는 노드의 IP 주소를 해결하기 위해 ARP를 사용하려고 한다면, ARP는 오류 메시지를 반환할 것이다.

 

  각 노드(호스트 또는 라우터)는 노드의 메모리 램에 ARP 테이블을 갖고 있다. 이 ARP 테이블은 IP주소와 MAC 주소 간의 매핑 정보를 포함한다. ARP 테이블은 또한 테이블에서 각 매핑이 언제 삭제되는지를 나타내는 TTL(Time-To-Live) 값을 포함한다. 이 테이블에 서브넷상의 모든 노드에 대한 엔트리를 가지고 있지 않아도 된다. 즉, 어떤 노드들에 대한 엔트리는 테이블에 전혀 없을 수도 있다. 일반적인 엔트리의 종료 시간은 엔트리가 테이블에 들어간 후 20분이다.

이 제 노드 222.222.222.220이 같은 서브넷의 다른 IP 주소로 가는 데이터그램을 전송하려 한다고 하자. 송신 노드는 목적지 노드의 IP 주소로부터 MAC 주소를 획득해야만 한다. 이것은 송신 노드의 ARP 테이블에 목적지 노드에 대한 엔트리가 있으면 쉬운 일이다. 그러나 ARP 테이블에 목적지 노드에 대한 엔트리가 없다면 어떻게 해야 할까? 노드 222.222.222.220이 노드 222.222.222.222로 데이터그램을 전송하려 한다고 가정하자. 이 경우에 송신 노드는 주소를 해결하기 위해 ARP 프로토콜을 사용한다. 먼저 송신 노드는 ARP 패킷이라는 특수 패킷을 구성한다. ARP 패킷은 송신 및 수신 IP 주소와 MAC 주소를 포함하는 필드들을 갖고 있다. ARP 질의 패킷과 응답 패킷 모두 같은 형식을 가진다. ARP 질의 패킷의 목적은 해결하려는 IP 주소에 대응되는 MAC 주소를 결정하기 위해 서브넷의 다른 모든 노드에게 질의하는 것이다.

  앞서 말한 예에서, 노드 222.222.222.220은 ARP 질의 패킷을 어댑터에게 전달한다. 그리고 이때 어댑터에게 랜 브로드캐스트 주소, 즉 FF-FF-FF-FF-FF-FF로 패킷을 전송하도록 지시를 함께 전달한다. 어댑터는 ARP 패킷을 링크 계층의 프레임에 캡슐화하고, 이 프레임의 목적지 주소로 브로드캐스트 주소를 사용한다. 그리고 그 프레임을 서브넷으로 전송한다. 이전의 주민등록번호/우편 번호에 대한 비유에서, ARP 질의는 어떤 회사(예: 서울의 A회사)의 작은 칸막이 공간으로 가득한 방에 대고 “주소가 서울 A회사 112호 13번째 칸(칸막이 공간)에 있는 사람의 주민등록번호는 무엇이지?”라고 소리치는 것과 같다. ARP질의를 포함하고 프레임은 서브넷상의 다른 모든 어댑터들에 의해서 수신되면, 브로드캐스트 주소 때문에, 각 어댑터는 프레임에 들어 있는 ARP 패킷을 자신의 부모 노드로 전달한다. 각 노드는 자신의 IP주소가 ARP 패킷에 들어 있는 목적지 IP 주소와 일치하는지 검사한다. 일치하는 노드는 하나이며, 이 노드는 요구된 매핑 정보를 포함하는 응답 ARP 패킷을 질의한 노드로 돌려보낸다. 그러면 질의 노드 222.222.222.220은 자신의 ARP 테이블을 갱신하고 자신의 IP 데이터그램을 전송한다.

  ARP 프로토콜에는 주목할 만한 흥미로운 점이 두가지 있다. 첫째, 질의 ARP 메시지는 브로드캐스트 프레임으로 전송되는 반면에, 응답 ARP 메시지는 표준 프레임으로 전송된다는 점이다. 둘째, ARP는 플러그 앤 플레이이다. 즉, 노드의 ARP 테이블이 자동으로 구축된다는 점이다. 시스템 관리자가 테이블을 구성하지 않아도 된다. 그리고 노드가 서브넷으로부터 연결이 끊어지면, 이 노드에 대한 엔트리는 그 서브넷에 남은 노드들의 테이블에서 제거된다.

'Computer > Network' 카테고리의 다른 글

OSI 7 Layer  (0) 2010.04.30
MAC 주소  (0) 2009.06.19
회선 교환과 패킷 교환  (0) 2009.06.19
CSMA/CD 프로토콜  (0) 2009.06.19
LAN 의 거리의 한계를 극복하기 위한 방법  (0) 2009.06.19
posted by 상Q