SO_KEEPALIVE 옵션 개요 📌 소켓 프로그래밍에서 네트워크 연결을 다루다 보면, 연결의 안정성과 신뢰성을 유지하기 위해 여러 가지 옵션을 사용해야 합니다. 그 중에서도 SO_KEEPALIVE 옵션은 특히 연결의 활성 상태를 유지하는 데 유용한 옵션입니다. 이 옵션은 연결이 끊어졌을 때 이를 신속하게 감지하고 대응할 수 있도록 도와줍니다. SO_KEEPALIVE 옵션은 TCP 소켓에서 사용되며, 연결이 일정 시간 동안 활동이 없을 때 네트워크 문제를 감지하는 기능을 제공합니다. 이 옵션을 활성화하면, 시스템은 일정한 주기로 상대방에게 "Keep-Alive" 메시지를 보내 연결이 여전히 활성 상태인지 확인합니다. 🎯 함께 사용되는 옵션 TCP_KEEPIDLE: 이 옵션은 Keep-Alive 메시지를 ..
TCP/IP 소켓 옵션 feat. SO_REUSEADDR 이슈 📌 Server를 생성하고 Client 가 접속한 후 Client가 접속된 상태에서 Server를 종료시키고자 한다. Server socket과 accept로 생성된 socket을 close() 함수로 종료한 후 Task를 다시실행하였더니 bind error 가 발생하였다. 즉 Socket 이 제대로 닫히지 않은 것 이다. ✨ 4 wat handshake 🎯 4 way handshake 설명 최초에는 서로 통신 상태이기 때문에 양쪽이 ESTABLISHED 상태이다. 통신을 종료하고자 하는 Client가 서버에게 FIN 패킷을 보내고 자신은 FIN_WAIT_1 상태로 대기한다. FIN 패킷을 받은 서버는 해당 포트를 CLOSE_WAIT으로 바꾸..