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 | ja | Ja | ja | ||
IPV6_ADD_IFLIST | Ab Windows 10, Version 1803 | ||||
IPV6_ADD_MEMBERSHIP | ja | Ja | Ja | Ja | ja |
IPV6_DEL_IFLIST | Ab Windows 10, Version 1803 | ||||
IPV6_DROP_MEMBERSHIP | ja | Ja | Ja | Ja | ja |
IPV6_GET_IFLIST | Ab Windows 10, Version 1803 | ||||
IPV6_HDRINCL | ja | Ja | Ja | Ja | ja |
IPV6_HOPLIMIT | ja | Ja | Ja | Ja | ja |
IPV6_IFLIST | Ab Windows 10, Version 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 |
Option | 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 |
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 |
|