[2026. 임용 정보ㆍ컴퓨터] TCP 세그먼트 헤더와 클라이언트 서버

TCP 세그먼트 헤더와 클라이언트 서버

정답

① SYN, ② SYN+ACK, ③ ACK, ④ PSH, ⑤ PSH, Seq#: 20000

출제 의도

TCP의 3-way handshake 과정에서 교환되는 제어 플래그(SYN, ACK)의 의미를 이해하고, 연속적인 데이터 전송에서 Seq#, Ack#의 증가 규칙을 올바르게 적용할 수 있는지를 평가하는 문제이다. 또한 응용 프로그램의 요구에 따라 PSH 플래그가 언제 설정되는지 판별하는 능력을 확인한다.

풀이 과정

문제 조건에서 클라이언트 ISN = 9999, 서버 ISN = 19999이다. TCP 3-way handshake는 다음 순서로 이루어진다.

1) 클라이언트 → 서버 : SYN 플래그 세트, Seq# = ISN = 9999 따라서 ① = SYN

2) 서버 → 클라이언트 : SYN과 ACK를 함께 보냄. 서버 Seq# = 19999, Ack# = 클라이언트 Seq + 1 = 10000 따라서 ② = SYN+ACK

3) 클라이언트 → 서버 : 서버의 SYN을 확인하는 ACK Seq# = 10000, Ack# = 20000 따라서 ③ = ACK

여기까지가 TCP 연결 설정이다.

시점 \(t_1\)에서 클라이언트는 응용 프로그램의 요청에 의해 “즉시 전송”하므로 PSH 플래그를 사용한다. 보내는 데이터의 바이트 범위가 10000~11999이므로 전송 바이트 수는 2000바이트이다. 즉 Seq# = 10000, Ack# = 20000, 플래그 ④ = PSH.

시점 \(t_2\)에서도 응용 프로그램이 긴급히 전송을 요청하므로 PSH 플래그를 사용한다. 두 번째로 보내는 데이터의 범위는 20000~21999이므로 Seq# 시작값은 20000이다. 따라서 플래그 ⑤ = PSH, Seq# = 20000이다.

Checksum 바로 아래 있는 필드 ⑥은 긴급 지시자(urgent pointer)의 값이며, 문제 조건에서 이 값은 500이라고 주어져 있으므로 ⑥ = 500이다.

<풀이가 부정확할 수 있으니 반드시 교차검증 확인 바랍니다.>