چهارشنبه, ۲۶ دی, ۱۴۰۳ / 15 January, 2025
مجله ویستا

واكنش های زنجیره ای در شبكه های كامپیوتری


واكنش های زنجیره ای در شبكه های كامپیوتری

یافتن الگوریتمی جهت جلوگیری از واكنش های زنجیره ای به شكل یك polynomial غیرممكن است اما با تبعیت از روشهای این مقاله, می توان این گونه واكنش های مخرب را در شبكه های كامپیوتری كاهش داد

یافتن الگوریتمی جهت جلوگیری از واكنشهای زنجیره‌ای به شكل یك polynomial غیرممكن است؛ اما با تبعیت از روشهای این مقاله، می‌توان این گونه واكنشهای مخرب را در شبكه‌های كامپیوتری كاهش داد. نه برنامه‌های كامپیوتری همیشه صحیح‌اند و نه سخت افزار كامپیوتر همواره بدون عیب. یك نقص سخت افزاری، به راحتی می تواند كامپیوتری را از كار بیندازد و این موضوع در مورد برنامه‌های نرم افزاری هم صدق می كند.اغلب كامپیوترها، به صورت دوره‌ای از كار می‌افتند و حتی كامپیوترهای با قابلیت اطمینان بالا نیز، گاهی دچار مشكل می شوند. اما اكنون كه كامپیوترها، در شبكه‌های متفاوت قرار گرفته‌اند، خطر احتمال بروز نقص در یكی از كامپیوترهای شبكه، یا وجود نقص در یكی از پروتكلها- كه باعث از كارافتادن كل سیستم شبكه‌ای شود-بیشتر است. بدین ترتیب روشن است كه از كار افتادن كل سیستم در اثر از كار افتادن یك كامپیوتر قابل قبول نیست. در این مقاله از" واكنشهای زنجیره‌ای" برای مشخص كردن این گونه از كار افتادگی در شبكه‌ها بحث می‌شود." واكنش زنجیره‌ای" را فرهنگنامه و بستر (Webster)" سلسله واكنشهای شیمیایی یا هسته‌ای خودجوشی كه در آن محصولات واكنش سبب ادامه روند واكنشها می شوند" تعریف كرده است. این تعریف به غیر از قسمتی از آن كه، تعریف را منحصر به واكنشهای شیمیایی و هسته‌ای كرده است، برای منظور ما كاملا"مناسب است. قابلیت دسترسی هر چه بیشتر به شبكه‌ها سبب به وجود آمدن انواع كاربردها كه محتاج به الگوریتمها و پروتكلهای پیچیده برای پردازش توزیعی در شبكه‌هاست، شده است. این پیچیدگی مضاعف باعث بالا رفتن امكان پیدایش نقص در طراحی شبكه‌ها شده است. هدف اصلی این مقاله، معرفی تعدادی از این نقایص و بحث در مورد جلوگیری از بروز آنهاست.متاسفانه هیچ راهی برای بالا بردن قابلیت اطمینان سیستمهای نرم افزاری وجود ندارد. اما هر چقدر نقاط ضعفها را بهتر تشخیص دهیم، بهتر می توانیم خود را جهت محافظت از كل سیستم مجهز كنیم.این مقاله وضعیتهایی كه منجر به پایین آمدن كل سیستم می شود، مشخص می كند و نقصهای حقیقی را كه در سیستمهای متفاوت اتفاق افتاده اند و دارای شباهتهای زیادی هستند، ارائه می دهد. همچنین در این مقاله، مثالهایی از فروریزی احتمالی سیستمها كه در نتیجه نقصهای جزئی در طراحی آنها وجود داشته، ارائه می گردد. ساختن یك برنامه كامپیوتری كلی، كه بتواند تمام واكنشهای زنجیره ای را بشناسد و از آنها جلوگیری كند همچنانكه در نظریه۱ در این مقاله نشان داده خواهد شد، غیرممكن است؛اما این مقاله، به چند قانون برای كم مردن احتمال وقوع هر گونه نقص در سیستم شبكه‌ای، اشاره خواهد كرد. مقدار زیادی از مطالب آن مثل قصه‌های رایج بین اهل فن است. اما هدف كلی، جمع آوری و یكی كردن یك سری مشاهدات و راه‌حلهای فاقد عمومیت است. عده زیادی معتقدند كه برنامه‌های توزیعی، كلا" می توانند دارای آن چنان نواقص جزئی باشند كه پیدا كردن آنها فوق تا مشكل است. این مقاله، از این درك حمایت می كند؛ اما در ضمن كمك می نماید تا درك نواقص و جلوگیری آنها مشخصتر شود.این موضوع، بویژه اهمیت زیادی دارد، چرا كه شبكه ها هر روز پیچیده‌تر و گسترده‌تر می شوند.

