KEEPALIVE

DevOps/AWS

ALB, NLB idle timeout, keepalive 차이점, 문제상황 및 해결방법

ALB, NLB idle timeout, keepalive 차이점, 문제상황 및 해결방법 ALB, NLB 차이점 ALB는 http header까지 모두 확인하여 트래픽을 전달하고, NLB는 4계층 까지의 정보만 확인 후 전달한다. 이때 ALB에서는 이러한 트래픽을 Proxying 하게 되는데, 때문에 서버에서 tcpdump 시 반대쪽 IP가 alb의 IP로 찍히게 된다.(EC2에서 client로 전달되는 패킷은 DSR 방식으로 처리된다.) NLB에서는 client의 ip가 그대로 전달되며 proxying하지 않고 패킷 포워더와 같이 작동한다. client → NLB(80 listening) → ec2(8080 listening)일 때, NLB는 트래픽의 포트만을 변경하여 패킷을 ec2로 전송한다. 이때문..

Linux

Keepalive

TCP keepalive tcp에서 수립된 세션은 원래 요청이 처리된 이후 일반적으로 끊기게되지만, server와 client 측 중 하나라도 keepalive를 사용하게 된다면 요청을 수행한 이후에도 세션을 종료하지 않고 소켓을 유지시킨다. 참고로 이러한 keepalive는 nginx, apache에서 적용하던 http keepalive와 linux kernel parameter 값으로 설정할 수 있는 TCP Parameter가 존재한다. TCP keepalive parameter TCP keepalive parameter에는 다음과 같이 총 3개가 존재한다. net.ipv4.tcp_keepalive_time net.ipv4.tcp_keepalive_intvl net.ipv4.tcp_keepalive_..

Linux

TIME_WAIT 소켓과 keepalive

TIME_WAIT 소켓 TIME_WAIT 상태의 소켓은 TCP 세션 통신 과정에서 연결을 종료할 때 발생한다. TCP에서 최초 통신 수립 시에 3-way-handshaking을 하게되는데, 이후 연결을 해제할 때에는 4-way-handshaking을 하게된다. 연결 해제 시에는 연결을 해제하는 쪽에서 먼저 FIN을 보내게되고, 수신자에서 ACK, FIN을 전송한 이후 송신자가 다시 ACK 전송 후 정상적으로 받게되면 연결 해제가 정상적으로 완료된다. 다만 위 과정에서 송신자는 수신자가 전송한 FIN 이후에 연결된 소켓을 TIME-WAIT 상태로 전환하고 설정된 시간 만큼 대기 후 사라진다. 필요성 TIME_WAIT 소켓은 TCP 연결이 종료된 이후에도 흔적을 남김으로써 이후에 발생할 수 있는 문제점을 방..

xlwdn98767
'KEEPALIVE' 태그의 글 목록