توضیحات کامل :

مفاهیم شبكه


مروری بر مفاهیم شبكه:

برای تحلیل و فهم روشهائی كه یك نفوذگر با بكارگیری آنها با شبكه حمله می كند، باید یك دانش پایه از تكنولوژی شبكه داشته باشیم. درك مكانیزم حملات ممكن نیست مگر آنكه حداقل اصول TCP/IP را بدانیم.

عاملی كه تمام شبكه های مختلف را به صورت موفقیت آمیز به هم پیوند زده است، تبعیت همه آنها از مجموعه پروتكلی است كه تحت عنوان TCP/IP در دنیا شناخته می شود. دقت كنید كه عبارت خلاصه شده TCP/IP می تواند به دو موضوع متفاوت اشاره داشته باشد:

مدل TCP/IP: این مدل یك ساختار چهار لایه ای برای ارتباطات گسترده تعریف می نماید كه آنرا در ادامه بررسی می كنیم.

پشتة پروتكلهای TCP/IP:[1] پشتة TCP/IP مجموعه ای شامل بیش از صد پروتكل متفاوت است كه برای سازماندهی كلیه اجزاء شبكة اینترنت به كار می رود.

TCP/IP بهترین پروتكل شبكه بندی دنیا نیست! پروتكلهای بهینه تر از آن هم وجود دارند؛ ولیكن فراگیرترین و محبوبترین تكنولوژی شبكه بندی در دنیای كامپیوتر محسوب می شود. شاید بزرگترین حسن TCP/IP آن باشد كه بدون پیچیدگی زیاد، بخوبی كار می كند! اینترنت بر اساس TCP/IP بنا شده و بیشتر حملات نیز مبتنی بر مجموعة پروتكلهای TCP/IP هستند.

طراحی شبكه ها و اصول لایه بندی

برای طراحی یك شبكة‌ كامپیوتری،‌‌ مسائل و مشكلات بسیار گسرتده و متنوعی وجود دارد كه باید به نحوی حل شود تا بتوان یك ارتباط مطمئن و قابل اعتماد بین دو ماشین در شبكه برقرار كرد. این مسائل و مشكلات همگی از یك سنخ نیستند و منشأ و راه حل مشابه نیز ندارند؛ بخشی از آنها توسط سخت افزار و بخش دیگر با تكنیكهای نرم افزاری قابل حل هستند. به عنوان مثال نیاز برای ارتباط بی سیم بین چند ایستگاه در شبكه، طراح شبكه را مجبور به استفاده از مدولاسیون آنالوگ در سخت افزار مخابراتی خواهد كرد ولی مسئلة هماهنگی در ارسال بسته ها از مبدأ به مقصد یا شماره گیری بسته ها برای بازسازی پیام و اطمینان از رسیدن یك بسته، با استفاده از تكنیكهای نرم افزازی قابل حل است. بهمین دلیل برای طراحی شبكه های كامپیوتری، باید مسائل و مشكلاتی كه برای برقراری یك ارتباط مطمئن،‌ ساده و شفاف بین دو ماشین در شبكه وجود دارد،‌ دسته بندی شده و راه حلهای استاندارد برای آنها ارائه می شود. در زیربخشی از مسائل طراحی شبكه ها عنوان شده است:

اولین موضوع چگونگی ارسال و دریافت بیتهای اطلاعات بصورت یك سیگنال الكتریكی، الكترومغناطیسی یا نوری است، بسته به اینكه آیا كانال نتقال سیم مسی، فیبرنوری، كانال ماهواره ای یا خطوط مایكروویو است. بنابراین تبدیل بیتها به یك سیگنال متناسب با كانال انتقال یكی از مسائل اولیة شبكه به شمار می رود.

مساله دوم ماهیت انتقال است كه می تواند به یكی از سه صورت زیر باشد:

Simplex: ارتباط یك طرفه (یك طرف همیشه گیرنده و طرف دیگر همیشه فرستنده).

Half Duplex: ارتباط دو طرفة غیرهمزمان (هر دو ماشین هم می توانند فرستنده یا گیرنده باشند ولی نه بصورت همزمان، بلكه یكی از طرفین ابتدا ارسال می كند، سپس ساكت می شود تا طرف مقابل ارسال داشته باشد)

Full Duplex: ارتباط دو طرفه همزمان (مانند خطوط مایكروویو)

مساله سوم مسئله خطا و وجود نویز روی كانالهای ارتباطی است بدین معنا كه ممكن است در حین ارسال داده ها بر روی كانال فیزیكی تعدادی از بیتها دچار خرابی شود؛ چنین وضعیتی كه قابل اجتناب نیست باید تشخیص داده شد و داده های فاقد اعتبار دو ریخته شود مبدأ آنها را از نو ارسال كند.

