A : 사용자가 브라우저에 주소를 입력하면 브라우저는 주소는 파싱해서 HTTP Request Message로 만들고, OS에 전송 요청을 합니다. 이때 Domain주소로 HTTP 요청을 만들 수 없기 때문에 Domain 어떤 IP인지 알기 위해 DNS에 요청을 보냅니다. DNS Server를 탐색해 IP주소를 추출합니다. 이 요청은 OS의 소프트웨어 중 하나인 프로토콜 스택에 의해 전송 가능합니다. 프로토콜 스택은 디스크립터, IP주소와, Port를 기반으로 3-way-handshake 과정을 거칩니다. 이후 HTTP Request message와 제어정보를 패킷으로 만들어 요청을 보냅니다.
패킷의 전송은 LAN 어댑터에서 이루어집니다. LAN 어댑터는 이를 전기 신호로 변환시켜 송출합니다. 패킷은 라우터와 스위칭 허브 등을 경유하여 목적지까지 도달합니다. 목적의 LAN 어댑터에 도착하면 목적지의 방화벽이 패킷을 검사한 후 캐시 서버로 보내 웹 서버로 갈 필요가 있는지를 검사합니다.
네이버 서버로 도착하면 패킷은 프로토콜 스택에 의해 다시 HTTP Request message로 복원 되어 네이버 서버 애플리케이션으로 전달 됩니다. 네이버 서버 애플리케이션은 요청에 대한 HTTP Response message를 작성해 브라우저로 회송합니다.
브라우저는 네이버 서버에서 받은 HTTP Response message를 확인하고 바디에 있는 HTML을 화면에 렌더링합니다.
A : DNS 서버는 큰 트리 구조로 되어있다고 생각합니다. Root DNS부터 시작해 그 아래로 자식들 중 맞는 맞는 도메인을 찾아내려가면서 IP주소를 도출해냅니다.
A : IP주소는 상대 서버의 IP주소를 의미하고, 포트 번호는 IP 내에서 애플리케이션 상호 구분을 위해 사용하는 번호입니다.
3 way handshake
의 동작과정에 대해 설명해주세요.A : 3 way handshake는 클라이언트는 서버에게 요청을 전송할 수 있는지, 서버는 클라이언트에게 응답을 전송할 수 있는지 확인하는 단계입니다. 우선 클라이언트가 SYN 플래그와 윈도우 크기가 담긴 패킷을 전송합니다. 그럼 서버는 연결이 가능하다면 ACK 플래그와 SYN 플래그, 윈도우 크기를 전송합니다. 그리고 클라이언트는 서버로부터 패킷을 받았다는 ACK 플래그를 전송하면 연결이 성공합니다.
A : DNS 프로토콜은 TCP를 사용하는 것으로 알고 있습니다.
A : TLS는 애플리케이션 계층의 암호화 프로토콜으로 TCP에서 암호화를 더한 것이라고 생각합니다. = 잘모르겟씁니다.