선릉역 1번 출구

ARP protocol 본문

Computer/Network

ARP protocol

choideu 2022. 10. 25. 08:39

ARP(address resolution protocol) protocol

IP 주소를 가지고 MAC 주소를 알아내는 3계층 프로토콜임

IP 주소와 이에 해당하는 MAC 주소는 각 IP 호스트의 ARP cache table라 불리는 메모리에 테이블 형태로 저장된 후 패킷 전송 시 사용함

해당 내용은 dynamic과 static으로 나눌 수 있음

dynamic: 1, 2분 정도 지속됨(arp request/reply를 통해 동적으로 저장된 것)

static: 시스템이 종료돼서 재부팅될 때까지 남아 있음

 

 

과정

1. ARP request를 브로드캐스트로 전송함(목적지의 물리주소를 모르기 때문에 브로드 캐스트로 진행함)

- 도메인 내 모든 호스트가 수신

 

2. 모든 호스트와 라우터는 송신자가 보낸 ARP 요청 패킷을 수신함

 

3. 해당되는 수신자는 자신의 논리주소와 물리주소를 적은 응답 패킷(reply)를 유니캐스트로 전송함

 

  1. A는 자신의 ARP 캐시 테이블에서 B의 MAC주소를 찾음, 여기서 B의 IP주소를 찾으면 그 MAC 주소를 사용해 패킷을 전달함
  2. B의 MAC주소를 찾지못하면 ARP request 패킷을 네트워크 상에 브로드캐스팅함(브로드캐스팅 도메인_목적지 MAC 주소는 ff:ff:ff:ff:ff:ff)
  3. 브로드캐스팅된 ARP request 패킷을 받은 각 호스트들은 자신의 IP 주소에 대한 request가 아니므로 무시하고 B는 자신의 IP 주소에 대한 request여서 이를 처리함
  4. B는 자신의 ARP 캐시에 HOST A의 MAC 주소를 저장하고 자신의 MAC 주소를 ARP reply 패킷으로 A에게 알려줌
  5. 이때 B는 A의 MAC 주소를 알고 있어 ARP request의 과정이 필요 없음

*해당 ARP 캐시 테이블에 저장된 내용은 연결이 종료된 후 일정 시간이 지나면 사라짐

 

다른 네트워크 대역에서의 ARP

 

arp protocol structure

request 

hardware type: 하드웨어 주소의 유형을 나타냄, 이더넷 통신 시 값은 1로 설정

- 1(Ethernet), 2(Experimental Ethernet), 3(Amateur Radio AX.25), 4(Proteon ProNET Token Ring), 5(Chaos), 6(IEEE 802.3 networks)

- 7(ARCNET), 8(Hyperchnnel), 9(Lanstar), 10(Autonet Short Address), 11(LocalTalk), 12(LocalNet(IBM PCNet or SYTEK LocalNET)

 

protocol type: 매핑대상인 프로토콜 주소의 유형을 나타냄. IPv4의 경우 0x0800으로 설정

hardware address length: 하드웨어 주소의(MAC) 길이를 byte로 나타냄. 이더넷 상에서 6으로 설정

protocol address length: 프로토콜 주소의 길이를 byte로 나타냄. IPv4의 경우 4로 설정

operation code: arp의 구체적인 동작을 나타냄

동작
1 ARP request
2 ARP reply
3 RARP request
4 RARP reply

 

source hardware address: 송신자의 MAC 주소

source protocol address: 송신자의 IP 주소

destination hardware address: 수신자의 MAC 주소

destination protocol address: 수신자의 IP 주소

 

+ 참고 사이트

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=sujunghan726&logNo=220322717607 

https://www.stevenjlee.net/2020/06/07/%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-arp-address-resolution-protocol-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C/

 

[이해하기] ARP (Address Resolution Protocol) 프로토콜 | STEVEN J. LEE

ARP (Address Resolution Protocol) 프로토콜 이란, 소프트웨어적으로 할당된 논리 주소인 IP 주소를 (L3, 네트워크 계층) 실제적인 물리 주소인 MAC 주소 (Media Access Control / L2, 데이터링크 계층) 로 바꾸어주

www.stevenjlee.net

 

ARP 에 대해 배우면 몇몇 의문점을 가지시는 분들이 있습니다.

1. 그냥 IP 주소로 통일하면 되지, MAC 주소가 왜 필요하지?

2. 그냥 MAC 주소로 통신을 하면 되지, IP 주소가 왜 필요하지?

 

1번의 해답은 IP 주소가 고정적이지 않기 때문입니다. IP주소는 사용자가 바꿀 수 있으며 동적인 특성을 가집니다. 이런 유연성때문에 표준으로 채택되었습니다. 그러니 유동적이지 않은. 대상을 식별할 수 있는 고정적인 주소가 필요하게 됩니다. 

 

그렇다면 고정적인 주소만 이용해서 통신을 하면 되지 않을까요? 실제로 SPX/IPX와 같은 예전의 프로토콜들은 네트워크ID와 물리적주소만을 이용해서 통신하였지만, 유연성이 부족했습니다. IP 주소는 먼 거리의 통신에서 데이터가 길을 찾아가기 쉽게 하기위한 것이므로 MAC 주소만 가지고 통신하기에는 데이터가 길을 찾기 너무 어려웠겠죠.

 

이러한 통신규약, 표준에 대한 것을 파고들면 끝이 없으므로 어느정도 감만 잡으시고 넘어가셔야 정신건강에 이롭습니다.

 

이번 포스팅인 ARP는 굉장히 중요한 내용입니다. 명령 프롬프트에서 arp -a로 직접 테이블을 확인할 수 있을 뿐만 아니라 트러블 슈팅에서도 일정부분을 차지하는 내용이기에 확실히 동작과정을 이해하셔야 합니다. 

 

와이어샤크를 통해서 ARP 패킷을 확인하실수도 있으니 직접 ARP 패킷을 캡쳐해보시는것도 좋을 것 같습니다.

(https://daengsik.tistory.com/15)

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

컴퓨터 사이 통신  (0) 2022.10.27
ARP spoofing 실습  (0) 2022.10.25
DMZ  (0) 2022.06.01
computer network(3)  (0) 2021.09.23
computer network(2)  (0) 2021.09.17
Comments