Dela via


IPPROTO_TCP socketalternativ

I följande tabell beskrivs IPPROTO_TCP socketalternativ som gäller för socketar som skapats för adressfamiljerna IPv4 och IPv6 (AF_INET och AF_INET6) med parametern protocol till socket funktion som anges som TCP (IPPROTO_TCP). Se getsockopt och setsockopt funktionsreferenssidor för mer information om hur du hämtar och ställer in socketalternativ.

Om du vill räkna upp protokoll och identifiera egenskaper som stöds för varje installerat protokoll använder du funktionen WSAEnumProtocols, WSCEnumProtocolseller WSCEnumProtocols32.

Alternativ

Alternativ Ställa Optvaltyp Beskrivning
TCP_BSDURGENT Ja Ja DWORD (booleskt) Om TRUEimplementerar tjänstleverantören formatet Berkeley Software Distribution (BSD) (standard) för hantering av snabba data. Det här alternativet är invertering av alternativet TCP_EXPEDITED_1122. Det här alternativet kan bara anges på anslutningen en gång. När det här alternativet har angetts kan det här alternativet inte inaktiveras. Det här alternativet krävs inte för att implementeras av tjänsteleverantörer. Alternativet är aktiverat (inställt på TRUE) som standard.
TCP_EXPEDITED_1122 Ja Ja DWORD (booleskt) Om TRUEimplementerar tjänstleverantören de snabba data som anges i RFC-1222. Annars används formatet Berkeley Software Distribution (BSD) (standard). Det här alternativet kan bara anges på anslutningen en gång. När det här alternativet har angetts kan det här alternativet inte inaktiveras. Det här alternativet krävs inte för att implementeras av tjänsteleverantörer.
TCP_FAIL_CONNECT_ON_ICMP_ERROR Ja Ja DWORD (booleskt) Om TRUEreturneras ett API-anrop för anslutning vid mottagning av ett ICMP-fel med värdet WSAEHOSTUNREACH. Källadressen för felet blir sedan tillgänglig via alternativet TCP_ICMP_ERROR_INFO socket. Om FALSEfungerar socketen normalt. Standardvärdet är inaktiverat (inställt på FALSE). För typsäkerhet bör du använda funktionerna WSAGetFailConnectOnIcmpError och WSASetFailConnectOnIcmpError i stället för att använda socketalternativet direkt.
TCP_ICMP_ERROR_INFO Ja Nej ICMP_ERROR_INFO Hämtar information om ett ICMP-fel som togs emot av TCP-socketen under ett misslyckat anslutningsanrop. Endast giltigt på en TCP-socket där TCP_FAIL_CONNECT_ON_ICMP_ERROR tidigare har aktiverats och ansluta har returnerat WSAEHOSTUNREACH. Frågan är inte blockerande. Om frågan är klar och det returnerade optlenvärdet är 0 har inget ICMP-fel tagits emot sedan det senaste anslutningsanropet. Om ett ICMP-fel togs emot blir dess information tillgänglig tills ansluter anropas igen. Informationen returneras som en ICMP_ERROR_INFO struktur. För typsäkerhet bör du använda funktionen WSAGetIcmpErrorInfo i stället för att använda socketalternativet direkt.
TCP_KEEPCNT Ja Ja DWORD Hämtar eller anger antalet TCP keep alive-avsökningar som skickas innan anslutningen avslutas. Det är inte tillåtet att ange TCP_KEEPCNT till ett värde större än 255.
TCP_MAXRT Ja Ja DWORD Om det här värdet inte är negativt representerar det den önskade tidsgränsen för anslutningen i sekunder. Om det är -1 representerar det en begäran om att inaktivera tidsgränsen för anslutningen (dvs. anslutningen överförs för alltid). Om tidsgränsen för anslutningen är inaktiverad ökar tidsgränsen för återöverföring exponentiellt för varje återöverföring upp till det maximala värdet på 60 sekunder och stannar sedan där.
TCP_NODELAY Ja Ja DWORD (booleskt) Aktiverar eller inaktiverar Nagle-algoritmen för TCP-socketar. Det här alternativet är inaktiverat (inställt på FALSE) som standard.
TCP_TIMESTAMPS Ja Ja DWORD (booleskt) Aktiverar eller inaktiverar RFC 1323-tidsstämplar. Observera att det också finns en global konfiguration för tidsstämplar (standardvärdet är av), "Tidsstämplar" i (set/get)-nettcpsetting. Om du anger det här socketalternativet åsidosätts den globala konfigurationsinställningen.
TCP_FASTOPEN Ja Ja DWORD (booleskt) Aktiverar eller inaktiverar RFC 7413 TCP Fast Open, vilket gör att du kan börja skicka data under trevägshandskakningsfasen när du öppnar en anslutning. Observera att om du vill använda snabba öppningar bör du använda ConnectEx för att upprätta den första anslutningen och ange data i funktionens lpSendBuffer parameter som ska överföras under handskakningsprocessen. En del av data i lpSendBuffer överförs under Fast Open-protokollet.
TCP_KEEPIDLE Ja Ja DWORD Hämtar eller anger antalet sekunder som en TCP-anslutning förblir inaktiv innan keepalive-avsökningar skickas till fjärranslutningen.

Obs!
Det här alternativet är tillgängligt från och med Windows 10 version 1709.


TCP_KEEPINTVL Ja Ja DWORD Hämtar eller anger antalet sekunder som en TCP-anslutning väntar på ett keepalive-svar innan en annan keepalive-avsökning skickas.

Obs!
Det här alternativet är tillgängligt från och med Windows 10 version 1709.


Windows-stöd för IPPROTO_TCP alternativ

Alternativ Windows 10 Windows 7 Windows Server 2008 Windows Vista
TCP_BSDURGENT Ja Ja Ja Ja
TCP_EXPEDITED_1122 Ja Ja Ja Ja
TCP_KEEPCNT Från och med Windows 10 version 1703
TCP_MAXRT Ja Ja Ja Ja
TCP_NODELAY Ja Ja Ja Ja
TCP_TIMESTAMPS Ja Ja Ja Ja
TCP_FASTOPEN Från och med Windows 10 version 1607

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

Anmärkningar

I Microsoft Windows Software Development Kit (SDK) som släpptes för Windows Vista och senare har organisationen av huvudfiler ändrats och IPPROTO_TCP nivå definieras i Ws2def.h huvudfil som automatiskt ingår i Winsock2.h rubrikfil. Alternativen för IPPROTO_TCP socket, med undantag för TCP_BSDURGENT, definieras i Ws2ipdef.h huvudfil som automatiskt ingår i Ws2tcpip.h-huvudfilen. Det TCP_BSDURGENT alternativet av historiska skäl definieras i Mswsock.h- huvudfil. Ws2def.h och Ws2ipdef.h huvudfiler bör aldrig användas direkt.

Krav

Krav Värde
Rubrik
Ws2def.h (inkludera Winsock2.h);
Winsock2.h på Windows Server 2003, Windows XP och Windows 2000