Delen via


IPPROTO_IPV6 socketopties

In de volgende tabellen worden IPPROTO_IPV6 socketopties beschreven die van toepassing zijn op sockets die zijn gemaakt voor de IPv6-adresfamilie (AF_INET6). Zie de getsockopt en setsockopt functiereferentiepagina's voor meer informatie over het ophalen en instellen van socketopties.

Als u protocollen wilt inventariseren en ondersteunde eigenschappen voor elk geïnstalleerd protocol wilt detecteren, gebruikt u de WSAEnumProtocols, WSCEnumProtocolsof de functie WSCEnumProtocols32.

Voor sommige socketopties is meer uitleg vereist dan deze tabellen kunnen overbrengen; dergelijke opties bevatten koppelingen naar aanvullende informatie.

Opties

Optie Toevoegen set Type optval Beschrijving
IP_ORIGINAL_ARRIVAL_IF ja ja DWORD (Booleaanse waarde) Geeft aan of de LPFN_WSARECVMSG (WSARecvMsg) functie optionele besturingsgegevens moet retourneren die de oorspronkelijke aankomstinterface bevatten waar het pakket is ontvangen voor datagram sockets. Deze optie wordt gebruikt met IPv6-overgangstechnologieën (bijvoorbeeld 6to4, ISATAP en Teredo-tunnels) die adrestoewijzing en automatische tunneling voor host-naar-host bieden voor unicast-IPv6-verkeer wanneer IPv6-hosts IP4-netwerken moeten doorlopen om andere IPv6-netwerken te bereiken. IPv6-pakketten worden via tunnel verzonden als IPv4-pakketten. Met deze optie kan de oorspronkelijke IPv4-interface waar het pakket is ontvangen, worden geretourneerd in de WSAMSG- structuur.
IPV6_ADD_IFLIST ja DWORD (IF_INDEX) Voegt een interfaceindex toe aan de IFLIST die is gekoppeld aan de optie IP_IFLIST.
IPV6_ADD_MEMBERSHIP ja ipv6_mreq Koppel de socket aan de opgegeven multicastgroep op de opgegeven interface. Deze optie is alleen geldig voor datagram en onbewerkte sockets (het sockettype moet SOCK_DGRAM of SOCK_RAW zijn).
IPV6_DEL_IFLIST ja DWORD (IF_INDEX) Hiermee verwijdert u een interface-index uit de IFLIST die is gekoppeld aan de optie IP_IFLIST. Vermeldingen kunnen alleen door de toepassing worden verwijderd. Houd er dus rekening mee dat vermeldingen verlopen zodra een interface is verwijderd.
IPV6_DROP_MEMBERSHIP ja ipv6_mreq Laat de opgegeven multicastgroep uit de opgegeven interface. Deze optie is alleen geldig voor datagram en onbewerkte sockets (het sockettype moet SOCK_DGRAM of SOCK_RAW zijn).
IPV6_GET_IFLIST ja DWORD[] (IF_INDEX[]) Hiermee haalt u de huidige IFLIST op die is gekoppeld aan de optie IP_IFLIST. Retourneert een fout als IP_IFLIST niet is ingeschakeld.
IPV6_HDRINCL ja ja DWORD(booleaanse waarde) Geeft aan dat de toepassing de IPv6-header op alle uitgaande gegevens levert. Als de parameter optval is ingesteld op 1 in de aanroep voor setsockopt-, is de optie ingeschakeld. Als optval- is ingesteld op 0, wordt de optie uitgeschakeld. De standaardwaarde is uitgeschakeld. Deze optie is alleen geldig voor datagram- en onbewerkte sockets (het sockettype moet SOCK_DGRAM of SOCK_RAW zijn). Een TCP/IP-serviceprovider die ondersteuning biedt voor SOCK_RAW moet ook IPV6_HDRINCL ondersteunen.
IPV6_HOPLIMIT ja ja DWORD (Booleaanse waarde) Geeft aan dat TTL-gegevens (hop) moeten worden geretourneerd in de LPFN_WSARECVMSG (WSARecvMsg) functie. Als optval- is ingesteld op 1 in de aanroep naar setsockopt, is de optie ingeschakeld. Als deze optie is ingesteld op 0, is de optie uitgeschakeld. Deze optie is alleen geldig voor datagram- en onbewerkte sockets (het sockettype moet SOCK_DGRAM of SOCK_RAW zijn).
IPV6_IFLIST ja ja DWORD (Booleaanse waarde) Hiermee haalt u de IP_IFLIST toestand van de socket op of stelt u deze in. Wanneer deze optie is ingesteld op true, is datagram-ontvangst beperkt tot interfaces die zich in de IFLIST bevinden. Datagrammen die op andere interfaces worden ontvangen, worden genegeerd. IFLIST begint leeg. Gebruik IP_ADD_IFLIST en IP_DEL_IFLIST om de IFLIST te bewerken.
IPV6_JOIN_GROUP ja ipv6_mreq Hetzelfde als IPV6_ADD_MEMBERSHIP
IPV6_LEAVE_GROUP ja ipv6_mreq Hetzelfde als IPV6_DROP_MEMBERSHIP
IPV6_MTU ja DWORD Haalt de schatting van het systeem op van het pad MTU. De socket moet zijn aangesloten.
IPV6_MTU_DISCOVER ja ja DWORD (PMTUD_STATE) Hiermee haalt u de MTU-detectiestatus van het pad voor de socket op of stelt u deze in. De standaardwaarde is IP_PMTUDISC_NOT_SET. Voor stroomsockets worden IP_PMTUDISC_NOT_SET en IP_PMTUDISC_DO pad MTU-detectie uitgevoerd. IP_PMTUDISC_DONT en IP_PMTUDISC_PROBE schakelt pad MTU-detectie uit. Voor datagramsockets, indien ingesteld op IP_PMTUDISC_DO, wordt geprobeerd pakketten te verzenden die groter zijn dan het pad MTU, resulteert dit in een fout. Als deze optie is ingesteld op IP_PMTUDISC_DONT, worden pakketten gefragmenteerd volgens interface MTU. Als deze optie is ingesteld op IP_PMTUDISC_PROBE, treedt er een fout op bij het verzenden van pakketten die groter zijn dan interface-MTU.
IPV6_MULTICAST_HOPS ja ja DWORD Hiermee wordt de TTL-waarde opgehaald of ingesteld die is gekoppeld aan IPv6 multicast-verkeer op de socket. Het is ongeldig om de TTL in te stellen op een waarde die groter is dan 255. Deze optie is alleen geldig voor datagram- en onbewerkte sockets (het sockettype moet SOCK_DGRAM of SOCK_RAW zijn).
IPV6_MULTICAST_IF ja ja DWORD Hiermee haalt u de uitgaande interface op voor het verzenden van IPv6 multicast-verkeer. Met deze optie wordt de standaardinterface voor het ontvangen van IPv6 multicast-verkeer niet gewijzigd. Deze optie is belangrijk voor multihomed computers. De invoerwaarde voor het instellen van deze optie is een 4-byte interface-index van de gewenste uitgaande interface in host bytevolgorde. De functie GetAdaptersAddresses kan worden gebruikt om de interface-indexinformatie te verkrijgen. Als optval- is ingesteld op NULL- in aanroep naar setsockopt-, wordt de standaard-IPv6-interface gebruikt. Als optval nul is, wordt de standaardinterface voor het ontvangen van multicast opgegeven voor het verzenden van multicast-verkeer. Wanneer u deze optie krijgt, retourneert de optval de huidige standaardinterface-index voor het verzenden van multicast IPv6-verkeer in host bytevolgorde.
IPV6_MULTICAST_LOOP ja ja DWORD (Booleaanse waarde) Geeft aan dat multicastgegevens die op de socket worden verzonden, worden herhaald naar de sockets die buffer ontvangen als deze ook aan de doel-multicastgroep zijn gekoppeld. Als optval- is ingesteld op 1 in de aanroep naar setsockopt, is de optie ingeschakeld. Als deze optie is ingesteld op 0, is de optie uitgeschakeld. Deze optie is alleen geldig voor datagram- en onbewerkte sockets (het sockettype moet SOCK_DGRAM of SOCK_RAW zijn).
IPV6_PKTINFO ja ja DWORD (Booleaanse waarde) Geeft aan dat pakketgegevens moeten worden geretourneerd door de LPFN_WSARECVMSG (WSARecvMsg) functie.
IPV6_PROTECTION_LEVEL ja ja INT Hiermee kunt u een socket beperken tot een opgegeven bereik, zoals adressen met hetzelfde lokale koppelings- of site-voorvoegsel. Biedt verschillende beperkingsniveaus en standaardinstellingen. Zie IPV6_PROTECTION_LEVEL voor meer informatie.
IPV6_RECVIF ja ja DWORD (Booleaanse waarde) Geeft aan of de IP-stack de besturingsbuffer moet vullen met details over welke interface een pakket met een datagramsocket heeft ontvangen. Wanneer deze waarde waar is, retourneert de LPFN_WSARECVMSG (WSARecvMsg) functie optionele besturingsgegevens met de interface waarin het pakket is ontvangen voor datagram sockets. Met deze optie kan de IPv6-interface waar het pakket is ontvangen, worden geretourneerd in de WSAMSG structuur. Deze optie is alleen geldig voor datagram- en onbewerkte sockets (het sockettype moet SOCK_DGRAM of SOCK_RAW zijn).
IPV6_RECVTCLASS ja ja DWORD (Booleaanse waarde) Geeft aan of de IP-stack de besturingsbuffer moet vullen met een bericht met het veld Traffic Class IPv6-header op een ontvangen datagram. Als deze waarde waar is, retourneert de LPFN_WSARECVMSG (WSARecvMsg) functie optionele besturingsgegevens met de veldwaarde IPv6-header traffic class van het ontvangen datagram. Met deze optie kan het veld Traffic Class IPv6-header van het ontvangen datagram worden geretourneerd in de WSAMSG- structuur. Het geretourneerde berichttype wordt IPV6_TCLASS. Alle DSCP- en ECN-bits van het veld Verkeersklasse worden geretourneerd. Deze optie is alleen geldig voor datagram sockets (het sockettype moet SOCK_DGRAM).
IPV6_RECVECN ja ja DWORD (Booleaanse waarde) Geeft aan of de IP-stack de besturingsbuffer moet vullen met een bericht met de ECN-bits van het veld IPv6-header van verkeersklasse op een ontvangen datagram. Als deze waarde waar is, retourneert de LPFN_WSARECVMSG (WSARecvMsg) functie optionele besturingsgegevens met de ECN-bits van de veldwaarde IPv6-header traffic class van het ontvangen datagram. Met deze optie kunnen de ECN-bits van het veld Traffic Class IPv6-header van het ontvangen datagram worden geretourneerd in de structuur van de WSAMSG-. Het geretourneerde berichttype wordt IPV6_ECN. Alle 2 ECN-bits van het veld Verkeersklasse worden geretourneerd. Deze optie is alleen geldig voor datagram en onbewerkte sockets (het sockettype moet SOCK_DGRAM of SOCK_RAW zijn). Voor typeveiligheid moet u de functies WSAGetRecvIPEcn en WSASetRecvIPEcn functies gebruiken in plaats van de socketoptie rechtstreeks te gebruiken.
IPV6_UNICAST_HOPS ja ja DWORD Hiermee haalt u de huidige TTL-waarde op die is gekoppeld aan de IPv6-socket voor unicast-verkeer. Het is ongeldig om de TTL in te stellen op een waarde die groter is dan 255.
IPV6_UNICAST_IF ja ja DWORD (IF_INDEX) Hiermee haalt u de uitgaande interface op voor het verzenden van IPv6-verkeer. Met deze optie wordt de standaardinterface voor het ontvangen van IPv6-verkeer niet gewijzigd. Deze optie is belangrijk voor multihomed computers. De invoerwaarde voor het instellen van deze optie is een 4-byte interface-index van de gewenste uitgaande interface in host bytevolgorde. De functie GetAdaptersAddresses kan worden gebruikt om de interface-indexinformatie te verkrijgen. Als optval- nul is, wordt de standaardinterface voor het verzenden van IPv6-verkeer ingesteld op niet-opgegeven. Wanneer u deze optie krijgt, retourneert de optval de huidige standaardinterface-index voor het verzenden van IPv6-verkeer in host bytevolgorde.
IPV6_USER_MTU ja ja DWORD Hiermee haalt u een bovengrens op voor de MTU van de IP-laag (in bytes) voor de opgegeven socket. Als de waarde hoger is dan de schatting van het pad MTU (die u op een verbonden socket kunt ophalen door een query uit te voeren op de IPV6_MTU socketoptie), heeft de optie geen effect. Als de waarde lager is, worden uitgaande pakketten groter dan dit gefragmenteerd of niet verzonden, afhankelijk van de waarde van IPV6_DONTFRAG. De standaardwaarde is IP_UNSPECIFIED_USER_MTU (MAXULONG). Voor typeveiligheid moet u de functies WSAGetIPUserMtu en WSASetIPUserMtu functies gebruiken in plaats van de socketoptie rechtstreeks te gebruiken.
IPV6_V6ONLY ja ja DWORD (Booleaanse waarde) Geeft aan of een socket die is gemaakt voor de AF_INET6-adresfamilie alleen is beperkt tot IPv6-communicatie. Sockets die zijn gemaakt voor de AF_INET6-adresfamilie kunnen worden gebruikt voor zowel IPv6- als IPv4-communicatie. Sommige toepassingen willen mogelijk het gebruik van een socket beperken die is gemaakt voor de AF_INET6 adresfamilie tot alleen IPv6-communicatie. Wanneer deze waarde niet nul is (de standaardinstelling voor Windows), kan een socket die is gemaakt voor de AF_INET6-adresfamilie alleen worden gebruikt voor het verzenden en ontvangen van IPv6-pakketten. Wanneer deze waarde nul is, kan een socket die is gemaakt voor de AF_INET6 adresfamilie worden gebruikt om pakketten te verzenden en ontvangen van en naar een IPv6-adres of een IPv4-adres. Houd er rekening mee dat de mogelijkheid om te communiceren met een IPv4-adres het gebruik van toegewezen IPv4-adressen vereist. Deze socketoptie wordt ondersteund op Windows Vista of hoger.

