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: |
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: |
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í |
|