دسته بندی | کامپیوتر و IT |
بازدید ها | 44 |
فرمت فایل | doc |
حجم فایل | 171 کیلو بایت |
تعداد صفحات فایل | 251 |
برای تحلیل و فهم روشهائی که یک نفوذگر با بکارگیری آنها با شبکه حمله می کند، باید یک دانش پایه از تکنولوژی شبکه داشته باشیم. درک مکانیزم حملات ممکن نیست مگر آنکه حداقل اصول 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 خواهیم پرداخت.
در این استاندارد کل وظایف و خدمات یک شبکه در هفت لایه تعریف شده است:
لایه 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) روند حذف و اضافه شدن سرآیند در هر لایه به تصویر کشیده شده است.
همانگونه که اشاره شد این مدل یک ساختار چهار لایه ای برای شبکه عرضه کرده است. شکل (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
در این لایه استانداردهای سخت افزار، نرم افزار های راه انداز[15] و پروتکلهای شبکه تعریف می شود. این لایه درگیر با مسائل فیزیکی، الکتریکی و مخابراتی کانال انتقال، نوع کارت شبکه و راه اندازه های لازم برای نصب کارت شبکه می باشد. در شبکة اینترنت که می تواند مجموعه ای از عناصر غیرهمگن و نامشابه را به هم پیوند بزند انعطاف لازم در این لایه برای شبکه های گوناگون و ماشینهای میزبان فراهم شده است. یعنی الزام ویژه ای در بکارگیری سخت افزار ارتباطی خاص، در این لایه وجود ندارد. ایستگاهی که تصمیم دارد به اینترنت متصل شود بایستی با استفاده از پروتکلهای متعدد و معتبر و نرم افزار راه انداز مناسب، به نحوی داده های خودش را به شبکه تزریق کند. بنابراین اصرار و اجبار خاصی در استفاده از یک استاندارد خاص در این لایه وجود ندارد. تمام پروتکلهای LAN MAN در این لایه قابل استفاده است.
یک ماشین میزبان می تواند از طریق شبکة محلی، فریمهای اطلاعاتی را به زیر شبکه تزریق کند به این نحو که بسته های راه دور[16] را که مقصدشان خارج از شبکة محلی است، به مسیریاب از پیش تعریف شده، هدایت نماید. شبکه های محلی از طریق یک یا چند مسیریاب می توانند به اینترنت متصل شوند. بنابراین یک بسته اطلاعاتی که از لایه بالاتر جهت ارسال به یک مقصد، به لایه اول در مدل TCP/IP تحویل می شود، نهایتاً در قسمت «فیلد داده»[17] از فریم شبکه محلی قرار می گیرد و مسیر خود را آغاز می نماید؛ پروتکلهائی که در لایة اول از مدل TCP/IP تعریف می شوند، می توانند مبتنی بر ارسال رشتة بیت[18] یا مبتنی بر ارسال رشتة بایت[19] باشند.
این لایه در ساده ترین عبارت وظیفه دارد بسته های اطلاعاتی را که از این به بعد آنها را بسته های IP می نامیم، روی شبکه هدایت کرده و از مبدأ تا مقصد به پیش ببرد. در این لایه چندین پروتکل در کنار هم وظیفه مسیریابی و تحویل بسته های اطلاعاتی از مبدأ تا مقصد را انجام می دهند. کلیدی ترین پروتکل در این لایه، پروتکل IP نام دارد. برخی از پروتکلهای مهم که یک سری وظایف جانبی برعهده دارند عبارتند از: BOOTP,IGMP,ICMP,RIP,RARP,ARP و …. . این پروتکلها را به اختصار توضیح خواهیم داد ولی بیشترین تلاش ما در کالبدشناسی پروتکلIP خواهد بود.
همانگونه که اشاره شد در این لایه یک واحد اطلاعاتی که بایستی تحویل مقصد شود، دیتاگرام نامیده می شود. پروتکل IP می تواند یک دیتاگرام را در قالب بسته های کوچکتری قطعه قطعه کرده و پس از اضافه کردن اطلاعات لازم برای بازسازی، آنها را روی شبکه ارسال کند.
لازم است بدانید که در این لایه برقرای ارتباط بین مبدأ و مقصد بروش «بدون اتصال» خواهد بود و از اسال یک بستهIP روی شبکه، عبور از مسیر خاصی را تضمین نمی کند. بعنی اگر دو بسته متوالی برای یک مقصد یکسان ارسال شود هیچ تصمینی در به ترتیب رسیدن آنها وجود ندارد، چون این دو بسته می توانند از مسیرهای متفاوتی به سمت مقصد حرکت نماید. در ضمن در این لایه پس از آنکه بسته ای روی یکی از کانالهای ارتباطی هدایت شد، از سالم رسیدن یا نرسیدن آن به مقصد هیچ اطلاعی بدست نخواهد آمد، چرا که در این لایه، برای بسته های IP هیچ گونه پیغام دیافت یا عدم دریافت[20] بین عناصر واقع بر روی مسیر، رد و بدل نمی شود؛ بنابراین سرویسی که در این لایه ارائه می شود نامطمئن است و اگر به سرویسهای مطمئن و یا اتصال گرا نیاز باشد د رلایه بالاتر این نیاز تامین خواهد شد.
در این لایه مسیریابها بایستی از شرایط توپولوژیکی و ترافیکی شبکه اطلاعاتی را کسب نمایند تا مسیریابی بروش پویا انجام شود. همچنین در این لایه باید اطلاعاتی درباره مشکلات یا خطاهای احتمالی در ساختار زیرشبکه بین مسیریابها و ماشیهای میزبان، مبادله شود. یکی دیگر از وظائف این لایه ویژگی ارسال «چند پخشی»[21] است یعنی یک ایستگاه قادر باشد به چندین مقصد گوناگون که در قالب یک گروه سازماندهی شده اند، بسته یا بسته هائی را ارسال نماید.
این لایه ارتباط ماشینهای انتهایی (ماشینهای میزبان) را در شبکه برقرار می کند یعنی می تواند بر اساس سرویسی که لایه دوم ارائه می کند یک ارتباط اتصال گرا و مطمئن[22]، برقرار کند. البته در این لایه برای عملیاتی نظیر ارسال صوت و تصویر که سرعت مهمتر از دقت و خطا است سرویسهای بدون اتصال سریع و نامطمئن نیز فراهم شده است.
در سرویس مطمئنی که در این لایه ارائه می شود، مکانیزمی اتخاذ شده است که فرستنده از رسیدن نو یا عدم رسید صحیح بسته به مقصد با خبر شود. در مورد سرویسهای مطمئن و نامطمئن بعداً بحث خواهد شد. این لایه از یکطرف با لایة شبکه و از طرف دیگر با لایة کاربرد در ارتباط است. داده های تحویلی به این لایه توسط برنامة کاربردی و با صدا زدن توابع سیستمی تعریف شده در «اواسط برنامه های کاربردی» ([23]API) ارسال یا دریافت می شوند.
در این لایه بر اساس خدمات لایه های زیرین، سرویس سطح بالایی برای خلق برنامه های کاربردی ویژه و پیچیده ارائه می شود. این خدمات در قالب، پروتکلهای استانداردی همانند موارد زیر به کاربر ارائه می شود: شبیه سازی ترمینال[24]، انتقال فایل یا FTP، مدیریت پست الکترونیکی، خدمات انتقال صفحات ابرمتنی و دهها پروتکل کاربردی دیگر. در پایان این قسمت بایستی خاطر نشان کنیم که ارسال یک واحد اطلاعاتی از لایه چهارم پس از انجام پردازشهای لازم در لایه های زیرین به نحو مناسبی روی زیر شبکه تزریق شده و نهایتاً در ماشین مقصد، تحویل یک برنامه کاربردی خاص خواهد شد.
جوهرة اینترنت به گونه ای شکل گرفته است که مجموعه ای از شبکه های خودمختار[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 بپردازیم.
شکل (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] اصطلاح دیتاگرام در ادبیات شبکه های کامپیوتری به معنای متفاوت و در موارد متعدد استفاده شده است. لذا به مورد استفادة آن دقت داشته باشید.