다음을 통해 공유


IPPROTO_TCP 소켓 옵션

다음 표에서는 TCP(IPPROTO_TCP)로 지정된 소켓 함수에 대한 프로토콜 매개 변수를 사용하여 IPv4 및 IPv6 주소 패밀리(AF_INET 및 AF_INET6)에 대해 만든 소켓에 적용되는 IPPROTO_TCP 소켓 옵션에 대해 설명합니다. 소켓 옵션 가져오기 및 설정에 대한 자세한 내용은 getsockopt setsockopt 함수 참조 페이지를 참조하세요.

프로토콜을 열거하고 설치된 각 프로토콜에 대해 지원되는 속성을 검색하려면 WSAEnumProtocols, WSCEnumProtocols 또는 WSCEnumProtocols32 함수를 사용합니다.

옵션

옵션 가져오기 설정 Optval 형식 설명
TCP_BSDURGENT DWORD(부울) TRUE이면 서비스 공급자는 신속한 데이터를 처리하기 위해 BSD(Berkeley Software Distribution) 스타일(기본값)을 구현합니다. 이 옵션은 TCP_EXPEDITED_1122 옵션의 역입니다. 이 옵션은 연결에서 한 번만 설정할 수 있습니다. 이 옵션을 설정하면 이 옵션을 끌 수 없습니다. 이 옵션은 서비스 공급자가 구현할 필요가 없습니다. 이 옵션은 기본적으로 사용하도록 설정됩니다(TRUE설정).
TCP_EXPEDITED_1122 DWORD(부울) TRUE이면 서비스 공급자는 RFC-1222에 지정된 대로 신속한 데이터를 구현합니다. 그렇지 않으면 BSD(Berkeley Software Distribution) 스타일(기본값)이 사용됩니다. 이 옵션은 연결에서 한 번만 설정할 수 있습니다. 이 옵션을 설정하면 이 옵션을 끌 수 없습니다. 이 옵션은 서비스 공급자가 구현할 필요가 없습니다.
TCP_FAIL_CONNECT_ON_ICMP_ERROR DWORD(부울) TRUE이면 WSAEHOSTUNREACH 값이 있는 ICMP 오류가 수신되면 연결 API 호출이 반환됩니다. 그런 다음 TCP_ICMP_ERROR_INFO 소켓 옵션을 통해 오류의 원본 주소를 사용할 수 있습니다. FALSE이면 소켓이 정상적으로 작동합니다. 기본값은 사용 안 함(FALSE설정)입니다. 형식 안전을 위해 소켓 옵션을 직접 사용하는 대신 WSAGetFailConnectOnIcmpErrorWSASetFailConnectOnIcmpError 함수를 사용해야 합니다.
TCP_ICMP_ERROR_INFO 아니요 ICMP_ERROR_INFO 실패한 연결 호출 중에 TCP 소켓에서 수신한 ICMP 오류의 정보를 검색합니다. 이전에 TCP_FAIL_CONNECT_ON_ICMP_ERROR 사용하도록 설정되었고 연결 이 WSAEHOSTUNREACH를 반환한 TCP 소켓에서만 유효합니다. 쿼리가 비차단입니다. 성공적으로 쿼리되고 반환된 optlen 값이 0이면 마지막 연결 호출 이후 ICMP 오류가 수신되지 않습니다. ICMP 오류가 수신되면 연결이 다시 호출될 때까지 해당 정보를 사용할 수 있습니다. 정보는 ICMP_ERROR_INFO 구조체로 반환됩니다. 형식 안전을 위해 소켓 옵션을 직접 사용하는 대신 WSAGetIcmpErrorInfo 함수를 사용해야 합니다.
TCP_KEEPCNT DWORD 연결이 종료되기 전에 전송될 TCP keep alive 프로브의 수를 가져오거나 설정합니다. TCP_KEEPCNT 255보다 큰 값으로 설정하는 것은 불법입니다.
TCP_MAXRT DWORD 이 값이 음수가 아니면 원하는 연결 제한 시간(초)을 나타냅니다. -1인 경우 연결 시간 제한을 사용하지 않도록 설정하는 요청을 나타냅니다(즉, 연결이 영원히 다시 전송됨). 연결 시간 제한을 사용하지 않도록 설정하면 재전송 시간 제한이 각 재전송에 대해 기하급수적으로 최대값인 60초까지 증가한 다음, 그대로 유지됩니다.
TCP_NODELAY DWORD(부울) TCP 소켓에 대해 Nagle 알고리즘을 사용하거나 사용하지 않도록 설정합니다. 이 옵션은 기본적으로 사용하지 않도록 설정됩니다(FALSE로 설정).
TCP_TIMESTAMPS DWORD(부울) RFC 1323 타임스탬프를 사용하거나 사용하지 않도록 설정합니다. (set/get)-nettcpsetting에는 타임스탬프(기본값은 꺼져 있음), "타임스탬프"에 대한 전역 구성도 있습니다. 이 소켓 옵션을 설정하면 전역 구성 설정이 재정의됩니다.
TCP_FASTOPEN DWORD(부울) 연결을 여는 3방향 핸드셰이크 단계에서 데이터 전송을 시작할 수 있는 RFC 7413 TCP Fast Open을 사용하거나 사용하지 않도록 설정합니다. 빠른 열기를 사용하려면 ConnectEx를 사용하여 초기 연결을 만들고 핸드셰이크 프로세스 중에 전송할 해당 함수의 lpSendBuffer 매개 변수에 데이터를 지정해야 합니다. lpSendBuffer의 일부 데이터는 Fast Open 프로토콜에 따라 전송됩니다.
TCP_KEEPIDLE DWORD 유지 프로브가 원격으로 전송되기 전에 TCP 연결이 유휴 상태로 유지되는 시간(초)을 가져오거나 설정합니다.

