서버
-
Linux TCP Keepalive 정리커널(Kernel) 2022. 12. 11. 22:33
환경 정보 OS: ubuntu18.04 TCP Keepalive 종단 간 커넥션을 만들기 위해서는 TCP 맺음/ 끊기가 필요하다. 하지만 통신할 때마다 TCP 연결을 맺고 끊는 방식은 비효율적이기 때문에, 만들어진 세션을 계속 사용함으로써 자원을 아끼고 애플리케이션 응답속도를 향상시킬 수 있다. 이렇게 세션을 유지하는 방법이 keepalive이다. keepalive는 클라이언트와 서버 둘 다 사용할 수 있으며, 둘 중 하나라도 있으면 세션은 유지된다. keepalive로 커넥션을 맺게 되면, 서로가 살아 있는지 확인하기 위해 아주 작은 패킷 하나를 보내는데, 둘 중 하나에서만 보내도 충분하기 때문에 keepalive를 사용하기 유리한 쪽에서 보내 세션을 유지한다. keeplialive를 사용 중인 소켓은..
-
Linux TIME_WAIT 소켓 정리커널(Kernel) 2022. 12. 11. 16:50
환경 정보 OS: ubuntu18.04 이번 포스팅은 4-way handshake에서 TIME_WAIT 소켓을 어떻게 관리하면 좋을지에 대한 내용들을 다룬다. TCP 통신 과정 tcpdump를 통해서 client(192.168.9.194) => nginx(192.168.9.75:80)로 가는 패킷을 dump한다. tcpdump -i any port 80 -A -nn -w nginx.pcap curl 192.168.9.75 Wireshark를 이용하면, 방금 nginx로 보낸 요청이 tcp 3-way handshake, http get 요청, 4-way handshake라는 단계로 이루어져 있음을 확인할 수 있다. 일단 대략적인 흐름은 다음과 같다. 3-way handshake 1. [클라이언트 => ng..