[컴퓨터 네트워크] ARP and RARP

신현식·2022년 10월 14일
0

컴퓨터 네트워크

목록 보기
8/34
post-custom-banner

✔ 호스트나 라우터가 다른 호스트나 라우터로 보낼 데이터그램을 가질 때마다 수신기의 Logical주소(IP)가 있다. 데이터그램은 물리적 네트워크를 통과할 수 있도록 프레임에 캡슐화되어야 하는데 이것은 발신자가 수신자의 Physical주소(MAC주소)를 필요로 한다는 것을 의미한다.

📌주소매핑

  • IP주소는 논리적인 주소로 인터넷에 접속된 컴퓨터를 구분한다. Ethernet 주소는 물리적인 주소로 해당 LAN에 접속된 컴퓨터를 구분한다. 매번 네트워크를 통과할때마다 IP주소와 MAC주소와의 매핑이 필요하다

    💡 Static mapping(정적 매핑)

    • IP주소와 MAC주소를 연결시키는 테이블을 고정적으로 생성하는 방법이다. 물리적주소(IP)가 자주 변경되기 때문에 주기적인 업데이트가 필요해 부담이 많이되기 때문에 잘 사용되지 않는다.

    💡 Dynamic mapping(동적 매핑)

    • 컴퓨터가 매번 IP주소와 MAC주소의 관계를 프로토콜을 이용하여 구한다.

📌Cash Memory

  • 시스템 A가 시스템 B로 보내야 하는 각 IP 패킷에 대해 ARP 요청을 브로드캐스트해야 하는 경우 ARP를 사용하는 것은 비효율적이다. IP 패킷 자체를 브로드캐스트할 수 있다. 시스템은 일반적으로 동일한 대상에 여러 패킷을 보내기 때문에 ARP 응답이 캐시된 경우 ARP가 유용할 수 있다.
    ARP 응답을 받은 시스템은 매핑을 캐시 메모리에 저장하고 캐시의 공간이 소진되지 않는 한 20~30분 동안 유지한다. ARP 요청을 보내기 전에 시스템은 먼저 캐시를 확인하여 매핑을 찾을 수 있는지 확인한다.

📌ARP(Address Resolution Protocol)

  • 주소 결정 프로토콜(Address Resolution Protocol, ARP)은 네트워크 상에서 IP주소를 MAC주소로 대응시키기 위해 사용된다. 처음 통신을 시작할 때는 상대방의 MAC주소를 모르는데 그때 상대방의 MAC주소를 알아내기 위하여 사용하는 프로토콜이다. ARP는 요청과 응답으로 구성된 프로토콜로 라우팅 되지 않는 단일 네트워크에서만 동작하며 IP와 MAC주소를 캡슐화하기 때문에 데이터 링크 계층과 네트워크 계층 사이에 있는 프로토콜이라고 보면 된다. physical주소(MAC주소)는 같은 네트워크 내에서만 의미가 있고 다른 네트워크에서는 의미가 없기때문에 Local address라고도 한다.

  • 💡 필요 이유: IP주소는 인터넷에 연결되어 있는 호스트나 라우터 장비의 인터페이스에 할당된 주소다. 즉 PC에 할당된 주소가 아니라 네트워크에 할당된 주소다. 그러므로 IP를 활용하여 메시지를 보내고자 하는 PC의 네트워크까지만 접근할 수 있다. 따라서 ARP프로토콜을 활용하여 MAC 주소를 알아내서 정확한 위치를 찾아내야 하는 것이다.
    IP주소는 가변적이기 때문에 IP주소만으로는 통신할 수 없고 MAC주소만 가지고 통신하기에는 전세계에 있는 모든 MAC주소를 등록해야하기 때문에 저장공간이 모자르다. 그렇기 때문에 여러대의 PC를 묶어 IP주소를 만들고 MAC주소를 거치게 되는 ARP가 필요한 것이다.

  • 💡 동작 과정

  1. 송신자는 목적지 IP Address를 지정해 패킷을 송신한다.

  2. IP는 ARP에 ARP request 메시지를 생성하도록 요청하고, 발신자의 물리적 주소, 발신자 IP 주소 및 대상 IP 주소를 채운다. 대상 물리적 주소 필드는 0으로 채워진다.

  3. ARP 메시지는 물리적 브로드캐스트 주소를 대상 주소로 사용하여 이더넷 프레임의 형태로 데이터링크 계층으로 직접 Encapsulation된다.

  4. 프레임에 브로드캐스트 대상 주소가 포함되어 있기 때문에 모든 호스트와 라우터는 프레임을 수신 후 자신의 ARP 프로토콜에게 전달한다.

  5. 목적지 IP Address가 일치하는 시스템은 자신의 물리주소(MAC 주소)를 포함하고 있는 ARP Reply 메시지를 보낸다.

  6. 최초 송신 측은 지정한 IP Address에 대응하는 물리주소(MAC 주소)를 획득할 수 있다.