● یك واكنش زنجیره ای در یك"Ethernet"

اولین مثال، شامل یك شبكه محلی است. مسئله، در اثر وجود نقص پروتكل سیستم عامل جدیدی به نام ۴.۳ Unix به وجود آمد. سیستم جدید، روی تعدادیWorkstations به نام Microuaxs نصب شد. این كامپیوترها، توسط یك شبكه محلی Ethernet به یك سری Workstation دیگر كه قبلا" با سیستم عامل قدیمیتر (Unix ۴.۲) به یكدیگر مرتبط بودند، متصل شدند. در این مقاله, به بحث در جزئیات مربوط به كاربرد پروتكلها و قسمتی از شبكه كه دراز كار افتادگی كل آن سهیم بوده است خواهیم پرداخت.

● سابقه

Ethernet یك وسیله داده پراكنی است كه پیغامها را به تمامی مقصدها می‌فرستد. هر كامپیوتر میزبان، دارای یك كنترل‌كننده Ethernet است كه مسوول شناختن پیغامهای آدرس شده، به كامپیوتر میزبان وصل شده به اوست. پیغامهای كه به وسیله كنترل كننده دریافت می شود دو نوع اند:


واكنش های زنجیره ای در شبكه های كامپیوتری

۲) پیغام داده پراكنده به كلیه وسایل روی شبكه.IP- Internet Protocol نام پروتكلی است كه رابطه "بین شبكه‌ای" است و مسوءول دریافت پیغامهای گرفته شده توسط كنترل كننده Ethernet است. IP پروتكل پیچیده‌ای است كه مسوءولیتهای زیادی دارد مخصوصا" كه این پروتكل به پروتكل دیگری به نام ARP یاAddress Resolution Protocol متصل است. ARP كار ترجمه آدرسهای بین شبكه ای، به آدرسهای فیزیكی كامپیوترهای میزبان را، عهده دار می باشد. در واقع، هر پیغام روی شبكه دارای دو آدرس است:

۱) آدرس IP

۲) آدرس ARP

Ethernet پروتكل رابط میانی بین این دو آدرس است. هر دو پروتكلهای IP و APR، پروتكلهای همه منظوره برای شبكه‌های بزرگ‌اند؛ اما از آنها می‌توان در شبكه‌های محلی نیز استفاده كرد.شكل (۱) نشان دهنده رابطه بین كنترل كننده ARP,IP,Ethernet است.

هر پیغام درستی كه روی شبكه فرستاده می شود، دارای یك آدرس صحیحEthernet و یك آدرس صحیح IP است. پیغام توسط كنترل شونده Ethernet ، با آدرس برابر با آدرس پیغام، گرفته می شود و از آنجا ارسال می گردد. IP ابتدا آدرس خود را امتحان می‌كند و در صورت برابری، كاری را كه در پیغام نهفته است، انجام می‌دهد (مانند حوركردن بسته‌های داده‌ها) و پیغام را توسط پروتكلهای دیگر، به كامپیوتر میزبان واگذار می كند. IP همچنین پیغامهای را از كامپیوتر میزبان دریافت می‌نماید و با استفاده از ARP آدرس Ethernet صحیح را پیدا و پیغام را برای آن می‌فرستد.

● فروریزی شبكه بالا

