운영체제

리눅스 backlog, somaxcoon

정재익 2026. 1. 3. 14:20

TCP연결시 3핸드셰이크를 거친다.

클라이언트가 Syn을 보내면 서버는 syn+ack을 보내고 아직 연결이 절반만 이루어진 이 요청을 SYN Backlog라는 큐에 보관한다.

이때 요청이 보관되는 큐의 최대 크기는 tcp_max_syn_backlog이다.

클라이언트가 마지막 ack을 보내 연결이 established이 된다. 이 때 요청은 Accpet Queue로 이동한다.

여기서 애플리케이션이 accpet시스템 콜을 호출하여 연결을 가져가기 전까지 대기한다.

somaxcoon은 커널 레벨의 최대 제한치이다. 시스템 전체에서 한 소켓이 가질 수 있는 최대 Accpet Queue를 강제한다.

애플리케이션에도 backlog가있다 이것은 Synbacklog큐와 전혀다른 존재다 Accpet queue에 영향을주며 대기가능한 연결수에대한 요청값이다

Accpet Queue의 크기는 backlog와 somaxcoon중 더 작은 값으로 결정된다.