1. 브라우저에서 URL 파싱
주소창에 https://www.naver.com/ 을 검색하면 URL만 만 파싱 한다.
https:// www.naver.com
protocol://URL
2. HSTS 목록 조회(HSTS : HTTP Strict Transport Security)
HSTS는 HTTP 프로토콜을 허용하지 않고 HTTPS프로토콜을 통한 연결만 허용하는 기능
HSTS는 캐시에 저장한다.
URL이 HSTS에 존재하면 HTTPS로 요청, 존재하지 않으면 HTTP 프로토콜로 요청
3. DNS가 URL의 Domain을 IP주소로 변환
도메인 네임으로는 컴퓨터끼리 통신할 수 없기 때문에 이를 IP주소로 변환해줘야 한다.
브라우저는 자신의 로컬 HSTS파일과 브라우저 캐시에 해당 URL이 존재한다면 바로 접속
없다면 DNS(Domain Name System)
4. 라우터를 통해 해당 서버의 게이트웨이까지 이동
네트워크 장비인 라우터가 해당 주소까지의 경로를 라우팅하여 해당 주소에 요청을 전달
IP주소로 가야하는 것은 알지만 어떻게 가야 하는지 경로는 알 수 없다. 라우터가 라우팅을 하여 대신해준다.
라우터? 라우팅? 더보기 참고
라우터 란?
라우팅의 과정을 수행하는 장치
라우팅이란?
패킷에 포함된 주소 등의 상세정보를 이용하여 목적지까지 데이터 또는 메시지를 체계적으로 다른 네트워크에 전달하는 경로 선택(Path Determination) 그리고 스위칭(Switching)하는 과정으로 의미
가장 좋은 경로를 찾기 위해 라우팅 알고리즘
즉, 라우팅 프로토콜(Routing Protocol)을 사용하여 계산된 경로를 만들어 내며, 이것을 라우팅 테이블에 저장
이를 위해 라우터 장비는 서로 다른 네트워크들에 대한 정보가 저장되어 있어야 하며, 네트워크 엔지니어 또는 관리자가 수행한다.
5. ARP를 통해 IP주소를 MAC주소로 변환
실직적인 통신을 하기위해서는 논리 주소인 IP를 물리 주소인 MAC 주소로 변환해야 한다.
이를 위해 해당 네트워크 내에서 ARP를 브로드캐스팅한다.
해당 IP주소를 가지고 있는 노드(서버)는 자신의 MAC 주소를 응답한다.
MAC 주소 아래 링크 참고
ARP? 더보기 참고
ARP란?
주소 결정 프로토콜, Address Resolution Protocol
해당 IP를 물리적인 주소, 즉 MAC주소를 가지고 오는 프로토콜
RARP란?
역순 주소 결정 프로토콜 Reverse Address Resolution Protocol
ARP와 반대로 해당 MAC 주소에 맞는 IP값을 알아오는 프로토콜
ARP동작원리
1. 송신자는 해당 IP의 물리 주소가 필요하다.
2. 물리주소 요청을 위한 ARP 요청 패킷을 브로드캐스트로 전송(브로드캐스트이유 : 목적지의 물리주소를 모르니까 모두에게 요청)
3. 모든 호스트와 라우터는 송신자가 보낸 ARP요청 패킷을 수신
4. 해당되는 수신자만 자신의 논리 주소와 물리 주소를 넣어 응답 패킷을 유니캐스트로 전송
6. 대상 서버와 TCP 소켓 연결
MAC 주소를 통해 통신할 서버에 접근, 실제로 통신하기 위해 TCP 소켓 연결
TCP 소켓 연결은 3-way handshake를 통해 이루어진다.
HTTP가 아닌 HTTPS는 TLS handshake가 추가된다.
3-way handshake? 아래 링크 클릭
7. HTTP 프로토콜로 요청, 응답
해당 서버와 통신하기 위한 과정이 모두 완료
서버에게 http request를 하고 http reponse로 응답을 브라우저에게 전달한다.
8. 브라우저에서 응답을 해석
서버에서 보낸 응답(HTML, CSS, javascript)을 브라우저에서 해석하여 요청한 www.naver.com 페이지를 를 화면에서 보여준다.
출처
https://deveric.tistory.com/97
https://musclebear.tistory.com/12
'Network' 카테고리의 다른 글
[네트워크]ARP 란? (0) | 2022.06.26 |
---|---|
[네트워크]OSI 7 계층 (0) | 2022.06.22 |
[네트워크]MAC주소가 왜 필요할까?IP주소와 PORT 나눠서 사용하는 이유는? (0) | 2022.06.22 |
[네트워크]URI와 URL의 차이점 (0) | 2022.06.21 |
[네트워크]프로토콜 이란? TCP/IP 란? (0) | 2022.06.13 |