IPPROTO_IPV6-Socketoptionen

In den folgenden Tabellen werden IPPROTO_IPV6 Socketoptionen beschrieben, die für Sockets gelten, die für die IPv6-Adressfamilie (AF_INET6) erstellt wurden. Weitere Informationen zum Abrufen und Festlegen von Socketoptionen finden Sie auf den Referenzseiten für die Funktionen getsockopt und setsockopt .

Um Protokolle aufzulisten und unterstützte Eigenschaften für jedes installierte Protokoll zu ermitteln, verwenden Sie die Funktion WSAEnumProtocols, WSCEnumProtocols oder WSCEnumProtocols32 .

Einige Socketoptionen erfordern mehr Erklärungen, als diese Tabellen vermitteln können. solche Optionen enthalten Links zu zusätzlichen Informationen.

Optionen

Option get set Optval-Typ BESCHREIBUNG
IP_ORIGINAL_ARRIVAL_IF ja ja DWORD (boolesch) Gibt an, ob die LPFN_WSARECVMSG-Funktion (WSARecvMsg) optionale Steuerungsdaten zurückgeben soll, die die ursprüngliche Ankunftsschnittstelle enthalten, an der das Paket für Datagrammsockets empfangen wurde. Diese Option wird mit IPv6-Übergangstechnologien (z. B. 6to4-, ISATAP- und Teredo-Tunnel) verwendet, die Adresszuweisung und automatisches Host-zu-Host-Tunneling für Unicast-IPv6-Datenverkehr bereitstellen, wenn IPv6-Hosts IP4-Netzwerke durchlaufen müssen, um andere IPv6-Netzwerke zu erreichen. IPv6-Pakete werden als IPv4-Pakete getunnelt gesendet. Mit dieser Option kann die ursprüngliche IPv4-Schnittstelle, über die das Paket empfangen wurde, in der WSAMSG-Struktur zurückgegeben werden.
IPV6_ADD_IFLIST ja DWORD (IF_INDEX) Fügt der IFLIST, die der Option IP_IFLIST zugeordnet ist, einen Schnittstellenindex hinzu.
IPV6_ADD_MEMBERSHIP ja ipv6_mreq Verknüpfen Sie den Socket mit der bereitgestellten Multicastgruppe auf der angegebenen Schnittstelle. Diese Option ist nur für Datagramme und Unformatierte Sockets gültig (der Sockettyp muss SOCK_DGRAM oder SOCK_RAW sein).
IPV6_DEL_IFLIST ja DWORD (IF_INDEX) Entfernt einen Schnittstellenindex aus der IFLIST, die der Option IP_IFLIST zugeordnet ist. Einträge können nur von der Anwendung entfernt werden. Beachten Sie daher, dass Einträge möglicherweise veraltet werden, sobald eine Schnittstelle entfernt wurde.
IPV6_DROP_MEMBERSHIP ja ipv6_mreq Verlassen Sie die angegebene Multicastgruppe von der angegebenen Schnittstelle. Diese Option ist nur für Datagramme und Unformatierte Sockets gültig (der Sockettyp muss SOCK_DGRAM oder SOCK_RAW sein).
IPV6_GET_IFLIST ja DWORD[] (IF_INDEX[]) Ruft die aktuelle IFLIST ab, die der option IP_IFLIST zugeordnet ist. Gibt einen Fehler zurück, wenn IP_IFLIST nicht aktiviert ist.
IPV6_HDRINCL ja ja DWORD(boolean) Gibt an, dass die Anwendung den IPv6-Header für alle ausgehenden Daten bereitstellt. Wenn der optval-Parameter für den Aufruf von setsockopt auf 1 festgelegt ist, ist die Option aktiviert. Wenn optval auf 0 festgelegt ist, ist die Option deaktiviert. Der Standardwert ist „deaktiviert“. Diese Option ist nur für Datagramme und Unformatierte Sockets gültig (der Sockettyp muss SOCK_DGRAM oder SOCK_RAW sein). Ein TCP/IP-Dienstanbieter, der SOCK_RAW unterstützt, sollte auch IPV6_HDRINCL unterstützen.
IPV6_HOPLIMIT ja ja DWORD (boolesch) Gibt an, dass Hopinformationen (TTL) in der funktion LPFN_WSARECVMSG (WSARecvMsg) zurückgegeben werden sollen. Wenn optval für den Aufruf von setsockopt auf 1 festgelegt ist, ist die Option aktiviert. Wenn sie auf 0 festgelegt ist, ist die Option deaktiviert. Diese Option ist nur für Datagramme und Unformatierte Sockets gültig (der Sockettyp muss SOCK_DGRAM oder SOCK_RAW sein).
IPV6_IFLIST ja ja DWORD (boolesch) Ruft den IP_IFLIST Zustand des Sockets ab oder legt diese fest. Wenn diese Option auf true festgelegt ist, ist der Datagram-Empfang auf Schnittstellen beschränkt, die sich in der IFLIST befinden. Datagramme, die auf anderen Schnittstellen empfangen werden, werden ignoriert. IFLIST beginnt leer. Verwenden Sie IP_ADD_IFLIST und IP_DEL_IFLIST , um die IFLIST zu bearbeiten.
IPV6_JOIN_GROUP ja ipv6_mreq Identisch mit IPV6_ADD_MEMBERSHIP
IPV6_LEAVE_GROUP ja ipv6_mreq Identisch mit IPV6_DROP_MEMBERSHIP
IPV6_MTU ja DWORD Ruft die Schätzung der Pfad-MTU des Systems ab. Socket muss verbunden sein.
IPV6_MTU_DISCOVER ja ja DWORD (PMTUD_STATE) Ruft den MTU-Ermittlungsstatus des Pfads für den Socket ab oder legt diese fest. Der Standardwert ist IP_PMTUDISC_NOT_SET. Für Streamsockets führen IP_PMTUDISC_NOT_SET und IP_PMTUDISC_DO die MTU-Pfadermittlung durch. IP_PMTUDISC_DONT und IP_PMTUDISC_PROBE deaktivieren die MTU-Pfadermittlung. Wenn für Datagrammsockets auf IP_PMTUDISC_DO festgelegt ist, führt der Versuch, Pakete zu senden, die größer als der MTU-Pfad sind, zu einem Fehler. Wenn sie auf IP_PMTUDISC_DONT festgelegt ist, werden Pakete entsprechend der Schnittstellen-MTU fragmentiert. Wenn auf IP_PMTUDISC_PROBE festgelegt ist, führt der Versuch, Pakete zu senden, die größer als die Schnittstellen-MTU sind, zu einem Fehler.
IPV6_MULTICAST_HOPS ja ja DWORD Ruft den TTL-Wert ab, der dem IPv6-Multicastdatenverkehr im Socket zugeordnet ist, oder legt diese fest. Es ist unzulässig, die Gültigkeitsdauer auf einen Wert größer als 255 festzulegen. Diese Option ist nur für Datagramme und Unformatierte Sockets gültig (der Sockettyp muss SOCK_DGRAM oder SOCK_RAW sein).
IPV6_MULTICAST_IF ja ja DWORD Ruft die ausgehende Schnittstelle zum Senden von IPv6-Multicastdatenverkehr ab oder legt sie fest. Diese Option ändert nicht die Standardschnittstelle für den Empfang von IPv6-Multicastdatenverkehr. Diese Option ist für Computer mit mehreren Computern wichtig. Der Eingabewert zum Festlegen dieser Option ist ein 4-Byte-Schnittstellenindex der gewünschten ausgehenden Schnittstelle in Hostbytereihenfolge. Die GetAdaptersAddresses-Funktion kann verwendet werden, um die Schnittstellenindexinformationen abzurufen. Wenn optval beim Aufruf von setsockopt auf NULL festgelegt ist, wird die IPv6-Standardschnittstelle verwendet. Wenn optval null ist, wird die Standardschnittstelle für den Multicastempfang für das Senden von Multicastdatenverkehr angegeben. Beim Abrufen dieser Option gibt optval den aktuellen Standardschnittstellenindex für das Senden von Multicast-IPv6-Datenverkehr in Hostbytereihenfolge zurück.
IPV6_MULTICAST_LOOP ja ja DWORD (boolescher Wert) Gibt an, dass multicast-Daten, die auf dem Socket gesendet werden, an den Empfangspuffer der Sockets zurückgegeben werden, wenn sie auch in die Ziel-Multicastgruppe eingebunden sind. Wenn optval für den Aufruf von setockopt auf 1 festgelegt ist, ist die Option aktiviert. Wenn sie auf 0 festgelegt ist, ist die Option deaktiviert. Diese Option ist nur für Datagramme und Unformatierte Sockets gültig (der Sockettyp muss SOCK_DGRAM oder SOCK_RAW sein).
IPV6_PKTINFO ja ja DWORD (boolescher Wert) Gibt an, dass Paketinformationen von der funktion LPFN_WSARECVMSG (WSARecvMsg) zurückgegeben werden sollen.
IPV6_PROTECTION_LEVEL ja ja INT Aktiviert die Einschränkung eines Sockets auf einen angegebenen Bereich, z. B. Adressen mit demselben lokalen Linkpräfix oder lokalem Standortpräfix. Stellt verschiedene Einschränkungsstufen und Standardeinstellungen bereit. Weitere Informationen finden Sie unter IPV6_PROTECTION_LEVEL .
IPV6_RECVIF ja ja DWORD (boolescher Wert) Gibt an, ob der IP-Stapel den Steuerungspuffer mit Details darüber auffüllen soll, welche Schnittstelle ein Paket mit einem Datagrammsocket empfangen hat. Wenn dieser Wert true ist, gibt die LPFN_WSARECVMSG -Funktion (WSARecvMsg) optionale Steuerungsdaten zurück, die die Schnittstelle enthalten, an der das Paket für Datagrammsockets empfangen wurde. Mit dieser Option kann die IPv6-Schnittstelle, an der das Paket empfangen wurde, in der WSAMSG-Struktur zurückgegeben werden. Diese Option ist nur für Datagramme und Unformatierte Sockets gültig (der Sockettyp muss SOCK_DGRAM oder SOCK_RAW sein).
IPV6_RECVTCLASS ja ja DWORD (boolescher Wert) Gibt an, ob der IP-Stapel den Steuerungspuffer mit einer Meldung auffüllen soll, die das IPv6-Headerfeld für Datenverkehrsklasse in einem empfangenen Datagramm enthält. Wenn dieser Wert true ist, gibt die LPFN_WSARECVMSG-Funktion (WSARecvMsg) optionale Steuerungsdaten zurück, die den IPv6-Headerfeldwert der Datenverkehrsklasse des empfangenen Datagramms enthalten. Mit dieser Option kann das IPv6-Headerfeld der Datenverkehrsklasse des empfangenen Datagramms in der WSAMSG-Struktur zurückgegeben werden. Der zurückgegebene Nachrichtentyp wird IPV6_TCLASS. Alle DSCP- und ECN-Bits des Felds Traffic Class werden zurückgegeben. Diese Option ist nur für Datagrammsockets gültig (der Sockettyp muss SOCK_DGRAM sein).
IPV6_UNICAST_HOPS ja ja DWORD Ruft den aktuellen TTL-Wert ab, der dem IPv6-Socket für Unicastdatenverkehr zugeordnet ist, oder legt diese fest. Es ist unzulässig, die Gültigkeitsdauer auf einen Wert größer als 255 festzulegen.
IPV6_UNICAST_IF ja ja DWORD (IF_INDEX) Ruft die ausgehende Schnittstelle zum Senden von IPv6-Datenverkehr ab oder legt diese fest. Diese Option ändert nicht die Standardschnittstelle für den Empfang von IPv6-Datenverkehr. Diese Option ist für Computer mit mehreren Computern wichtig. Der Eingabewert zum Festlegen dieser Option ist ein 4-Byte-Schnittstellenindex der gewünschten ausgehenden Schnittstelle in Hostbytereihenfolge. Die GetAdaptersAddresses-Funktion kann verwendet werden, um die Schnittstellenindexinformationen abzurufen. Wenn optval null ist, wird die Standardschnittstelle zum Senden von IPv6-Datenverkehr auf nicht angegeben festgelegt. Beim Abrufen dieser Option gibt optval den aktuellen Standardschnittstellenindex für das Senden von IPv6-Datenverkehr in Hostbytereihenfolge zurück.
IPV6_USER_MTU ja ja DWORD Ruft eine Obergrenze für die MTU der IP-Ebene (in Bytes) für den angegebenen Socket ab oder legt diese fest. Wenn der Wert höher ist als die Vom System geschätzte Pfad-MTU (die Sie auf einem verbundenen Socket abrufen können, indem Sie die Option IPV6_MTU Socket abfragen), hat die Option keine Auswirkungen. Wenn der Wert niedriger ist, werden ausgehende Pakete, die größer sind, fragmentiert oder können nicht gesendet werden, je nach Wert von IPV6_DONTFRAG. Der Standardwert ist IP_UNSPECIFIED_USER_MTU (MAXULONG). Aus Gründen der Typsicherheit sollten Sie die Funktionen WSAGetIPUserMtu und WSASetIPUserMtu verwenden, anstatt die Socketoption direkt zu verwenden.
IPV6_V6ONLY ja ja DWORD (boolescher Wert) Gibt an, ob ein für die AF_INET6-Adressfamilie erstellter Socket auf IPv6-Kommunikation beschränkt ist. Für die AF_INET6-Adressfamilie erstellte Sockets können sowohl für IPv6- als auch für IPv4-Kommunikation verwendet werden. In einigen Anwendungen kann es erforderlich sein, die Verwendung eines für die AF_INET6-Adressfamilie erstellten Sockets auf die IPv6-Kommunikation zu beschränken. Wenn dieser Wert ungleich null ist (die Standardeinstellung unter Windows), kann ein Socket, der für die AF_INET6 Adressfamilie erstellt wurde, nur zum Senden und Empfangen von IPv6-Paketen verwendet werden. Wenn dieser Wert 0 ist, kann ein für die AF_INET6-Adressfamilie erstellter Socket zum Senden und Empfangen von IPv6- oder IPv4-Paketen verwendet werden. Die Möglichkeit der Interaktion mit einer IPv4-Adresse setzt die Verwendung von IPv4-zugeordneten Adressen voraus. Diese Socketoption wird unter Windows Vista oder höher unterstützt.

