2012-06-05 32 views
6

TTL değerini değiştirdiğim bazı boş bırakılmış paketleri yeniden oynatmak için Scapy kullanıyorum. TTL = 1 ile bile çok garip sonuçlar elde ediyorum., ICMP'nin zaman aşımına uğramış mesajlarının tümünü almıyor: Neden?

Test saatlerimi birbirinden ayırdığımda, ICMP zaman aşımına uğramış bir mesajla yanıtlanan paketlerin yaklaşık% 40 ila% 95'ini alabilirim. Ardından cevapsız paketleri tekrar tekrar çalabilir ve her seferinde daha önce veya daha az yanıtlanmış paketlerin yüzdesini alabilirim.

Neden?

Aralarında 0.1 saniye arayla paket gönderiyorum. Bu iyi olmalı, değil mi? Zaman aşımı değeri çok muhafazakar olan 10s.

Burada sorun ne var?

cevap

5

Ne söylüyorsanız, yalnızca belirli bir zaman aralığında pek çok erişilemeyen ana bilgisayarı test edebilirsiniz. Bir sebep: birçok yönlendirici hız sınırı ICMP mesajı.

Başka bir şey yapmadan önce bir ana bilgisayara bir ping başarısını sınamak daha iyidir; Bu şekilde, erişilebilirlik konusunda olumlu bir onayınız olur. Downside MS Windows blokları varsayılan olarak ping.

İlk olarak ping yapamıyorsanız, problarınız arasındaki süreyi artırmanız veya ICMP iletilerini döndüren yönlendiricideki ICMP erişilemeyen oranını yükseltmeniz gerekir.

DÜZENLEME: Trafiği işlemek için scapy 'ın yeteneği için bir duvara isabet konum gibi açıklamalara dayanarak

görünüyor. Geçmişte, trafiği almak için arka planda scapy ile göndererek ve tcpdump no'lu yumurtlama yaparak ilerlemeyi iyileştirdim.

+0

ICMP hız sınırlaması da benim tahminimdi, ama bugün her şeyi 5 saniyelik paketler arası bir aralıkta tekrar göndermeye çalıştım ve hala en az 6-7 paket için yanıt alamadım. benim 50 (küçük test). Scapy'de 'sr' işlevini kullanıyorum. Bu yüzden bir seferde bir paket geçirip 1 saniye beklediğimi düşündüm. Eh, bu sefer * her * tek paket cevaplanır. Sanırım sr 'nin uygulanması ile ilgili bir problem. –

+1

"Scapy" ile benzer sorunlar gördüm, trafik almak/almak için köpek yavaştır; Bir projede 'tcpdump'ı' .pcap' dosyasına yazmış bir arkaplan süreci olarak kullanmaya başladım ve daha sonra doğru yanıtı alıp almadığımı görmek için 'scapy' dosyasındaki dosyayı ayrıştırdım. –

+0

Anladım. Scapy's 'sr' işlevine herhangi bir alternatif biliyor musunuz? Paketlenmiş bir TTL değeri olan paketleri göndermem ve ilgili ICMP mesajı ile eşleştirmem gerekiyor. Scapy'de/kadar/basit görünüyordu, ancak her bir paket için 'sr 'çağrısı çağlar alıyor. –