با توجه به اینكه در شبكه ها ممكن است مسیرهای گوناگونی بین مبدأ و مقصد وجود داشته باشد؛ بنابراین پیدا كرن بهترین مسیر و هدایت بسته ها، از مسائل طراحی شبكه محسوب می شود. در ضمن ممكن است یك پیام بزرگ به واحدهای كوچكتری تقسیم شده و از مسیرهای مختلفی به مقصد برسد بنابراین بازسازی پیام از دیگر مسائل شبكه به شمار می آید.

ممكن است گیرنده به دلایلی نتواند با سرعتی كه فرستنده بسته های یك پیام را ارسال می كند آنها را دریافت كند، بنابراین طراحی مكانیزمهای حفظ هماهنگی بین مبدأ و مقصد از دیگر مسائل شبكه است.

چون ماشینهای فرستنده و گیرندة متعددی در یك شبكه وجود دارد مسائلی مثل ازدحام، تداخل و تصادم در شبكه ها بوجود می آید كه این مشكلات بهمراه مسائل دیگر باید در سخت افزاز و نرم افزار شبكه حل شود.

طراح یك شبكه باید تمام مسائل شبكه را تجزیه و تحلیل كرده و برای آنها راه حل ارائه كند ولی چون این مسائل دارای ماهیتی متفاوت از یكدیگر هستند، بنابراین طراحی یك شبكه باید بصورت «لایه به لایه» انجام شود. به عنوان مثال وقتی قرار است یك شبكه به گونه ای طراحی شود كه ایستگاهها بتوانند انتقال فایل داشته باشند، اولین مسئله ای كه طراح باید به آن بیندیشد طراحی یك سخت افزار مخابراتی برای ارسال و دریافت بیتها روی كانال فیزیكی است. اگر چنین سخت افزاری طراحی شود، می تواند بر اساس آن اقدام به حل مسئلة خطاهای احتمالی در داده ها نماید؛ یعنی زمانی مكانیزمهای كنترل و كشف خطا مطرح می شود كه قبل از آن سخت افزار مخابرة داده ها طراحی شده باشد. بعد از این دو مرحلة ‌طراحی، باید مكانیزمهای بسته بندی اطلاعات،‌ آدرس دهی ماشینها و مسیریابی بسته ها طراحی شود. سپس برای بقیه مسائل نظیر آدرس دهی پروسه ها و چگونگی انتقال فایل راه حل ارائه شود.

طراحی لایه ای شبكه به منظور تفكیك مسائلی است كه باید توسط طراح حل شود و مبتنی بر اصول زیر است:[2]

        ·هر لایه وظیفه مشخصی دارد و طراح شبكه باید آنها را به دقت تشریح كند.

        ·هر گاه سرویسهایی كه باید ارائه شود از نظر ماهیتی متفاوت باشد،‌ لایه به لایه و جداگانه طراحی شود.

        ·وظیفه هر لایه باید با توجه به قراردادها و استانداردهای جهانی مشخص شود.

   ·تعداد لایه ها نباید آنقدر زیاد باشد كه تمیز لایه ها از دیدگاه سرویسهای ارائه شده نامشخص باشد و نه آنقدر كم باشد، كه وظیفه و خدمات یك لایه، پیچیده و نامشخص شود.

   ·در هر لایه جزئیات لایه های زیرین نادیده گرفته می شود و لایه های بالایی باید در یك روال ساده و ماجولار از خدمات لایة زیرین خود استفاده كنند.

        ·باید مرزهای هر لایه به گونه ای انتخاب شود كه جریان اطلاعات بین لایه ها،‌‍ حداقل باشد.

برای آنكه طراحی شبكه ها سلیقه ای و پیچیده نشود سازمان جهانی استاندارد[3] (ISO)، مدلی هفت لایه ای برای شبكه ارائه كرد، به گونه ای كه وظایف و خدمات شبكه در هفت لایة مجزا تعریف و ارائه می شود. این مدل هفت لایه ای،‌OSI[4] نام گرفت. هر چند در شبكة‌ اینترنت از این مدل استفاده نمی شود و بجای آن یك مدل چهار لایه ای به  نام TCP/IP تعریف شده است، ولیكن بررسی مدل هفت لایه ای OSI، بدلیل دقتی كه در تفكیك و تبیین مسائل شبكه در آن وجود دارد، با ارزش خواهد بود. پس از بررسی مدل OSI، به تشریح مدل TCP/IP خواهیم پرداخت.

مدل هفت لایه ای OSI از سازمان استاندارد جهانی ISO

در این استاندارد كل وظایف و خدمات یك شبكه در هفت لایه تعریف شده است:

لایه 1- لایه فیزیكی                                   Physical Layer

لایه 2- لایه پیوند داده ها                           Data Link Layer

لایه 3- لایه شبكه                                      Network Layer

لایه 4- لایه انتقال                                     Transport Layer

لایه 5- لایه جلسه                                       Session Layer

لایه 6- لایه ارائه (نمایش)                      Presentation Layer

لایه 7- لایه كاربرد                                Application Layer

از لایه های پایین به بالا، سرویسهای ارائه شده‌ (با تكیه بر سرویسی كه لایه های زیرین ارائه می كنند) پیشرفته تر می شود.

