ARP (Address Resolution Protocol )

Computer/ETC 2007. 3. 14. 11:10


1. ARP 는 Address Resolution Protocol 이라고 합니다.

ARP는 라우터 뿐만 아니라 호스트에서도 사용됩니다. 인터넷에서 모든 노드(라우터,호스트)들은 각각 인터넷주소(IP주소)를 가지고 있습니다. 그래서 인터넷 여기저기로 패킷이 오갈 수 있는 것이지요. 그런데, 노드는 이 인터넷 주소 말고, 지역적으로 사용할 수 있는 Link Layer Address(L2)를 가지고 있습니다. 보통, 이것은 Physical adddess, MAC주소, Ethernet 주소와 동일하게 됩니다. 기본적으로 패킷전달은 이 L2주소로 지역내에서 전달됩니다. 같은 네트워크 내에서 호스트와 호스트, 호스트와 라우터 간에는 L2주소를 가지고 패킷이 전달됩니다.

그럼.. 다시 처음으로 돌아와서 패킷을 전송하는 절차의 예에 대해 설명하겠습니다.
0. 호스트 A에서 호스트 B로 IP 패킷을 보내려 합니다.
1. 현재 호스트A는 호스트B의 IP주소는 알고 있습니다, 그러나 L2주소(이더넷주소)는 모르고 있습니다.
2. 호스트 A는 호스트B의 L2주소를 알기 위해서 ARP Request 패킷을 뿌립니다. 뿌려진 ARP Request는 같은 네트워크 내의 모든 노드에게 전달됩니다.
3. 호스트 C는 ARP Request 를 받았지만, 자기 IP주소를 이야기하고 있지 않으므로 그냥 무시합니다.
4. 호스트 B는 ARP Request를 받아보니, "호스트A라는 놈이 자기(호스트B)의 IP주소를 가지고 L2주소(MAC주소,Ethernet주소)를 알고 싶어하는 구나"라는 것을 인지하고, 호스트A에게 자기의 L2 주소를 ARP Response를 주어 응답해줍니다.
5. 호스트 A는 호스트 B로부터 온 ARP Response 를 받고, "오호, 호스트B의 L2주소가 xx:xx:xx:xx:xx:xx 로구나"하고 알게 됩니다.
6. 이제 호스트 A는 호스트 B로 L2주소를 써서 직접 IP패킷을 전송합니다.
7. 몇 초뒤 호스트 A는 호스트 B에게 IP패킷을 보내려 합니다. 호스트 A에게는 ARP캐쉬가 있어서 최근에 사용한 ARP Table을 가지고 있습니다. 그래서 앞의 1~5단계를 생략하고 바로 호스트 B의 L2주소를 이용하여 IP패킷을 직접 전송합니다.
8. 호스트 A의 ARP Cache (ARP Table)은 한참 사용하지 않으면 없어집니다.

일반적으로 TCP/IP패킷은 다음과 같이 생겼습니다.
[MAC 헤더] + [IP 헤더] + [TCP헤더] + [TCP 데이터그램]

PC에서 arp -a 명령을 내리면 ARP cache가 출력되는 것입니다. Dynamic 이라고 한 것은 자동으로 ARP패킷을 전송해서 얻은 것으로, 한참 사용하지 않을 경우 없어집니다. arp -s 명령을 써서 강제로 해당 IP의 L2주소를 세팅할 수 있는데 이때는 static 으로 표시되고, 직접 지우기 전에는 안 없어집니다. arp -d 를 하면 ARP cache를 모두 지울수 있습니다.


2. 이더넷 랜카드를 장착한 어떤 장비도 ARP테이블 사용합니다.

사용하는 목적은 속도때문입니다. 일종의 캐쉬정보죠

모든 로칼에서의 통신은 아이피가 아닌 mac주소를 참조해서 이루어집니다.

아이피는 단지 mac을 알기위한 도구일 뿐이죠.

한번 알아낸 mac은 arp테이블에 아이피 매핑되서 저장되며, 다음 통신에는 arp lookup을 하지 않고

바로 arp테이블을 참조하여 통신을 하게 됩니다.

당연히 aging time이 있어서 일정시간이 지나면 사라지겠죠.

그리고 로칼네트웍이 아닌 원격지(예:인터넷)와 통신을 할 경우에는

컴퓨터는 항상 게이트웨이 장비(예:라우터)로 해당 패킷을 보내게 됩니다.

ADSL이나 케이블도 ISP에 게이트웨이 장비가 존재하겠죠.

따라서 컴퓨터는 게이트웨이의 MAC주소만 알고 있으면 됩니다.

컴퓨터에서 arp -a 를 쳤을 때 나오는 MAC주소는 ISP의 게이트웨이 장비 주소이며,

다이나믹으로 뜨는 건 arp lookup을 통해서 자동으로 배워왔다는 의미입니다.

이런 경우는 거의 없지만, static으로도 줄 수 있는데, 이러면 static으로 표시가 됩니다.


참고로

라우터는 라우팅 테이블을 보고 해당 인터페이스로 패킷을 내보내고,

스위치는 맥어드레스 테이블(arp테이블과 다름)을 보고 해당 포트로 프레임을 내보냅니다.

라우터나 스위치에 있는 arp 테이블은 컴퓨터에 있는 것과 동일한 역할을 합니다.

도움이 되었기를 바라면서...


Ref. http://kud1981.egloos.com/3100261

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

WCDMA 인터넷 하기  (2) 2007.04.19
Microsoft Word 단축키  (1) 2007.03.31
원격 데스크탑에서 MATLAB 사용하기  (3) 2007.02.27
+ 익스플로러 새창이 안뜰때의 대처법  (2) 2005.10.10
윈도우 XP 팁들.  (1) 2005.07.06