이것저것
도메인 검색시 일어나는 흐름 본문
1. 요청 전 준비 단계, 가정
- www.naver.com URL 을 입력하고 엔터를 눌르면, DNS 서버를 통해 이 도메인의 IP 정보를 가져온다.
- URL 내의 포트 번호가 없다면, 기본값으로 HTTP (80), HTTPS (443) 를 사용한다.
- 현재 naver는 HTTPS 프로토콜을 사용하고 있다. 그러므로, 실제 데이터를 주고 받기 전에 전송 게층에서 3-way handshake 를 통해 TCP 연결을 수립한 이후, 보안 계층 (SSL/TLS) 에서 정보를 암호화하기 위한 HandShake 과정이 선행되어야 한다.
2. Client PC -> Web Server 로의 데이터 요청 과정
2.1 PC에서의 Capsulation 과정
(1) 응용 계층
- GET /www.naver.com HTTP/1.1~~~ 와 같은 HTTP 메시지를 전송 계층에 전달한다.
- (HTTP 요청 메시지는 크게 시작줄(명령), 헤더, 요청 본문으로 구성)
(2) SSL (Secure Socket Layer)
- 현재 naver는 https를 사용하고 있으므로, 전송 계층으로 가기 전에 TCP/IP 네트워크 통신 간 보안을 제공하는 SSL 계층을 통과한다.
- 비대칭키 방식을 사용하여 정보를 암호환다.
(3) 전송 계층
- 응용계층(혹은 SSL 층)에서 받은 메시지에 TCP Header에 붙힌다.
- TCP Header에는 어느 애플리케이션 데이터를 보내야 하는지에 대한 정보를 담고 있다.
- 구체적으로 출발지 포트 번호, 목적지 보트 번호 정보를 담고 있다.
- 출발지는 1025~66535 중 랜덤 선택, 목적지의 경우 HTTPS 를 사용하고 있으므로 443 이다.
- TCP Header정보를 붙인 Segment 를 네트워크 계층에 전달한다.
(4) 네트워크 계층
- 전송 계층에서 받은 Segment에 출발지 IP 주소와 목적지 IP 주소 정보를 담은 IP Header를 추가하여, IP Packet을 만들고 데이터 링크 계층으로 전달한다.
(5) 데이터 링크 계층
- 네트워크 계층에서 받은 IP 패킷에 출발지의 MAC 주소, 목적지의 MAC 주소를 담은 Ethernet Header를 만든다.
- 데이터 전송 도중 오류 발생 여부를 확인하는 용도인 FCS (Frame Check Sequence)를 만든다.
- IP Packet 앞에 Etheret Header를 붙히고, 끝에 FCS를 붙혀 Ehternet Frame을 만들고 물리 계층으로 전달한다.
(6) 물리 계층
- Ethernet Frame을 전기 신호로 변환하여 Switch A로 전송한다.
'Network' 카테고리의 다른 글
DNS 서버 (0) | 2021.04.30 |
---|---|
TCP : 3-way handshake, 3-way handshake 이후 데이터 송수신 과정 (0) | 2021.04.29 |
OSI 7계층 - 2 (Network, Transport, Application) (0) | 2021.01.15 |
OSI 7계층 -1 (Physical, Data-Link Layer) (0) | 2021.01.15 |
TCP vs UDP (0) | 2021.01.10 |