소켓 수신 백로그 매개변수, 이 값을 결정하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/114874

  •  02-07-2019
  •  | 
  •  

문제

청취 소켓의 백로그 매개변수에 무엇을 사용할지 어떻게 결정해야 합니까?단순히 아주 큰 숫자를 지정하는 것이 문제일까요?

도움이 되었습니까?

해결책

로부터 문서:

SOMAXCONN의 백로그 값은 소켓을 담당하는 기본 서비스 제공자에게 보류 중인 연결의 큐 길이를 합리적인 최대 값으로 설정하도록 지시하는 특수 상수입니다.

다른 팁

이에 대한 매우 긴 답변이 있습니다. Winsock 프로그래머의 FAQ.표준 설정과 NT 4.0 핫픽스에 추가된 동적 백로그 기능에 대해 자세히 설명합니다.

짧은 대기열을 사용해야 하는 특별한 이유가 없는 한 SOMAXCONN을 두 번째로 사용합니다.

대기열에 새 연결을 위한 공간이 없으면 RST가 전송되지 않으므로 클라이언트는 SYN을 재전송하여 자동으로 연결을 계속 시도할 수 있습니다.

또한 backlog 인수는 소켓 구현에 따라 다른 의미를 가질 수 있습니다.

  • 대부분은 반쯤 열린 연결 큐의 크기를 의미하고 일부는 완료된 연결 큐의 크기를 의미합니다.
  • 많은 구현에서 백로그 인수를 곱하여 다른 대기열 길이를 생성합니다.
  • 너무 큰 값이 지정되면 모든 구현에서는 어쨌든 최대 대기열 길이까지 값을 자동으로 자릅니다.

Boost asio를 사용하는 모든 사람에 대한 경고로 SOMAXCONN 값은 Boost와 함께 5로 사용됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top