PMTUD (Path MTU Discovery), kaynak ile hedef arasındaki ağ yolunda parçalanmadan taşınabilecek en büyük IP paketi boyutunu belirleyen mekanizmadır. Bu üst sınır, yol üzerindeki bağlantıların desteklediği MTU değerlerinden en küçüğüne göre oluşur.

Klasik PMTUD yönteminde kaynak, parçalanmasına izin verilmeyen paketler gönderir. Bir yönlendirici paketi boyutu nedeniyle sonraki bağlantıdan geçiremiyorsa paketi düşürür ve kaynağa hata bildirir; kaynak da paket boyutunu küçültür. Geri bildirim ulaşmazsa büyük paketler sessizce kaybolabilir ve bağlantı çalışıyor görünmesine rağmen veri aktarımı takılabilir.

MTU ile Yol MTU Değeri Arasındaki Farklar

MTU, belirli bir ağ bağlantısının tek parça halinde taşıyabildiği en büyük IP paketi boyutudur. Ethernet, kablosuz bağlantı, tünel veya başka bir aktarım katmanı kendi MTU sınırına sahip olabilir.

PMTU (Path MTU) değeri ise tek bir bağlantının değil, kaynak ile hedef arasındaki bütün yolun sınırıdır. Yol üzerindeki bağlantılardan biri diğerlerinden daha küçük paket kabul ediyorsa uçtan uca kullanılabilecek paket boyutunu o bağlantı belirler.

İlk bağlantı 1500 baytlık paketleri taşısa da yol üzerindeki en düşük bağlantı MTU değeri 1400 baytsa bu yolun MTU değeri 1400 bayttır. Kaynak tarafındaki ağ kartının 1500 bayt desteklemesi, daha büyük paketin hedefe parçalanmadan ulaşacağı anlamına gelmez.

Klasik PMTUD Döngüsünün Aşamaları

Klasik PMTUD, paket boyutu ile ağdan gelen geri bildirimi birlikte kullanır. Hata bildirimini IPv4 için ICMP, IPv6 için ICMPv6 taşır. Temel döngü şöyledir:

  1. Kaynak, ilk bağlantısının MTU değerini veya daha önce öğrendiği bir yol MTU tahminini başlangıç noktası olarak kullanır.
  2. Paket yol üzerindeki bütün bağlantılardan geçebiliyorsa kaynak mevcut boyutu kullanmayı sürdürür.
  3. Bir yönlendirici paketi boyutu nedeniyle sonraki bağlantıya aktaramıyorsa paketi düşürür ve uygun bir ICMP veya ICMPv6 hata bildirimini kaynağa yollar.
  4. Kaynak, bildirimin gönderdiği paketle ilişkili olduğunu doğrular; bildirilen sınıra göre yol MTU tahminini düşürür. Aktarımı yöneten protokol, kaybolan veriyi gerektiğinde daha küçük paketlerle yeniden gönderir.
  5. Yol üzerinde daha sonra başka bir düşük MTU bağlantısı çıkarsa aynı döngü tekrar edebilir.

Yol MTU değeri bir kez öğrenilip sonsuza kadar sabit kabul edilmez. Trafiğin izlediği ağ yolu değişebilir; yeni yol daha düşük veya daha yüksek bir sınır taşıyabilir. Bu nedenle işletim sistemi veya aktarım protokolü öğrendiği değeri belirli bir süre saklayabilir ve gerektiğinde daha büyük paket boyutlarını seyrek denemelerle yeniden kontrol edebilir.

IPv4 ve IPv6'da Parçalanma Davranışı

IPv4 ile IPv6, yönlendiricilerin parçalama yapıp yapamayacağı konusunda farklı kurallar kullanır. PMTUD her iki sürümde de yol üzerindeki paket boyutu sınırını öğrenmeyi amaçlar.

ÖzellikIPv4IPv6
Yönlendiricide parçalanmaDF (Don’t Fragment) işareti ayarlı değilse yönlendirici paketi parçalayabilir.Yönlendirici aktarım sırasında paketi parçalamaz.
Fazla büyük pakete tepkiDF işareti ayarlıysa paket düşürülür ve parçalanma gerektiğini bildiren ICMP mesajı gönderilir.Paket düşürülür ve paketin fazla büyük olduğunu bildiren ICMPv6 (Packet Too Big) mesajı gönderilir.
Boyutu düzeltme sorumluluğuKaynak, PMTU tahminini düşürerek daha küçük paketler gönderir.Kaynak daha küçük paket üretir; gerekiyorsa parçalamayı yalnız kaynak yapar.

Klasik IPv4 PMTUD yönteminde kaynak, IP başlığındaki DF işaretini ayarlar ve böylece yönlendiricilerin paketi parçalamasını engeller. Paket sonraki bağlantının MTU değerinden büyükse yönlendirici paketi düşürür ve “parçalanma gerekli” anlamındaki ICMP mesajını döndürür. Bildirimde sonraki bağlantının MTU değeri bulunabiliyorsa kaynak doğrudan daha uygun bir boyuta iner.

