안녕하세요. BlockDMask입니다.

오늘은 ARP 프로토콜에 대해 알아보겠습니다.


> ARP 프로토콜 이란?

  • ARP Protocol (Address Resolution Protocol - 주소 결정 프로토콜)

    네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응(bind) 시키기 위해 사용되는 프로토콜이다. 여기서 물리적 네트워크 주소는 이더넷의 48비트 네트워크 카드(NIC) 주소를 뜻한다. (위키백과)

    - TCP/IP 3계층(네트워크계층)의 IP Address 를  2계층(데이터링크계층)의 MAC address로 대응 시킬때 사용하는 프로토콜 입니다.

    - 내가 이해한 내용 : ARP 계층은 최종적으로 목적지에 데이터를 보낼 곳의 주소를 확인하는 프로토콜, 예를들어 우리가 "102호의 몇년생 김길동" 인걸(IP Address) 알지만 어느지역 어느아파트 무슨동(MAC Address)를 모르기 때문에 모든 사람들에게 문자를 보내는겁니다. "102호의 몇년생 김길동 이신분? 나머지 집주소좀 알려주세요~" 이렇게 보내는 것을 해주는 프로토콜이 ARP 프로토콜 입니다.

    **IP주소와 MAC주소에 관한 설명은 [여기] 있습니다.
    **OSI 7계층과 TCP/IP 4계층 (교수님께서 설명해주신건 TCP/IP 5계층)에 관한 설명은 [여기] 있습니다.

    - 그림으로 살펴 보겠습니다.


  • 위 그림과 같이 3계층(network)의 IP 주소를 2계층(data link)의 MAC 주소와 매칭(binding, matching) 해주는 프로토콜 입니다.


> Wireshark 를 통해 ARP 프로토콜을 살펴보겠습니다.

z

  • wireshark에서 ARP 프로토콜을 검색한 결과입니다. 

  • Packet List(패킷리스트)영역을 살펴보면 7    과 같이 wireshark 에서 분석하여 요약한 정보를 확인할 수 있습니다. 
    Info를 보면 "Who has 172.16.40.82? Tell 172.16.40.1" 누가 172.16.40.82 IP를 가지고 있나요 여기(172.16.40.1)로 대답좀 해주세요 !
    라는 프로토콜이 ARP이고, Destination이 Broadcast임을 알 수 있습니다.

  • Packet Details(패킷 상세)영역의 아랫부분 1,2,3,4 를 살펴보면 보내는사람의 MAC, IP address를 알고있고, 받는 사람의 IP address도 알고있지만,
    받는사람(target mac address)를 00:00:00:00:00:00 으로 비어있습니다.
    이는 받는 사람의 MAC주소를 모릅니다. 알고싶습니다~ 라는 뜻입니다.
    또한 Opcode(operation code)가 request(1)로 되어있는것은 "destination 에게 이러한 내용을 요청하는 패킷입니다."라는 뜻 입니다.
    ** 응답하는 Opcode는 reply(2)가 있습니다.

  • Packet Details(패킷 상세)영역의 가운데 부분을 보면 패킷의 5번 부분 Destination이 Broadcase (ff:ff:ff:ff:ff:ff)으로 되어있습니다. 이는 네트워크 상의 모든 노드에게 이 패킷을 보낸다는 뜻입니다.
    **네트워크 상.. 이라는 부분이 어디까지 보낸다는 것인지 확실하지는 않지만 일단 라우터 까지 보낸다는 이야기 같습니다;; (정확하지 않습니다.. 죄송..)

  • 6번 영역을 보면 이 패킷의 Type 을 알 수 있습니다. ARP 라고 나와있네요.

 **wireshark의 화면설명에 대한것은 [여기] 있습니다


  • 종합해서 정리한다면

    목적지의 IP address는 알지만, MAC address를 모를 때 Target MAC address 부분을 00:00:00:00:00:00으로 채우고
    패킷의 목적지를 broadcast(ff:ff:ff:ff:ff:ff) 로 하여 네트워크 상의 모든 노드들한테 뿌려서
    Target MAC address를 얻어오는 것을 ARP protocol이 하는 일 입니다

++ 반대로 목적지의 MAC 주소는 알지만, 목적지의 IP 주소를 모를때
네트워크 상에서 IP 주소를 요청하기 위해 사용하는 프로토콜은 RARP protocol 입니다.


<출처>

https://ko.wikipedia.org/wiki/%EC%A3%BC%EC%86%8C_%EA%B2%B0%EC%A0%95_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C

https://ko.wikipedia.org/wiki/ARP_%EC%8A%A4%ED%91%B8%ED%95%91

+ 방문 감사합니다. 좌측에 더 많은 글이 있습니다.