Her TCP veri paketinin onaylanması gerekir mi yoksa onaylanmamalı mı? [kapalı]


1

Eğer bir tcp programı A başka bir TCP programına B iki veri paketi gönderirse, paket 1: 1000'den 2000'e kadar olan sıra numarası; paket 2: 2000'den 3000'e kadar olan dizi numarası.

Genel olarak B, biri paket 1'i diğeri paket 2 için kabul etmek üzere 2 ACK ile cevap vermelidir. Şimdi, sadece ikinci ACK A tarafından alındığında, A hala ilk ACK'yı bekleyecek mi, bekleyecek mi?

TCP'nin bayt odaklı akış protokolü olduğunu biliyorum. yani ilk ACK'yı beklememelisiniz, doğru mu? Teoride, bu gerçek gerçek TCP yığını nasıl olur?

Btw, kendine özgü bir sorum var. Eğer A, B'ye bir ACK'ya 3001 sıra numarasıyla gönderilirse (bu, paket 2'nin onaylanması içindir). Ancak ortadaki bir kişi teyp sayısını 2501 olarak değiştirdi, söyleniyor, B yarım TCP paketini kabul ediyor. O zaman A, seq 2000 veya 2501'e karşılık gelen bayttan yeniden iletim yapacak mı?

Yanıtlar:


3

Hayır, TCP gereken onay sayısını azaltmak için bir "kayan pencere" mekanizması uygular.

Güzel bir görselleştirme ve açıklama: http://histrory.visualland.net/tcp_swnd.html


Bu teori, pratikte ne demek istediğim, TCP yığın uygulamasıdır. Ve kendine özgü bir sorum var, pls güncellenmiş sorumu kontrol edin. Teşekkürler!
misteryes

2
@misteryes Bu aynı zamanda gerçek dünya davranışıdır. "Pratik davranış" ı görmek istiyorsanız, Wireshark gibi bir monitör kurun veya açık kaynaklı TCP yığınlarından birine başvurun (ör. Linux).
Lekensteyn

5

TCP, paketlere değil sıra numaralarına erişir. Bu nedenle, "ortadaki biri" olmasa bile, Program A alınan bir paketin sadece bir kısmını toplayabilir (örn. Sokette tüm paket için yeterli arabellek alanı yoktur.) Örnekte, 2501 tarafından yeniden gönderilecektir Program B.

TCP ayrıca Seçmeli Ack'ı da destekler, böylece yalnızca eksik bir segmentin (sıra numarası alanındaki) iletilmesi gerekir.


+1 Bu cevap harika. Başlangıçta en önemli kokunun olduğu yerde. Neden hiç olumlu oy almadığını merak ediyorum.
artistoex

0

B bir 'pencere' sunar (tampon alanı) bir onun onayında. bir aşmadığı sürece sonraki paketleri göndermeden önce belirli bir onay beklemenize gerek yoktur. B şu anki penceresi.

Uyarım: Hem kısalık, hem de protokolü biraz kısıtlayan anlayışım nedeniyle çok basitleştirildi. RFC: 813 - TCP'DE PENCERE VE BİLDİRİM STRATEJİSİ Bu çok teknik hakkında konuşuyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.