:
이 옵션은 Windows 10 버전 1709부터 사용할 수 있습니다.


TCP_KEEPINTVL DWORD TCP 연결이 다른 유지 프로브를 보내기 전에 유지 응답을 기다리는 시간(초)을 가져오거나 설정합니다.

:
이 옵션은 Windows 10 버전 1709부터 사용할 수 있습니다.


IPPROTO_TCP 옵션에 대한 Windows 지원

옵션 Windows 10 Windows 7 Windows Server 2008 Windows Vista
TCP_BSDURGENT
TCP_EXPEDITED_1122
TCP_KEEPCNT Windows 10 버전 1703부터
TCP_MAXRT
TCP_NODELAY
TCP_TIMESTAMPS
TCP_FASTOPEN Windows 10 버전 1607부터

  옵션 Windows Server 2003 Windows XP Windows 2000 Windows NT4 Windows 9x/Me
TCP_BSDURGENT
TCP_EXPEDITED_1122
TCP_KEEPCNT
TCP_MAXRT
TCP_NODELAY
TCP_TIMESTAMPS
TCP_FASTOPEN

설명

Windows Vista 이상용으로 릴리스된 Microsoft Windows SDK(소프트웨어 개발 키트)에서 헤더 파일의 구성이 변경되었으며 IPPROTO_TCP 수준이 Winsock2.h 헤더 파일에 자동으로 포함되는 Ws2def.h 헤더 파일에 정의됩니다. TCP_BSDURGENT 제외한 IPPROTO_TCP 소켓 옵션은 Ws2tcpip.h 헤더 파일에 자동으로 포함되는 Ws2ipdef.h 헤더 파일에 정의됩니다. 기록상의 이유로 TCP_BSDURGENT 옵션은 Mswsock.h 헤더 파일에 정의되어 있습니다. Ws2def.hWs2ipdef.h 헤더 파일은 직접 사용해서는 안 됩니다.

요구 사항

요구 사항
헤더
Ws2def.h(Winsock2.h 포함);
Windows Server 2003, Windows XP 및 Windows 2000의 Winsock2.h