Windows-ondersteuning voor IPPROTO_IPV6 socketopties

Optie Windows 8 Windows Server 2012 Windows 7 Windows Server 2008 Windows Vista
IP_ORIGINAL_ARRIVAL_IF ja ja ja
IPV6_ADD_IFLIST Vanaf Windows 10 versie 1803
IPV6_ADD_MEMBERSHIP ja ja ja ja ja
IPV6_DEL_IFLIST Vanaf Windows 10 versie 1803
IPV6_DROP_MEMBERSHIP ja ja ja ja ja
IPV6_GET_IFLIST Vanaf Windows 10 versie 1803
IPV6_HDRINCL ja ja ja ja ja
IPV6_HOPLIMIT ja ja ja ja ja
IPV6_IFLIST Vanaf Windows 10 versie 1803
IPV6_JOIN_GROUP ja ja ja ja ja
IPV6_LEAVE_GROUP ja ja ja ja ja
IPV6_MULTICAST_HOPS ja ja ja ja ja
IPV6_MULTICAST_IF ja ja ja ja ja
IPV6_MULTICAST_LOOP ja ja ja ja ja
IPV6_PKTINFO ja ja ja ja ja
IPV6_PROTECTION_LEVEL ja ja ja ja ja
IPV6_RECVIF ja ja ja ja ja
IPV6_UNICAST_HOPS ja ja ja ja ja
IPV6_UNICAST_IF ja ja ja ja ja
IPV6_V6ONLY ja ja ja ja ja

