2012-05-04 14 views
15

मैं समझने की कोशिश कर रहा हूं कि टीसीपी हेडर की अनुक्रम संख्या कैसे उत्पन्न होती है।टीसीपी अनुक्रम संख्या

कुछ स्थानों पर मैंने पढ़ा है कि यह "पैकेट में पहली बाइट की अनुक्रमणिका" (link here) है, कुछ अन्य साइटों पर यह एक यादृच्छिक 32 बिट जेनरेटेड नंबर है जिसे तब बढ़ाया जाता है।

मैं वास्तव में नहीं जानता कि कौन सा कौन है, तो यहाँ कुछ प्रश्न हैं:

  • प्रारंभिक क्रम संख्या कैसे उत्पन्न होता है? (यदि कोई है तो आरएफसी नंबर)
  • यह कैसे बढ़ता है?
  • गुप्त कुंजी कैसे उत्पन्न होती है?

मैं आरएफसी के कुछ पढ़ा RFC 6528, RFC 793 और RFC 1948 की तरह है, लेकिन मैं समझने के लिए जो एक वास्तव में कार्यान्वित किया जाता है नहीं कर पा रहे। मैंने "std" स्थिति के बारे में पढ़ा लेकिन stil ...

अग्रिम धन्यवाद!

+1

कौन सा कार्यान्वयन? उस कार्यान्वयन के स्रोत के बारे में क्या आप विशेष रूप से पूछ रहे हैं? – geoffspear

+0

ओह, मुझे खेद है। मेरा मतलब था कि जब आप इंटरनेट पर ब्राउज़ करते हैं (HTTP/टीसीपी/आईपी) आपके कंप्यूटर का उपयोग उन अनुक्रम संख्याओं को उत्पन्न करने के लिए करता है? यह कैसे काम करता है ? –

+0

तो यह एक प्रोग्रामिंग प्रश्न नहीं है? – geoffspear

उत्तर

27

एक टीसीपी कनेक्शन का प्रत्येक समापन बिंदु यह भेजे गए पैकेट के लिए एक प्रारंभिक अनुक्रम संख्या स्थापित करता है, और यह संख्या SYN पैकेट में भेजता है जो इसे कनेक्शन स्थापित करने के हिस्से के रूप में भेजता है।

कोई अनुक्रम अनुक्रम संख्या चुनने में किसी विशेष प्रक्रिया का पालन करने के लिए किसी भी अंत के लिए आवश्यकता की आवश्यकता नहीं है। ऑपरेटिंग सिस्टम किसी भी तंत्र का उपयोग करने के लिए स्वतंत्र है, लेकिन आम तौर पर यह सबसे अच्छा है अगर यह यादृच्छिक संख्या चुनता है, क्योंकि यह अधिक सुरक्षित है। जहां धारा में पैकेट है निर्दिष्ट करने के लिए एक, और एक एसीके क्रम संख्या जो बाइट्स की संख्या का प्रतीक है प्राप्त -

कि शुरुआती बिंदु से, प्रत्येक पैकेट दोनों छोर द्वारा भेजे गए दो अनुक्रम संख्या में शामिल है। दोनों संख्याएं प्रारंभिक क्रम संख्या से ऑफसेट हैं।

इसके बारे में सभी को Wikipedia में पढ़ें - उस पृष्ठ में "अनुक्रम संख्या" के लिए सभी गोरियों के विवरण प्राप्त करने के लिए देखें।

+0

आह धन्यवाद आपके त्वरित उत्तर के लिए! = डी मैं इसे बेहतर ढंग से समझता हूं। बस दो अनुवर्ती प्रश्न ^^: क्या आप जानते हैं कि यादृच्छिक संख्या कैसे उत्पन्न होती है? और क्या आप जानते हैं कि आरएफसी संख्या जिस प्रक्रिया को आपने समझाया है वह अनुरूप है? फिर से Thx! –

+2

@AwakeZoldiek समझाया गया है, प्रारंभिक अनुक्रम संख्या _any_ विधि द्वारा चुना जा सकता है, हालांकि सर्वोत्तम सुरक्षा के लिए इसे एक अच्छा यादृच्छिक संख्या जनरेटर का उपयोग करके चुना जाना चाहिए। सीएनएन और एसीके अनुक्रम संख्या सामान कोर आरएफसी 793 दस्तावेज़ में सभी हैं। – Alnitak

+0

आपके एन्वरर्स के लिए धन्यवाद! =) –

2

4.4BSD (और सबसे बर्कले-व्युत्पन्न कार्यान्वयन) में जब सिस्टम प्रारंभ होता है तो आरंभिक प्रेषण संख्या प्रारंभ की जाती है। यह अभ्यास मेजबान आवश्यकताएं आरएफसी का उल्लंघन करता है। (कोड में एक टिप्पणी यह ​​स्वीकार करती है कि यह गलत है।) इस चर को फिर हर आधे सेकेंड में 64,000 तक बढ़ाया जाता है, और हर 9.5 घंटे के बारे में 0 से चक्र वापस चला जाएगा। (यह एक काउंटर से मेल खाता है जो हर 8 माइक्रोसॉन्ड नहीं बढ़ाता है, प्रत्येक 4 माइक्रोसॉन्ड नहीं।) इसके अतिरिक्त, प्रत्येक बार कनेक्शन स्थापित होने पर, यह चर 64,000 तक बढ़ जाता है।

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