Sdílet prostřednictvím


možnosti soketu IPPROTO_TCP

Následující tabulka popisuje IPPROTO_TCP možnosti soketů, které platí pro sokety vytvořené pro rodiny adres IPv4 a IPv6 (AF_INET a AF_INET6) s parametrem protokolu pro funkcisoketu určenou jako TCP (IPPROTO_TCP). Další informace o získání a nastavení možností soketů najdete v referenčních stránkách a setsockopt funkcí.

K zobrazení výčtu protokolů a zjišťování podporovaných vlastností pro každý nainstalovaný protokol použijte funkci WSAEnumProtocols, WSCEnumProtocolsnebo WSCEnumProtocols3 2.

Volby

Možnost Dostat Nastavit Typ optval Popis
TCP_BSDURGENT Ano Ano DWORD (logická hodnota) Pokud TRUE, poskytovatel služeb implementuje styl Berkeley Software Distribution (BSD) (výchozí) pro zpracování urychlených dat. Tato možnost je inverzní k TCP_EXPEDITED_1122 možnosti. Tuto možnost lze nastavit pouze jednou pro připojení. Jakmile je tato možnost zapnutá, tuto možnost nelze vypnout. Tuto možnost nemusí implementovat poskytovatelé služeb. Možnost je ve výchozím nastavení povolená (nastavená na hodnotu TRUE).
TCP_EXPEDITED_1122 Ano Ano DWORD (logická hodnota) Pokud TRUE, poskytovatel služeb implementuje urychlená data uvedená v dokumentu RFC-1222. V opačném případě se použije styl Berkeley Software Distribution (BSD) (výchozí). Tuto možnost lze nastavit pouze jednou pro připojení. Jakmile je tato možnost zapnutá, tuto možnost nelze vypnout. Tuto možnost nemusí implementovat poskytovatelé služeb.
TCP_FAIL_CONNECT_ON_ICMP_ERROR Ano Ano DWORD (logická hodnota) Pokud TRUE, volání rozhraní API pro připojení se vrátí při příjmu chyby ICMP s hodnotou WSAEHOSTUNREACH. Zdrojová adresa chyby bude dostupná prostřednictvím možnosti TCP_ICMP_ERROR_INFO soketu. Pokud false, soket se chová normálně. Výchozí hodnota je zakázaná (nastavená na hodnotu FALSE). Pro zabezpečení typů byste měli použít WSAGetFailConnectOnIcmpError a WSASetFailConnectOnIcmpError funkce místo použití možnosti soketu přímo.
TCP_ICMP_ERROR_INFO Ano Ne ICMP_ERROR_INFO Načte informace o chybě PROTOKOLU ICMP přijaté soketem TCP během neúspěšného volání připojení. Platí pouze na soketu TCP, kde byl dříve povolen TCP_FAIL_CONNECT_ON_ICMP_ERROR, a připojit vrátil WSAEHOSTUNREACH. Dotaz neblokuje. Pokud se dotaz úspěšně dotazoval a vrácená hodnota optlenu je 0, od posledního volání připojení nebyla přijata žádná chyba PROTOKOLU ICMP. Pokud se zobrazila chyba PROTOKOLU ICMP, budou její informace k dispozici, dokud se připojení znovu nevolá. Informace se vrátí jako struktura ICMP_ERROR_INFO. Pro zabezpečení typů byste měli místo použití možnosti soketu použít funkci WSAGetIcmpErrorInfo.
TCP_KEEPCNT Ano Ano DWORD Získá nebo nastaví počet sond tcp udržování naživu, které budou odeslány před ukončením připojení. Je neplatné nastavit TCP_KEEPCNT na hodnotu větší než 255.
TCP_MAXRT Ano Ano DWORD Pokud je tato hodnota nezáporná, představuje časový limit požadovaného připojení v sekundách. Pokud je hodnota -1, představuje požadavek na zakázání časového limitu připojení (tj. připojení se bude opakovat navždy). Pokud je časový limit připojení zakázaný, časový limit opakovaného přenosu se exponenciálně zvýší pro každé opětovné přeposílání až do maximální hodnoty 60sec a zůstane tam.
TCP_NODELAY Ano Ano DWORD (logická hodnota) Povolí nebo zakáže algoritmus Nagle pro sokety TCP. Tato možnost je ve výchozím nastavení zakázaná (nastavená na FALSE).
TCP_TIMESTAMPS Ano Ano DWORD (logická hodnota) Povolí nebo zakáže časové razítko RFC 1323. Všimněte si, že existuje také globální konfigurace pro časové razítka (výchozí nastavení je vypnuto), "Časové razítka" v (set/get)-nettcpsetting. Nastavení této možnosti soketu přepíše toto globální nastavení konfigurace.
TCP_FASTOPEN Ano Ano DWORD (logická hodnota) Povolí nebo zakáže RFC 7413 TCP Fast Open, což umožňuje začít odesílat data během třícestné fáze handshake otevření připojení. Všimněte si, že pokud chcete použít rychlé otevření, měli byste použít ConnectEx k vytvoření počátečního připojení a zadat data v lpSendBuffer parametru, který se má přenést během procesu handshake. Některá data v lpSendBuffer budou přenesena v rámci protokolu Fast Open.
TCP_KEEPIDLE Ano Ano DWORD Získá nebo nastaví počet sekund, po které zůstane připojení TCP nečinné před odesláním sond keepalive do vzdáleného umístění.

