2011-08-05 13 views
6

Küçük bir ofis ağım var ve büyük bir internet bağlantısı gecikmesi yaşıyorum. Basit bir ağ topolojimiz var: ubuntu sunucusu 10.10, 2 ağ kartı (bir internet bağlantısı, diğer ofis ağına) ve 20 bilgisayarı bağlayan bir anahtar çalıştıran yönlendirici olarak yapılandırılmış bir bilgisayar. Yönlendiricide toplanan dev bir tcpdump günlüğüm var ve bu gecikme sorununa en iyi çözümü bulmaya çalışmak için tüm TCP akışlarının RTT zamanı ile bir histogram çizmek istiyorum. Yani, birisi bana wireshark veya başka bir araç kullanarak nasıl yapılacağını söyleyebilir mi? Her bir TCP paketi ve paket için ACK yakalama arasındaki zaman delta ölçer tcp.analysis.ack_rtt kullanılarak ACK alınan paket içinPlot RTT histogramı wireshark veya başka bir araç kullanarak

cevap

11

Wireshark veya TShark TCP RTT verebilir.

Sen ACK paketlerinin çoğu gelen paketlerin İnternet'ten alınan acking ofis makineleri olacak bu dikkatli olmak gerekir, bu yüzden internetten paketi görerek yönlendirici arasındaki RTT'yi ölçmek ve göreceğiz Ofis makinenizden ACK.

İnternet RTT'nizi ölçmek için İnternet'ten ACKS aramanız gerekir (ACKing verileri ağınızdan gönderilir). Varsayarsak ofis makineleri 192.168.1.x gibi IP adresleri varsa ve bunu gibi bir ekran filtresi kullanabilirsiniz yönlendirici LAN portuna tüm verileri açmış:

tcp.analysis.ack_rtt and ip.dst==192.168.1.255/24 

bir içine RTT'leri dökümü için. Analiz için csv, böyle bir tshark komutu kullanabilirsiniz;

tshark -r router.pcap -Y "tcp.analysis.ack_rtt and ip.dst==192.168.1.255/24" -e tcp.analysis.ack_rtt -T fields -E separator=, -E quote=d > rtt.csv

  • -r seçeneği -Y seçeneği (kullanımdan kaldırıldı olmadan -2 -R)
  • Kullanmak için ekran filtresi belirten
  • sizin .pcap dosyasından okumak için TShark söyler -e seçeneği biçimlendirme çıkışı belirtmek çıkış
  • -T seçenekleri için alanını belirler

Sen c Bu komutu çalıştırmadan önce tüm pcap dosyalarınızı tek bir dosyada birleştirmek için mergecap yardımcı programını kullanın. Bu çıktıyı histograma çevirmek kolay olmalı!

-1
 
You can use tshark statistics to create a table of all tcp conversations: 
$ tshark -r test.pcap -q -z conv,tcp 
================================================================================ 
TCP Conversations 
Filter: 
               |    | |  Total  | 
               | Frames Bytes | | Frames Bytes | | Frames Bytes | 
192.168.108.2:2720  147.234.1.253:21   28  2306  18  1047  46  3353 
147.234.1.253:58999  192.168.108.2:2721   3  170  2  122  5  292 
192.168.108.2:2718  147.137.21.94:139   0   0  3  186  3  186 
192.168.108.2:2717  147.137.21.94:445   0   0  3  186  3  186 
================================================================================ 

Or use this little script: 

for file in `ls -1 *.pcap` 
do 
    tshark -r $file -q -z conv,tcp > $file.txt 
done 
+0

Sorunun alaka düzeyini göremiyorum. – MaxVT

1

Burada 5 dakikalık rupello cevabı esinlenerek PerlScript var:

#!/usr/bin/perl 

# For a live histogram of rtt latencies, save this file as /tmp/x.pl and chmod +x /tmp/x.pl, then run: 
# tshark -i br1 -R "tcp.analysis.ack_rtt and ip.dst==192.168.1.0/24" -e tcp.analysis.ack_rtt -T fields -E separator=, -E quote=d | /tmp/x.pl 
# Don't forget to update the interface "br1" and "and ip.dst==..." bits as appropriate. 

@t[$m=0]=20; 
@t[++$m]=10; 
@t[++$m]=5; 
@t[++$m]=2; 
@t[++$m]=1; 
@t[++$m]=0.9; 
@t[++$m]=0.8; 
@t[++$m]=0.7; 
@t[++$m]=0.6; 
@t[++$m]=0.5; 
@t[++$m]=0.4; 
@t[++$m]=0.3; 
@t[++$m]=0.2; 
@t[++$m]=0.1; 
@t[++$m]=0.05; 
@t[++$m]=0.04; 
@t[++$m]=0.03; 
@t[++$m]=0.02; 
@t[++$m]=0.01; 
@t[++$m]=0.005; 
@t[++$m]=0.001; 
@t[++$m]=0; 

@h[0]=0; 

while (<>) { 
s/\"//g; $n=$_; chomp($n); 
for ($i=$m;$i>=0;$i--) { if ($n<=$t[$i]) { $h[$i]++; $i=-1; }; }; 
if ($i==-1) { $h[0]++; }; 
print "\033c"; 
for (0..$m) { printf "%6s %6s %8s\n",$t[$_],sprintf("%3.2f",$h[$_]/$o*100),$h[$_]; }; 
} 

Put senin smokeping grafikte ve ... Bu ilham kaynağı olmuş fayda "istatistik ait İsviçre çakısı" için beklemede ...

Yeni tshark sürümleri, "tshark" ın önünde bir "stdbuf -i0 -o0 -e0" ile daha iyi çalışıyor gibi görünüyor.

PS Wireshark'ın DNS ve ICMP rtt istatistikleri yerleşik olup olmadığını veya bunları kolayca nasıl alabileceğini bilen var mı?

İlgili konular