IPPROTO_TCP 소켓 옵션
다음 표에서는 프로토콜 매개 변수가 TCP(IPPROTO_TCP )로 지정된 소켓 함수에 대한 프로토콜 매개 변수를 사용하여 IPv4 및 IPv6 주소 패밀리(AF_INET 및 AF_INET6)에 대해 만든 소켓에 적용되는 IPPROTO_TCP 소켓 옵션에 대해 설명합니다. 소켓 옵션을 가져오고 설정하는 방법에 대한 자세한 내용은 getsockopt 및 setsockopt 함수 참조 페이지를 참조하세요.
프로토콜을 열거하고 설치된 각 프로토콜에 대해 지원되는 속성을 검색하려면 WSAEnumProtocols, WSCEnumProtocols 또는 WSCEnumProtocols32 함수를 사용합니다.
옵션
옵션 | 가져오기 | 설정 | Optval 유형 | Description |
---|---|---|---|---|
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로 설정). 형식 안전성을 위해 소켓 옵션을 직접 사용하는 대신 WSAGetFailConnectOnIcmpError 및 WSASetFailConnectOnIcmpError 함수를 사용해야 합니다. |
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 연결이 유휴 상태로 유지되는 시간(초)을 가져오거나 설정합니다.
참고: |
TCP_KEEPINTVL | 예 | 예 | DWORD | TCP 연결이 다른 유지 프로브를 보내기 전에 유지 응답을 기다리는 시간(초)을 가져오거나 설정합니다.
참고: |
IPPROTO_TCP 옵션에 대한 Windows 지원
옵션 | Windows 10 | Windows 7 | Windows Server 2008 | Windows Vista |
---|---|---|---|---|
TCP_BSDURGENT | x | x | x | x |
TCP_EXPEDITED_1122 | x | x | x | x |
TCP_KEEPCNT | Windows 10 버전 1703부터 | |||
TCP_MAXRT | x | x | x | x |
TCP_NODELAY | x | x | x | x |
TCP_TIMESTAMPS | x | x | x | x |
TCP_FASTOPEN | Windows 10 버전 1607부터 |
옵션 | Windows Server 2003 | Windows XP | Windows 2000 | Windows NT4 | Windows 9x/Me | |
---|---|---|---|---|---|---|
TCP_BSDURGENT | x | x | x | x | ||
TCP_EXPEDITED_1122 | x | x | x | |||
TCP_KEEPCNT | ||||||
TCP_MAXRT | ||||||
TCP_NODELAY | x | x | x | x | ||
TCP_TIMESTAMPS | ||||||
TCP_FASTOPEN |
설명
Windows Vista 이상용으로 릴리스된 Microsoft SDK(Windows 소프트웨어 개발 키트)에서 헤더 파일의 organization 변경되었으며 IPPROTO_TCP 수준은 Winsock2.h 헤더 파일에 자동으로 포함된 Ws2def.h 헤더 파일에 정의됩니다. TCP_BSDURGENT 제외한 IPPROTO_TCP 소켓 옵션은 Ws2tcpip.h 헤더 파일에 자동으로 포함된 Ws2ipdef.h 헤더 파일에 정의됩니다. 기록상의 이유로 TCP_BSDURGENT 옵션은 Mswsock.h 헤더 파일에 정의되어 있습니다. Ws2def.h 및 Ws2ipdef.h 헤더 파일은 직접 사용하면 안 됩니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 |
|