일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- ecs
- React
- javascript
- React.js
- 모두의캠퍼스
- action
- 북딜
- 쿠버네티스
- Site Reliability engineering
- #Swagger
- 쿠버네티스 컨트롤러
- 프로세스
- 기술PM
- docker
- server
- 모캠
- Kubernetes
- fluentd
- #api 문서화
- AWS
- IP
- 카카오게임즈
- #Swagger-codegen
- #Swagger-ui
- Reducer
- #스웨거
- 프로세스 통신
- Redux
- #Swagger-editor
- SRE
- Today
- Total
탕구리's 블로그
ARP - 목적지의 MAC 주소를 알기위한 장치 본문
ARP (Address Resolution Protocol)
ARP는 MAC 주소와 IP 주소를 연결해주는 역할을 합니다. 여기서 연결이란 의미를 한번 생각해보면, 우리가 통신을 진행하기 위해 제3 계층을 지나 패킷을 만들고 되고 이 패킷의 헤더에는 출발지 IP 주소와 목적지 IP 주소를 담아줍니다. 출발지가 누구고 목적지가 어디인지는 Application 계층에 의해서 결정되기 때문에 헤더를 만드는 과정에서 큰 문제가 없습니다.
하지만! 제3 계층을 통해 내려온 패킷이 제2 계층에서 프레임을 만드는 경우는 어떨까요?
프레임의 이더넷 헤더에는 출발지의 MAC 주소, 목적지의 MAC 주소를 추가해주게 됩니다. 출발지의 MAC 주소는 호스트의 NIC에 적혀있는 MAC 주소를 통해 알 수 있지만 목적지의 MAC 주소는 알 수 없습니다. 목적지의 MAC 주소를 비워둔 채로 통신을 진행할 경우 수신 측의 제2 계층에서는 프레임을 파기해버립니다. 그렇다면 목적지의 MAC 주소를 어떻게 알아낼 수 있을까요? 이때 ARP 통신을 이용해 목적지의 MAC 주소를 알아낼 수 있습니다.
물론, 컴퓨터끼리 통신을 할 때 통신 데이터의 IP 주소를 출발지부터 목적지에 도착하기까지 변하지 않지만 MAC 주소는 NIC를 경유할 때마다 변경됩니다. 이 변경되는 MAC 주소를 통해 적절한 목적지를 찾아가는 것이죠!
ARP의 동작 과정
ARP가 동작하는 타이밍은 두 개의 호스트 A, B가 통신을 하기 전입니다.
ARP 통신이 발생하는 대략적이 구조는 위와 같습니다.
1. ARP 통신이 발생한 경우 IP를 통해 호스트 내에 존재하는 ARP 테이블을 조회합니다.
1-1. 같은 네트워크에 존재하는 호스트의 경우 ARP를 통해 조회합니다. 다른 네트워크에 존재하는 호스트인 경우 게이트웨이(Router)의 IP 주소를 조회합니다.
2. ARP 테이블에서 목적지의 정보를 얻지 못한 경우 브로드캐스트를 통해 ARP 요청이 발생합니다.
3. 네트워크에 존재하는 호스트들은 브로드캐스트로 발생한 ARP 요청을 받고 해당하는 호스트는 자신의 ARP 테이블에 송신자의 정보를 갱신하고 유니캐스트를 통해 ARP Reply를 응답합니다. 해당하는 호스트를 제외한 나머지는 요청을 파기합니다.
4. 응답을 받은 호스트는 ARP Reply를 통해 자신의 ARP 테이블에 내용을 추가하고 ARP Process 종료됩니다.
* 그림 한 장으로 보는 최신 서버 가이드북 - chapter 2를 기반으로 작성된 자료입니다.
'Conception > Computer Network' 카테고리의 다른 글
SSL 인증과정과 HTTPS - 인터넷 보안을 위한 과정 (0) | 2019.07.31 |
---|---|
TCP 와 UDP - 제 4계층의 프로토콜 (0) | 2019.07.31 |
라우터와 라우팅 - IP를 바탕으로한 패킷의 전송 (0) | 2019.07.29 |
스위칭(Switching) - 이더넷의 데이터 통신 방법 (0) | 2019.07.29 |
이더넷과 MAC 주소 - 1계층과 2계층 프로토콜 (0) | 2019.07.29 |