क्या एंड-टू-एंड सिद्धांत को औपचारिक रूप दिया जा सकता है?


10

1990 के दशक के अंत में, जब मैं ग्रेजुएट स्कूल में था, पेपर

जेएच साल्टज़र; डीपी रीड; डीडी क्लार्क: सिस्टम डिजाइन में एंड-टू-एंड तर्कएसीएम ट्रांस। कंप्यूटर। Syst। 2 (4): 277-288, 1984. डीओआई = 10.1145 / 357401.357402

हर विश्वविद्यालय में प्रत्येक ऑपरेटिंग सिस्टम क्लास में पढ़ने की बहुत आवश्यकता थी, और यह अभी भी इंटरनेट के डिजाइन को अंतर्निहित प्राथमिक मार्गदर्शक सिद्धांतों में से एक लगता है। (उदाहरण के लिए देखें: जे केम्पफ, आर ऑस्टिन (एड्स), और आईएबी, " द राइज ऑफ द मिडिल एंड द फ्यूचर ऑफ एंड-टू-एंड: रिफ्लेक्शंस ऑन द इवोल्यूशन ऑफ द इंटरनेट आर्किटेक्चर ," आरएफसीएफ 24, मार्च 2004। )

एंड-टू-एंड सिद्धांत राज्यों (साल्टज़र एट अल।, 1984):

[यदि] विचाराधीन फ़ंक्शन पूरी तरह से और सही ढंग से केवल संचार प्रणाली के अंतिम बिंदुओं पर खड़े आवेदन के ज्ञान और मदद से लागू किया जा सकता है, ..., यह प्रश्न प्रदान करते हुए कि संचार प्रणाली की एक विशेषता के रूप में कार्य ही नहीं है मुमकिन। [हालांकि] कभी-कभी संचार प्रणाली द्वारा प्रदान किए गए फ़ंक्शन का एक अपूर्ण संस्करण प्रदर्शन बढ़ाने के रूप में उपयोगी हो सकता है।

या अधिक संक्षेप में (अमूर्त से):

एंड-टू-एंड तर्क बताता है कि सिस्टम के निम्न स्तरों पर रखे गए कार्य उस निम्न स्तर पर प्रदान करने की लागत के साथ तुलना में कम या कम मूल्य के हो सकते हैं।

लेकिन मुझे अपने अनुभव में एंड-टू-एंड सिद्धांत को लागू करने में बहुत कम सफलता मिली (जो कि कंप्यूटर आर्किटेक्चर में है, इंटरनेट आर्किटेक्चर नहीं है)। चूंकि सिद्धांत को "कविता" के रूप में कहा गया है (अर्थात, अंग्रेजी में गद्य शर्तों के एक समूह के साथ, जो गणितीय रूप से परिभाषित नहीं हैं) यह सोचकर अपने आप को मूर्ख बनाना काफी आसान है कि "प्रश्न में फ़ंक्शन पूरी तरह से और सही ढंग से केवल साथ लागू किया जा सकता है" आवेदन का ज्ञान और मदद। ” लेकिन एक आवेदन में "कार्य को" अकेले "ज्ञान और मदद" के बारे में क्या है?

