[2023. 중등임용 정보컴퓨터B] TCP 세그먼트

TCP 세그먼트

정답

올바른 순서는 b → c → a이며, ㉠에 들어갈 확인 응답 번호는 4001이다.

출제 의도

이 문제는 TCP 3-way handshake 과정에서 SYN, SYN+ACK, ACK 세그먼트의 역할을 이해하고, 초기 순서 번호(ISN)를 바탕으로 순서 번호와 확인 응답 번호가 어떻게 증가하는지를 정확히 해석할 수 있는지를 평가한다.

풀이 과정

TCP 연결 설정은 3-way handshake로 이루어지며, 순서는 항상 SYN → SYN+ACK → ACK이다.

조건에 따라 클라이언트 A의 ISN은 \(3000\), 서버 B의 ISN은 \(4000\)이다.

먼저 제어필드가 SYN=1, ACK=0인 세그먼트는 연결 요청 단계이므로, 이는 클라이언트 A가 서버 B로 보내는 첫 번째 세그먼트이다. 따라서 (b)가 가장 먼저 전송된다.

이때 클라이언트 A가 보내는 순서 번호는 자신의 ISN이므로

$$ \text{Seq}_A = 3000 $$

다음으로 서버 B는 SYN과 ACK가 모두 1인 세그먼트로 응답한다. 이는 두 번째 단계이므로 (c)에 해당한다. 서버 B의 순서 번호는 자신의 ISN이며, 확인 응답 번호는 클라이언트의 순서 번호에 1을 더한 값이다.

$$ \text{Seq}_B = 4000,\quad \text{Ack}_B = 3000 + 1 = 3001 $$

마지막으로 클라이언트 A는 ACK=1, SYN=0인 세그먼트를 서버 B로 보내 연결을 완료한다. 이는 (a)에 해당한다.

이 세그먼트에서 클라이언트 A의 확인 응답 번호는 서버 B가 보낸 SYN에 대해 1을 더한 값이므로

$$ \text{Ack}_A = 4000 + 1 = 4001 $$

따라서 세그먼트의 올바른 순서는 b → c → a이고, (a)의 ㉠에 들어갈 값은 4001이다.