GNU/Linux >> Belajar Linux >  >> Cent OS

Mengapa Output “netstat” Menampilkan Banyak Koneksi dalam Status CLOSE_WAIT?

Posting ini akan memberikan detail tentang koneksi TCP yang melaporkan status 'CLOSE_WAIT'. Nilai status yang mungkin untuk soket TCP adalah sebagai berikut:

TERIKAT         Terikat, siap terhubung atau mendengarkan.
TUTUP        Tutup. Soket tidak digunakan.
TUTUP       Tutup, lalu matikan dari jarak jauh; menunggu pengakuan.
CLOSE_WAIT    Penutupan jarak jauh; menunggu soket ditutup.
DIBUAT   Koneksi telah dibuat.
FIN_WAIT_1    Soket ditutup; mematikan koneksi.
FIN_WAIT_2    Soket ditutup; menunggu shutdown dari jarak jauh.
IDLE          Idle, dibuka tapi tidak terikat.
LAST_ACK      Penonaktifan jarak jauh, lalu ditutup; menunggu pengakuan.
DENGARKAN        Mendengarkan koneksi masuk.
SYN_RECEIVED  Aktifkan/mulai sinkronisasi diterima dan koneksi sedang berjalan
SYN_SENT      Aktif mencoba membuat koneksi.
TIME_WAIT     Tunggu setelah penutupan untuk transmisi ulang shutdown jarak jauh.

CLOSE_WAIT ' state berarti ujung koneksi yang lain telah ditutup sementara ujung lokal masih menunggu aplikasi ditutup.

Detail

Status 'CLOSE_WAIT' pada koneksi tcp terjadi jika sistem belum menerima panggilan sistem tertutup dari aplikasi, setelah menerima pemberitahuan (paket 'FIN') dari sistem lain bahwa ia telah menutup titik akhirnya. Dengan kata lain, ini berarti bahwa ujung lokal dari koneksi telah menerima 'FIN' dari ujung yang lain, tetapi OS sedang menunggu program di ujung lokal untuk benar-benar menutup koneksinya.

Masalahnya adalah program yang berjalan di mesin lokal tidak menutup soket. Ini bukan masalah penyetelan TCP. Koneksi dapat tetap berada di 'CLOSE_WAIT' selamanya selama program menahan koneksi tetap terbuka. Jadi sebagian besar masalah ini terjadi karena bug aplikasi. Namun jika parameter TCP/IP tidak disetel dengan benar, koneksi TCP/IP tertutup akan bertahan untuk waktu yang sangat lama di berbagai status 'TUTUP' yang mengambil deskriptor file dari proses. Untuk mengatasi masalah ini, terkadang perlu untuk menyetel parameter TCP/IP di /etc/sysctl.conf (seperti parameter net.ipv4.tcp_xxx), sehingga koneksi TCP/IP ditutup dalam waktu singkat .


Cent OS
  1. Mengapa Pergantian Perintah Shell Melahap A Trailing Newline Char?

  2. Mengapa Opsi Ssh -t Menambahkan Cr &Lf Dalam Output yang Dialihkan?

  3. Mengapa Ls -l Menghasilkan Ukuran Yang Berbeda Dari Ls -s?

  1. Mengapa /etc/issue Menampilkan Ubuntu Dan Bukan Lubuntu?

  2. Mengapa pipa shell ini keluar?

  3. Mengapa git gagal saat Push/fetch dengan Terlalu banyak file terbuka

  1. Mengapa output dari beberapa program Linux tidak menuju ke STDOUT atau STDERR?

  2. Mengapa YaST sekarang menampilkan garis sebagai lqqqqqqqqqqqqqqqq?

  3. Mengapa dentang menghasilkan teks yang tidak dapat dipahami saat dialihkan?