بازدید
توجه : به دلایل قانونی لینک دانلود این کتاب برداشته شد و صرفا جهت معرفی است .
اساسا یک شبکه کامپیوتری شامل دو یا بیش از دو کامپیوتر و دیگر قطعات (مانند چاپگرها، اسکنرها، پرینتر، منبع ذخیره سازی و …) که به وسیله یک نوع رسانه انتقال (Transmission media) متصل و با یکدیگر به تبادل اطلاعات داده میپردازند.
ادامه مطلب + دانلود...
بازدید
– 1-1تعریف ویروس
به برنامههای رایانهای که به منظور تخریب ویا سوءاستفاده از ساختار یک رایانه نوشته شود،ویروس رایانهای میگویند. ویروس رایانهای عبارتی است برای یک برنامه ناخواسته مخرب که میتواند روی رایانههامنتشرواجراگردد.
.معمولاًویروسهاتوسط برنامهنویسان برای مقاصد گوناگون نوشته میشوند. اهدافی چون شهرت،انتقام، ایجاد خسارت و یا اهداف اقتصادی میتوانند باعث ایجاد انگیزه در نوشتن ویروس کامپیوتری شوند. برخی از ویروسها بسیار مخرب هستند و برخی تنها جنبه تبلیغاتی دارند.
علت نامگذاری این برنامهها به ویروس به دلیل شباهت نحوه فعالیت آنها با ویروسها در دنیای حقیقی است. ویروس رایانهای را میتوان برنامهای تعریف نمود که میتوان خودش را با استفاده از یک میزبان تکثیر نماید. بنابراین تعریف اگر برنامهای وجود داشته باشد که دارای آثار تخریبی باشد ولی امکان تکثیر نداشته باشد،نمیتوان آن را ویروس نامید.
معمولاً کاربران کامپیوتر به ویژه آنهایی که اطلاعات تخصصی کمتری درباره کامپیوتر دارند،ویروسها را برنامههایی هوشمندوخطرناک میدانند که خود به خود اجرا و تکثیر شده و آثار تخریبی زیادی دارند که باعث از دست رفتن اطلاعات و گاه خراب شدن کامپیوتر میگردند در حالی که طبق آمار تنها پنج درصد ویروسها دارای آثار تخریبی بوده وبقیه صرفاً تکثیر میشوند. بنابراین ویروسهای رایانهای از جنس برنامههای معمولی هستند که توسط ویروسنویسان نوشته شده و سپس به طور ناگهانی توسط یک فایل اجرایی و یا جا گرفتن در ناحیه سیستمی دیسک،فایلها و یا کامپیوترهای دیگر را آلوده میکنند. در این حال پس از اجرای فایل آلوده به ویروس و یا دسترسی به یک دیسک آلوده توسط کاربر دوم، ویروس به صورت مخفی از نسخهای خودش را تولید کرده و به برنامه های دیگر میچسباند و به این ترتیب داستان زندگی ویروس آغاز میشودوهر یک از برنامهها و یا دیسکهای حاوی ویروس، پس ازانتقال به کامپیوترهای دیگر باعث تکثیر نسخههایی از ویروس وآلوده شدن دیگر فایلها و دیسکها میشوند.
بنابراین پس از اندک زمانی در کامپیوترهای موجود در یک کشور و یا حتی در سراسر دنیا منتشر میشوند.از آنجا که ویروسها به طور مخفیانه عمل میکنند، تا زمانی که کشف نشده وامکان پاکسازی آنها فراهم نگردیده باشد، برنامههای بسیاری را آلوده میکنند و از این رو یافتن سازنده و یا منشأ اصلی ویروس مشکل است.
ویروسها هر روز در اینترنت، بیشتروبیشتر میشوند. ولی تعداد شرکتهای آنتی ویروس ثابت است. پس ما باید برای حفاظت از سیستم خود دست به کار شویم. دراین سلسله مقالات سعی داریم که نحوه مقابله با ویروسهاوهمین طور بیوگرافی ویروسهاونحوه مقابله با هر ویروس را آموزش بدهیم.
از نظر مردم عادی به برنامهای که در سیستم عامل اختلالات ایجاد کندویروس است ولی باید بدانید که خود ویروسها بنا به کارها و امکاناتی که دارند تقسیمبندی میشوند.ویروسها مثل سایر برنامهها هستند.کسانیکه ویروس رامینویسندهم ازهمین برنامههای عادی برنامهنویسی استفاده میکند.این برنامهها دقیقاً مثل چاقو میماند که هم میشود استفاده درست کرد هم نادرست.
– 2-1تاریخچه ورود ویروس
۱۹۴۹:
Home
برای اولین بار تئوری برنامههایی که خودشان را جایگزین مینمایند مطرح گردید.
۱۹۸۱: ویروسهای Apple 1 , Apple 2 , Apple 3 از اولین ویروسهایی بودند که پا به عرصه عمومی نهادند.این ویروسها توسط کمپانی Texas A & M برای جلوگیری از کپیهای غیر مجاز بازیهای کامپیوتری نوشته و سپس شایع شدند. این ویروسها ویژه سیستم عامل Apple II بودند.
۱۹۸۳: فرد کوهن (Fred Cohen) زمانی که روی رساله دکترایش کار میکرد، رسماً یک ویروس کامپیوتری را چنین تعریف نمود: «یک برنامه کامپیوتری که میتواند روی سایر برنامههای کامپیوتری از طریق تغییر دادن آنها به روشی (شاید) مانند کپی کردن خودش روی آنها، تأثیر بگذارد».
۱۹۸۶: دو برادر برنامهنویس پاکستانی به نامهای «بسیط» و «امجد» کد قابل اجرای موجود در بوت سکتور یک فلاپی دیسک را با خودشان (که برای آلوده نمودن فلاپی دیسکهای ۳۶۰KB نوشته بودند) جایگزین کردند. تمام فلاپیهای آلوده دارای برچسب «Brain» بودند.بنابراین، این ویروس «Brain» یا «مغز پاکستانی» نام گرفت. همزمان در کشور اتریش برنامهنویسی به نام رالف برگر «Ralf Burger» دریافت که یک برنامه میتواند از طریق چسباندن خودش به انتهای یک برنامه دیگر تکثیر شود،او با استفاده از این ایده برنامهای به نام Virdem نوشت که پدیده فوق را شبیهسازی مینمود. پس از آن برگر Virdem را در کنفرانسی به همه معرفی نمود. برگر همچنین کتابی درباره ویروسهای کامپیوتری نوشت ودرآن سورس ویروس به نام Vienna را چاپ کرد که این مسأله بعداً باعث سوءاستفاده بسیاری از افراد گردید.
۱۹۸۷: یک برنامهنویس آلمانی ویروسی به نام Cascade نوشت.این ویروس، اولین ویروسی بود که روش رمز کردن (Encryption) را به کار میبرد. در این روش بیشتر کد ویروس به غیر از چند بایت از آن به صورت رمز شده در میآید و از آن چند بایت بعداً برای رمزگشایی بقیه کد ویروس استفاده میشود. در این صورت تشخیص ویروس برای آنتی ویروسها بسیار مشکلتر میباشد و دیگر رشته تشخیص ویروس (که در آنتی ویروسها به کار میرود) به چند بایت محدود نمیشود.
بعدها برنامهنویسی به نام مارک واشبرن «Mark Washburn» با استفاده از این ایده و سورس ویروس Vienna اولین ویروس هزار چهره (Polymorphic) به نام «1260» را نوشت.
۱۹۸۸: ویروس Jerusalem منتشر شدوبه یکی از شایعترین ویروسها تبدیل گشت.این ویروس درروزهای جمعهای که مصادف با سیزدهم هر ماه بودند فعال میشدوضمن آلوده نمودن فایلهای Com , Exe، هر برنامهای که در آن روز اجرا میشد را نیز پاک مینمود.
۱۹۸۹: در ماه مارچ مهمترین موضوع ویروسی، خبری بود که حکایت از فعال شدن ویروسی به نام Datacrime در ماه آوریل داشت.اما پس از بررسی سورس کد ویروس معلوم شد که این ویروس در هر تاریخی پس از روز سیزدهم اکتبر فعال شده واقدام به فرمت کردن سیلندر صفر هارد دیسک مینماید. بدین ترتیب کاربران تمامی محتوای هارد دیسکشان را از دست میدهند. ویروس Datacrime به احتمال زیاد در کشور هلند نوشته شده بود ولی آمریکاییها اسم آن را ویروس Columbus Day گذاشتندواعتقاد داشتند که توسط تروریستهای نروژی نوشته شده است. در این سال این ویروس علیرغم سر و صدای زیادش، خسارتهای چندانی به بار نیاورد. در این سال همچنین ویروسنویسان بلغاری و روسی وارد عرصه ویروسنویسی شدند.
۱۹۹۰: مارک واشبرن «Mark Washburn» ابتدا ویروس هزار چهره ۱۲۶۰ و سپس بر همان اساس ویروسهای V2P1 , V2P2 V2P6 را نوشت وسورس کد آنها را منتشر نمود، هر چند که بعداً ویروسنویسان این کدها را به کار نبردند و حتی این ویروسها خطر چندانی هم نداشتند ولی ایده موجود در آنها الهامبخش بسیاری از ویروسنویسان شد.
از طرف دیگر در بلغارستان ویروسنویس ماهری با نام مستعار Dark Avenger چند ویروس خطرناک به نامهای DarkAvernger- 1800 , Number of the Beast , Nomenklaturaرانوشت. ویروسهای وی دارای دو ویژگی مهم«آلودهسازی سریع» و «صدمه زدن زیرکانه» بودند. Dark Avenger به صورت فعالانهای از طریق آلوده نمودن برنامههای Shareware وارسال آنهااقدام به پخش ویروسهایش نیز مینمود. همچنین در این سال کمپانی Symantec نیز آنتی ویروس Norton را به بازار عرضه نمود.
۱۹۹۱: سر و کله ویروس Tequila از کشور سوئیس پیدا شد. این ویروس، ویروس هزار چهره کاملتری بود که پا به عرصه عمومی گذاشت و بسیار شایع شد. پس از آن نوبت انتشار ویروس هزار چهره دیگری به نام Amoeba از کشور مالت رسید. تشخیص ویروسهای هزارچهره به دلیل اینکه پس از هر بار آلودهسازی ظاهرشان را تغییر میدهند، برای اسکنرهای ویروس بسیار سختتر میباشد.
Dark Avenger هم درانتهای این سال موتور خود تغییر دهنده «MtE» را ابداع کرد که میتوانست چهار میلیارد شکل مختلف به خود بگیرد و با پیوند زدن آن به هر ویروسی، یک ویروس کاملاً چند شکلی پدید میآمد. وی سپس با استفاده از MtE ویروسهای Dedicated , Commander Bomber را به دو سبک کاملاً متفاوت نوشت.
۱۹۹۲: تعداد ویروسها به هزار و سیصد عدد رسید که در مقایسه با ماه دسامبر سال ۱۹۹۰ چهارصد و بیست درصد افزایش یافته بود. همچنین در این سال پیشبینی شد که خطر ناشی از انتشار ویروس «میکلآنژ» پنج میلیون کامپیوتر را تهدید به نابودی خواهد کرد، که البته این رقم در عمل به بیش از ده هزار تا نرسید. علاوه بر اینها ویروس هزار چهره جدیدی با نام Starship پا به میدان نهاد، نرمافزارهای تولید ویروس توسط دو ویروسنویس با نامهای مستعار Nowhere Man , Dark Angel نوشته شدندودرانگلستان نیز گروه ویروسنویسی ARCV تأسیس شد.
۱۹۹۳-۱۹۹۴: گروه ویروسنویسی جدیدی به نام Tridend در کشور هلند فعالیت خود را آغاز نمود و موتور جدیدی به نام TPE را عرضه کرد، سپس اعضای آن با استفاده از انواع مختلف TPE، ویروسهای، Girafe Cruncher، Bosnia را نوشتند. در آمریکا هم Dark Angel به کمک موتور ابداعیاش موسوم به DAME ویروس Trigger را نوشت.
۱۹۹۵: Concept اولین ویروس ماکرو، نوشته شد. این ویروس اسناد نرمافزار Microsoft Word را مورد حمله قرار میداد.
۱۹۹۶: در استرالیا گروهی از ویروسنویسان به نام VLAD اولین ویروس ویژه سیستم عامل ویندوز موسوم به Bonz و همچنین اولین ویروس سیستم عامل لینوکس موسوم به Staog را نوشتند. علاوه بر اینها اولین ویروس ماکروی نرمافزار Microsoft Excel به نام Laroux نیز در این سال نوشته شد.
ویروس Strange Brew، اولین ویروسی که فایلهای جاوا را آلوده میکرد، نوشته شد. این ویروس با کپی کردن خودش در میان کد فایلهای Class و عوض نمودن نقطه شروع اجرای این فایلها با نقطه شروع کد ویروسی اقدام به تغییر دادن فایلهای Class مینمود. همچنین Back Orifice اولین اسب تراوایی که امکان دسترسی از راه دور به سایر سیستمها را در اینترنت فراهم مینمود، نوشته شد و کمکم مقدمات ظهور ویروسهای ماکروی نرمافزار Microsoft Access نیز فراهم میگردید.
۱۹۹۹: ویروس «ملیسا» از طریق اجرا نمودن ماکرویی که در اسناد ضمیمه شده به نامههای الکترونیکی موجود بود، صدمه زدن به سیستمها را آغاز نمود. این ویروس همچنین برای گسترش خود از دفترچه آدرس نرمافزار Outlook استفاده میکرد و ضمیمههای آلوده را برای ۵۰ نفر دیگر ارسال مینمود. ویروس «ملیسا» سریعتر از تمامی ویروسهای قبلی منتشر گردید. در این سال همچنین ویروس Corner اولین ویروسی که میتوانست فایلهای برنامه MS Project را آلوده سازد، نیز نوشته شد. علاوه براین، نوآوریهای دیگری هم در دنیای ویروسنویسان صورت گرفت که از بین آنها میتوان به نوشته شدن ویروس Tristate که اولین ویروس ماکروی چند برنامهای بود و میتوانست فایلهای سه برنامه از برنامههای مایکروسافت (ورد، اکسل و پاور پوینت) را آلوده کند و همچنین نوشته شدن کرم Bubbleboy اشاره نمود.
این کرم هم اولین کرمی بود که وقتی کاربر نامه ساده و بدون ضمیمهای را در نرمافزار Outlook Express باز و یا آن را پریویو مینمود، فعال میگردید. حتی بدون اینکه ضمیمهای به همراه نامه باشد، این کرم برای اثبات یک روش جدید نوشته شده بود و بعداً ویروس Kak از این روش بهره گرفت و به صورت گستردهای شایع شد.
۲۰۰۰: ویروس I Love You درست مانند ویروس «ملیسا» به وسیله نرمافزار Outlook در سراسر دنیا پخش گردید. اما این ویروس از نوع اسکریپت ویژوال بیسیک بود که به صورت ضمیمه نامه الکترونیکی ارسال میشد. ویروس I Love You فایلهای کاربر را پاک میکرد و حتی به برخی از فایلهای تصویری و موسیقی نیز رحم نمیکرد. علاوه بر این، ویروس اسم کاربر و رمز عبور وی را میدزدید و برای نویسندهاش میفرستاد.
در این سال همچنین ویروسهای Resume (که شبیه ویروس «ملیسا» بود) و Stages (که از روش پسوند دروغین بهره میگرفت) نیز ظهور کردند. در ماه ژوئن این سال و در کشور اسپانیا کرم Timofonica از نوع اسکریپت ویژوال بیسیک اولین حمله به سیستمهای مخابراتی را آغاز نمود و در ماه نوامبر نیز اولین ویروس نوشته شده به زبان PHP ظاهر شد، این ویروس که Pirus نام گرفت، خودش را به فایلهای PHP , HTML اضافه مینمود.
۲۰۰۱: ویروس Anna Kournikova در پوشش تصویر ستاره تنیس، «آنا کورنیکووا» و با روش انتشاری مشابه ویروسهای «ملیسا» و «I love You» ظاهر شد. در ماه می این سال هم ویروس Home Page به حدود ده هزار نفر از کاربران نرمافزار Outlook آسیب رساند. در ماه جولای و آگوست نیز کرمهای CodeRed I ، Code Red II به شبکههای کامپیوتری حمله نمودند.
تعداد کامپیوترهای آلوده حدود هفتصد هزار دستگاه و خسارت وارده به سیستمها بالغ بر دو میلیارد دلار برآورد گردید.
حادثه مهم دیگری که در این سال به وقوع پیوست، نوشته شدن ویروس Winux یا Lindose در کشور جمهوری چک توسط Benny از اعضای گروه ۲۹A بود که قابلیت آلودهسازی هر دو سیستم عامل ویندوز و لینوکس را با هم داشت.
در این سال همچنین ویروس LogoLogic-A و ویروس PeachyPDF-A (اولین ویروسی که برای پخش شدن از نرمافزار کمپانی Adobe ویژه فایلهای PDF استفاده میکرد) نیز پا به عرصه حیات گذاشتند. ولی بدون شک اهمیت هیچ یک از این ویروسها به اندازه کرم Nimda نبود، این کرم که در ماه سپتامبر ظاهر شد، از تکنیکهای برتر سایر ویروسهای مهم به صورت همزمان استفاده مینمود. بنابراین توانست تا بسیار سریع گسترش یابد.
از ویروسهای خطرناک و خبرساز دیگر این سال نیز میتوان به ویروسهای Sircam , BanTrans اشاره کرد.
۲۰۰۲: ابتدا در ماه ژانویه شاهد ظهور اولین ویروس آلوده کننده فایلهای با پسوند SWF بودیم که LFM-926 نام داشت. این ویروس یک اسکریپت دیباگ (که میتوانست یک فایل COM ساخته و به وسیله آن سایر فایلهای با پسوند SWF را آلوده نماید) رها میکرد. پس از آن کرم Donut به عنوان اولین کرمی که به سرویسهای NET. توجه داشت، توسط Benny نوشته شد و سپس در ماه مارچ اولین کرمی که مختص سرویسهای NET. بود وارد عرصه شد. این کرم توسط یک دختر جوان بلژیکی با نام مستعار Gigabite و به زبانC# نوشته شد. در ماه می این سال نیز Benjamin ظاهر شد. این ویروس از آن جهت مورد توجه قرار گرفت که برای گسترش از شبکه KaZaa peer-to-peer استفاده مینمود.
در ماه ژوئن ویروس Perrun برای اثبات فرضیه «امکان آلودهسازی فایلهای تصویری با پسوند JPEG توسط ویروسها»، نوشته شد که این مسأله تا قبل از این غیر ممکن مینمود. در این ماه کرم Scalper که وب سرورهای Apache را مورد حمله قرار میداد و از آنها برای طغیان شبکه سوء استفاده میکرد نیز شناسایی گردید.
ادامه مطلب + دانلود...
بازدید
تاریخچه DNS
DNS ، زمانی که اینترنت تا به این اندازه گسترش پیدا نکرده بود و صرفا در حد و اندازه یک شبکه کوچک بود، استفاده میگردید. در آن زمان ، اسامیکامپیوترهای میزبان به صورت دستی در فایلی با نام HOSTS درج میگردید . فایل فوق بر روی یک سرویس دهنده مرکزی قرار میگرفت . هر سایت و یا کامپیوتر که نیازمند ترجمه اسامیکامپیوترهای میزبان بود ، میبایست از فایل فوق استفاده مینمود. همزمان با گسترش اینترنت و افزایش تعداد کامپیوترهای میزبان ، حجم فایل فوق نیز افزایش و امکان استفاده از آن با مشکل مواجه گردید ( افزایش ترافیک شبکه ). با توجه به مسائل فوق، در سال ۱۹۸۴ تکنولوژی DNS معرفی گردید .
پروتکل DNS
DNS ، یک بانک اطلاعاتی توزیع شده است که بر روی ماشینهای متعددی مستقر میشود ( مشابه ریشههای یک درخت که از ریشه اصلی انشعاب میشوند) . امروزه اکثر شرکتها و موسسات دارای یک سرویس دهنده DNS کوچک در سازمان خود میباشند تا این اطمینان ایجاد گردد که کامپیوترها بدون بروز هیچگونه مشکلی، یکدیگر را پیدا مینمایند . در صورتی که از ویندوز ۲۰۰۰ و اکتیو دایرکتوری استفاده مینمائید، قطعا از DNS به منظور ترجمه اسامیکامپیوترها به آدرسهای IP ، استفاده میشود . شرکت مایکروسافت در ابتدا نسخه اختصاصی سرویس دهنده DNS خود را با نام ( WINS ( Windows Internet Name Service طراحی و پیاده سازی نمود . سرویس دهنده فوق مبتنی بر تکنولوژیهای قدیمیبود و از پروتکلهایی استفاده میگردید که هرگز دارای کارایی مشابه DNS نبودند. بنابراین طبیعی بود که شرکت مایکروسافت از WINS فاصله گرفته و به سمت DNS حرکت کند .
از پروتکل DNS در مواردی که کامپیوتر شما اقدام به ارسال یک درخواست مبتنی بر DNS برای یک سرویس دهنده نام به منظور یافتن آدرس Domain مینماید ، استفاده میشود .مثلا در صورتی که در مرورگر خود آدرس www.srco.ir را تایپ نمائید ، یک درخواست مبتنی بر DNS از کامپیوتر شما و به مقصد یک سرویس دهنده DNS صادر میشود . ماموریت درخواست ارسالی ، یافتن آدرس IP وب سایت سخاروش است.
پروتکل DNS و مدل مرجع OSI
پروتکل DNS معمولا از پروتکل UDP به منظور حمل داده استفاده مینماید . پروتکل UDP نسبت به TCP دارای overhead کمتری میباشد. هر اندازه overhead یک پروتکل کمتر باشد ، سرعت آن بیشتر خواهد بود. در مواردی که حمل داده با استفاده از پروتکل UDP با مشکل و یا بهتر بگوئیم خطاء مواجه گردد ، پروتکل DNS از پروتکل TCP به منظور حمل داده استفاده نموده تا این اطمینان ایجاد گردد که داده بدرستی و بدون بروز خطاء به مقصد خواهد رسید .
فرآیند ارسال یک درخواست DNS و دریافت پاسخ آن ، متناسب با نوع سیستم عامل نصب شده بر روی یک کامپیوتر است .برخی از سیستمهای عامل اجازه استفاده از پروتکل TCP برای DNS را نداده و صرفا میبایست از پروتکل UDP به منظور حمل داده استفاده شود . بدیهی است در چنین مواردی همواره این احتمال وجود خواهد داشت که با خطاهایی مواجه شده و عملا امکان ترجمه نام یک کامپیوتر و یا Domain به آدرس IP وجود نداشته باشد. پروتکل DNS از پورت ۵۳ به منظور ارائه خدمات خود استفاده مینماید. بنابراین یک سرویس دهنده DNS به پورت ۵۳ گوش داده و این انتظار را خواهد داشت که هر سرویس گیرندهای که تمایل به استفاده از سرویس فوق را دارد از پورت مشابه استفاده نماید . در برخی موارد ممکن است مجبور شویم از پورت دیگری استفاده نمائیم . وضعیت فوق به سیستم عامل و سرویس دهنده DNS نصب شده بر روی یک کامپیوتر بستگی دارد.
DNS
DNS مسئولیت حل مشکل اسامی کامپیوترها ( ترجمه نام به آدرس ) در یک شبکه و مسائل مرتبط با برنامه های Winsock را بر عهده دارد. به منظور شناخت برخی از مفاهیم کلیدی و اساسی DNS ، لازم است که سیستم فوق را با سیستم دیگر نامگذاری در شبکه های مایکروسافت(NetBIOS ) مقایسه نمائیم .
قبل از عرضه ویندوز ۲۰۰۰ تمامی شبکه های مایکروسافت از مدل NetBIOS برای نامگذاری ماشین ها و سرویس ها ی موجود بر روی شبکه استفاده می کردند. NetBIOS در سال ۱۹۸۳ به سفارش شرکت IBM طراحی گردید. پروتکل فوق در ابتدا بعنوان پروتکلی در سطح لایه ” حمل ” ایفای وظیفه می کرد.در ادامه مجموعه دستورات NetBIOS بعنوان یک اینترفیس مربوط به لایه Session نیز مطرح تا از این طریق امکان ارتباط با سایر پروتکل ها نیز فراهم گردد. NetBEUI مهمترین و رایج ترین نسخه پیاده سازی شده در این زمینه است . NetBIOS برای شیکه های کوچک محلی با یک سگمنت طراحی شده است . پروتکل فوق بصورت Broadcast Base است . سرویس گیرندگان NetBIOS می توانند سایر سرویس گیرندگان موجود در شبکه را از طریق ارسال پیامهای Broadcast به منظور شناخت و آگاهی از آدرس سخت افزاری کامپیوترهای مقصد پیدا نمایند. شکل زیر نحوه عملکرد پروتکل فوق در یک شبکه و آگاهی از آدرس سخت افزاری یک کامپیوتر را نشان می دهد. کامپیوتر ds2000 قصد ارسال اطلاعات به کامپیوتری با نام Exeter را دارد. یک پیام Broadcast برای تمامی کامپیوترهای موجود در سگمنت ارسال خواهد شد. تمامی کامپیوترهای موجود در سگمنت مکلف به بررسی پیام می باشند. کامپیوتر Exeter پس از دریافت پیام ،آدرس MAC خود را برای کامپیوتر ds2000 ارسال می نماید.
همانگونه که اشاره گردید استفاده از پروتکل فوق برای برطرف مشکل اسامی ( ترجمه نام یک کامپیوتر به آدرس فیزیکی و سخت افزاری ) صرفا” برای شبکه های محلی با ابعاد کوچک توصیه شده و در شبکه های بزرگ نظیر شبکه های اترنت با ماهیت Broadcast Based با مشکلات عدیده ای مواجه خواهیم شد.در ادامه به برخی از این مشکلات اشاره شده است .
• بموازات افزایش تعداد کامپیوترهای موجود در شبکه ترافیک انتشار بسته های اطلاعاتی بشدت افزایش خواهد یافت .
• پروتکل های مبتنی بر NetBIOS ( نظیر NetBEUI) دارای مکانیزمهای لازم برای روتینگ نبوده و دستورالعمل های مربوط به روتینگ در مشخصه فریم بسته های اطلاعاتی NetBIOS تعریف نشده است .
• در صورتی که امکانی فراهم گردد که قابلیت روتینگ به پیامهای NetBIOS داده شود ( نظیر Overlay نمودن NetBIOS بر روی پروتکل دیگر با قابلیت روتینگ ، روترها بصورت پیش فرض بسته های NetBIOS را منتشر نخواهند کرد. ماهیت BroadCast بودن پروتکل NetBIOS یکی از دو فاکتور مهم در رابطه با محدودیت های پروتکل فوق خصوصا” در شبکه های بزرگ است . فاکتور دوم ، ساختار در نظر گرفته شده برای نحوه نامگذاری است . ساختار نامگذاری در پروتکل فوق بصورت مسطح (Flat) است .
Flat NetBios NameSpace
به منظور شناخت و درک ملموس مشکل نامگذاری مسطح در NetBIOS لازم است که در ابتدا مثال هائی در این زمینه ذکر گردد. فرض کنید هر شخص در دنیا دارای یک نام بوده و صرفا” از طریق همان نام شناخته گردد. در چنین وضعیتی اداره راهنمائی و رانندگی اقدام به صدور گواهینمامه رانندگی می نماید. هر راننده دارای یک شماره سریال خواهد شد. در صورتی که از اداره فوق سوالاتی نظیر سوالات ذیل مطرح گردد قطعا” پاسخگوئی به آنها بسادگی میسر نخواهد شد.
• چند نفر با نام احمد دارای گواهینامه هستند؟
• چند نفر با نام رضا دارای گواهینامه هستند؟
در چنین حالی اگر افسر اداره راهنمائی و رانندگی راننده ای را بخاطر تخلف متوقف نموده و از مرکز و بر اساس نام وی استعلام نماید که آیا ” راننده ای با نام احمد قبلا” نیز مرتکب تخلف شده است یا خیر ؟” در صورتی که از طرف مرکز به وی پاسخ مثبت داده شود افسر مربوطه هیچگونه اطمینانی نخواهد داشت که راننده در مقابل آن همان احمد متخلف است که قبلا” نیز تخلف داشته است .
یکی از روش های حل مشکل فوق، ایجاد سیستمی است که مسئولیت آن ارائه نام بصورت انحصاری و غیرتکراری برای تمامی افراد در سطح دنیا باشد. در چنین وضعیتی افسر اداره راهنمائی و رانندگی در برخورد با افراد متخلف دچار مشکل نشده و همواره این اطمینان وجود خواهد داشت که اسامی بصورت منحصر بفرد استفاده شده است . در چنین سیستمی چه افراد و یا سازمانهائی مسئله عدم تکرار اسامی را کنترل و این اطمینان را بوجود خواهند آورند که اسامی بصورت تکراری در سطح دنیا وجود نخواهد داشت؟. بهرحال ساختار سیستم نامگذاری می بایست بگونه ای باشد که این اطمینان را بوجود آورد که نام انتخاب شده قبلا” در اختیار دیگری قرار داده نشده است . در عمل پیاده سازی اینچنین سیستم هائی غیر ممکن است.مثال فوق محدودیت نامگذاری بصورت مسطح را نشان می دهد.
سیستم نامگذاری بر اساس NetBIOS بصورت مسطح بوده و این بدان معنی است که هر کامپیوتر بر روی شبکه می بایست دارای یک نام متمایز از دیگران باشد. در صورتی که دو کامپیوتر موجود بر روی شبکه های مبتنی بر NetBIOS دارای اسامی یکسانی باشند پیامهای ارسالی از یک کامپیوتر به کامپیوتر دیگر که دارای چندین نمونه ( نام تکراری ) در شبکه است، می تواند باعث بروز مشکلات در شبکه و عدم رسیدن پیام ارسال شده به مقصد درست خود باشد.
اینترفیس های NetBIOS و WinSock
DNS مسائل فوق را بسادگی برطرف نموده است . سیستم فوق از یک مدل سلسله مراتبی برای نامگذاری استفاده کرده است . قبل از پرداختن به نحوه عملکرد و جزئیات سیستم DNS لازم است در ابتدا با نحوه دستیابی برنامه ها به پروتکل های شبکه و خصوصا” نحوه ارتباط آنها با پروتکل TCP/IP آشنا شویم .
برنامه های با قابلیت اجراء بر روی شبکه هائی با سیستم های عامل مایکروسافت، با استفاده از دو روش متفاوت با پروتکل TCP/IP مرتبط می گردنند.
• اینترفیس سوکت های ویندوز (WinSock)
• اینترفیس NetBIOS
اینترفیس های فوق یکی از مسائل اساسی در نامگذاری و ترجمه اسامی در شبکه های مبتنی بر TCP/IP را به چالش می کشانند.برنامه های نوشته شده که از اینترفیس NetBIOS استفاده می نمایند از نام کامپیوتر مقصد بعنوان ” نقطه آخر” برای ارتباطات استفاده می نمایند در چنین مواردی برنامه های NetBIOS صرفا” مراقبت های لازم را در خصوص نام کامپیوتر مقصد به منظور ایجاد یک session انجام خواهند داد. در حالیکه پروتکل های TCP/IP )IP,TCP) هیچگونه آگاهی از اسامی کامپیوترهای NetBIOS نداشته و در تمامی موارد مراقبت های لازم را انجام نخواهند داد.
به منظور حل مشکل فوق( برنامه هائی که از NetBIOS بکمک اینترفیس NetBIOS با پروتکل TCP/IP مرتبط خواهند شد) از اینترفیس netBT و یا NetBIOS over TCP/IP استفاده می نمایند. زمانیکه درخواستی برای دستیابی به یک منبع در شبکه از طریق یک برنامه با اینترفیس NetBIOS ارائه می گردد و به لایه Application می رسد از طریق اینترفیس NetBT با آن مرتبط خواهد شد.در این مرحله نام NetBIOS ترجمه و به یک IP تبدیل خواهد شد. زمانیکه نام NetBIOS کامپیوتر به یک آدرس فیزیکی ترجمه می گردد درخواست مربوطه می تواند لایه های زیرین پروتکل TCP/IP را طی تا وظایف محوله دنبال گردد. شکل زیر نحوه انجام عملیات فوق را نشان می دهد.
اینترفیس Winsock
اغلب برنامه هائی که براساس پروتکل TCP/IP نوشته می گردنند، از اینترفیس Winsock استفاده می نمایند. این نوع برنامه ها نیازمند آگاهی از نام کامپیوتر مقصد برای ارتباط نبوده و با آگاهی از آدرس IP کامپیوتر مقصد قادر به ایجاد یک ارتباط خواهند بود.
کامپیوترها جهت کار با اعداد ( خصوصا” IP ) دارای مسائل و مشکلات بسیار ناچیزی می باشند.در صورتی که انسان در این رابطه دارای مشکلات خاص خود است . قطعا” بخاطر سپردن اعداد بزرگ و طولانی برای هر شخص کار مشکلی خواهد بود. هر یک از ما طی روز به وب سایت های متعددی مراجعه و صرفا” با تایپ آدرس مربوطه که بصورت یک نام خاص است (www.test.com) از امکانات سایت مربوطه بهره مند می گردیم. آیا طی این نوع ملاقات ها ما نیازمند آگاهی از آدرس IP سایت مربوطه بوده ایم؟ بهرحال بخاطر سپردن اسامی کامپیوترها بمراتب راحت تر از بخاطر سپردن اعداد ( کد ) است . از آنجائیکه برنامه های Winsock نیازمند آگاهی از نام کامپیوتر و یا Host Name نمی باشند می توان با رعایت تمامی مسائل جانبی از روش فوق برای ترجمه اسامی استفاده کرد. فرآیند فوق را ترجمه اسامی (Host Name Resoulation) می گویند.
موارد اختلاف بین NetBIOS و WinSock
برنامه های مبتنی بر NetBIOS می بایست قبل از ایجاد ارتباط با یک کامپیوتر، نام NetBIOS را به یک IP ترجمه نمایند.( قبل از ایجاد ارتباط نام NetBIOS به IP تبدیل خواهد شد.) در برنامه های مبتنی بر WinSock می توان از نام کامپیوتر (Host name) در مقابل IP استفاده کرد.
ادامه مطلب + دانلود...