Bagikan melalui


opsi soket IPPROTO_TCP

Tabel berikut ini menjelaskan IPPROTO_TCP opsi soket yang berlaku untuk soket yang dibuat untuk keluarga alamat IPv4 dan IPv6 (AF_INET dan AF_INET6) dengan parameter protokol ke fungsi soket yang ditentukan sebagai TCP (IPPROTO_TCP). 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 .

Opsi

Opsi Dapatkan Set Jenis optval Deskripsi
TCP_BSDURGENT ya ya DWORD (Boolean) Jika TRUE, penyedia layanan menerapkan gaya Berkeley Software Distribution (BSD) (default) untuk menangani data yang dipercepat. Opsi ini adalah inversi dari opsi TCP_EXPEDITED_1122. Opsi ini hanya dapat diatur pada koneksi sekali. Setelah opsi ini diatur, opsi ini tidak dapat dinonaktifkan. Opsi ini tidak diperlukan untuk diterapkan oleh penyedia layanan. Opsi diaktifkan (diatur ke TRUE) secara default.
TCP_EXPEDITED_1122 ya ya DWORD (Boolean) Jika TRUE, penyedia layanan mengimplementasikan data yang dipercepat seperti yang ditentukan dalam RFC-1222. Jika tidak, gaya Berkeley Software Distribution (BSD) (default) digunakan. Opsi ini hanya dapat diatur pada koneksi sekali. Setelah opsi ini diatur, opsi ini tidak dapat dinonaktifkan. Opsi ini tidak diperlukan untuk diterapkan oleh penyedia layanan.
TCP_FAIL_CONNECT_ON_ICMP_ERROR ya ya DWORD (Boolean) Jika TRUE, panggilan API koneksi akan kembali setelah penerimaan kesalahan ICMP dengan nilai WSAEHOSTUNREACH. Alamat sumber kesalahan kemudian akan tersedia melalui opsi soket TCP_ICMP_ERROR_INFO. Jika FALSE, soket berulah secara normal. Default dinonaktifkan (diatur ke FALSE). Untuk keamanan tipe, Anda harus menggunakan fungsi WSAGetFailConnectOnIcmpError dan WSASetFailConnectOnIcmpError alih-alih menggunakan opsi soket secara langsung.
TCP_ICMP_ERROR_INFO ya tidak ICMP_ERROR_INFO Mengambil info kesalahan ICMP yang diterima oleh soket TCP selama panggilan koneksi yang gagal. Hanya berlaku pada soket TCP di mana TCP_FAIL_CONNECT_ON_ICMP_ERROR sebelumnya telah diaktifkan, dan koneksi telah mengembalikan WSAEHOSTUNREACH. Kueri tidak memblokir. Jika berhasil dikueri dan nilai optlen yang dikembalikan adalah 0, maka tidak ada kesalahan ICMP yang diterima sejak panggilan sambungkan terakhir. Jika kesalahan ICMP diterima, infonya akan tersedia sampai koneksi dipanggil lagi. Info dikembalikan sebagai struktur ICMP_ERROR_INFO . Untuk keamanan jenis, Anda harus menggunakan fungsi WSAGetIcmpErrorInfo alih-alih menggunakan opsi soket secara langsung.
TCP_KEEPCNT ya ya DWORD Mendapatkan atau mengatur jumlah pemeriksaan TCP tetap aktif yang akan dikirim sebelum koneksi dihentikan. Adalah ilegal untuk mengatur TCP_KEEPCNT ke nilai yang lebih besar dari 255.
TCP_MAXRT ya ya DWORD Jika nilai ini tidak negatif, nilai ini mewakili batas waktu koneksi yang diinginkan dalam hitungan detik. Jika -1, ini mewakili permintaan untuk menonaktifkan batas waktu koneksi (yaitu koneksi akan dikirim ulang selamanya). Jika batas waktu koneksi dinonaktifkan, batas waktu pengiriman ulang meningkat secara eksponensial untuk setiap transmisi ulang hingga nilai maksimum 60 detik dan kemudian tetap di sana.
TCP_NODELAY ya ya DWORD (Boolean) Mengaktifkan atau menonaktifkan algoritma Nagle untuk soket TCP. Opsi ini dinonaktifkan (diatur ke FALSE) secara default.
TCP_TIMESTAMPS ya ya DWORD (Boolean) Mengaktifkan atau menonaktifkan stempel waktu RFC 1323. Perhatikan bahwa ada juga konfigurasi global untuk tanda waktu (default nonaktif), "Tanda waktu" di (set/get)-nettcpsetting. Mengatur opsi soket ini akan mengambil alih pengaturan konfigurasi global tersebut.
TCP_FASTOPEN ya ya DWORD (Boolean) Mengaktifkan atau menonaktifkan RFC 7413 TCP Fast Open, yang memungkinkan Anda untuk mulai mengirim data selama fase jabat tangan tiga arah untuk membuka koneksi. Perhatikan bahwa untuk menggunakan bukaan cepat, Anda harus menggunakan ConnectEx untuk membuat koneksi awal, dan menentukan data dalam parameter lpSendBuffer fungsi tersebut untuk ditransfer selama proses jabat tangan. Beberapa data di lpSendBuffer akan ditransfer di bawah protokol Buka Cepat.
TCP_KEEPIDLE ya ya DWORD Mendapatkan atau mengatur jumlah detik koneksi TCP akan tetap menganggur sebelum pemeriksaan keepalive dikirim ke remote.

Catatan:
Opsi ini tersedia dimulai dengan Windows 10, versi 1709.


TCP_KEEPINTVL ya ya DWORD Mendapatkan atau mengatur jumlah detik koneksi TCP akan menunggu respons keepalive sebelum mengirim pemeriksaan keepalive lainnya.

Catatan:
Opsi ini tersedia dimulai dengan Windows 10, versi 1709.


Dukungan Windows untuk opsi IPPROTO_TCP

Opsi Windows 10 Windows 7 Windows Server 2008 Windows Vista
TCP_BSDURGENT x x x x
TCP_EXPEDITED_1122 x x x x
TCP_KEEPCNT Dimulai dengan Windows 10, versi 1703
TCP_MAXRT x x x x
TCP_NODELAY x x x x
TCP_TIMESTAMPS x x x x
TCP_FASTOPEN Dimulai dengan Windows 10, versi 1607

  Opsi Windows Server 2003 Windows XP Windows 2000 Windows NT4 Windows 9x/Me
TCP_BSDURGENT x x x x
TCP_EXPEDITED_1122 x x x
TCP_KEEPCNT
TCP_MAXRT
TCP_NODELAY x x x x
TCP_TIMESTAMPS
TCP_FASTOPEN

Keterangan

Dalam Microsoft Windows Software Development Kit (SDK) yang dirilis untuk Windows Vista dan yang lebih baru, organisasi file header telah berubah dan tingkat IPPROTO_TCP ditentukan dalam file header Ws2def.h yang secara otomatis disertakan dalam file header Winsock2.h . Opsi soket IPPROTO_TCP , dengan pengecualian TCP_BSDURGENT, didefinisikan dalam file header Ws2ipdef.h yang secara otomatis disertakan dalam file header Ws2tcpip.h . Opsi TCP_BSDURGENT karena alasan historis ditentukan dalam file header Mswsock.h . File header Ws2def.h dan Ws2ipdef.h tidak boleh digunakan secara langsung.

Persyaratan

Persyaratan Nilai
Header
Ws2def.h (termasuk Winsock2.h);
Winsock2.h di Windows Server 2003, Windows XP dan Windows 2000