Параметры сокета IPPROTO_TCP
В следующей таблице описаны IPPROTO_TCP параметры сокетов, которые применяются к сокетам, созданным для семейств адресов IPv4 и IPv6 (AF_INET и AF_INET6), с параметром протокола для функции сокета , указанной как TCP (IPPROTO_TCP). Дополнительные сведения о получении и настройке параметров сокета см. на справочных страницах функций getsockopt и setsockopt .
Для перечисления протоколов и обнаружения поддерживаемых свойств для каждого установленного протокола используйте функцию WSAEnumProtocols, WSCEnumProtocols или WSCEnumProtocols32 .
Параметры
Параметр | Получить | Присвойте параметру | Тип Optval | Описание |
---|---|---|---|---|
TCP_BSDURGENT | да | да | DWORD (логическое значение) | Если значение РАВНО TRUE, поставщик услуг реализует стиль распространения программного обеспечения Беркли (BSD) (по умолчанию) для обработки ускоренной обработки данных. Этот параметр является обратным для параметра TCP_EXPEDITED_1122. Этот параметр можно задать для подключения только один раз. Если этот параметр включен, его нельзя отключить. Этот параметр не обязательно должен быть реализован поставщиками услуг. Параметр включен (имеет значение TRUE) по умолчанию. |
TCP_EXPEDITED_1122 | да | да | DWORD (логическое значение) | Если значение РАВНО TRUE, поставщик службы реализует ускоренную обработку данных, как указано в RFC-1222. В противном случае используется стиль Berkeley Software Distribution (BSD) (по умолчанию). Этот параметр можно задать для подключения только один раз. Если этот параметр включен, его нельзя отключить. Этот параметр не обязательно должен быть реализован поставщиками услуг. |
TCP_FAIL_CONNECT_ON_ICMP_ERROR | да | да | DWORD (логическое значение) | Если значение РАВНО TRUE, вызов API подключения возвращается при получении ошибки ICMP со значением WSAEHOSTUNREACH. Затем исходный адрес ошибки будет доступен через параметр сокета TCP_ICMP_ERROR_INFO. Если значение РАВНО FALSE, сокет работает нормально. Значение по умолчанию отключено (установлено значение FALSE). Для обеспечения безопасности типов следует использовать функции WSAGetFailConnectOnIcmpError и WSASetFailConnectOnIcmpError вместо непосредственного использования параметра сокета. |
TCP_ICMP_ERROR_INFO | да | нет | ICMP_ERROR_INFO | Извлекает сведения об ошибке ICMP, полученной сокетом TCP во время неудачного вызова подключения. Действителен только в сокете TCP, где ранее был включен TCP_FAIL_CONNECT_ON_ICMP_ERROR, а функция connect вернула WSAEHOSTUNREACH. Запрос не блокируется. Если запрос выполнен успешно и возвращенное значение optlen равно 0, ошибка ICMP не была получена с момента последнего вызова подключения. Если получена ошибка ICMP, сведения о ней будут доступны до повторного вызова подключения . Сведения возвращаются в виде структуры ICMP_ERROR_INFO . Для обеспечения безопасности типов следует использовать функцию WSAGetIcmpErrorInfo вместо непосредственного использования параметра сокета. |
TCP_KEEPCNT | да | да | DWORD | Возвращает или задает количество проб активности TCP, которые будут отправлены до завершения подключения. Недопустимо задавать TCP_KEEPCNT значение больше 255. |
TCP_MAXRT | да | да | DWORD | Если это значение не является отрицательным, оно представляет требуемое время ожидания подключения в секундах. Если значение равно -1, оно представляет собой запрос на отключение времени ожидания подключения (т. е. подключение будет повторно передаваться навсегда). Если время ожидания подключения отключено, время ожидания повторной передачи увеличивается экспоненциально для каждой повторной передачи до максимального значения 60 секунд, а затем остается там. |
TCP_NODELAY | да | да | DWORD (логическое значение) | Включает или отключает алгоритм Nagle для сокетов TCP. Этот параметр по умолчанию отключен (имеет значение FALSE). |
TCP_TIMESTAMPS | да | да | DWORD (логическое значение) | Включает или отключает метки времени RFC 1323. Обратите внимание, что существует также глобальная конфигурация меток времени (по умолчанию — off), "Timestamps" в (set/get)-nettcpsetting. Установка этого параметра сокета переопределяет этот глобальный параметр конфигурации. |
TCP_FASTOPEN | да | да | DWORD (логическое значение) | Включает или отключает функцию RFC 7413 TCP Fast Open, которая позволяет начать отправку данных на этапе трехстороннего подтверждения при открытии подключения. Обратите внимание, что для быстрого открытия необходимо использовать ConnectEx , чтобы установить начальное соединение, и указать данные в параметре lpSendBuffer этой функции, которые будут переданы во время подтверждения. Некоторые данные в lpSendBuffer будут передаваться по протоколу Fast Open. |
TCP_KEEPIDLE | да | да | DWORD | Возвращает или задает количество секунд, в течение которых TCP-подключение будет оставаться бездействующим, прежде чем пробы keepalive будут отправлены в удаленный репозиторий.
Примечание. |
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 |
Комментарии
В пакете SDK для Windows, выпущенном для Windows Vista и более поздних версий, организация файлов заголовков изменилась, и уровень IPPROTO_TCP определяется в файле заголовка Ws2def.h , который автоматически включается в файл заголовка Winsock2.h . Параметры сокета IPPROTO_TCP , за исключением TCP_BSDURGENT, определяются в файле заголовка Ws2ipdef.h , который автоматически включается в файл заголовка Ws2tcpip.h . Параметр TCP_BSDURGENT по историческим причинам определен в файле заголовка Mswsock.h . Файлы заголовков Ws2def.h и Ws2ipdef.h никогда не следует использовать напрямую.
Требования
Требование | Значение |
---|---|
Заголовок |
|
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по