2011-10-21 9 views

cevap

11

Sonuncu dışındaki her parça, 8 baytlık bir veriden fazlasını içermelidir.

Parça Ofseti 8192 (2^13) birim tutabilir, ancak datagramın 8192 * 8 = 65536 bayt veriye sahip olamaz, çünkü IP başlığının "Toplam Uzunluk" alanı, başlık ve veri dahil olmak üzere toplam boyutu kaydeder.

IP üstbilgisi en az 20 bayt uzunluğundadır, bu nedenle "Fragment Offset" için maksimum değer 8189 ile sınırlıdır, bu da son parçaya 3 baytlık yer bırakır.

Bu yardımcı olur umarım.

+2

Yanıtladığınız gibi @Wayne Shears için teşekkürler: Parça Ofset'i 8192 (2^13) birimi tutabilir [** ortalama birimleri?, byte'ları ifade ediyor? **] ancak datagram'ın 8192 * 8'i olamaz = 65536 bayt veri [** why? **] çünkü IP üstbilgisinin "Toplam Uzunluk" alanı, başlık ve veriler dahil olmak üzere toplam boyutu kaydeder [** tek bildiğim totallength = üstbilgi boyutu + taşıma yüküdür. ve toplam legth boyutu 16, bu yüzden değer 65536 olan 2^16'ya kadar çıkacak mı, yanlış bir şey mi düşündüm? **]. – user991482

2

Fragment Offset alanının bayt cinsinden değil 8 baytlık birimlerle ifade edildiğini unutmayın. Bu, son bölüm hariç, parçanın her birindeki yük boyutunun 8 bayttan fazla olması gerektiğinden kaynaklanır.

Fragman Dengesi 13 bit olarak kodlandığında, aralığının 0 ile 8191 birim 8 bayt arasında olmasıyla sonuçlanır. Bununla birlikte, Toplam Uzunluk, IP Başlığını da dikkate aldığından, Parçacık Ofset maksimum sınırı aslında 8191 birim değil, 8191 birimdir, aşağıya bakınız:

Toplam uzunluk 16 bit olarak kodlanmış demektir, bunun anlamı 65535 ile sınırlıdır. bayt. Sonra, IP üstbilgisi en az 20 bayt olduğu için, Yük yükünün maksimum 65535 bayt - 20 bayt = 65515 bayt ile sınırlı olduğu sonucunu verir. Bu 65515 baytın 8 baytlık birimlere bölünmesi, maksimum 8189 birim olabileceğine ve dolayısıyla Parçalanma Dengesinin maksimum 8189 birim ile sınırlı olmasına neden olur.

bir IP parçası 8189, bu maksimum değere Veridilimi değerine sahip olan, en fazla 3 bayt yükü olabilir:

maksimum 65535 bayt - en az 20 bayt - (8189 adet birim * 8 byte) = Wayne onlar verimli verimli bellekte parçalarını saklayabilir, böylece aslında bir satırda, yani uç ana kullanılır ofset aslında artı söyledikleri en fazla 3 bayt

Rurre

0

. Ofset, bir fragmanın tüm datagrama göre nispi pozisyonunu gösterir. Bu yüzden ofsetin IP fragmanlarının 8 baytlık katlar halinde olması gerekir, çünkü aslında yaptığınız şey 3 bitlik bir doğru kaymadır (dolayısıyla 13 bit).

İlgili konular