TCP paketleri alıcıya parçalar halinde ulaşabilir mi?
Evet. IP genellikle parçalanmayı destekler, ancak TCP genellikle MTU yolunu belirlemeye ve paketlerini performans nedenleriyle olduğundan daha küçük tutmaya çalışır. Parçalanma, datagram kayıp oranını felaketle arttırır. Bir yol% 10'luk bir paket kaybı oranına sahipse, bir datagramı iki pakete ayırmak, veri birimi kayıp oranını neredeyse% 20 yapar. (Paketlerden herhangi biri kaybolursa, datagram kaybolur.)
Bu konuda endişelenmenize gerek yok ve TCP katmanı da yok. IP katmanı, paketleri tüm datagramlara yeniden birleştirir.
Örn: TCP protokolünü kullanarak 20 byte gönderirsem, bir kerede tam olarak 20 byte alacağımdan,% 10 byte alacağımdan% 100 emin olabilir miyim?
Hayır, ama bunun paketlerle ilgisi yok. TCP, temel olarak, uygulama mesajı sınırlarını korumayan bir bayt akış protokolüdür.
UDP protokolü için de aynı soru. UDP'nin güvenilmez olduğunu ve paketlerin hiçbir şekilde ulaşamayacağını veya farklı sırada gelemediğini biliyorum.
Aynısı TCP için de geçerlidir. Paketler paketlerdir. Aradaki fark, TCP'nin UDP olmasa da protokolde yerleşik olarak yeniden denemeleri ve yeniden düzenlemeleri olmasıdır.
peki ya 1 paket? Gelirse, bir parça değil, eksiksiz bir paket olduğundan emin olabilir miyim?
Hayır, ama bu senin sorunun değil. UDP protokolü datagram montajını gerçekleştirir. Bu işinin bir parçası. (Gerçekte, IP protokolü bunu UDP protokolü için yapar, bu yüzden UDP bunu yalnızca IP'nin üstüne yerleştirerek yapar.) Bir datagram iki pakete bölünürse, IP protokolü UDP protokolü için yeniden birleştirir. tüm verileri göreceksiniz.