정상 TCP 종료의 바이트 순서

FIN은 앞서 전송한 데이터를 지우지 않고 송신 방향의 끝을 표시한다.

  1. 서버 데이터 쓰기

    응답 바이트가 송신 버퍼로 간다.

  2. 서버 close

    FIN이 데이터 뒤 순서로 전달된다.

  3. 클라이언트 read

    남은 응답 바이트를 먼저 소비한다.

  4. 다음 read

    EOF를 -1 또는 null로 관찰한다.

핵심: 필요한 응답 길이를 다 받기 전 EOF면 정상 FIN이어도 업무 결과는 잘림이다.