این مدل به منظور تعریف یك استاندارد جهانی و فراگیر ارائه شد و گمان می رفت كه تمام شبكه ها بر اساس این مدل در هفت لایه طراحی شوند، به گونه ای كه در دهة هشتاد سازمان ملی علوم در آمریكا عنوان كرد كه در آینده فقط از این استاندارد حمایت خواهد كرد، ولی در عمل، طراحان شبكه به این مدل وفادار نماندند.

در ادامه به اختصار وظائف هر لایه در مدل OSI را تعریف خواهیم كرد.

لایه فیزیكی

وظیفه اصلی در لایة فیزیكی، انتقال بیتها بصورت سیگنال الكتریكی و ارسال آن بر روی كانال می باشد. واحد اطلاعات در این لایه بیت است و بنابراین این لایه هیچ اطلاعات از محتوای پیام ندارد و تنها بیتهای 0 و 1 را ارسال یا دریافت می كند پارامترهایی كه باید در این لایه مورد نظر باشند عبارتند از: ظرفیت كانال فیزیكی و نرخ ارسال[5]، نوع مدولاسیون، چگونگی كوپلاژ با خط انتقال، مسائل مكانیكی و الكتریكی مانند نوع كابل،‌ باند فركانسی و نوع رابط (كانكتور) كابل.

در این لایه كه تماماً سخت افزاری است،‌ مسایل مخابراتی در مبادلة بیتها، تجزیه و تحلیل شده و طراحی های لازم انجام می شود. طراح شبكه می تواند برای طراحی این لایه، از استانداردهای شناخته شدة انتقال همانند RS-232 و RS-422 و RS-423 و … كه سخت افزار آنها موجود است، استفاده كند. این لایه هیچ وظیفه ای در مورد تشخیص و ترمیم خطا ندارد.

لایة پیوند داده ها

وظیفة‌ این لایه آن است كه با استفاده از مكانیزمهای كشف و كنترل خطا، داده ها را روی یك كانال انتقال كه ذاتاً دارای خطا است، بدون خطا و مطمئن به مقصد برساند. در حقیقت می توان وظیفة این لایه را بیمة اطلاعات در مقابل خطاهای احتمالی دانست؛ زیرا ماهیت خطا به گونه ای است كه قابل رفع نیست ولی می توان تدابیری اتخاذ كرد كه فرستنده از رسیدن یا نرسیدن صحیح اطلاعات به مقصد مطلع شده و در صورت بروز خطا مجدداً اقدام به ارسال اطاعات كند؛ با چنین مكانیزمی یك كانال دارای خطا به یك خط مطمئن و بدون خطا تبدیل خواهد شد.

یكی دیگر از وظایف لایة‌ پیوند داده ها آن است كه اطلاعات ارسالی از لایة بالاتر را به واحدهای استاندارد و كوچكتری شكسته و ابتدا و انتهای آن را از طریق نشانه های خاصی كه Delimiter نامیده می شود، مشخص نماید. این قالب استاندارد كه ابتدا و انتهای آن دقیقاً مشخص شده، فریم نامیده می شود؛ یعنی واحد اطلاعات در لایة دو فریم است.

كشف خطا كه از وظایف این لایه می باشد از طریق اضافه كردن بیتهای كنترل خطا مثل بیتهای Parity Check و Checksum و CRC انجام می شود.

یكی دیگر از وظایف لایة دوم كنترل جریان یا به عبارت دیگر تنظیم جریان ارسال فریم ها به گونه ای است كه یك دستگاه كند هیچ گونه فریمی را به خاطر آهسته بودن از دست ندهد. از دیگر وظایف این لایه آن است كه وصول داده ها یا عدم رسید داده ها را به فرستنده اعلام كند.

یكی دیگر از وظایف این لایه آن است كه قراردادهایی را برای جلوگیری از تصادم سیگنال ایستگاههایی كه از كانال اشتراكی استفاده می كنند، وضع كند چرا كه فرمان ارسال داده بر روی كانال مشترك از لایة‌ دوم صادر می شود. این قراردادها در زیر لایه ای به نام MAS[6] تعریف شده است.

وقتی یك واحد اطلاعاتی تحویل یك ماشین متصل به كانال فیزیكی در شبكه شد، وظیفة این لایه پایان می یابد. از دیدگاه این لایه، ماشینهائی كه به كانال فیزیكی متصل نمی باشند، در دسترس نیستند. كنترل سخت افزار لایة‌ فیزیكی به عهدة این لایه است.

فراموش نكنید كه وظایف این لایه نیز با استفاده از سخت افزارهای دیجیتال انجام می شود.

لایة شبكه