उदाहरण: ऑन-चिप नेटवर्क (इंटरनेट के विपरीत) को पैकेट छोड़ने की अनुमति नहीं है, लेकिन इसमें काफी सीमित बफ़रिंग है, इसलिए आपको गतिरोध से बचने या ठीक होने के कुछ तरीके होने चाहिए। दूसरी ओर, आवेदन को स्वयं को गतिरोध मुक्त बनाने की आवश्यकता है, है ना? इसलिए मैं कारण हो सकता है कि मैं आम मामले (गतिरोध) को तेज कर दूं और ऐप पर गतिरोध से बचा जाऊं। यह वास्तव में, हमने एलेवेफ और फुगु (मैकेंजी, एट अल।, फास्ट प्रोटेक्टेड मैसेजिंग के लिए एक्सप्लॉइटिंग टू-केस डिलीवरी , Int'l Symp High-Perf Comp Comp Arch, (HPCA-4): 231-242, पर क्या प्रयास किया है) 1998. या जॉन कुबेटिकोविज़ का शोध प्रबंध।) यह "काम किया," (प्रोसेसर में इंटरकनेक्ट को बाधित करके जब बफ़र्स भर गए और सॉफ्टवेयर बफरिंग के साथ ओएस वृद्धि हो गई) लेकिन मैंने किसी को शिक्षा या उद्योग में नहीं देखा है (हम में से कोई भी जो उस पर लेखक थे) एचपीसीए पेपर) विचार को दोहराने की कोशिश करते हुए चारों ओर दौड़ रहा है। तो जाहिरा तौर पर एक नेटवर्क में गतिरोध परिहार एक ही "प्रश्न में कार्य" नहीं है जैसा कि अनुप्रयोग-स्तरीय गतिरोध परिहार, या अंत-टू-एंड सिद्धांत गलत है।

क्या एक "कविता" से अंत-टू-एंड सिद्धांत को एक प्रमेय में बदलना संभव है? या कम से कम, यह एक कंप्यूटर वास्तुकार को समझने योग्य शब्दों में कहा जा सकता है?


यह एक संचार संदर्भ में एक इंटरफेस को ओवरडिजाइन करने या ओवररेंजिंग की तरह कुछ लगता है। अक्सर सीएस इंटरफेस / एपीआई ऐसे कार्यों के साथ बनाए जाते हैं जिनका उपयोग शायद ही कभी किया जाता है या प्रत्याशित संरचना वास्तविक उपयोग / आवश्यकताओं के अनुरूप नहीं होती है। ऐसा लगता है कि "जागरूक होना और जहाँ संभव हो उससे बचना"।
vzn

अपने उदाहरण के बारे में; आप उल्लेख करते हैं: यह "काम किया," (प्रोसेसर में इंटरकनेक्ट को बाधित करके जब बफ़र्स भर गए और सॉफ्टवेयर बफरिंग के साथ ओएस वृद्धि हुई)। तो सीपीयू के बीच इंटरकनेक्ट "मौन पर्याप्त" है जो किसी अन्य सीपीयू को नियमित प्रोसेसर मेमोरी में डेटा को बफर करने की अनुमति देता है? जो मुझे काफी अटपटा लगता है।
अलेक्जेंड्रोस

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

जवाबों:


3

मेरा मानना ​​है कि एंड-टू-एंड (e2e) सिद्धांत के आपके आवेदन में दो कमियां हो सकती हैं:

सबसे पहले, इस अर्थ में कि आप इसे प्रदर्शन के लिए लागू करते हैं। एंड-टू-एंड एक डिज़ाइन सिद्धांत है जैसे कि आर्किटेक्चर ऑर्थोगोनलिटी, कंपोज़िबिलिटी, रेग्युलरिटी, एक या सभी को सुनिश्चित करना, आदिम प्रदान करना आदि। ऐसे सिद्धांतों को संबंधित पाठ्यपुस्तकों में रेखांकित किया गया है। प्रदर्शन उनमें से एक नहीं है। वास्तव में, क्लार्क एट अल का तात्पर्य है कि इस सिद्धांत के अपवाद के रूप में सख्त एंड-टू-एंड का परिणाम खराब प्रदर्शन हो सकता है, इसलिए यह इस तरह का उपयोग करता है।

तो, अगर आप अभी भी औपचारिक बनाना चाहते हैं:

"एंड-टू-एंड तर्क आवेदन की आवश्यकताओं को अपील करता है, और एक स्तरित प्रणाली में ऊपर की ओर कार्य करने के लिए एक तर्क प्रदान करता है" इसलिए आपको औपचारिक आवेदन आवश्यकताओं और औपचारिक स्तरित प्रणाली की आवश्यकता होगी। यहाँ एक प्रयास है जो इसे एक कदम आगे ले जाने में मदद कर सकता है:

मान लें कि आपके पास लेयर (i) आवश्यकताएं हैं (लेयर (0) उन अनुप्रयोगों के सेट के लिए है जिन्हें आप अभी या भविष्य में, एप्लिकेशन लेयर में सपोर्ट करने की उम्मीद करते हैं) और फर्म इंटरफेस इंटरफेस (i, i + 1) और इंटरफ़ेस (i + 1) , i) (लेयर आई से आई + 1 तक पूर्व-मान लें यहां कोई क्रॉस-लेयरिंग नहीं है, इसे बदलना आसान है और इसे एक आवश्यकता बनाते हैं) और फ़ंक्शन फ़ंक्शन (i, j) (लेयर i, फंक्शन इंडेक्स जे), फ़ंक्शन का डेटा हिस्सा मान लें यह आसान है)

इनपुट: परत (0) आवश्यकताएं (जैसा कि हमने कहा कि इन औपचारिकताओं की आवश्यकता है)

आउटपुट: बाकी सब कुछ

END-TO-END आउटपुट एक ऐसा आउटपुट है: प्रत्येक L के लिए, Layer (L) फ़ंक्शन फ़ंक्शन (L, j) (यानी लेयर के भीतर फ़ंक्शन) और इंटरफ़ेस (L, L + 1), इंटरफ़ेस द्वारा केवल अपनी आवश्यकताओं को पूरा करता है (एल + 1, एल)

प्रत्येक L L और फ़ंक्शन के लिए फ़ंक्शन (L, F) आउटपुट में फ़ंक्शन S का कोई सेट नहीं है जैसे कि फ़ंक्शन (L, F) = S (= का अर्थ है समकक्ष आउटपुट और साइड-इफेक्ट्स)

तो, विशिष्ट e2e सिद्धांत अनुप्रयोग के लिए दूसरी संभावित कमी के लिए आ रहा है (और अगर मैं सही तरीके से जो प्रयास किया जा रहा है, उसे सही ढंग से पढ़ रहा हूं) तो यह दावा कर सकता है कि यह बिल्कुल विपरीत e2e सिद्धांत का पालन नहीं करता है। आपके पास अपने चिप्स "कुछ गतिरोध से बचाव" प्रदान करते हैं और आपके पास एक इंटरफ़ेस है जो ऊपरी परतों से अधिक मदद करने के लिए सामान्य (गैर-फर्म) और ट्रिगर (व्यवधान) से बाहर है। यह यकीनन एक क्रॉस-लेयर एप्रोच है जो एंड-टू-एंड एप्रोच नहीं है। दूसरे शब्दों में, आपके पास एक फंक्शन (1, x) है जो अपने कार्य को पूरी तरह से और सही ढंग से सेट इंटरफेस के साथ पूरा नहीं कर रहा है - यदि आप ऊपर दिए गए ड्राफ्ट औपचारिकता का उपयोग करना चाहते हैं (जो आपके सवाल का पूरी तरह से जवाब देने के लिए विस्तार के लिए उपयोगी है लेकिन संभवतः अपने आप में पूर्ण नहीं)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.