IPv6'da yönlendiriciler geçiş sırasında parçalama yapmadığından PTB mesajı temel geri bildirimdir. Kaynak, kendisinin gönderdiği bir paketle eşleştirdiği geçerli PTB mesajındaki MTU değerine göre daha küçük IPv6 paketleri üretir. Birden fazla dar bağlantı varsa paket gönderme ve PTB mesajı alma döngüsü birkaç kez tekrarlanabilir.

MTU Kara Deliği Nasıl Oluşur?

MTU black hole (MTU kara deliği), fazla büyük paketlerin düşürülmesine rağmen kaynağın bunu açıklayan geri bildirimi alamadığı durumdur. ICMP veya ICMPv6 mesajı bir güvenlik duvarında engellenebilir, hız sınırlamasına takılabilir, yanlış çevrilebilir ya da dönüş yolundaki bir sorun nedeniyle kaynağa ulaşmayabilir.

Kaynak gerçek yol MTU değerini öğrenemediğinde aynı büyüklükte paketleri yeniden göndermeyi sürdürebilir. Küçük paketler eşiğin altında kaldığı için bağlantının ilk aşaması başarılı olurken daha büyük veri aktarımı takılabilir.

  • TCP bağlantısı kurulmasına rağmen sayfanın veya dosyanın aktarımı ilerlemeyebilir.
  • Küçük istekler çalışırken büyük yüklemeler, indirmeler ya da belirli oturumlar zaman aşımına uğrayabilir.
  • Bağlantı tamamen kopmayabilir; sorun yalnız bazı hedeflerde ya da belirli büyüklükteki aktarımlarda görülebilir.

Bu belirtiler yol MTU keşfi sorununa işaret edebilir, ancak tek başına yeterli kanıt değildir. Paket kaybı, uygulama hatası, aşırı yük, yanlış güvenlik duvarı kuralı veya başka yönlendirme sorunları da benzer sonuçlar doğurabilir. Her hız veya bağlantı sorununu MTU kara deliği olarak değerlendirmek doğru değildir.

PLPMTUD ile Paket Boyutu Nasıl Doğrulanır?

PLPMTUD (Packetization Layer Path MTU Discovery), paketleri oluşturan protokolün farklı boyutlarda denemeler yapıp teslimi uçtan uca doğruladığı yol MTU keşfi yöntemidir. Hedefe ulaştığı doğrulanan deneme, o paket boyutunun kullanılabildiğini gösterir. Daha büyük bir denemenin kaybolması, çalışan paket boyutunun hemen terk edilmesini gerektirmez; protokol kaybı değerlendirir ve gerektiğinde denemeyi tekrarlar. Veri aktarımı da durursa daha küçük, güvenli bir boyuta dönerek bağlantıyı yeniden çalıştırmayı deneyebilir.

PLPMTUD, ICMP geri bildiriminin eksik veya güvenilmez olduğu yollarda da çalışabilir; ancak aktarımı yöneten protokolün bu yöntemi desteklemesi gerekir. Kayıp her zaman MTU nedeniyle oluşmaz: ağdaki sıkışıklık veya geçici iletim hatası da deneme paketini düşürebilir. Bu nedenle tek bir kayıp, yol MTU değerinin kesin ölçümü sayılmaz.

PMTUD ile MSS Clamping Arasındaki Farklar

MSS (Maximum Segment Size), TCP veri bölümünün alıcı tarafından kabul edilen üst sınırıdır; IP ve TCP başlıklarını kapsamaz. MSS Clamping, TCP bağlantısı kurulurken ilan edilen MSS değerini sınırlayarak karşı tarafın daha küçük TCP bölümleri göndermesini sağlayan işlemdir. PMTUD ağ yolunun taşıyabildiği IP paketi boyutunu öğrenirken MSS Clamping, TCP bağlantısının veri boyutu sınırına müdahale eder. Bazı TCP tabanlı MTU sorunlarını azaltabilir; ancak PMTUD yerine geçen genel bir mekanizma değildir ve TCP dışındaki trafiği kapsamaz.

Yol MTU Ölçümü Hangi Yolu Kapsar?

Yol MTU ölçümü, testi yapan cihazdan hedefe giden yol için geçerlidir. Bir web sunucusunun başlattığı test, sunucudan hedefe giden yolu ölçer; ziyaretçinin cihazından aynı hedefe giden yolu doğrudan ölçmüş olmaz. Sonuç ayrıca kullanılan IP sürümüne, trafik yönüne ve test anındaki rotaya bağlıdır.

Bu nedenle tek bir MTU değerini bütün internet bağlantıları için önermek doğru değildir. Gereksiz yere düşük bir değer paket başına taşınabilecek yararlı veriyi azaltırken yolun sınırını aşan paketler kayba yol açabilir. Başka bir hedef veya trafik yönü için ayrı ölçüm gerekebilir.