Wireshark İle Network Kayıp Paket Analizi

Wireshark kullanarak UDP protokolüyle yapılan haberleşmenizde ki kaybolan paketlerin sayısını,oranını ve analizini yapabileceğinizi biliyor muydunuz? Böylece network altyapınızın ne kadar doğru yapılandırıldığını kontrol etmiş olacaksınız.

Network analizinde Wireshark çok önemli bir konumda bulunuyor. Ağı koklayarak (sniffing) ağ kartınıza ulaşan her paketi başarıyla yakalıyor, sınıflandırıyor ve analizini yapıyor. Bizde Wireshark programının bu özelliklerinden yararlanarak bir güvenlik kamerasını izlediğimiz esnada gelen UDP paketlerinin kaçının kaybolduğunu ve kaçının geldiğini detaylıca görmeye çalışacağız.

Bu neden önemli? Sorunun tespitinde çok önemli bir yer alan UDP kayıp paket analizi ile mozaiklenen bir kamerada sorunun kameradan mı yoksa ağdan mı kaynaklandığını anlamak büyük önem taşıyor. Direk dibi testinin yapılmasının zor olduğu durumlarda Wireshark ile trafiğinizi analiz ederek doğru yere odaklanabilirsiniz. (Örneğin daha 1 hafta önce bu şekilde büyük bir sorunu çözerek ağdaki tıkanan yeri buldum. Kameraların boş yere günahını almadık 🙂

1. Kamera Akışını UDP Üzerinden Başlatma

İlk olarak bir kamera ile aramızda VLC aracılığıyla stream başlatabilirsiniz. Bu akışın UDP olduğuna emin olun. Bazen VLC de aşağıdaki resimde işaretlediğim kutucuk tkli kalabiliyor. Bu durumda akış TCP üzerinden olacağı için zaten kayıp olmayacaktır. Bu sebeple bu kutucuğun tiksiz olmasına dikkat ediniz.

Bu aşamadan emin olduktan sonra VLC Ortam -> Ağ akışı aç menüsünü kullanarak kameramızın stream adresini yazabiliriz. Örnek olarak şu RTSP adreslerini demo olarak kullanabilirsiniz;

  • rtsp://203.67.18.25:554/0 (admin:admin)
  • rtsp://freja.hiof.no:1935/rtplive/definst/hessdalen03.stream
  • rtsp://170.93.143.139/rtplive/470011e600ef003a004ee33696235daa

Artık akışımız başladı ve paketlerimiz geliyor. Öyleyse diğer aşamaya geçebiliriz.

2. WireShark İle UDP Paketlerini Seçme ve Dönüştürme

Akışımızı doğru bir şekilde başlattıktan sonra artık Wireshark programına geçebiliriz. Wiresharkı etkin bir şekilde ve rahatça kullanabilmek için açılış ekranında filtre ayarlayarak paketleri dinlememiz faydalı olacaktır. Aksi halde ağ kartınıza gelen tüm paketleri kontrol edeceği için bilgisayarınızda performans sorunları yaşayabilirsiniz. Bizde hem bu sebeple hem de sadece kontrol edeceğimiz kameranın paketlerini görmek için ağ adaptörünü seçtikten sonra filtre alanına host IPADRESI yazıyoruz ve enterlıyoruz.

NOT: Tam bu esnada kullandığım rtsp://203.67.18.25:554/0 adresli akışı kapattıkları için dersin devamında rtsp://170.93.143.139/rtplive/470011e600ef003a004ee33696235daa adresli kamera ile devam edeceğim. Yani filtremiz host 170.93.143.139 olacak.

Artık UDP paketlerimizin aktığını görebilirsiniz.

Şimdi geldik kritik noktaya. UDP protokolü paketlere herhangi bir sequence number yani sıra numarası eklemez. Fakat UDP paketinin kapsüllediği RTP header alanında bir sequence number vardır. Bu bölümü daha net anlayabilmek için bir önceki yazım olan Python İle RTSP Akışını Kaydetme ve İzleme | Detaylı RTSP Yapısı na bakabilirsiniz.

Yinede özetle bu kapsüllemede RTP header alanında sequence number vardır ve paket sıra numarasını bize verir. Bizde akış üzerinde herhangi bir UDP paketine sağ tıklayarak Decode As... penceresini açalım.

Şimdi ise açılan pencerede sol alttaki + butonuyla seçtiğimiz paket türünü ve portunu ekleyerek RTP protokolüne çevirmesini söylüyoruz. Ardından Ok diyerek bu ekrandan çıkabilirsiniz. Fakat unutmayın ki eğer kaynak mevcut akışı size birden fazla porttan gönderiyorsa her bir portu bu pencerede aynı şekilde eklemelisiniz.

Akışımızın yeni haline şimdi bakalım.

Gördüğünüz gibi Wireshark gelen UDP paketlerinin içindeki RTP header ve payload kısımlarını kapsülden çıkararak bize bu şekilde servis etmeye başladı. Zaten herhangi bir RTP paketinin başlığını incelerseniz içindeki sequence number değerini görebilirsiniz.

Artık son aşamamıza geçebiliriz.

3. RTP Header sequence number Analizi

RTP protokolü her pakete sıra numarası verir. Biz de gelen paketlerdeki sıra numaralarına bakarak hangi paketlerin kaybolduğunu anlayabiliriz. Tabi tüm paket numaralarına tek tek bakamayacağımız için bunu da Wireshark ile yapıyoruz. Bunun için Telephony menüsünün altından RTP -> RTP Streams menüsüne giriyoruz.

Burada RTP akışımıza dair istatikleri görebiliyoruz. Bu resimdeki sonuçlara göre bize kaynağın 32832 numaralı portundan toplam 27111 paket gelmiş ve 689 adet paket yolda kaybolmuş. Tabi kayıp oranımızda %2.5 olarak gösteriliyor. Bu oran bu görüntü için belki iyi olabilir ama çoğu zaman %60-70 lere varan kayıplar gördüğüm oldu. İşte bu kayıp oranına bakarak ağ altyapınızı kontrol edip etmeyeceğinize karar verebilirsiniz.