네이버 최초 접속까지의 과정
네이버에 접속하려면 다음의 과정을 거친다.
1. 노트북에 와이파이를 연결하기
2. 브라우저 url에 www.naver.com 입력하기
3. 네이버에 접속완료
이 세 과정 사이에서 어떤 일이 일어나는지 알아보겠다.
1. 노트북에 와이파이 연결하기
1-1. 노트북에 IP 주소 할당하기 - DHCP 프로토콜
네이버 서버에 어떤 요청을 보내기 위해서는 내 기기에 네트워크 주소를 할당받아야 한다.
요청을 보낼때 내 기기가 어느 네트워크에 있는지를 알려야 하기 때문이다.
그래야 네이버 서버에서 보낸 응답을 내 기기가 잘 받을 수 있다.
네트워크 주소(=IP주소)를 할당받기 위해서는 공유기(=라우터)에게 요청을 보내야 한다.
그런데 이 라우터가 어느 네트워크에 있는지 모른다.
따라서 아래와 같은 과정을 거쳐야 한다.
1. 같은 네트워크 내의 모든 기기에게 "누가 DHCP 서버(=라우터)니?"라고 묻는 요청을 보낸다. (=Broadcast)
2. 요청을 받은 DHCP 서버가 응답하며 내 노트북이 사용할 IP 주소를 건네준다.
3. 만약, DHCP 서버가 복수개인 경우 노트북은 그 중 한 DHCP 서버에게만 응답을 한다
4. DHCP 서버가 확인 응답을 하며 끝을 낸다.
이런 ip 얻어내는 요청 형식을 DHCP 프로토콜이라 한다.
이렇게 내 기기의 ip 주소를 할당받았다.
1-2. MAC 주소 확인하기 - ARP 프로토콜
그럼 이제 라우터를 통해 네이버에 접속할 수 있을까? 아직 아니다.
같은 네트워크에 있는 기기간의 통신은 MAC 주소를 사용하기 때문이다.
따라서 그 라우터와 통신하려면 라우터의 MAC 주소를 알아내야 한다.
1. 같은 내트워크 내의 모든 기기에게 "이 ip인 기기가 누구니?"라고 묻는 요청을 보낸다. (=Broadcast)
2. 요청을 받은 라우터가 자신의 MAC 주소를 전달한다.
이런 MAC주소를 알아내는 요청 형식을 ARP 프로토콜이라 한다.
이제 라우터를 통해 네이버 서버쪽으로 요청보낼 발판을 만들었다.
* ARP 프로토콜이 굳이 필요할까?
DHCP 프로토콜을 통해 IP 주소를 할당해줄때 라우터의 MAC 주소도 같이 제공하면 되지 않을까?
ARP의 역할이 라우터의 MAC주소를 제공해주는 역할뿐이라면, ARP 프로토콜이 그렇게 효율적이지 않아 보인다.
보통 라우터 기기는 고장나지 않는 이상 교체하지 않기 때문에 MAC주소도 몇년동안 동일할 것이다.
DHCP에서 MAC주소까지 관리한다면 ARP 요청도 줄고 불필요한 브로드캐스트도 줄일 수 있지 않을까?
더 알아보니 위와 같은 방식으로 사용하게 되면 많은 문제들이 발생한다.
문제1. 라우터의 MAC 주소를 고정으로 사용하면 ip 추적을 통한 기기접근을 할 수 있어 보안에 취약해진다.
문제2. 라우터의 MAC주소를 변경해야할 일이 꽤 있다.
ex) 네트워크카드의 MAC주소가 물리적으로 손상되는 경우, 라우터 가상환경을 사용하는 경우, 네트워크 테스트를 위해 라우터 MAC 주소를 변경하는 경우 등
이런 경우 라우터 MAC 주소를 소프트웨어적으로 변경하여 해결한다.
2. 브라우저 url에 www.naver.com 입력하기
일단, 현재 사용자가 알고 있는 것은 www.naver.com 뿐이다.
문제는 네이버 서버의 ip주소를 알아야 한다.
이때 DNS 프로토콜을 통해 ip주소를 알아낼 수 있다.
2-1. 네이버의 ip주소 알아내기 - DNS 프로토콜
www.naver.com 의 ip 주소를 알아내기 위해서는 특정 서버에게 요청을 보내야 한다.
그 서버를 DNS서버라고 하며, 도메인에 맞는 ip주소를 제공하는 역할을 한다.
그런데 이 요청을 보내려면 DNS 서버의 ip주소가 필요한데 이건 어떻게 알 수 있을까?
이 문제는 다양한 방식으로 해결된다.
방법1) 1-1의 DHCP 프로토콜을 이용한다
가장 일반적인 방법이다. DHCP 프로토콜을 통해 노트북 ip주소를 받을때 DNS 서버명과 DNS의 ip주소도 받는다.
이를 통해 받는 DNS 서버 ip는 보통 KT, SKT 등의 통신사(=ISP)의 DNS서버 ip다.
방법2) 수동으로 ip를 지정해놓는다
구글의 DNS(8.8.8.8)같은 퍼블릭 DNS 서버의 ip를 노트북에 설정하는 방법이다.
구글의 DNS를 이용하면 ISP의 DNS보다 보안 강화, 접속속도 향상, 국내 특정 웹사이트 차단 우회 등의 이점을 얻을 수 있다
아래는 노트북 프롬프트에서 확인한 DNS 서버ip 주소다.
168.126.63.1는 KT에서 제공하는 DNS 서버 ip라고 한다. 즉 ISP에서 제공하는 DNS서버를 사용하고 있다.
이렇게 도메인명을 IP 주소로 변환하는 것을 DNS 프로토콜이라고 한다.
2-2. 네이버와 연결 시도하기 - TCP연결
2-3 네이버 서버에서 정보 받아오기 - HTTP 프로토콜
총 과정
1. 노트북에 와이파이 연결하기
1-1. 노트북에 IP 주소 할당받기 - DHCP 프로토콜
1-2. MAC 주소 확인하기 - ARP 프로토콜
2. 브라우저 url에 www.naver.com 입력하기
2-1 네이버의 IP 주소를 알아내기 - DNS 프로토콜
2-2 네이버와 연결 시도하기 - TCP 프로토콜
2-3 네이버에게서 정보 받아오기 - HTTP 프로토콜
3. 네이버에 접속완료