[참조 블로그:https://coding-factory.tistory.com/720]

📌ARP packet 형식

  • Encapsulatoin of ARP packet

    ARP 패킷은 데이터 링크 프레임에 직접 캡슐화된다. 예를 들어, ARP 패킷은 이더넷 프레임에 캡슐화됩니다. type 필드는 프레임이 전달하는 데이터가 ARP 패킷임을 나타낸다.

  • request -> Destination address(MAC): 브로드캐스트, source address(MAC): 발신자의 MAC주소. TYPE: 0x0806(ARP임을 나타냄)

  • reply -> Destination address(MAC): 발신자의 MAC, source address(MAC): 수신자의 MAC주소. TYPE: 0x0806(ARP임을 나타냄)

  • Hardware Type (HTYPE) : 16bit, 네트워크 유형을 정의하며, Ethernet 환경의 경우 0x0001으로 세팅

  • Protocol Type (PTYPE) : 16bit, 프로토콜을 정의하며, IP 프로토콜 버전 4(IPv4)의 경우 0x0800 세팅

  • Hardware Length (HLEN) : 8bit, MAC 주소의 길이를 정의하며, Ethernet 환경의 경우 6 byte 세팅

  • Protocol Length (PLEN) : 8bit, 논리적 주소(IP)의 길이를 정의하며 IPv4의 경우 4 byte 세팅

  • Operation (OPER) : 16bit, 패킷의 유형이며 ARP 요청일 경우 1, ARP 응답일 경우 2 세팅

  • Sender Hardware Address (SHA) : 발신자의 MAC 주소 세팅

  • Sender Protocol Address (SPA) : 발신자 IP 주소 세팅

  • Target Hardware Address (THA) : 목적지 MAC 주소, 그러나 ARP Request의 경우 알 수 없음으로 0으로 표현

  • Target Protocol Address (TPA) : 목적지 IP 주소 세팅

예시: IP 주소가 130.23.43.20이고 물리적 주소가 B2:34:55:10:22:10인 호스트에는 IP 주소가 130.23.43.25이고 물리적 주소가 A4:6E:F4:59:83:AB인 다른 호스트로 보낼 패킷이 있습니다. 두 호스트가 동일한 이더넷 네트워크에 있습니다. 이더넷 프레임에 캡슐화된 ARP 요청 및 응답 패킷을 표시합니다.

📌Proxy ARP

  • 프록시 ARP는 호스트 집합을 대신하여 작동하는 ARP이다. 프록시 ARP를 실행하는 라우터가 이러한 호스트 중 하나의 IP 주소를 찾는 ARP 요청을 수신할 때마다 라우터는 자체 하드웨어(물리적) 주소를 알리는 ARP 응답을 보낸다. 라우터는 실제 IP 패킷을 수신한 후 패킷을 적절한 호스트 또는 라우터로 보낸다.

📌RARP(Reverse Address Resolution Protocol)

  • ARP 프로토콜과는 반대로 해당 MAC 주소에 맞는 IP값을 알아오는 프로토콜을 역순 주소 결정 프로토콜(Reverse Address Resolution Protocol, RARP)이라고 합니다.

  • RARP 요청은 브로드캐스트 방식으로 MAC주소를 담고있는 RARP 메세지를 만들어 수신자에게 IP주소를 요청하고, RARP 응답은 요청자의 IP주소를 유니캐스트로 전송한다.

  • 동작 방법은 ARP와 같으나 Operation type이 다르다. 3은 RARP 요청, 4는 RARP 응답이다. 또한 RARP의 Ethernet 타입은 0x8035이다

  • 💡 동작 과정(서버에서 IP 주소 얻기위해)

  1. 보낸 사람은 네트워크에 있는 다른 모든 호스트에 RARP 요청을 브로드 캐스트한다.

  2. RARP 요청 패킷에는 보낸 사람의 실제 주소가 들어 있다.

  3. RARP 요청 패킷을 수신 한 모든 호스트는 이를 처리하지만 RARP 서비스를 제공 할 수있는 권한이 부여 된 호스트만 RARP 서버라고 하는 호스트와 같은 RARP 요청 패킷에 응답한다.

  4. 승인 된 RARP 서버는 발신자의 IP 주소가 포함 된 RARP 응답 패킷을 요청한 호스트에 유니캐스트한다.

  • 한계: RARP는 IP 주소만 제공하지만 오늘날 컴퓨터에는 subnetMask, 라우터의 IP주소 등 다른 정보가 필요하기 때문에 BOOTP 및 DHCP로 대체되었다.
profile
전공 소개
post-custom-banner

0개의 댓글