Poznámka:
Tato možnost je dostupná od Windows 10 verze 1709.


TCP_KEEPINTVL Ano Ano DWORD Získá nebo nastaví počet sekund připojení TCP bude čekat na keepalive odpověď před odesláním další keepalive sondy.

Poznámka:
Tato možnost je dostupná od Windows 10 verze 1709.


Podpora Windows pro možnosti IPPROTO_TCP

Možnost Windows 10 Windows 7 Windows Server 2008 Windows Vista
TCP_BSDURGENT Ano Ano Ano Ano
TCP_EXPEDITED_1122 Ano Ano Ano Ano
TCP_KEEPCNT Počínaje Windows 10 verze 1703
TCP_MAXRT Ano Ano Ano Ano
TCP_NODELAY Ano Ano Ano Ano
TCP_TIMESTAMPS Ano Ano Ano Ano
TCP_FASTOPEN Počínaje Windows 10 verze 1607

  Možnost Windows Server 2003 Windows XP Windows 2000 Windows NT4 Windows 9x/Me
TCP_BSDURGENT Ano Ano Ano Ano
TCP_EXPEDITED_1122 Ano Ano Ano
TCP_KEEPCNT
TCP_MAXRT
TCP_NODELAY Ano Ano Ano Ano
TCP_TIMESTAMPS
TCP_FASTOPEN

Poznámky

V sadě Microsoft Windows Software Development Kit (SDK) vydané pro Systém Windows Vista a novější se organizace hlaviček souborů změnila a IPPROTO_TCP úroveň je definována v souboru hlavičky Ws2def.h, který se automaticky zahrne do souboru hlavičky Winsock2.h. Možnosti IPPROTO_TCP soketů, s výjimkou TCP_BSDURGENT, jsou definovány v souboru hlaviček Ws2ipdef.h, který je automaticky zahrnutý do Ws2tcpip.h hlavičkového souboru. Možnost TCP_BSDURGENT z historických důvodů je definována v souboru hlavičky Mswsock.h. Soubory hlaviček ws2def.h Ws2def.h a Ws2ipdef.h by se nikdy neměly používat přímo.

Požadavky

Požadavek Hodnota
Záhlaví
Ws2def.h (včetně rozhraní Winsock2.h);
Winsock2.h v systémech Windows Server 2003, Windows XP a Windows 2000