در زیر خواهیم دید كه در اثر واكنش زنجیره‌ای ناشی از ناسازگاری بین دو سیستم عامل۴.۲ Unix Berkeley و Unix ۴.۳ Berkeley در مشخص نمودن پیغامهای داده پراكنی، كل سیستم شبكه فرو می‌ریزد. در سیستم Berkeley Unix ۴.۲ یك پیغام داده پراكنی به وسیله تمام صفر OO..O Unix در كامپیوتر میزبان در آدرس IP مشخص می۰۱۵۷گردد، در صورتی كه با تمام یك مشخص ۱۱.. ۱ در سیستم عامل ۴.۳ كامپیوتر Berkeley می‌شود. یك پیغام داده پراكنی از سیستم عامل مشخص Unix ۴.۳ را در نظر بگیرید كه در آدرس IP میزبان، با تمام یك دریافت شد۱۱..۱ می‌شود. این پیغام توسط IP از نوع ۴.۲ كنترل كننده‌های Ethernet در سیستم ۴.۲ (چون آدرس ۱۱..۱ آدرس را Ethernet آن درست بود) و سپس به OO..O فرستاده شد. اما آدرس IP سیستم ۴.۲ به تمام یك نمی‌شناخت. چرا كه در این سیستم تمام صفر سعی كرد این درست است. در این موقع تصحیح كند. IP اشتباه آشكار را بنابراین، با استفاده از مكانیزمی كه در آن وجود صحیح داشت، از پیدا APR خواست كه آدرس Ethernet را، برای آن آدرس IP كند تا پیغام بدین ترتیب به مقصد اصلی‌اش فرستاده شود. ولی یك ARP هیچ گونه اطلاعی از این آدرس بخصوص نداشت. بنابراین‌های ARP پیغام در خواستی برای كلیه قدرت ARP روی شبكه فرستاد. آیا كسی می‌تواند این آدرس را ترجمه كند؟ به دلیل هیچ آن ARP ترجمه پیغام بخصوص را نداشت، در نتیجه پیغام داده پراكنی مزبور به دور انداخته شد. این اشتباه، نتیجه غیرقابل جبرانی به وجود نیاورد. تعدادی پیغانهای داده پراكنی به مقصدشان نرسیدند. این باعث به وجود آمدن پیغامهای خطا شد كه خود باعث اضافه‌شدن بار شبكه و پروتكلها گردید. بعضی از فرمانهای سیستم عامل كه شبكه، مانند متداول rwho پیغامهای داده شدن تعداد پیغامهای خطا و افزودن بار شبكه شدند. سیستم شبكه ای كه Unix ۴.۲ و Unix ۴.۳ را بهم متصل می‌كرد، در اثر وجود بار زیاد از سرعتش بسیار كاسته شد، لیكن از كار نیفتاد، اما سعی در از بین بردن این نقص، باعث پایین آوردن سیستم گردید. برای كارشناسانی كه كل سیستم را نظارت می‌گردند، اشكال در آدرس IP با تمام یك ۱۱..۱ بود، كه به دلیلی باعث به وجود آمدن درخواستهای متعدد از ها ARP می‌شد. در یك سایت، این راه حل برای مسئله پیدا شد: در جدول یكی از ARP ها، آدرس داده پراكنی Ethernet مترادف با داده پراكنی تمام یك ۱۱..۱ IP قرار داده شد، به این منظور كه درخواست ARP ها بالاخره به آن ARP مخصوص با جدول دستكاری شده خواهد رسید و در آنجا مسئله حل ناسازگاری بین دو سیستم نتیجه ۴.۲ و ۴.۳ خواهدگردید. اما را IP عمل، كاملا" متفاوت بود. برای روشن شدن موضوع، یك پیغام متصل به آن IP از سیستم ۴.۲ در نظر بگیرید كه پیغام سیستم فهمید كه پیغام ۴.۳ را نمی‌شناخت و در نتیجه از ARP در خواست كمك كرد پیغام را با یك.ARP واقعا" یك پیغام داده پراكنی است. اما این IP آدرس داده به وجود IP پراكنی پیغام Ethernet پیغام رد شده خود باعث بدون تغییر IP آمدن مسئله می‌شد. علتش این بود كه آدرس ترجمه شده بود. بنابراین، این پیغام به وسیله بقیه شناخته ۴.۲ های كار ۴.۲ نمی شد. پس مسئله پیشین، دوباره تكرار می‌گشت. پس اگر در سیستم شبكه، تا پیغام K ماشین با سیستمK می كرد هر پیغام داده پراكنی، باعث به وجود آمدن تا پیغام K جدید می شد و هر كدام از آن جدید K تا پیغام به نوبه خود به وجود می‌آورد و غیره. نتیجتا" كل شبكه، از این پیغامها پرشد و تعدادی ماشین از كارافتاد تا كار شناسان سایت مجبور شدند كابلهایی را كه سیستمها را به هم متصل می‌كرد از هم جدا كرده و دوباره ماشینها را به كار بیندازند و كابلها را ببندند.

