Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 코딩공부
- 스프링 부트와 AWS로 혼자 구현하는 웹 서비스
- Java
- 코딩테스트
- SSAFY
- Dynamic Programming
- 알고리즘
- 정렬
- 네트워크모델
- 싸피
- 클라이언트
- DP
- 프로토콜
- 전송계층
- 스프링
- BAEKJOON
- 네트워크
- Spring
- cs공부
- 개발자
- TCP
- IP
- 구현
- 서버
- 자바
- 백준
- 개발공부
- Lan
- 알고리즘공부
- 다이내믹프로그래밍
Archives
- Today
- Total
오늘 하루, develop
#7. [3계층] ARP 프로토콜의 개념과 통신과정 본문
♦ 소개
3계층 프로토콜 중 하나인 ARP 프로토콜에 대한 내용을 정리했습니다 :)
♦ ARP 프로토콜
같은 네트워크 대역에서 통신을 하기 위해 필요한 MAC주소를 IP주소를 이용해 알아오는 프로토콜
같은 네트워크 대역에서 통신을 하더라도,
데이터를 보내기 위해서는 7계층부터 캡슐화를 해서 데이터를 보내기 때문에 IP주소와 MAC주소가 모두 필요하다.
이때 IP주소는 알고 MAC주소는 모르더라도 ARP를 통해 통신이 가능하다.
♦ 구조
총 28 byte
- Hardware type : 2계층에서 사용하는 프로토콜 타입 → 일반적으로 이더넷 프로토콜 (0001)
- Protocol type : 아래 나오는 Protocol Address의 프로토콜 타입 → 일반적으로 IPv4 (0800)
- Hardware Address Length : MAC주소의 길이이므로 06
- Protocol Address Length : Protocol Address Length → IPv4의 길이이므로 04
- Opcode : 어떻게 동작하는지를 나타내는 코드
- 2개밖에 없음
- 요청인지(0001), 응답인지(0002)
- Source Hardware Address : 출발지의 MAC 주소 (6바이트)
- Source Protocol Address : 출발지의 IPv4 주소(4바이트)
- Destination Hardware Address : 목적지의 MAC 주소 (6바이트)
- Destination Protocol Address : 목적지의 IPv4 주소(4바이트)
♦ 통신 과정
상황 : A가 C와 통신하고 싶은데 IP주소만 아는 상황. C의 MAC 주소를 알고 싶다!
1. A는 ARP 요청 프로토콜을 만들고, 앞에 Ethernet 프로토콜을 붙인다.
- 그런데 MAC 주소를 모르는데 이더넷, ARP 프로토콜을 어떻게 보내지?
- ARP 프로토콜의 목적지 MAC주소 부분은 0으로 비워둠
- 이더넷 프로토콜의 목적지 MAC주소 부분은 ffffffffff로 채워둠(이진수로는 1로 꽉 채움) -> 전부다 1로 채우면 브로드캐스트가 됨-> 모두에게 보낸다!
2. 스위치가 패킷을 받는다.
- 스위치는 2계층 장비이므로 2계층 이더넷 프로토콜까지만 확인
3. 목적지 MAC 주소가 브로드캐스트니까 같은 네트워크 대역의 모두에게 패킷 전달한다.
4. 모두가 디캡슐화하여 ARP 프로토콜을 확인한다.
5. 내 IP 주소가 아니면 패킷을 버린다.
6. 내 IP 주소가 맞다면 ARP 응답 프로토콜을 만들어서 보낸다.
- 응답이니까 Opcode가 0002
- 본인의 MAC 주소 기입
7. A는 C로부터 패킷을 받아서 MAC 주소 확인 후 ARP 캐시 테이블에 IP 주소와 그에 해당하는 MAC 주소를 작성한다.
어떠한 통신을 하기 전에 위와 같은 방법으로 ARP 프로토콜을 통해 통신 상대의 MAC 주소를 알아낸다.
✔️ ARP 테이블
- 나와 통신했던 컴퓨터들의 주소를 남김
- 일정 시간이 지나면 없어짐
- 수동으로 등록도 가능 (영구적으로 저장)
- ARP 프로토콜은 같은 네트워크 대역에서만 쓰임
- 맥 주소를 몰라서 이더넷 프로콜로 브로드캐스트하는 것
- 3계층 장비는 브로드캐스트를 바깥 인터넷 세상(다른 네트워크 대역)으로 보내지 않음
출처
'네트워크' 카테고리의 다른 글
#9. [3계층] IP 프로토콜이란? (0) | 2024.05.07 |
---|---|
#8. [3계층] ICMP 프로토콜이란? (0) | 2024.05.07 |
#6. IP주소의 모든 것 (MAC 주소, Class, 사설IP) (1) | 2024.04.21 |
#5. Network(네트워크) Layer - 3계층 (0) | 2024.04.21 |
#4. Data Link Layer - 2계층 (MAC주소, 이더넷) (0) | 2024.04.20 |