opsi soket IPPROTO_IPV6
Tabel berikut ini menjelaskan opsi soket IPPROTO_IPV6 yang berlaku untuk soket yang dibuat untuk keluarga alamat IPv6 (AF_INET6). Lihat halaman referensi fungsi getsockopt dan setsockopt untuk informasi selengkapnya tentang mendapatkan dan mengatur opsi soket.
Untuk menghitung protokol dan menemukan properti yang didukung untuk setiap protokol yang diinstal, gunakan fungsi WSAEnumProtocols, WSCEnumProtocols, atau WSCEnumProtocols32.
Beberapa opsi soket memerlukan lebih banyak penjelasan daripada yang dapat disampaikan tabel ini; opsi tersebut berisi tautan ke informasi tambahan.
Opsi
Opsi | get | set | Jenis optval | Deskripsi |
---|---|---|---|---|
IP_ORIGINAL_ARRIVAL_IF | yes | yes | DWORD (boolean) | Menunjukkan apakah fungsi LPFN_WSARECVMSG (WSARecvMsg) harus mengembalikan data kontrol opsional yang berisi antarmuka kedatangan asli tempat paket diterima untuk soket datagram. Opsi ini digunakan dengan teknologi transisi IPv6 (terowongan 6to4, ISATAP, dan Teredo, misalnya) yang menyediakan penetapan alamat dan penerowongan otomatis host-ke-host untuk lalu lintas IPv6 unicast ketika host IPv6 harus melintasi jaringan IP4 untuk menjangkau jaringan IPv6 lainnya. Paket IPv6 dikirim terowongan sebagai paket IPv4. Opsi ini memungkinkan antarmuka IPv4 asli tempat paket diterima untuk dikembalikan dalam struktur WSAMSG. |
IPV6_ADD_IFLIST | yes | DWORD (IF_INDEX) | Menambahkan indeks antarmuka ke IFLIST yang terkait dengan opsi IP_IFLIST . | |
IPV6_ADD_MEMBERSHIP | yes | ipv6_mreq | Gabungkan soket ke grup multicast yang disediakan pada antarmuka yang ditentukan. Opsi ini hanya valid pada datagram dan soket mentah (jenis soket harus SOCK_DGRAM atau SOCK_RAW). | |
IPV6_DEL_IFLIST | yes | DWORD (IF_INDEX) | Menghapus indeks antarmuka dari IFLIST yang terkait dengan opsi IP_IFLIST . Entri hanya dapat dihapus oleh aplikasi, jadi ketahuilah bahwa entri mungkin kedaluarsa setelah antarmuka dihapus. | |
IPV6_DROP_MEMBERSHIP | yes | ipv6_mreq | Biarkan grup multicast yang disediakan dari antarmuka yang diberikan. Opsi ini hanya valid pada datagram dan soket mentah (jenis soket harus SOCK_DGRAM atau SOCK_RAW). | |
IPV6_GET_IFLIST | yes | DWORD[] (IF_INDEX[]) | Mendapatkan IFLIST saat ini yang terkait dengan opsi IP_IFLIST . Mengembalikan kesalahan jika IP_IFLIST tidak diaktifkan. | |
IPV6_HDRINCL | yes | yes | DWORD(boolean) | Menunjukkan aplikasi menyediakan header IPv6 pada semua data keluar. Jika parameter optval diatur ke 1 pada panggilan ke setsockopt, opsi diaktifkan. Jika optval diatur ke 0, opsi dinonaktifkan. Nilai defaultnya dinonaktifkan. Opsi ini hanya berlaku untuk datagram dan soket mentah (jenis soket harus SOCK_DGRAM atau SOCK_RAW). Penyedia layanan TCP/IP yang mendukung SOCK_RAW juga harus mendukung IPV6_HDRINCL. |
IPV6_HOPLIMIT | yes | yes | DWORD (boolean) | Menunjukkan bahwa informasi hop (TTL) harus dikembalikan dalam fungsi LPFN_WSARECVMSG (WSARecvMsg). Jika optval diatur ke 1 pada panggilan ke setsockopt, opsi diaktifkan. Jika diatur ke 0, opsi dinonaktifkan. Opsi ini hanya berlaku untuk datagram dan soket mentah (jenis soket harus SOCK_DGRAM atau SOCK_RAW). |
IPV6_IFLIST | yes | yes | DWORD (boolean) | Mendapatkan atau mengatur status IP_IFLIST soket. Ketika opsi ini diatur ke true, penerimaan Datagram dibatasi untuk antarmuka yang ada di IFLIST. Datagram yang diterima pada antarmuka lain diabaikan. IFLIST mulai kosong. Gunakan IP_ADD_IFLIST dan IP_DEL_IFLIST untuk mengedit IFLIST. |
IPV6_JOIN_GROUP | yes | ipv6_mreq | Sama seperti IPV6_ADD_MEMBERSHIP | |
IPV6_LEAVE_GROUP | yes | ipv6_mreq | Sama seperti IPV6_DROP_MEMBERSHIP | |
IPV6_MTU | yes | DWORD | Mendapatkan perkiraan sistem dari jalur MTU. Soket harus terhubung. | |
IPV6_MTU_DISCOVER | yes | yes | DWORD (PMTUD_STATE) | Mendapatkan atau mengatur status penemuan MTU jalur untuk soket. Nilai defaultnya adalah IP_PMTUDISC_NOT_SET. Untuk soket streaming, IP_PMTUDISC_NOT_SET dan IP_PMTUDISC_DO akan melakukan penemuan MTU jalur. IP_PMTUDISC_DONT dan IP_PMTUDISC_PROBE akan menonaktifkan penemuan MTU jalur. Untuk soket datagram, jika diatur ke IP_PMTUDISC_DO , upaya untuk mengirim paket yang lebih besar dari jalur MTU akan mengakibatkan kesalahan. Jika diatur ke IP_PMTUDISC_DONT, paket akan difragmentasi sesuai dengan antarmuka MTU. Jika diatur ke IP_PMTUDISC_PROBE, upaya untuk mengirim paket yang lebih besar dari antarmuka MTU akan mengakibatkan kesalahan. |
IPV6_MULTICAST_HOPS | yes | yes | DWORD | Mendapatkan atau mengatur nilai TTL yang terkait dengan lalu lintas multicast IPv6 pada soket. Adalah ilegal untuk mengatur TTL ke nilai yang lebih besar dari 255. Opsi ini hanya berlaku untuk datagram dan soket mentah (jenis soket harus SOCK_DGRAM atau SOCK_RAW). |
IPV6_MULTICAST_IF | yes | yes | DWORD | Mendapatkan atau mengatur antarmuka keluar untuk mengirim lalu lintas multicast IPv6. Opsi ini tidak mengubah antarmuka default untuk menerima lalu lintas multicast IPv6. Opsi ini penting untuk komputer multihomed. Nilai input untuk mengatur opsi ini adalah indeks antarmuka 4-byte dari antarmuka keluar yang diinginkan dalam urutan byte host. Fungsi GetAdaptersAddresses dapat digunakan untuk mendapatkan informasi indeks antarmuka. Jika optval diatur ke NULL pada panggilan ke setsockopt, antarmuka IPv6 default akan digunakan. Jika optval adalah nol , antarmuka default untuk menerima multicast ditentukan untuk mengirim lalu lintas multicast. Saat mendapatkan opsi ini, optval mengembalikan indeks antarmuka default saat ini untuk mengirim lalu lintas IPv6 multicast dalam urutan byte host. |
IPV6_MULTICAST_LOOP | yes | yes | DWORD (boolean) | Menunjukkan data multicast yang dikirim pada soket akan digaungkan ke soket menerima buffer jika juga bergabung pada grup multicast tujuan. Jika optval diatur ke 1 pada panggilan ke setsockopt, opsi diaktifkan. Jika diatur ke 0, opsi dinonaktifkan. Opsi ini hanya berlaku untuk datagram dan soket mentah (jenis soket harus SOCK_DGRAM atau SOCK_RAW). |
IPV6_PKTINFO | yes | yes | DWORD (boolean) | Menunjukkan bahwa informasi paket harus dikembalikan oleh fungsi LPFN_WSARECVMSG (WSARecvMsg). |
IPV6_PROTECTION_LEVEL | yes | yes | INT | Mengaktifkan pembatasan soket ke cakupan tertentu, seperti alamat dengan awalan lokal tautan atau lokal situs yang sama. Menyediakan berbagai tingkat pembatasan dan pengaturan default. Lihat IPV6_PROTECTION_LEVEL untuk informasi selengkapnya. |
IPV6_RECVIF | yes | yes | DWORD (boolean) | Menunjukkan apakah tumpukan IP harus mengisi buffer kontrol dengan detail tentang antarmuka mana yang menerima paket dengan soket datagram. Ketika nilai ini benar, fungsi LPFN_WSARECVMSG (WSARecvMsg) akan mengembalikan data kontrol opsional yang berisi antarmuka tempat paket diterima untuk soket datagram. Opsi ini memungkinkan antarmuka IPv6 tempat paket diterima untuk dikembalikan dalam struktur WSAMSG. Opsi ini hanya berlaku untuk datagram dan soket mentah (jenis soket harus SOCK_DGRAM atau SOCK_RAW). |
IPV6_RECVTCLASS | yes | yes | DWORD (boolean) | Menunjukkan apakah tumpukan IP harus mengisi buffer kontrol dengan pesan yang berisi bidang header Kelas Lalu Lintas IPv6 pada datagram yang diterima. Ketika nilai ini benar, fungsi LPFN_WSARECVMSG (WSARecvMsg) akan mengembalikan data kontrol opsional yang berisi nilai bidang header IPv6 Kelas Lalu Lintas dari datagram yang diterima. Opsi ini memungkinkan bidang header Traffic Class IPv6 dari datagram yang diterima dikembalikan dalam struktur WSAMSG. Jenis pesan yang dikembalikan akan IPV6_TCLASS. Semua bit DSCP dan ECN dari bidang Kelas Lalu Lintas akan dikembalikan. Opsi ini hanya valid pada soket datagram (jenis soket harus SOCK_DGRAM). |
IPV6_RECVECN | yes | yes | DWORD (boolean) | Menunjukkan apakah tumpukan IP harus mengisi buffer kontrol dengan pesan yang berisi bit ECN dari bidang header Kelas Lalu Lintas IPv6 pada datagram yang diterima. Ketika nilai ini benar, fungsi LPFN_WSARECVMSG (WSARecvMsg) akan mengembalikan data kontrol opsional yang berisi bit ECN dari nilai bidang header IPv6 Kelas Lalu Lintas dari datagram yang diterima. Opsi ini memungkinkan bit ECN dari bidang header Traffic Class IPv6 dari datagram yang diterima dikembalikan dalam struktur WSAMSG. Jenis pesan yang dikembalikan akan IPV6_ECN. Semua 2 bit ECN dari bidang Kelas Lalu Lintas akan dikembalikan. Opsi ini hanya valid pada datagram dan soket mentah (jenis soket harus SOCK_DGRAM atau SOCK_RAW). Untuk keamanan tipe, Anda harus menggunakan fungsi WSAGetRecvIPEcn dan WSASetRecvIPEcn alih-alih menggunakan opsi soket secara langsung. |
IPV6_UNICAST_HOPS | yes | yes | DWORD | Mendapatkan atau mengatur nilai TTL saat ini yang terkait dengan soket IPv6 untuk lalu lintas unicast. Adalah ilegal untuk mengatur TTL ke nilai yang lebih besar dari 255. |
IPV6_UNICAST_IF | yes | yes | DWORD (IF_INDEX) | Mendapatkan atau mengatur antarmuka keluar untuk mengirim lalu lintas IPv6. Opsi ini tidak mengubah antarmuka default untuk menerima lalu lintas IPv6. Opsi ini penting untuk komputer multihomed. Nilai input untuk mengatur opsi ini adalah indeks antarmuka 4-byte dari antarmuka keluar yang diinginkan dalam urutan byte host. Fungsi GetAdaptersAddresses dapat digunakan untuk mendapatkan informasi indeks antarmuka. Jika optval adalah nol, antarmuka default untuk mengirim lalu lintas IPv6 diatur ke tidak ditentukan. Saat mendapatkan opsi ini, optval mengembalikan indeks antarmuka default saat ini untuk mengirim lalu lintas IPv6 dalam urutan byte host. |
IPV6_USER_MTU | yes | yes | DWORD | Mendapatkan atau mengatur batas atas pada lapisan IP MTU (dalam byte) untuk soket yang diberikan. Jika nilai lebih tinggi dari perkiraan sistem dari jalur MTU (yang dapat Anda ambil pada soket yang terhubung dengan mengkueri opsi soket IPV6_MTU ), maka opsi tidak berpengaruh. Jika nilainya lebih rendah, maka paket keluar yang lebih besar dari ini akan terfragmentasi, atau akan gagal dikirim, tergantung pada nilai IPV6_DONTFRAG. Nilai defaultnya adalah IP_UNSPECIFIED_USER_MTU (MAXULONG). Untuk keamanan jenis, Anda harus menggunakan fungsi WSAGetIPUserMtu dan WSASetIPUserMtu alih-alih menggunakan opsi soket secara langsung. |
IPV6_V6ONLY | yes | yes | DWORD (boolean) | Menunjukkan apakah soket yang dibuat untuk keluarga alamat AF_INET6 hanya dibatasi untuk komunikasi IPv6. Soket yang dibuat untuk keluarga alamat AF_INET6 dapat digunakan untuk komunikasi IPv6 dan IPv4. Beberapa aplikasi mungkin ingin membatasi penggunaan soket yang dibuat hanya untuk keluarga alamat AF_INET6 ke komunikasi IPv6. Ketika nilai ini bukan nol (default pada Windows), soket yang dibuat untuk keluarga alamat AF_INET6 dapat digunakan untuk mengirim dan menerima paket IPv6 saja. Ketika nilai ini nol, soket yang dibuat untuk keluarga alamat AF_INET6 dapat digunakan untuk mengirim dan menerima paket ke dan dari alamat IPv6 atau alamat IPv4. Perhatikan bahwa kemampuan untuk berinteraksi dengan alamat IPv4 memerlukan penggunaan alamat yang dipetakan IPv4. Opsi soket ini didukung pada Windows Vista atau yang lebih baru. |
Dukungan Windows untuk opsi soket IPPROTO_IPV6
Opsi | Windows 8 | Windows Server 2012 | Windows 7 | Windows Server 2008 | Windows Vista |
---|---|---|---|---|---|
IP_ORIGINAL_ARRIVAL_IF | yes | yes | yes | ||
IPV6_ADD_IFLIST | Dimulai dengan Windows 10, versi 1803 | ||||
IPV6_ADD_MEMBERSHIP | yes | yes | yes | yes | yes |
IPV6_DEL_IFLIST | Dimulai dengan Windows 10, versi 1803 | ||||
IPV6_DROP_MEMBERSHIP | yes | yes | yes | yes | yes |
IPV6_GET_IFLIST | Dimulai dengan Windows 10, versi 1803 | ||||
IPV6_HDRINCL | yes | yes | yes | yes | yes |
IPV6_HOPLIMIT | yes | yes | yes | yes | yes |
IPV6_IFLIST | Dimulai dengan Windows 10, versi 1803 | ||||
IPV6_JOIN_GROUP | yes | yes | yes | yes | yes |
IPV6_LEAVE_GROUP | yes | yes | yes | yes | yes |
IPV6_MULTICAST_HOPS | yes | yes | yes | yes | yes |
IPV6_MULTICAST_IF | yes | yes | yes | yes | yes |
IPV6_MULTICAST_LOOP | yes | yes | yes | yes | yes |
IPV6_PKTINFO | yes | yes | yes | yes | yes |
IPV6_PROTECTION_LEVEL | yes | yes | yes | yes | yes |
IPV6_RECVIF | yes | yes | yes | yes | yes |
IPV6_UNICAST_HOPS | yes | yes | yes | yes | yes |
IPV6_UNICAST_IF | yes | yes | yes | yes | yes |
IPV6_V6ONLY | yes | yes | yes | yes | yes |
Opsi | Windows Server 2003 | Windows XP |
---|---|---|
IP_ORIGINAL_ARRIVAL_IF | ||
IPV6_ADD_IFLIST | ||
IPV6_ADD_MEMBERSHIP | yes | yes |
IPV6_DEL_IFLIST | ||
IPV6_DROP_MEMBERSHIP | yes | yes |
IPV6_GET_IFLIST | ||
IPV6_HDRINCL ya | yes | |
IPV6_HOPLIMIT ya | yes | |
IPV6_IFLIST | ||
IPV6_JOIN_GROUP | yes | yes |
IPV6_LEAVE_GROUP | yes | yes |
IPV6_MULTICAST_HOPS | yes | yes |
IPV6_MULTICAST_IF | yes | yes |
IPV6_MULTICAST_LOOP | yes | yes |
IPV6_PKTINFO | yes | yes |
IPV6_PROTECTION_LEVEL | yes | yes |
IPV6_RECVIF | ||
IPV6_UNICAST_HOPS | yes | yes |
IPV6_UNICAST_IF | ||
IPV6_V6ONLY |
Keterangan
Pada Microsoft Windows Software Development Kit (SDK) yang dirilis untuk Windows Vista dan yang lebih baru, organisasi file header telah berubah dan tingkat IPPROTO_IPV6 ditentukan dalam file header Ws2def.h yang secara otomatis disertakan dalam file header Winsock2.h . Opsi soket IPPROTO_IPV6 ditentukan dalam file header Ws2ipdef.h yang secara otomatis disertakan dalam file header Ws2tcpip.h . File header Ws2def.h dan Ws2ipdef.h tidak boleh digunakan secara langsung.
Opsi soket IP_ORIGINAL_ARRIVAL_IF didukung pada Windows Server 2008 R2 serta pada Windows 7.
Persyaratan
Persyaratan | Nilai |
---|---|
Header |
|