Bagaimana saya bisa secara pasif memonitor packet loss pada koneksi TCP ke/dari komputer saya?
Pada dasarnya, saya'd seperti alat yang duduk di latar belakang dan jam tangan TCP ack/nak/re-transmit untuk menghasilkan laporan yang peer alamat IP "tampak" yang akan mengalami kerugian berat.
Sebagian besar pertanyaan-pertanyaan seperti ini yang saya cari dari SF sarankan untuk menggunakan alat-alat seperti iperf. Tapi, saya perlu untuk memantau koneksi ke/dari aplikasi nyata di mesin saya.
Data ini hanya duduk di sana di Linux TCP stack?
Untuk pengertian umum dari skala masalah anda netstat -s
akan melacak jumlah retransmisi.
# netstat -s | grep retransmitted
368644 segments retransmitted
Anda dapat aso grep untuk segmen
untuk mendapatkan pandangan yang lebih rinci:
# netstat -s | grep segments
149840 segments received
150373 segments sent out
161 segments retransmitted
13 bad segments received
Untuk menyelam lebih dalam, anda'll mungkin ingin menjalankan Wireshark.
Di Wireshark mengatur filter untuk tcp.analisis.retransmission
untuk melihat retransmisi oleh aliran.
Yang's pilihan terbaik yang saya bisa datang dengan.
Mati lainnya berakhir dieksplorasi:
netstat -s
menunjukkan bahwa itu hanya mencetak /proc/net/netstat
Statistik ini di /proc/net/netstat dan collectl
akan memantau mereka untuk anda baik secara interaktif atau ditulis ke disk untuk pemutaran nanti:
[root@poker ~]# collectl -st
waiting for 1 second sample...
#<------------TCP------------->
#PureAcks HPAcks Loss FTrans
3 0 0 0
1 0 0 0
Tentu saja, jika anda'd ingin melihat maka sisi-by-side dengan lalu lintas jaringan, hanya mencakup n
dengan -s
:
[root@poker ~]# collectl -stn
waiting for 1 second sample...
#<----------Network----------><------------TCP------------->
# KBIn PktIn KBOut PktOut PureAcks HPAcks Loss FTrans
0 1 0 1 1 0 0 0
0 1 0 1 1 0 0 0
Sepertinya beberapa orang di University of North Carolina (UNC) membangun sebuah utilitas untuk menyelidiki hal ini:
Metodologi
TCP adalah contoh klasik dari warisan protokol yang mendapat subjek untuk modifikasi. Sayangnya, evaluasi sesuatu sebagai dasar-dasar TCP's badan deteksi/mekanisme pemulihan tidak komprehensif. Tujuan kami adalah untuk melakukan evaluasi realistis TCP kerugian dan dampaknya pada kinerja TCP.
saya mengandalkan pasif analisis dunia nyata koneksi TCP untuk mencapai tingkat yang diperlukan detail dan realisme dalam analisis saya.
http://www.cs.unc.edu/~jasleen/Penelitian-passivetcp.htm#Alat
Alat
tujuan dari alat ini adalah untuk memberikan informasi yang lebih lengkap dan akurat hasil untuk mengidentifikasi dan mencirikan out-of-sequence segmen dari yang disediakan oleh sebelum alat-alat seperti tcpanaly, tcpflows, PALING tidak, dan Misteri. Metodologi kami mengklasifikasikan masing-masing segmen yang muncul out-of-sequence (OOS) dalam packet trace ke salah satu dari berikut kategori: penataan kembali jaringan TCP atau retransmission dipicu oleh satu timeout, duplikat ACKs, sebagian ACKs, selektif ACKs, atau implisit pemulihan. Selanjutnya, masing-masing retransmission juga dinilai untuk melihat apakah itu apakah diperlukan atau tidak.
Saya tidak't mengatakan itu adalah kualitas produksi. Sebelumnya saya've dibangun cepat script-script perl untuk menyimpan ip/port/ack tupel dalam memori dan kemudian melaporkan data yang terduplikasi dari pemindaian pcap output, ini terlihat seperti ini memberikan analisis lebih mendalam.
Rupanya tua yang baik sar dapat mengumpulkan retransmission (dan lainnya tcp statistik), bersama dengan semua jenis lain dari sistem statistik yang mungkin juga akan menarik jika anda menyelidiki masalah seperti cpu, memori, disk I/O, dll.
Anda mungkin perlu untuk menginstal paket: sysstat dan mengaktifkan ini jenis tertentu dari statistik dengan switch-S SNMP, pada RHEL/OracleLinux ini adalah konfigurasi di /etc/cron.d/sysstat mana /usr/lib64/sa/sa1 dipanggil setiap 5 menit secara default, tetapi yang dapat disetel juga.
Untuk analisis data ini menggunakan: