네트워크 기초

TCP에서 연결을 설정하는 3-way 핸드셰이크에서 주고받는 패킷의 순서로 올바른 것은?

  1. ASYN → ACK → FIN
  2. BACK → SYN → SYN+ACK
  3. CSYN → SYN+ACK → ACK
정답과 해설 보기

정답: C. SYN → SYN+ACK → ACK

3-way 핸드셰이크에서는 먼저 클라이언트가 SYN으로 연결을 요청하면서 자신이 보낼 데이터의 첫 번호(초기 시퀀스 번호)를 알립니다. 서버는 SYN+ACK로 그것을 받았음을 확인(ACK)하는 동시에 자신의 초기 시퀀스 번호를 알립니다. 마지막으로 클라이언트가 ACK를 돌려보내면 양방향 통신의 준비가 갖추어집니다. 세 번의 교환으로 양쪽 방향의 번호를 서로 확인함으로써, 늦게 도착한 오래된 패킷으로 인한 잘못된 연결 등을 막습니다. 이 때문에 TCP에서는 데이터를 보내기 시작할 때까지 적어도 1왕복 시간(RTT)이 걸립니다. FIN은 연결을 종료할 때 사용합니다.

이 분야 연습하기 분야로 돌아가기

네트워크 기초의 다른 문제

  1. RTT(왕복 시간)가 100 ms인 웹 서버에 HTTPS(TCP 위의 TLS 1.3)로 새로 접속하여, 첫 요청을 보내고 응답을 받기 시작할 때까지 걸리는 시간에 가장 가까운 것은? DNS 이름 해석은 끝났으며, 서버의 처리 시간과 데이터 전송 시간은 무시한다.
  2. 프로토콜과 그 서버가 표준으로 사용하는 포트 번호의 조합으로 올바른 것은?
  3. TCP의 흐름 제어에서 수신 측이 윈도 크기(수신 윈도)를 송신 측에 알리는 목적으로 올바른 것은?
  4. TCP의 수신 윈도가 65536바이트로 일정하고 RTT가 10 ms인 연결에서, 회선의 대역폭은 충분히 크고 손실도 없다고 하자. 이 연결로 얻을 수 있는 처리량의 상한에 가장 가까운 것은?
  5. TCP 혼잡 제어의 기본적인 개념으로 올바른 것은?