در این لایه اطلاعات به صورت بسته هایی سازماندهی می شود و برای انتقال مطمئن تحویل لایة‌ دوم می شود. با توجه به آنكه ممكن است بین دو ماشین در شبكه مسیرهای گوناگونی وجود داشته باشد، لذا این لایه وظیفه دارد هر بسته اطلاعاتی را پس از دریافت به مسیری هدایت كند تا آن بسته بتواند به مقصد برسد. در این لایه باید تدابیری اندیشیده شود تا از ازدحام (یعنی ترافیك بیش از اندازة بسته ها در یك مسیریاب یا مركز سوئیچ) جلوگیری شده و از ایجاد بن بست ممانعت بعمل بیاورد.

هر مسیرباب می تواند به صورت ایستا و غیرهوشمند بسته ها را مسیریابی كند. همچنین می تواند به صورت پویا و هوشمند برای بسته ها مسیر انتخاب نماید. در این لایه تمام ماشینهای شبكه دارای یك آدرس جهانی و منحصر به فرد خواهند بود كه هر ماشین بر اساس این آدرسها اقدام به هدایت بسته ها به سمت مقصد خواهد كرد.

این لایه ذاتاً «بدون اتصال»[7] است یعنی پس از تولید یك بستة اطلاعاتی در مبدأ، بدون هیچ تضمینی در رسیدن آن بسته به مقصد، بسته شروع به طی مسیر در شبكه می كند. وظائف این لایه به سیستم نامه رسانی تشبیه شده است؛ یك پاكت محتوی نامه پس از آنكه  مشخصات لازم بر روی آن درج شد، به صندوق پست انداخته می شود، بدون آنكه بتوان زمان دقیق رسیدن نامه و وجود گیرنده نامه را در مقصد، از قبل حدس زد. در ضمن ممكن است نامه به هر دلیلی گم شود یا به اشتباه در راهی بیفتد كه مدتها در سیر بماند و زمانی به گیرندة آن برسد كه هیچ ارزشی نداشته باشد.

در این لایه تضمینی وجود ندارد وقتی بسته ای برای یك ماشین مقصد ارسال می شود آن ماشین آمادة دریافت آن بسته باشد و بتواند آنرا دریافت كند. در ضمن هیچ تضمینی وجود ندارد وقتی چند بستة متوالی برای یك ماشین ارسال می شود به همان ترتیبی كه بر روی شبكه ارسال شده، در مقصد دریافت شوند. همچنین ممكن است كه وقتی بسته ای برای یك مقصد ارسال می گردد، به دلیل دیر رسیدن از اعتبار ساقط شده و مجدداً ارسال شود و هر دو بسته (جدید و قدیم) به هم برسند. این مسائل در لایة‌ بالاتر قابل حل خواهد بود.

هر چند وظائف این لایه می تواند بصورت نرم افزاری پیاده شود ولی برای بالاتر رفتن سرعت عمل شبكه، می توان برای این لایه یك كامپیوتر خاص طراحی نمود تا در كنار سخت افزار لایه های زیرین، بسته ها را روی شبكه رد و بدل كند.

لایة‌ انتقال

در این لایه بر اساس خدمات لایة زیرین، یك سرویس انتقال بسیار مطمئن و «اتصال گرا»[8] ارائه می شود. تمام مشكلاتی كه در لایة شبكه عنوان شد در این لایه حل و فصل می شود:

   ·قبل از ارسال بسته ها، نرم افزار این لایة‌  اقدام به ارسال یك بسته ویژه می نماید تا مطمئن شود كه ماشین گیرنده آمادة دریافت اطلاعات است.

        ·جریان ارسال اطلاعات شماره گذاری شده تا هیچ بسته گم نشود یا دوبار دریافت نشود.

        ·ترتیب جریان بسته ها حفظ می شود.

   ·در این لایه پروسه های مختلفی كه بر روی یك ماشین واحد اجرا شده اند، آدرس دهی می شوند به نحوی كه هر پروسه بر روی یك ماشین واحد، به عنوان یك هویت مستقل داده های خود را ارسال یا دریافت نماید.

واحد اطلاعات در این لایه قطعة [9] است. از وظائف دیگر این لایه می توان به موارد زیر اشاره كرد:

        ·تقسیم پیامهای بزرگ به بسته های اطلاعات كوچكتر

        ·بازسازی بسته های اطلاعاتی و تشكیل یك پیام كامل

        ·شماره گذاری بسته های كوچكتر جهت بازسازی

        ·تعیین و تبیین مكانیزم نامگذاری ایستگاه هایی كه در شبكه اند.

   ·وظائف این لایه (و لایه های بعدی) با استفاده از نرم افزار پیاده سازی می شود و فقط بر روی ماشینهای نهایی (Hosts) وجود دارد و مراكز سوئیچ به وظائف این لایه احتیاجی ندارند (مگر در موارد خاص).

لایة جلسه

وظیفة این لایه فراهم آوردن شرایط یك جلسه (نشست) همانند ورود به سیستم از راه دور[10]، احراز هویت طرفین، نگهداری این نشست و توانایی از سرگیری یك نشست در هنگام قطع ارتباط می باشد. وظایف این لایه را می توان در موارد زیر خلاصه كرد: برقراری و مدیریت یك جلسه، شناسایی طرفین، مشخص نمودن اعتبار پیامها، اتمام جلسه، حسابداری مشتری ها[11]