● حلقه بسته بینهایت"Infinite Loop"

وقتی كه یك استفاده كننده شبكه از ماشینی به ماشینی دیگر رفت، باید كاری كند كه پیغامهای دریافتی را به ماشین جدید منتقل نماید. این كار، با به كار بردن فرمانهای منتقل كننده قابل انجام است. برای مثال، در سیستم عاملUnix شخص می‌تواند آدرس ماشین جدید را در فایلی به نام Forward مشخص كند. قبل از اینكه پیغامی به شخص استفاده كننده ماشین انتقال یابد، این فایل امتحان می‌شود و چنانچه در داخل آن خالی نباشد، پیغام به طور اتوماتیك، به آدرس جدید فرستاده می‌شود. حال وضعیتی را در نظر بگیرید كه، شخص بی احتیاطی در فایلهایForward. دو كامپیوتر مختلف دو آدرس قرار می‌دهد. به عبارت دیگر، او در Forward A ، آدرس ماشین B و در Forward ماشین B آدرس ماشین A را قرار می‌دهد و بدین ترتیب یك سیكل به وجود می‌آورد. پس، یك پیغام فرستاده شده به ماشین A ، از A به B و از B به A در حلقه بسته بی نهایت باقی می‌ماند. عمل این گونه پیغامها، دارای طول عمرند هر بار كه از ماشین، به ماشین دیگر فرستاده می‌شوند، از عمر پیغام كاسته می‌گردد تا اینكه عمر آن تمام می‌شود و قبل از اینكه پیغام از بین برود یك پیغام خطا به وجود می‌آورد.

منابع

(۱ E.C.Rosen "Vulnerabilities of Network Control Protocols" An Example” Computer Comm. Review . July ۱۹۸۱. PP. ۱۰-۱۶.

(۲ R.Perlman ,:An Algorithm for Distributed Computation of a Spanning Tree in an Extended LAN." Proc .Ninth Data Comm. Symp.

(۳ R. Perlman. Vancouver.Canada .۱۹۸۵ pp. ۴۴-۵۳. and G. Varghese. "Pitfalls in the Design of Distributed Rounting Algorithms." Proc.ACM SIG comm. symp. Comm. Architectures ,And Protocols ,ACM New York.۱۹۸۸ .PP. ۴۳-۵۴.

(۴ E.H.Spafford," The Internet Worm : Crisis and Aftermath." Comm. ACM. Vol ۳۲, June ۱۹۸۹, pp. ۶۷۸-۶۸۸.

(۵ J.E.Hopcroft and J.D.Ullman, Introduction to Automata Theory, Languages. and Computation, Addison- Wesley, Reading, Mass., ۱۹۷۹.

(۶ E.Allman. " Sendmail-An Internet work Mail Router," in Unix System Manager۰۳۹;s Manual, ۴.۳ Berkeley Software Distribution. Univ. of California, Berkeley, Apr. ۱۹۸۶.

(۷ R.Perlman," Fault-Tolerant Broadcast of Routing Information," Computer Network. Vol. ۷, ۱۹۸۳, pp. ۳۹۵-۴۰۵.

(۸ D. Comer," Internetworking with TCP/IP: Principles, Protocols, and Architecture". Prentice Hall, Englewood Cliffs, N. J., ۱۹۸۸, pp. ۹۰-۹۱.

[*] Udi Mander. "Chain Reactions in Network ". IEEE computer Magazine, Vol:۲۳, No.۱۰, ۱۹۹۰.pp.۵۷-۶۳.

نوشته: یودی ماندر

ترجمه: مهندس ‌هیربدخطیر‌‌


شما در حال مطالعه صفحه 1 از یک مقاله 4 صفحه ای هستید. لطفا صفحات دیگر این مقاله را نیز مطالعه فرمایید.