[अनुवाद] पिंग कार्यक्रम का इतिहास



यह सही है, मैं UNIX के लिए पिंग का लेखक हूं। पिंग एक हजार-लाइन-लंबा कार्यक्रम है जिसे मैंने एक शाम में लिखा था जिसके बारे में शायद सभी को पता है। :-)

मैंने सोनार साउंड के नाम पर इसका नाम रखा। कॉलेज में, मैंने बहुत सारे मॉडलिंग सोनार और रडार सिस्टम किए, इसलिए साइबरस्पेस के साथ सादृश्य बहुत उपयुक्त लगा। पिंग एक ही विचार का उपयोग करता है: ECHO_REQUEST और ECHO_REPLY IP / ICMP पैकेट ECHO_REPLY से लक्ष्य कंप्यूटर की दूरी को मापने के लिए भेजें।

4.2a BSD UNIX के लिए पिंग लिखने की मेरी प्रारंभिक इच्छा फ़ूजीबॉल LSI-11 सिस्टम में ICMP पैकेट देरी को मापने में अपने काम के बारे में जुलाई 1983 में नॉर्वे में DARPA की बैठक में डेविड मिल्स की लापरवाह टिप्पणी के बाद आई।

सृजन


दिसंबर 1983 में, मुझे बैलिस्टिक अनुसंधान प्रयोगशाला में अजीब नेटवर्क व्यवहार का सामना करना पड़ा। मिल्स की टिप्पणियों को याद करते हुए, मैंने जल्दी से एक पिंग को कोडित किया जिसने एक कच्चा ICMP सॉकेट खोला। समस्याओं के बिना संकलित कोड, लेकिन यह काम नहीं किया - कर्नेल में कच्चे ICMP सॉकेट्स के लिए कोई समर्थन नहीं था! नाराज, मैंने उसे भी कोडित कर दिया, इस तरह सभी को सुबह तक काम करने के लिए मजबूर किया। आश्चर्य नहीं कि चक कैनेडी ने पहले "पिंग" पैकेट भेजने से पहले ही नेटवर्क की समस्याओं को ठीक कर लिया था। हालांकि, बाद में, मैंने कई बार अपने कार्यक्रम का उपयोग किया। * मुस्कराहट * यदि मैं केवल यह जानता था कि यह मेरे जीवन की सबसे बड़ी उपलब्धि होगी, तो मैं इस पर एक दो दिन और काम करूंगा और कुछ विकल्प जोड़ूंगा।

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

PING vapor.arl.army.mil (128.63.240.80): 56 data bytes
64 bytes from 128.63.240.80: icmp_seq=0 time=16 ms
64 bytes from 128.63.240.80: icmp_seq=1 time=9 ms
64 bytes from 128.63.240.80: icmp_seq=2 time=9 ms
64 bytes from 128.63.240.80: icmp_seq=3 time=8 ms
64 bytes from 128.63.240.80: icmp_seq=4 time=8 ms
^C
----vapor.arl.army.mil PING Statistics----
5 packets transmitted, 5 packets received, 0% packet loss
round-trip (ms) min/avg/max = 8/10/16


बनाने के बाद


1993 में, पिंग लिखने के दस साल बाद, USENIX एसोसिएशन ने मुझे बर्कले यूनिवर्सिटी रिसर्च ग्रुप को प्रस्तुत USENIX लाइफटाइम अचीवमेंट अवार्ड के प्राप्तकर्ताओं में से एक घोषित करते हुए एक सुंदर पत्र प्रदान किया। “हमारे समुदाय के लिए एक ठोस बौद्धिक उपलब्धि और अद्वितीय सेवा के साथ सौंपा गया। शोध दल के नेताओं के आदेश से, हम इस प्रकार निम्नलिखित व्यक्तियों और संगठनों को अनुसंधान दल में सहायक और भागीदार के रूप में पहचानते हैं ... " वाह!

वैसे, क्या आप स्रोत देखना चाहते हैं?

मेरी राय में, "पिंग" पैकेट इंटरनेट ग्रॉपर के लिए एक परिचित नहीं है, लेकिन सोनार के साथ एक समानता है। हालांकि किसी ने मुझे बताया कि डेव मिल्स ने इस तरह के स्पष्टीकरण का इस्तेमाल किया, इसलिए शायद हम दोनों सही हैं। धिक्कार है, मुझे लगा कि सरकार स्ट्रेचिंग समोसे कर रही है! :-)

फिल डिक्स्ट्रा ने पिंग में रिकॉर्ड रूट का समर्थन जोड़ा, लेकिन उन दिनों में, कुछ ही राउटरों ने उन्हें संसाधित किया, जिससे यह सुविधा बेकार हो गई। आईपी ​​पैकेट हेडर में दर्ज हॉप्स की संख्या पर सीमा बहुत लंबे मार्गों को ट्रैक करने से रोकती है।

मुझे लॉरेंस बर्कले नेशनल लेबोरेटरी के वान जैकबसन से बहुत जलन हुई, जब उन्होंने ट्रेसरूट लिखने के लिए मेरे कोर ICMP सपोर्ट कोड का इस्तेमाल किया। उसने महसूस किया कि वह IP पैकेट के टीटीएल क्षेत्र को बदलकर ICMP टाइम-टू-लाइव संदेशों को पार कर सकता है। खैर, मैंने ऐसा क्यों नहीं सोचा! :-) बेशक, ट्रेसरआउट वास्तव में यूडीपी डेटाग्राम का उपयोग करता है, क्योंकि राउटर आईसीएमपी संदेशों के जवाब में त्रुटि संदेश उत्पन्न नहीं करना चाहिए।

कहानी


पिंग के बारे में सबसे अच्छी कहानी मुझे USENIX सम्मेलन में बताई गई थी: एक नेटवर्क व्यवस्थापक जिसमें एक समस्या ईथरनेट नेटवर्क एक पिंग संश्लेषण डिवाइस से जुड़ा हुआ है , जो अनिवार्य रूप से निम्नलिखित लिख रहा है:

ping goodhost | sed -e 's/.*/ping/' | vocoder

कार्यालय में वक्ताओं के लिए उन्होंने सिंथेसाइज़र आउटपुट को कनेक्ट करने के बाद वॉल्यूम को सीमा में बदल दिया। कंप्यूटर ने हर पल "पिंग, पिंग, पिंग" चिल्लाना शुरू किया और प्रशासक भवन में प्रत्येक ईथरनेट कनेक्टर की जांच करने के लिए चला गया। उस समय, जब कंप्यूटर चुप था, नेटवर्क में एक टूटना पाया गया था।

संदर्भ:
मूल लेख
कार्यक्रम के लेखक के बारे में

अनुवादक से:
मुझे उल्लिखित संस्थानों के शब्दों और नामों के अनुवाद में अशुद्धि पर टिप्पणी सुनने में खुशी होगी। निकट भविष्य में मैं "दस चीजें मैं नफरत के बारे में वस्तु-उन्मुख प्रोग्रामिंग" लेख का अनुवाद प्रकाशित करने की योजना बना रहा हूं , भविष्य में मैं प्रोग्रामिंग और इसमें शामिल लोगों के बारे में अनुवाद लेख पोस्ट करूंगा।

Source: https://habr.com/ru/post/In169401/


All Articles