ARP(Address Resolution Protocol) 프로토콜
- ARP가 하는 일
- ARP 프로토콜은 같은 네트워크 대역에서 통신을 하기 위해 필요한 MAC주소를 IP주소를 이용해서 알아오는 프로토콜
- 같은 네트워크 대역에서 통신을 한다고 하더라도 데이터를 보내기 위해서 7계층부터 캡슐화를 통해 데이터를 보내기 때문에 IP주소와 MAC주소가 모두 필요
- 이 때 IP주소는 알고 MAC주소는 모르더라도 ARP를 통해 통신이 가능- IP주소를 이용해 MAC주소를 알아오는 ARP 프로토콜
ARP 프로토콜의 통신 과정
- IP주소만 알고 있을 때? ARP로 MAC주소를 알아오기
COM1
에서COM3
으로 통신을 한다고 할때,COM1
은COM3
의 MAC주소를 모르고 IP주소만 알고 있다.
이럴 때,ARP
를 이용해서COM3
의 MAC주소를 알아내는 과정을 살펴보자.
1) COM1은 ARP를 헤더로 캡슐화 한다.
-H/W type
은00 01
로Ethernet
이다
-Protocol type
은08 00
으로IPv4
다
-H/W 주소 길이(MAC주소)
는 6Byte로06
-Protocol 주소 길이(IP주소)
는 4Byte로04
-opcode
는요청(00 01)
or응답(00 02)
이 존재
-목적지 MAC주소
를 모르기 때문에00 00 00 00 00 00
으로 채운다.
2) COM1은 Ethernet을 헤더로 캡슐화한다.
목적지 MAC주소를 모르기 때문에FF FF FF FF FF FF
로 채운다. (브로드캐스트
로 같은 대역에 네트워크에 모두 보내기 위함)
상위 프로토콜 타입에08 06
은ARP
를 의미한다.
3) 요청을 받은 컴퓨터들은디캡슐화
로 Ethernet정보를 보고브로드캐스트
라는 것을 알아낸다.
그래서 또디캡슐화
로 ARP정보를 본다.
여기서 목적지 IP가 본인이 아니라면 버리고, 본인이라면 응답을 보낸다.
4) 스위치는 2계층 장비기 때문에 Ethernet 프로토콜만 확인하고 목적지MAC주소가aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa
이기 때문에COM1
로 보내준다.
5)디캡슐화
로 Ethernet정보를 확인하고, 본인이 맞기에 ARP 정보도디캡슐화
해서 확인한다.
이렇게 해서COM3
의 MAC주소를 알게 되었다.
그리고, 이 정보를ARP 캐시 테이블
에 등록한다.이렇게 MAC주소를 알아내고 통신이 시작된다.
그렇기에 최초의 통신을 할 때, 이 같은 과정이 한 번은 실행되어야 한다.
ARP 테이블
통신 했던 컴퓨터들의 주소는 ARP 테이블에 남는다.
cmd
에서arp -a
를 입력하면 확인가능
<출처>
"네트워크 기초(개정판)".따라하면서 배우는 IT.https://www.youtube.com/playlist?list=PL0d8NnikouEWcF1jJueLdjRIC4HsUlULi (2023.03.08)
내용정리는 제 입맛에 맞게 바꿨습니다.