Windows-Unterstützung für IPPROTO_IPV6 Socketoptionen

Option Windows 8 Windows Server 2012 Windows 7 Windows Server 2008 Windows Vista
IP_ORIGINAL_ARRIVAL_IF x x x
IPV6_ADD_IFLIST Ab Windows 10, Version 1803
IPV6_ADD_MEMBERSHIP x x x x x
IPV6_DEL_IFLIST Ab Windows 10, Version 1803
IPV6_DROP_MEMBERSHIP x x x x x
IPV6_GET_IFLIST Ab Windows 10, Version 1803
IPV6_HDRINCL x x x x x
IPV6_HOPLIMIT x x x x x
IPV6_IFLIST Ab Windows 10, Version 1803
IPV6_JOIN_GROUP x x x x x
IPV6_LEAVE_GROUP x x x x x
IPV6_MULTICAST_HOPS x x x x x
IPV6_MULTICAST_IF x x x x x
IPV6_MULTICAST_LOOP x x x x x
IPV6_PKTINFO x x x x x
IPV6_PROTECTION_LEVEL x x x x x
IPV6_RECVIF x x x x x
IPV6_UNICAST_HOPS x x x x x
IPV6_UNICAST_IF x x x x x
IPV6_V6ONLY x x x x x

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

Bemerkungen

Im Microsoft Windows Software Development Kit (SDK), das für Windows Vista und höher veröffentlicht wurde, wurde die organization von Headerdateien geändert, und IPPROTO_IPV6 Ebene wird in der Ws2def.h-Headerdatei definiert, die automatisch in der Winsock2.h-Headerdatei enthalten ist. Die IPPROTO_IPV6 Socketoptionen sind in der Ws2ipdef.h-Headerdatei definiert, die automatisch in der Ws2tcpip.h-Headerdatei enthalten ist. Die Headerdateien Ws2def.h und Ws2ipdef.h sollten niemals direkt verwendet werden.

Die IP_ORIGINAL_ARRIVAL_IF Socketoption wird sowohl unter Windows Server 2008 R2 als auch unter Windows 7 unterstützt.

Anforderungen

Anforderung Wert
Header
Ws2def.h (Winsock2.h einschließen);
Winsock2.h unter Windows Server 2003 und Windows XP