Rumah > Java > javaTutorial > teks badan

Bagaimanakah TCP Keep-Alive Berfungsi dan Berapa Lama Sambungan Soket Kekal Terbuka?

Mary-Kate Olsen
Lepaskan: 2024-10-26 14:05:03
asal
512 orang telah melayarinya

How Does TCP Keep-Alive Work and How Long Do Socket Connections Remain Open?

Adakah Sambungan Soket TCP Mempunyai "Keep Alive"?

Tidak seperti HTTP keep-alive, sambungan soket TCP tidak kekal terbuka selama-lamanya . Sebaliknya, ia tertakluk pada had tamat masa yang dikuatkuasakan oleh TCP Keep-Alive.

Pengenalan

Sambungan TCP melibatkan dua soket, setiap satu berada pada satu hujung sambungan. Biasanya, soket ini kekal terbuka sehingga satu hujung menamatkan sambungan, ditunjukkan oleh paket FIN. Walau bagaimanapun, jika penamatan soket yang tidak diingini berlaku, TCP Keep-Alive wujud untuk mengesan dan menutup sambungan lapuk.

Proses Keep-Alive

Pada sistem Linux, TCP Keep-Alive beroperasi dengan tetapan lalai berikut:

  • tcp_keepalive_time: 7200 saat (2 jam)
  • tcp_keepalive_probes: 9
  • tcp_keepalive_intvl<: saat>Jika sambungan kekal melahu selama lebih tcp_keepalive_time, paket ACK dihantar ke hujung yang lain. Jika tiada respons selepas bilangan probe yang ditentukan, sambungan ditamatkan melalui RST.

Gotchas

Lalai 2 Jam:

Secara lalai , proses Keep-Alive hanya bermula selepas 2 jam tidak aktif, yang mungkin membenarkan sambungan lapuk berterusan.

Keep-Alive adalah Pilihan:

Membalas paket Keep-Alive adalah pilihan dan sesetengah pelaksanaan mungkin menggugurkannya.

Menukar Tamat Masa TCP

Untuk mengubah suai tamat masa TCP, rujuk arahan khusus OS berikut:

Linux:

Per-soket:
    Pada masa ini tidak disokong dalam Java
  • Seluruh sistem:
  • Gunakan gema untuk melaraskan / proc/sys/net/ipv4/[tcp_keepalive_time|tcp_keepalive_probes|tcp_keepalive_intvl]
  • Mac OS X:

ystem-wide

Gunakan sysctl -w untuk menetapkan net.inet.tcp.[keepidle|keepintvl|keepcnt]
  • Persistent: Tambahkan tetapan pada /etc/sysctl.conf
  • Windows:

System-wide:

Edit nilai pendaftaran dalam HKEY_LOCAL_MACHINESystemCurrentControlSetServicesTCPIPParameters

    Atas ialah kandungan terperinci Bagaimanakah TCP Keep-Alive Berfungsi dan Berapa Lama Sambungan Soket Kekal Terbuka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    sumber:php.cn
    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Artikel terbaru oleh pengarang
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!