RFC'nin bu kısmı, sorumluluğu işletim sistemine veya sürecin bir sonraki aşaması ne olursa olsun, sorumluluğu üstlenmekle ilgilidir. Temel olarak katmanların ayrılması ile ilgilidir.
TCP tarafından yapılan bir onay, verilerin son kullanıcıya teslim edildiğini garanti etmez, ancak yalnızca alıcı TCP'nin bunu yapma sorumluluğunu üstlendiğini garanti etmez.
Her zaman bu şekilde düşündüm:
- İşletim sistemi ACK gönderme ile istemci işlemine ulaşan veriler arasında çökebilir ("istemci" burada "ağ istemcisi" değil işletim sisteminin istemcisi anlamına gelir)
- İstemci işlemi buggy veya çökme olabilir veya gelen verileriyle başa çıkmak için beklenenden çok daha yavaş olabilir veya gerçekten sadece açık olmayan koşullar altında okuyabilir
- İstemci verileri belki de bir disk dosyasına gönderiyorsa, dosya henüz yazılmamış veya silinmemiş olabilir
- İstemci verileri TCP ile gönderirse, uzak taraftaki TCP verileri iletmemiş, bir ACK almamış olabilir veya uzaktaki işlem başarıyla verileri tüketmiş olabilir
Tek söylediği bu, daha yüksek bir katman onayı değil , bir katman 3 onayı ("Baytlarınızı duyuyorum") . Örneğin TCP ACK arasındaki farkı düşünün , bir sonraki atlama posta ağ geçidinden sonraki SMTP bir mesaj, bir mesaj makbuz mesajı (örneğin RFC 3798 uyarınca ), mesajla açılan bir izleme pikseli, bir PA'dan teşekkür notu, ve "Evet, ben yaparım."250 OK
Bir başka somut örnek yazıcı olabilir:
- Sonunun ne içerdiğini bilmeden önce verileri ACK yapmalıdır (TCP gönderme penceresinden daha büyük bir kitaplıkla başlayan bir Postscript dosyası olabilir)
- Bir durum sorgusu içerebilir ("çalıştığınız kağıt var mı?").
- Bir yazdırma komutu içerebilir ("lütfen bunu yazdırın"; kağıt bittiğinde başarısız olabilir)
Kullanıcılar ACK'ları görüyor ve gönderiyor, ancak yine de bağlantı sorunları yaşıyorsa, ağ ile ilgili herhangi bir şeyden daha fazla tıkanıklık, işletim sistemi veya uygulama sorunları olması büyük olasılıkla daha büyüktür.
Teşhis etmek için özellikle ACK'lardan ziyade yeniden iletim aramanızı öneririm.