지난번 DNS 서버에서 도메인으로 IP 주소를 받아오는 것을 설명했습니다.
오늘은 이 받아온 IP 주소를 가지고
서버 PC에 이동하는 과정에 대해서 얘기해보도록 하겠습니다.
IP와 MAC의 차이에 대해서 먼저 알아보겠습니다.
* IP
네트워크 통신에 있어서 통신기기에 할당된 식별번호입니다.
이 아이피 주소는 통신기기마다 고유하게 할당되어 있는 것이 아니라 통신사에 일정 금액 지불하고 받아오는 것이기 때문에 경우에 따라 바뀔 수 있습니다.
상대방 컴퓨터가 내 PC를 찾기 위해 필요한 주소입니다.
* MAC
아이피 주소와 마찬가지로 네트워크 통신에서 통신기기의 식별번호 나타냅니다.
MAC 주소는 통신기기 하드웨어 자체에 부여된 고유한 식별번호를 나타냅니다.
세상에 단 하나밖에 없는 유니크한 값을 가지며 변경될 수 없습니다.
컴퓨터가 서로 통신을 하기 위해 필요합니다.
즉, IP 주소를 통해서 해당 IP 서버가 있는 곳이 로컬 네트워크가 아닌 경우에 그 지역 라우터까지 패킷이 전달됩니다.
라우터에서는 IP 주소에 해당하는 컴퓨터가 누군지 알아내기 위해 MAC 주소가 필요합니다.
이때 오늘의 핵심 내용인 ARP Request를 통해서 MAC 주소를 받아온 후
라우터는 이더넷 패킷을 만들어 전송합니다.
ARP 란?
(Address Resolution Protocol , 주소 결정 프로토콜)
OSI 7 계층에서 네트워크 계층 주소와 링크 계층 주소 사이의 변환을 담당하는 'IP 프로토콜' 입니다.
3 계층인 네트워크 계층에서는 IP 프로토콜을 사용하여 현재 나의 IP에서 상대방 IP로의 경로로 라우터를 거쳐 전송됩니다.
하지만 실제적으로 우리 컴퓨터는 '랜카드'를 사용하여 네트워크에 연결되어 있기 때문에 3계층에서 2계층으로의 정보 전달을 위해서 MAC 주소가 필요하고 이를 위해 ARP 프로토콜이 필요합니다.
가장 먼저, ARP 캐시가 목적지 IP의 ARP 항목을 가지고 있는지 점검합니다. 만약 캐시에 있다면 라이브러리 함수는 다음의 형태로 결과를 리턴합니다: 목적지 IP = MAC.
** ARP 캐시 확인하는 방법
arp -a
항목이 ARP 캐시에 없다면:
- 라우트 테이블을 검색해서 목적지 IP 주소가 로컬 라우트 테이블의 서브넷에 존재하는지 봅니다. 존재한다면, 라이브러리가 그 서브넷에 속하는 인터페이스를 활용합니다. 없다면, 라이브러리는 우리 기본 게이트웨이의 서브넷에 속하는 인터페이스를 활용합니다.
- 선택된 네트워크 인터페이스의 MAC 주소가 검색이 됩니다.
- 네트워크 라이브러리는 레이어 2 (`OSI 모델`_에서 데이터 링크 레이어) 를 통해 ARP 요청을 보냅니다.
참고 :
https://github.com/SantonyChoi/what-happens-when-KR
https://xyom.github.io/2018/01/08/ARP%E1%84%85%E1%85%A1%E1%86%AB/
http://elearning.kocw.net/document/lec/2012/AnDong/ChungJoongSoo/3-1.pdf
'네트워크' 카테고리의 다른 글
[브라우저에 URL 입력 후 일어나는 일들] 5_TLS/SSL Handshake (2) | 2019.01.22 |
---|---|
[브라우저에 URL 입력 후 일어나는 일들] 4_TCP 소켓 통신 (0) | 2019.01.15 |
[브라우저에 URL 입력 후 일어나는 일들] 2_DNS 서버 검색 (0) | 2019.01.07 |
[브라우저에 URL 입력 후 일어나는 일들] 1_URL을 해석한다. (0) | 2019.01.04 |
[브라우저에 url 입력 후 일어나는 일들] intro (0) | 2018.12.26 |