لایة‌ ارائة (نمایش)

در این لایه معمولا كارهایی صورت می گیرد كه اگر چه بنیادی و اساسی نیستند ولیكن به عنوان نیازهای عمومی تلقی می شوند. مثل: فشرده سازی فایل[12]، رمزنگاری[13] برای ارسال داده های محرمانه، رمزگشایی[14]، تبدیل كدها به یكدیگر (وقتی كه دو ماشین از استانداردهای مختلفی برای متن استفاده می كنند؛ مثل تبدیل متون EBCDIC به ASCII و بالعكس)

لایة‌ كاربرد

در این لایه، استاندارد مبادلة پیام بین نرم افزاهائی كه در اختیار كاربر بوده و به نحوی با شبكه در ارتباطند، تعریف می شود. لایة كاربرد شامل تعریف استانداردهایی نظیر انتقال نامه های الكترونیكی،‌ انتقال مطمئن فایل، دسترسی به بانكهای اطلاعاتی راه دور، مدیریت شبكه و انتقال صفحات وب است.

در مدل لایه ای شبكه، وقتی یك برنامة كاربردی در لایة آخر اقدام به ارسال یك واحد اطلاعات می نماید، سرآیند لازم به آن اضافه شده و از طریق صدا زدن توابع سیستمی استاندارد به لایة زیرین تحویل داده می شود. لایة زیر نیز پس از اضافه كردن سرآیند لازم، آنرا به لایة پایین تحویل می دهدو این روند تكرار می شود تا آن واحد اطلاعات روی كانال فیزیكی ارسال شود. در مقصد پس از دریافت یك واحد اطلاعات از روی خط فیزیكی،‌ تحویل لایة بالاتر شده و در هر لایه پس از تحلیل و پردازش لازم، سرآیند اضافه شده را حذف و به لایة بالاتر تحویل می دهد. در شكل (1-2) روند حذف و اضافه شدن سرآیند در هر لایه به تصویر كشیده شده است.

مدل چهار لایه ای TCP/IP

همانگونه كه اشاره شد این مدل یك ساختار چهار لایه ای برای شبكه عرضه كرده است. شكل (2-2) این مدل را به تصویر كشیده است. اگر بخواهیم این مدل چهار لایه ای را با مدل OSI مقایسه كنیم، لایة اول از مدل TCP/IP یعنی لایة ‌دسترسی به شبكة تلفیقی از وظائف لایة‌ فیزیكی و لایة پیوند داده ها از مدل OSI خواهد بود. لایة دوم از مدل TCP/IP معادل لایة سوم از مدل OSI یعنی لایة شبكه است. لایة ‌سوم از مدل TCP/IP همنام و معادل با لایة‌ چهارم از مدل OSI یعنی لایة انتقال خواهد بود. لایه پنجم (جلسه) و لایة ششم (ارائه) از مدل OSI در مدل TCP/IP وجود ندارند و وظائف آنها در صورت لزوم در لایة‌ چهارم از مدل TCP/IP ادغام شده است. لایة هفتم از مدل OSI معدل بخشی از لایة چهارم از مدل TCP/IP است. در شكل (3-2) دو مدل TCP/IP و OSI با هم مقایسه  شده اند.

در ادامه چهار لایة ‌مدل TCP/IP را بررسی خواهیم كرد.

زیربنای اینترنت ساختار چهار لایه ای TCP/IP است. در این كتاب یاد خواهید گرفت كه حملات نفوذگران نیز در یكی از این چهار لایه شكل می گیرد؛ لذا ماهیت و مكانیزمهای حمله و همچنین ابزار و هدف حمله وابسته به لایه ای است كه مورد حمل قرار می گیرد.



شكل (1-2) روند حذف و اضافه شدن سرآیند در هر لایه

لایه ها

نامهای معادل در برخی از كتب

لایه كاربرد   Application layer

        ·لایه سرویسهای كاربردی

لایه انتقال       Transport layer

        ·لایه ارتباط میزبان به میزبان (Host to Host)

   ·لایه ارتباط عناصر انتهایی (End to End Connection)

لایه شبكه         Network layer

        ·لایه اینترنت

        ·لایه ارتباطات اینترنت

لایه واسط شبكه  Network interface

        ·لایه میزبان به شبكه (Host to network)

        ·لایه رابط شبكه

شكل (2-2) مدل چهار لایه ای TCP/IP



شكل (3-2) مقایسة دو مدل TCP/IP و OSI

لایة ‌اول از مدل TCP/IP : لایة واسط شبكه

