ध्यान दें कि फ्रैगमेंट ऑफ़सेट फ़ील्ड 8-बाइट इकाइयों में व्यक्त की जाती है, बाइट्स में नहीं। यही कारण है कि अंतिम खंड को छोड़कर, प्रत्येक टुकड़े के अंदर पेलोड आकार 8 बाइट्स का होना चाहिए।
चूंकि फ्रैगमेंट ऑफसेट को 13 बिट पर कोड किया गया है, इसका परिणाम यह है कि इसकी सीमा 8 बाइट्स के 0 और 8191 इकाइयों के बीच है। हालांकि, क्योंकि कुल लंबाई में आईपी हेडर भी ध्यान में रखता है, फ्रैगमेंट ऑफ़सेट अधिकतम सीमा वास्तव में 818 9 इकाइयां नहीं है, 8191 इकाइयां नहीं हैं, नीचे देखें:
कुल लंबाई 16 बिट्स पर कोडित होने का मतलब है कि यह 65535 तक सीमित है बाइट्स। फिर, क्योंकि आईपी हेडर कम से कम 20 बाइट्स है, जिसके परिणामस्वरूप पेलोड अधिकतम 65535 बाइट्स तक सीमित है - 20 बाइट्स = 65515 बाइट्स। 8-बाइट इकाइयों में इन 65515 बाइटों को विभाजित करने से यह परिणाम मिलता है कि अधिकतम 818 9 इकाइयां हो सकती हैं, इसलिए फ्रैगमेंटेशन ऑफसेट अधिकतम 818 9 इकाइयों तक सीमित है।
एक IP टुकड़ा टुकड़ा ऑफसेट मूल्य 8189 के इस अधिकतम मान पर निर्धारित होने, अधिकतम 3 बाइट्स की एक पेलोड हो सकता है:
अधिकतम 65535 बाइट्स - कम से कम 20 बाइट - (8189 इकाइयों * प्रति यूनिट 8 बाइट्स) = अधिकतम 3 बाइट्स
Rurre
उत्तर @ वेन शीर्स के उत्तर के लिए धन्यवाद, जैसा कि आपने कहा था: फ्रैगमेंट ऑफसेट 8192 (2^13) इकाइयां रख सकता है [** मतलब इकाइयां क्या हैं? क्या आपका मतलब बाइट्स था? **] लेकिन डेटाग्राम में 8192 * 8 नहीं हो सकता = 65536 डेटा के बाइट [** क्यों? **] क्योंकि आईपी हेडर के "कुल लंबाई" फ़ील्ड में शीर्ष आकार रिकॉर्ड होता है जिसमें हेडर और डेटा शामिल है [** मुझे पता है कि कुल लंबाई = हेडर आकार + पेलोड है। और कुल पायदान आकार 16 है, इसलिए मूल्य 2^16 तक बढ़ जाएगा जो 65536 है, क्या मुझे कुछ गलत लगता है? **]। – user991482