본문 바로가기
728x90

TCP2

TCP 연결 종료시 상태 전이 안녕하세요! 오늘은 TCP 연결 종료시의 상태를 한 번 살펴보려고 합니다. 대표적인 클라이언트와 서버 입장에서의 전이만 표현했습니다. 전체적인 TCP 상태 전이는 다른 포스팅에서 작성해보겠습니다. 아래 발그림을 같이 보겠습니다. 보통 Client가 연결 종료를 시작하는 Active Close를 하게 됩니다. 그렇다면 서버는 연결 종료 시작을 받는 Passive Close를 하게 됩니다. 클라이언트는 FIN을 보내고 ACK를 받으면서 FIN_WAIT_1 -> FIN_WAIT_2 상태로 들어가게 됩니다. 이 때, 서버로부터 FIN이 오기 전까지 클라이언트는 half-close 상태로 계속해서 데이터를 수신할 수 있습니다. (물론 half-close를 할 수 있도록 프로그래밍 해야하며, half-close에 .. 2023. 12. 13.
TCP 소켓의 TIME_WAIT 상태는 왜 있는 것일까? 안녕하세요! 오늘은 소켓의 TIME_WAIT상태에 대해 알아보겠습니다. 기본적으로 TCP 통신이라고 하면 "연결 지향"이라는 말이 나오고 "연결"이라는 개념이 나왔다면 서버와 클라이언트를 떠올릴 수 있습니다. 서버와 클라이언트는 연결을 맺고 데이터를 송수신 하다가 연결을 끊게 됩니다. 연결을 끊을 때 four -way handshaking을 하게 되는데요. (four-way handshaking은 따로 설명하지 않겠습니다.) 이 때 먼저 연결을 끊은 측에서 TIME_WAIT 상태에 들어가게 됩니다. 클라이언트 소켓이 TIME_WAIT 상태에 들어가는 것이 아니고, 서버 소켓이 TIME_WAIT 상태에 들어가는 것이 아니고, 누구랄 것 없이 먼저 종료를 요청한 소켓이 TIME_WAIT상태에 들어가게 됩니다.. 2023. 12. 8.
728x90