2013-07-03 19 views
16

टीसीपी धारा उन्मुख अर्थ डेटा को बाइट्स की एक सतत स्ट्रीम के रूप में स्थानांतरित किया जाता है। लेकिन मुझे क्या भ्रमित करता है कि टीसीपी सेगमेंट बनाता है और इसे आईपी में भेज देता है। आईपी ​​पैकेट बनाता है सेगमेंट encapsulates और उन्हें स्थानांतरित करता है। तो यहां वास्तव में निरंतर धारा कहाँ है?टीसीपी स्ट्रीम बनाम यूडीपी संदेश

दूसरी ओर यूडीपी संदेश उन्मुख है। यह एप्लिकेशन परत से संदेश प्राप्त करता है, डेटाग्राम बनाता है और इसे आईपी पर धक्का देता है। अब तक यह टीसीपी जैसा ही है, इसके बजाय एक डेटाग्राम बनाया गया है और नीचे धक्का दिया गया है। इस प्रोटोकॉल को एक संदेश उन्मुख बनाता है?

उत्तर

16

इंटरफ़ेस/इन प्रोटोकॉल की आप के लिए प्रस्तुत उपयोगकर्ता (प्रोग्रामर) एपीआई हैं:

यूडीपी

संदेश उन्मुख, आप एक API है (भेजें/recv और इसी तरह) है कि आप के साथ प्रदान एक डेटाग्राम भेजने की क्षमता, और एक डेटाग्राम प्राप्त करने की क्षमता। 1 भेजें() कॉल परिणाम 1 डेटाग्राम में भेजा गया है, और 1 आरईवी() कॉल बिल्कुल 1 डेटाग्राम प्राप्त करेगा।

टीसीपी

स्ट्रीम उन्मुख, आप एक API है (भेजें/recv और इसी तरह) है कि आप भेजने के लिए या एक बाइट धारा प्राप्त करने की क्षमता देता है। संदेश सीमाओं का कोई संरक्षण नहीं है, टीसीपी कई सेगमेंट() कॉल से डेटा को एक सेगमेंट में बंडल कर सकता है, या यह कई सेगमेंट में एक प्रेषण() कॉल से डेटा तोड़ सकता है - लेकिन यह टीसीपी के शीर्ष पर बैठे अनुप्रयोगों के लिए पारदर्शी है, और recv() आपको केवल डेटा वापस देता है, इस बात से कोई संबंध नहीं है कि कितने भेजते हैं() कॉल आपके द्वारा वापस प्राप्त किए गए डेटा का उत्पादन करते हैं।

+0

क्या इसकी रिलायबिलिटी से संबंधित टीसीपी की स्ट्रीमिंग प्रकृति है? –

+2

@LuisVasconcellos वास्तव में नहीं। संदेश/डेटाग्राम आधारित प्रोटोकॉल है जो आपको टीसीपी के समान विश्वसनीयता दे सकता है। – nos

+0

अच्छा जवाब! मान लें कि हमारे पास डेटा "हाय वहाँ" है। अगर हम यहां प्रत्येक शब्द को संदेश के रूप में मानते हैं तो यूडीपी उन्हें "हाय" और "वहां" के रूप में अलग-अलग डेटाग्राम के रूप में भेजता है लेकिन किसी भी क्रम में। जबकि टीसीपी में, "हाय द" और "पुनः" दो अलग सेगमेंट के रूप में बनाया जा सकता है लेकिन यह सुनिश्चित करता है कि ये दोनों खंड सही क्रम में आते हैं। क्या मेरी समझ सही है? – Zephyr

1

टीसीपी धारा उन्मुख है क्योंकि यह संगत प्रारूप में डेटा इकट्ठा करने में सक्षम है। जैसे आपके पास नंबर 1 से 4000 बाइट्स का डेटा था। अब इसे टीसीपी सेगमेंट में विभाजित किया जाएगा जहां प्रत्येक सेगमेंट में अनुक्रम संख्या होगी, पहले 1-1200 बाइट है, दूसरा 1201 - 2400 है और इसी तरह।

आईपी डेटाग्राम के माध्यम से भेजे जाने के दौरान इसे आदेश से बाहर किया जा सकता है लेकिन बाद में स्ट्रीम के रूप में दिखाई देने वाले संगत डेटा में इकट्ठा किया जाता है। अनुक्रम संख्या पैकेट को पुन: व्यवस्थित करने में मदद करती है।

एक छोटी सी गहरी explaination है:

एक बाइट धारा नहीं घटकों के साथ डेटा की एक बड़ी हिस्सा या अन्य अनियमितताओं से मिलकर बनता है। डेटाग्राम (छोटे) डेटा भाग के साथ भेजते हैं और पूरी तरह से एक बार प्राप्त होते हैं। अभ्यास में इसका मतलब है कि डेटाग्राम प्रत्येक प्रेषण/लिखने वाला कॉल एक पैकेट भेजता है, और प्रत्येक पढ़ने/आरईवी कॉल को एक पैकेट प्राप्त होता है, जबकि स्ट्रीम प्रोटोकॉल के साथ डेटा किसी भी तरह से भेज और प्राप्त किया जा सकता है। जैसे एक प्रेषक भेज सकता है() दस बार, जबकि रिसीवर को एक ही आरईवी कॉल के साथ वह डेटा प्राप्त होता है। डाटाग्राम के साथ दस भेजने कॉल दस पैकेट का अर्थ है और दस कॉल

Datagrams and streams

Byte streams

1

टीसीपी के बारे में विशेषता है कि इस व्यवहार उपयोगकर्ता resp के लिए पारदर्शी है है प्राप्त करते हैं। अप्प।

ऐप को केवल एक ही चीज़ है जो डेटा भेजने और प्राप्त करने के लिए send() और recv() पर कॉल करना है।

नीचे दी गई परतें सुनिश्चित करती हैं कि डेटा को भेजे गए क्रम में प्राप्त किया गया है, और यह अनुपलब्ध डेटा पुन: प्रेषित किया गया है यदि यह "गायब रहता है"।

यूडीपी, ओटीओएच, एक send() डेटा को एक साथ कॉल करता है, भले ही इसे कई आईपी पैकेट में विभाजित किया गया हो। इस तरह, इन आंकड़ों को एक डेटाग्राम के रूप में देखा जा सकता है।

4

टीसीपी एक कनेक्शन उन्मुख प्रोटोकॉल है जिसका अर्थ है कि यह पहले रिसीवर से कनेक्शन स्थापित करता है, फिर डेटा को सेगमेंट में डेटा भेजता है (परिवहन परत के लिए पीडीयू) जो आईपी पैकेट द्वारा किया जाता है। इस तरह इसे स्ट्रीम कहा जाता है क्योंकि यह स्थानांतरण के दौरान डेटा के प्रवाह को समाप्त होता है।

यूडीपी डाटाग्राम नामक डेटा यूनिट के साथ एक कनेक्शन-कम परिवहन प्रोटोकॉल (आईपी की तरह) है। तो टीसीपी के विपरीत, यूडीपी एक कनेक्शन स्थापित किए बिना डेटा स्थानांतरित करता है बस स्थानांतरित करने के लिए आईपी परत में डेटाग्राम संदेश भेज रहा है।

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