در این لایه استانداردهای سخت افزار، نرم افزار های راه انداز[15] و پروتكلهای شبكه تعریف می شود. این لایه درگیر با مسائل فیزیكی، الكتریكی و مخابراتی كانال انتقال، نوع كارت شبكه و راه اندازه های لازم برای نصب كارت شبكه می باشد. در شبكة اینترنت كه می تواند مجموعه ای  از عناصر غیرهمگن و نامشابه را به هم پیوند بزند انعطاف لازم در این لایه برای شبكه های گوناگون و ماشینهای میزبان فراهم شده است. یعنی الزام ویژه ای در بكارگیری سخت افزار ارتباطی خاص، در این لایه وجود ندارد. ایستگاهی كه تصمیم دارد به اینترنت متصل شود بایستی با استفاده از پروتكلهای متعدد و معتبر و نرم افزار راه انداز مناسب، به نحوی داده های خودش را به شبكه تزریق كند. بنابراین اصرار و اجبار خاصی در استفاده از یك استاندارد خاص در این لایه وجود ندارد. تمام پروتكلهای LAN MAN در این لایه قابل استفاده است.

یك ماشین میزبان می تواند از طریق شبكة محلی، فریمهای اطلاعاتی را به زیر شبكه تزریق كند به این نحو كه بسته های راه دور[16] را كه مقصدشان خارج از شبكة محلی است، به مسیریاب از پیش تعریف شده، هدایت نماید. شبكه های محلی از طریق یك یا چند مسیریاب می توانند به اینترنت متصل شوند. بنابراین یك بسته اطلاعاتی كه از لایه بالاتر جهت ارسال به یك مقصد، به لایه اول در مدل TCP/IP  تحویل می شود، نهایتاً در قسمت «فیلد داده»[17] از فریم شبكه محلی قرار می گیرد و مسیر خود را آغاز می نماید؛ پروتكلهائی كه در لایة اول از مدل TCP/IP تعریف می شوند، می توانند مبتنی بر ارسال رشتة بیت[18] یا مبتنی بر ارسال رشتة بایت[19] باشند.

لایة‌ دوم از مدل TCP/IP : لایة ‌شبكه

این لایه در ساده ترین عبارت وظیفه دارد بسته های اطلاعاتی را كه از این به بعد آنها را بسته های IP می نامیم، روی شبكه هدایت كرده و از مبدأ تا مقصد به پیش ببرد. در این لایه چندین پروتكل در كنار هم وظیفه مسیریابی و تحویل بسته های اطلاعاتی از مبدأ تا مقصد را انجام می دهند. كلیدی ترین پروتكل در این لایه، پروتكل IP نام دارد. برخی از پروتكلهای مهم كه یك سری وظایف جانبی برعهده دارند عبارتند از: BOOTP,IGMP,ICMP,RIP,RARP,ARP و …. . این پروتكلها را به اختصار توضیح خواهیم داد ولی بیشترین تلاش ما در كالبدشناسی پروتكلIP خواهد بود.

همانگونه كه اشاره شد در این لایه یك واحد اطلاعاتی كه بایستی تحویل مقصد شود، دیتاگرام نامیده می شود. پروتكل IP می تواند یك دیتاگرام را در قالب بسته های كوچكتری قطعه قطعه  كرده و پس از اضافه كردن اطلاعات لازم برای بازسازی، آنها را روی شبكه ارسال كند.

لازم است بدانید كه در این لایه برقرای ارتباط بین مبدأ و مقصد بروش «بدون اتصال» خواهد بود و از اسال یك بستهIP روی شبكه، عبور از مسیر خاصی را تضمین نمی كند. بعنی اگر دو بسته متوالی برای یك مقصد یكسان ارسال شود هیچ تصمینی در به ترتیب رسیدن آنها وجود ندارد، چون این دو بسته می توانند از مسیرهای متفاوتی به سمت مقصد حركت نماید. در ضمن در این لایه پس از آنكه بسته ای روی یكی از كانالهای ارتباطی هدایت شد، از سالم رسیدن یا نرسیدن آن به مقصد هیچ اطلاعی بدست نخواهد آمد، چرا كه در این لایه، برای بسته های IP هیچ گونه پیغام دیافت یا عدم دریافت[20] بین عناصر واقع بر روی مسیر، رد و بدل نمی شود؛ بنابراین سرویسی كه در این لایه ارائه می شود نامطمئن است و اگر به سرویسهای مطمئن و یا اتصال گرا نیاز باشد د رلایه بالاتر این نیاز تامین خواهد شد.

در این لایه مسیریابها بایستی از شرایط توپولوژیكی و ترافیكی شبكه اطلاعاتی را كسب نمایند تا مسیریابی بروش پویا انجام شود. همچنین در این لایه باید اطلاعاتی درباره مشكلات یا خطاهای احتمالی در ساختار زیرشبكه بین مسیریابها و ماشیهای میزبان، مبادله شود. یكی دیگر از وظائف این لایه ویژگی ارسال «چند پخشی»[21] است یعنی یك ایستگاه قادر باشد به چندین مقصد گوناگون كه در قالب یك گروه سازماندهی شده اند،‌ بسته یا بسته هائی را ارسال نماید.

