728x90
📌 알림
해당 글은 공부 목적으로 작성한 글입니다.
📌 DNS(Domain Name System)
DNS(Domain Name System)이란 IP주소를 문자로 표현한 주소로 바꾸는 시스템 혹은 서버를 의미한다.
📌 모의 면접
DNS가 무엇인가요?
IP주소를 문자로 표현한 주소로 바꾸는 시스템 혹은 서버를 의미합니다.
www.google.com에 접속할 때 어떤 일이 일어나나요?(+⍺)
브라우저 주소창에 www.google.com을 입력하면 브라우저는 먼저 브라우저, OS, 라우터, ISP 캐시에 저장된 DNS 기록을 통해 www.google.com에 대응되는 IP 주소가 있는지 확인합니다.
만약 캐시에 해당 URL이 없으면 ISP의 DNS 서버가 google.com을 호스팅하고 있는 서버의 IP 주소를 찾기 위해 DNS 쿼리를 날려 해당 URL의 주소를 찾습니다.
조회를 통해 찾은 IP 주소를 통해 브라우저는 서버와 TCP 3 way handshaking 연결을 수행합니다. TCP 연결이 완료되면 브라우저가 웹 서버에 HTTP 요청을 보냅니다.
서버는 요청을 처리하고 response를 생성하여 클라이언트에게 전송합니다. 전송받은 HTML 컨텐츠를 브라우저가 읽어 해석하고 최종적으로 사용자에게 화면을 보여줍니다.
3 way-hand shaking에 대해 설명해주세요(+⍺)
3 way-hand shaking은 클라이언트가 서버에 연결을 요청하는 과정으로 먼저 클라이언트는 서버에 SYN 패킷을 보냅니다. 이때 클라이언트는 SYN/ACK 응답을 기다리는 SYN_SENT 상태가 됩니다.
서버는 SYN 요청을 받고 클라이언트에게 요청을 수락한다는 ACK와 SYN flag가 설정된 패킷을 발송하고 클라이언트가 ACK로 응답하기를 기다리며, 서버는 SYN_RECEIVED 상태가 됩니다.
응답을 전송받은 클라이언트는 다시 서버에 ACK를 보내고 이후로부터는 연결이 이루어지고 데이터가 오가게 됩니다.
4 way-hand shaking에 대해 설명해주세요(+⍺)
4 way-hand shaking은 클라이언트가 서버와의 연결을 종료하기 위해 수행되는 과정으로 먼저 클라이언트는 서버에게 종료하겠다는 FIN 플래그를 전송하고 FIN_WAIT1 상태가 됩니다.
서버는 클라이언트로부터 FIN 요청을 받고 클라이언트에게 요청을 수락한다는 ACK를 우선적으로 보내고 CLOSE_WAIT 상태가 됩니다. 서버는 자신의 통신이 끝날 때까지 기다리고 끝나면 클라이언트에게 FIN 패킷을 전송합니다.
클라이언트는 확인했다는 의미로 ACK 패킷을 다시 서버에게 전송하고, 이때 서버가 보내는 FIN보다 서버가 보내는 데이터가 늦게 보내질 경우를 대비해 클라이언트는 일정 시간 동안 소켓을 닫지 않고 잉여 패킷을 기다리는 TIME_WAIT 상태가 되며, 데이터가 모두 전송되면 최종적으로 연결이 종료됩니다.
TCP의 연결 과정에서 3way와 4way가 단계 차이가 나는 이유가 무엇인가요?(+⍺)
클라이언트가 데이터 전송을 마쳤다고 하더라도 서버는 아직 보낼 데이터가 남아있을 수 있기 때문에 일단 ACK만 먼저 보내고, 데이터를 모두 전송한 후에 자신도 FIN 메시지를 보내기 때문입니다.
Server에서 FIN 플래그를 전송하기 전에 전송한 패킷이 Routing 지연이나 패킷 유실로 인한 재전송 등으로 인해 FIN 패킷보다 늦게 도착한 상황이 발생하면 어떻게 해결해야 하나요?(+⍺)
전송 패킷이 FIN 패킷보다 늦게 도착한 상황을 대비하여 Client는 Server로부터 FIN 플래그를 수신하더라도 일정기간 time wait동안 세션을 남겨 놓고 잉여 패킷을 기다리는 과정을 거쳐야 합니다.
초기 Sequence Number인 ISM을 0부터 시작하지 않고 난수를 생성해서 설정하는 이유가 무엇인가요?(+⍺)
커넥션을 맺을 때 사용하는 포트는 시간이 지남에 따라 재사용됩니다. 따라서 두 통신이 과거에 사용된 포트 번호 쌍을 사용할 가능성이 생기고 난수가 아닌 순차적 Number가 전송된다면 이전의 커넥션으로부터 오는 패킷으로 인식할 가능성이 생기는 문제가 발생합니다. 이러한 이유로 ISM을 0부터 시작하지 않고 난수를 생성해서 설정해야 합니다.
댓글