2011-10-21 9 views
7

पाठ्य पुस्तक कंप्यूटर नेटवर्किंग जेम्स F.Kurose पांचवें एड में के गुणकों में होना चाहिए, ch4क्यों आईपी टुकड़े 8 बाइट्स

आईपी टुकड़े उल्लेख 8 बाइट्स के गुणकों में होना चाहिए, और क्योंकि आईपी हेडर बिट्स लेता है। मुझे समझ में नहीं आता क्यों आईपी विखंडन 8 बाइट्स के गुणकों में होना चाहिए।

उत्तर

11

अंतिम को छोड़कर प्रत्येक खंड में डेटा के 8 बाइट्स में से एक होना चाहिए।

फ्रैगमेंट ऑफसेट 8192 (2^13) इकाइयों को पकड़ सकता है लेकिन डेटाग्राम में डेटा के 8192 * 8 = 65536 बाइट नहीं हो सकते हैं क्योंकि आईपी हेडर के "कुल लंबाई" फ़ील्ड में हेडर और डेटा समेत कुल आकार रिकॉर्ड होता है।

एक आईपी हेडर कम से कम 20 बाइट लंबा है, इसलिए "फ्रैगमेंट ऑफ़सेट" के लिए अधिकतम मान 818 9 तक सीमित है, जो अंतिम खंड में 3 बाइट्स के लिए कमरा छोड़ देता है।

उम्मीद है कि इससे मदद मिलती है।

+2

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

2

ध्यान दें कि फ्रैगमेंट ऑफ़सेट फ़ील्ड 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

0

क्या वेन तथ्य यह है कि ऑफसेट वास्तव में, कि है, अंत मेजबान में प्रयोग किया जाता है एक पंक्ति में इतना है कि वे कुशलता से कुशलता से स्मृति में टुकड़े स्टोर कर सकते हैं प्लस कहा। ऑफसेट पूरे डेटाग्राम के संबंध में एक टुकड़े की सापेक्ष स्थिति दिखाता है। यही कारण है कि ऑफसेट होना चाहिए आईपी टुकड़े 8 बाइट्स के गुणकों में होना चाहिए क्योंकि आप वास्तव में जो करते हैं वह 3 बिट्स (इसलिए 13 बिट्स) द्वारा सही बदलाव होता है।

0

यहां (https://cs.nyu.edu/courses/fall98/G22.2262-001/class11.txt) यह दिया गया है: खंड ऑफसेट 8 बाइट्स (64 बिट्स) की इकाइयों में मापा जाता है। ऐसा इसलिए है क्योंकि खंड ऑफसेट फ़ील्ड कुल लंबाई फ़ील्ड की तुलना में 3 बिट कम है iee 16 बिट्स (और 2^3 8 है)।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^