لایة‌ سوم از مدل TCP/IP: لایة انتقال

این لایه ارتباط ماشینهای انتهایی (ماشینهای میزبان) را در شبكه برقرار می كند یعنی می تواند بر اساس سرویسی كه لایه دوم ارائه می كند یك ارتباط اتصال گرا و مطمئن[22]، برقرار كند. البته در این لایه برای عملیاتی نظیر ارسال صوت و تصویر كه سرعت مهمتر از دقت و خطا است سرویسهای بدون اتصال سریع و نامطمئن نیز فراهم  شده است.

در سرویس مطمئنی كه در این لایه ارائه می شود، مكانیزمی اتخاذ شده است كه فرستنده از رسیدن نو یا عدم رسید صحیح بسته به مقصد با خبر شود. در مورد سرویسهای مطمئن و نامطمئن بعداً بحث خواهد شد. این لایه از یكطرف با لایة شبكه و از طرف دیگر با لایة كاربرد در ارتباط است. داده های تحویلی به این لایه توسط برنامة كاربردی و با صدا زدن توابع سیستمی تعریف شده در «اواسط برنامه های كاربردی» ([23]API) ارسال یا دریافت می شوند.

لایة‌ چهارم از مدل TCP/IP: لایة كاربرد

در این لایه بر اساس خدمات لایه های زیرین، سرویس سطح بالایی برای خلق برنامه های كاربردی ویژه و پیچیده ارائه می شود. این خدمات در قالب،‌ پروتكلهای استانداردی همانند موارد زیر به كاربر ارائه می شود: شبیه سازی ترمینال[24]، انتقال فایل یا FTP، مدیریت پست الكترونیكی، خدمات انتقال صفحات ابرمتنی و دهها پروتكل كاربردی دیگر. در پایان این قسمت بایستی خاطر نشان كنیم كه ارسال یك واحد اطلاعاتی از لایه چهارم پس از انجام پردازشهای لازم در لایه های زیرین به نحو مناسبی روی زیر شبكه تزریق شده و نهایتاً در ماشین مقصد،‌ تحویل یك  برنامه كاربردی خاص خواهد شد.

لایة اینترنت (IP)

جوهرة اینترنت به گونه ای شكل گرفته است كه مجموعه ای از شبكه های خودمختار[25]را به همدیگر وصل می نماید. هیچگونه ساختار حقیقی و رقابتی نمی توان برای اینترنت متصور شد. این نكته را بایستی یادآور شویم كه در قسمت «زیرشبكه» از شبكة اینترنت تعدادی از خطوط ارتباطی با پهنای باند (نرخ ارسال) بسیار بالا و مسیریابهای بسیار سریع و هوشمند، برای پیكرة شبكة جهانی اینترنت یك «ستون فقرات»[26] تشكیل داده است. شبكه های منطقه ای و محلی پیرامون این ستون فقرات شكل گرفته و ترافیك دادة آنها به نحوی از این ستون فقرات خواهد گذشت. ستون فقرات در شبكة اینترنت كه با سرمایه گذاری عظیمی در آمریكا، اروپا و قسمتهایی از اقیانوسیه و آسیا ایجاد شده است. حجم بسیار وسیعی از بسته های اطلاعاتی را در هر ثانیه حمل می كنند و اكثر شبكه های منطقه ای و محلی یا ارائه دهندگان سرویسهای اینترنت[27] به نحوی با یكی  از گروه های این ستون فقرات در ارتباطند.

به گونه ای كه در بخش قبلی اشاره شده قراردادی كه حمل و تردد بسته های اطلاعاتی و همچنین مسیریابی صحیح آنها را از مبدأ به مقصد، مدیریت و سازماندهی می نماید پروتكل IP[28] نام دارد. در حقیقت پروتكل IP كه روی تمام ماشینهای شبكه اینترنت وجود دارد بسته های اطلاعاتی را (بسته IP) از مبدإ تا مقصد هدایت می نماید، فارغ از آنكه آیا ماشینهای مبدأ و مقصد روی یك شبكه هستند یا چندین شبكة دیگر بین آنها واقع شده است.

ساده ترین تعریف برای پروتكل IP روی شبكة اینترنت بصورت زیر خلاصه می شود:

لایة‌ IP یك واحد از داده ها را از لایة بالاتر تحویل می گیرد؛ به این واحد اطلاعات معمولاً یك «دیتاگرام» گفته می شود.امكان دارد طول این دیتاگرام بزرگ باشد، در چنین موردی لایة IP آنرا به واحدهای كوچكتری كه هر كدام «قطعه»[29] نام دارد شكسته و با تشكیل یك بستة‌ IP به ازای هر قطعه، اطلاعات لازم برای طی مسیر در شبكه را به آنها اضافه می كند و سپس آنها را روی شبكه به جریان می اندازد؛ هر مسیریاب با بررسی و پردازش بسته ها، آنها را تا مقصد هدایت می كند. هر چند طول یك بسته IP می تواند حداكثر 64Kbyte باشد و لیكن در عمل عموماً طول یك بسته ها حدود 1500 بایت است. ( این قضیه به دلیل آنست كه اكثر شبكه های محلی دنیا اعم از Bus، حلقه، ستاره،‌ طول فریمی نزدیك به یك تا چند كیلو بایت دارند) پروتكل IP مجبور است هنگام قطعه قطعه كردن یك دیتاگرام، برای كل آن یك شمارة مشخصه و برای هر قطعه یك شمارة ‌ترتیب در نظر بگیرد تا آن دیتاگرام بتواند در مقصد برای تحویل به لایة بالاتر یعنی لایة‌ انتقال بازسازی شود.

