면접 질문에 자주 나오는 질문이라 정리할 필요성을 느껴 글을 쓰게 되었습니다.
우선 브라우저는 네트워크 호출을 하게 됩니다.
네이버 사이트의 html, css, script 이미지와 관련된 데이터들을 가져와야 되기 때문입니다.
이 작업을 수행하기 위해서 NAVER의 IP 주소를 파악해야 됩니다.
네이버 서버의 주소를 찾는 과정은
1. 브라우저에 해당 도메인이 캐시되어 있는지 확인합니다. 있으면 해당 IP주소를 리턴합니다.
2. 없을 경우 로컬에 저장된 hosts파일에서 참조할 수 있는 도메인이 있는지 확인합니다.
3. 모두 존재하지 않는다면 로컬 DNS 서버에 네이버의 ip주소를 요청하게 됩니다.
4. 로컬 DNS서버에 IP주소가 없다면 Root DNS 서버에 요청합니다.
- Rot DNS는 IP주소를 저장하는 것이 아닌 '.com' 서버에 대한 정보를 가지고 있습니다.
5. '.com' 서버 (TLS - Top Level Domain)에 naver.com을 요청하면 TLS는 naver 도메인을
관리하고 있는 네임 서버에 대한 정보를 알려주게 됩니다.
6. 해당 네임 서버에 naver.com 을 요청하게 되면 네임서버는 naver.com의 IP 주소를 반환합니다.
DNS(Domain Naver Server) 는 도메인 네임을 ip주소로 변환해주는 곳입니다.
네이버 ip 를 안 후에 라우터를 통하여 해당 서버의 게이트웨이 까지 이동하게 됩니다.
이동 한 후에, ARP를 이용하여 IP주소를 MAC주소로 변환합니다.
ARP는 (Address Resolution Protocol) 주소 결정 프로토콜입니다. IP주소를 그에 맞는 물리적 주소
MAC 주소를 가지고 오는 프로토콜입니다.
MAC 주소와 IP 주소의 차이점을 짚고 넘어가자면
IP 주소는 해당 디바이스 주소가 아니라 랜카드에 연결된 랜선의 주소를 뜻합니다.
MAC주소는 디바이스 마다 있는 랜카드의 주소를 뜻합니다. PC와 휴대폰 등이 개별적으로
가지고 있는 물리적인 주소가 MAC 주소입니다.
MAC주소를 알게 되면 TCP Handshaking 과정을 통해 TCP 연결을 하게 됩니다.
TCP 소켓을 열고 데이터를 요청하는 HTTP Request를 보냅니다. 네이버 서버는
요청을 받고 클라이언트에게 HTTP Response를 보냅니다.
브라우저가 응답을 형식에 맞춰서 화면에 표시하게 되고 작업이 끝나게 됩니다.
'CS > 네트워크' 카테고리의 다른 글
TCP/IP 에 대하여 (2) | 2023.03.08 |
---|---|
HTTP 프로토콜과 HTTPS에 대하여 (0) | 2023.02.24 |