Freigeben über


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 der getsockopt- und setsockopt-Funktion.

Verwenden Sie die Funktion WSAEnumProtocols, WSCEnumProtocols oder WSCEnumProtocols32, um Protokolle auflisten und unterstützte Eigenschaften für jedes installierte Protokoll zu ermitteln.

Einige Socketoptionen erfordern mehr Erläuterungen, als diese Tabellen vermitteln können; solche Optionen enthalten Links zu weiteren Informationen.

Optionen

Option get set Optval-Typ Beschreibung
IP_ORIGINAL_ARRIVAL_IF ja ja DWORD (boolean) Gibt an, ob die Funktion LPFN_WSARECVMSG (WSARecvMsg) optionale Steuerelementdaten zurückgeben soll, die die originale 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 Tunneln von Host zu Host für IPv6-Unicastdatenverkehr bieten, wenn IPv6-Hosts IP4-Netzwerke durchlaufen müssen, um andere IPv6-Netzwerke zu erreichen. IPv6-Pakete werden als IPv4-Pakete getunnelt gesendet. Diese Option ermöglicht die originale IPv4-Schnittstelle, an der das Paket in der WSAMSG-Struktur zurückgegeben wurde.
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 Verbinden 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 der IFLIST einen Schnittstellenindex, 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 sind, sobald eine Schnittstelle entfernt wird.
IPV6_DROP_MEMBERSHIP ja ipv6_mreq Lassen Sie die bereitgestellte Multicastgruppe von der angegebenen Schnittstelle aus. 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) Zeigt an, dass die Anwendung den IPv6-Header für alle ausgehenden Daten bereitstellt. Wenn der Parameter optval auf 1 für den Anruf auf setsockopt 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 (boolean) Gibt an, dass die Informationen zum Hop (TTL) in der Funktion LPFN_WSARECVMSG (WSARecvMsg) zurückgegeben werden sollen. Wenn optval auf 1 für den Anruf auf setsockopt festgelegt ist, ist die Option aktiviert. Wenn die Option 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 (boolean) Dient zum Abrufen oder Festlegen des IP_IFLIST Zustands des Sockets. Wenn diese Option auf „true” festgelegt ist, ist der Datagram-Empfang auf Schnittstellen beschränkt, die sich in der IFLIST befinden. In allen anderen Schnittstellen empfangene Datagramme 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) Dient zum Abrufen oder Festlegen des Pfad-MTU-Ermittlungszustands für den Socket. Der Standardwert ist IP_PMTUDISC_NOT_SET. Für Datenstromsockets führen IP_PMTUDISC_NOT_SET und IP_PMTUDISC_DO Pfad-MTU-Ermittlung durch. IP_PMTUDISC_DONT und IP_PMTUDISC_PROBE deaktivieren die Pfad-MTU-Ermittlung. Bei Datagrammsockets führt, wenn diese auf IP_PMTUDISC_DO festgelegt sind, führt der Versuch, Pakete zu senden, die größer als die Schnittstellen-MTU sind, zu einem Fehler. Bei Festlegung auf IP_PMTUDISC_DONT werden Pakete entsprechend der Schnittstellen-MTU fragmentiert. Wenn dieser Wert 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 Legt fest/ruft den TTL-Wert ab, der dem IPv6-Multicastdatenverkehr im Socket zugeordnet ist. Es ist unzulässig, die TTL 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 Dient zum Abrufen oder Festlegen der ausgehenden Schnittstelle zum Senden von IPv6-Multicastdatenverkehr. Diese Option ändert nicht die Standardschnittstelle für den Empfang von IPv6-Multicastdatenverkehr. Diese Option ist für Multihomed-Computer wichtig. Der Eingabewert zum Festlegen dieser Option ist ein 4-Byte-Schnittstellenindex der gewünschten ausgehenden Schnittstelle in der Hostbytereihenfolge. Die GetAdaptersAddresses-Funktion kann verwendet werden, um die Schnittstellenindexinformationen abzurufen. Wenn optval auf NULL beim Aufruf von setsockopt festgelegt ist, wird die IPv6-Standardschnittstelle verwendet. Wenn optval null ist, wird die Standardschnittstelle für den Empfang von Multicast für das Senden von Multicastdatenverkehr angegeben. Beim Abrufen dieser Option gibt die optval den aktuellen Standardschnittstellenindex für das Senden von Multicast-IPv6-Datenverkehr in Hostbytereihenfolge zurück.
IPV6_MULTICAST_LOOP ja ja DWORD (boolean) Zeigt an, dass Multicast-Daten, die über den Socket gesendet werden, in den Empfangspuffer des Sockets zurückgesendet werden, wenn sie auch in der Ziel-Multicast-Gruppe enthalten sind. Wenn optval auf 1 für den Anruf auf setsockopt festgelegt ist, ist die Option aktiviert. Wenn die Option 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 (boolean) Gibt an, dass Paketinformationen von der Funktion LPFN_WSARECVMSG (WSARecvMsg) zurückgegeben werden sollen.
IPV6_PROTECTION_LEVEL ja ja INT Hiermit werden die Einschränkung eines Sockets für einen angegebenen Bereich wie z. B. Adressen mit demselben lokalen Link- oder Standortpräfix ermöglicht. Stellt verschiedene Einschränkungsstufen und Standardeinstellungen bereit. Weitere Informationen finden Sie unter IPV6_PROTECTION_LEVELInformation Protection.
IPV6_RECVIF ja ja DWORD (boolean) Gibt an, ob der IP-Stapel den Steuerpuffer mit Details dazu auffüllen soll, welche Schnittstelle ein Paket mit einem Datagrammsocket empfangen hat. Wenn dieser Wert wahr ist, gibt die Funktion LPFN_WSARECVMSG (WSARecvMsg) optionale Steuerelementdaten zurück, die die Schnittstelle enthalten, an der das Paket für Datagrammsockets empfangen wurde. Diese Option ermöglicht die IPv6-Schnittstelle, an der das Paket in der WSAMSG-Struktur zurückgegeben wurde. 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 (boolean) Gibt an, ob der IP-Stapel den Steuerpuffer mit einer Nachricht füllen soll, die das Headerfeld der Datenverkehrsklasse IPv6 auf einem empfangenen Datagramm enthält. Wenn dieser Wert wahr ist, gibt die Funktion LPFN_WSARECVMSG (WSARecvMsg) optionale Steuerelementdaten zurück, die den IPv6-Kopfzeilenfeldwert der Datenverkehrsklasse des empfangenen Datagramms enthalten. Mit dieser Option kann das Headerfeld der Datenverkehrsklasse IPv6 des empfangenen Datagramms in der WSAMSG-Struktur zurückgegeben werden. Der zurückgegebene Nachrichtentyp wird IPV6_TCLASS sein. Alle DSCP- und ECN-Bits des Felds „Datenverkehrsklasse” werden zurückgegeben. Diese Option ist nur für Datagrammsockets gültig (der Sockettyp muss SOCK_DGRAM sein).
IPV6_RECVECN ja ja DWORD (boolean) Gibt an, ob der IP-Stapel den Steuerpuffer mit einer Nachricht füllen soll, die die ECN-Bits der Datenverkehrsklasse des IPv6-Kopfzeilenfeldes auf einem empfangenen Datagramm enthält. Wenn dieser Wert wahr ist, gibt die Funktion LPFN_WSARECVMSG (WSARecvMsg) optionale Steuerelementdaten zurück, die die ECN-Bits des IPv6-Kopfzeilenfeldwert der Datenverkehrsklasse des empfangenen Datagramms enthalten. Mit dieser Option können die ECN-Bits des IPv6-Kopfzeilenfeldes der Datenverkehrsklasse empfangenen Datagramms in der WSAMSG-Struktur zurückgegeben werden. Der zurückgegebene Nachrichtentyp wird IPV6_ECN sein. Alle 2 ECN-Bits des Felds „Datenverkehrsklasse” werden zurückgegeben. Diese Option ist nur für Datagramme und unformatierte Sockets gültig (der Sockettyp muss SOCK_DGRAM oder SOCK_RAW sein). Für die Typsicherheit sollten Sie die Funktionen WSAGetRecvIPEcn und WSASetRecvIPEcn verwenden, anstatt die Socketoption direkt zu verwenden.
IPV6_UNICAST_HOPS ja ja DWORD Dient zum Abrufen oder Festlegen des aktuellen TTL-Werts, der dem IPv6-Socket für Unicast-Datenverkehr zugeordnet ist. Es ist unzulässig, die TTL auf einen Wert größer als 255 festzulegen.
IPV6_UNICAST_IF ja ja DWORD (IF_INDEX) Dient zum Abrufen oder Festlegen der ausgehenden Schnittstelle zum Senden von IPv6-Datenverkehr. Diese Option ändert nicht die Standardschnittstelle für den Empfang von IPv6-Datenverkehr. Diese Option ist für Multihomed-Computer wichtig. Der Eingabewert zum Festlegen dieser Option ist ein 4-Byte-Schnittstellenindex der gewünschten ausgehenden Schnittstelle in der Hostbytereihenfolge. Die GetAdaptersAddresses-Funktion kann verwendet werden, um die Schnittstellenindexinformationen abzurufen. Wenn optval null ist, wird die Standardschnittstelle für das Senden von IPv6-Datenverkehr auf nicht angegeben festgelegt. Beim Abrufen dieser Option gibt die optval den aktuellen Standardschnittstellenindex für das Senden von IPv6-Datenverkehr in Hostbytereihenfolge zurück.
IPV6_USER_MTU ja ja DWORD Ruft eine obere Grenze für die IP-Layer-MTU (in Byte) für den angegebenen Socket ab oder legt diese fest. Wenn der Wert höher ist als die Schätzung des Pfad-MTU des Systems (den Sie in einem verbundenen Socket abrufen können, indem Sie die Option IPV6_MTU Sockets abfragen), hat die Option keine Auswirkung. Wenn der Wert niedriger ist, werden ausgehende Pakete, die größer als diese sind, fragmentiert oder nicht gesendet, abhängig vom Wert von IPV6_DONTFRAG. Der Standardwert ist IP_UNSPECIFIED_USER_MTU (MAXULONG). Für die Typsicherheit sollten Sie die Funktionen WSAGetIPUserMtu und WSASetIPUserMtu verwenden, anstatt die Socketoption direkt zu verwenden.
IPV6_V6ONLY ja ja DWORD (boolean) 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 0 ist (Standardwert unter Windows), kann ein für die AF_INET6-Adressfamilie erstellter Socket verwendet werden, um nur IPv6-Pakete zu senden und zu empfangen. 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

Hinweise

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

Die IP_ORIGINAL_ARRIVAL_IF-Socketoption wird unter Windows Server 2008 R2 sowie unter Windows 7 unterstützt.

Anforderungen

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