(مجدداً تأكید می كنیم كه در این مبحث، دیتاگرام[30] یك واحد اطلاعات است كه به صورت یك جا از لایة‌IP به لایة ‌انتقال تحویل داده می شود یا بالعكس لایه انتقال آنرا جهت ارسال روی شبكه به لایة‌IP تحویل داده و ممكن است شكسته شود).

در كنار پروتكل IP چندین پروتكل دیگر مثل RIP,RARP,ARP,ICMP و … تعریف شده كه پروتكل IP را در عملكرد بهتر، مسیریابی صحیح، مدیریت خطاهای احتمالی یا كشف آدرسهای ناشناخته كمك می كنند.

تواناییهایی كه پروتكل IP چندین پروتكلهای جانبی آن عرضه می كنند این امكان را فراهم آورده است كه تمام شبكه ها و ابزارهای شبكه ای (مثل ماشینهای میزبان، مسیریابها، پلها، و …) فارغ از نوع ماشین و نوع سخت افزار و حتی با وجود تفاوت در سیستم عامل مورد استفادة آنها، بتوانند بسته های IP را با یكدیگر مبادله كنند. پروتكل IP ساختاری استاندارد دارد و به هیچ سخت افزار یا سیستم عامل خاص وابسته نیست.

بعنوان اولین گام در شناخت پروتكل IP لازم است قالب یك بستةIP را كالبد شكافی كره و در گامهای بعدی چگونگی آدرس دهی ماشینها و انواع كلاسهای آدرس در شبكة اینترنت را معرفی نموده و نهایتاً به روشهای مسیریابی و همچین تعریف پروتكلهای وابسته به IP بپردازیم.

قالب یك بستة IP

شكل (4-2) قالب یك بسته IP را نشان می دهد. یك بستة‌IP از دو قسمت سرایند و قسمت حمل داده تشكیل شده است. مجموعة اطلاعاتی كه در سرآیند بستة‌IP درج می شود توسط مسیریابها مورد استفاده و پردازش قرار می گیرد.

دقت كنید كه برای تحلیل برخی از مكانیزمها و تاكتیكهای حمله، مجبور هستید با فیلدهای متعدد بستة IP آشنا باشید؛ زیرا برخی از این فیلدها مورد سوء استفادة نفوذگران قرار می گیرند. در فصل نهم یاد خواهید گرفت كه هر گاه برخی از این فیلدها بصورت عمدی و حساب شده دستكاری شود، منجر به اختلال در ماشین نهایی خواهد شد.



[1] TCP/IP Protocol Stack

[2] طراحی لایه ای شبكه را می توان با برنامه نویسی ماجولار مقایسه كرد،‌ بدین نحو كه روالهای حل یك مسئله با اجزای كوچكتری شكسته می شود و برای آن زیربنامه نوشته می شود. در توابع صدا زنندة این زیربرنامه ها، جزئیات درونی آنها اهمیت ندارد بلكه فقط نحوة صدا زدن آنها و پارامترهای مورد نیاز ورودی به زیربرنامه و چگونگی برگشت نتیجه به صدا زننده، مهم است.

[3] International Standard Organization

[4] Open System Interconnection

[5] Channel Capacity and Bit Rate

[6] Medium Access Sublayer

[7] Connectionless

[8] Connection Oriented

[9] Segment

[10] Remote Login

[11] Accounting

[12] Data Compression

[13] Encryption

[14] Decryption

[15] Device Driver

[16] Distant Packet

[17] Data Field/Payload

[18]  Bit oriented           در اینجا كوچكترین واحد اطلاعات كه می تواند بطور مستقل ارسال شود یك بیت خواهد بود.

[19]Byte oriented         در اینجا كوچكترین واحد اطلاعات كه می تواند بطور مستقل ارسال شود یك بایت خواهد بود.

[20] Ack/Nack

[21] Multicast

[22] Reliable

[23] Application Program Interface

[24] TEINET/Teminal Emulation

[25] Autonomous

[26] Backbone

[27] Internet Service Provider(ISP)

[28] Internet protocol

[29] Fragment

[30] اصطلاح دیتاگرام در ادبیات شبكه های كامپیوتری به معنای متفاوت و در موارد متعدد استفاده شده است. لذا به مورد استفادة آن دقت داشته باشید.