Sambungan Soket TCP dan Keep-Alive
Konsep TCP Keep-Alive sering dikaitkan dengan HTTP, tetapi ia juga digunakan pada standard Sambungan soket TCP. Tidak seperti HTTP Keep-Alive, yang membenarkan sambungan berterusan untuk berbilang permintaan, TCP Keep-Alive menyediakan tujuan yang berbeza.
Adakah Sambungan Soket TCP Secara Automatik Kekal Terbuka Selamanya?
Tidak, sambungan soket TCP tidak kekal terbuka secara automatik selama-lamanya. Terdapat mekanisme yang dipanggil TCP Keep-Alive yang menguatkuasakan tamat masa.
Proses TCP Keep-Alive
TCP Keep-Alive beroperasi pada tiga parameter boleh dikonfigurasikan:
yang ditentukan, sistem akan menghantar paket Keep-Alive (ACK kosong). Jika pelayan bertindak balas dengan ACK, proses diset semula. Jika tiada respons diterima selepas bilangan tcp_keepalive_probes yang ditentukan (dengan selang tcp_keepalive_intvl antara probe), sambungan ditamatkan dengan RST.
Gotchas
Tetapan tamat masa TCP boleh diubah suai pada peringkat sistem pengendalian. Walau bagaimanapun, ini akan menjejaskan semua sambungan TCP pada sistem.
LinuxGunakan arahan berikut untuk menukar tetapan untuk semua sambungan:
tcp_keepalive_time: sysctl -w net.ipv4.tcp_keepalive_time=180Gunakan sysctl untuk melihat dan mengubah suai tetapan:
sysctl net.inet.tcp | grep -E "keepidle|keepintvl|keepcnt"sysctl -w net.inet.tcp.keepidle=180000 net.inet.tcp.keepcnt=3 net.inet.tcp.keepintvl=10000Atas ialah kandungan terperinci Berikut ialah beberapa tajuk artikel berasaskan soalan yang menangkap intipati kandungan anda: **Fokus pada Perkara Utama:** * **Adakah Sambungan Soket TCP Berkekalan Selamanya? Meneroka Tamat Masa Keep-Alive** *. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!