11.3. 소켓 옵션을 사용하는 프로그램의 예
TCP_NODELAY 및 TCP_CORK 소켓 옵션은 네트워크 연결 동작에 큰 영향을 미칩니다. TCP_NODELAY 는 데이터 패킷을 준비한 즉시 전송할 수 있는 애플리케이션에 대해 나글의 알고리즘을 비활성화합니다. TCP_CORK 를 사용하면 서로 지연 없이 여러 데이터 패킷을 동시에 전송할 수 있습니다.
소켓 옵션(예: TCP_NODELAY )을 활성화하려면 다음 코드로 빌드한 다음 적절한 옵션을 설정합니다.
gcc tcp_nodelay_client.c -o tcp_nodelay_client -lrt
인수 없이 tcp_nodelay_server 및 tcp_nodelay_client 프로그램을 실행하면 클라이언트는 기본 소켓 옵션을 사용합니다. tcp_nodelay_server 및 tcp_nodelay_client 프로그램에 대한 자세한 내용은 Red Hat Knowledgebase 솔루션 TCP 변경으로 인해 작은 버퍼가 사용될 때 대기 시간 성능이 향상됩니다.
예제 프로그램은 이러한 소켓 옵션이 애플리케이션에 미칠 수 있는 성능에 대한 정보를 제공합니다.
11.3.1. 클라이언트에 대한 성능 영향 링크 복사링크가 클립보드에 복사되었습니다!
TCP_NODELAY 및 TCP_CORK 소켓 옵션을 사용하지 않고도 작은 버퍼 쓰기를 클라이언트에 보낼 수 있습니다. 인수 없이 실행하는 경우 클라이언트는 기본 소켓 옵션을 사용합니다.
데이터 전송을 시작하려면 서버 TCP 포트를 정의합니다.
$ ./tcp_nodelay_server 5001이 코드는 각각 두 바이트의 15개의 패킷을 전송하고 서버의 응답을 기다립니다. 여기에서 기본 TCP 동작을 채택합니다.