11.2. TCP_CORK 소켓 옵션


TCP_CORK 옵션은 소켓의 모든 데이터 패킷을 수집하고 버퍼가 지정된 제한으로 채워질 때까지 전송하지 않습니다. 이를 통해 애플리케이션은 커널 공간에 패킷을 빌드하고 TCP_CORK 가 비활성화되면 데이터를 보낼 수 있습니다. TCP_CORKsetsocketopt() 함수를 사용하여 소켓 파일 설명자에 설정됩니다. 프로그램을 개발할 때 파일에서 대량 데이터를 보내야하는 경우 sendfile() 함수와 함께 TCP_CORK 를 사용하는 것이 좋습니다.

논리 패킷이 다양한 구성 요소에서 커널에 빌드되면 setsockopt 소켓 API를 사용하여 1 값으로 구성하여 TCP_CORK 를 활성화합니다. 이를 "corking the socket"이라고 합니다. TCP_CORK 는 코크가 적절한 시간에 제거되지 않는 경우 버그가 발생할 수 있습니다.

다음 예제에서는 setsockopt 소켓 API를 통해 TCP_CORK 를 활성화하는 방법을 보여줍니다.

int one = 1;
setsockopt(descriptor, SOL_TCP, TCP_CORK, &one, sizeof(one));

일부 환경에서는 커널이 코크를 제거할 시기를 확인할 수 없는 경우 다음과 같이 수동으로 제거할 수 있습니다.

int zero = 0;
setsockopt(descriptor, SOL_TCP, TCP_CORK, &zero, sizeof(zero));
작은 정보

자세한 내용은 시스템의 sendfile(2) 매뉴얼 페이지를 참조하십시오.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동