ARP 프로토콜
- ARP 프로토콜은 같은 네트워크 대역에서 통신을 하기 위해 필요한 MAC 주소를 IP 주소를 이용해서 알아오는 프로토콜
ARP 프로토콜의 구조
- 총 28Byte
- Source Hardware Address : 출발지의 MAC 주소 ( 6Byte )
- Source Protocol Address : IP 주소 ( 4Byte )
- Destination Hardware Address : 목적지의 MAC 주소 ( 6Byte )
- Destination Protocol Address : 목적지의 IP 주소 ( 4Byte )
- Hardware type : 2계층에서 사용하는 프로토콜의 타입 ( Ethernet 프로토콜 : 0x 0001 )
- Protocol type : Source Protocol Address의 프로토콜 타입 ( IPv4 : 0x 0800 )
- Hardware Address Length : MAC주소의 길이 ( 6Byte : 06 )
- Protocol Address Length : IP주소의 길이 ( 4Byte : 04 )
- Opcode : Operation Code, 어떻게 동작하는지 나타내는 코드
=> 수행하는 동작이 요청인 경우( 0001 ), 응답인 경우( 0002 )
ARP 프로토콜을 사용하여 MAC 주소를 알아오는 과정
- 같은 네트워크 대역에서 A컴퓨터가 C컴퓨터의 MAC을 알고 싶은 상황. ( A는 C의 IP 알고 있는 상황 (192.168.0.30) )
(1) A는 ARP 요청 프로토콜을 만들고 앞에 2계층 프로토콜인 Ethernet 프로토콜을 캡슐화 ( 앞에 붙임 )
참고사항 : Ethernet의 구조 ( 목적지 MAC, 출발지 MAC, 상위 프로토콜 타입 )
A가 만든 ARP 요청 프로토콜
( 요청이므로 Opcode가 1이고, 목적지의 MAC 주소는 모르기 때문에 0으로 비워둠 )
ARP에 Encapsulation 하는 2계층의 Ethernet 프로토콜
- 목적지 MAC주소가 0xFFFFFFFFFFFF (전부 1)인 상황 : 이런 식으로 MAC 주소를 1로 꽉 채우는 경우 Broad Cast
- 즉, 같은 네트워크 대역에 있는 모두에게 보냅니다.
(2) 2계층 장비인 Switch가 MAC주소를 확인하여 보내는 역할을 수행
- Ethernet 프로토콜을 디캡슐화해서 보고 목적지 MAC 주소 확인하고 보냄
- 2계층 장비는 2계층까지 확인( 3계층인 ARP는 까보지 않음 )
- MAC 주소가 Broad Cast이므로 같은 네트워크 대역 모두에게 전송
(3) 받은 모든 곳에서 Decapsulation 과정을 거침
- 2계층인 Ethernet을 까보니 도착지가 Broad Cast로 제대로 온 것이 맞음
- 따라서 3계층까지 Decapsulation해서 확인 ( A가 보낸 ARP 요청 프로토콜 )
- 자기의 IP 주소와 목적지 IP 주소가 일치하지 않는 곳은 패킷을 버림 ( C를 제외한 모두 )
(4) C는 ARP 응답 프로토콜은 만들고 Ethernet 프로토콜을 Encapsulation해서 다시 보냄
- ARP 응답 프로토콜
- 응답이므로 Opcode는 2
- 출발지 MAC 주소에 C의 MAC 주소를 써서 보냄
- 목적지 MAC 주소는 보낸 주소를 씀 ( A의 MAC 주소 :: Ehternet에 보낸 MAC 주소 정보가 있으니 활용 )
- Ethernet 프로토콜
- 브로드캐스트를 할 필요가 없으니 목적지 MAC 주소로 A의 MAC 주소를 입력
- 출발지 MAC은 C의 MAC 주소
- 상위 프로토콜 타입은 ARP이므로 0806
(5) Switch는 2계층인 Ethernet까지 Decapsulation하고 목적지인 A에게 전달
(6) A는 받은 패킷을 Decapsulation하여 c의 MAC 주소가 cc cc cc cc임을 알고 ARP 캐시 테이블에 이 내용을 저장합니다.
- ARP 캐시 테이블은 IP주소와 MAC주소를 저장한 구조
- 통신했던 컴퓨터들의 주소는 ARP 캐시 테이블에 남음
다음 강의를 정리한 내용입니다.
'Computer Science > 네트워크' 카테고리의 다른 글
라우팅 테이블 (1) | 2023.10.28 |
---|---|
먼 컴퓨터와 통신하는 방법 : IPv4 & ICMP ( 3 Layer ) (3) | 2023.10.28 |
OSI 3계층 ( Network Layer ) (2) | 2023.10.23 |
LAN에서 통신하는 방법 (OSI 2계층이 하는 일) (1) | 2023.10.23 |
네트워크 모델 & 데이터(패킷) (2) | 2023.10.23 |