Optie Windows Server 2003 Windows XP
IP_ORIGINAL_ARRIVAL_IF
IPV6_ADD_IFLIST
IPV6_ADD_MEMBERSHIP ja ja
IPV6_DEL_IFLIST
IPV6_DROP_MEMBERSHIP ja ja
IPV6_GET_IFLIST
IPV6_HDRINCL ja ja
IPV6_HOPLIMIT ja ja
IPV6_IFLIST
IPV6_JOIN_GROUP ja ja
IPV6_LEAVE_GROUP ja ja
IPV6_MULTICAST_HOPS ja ja
IPV6_MULTICAST_IF ja ja
IPV6_MULTICAST_LOOP ja ja
IPV6_PKTINFO ja ja
IPV6_PROTECTION_LEVEL ja ja
IPV6_RECVIF
IPV6_UNICAST_HOPS ja ja
IPV6_UNICAST_IF
IPV6_V6ONLY

Opmerkingen

Op de Microsoft Windows Software Development Kit (SDK) die is uitgebracht voor Windows Vista en later, is de organisatie van headerbestanden gewijzigd en wordt IPPROTO_IPV6 niveau gedefinieerd in het headerbestand Ws2def.h dat automatisch wordt opgenomen in het headerbestand Winsock2.h. De IPPROTO_IPV6 socketopties worden gedefinieerd in het headerbestand Ws2ipdef.h dat automatisch wordt opgenomen in het headerbestand Ws2tcpip.h. De Ws2def.h en Ws2ipdef.h headerbestanden mogen nooit rechtstreeks worden gebruikt.

De IP_ORIGINAL_ARRIVAL_IF socketoptie wordt ondersteund in Windows Server 2008 R2 en windows 7.

Eisen

Eis Waarde
Rubriek
Ws2def.h (inclusief Winsock2.h);
Winsock2.h op Windows Server 2003 en Windows XP