티스토리 뷰

네트워크/팁

Internat 계층 (ARP)

프링글 2008. 6. 22. 16:43

Address Resolution Protocol


통신을 하기위해 IP주소를 가지고있는 MAC주소를 알아내는 프로토콜입니다.


반대로 MAC주소를 가지고 IP주소를 알아내는 게 RARP이며 이들 프로토콜은 IP와는 별개로


움직입니다. (icmp나 igmp는 ip안에 포합됩니다.)


앞서 arp프로토콜을 주고 받았다면 캐시에 정보가 저장되므로 다음통신때는 arp프로토콜을 보내지


않습니다.


commend창에 arp -a 명령으로 캐쉬에 저장된 MACaddress 내용을 확인할 수 있으며

arp -d로 캐쉬를 삭제할 수 있습니다.


 

1:1연결시 동작절차



서버의 ip주소를 알고있는 클라이언트의 응용계층은 전송계층에게 서버와의 연결을 요청합니다.


TCP/UDP는 연결요청 메시지를 만들어 인터넷계층에게 전달합니다.


인터넷계층은 링크계층에게 서버의 MAC주소에 대한 정보를 제공해야 합니다. 하지만 현재로선

알지 못하므로 arp프로토콜을 만들어 링크계층으로 전달합니다.


링크계층(Ethernet header)는 목적지(destination)mac주소를 FF:FF:FF:FF:FF:FF로 설정하여

물리층으로 보냅니다.


다음과 같이 만들어진 arp request패킷은 네트워크망 전체로 방송(broadcast)합니다.


1:1 연결이니 바로 서버에게 도착하며 서버에서는 arp response패킷을 만들어 클라이언트로

보냅니다.


이제 서버의 mac주소를 알게된 클라이언트는 응용계층에서 지정한 서비스를 이용하여 통신을

할 수 있습니다.



다중연결에서의 동작절차


서버와 클라이언트는 라우터를 경유하여 연결되어 있기 때문에


클라이언트가 arp request패킷을 방송하면 패킷을 받은 라우터는 자신의 캐쉬에서 mac주소를


찾아내어 클라이언트에게 arp response패킷을 보냅니다.


(라우터 역시 자신이 관리하는 네트워크망의 단말들에게 arp request를 보냅니다.)


※arp는 라우터를 통과하지 못한다는거!

 

--------------------------------------------------------------------------

  ARP패킷

┌────────────────────────┐

6    Destination MAC address                                              

├────────────────────────┤        MAC header

6    Source MAC address                                        

├────────────────────────┤

2    EtherType(ARP=0x0806/RARP=0x8035/IP=0x0800)  

├────────────────────────┤

2    Hardware type(ethernet일경우 0001)                    

├────────────────────────┤

2    Protocol type(IP=0x0800)                                    

├────────────────────────┤

1    MAC address size(ethernet=6)                           

├────────────────────────┤

1    Protocol size(ip address=4)                               

├────────────────────────┤

1    Option(ARPreq=1/ARPres=2/RARPreq=3/RARPres=4)

├────────────────────────┤

6    Sender MAC address                                        

├────────────────────────┤

4    Sender IP address                                            

├────────────────────────┤

6    Targer MAC address                                        

├────────────────────────┤

4    Target IP address                                             

├────────────────────────┤

N    PAD                                                               

├────────────────────────┤

4    FCS                                                                

└────────────────────────┘




ping을 보내기전에 arp를 보내어 mac주소를 알아온다.

사용자 삽입 이미지

 
 
 
 
arp request 패킷

사용자 삽입 이미지





arp response패킷

 

사용자 삽입 이미지
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크