EMZETT.
Giriş yap

ACK

Kısaca: TCP’de bir paketin (veya belirli bir dizi numarasının) başarıyla alındığını bildiren onay bayrağı.

Biraz daha ayrıntılı: ACK paketleri TCP’nin güvenilirliğinin temelidir: beklenen onay gelmezse gönderici paketin kaybolduğunu varsayar ve yeniden gönderir. Üç yönlü el sıkışmanın üçüncü paketi, bağlantı kurulumunu tamamlayan salt bir ACK’dir.

Ayrıntılı

Paket başına makbuz yerine kümülatif onay

Teknik olarak ACK ayrı bir paket değil, 32 bitlik bir onay numarasıyla birlikte gönderilen, TCP başlığındaki tek bir bayrak bitidir. Bu numara göndericiye tam olarak hangi baytın beklendiğini söyler: “5. paket geldi” değil, “4000. bayt dâhil her şeyi aldım, bana 4001’i gönder”. Böylece kümülatif onay mümkün olur: 1000–2000, 2000–3000 ve 3000–4000 baytlık segmentler alıcıya ulaşırsa, 4001 numaralı tek bir ACK üçünü birden onaylamaya yeter. Bu, kararlı bağlantılarda önemli yük tasarrufu sağlar; ancak bir sakıncası vardır: ortadaki bir segment eksikse (örn. 2000–3000 baytları kayıpsa), sonraki segmentler gelmiş olsa bile alıcı yalnızca son boşluksuz konuma kadar onaylayabilir (2001). Modern TCP uygulamaları bunu, hangi sonraki blokların zaten var olduğunu da bildiren “Selective Acknowledgment” (SACK) uzantısıyla çözer; böylece gönderici kalan tüm verileri değil, yalnızca gerçek boşluğu yeniden gönderir.

Zaman aşımı, hızlı yeniden iletim ve yinelenen ACK’ler

Beklenen onay yeniden iletim zaman aşımı (RTO) içinde gelmezse TCP paketin kaybolduğunu varsayar ve yeniden gönderir; RTO ölçülen gidiş-dönüş süresine (RTT) dinamik olarak uyarlanır, böylece hem hızlı yerel ağlarda hem de yüksek gecikmeli hatlarda (uydu, kıtalararası) ne çok erken ne çok geç yeniden gönderilir. Özel bir durum “yinelenen ACK’lerdir”: bir segment alıcıya sırasız ulaşırsa (örn. 3. segment eksik ama 4. gelir), alıcı son boşluksuz konumu tekrar tekrar aynı numarayla onaylamayı sürdürür. Gönderici aynı onay numarasını art arda üç kez alırsa bunu genel tıkanıklığın değil, belirli bir paket kaybının güçlü sinyali sayar ve tam zaman aşımını beklemek yerine hemen yeniden iletmeye başlar (fast retransmit).

Bağlantı yaşam döngüsündeki rol

Üç yönlü el sıkışmada ACK iki kez görünür: ikinci pakette SYN-ACK ile birleşik, üçüncü pakette salt ACK olarak; bu, bağlantıyı resmen “ESTABLISHED” durumuna getirir. Bağlantının kapatılması da ACK’ler üzerinden yürür (FIN/ACK dizisinin parçası olarak). El sıkışmadan sonra gönderilen hemen her TCP segmentinde ACK bayrağı kurulu olur ve aynı anda veri de taşır (“piggybacking”).

Pratikte hata ayıklama

Paket yakalamalarında (örn. Wireshark ile) göze çarpan sayıda yinelenen ACK veya tekrarlı yeniden iletim, güzergâh boyunca paket kaybının doğrudan işaretidir; çoğunlukla aşırı yüklü yönlendiriciler, arızalı kablolar veya kararsız Wi-Fi nedeniyle. UDP ACK kavramını hiç bilmez; UDP üzerinde güvenilirlik isteyen, uygulama düzeyinde kendi daha yalın onay mantığını uygulamalıdır.

Ayrıca bak: SYN, SYN-ACK, Üç yönlü el sıkışma