پروتکل TCP/IP چیست؟ آشنایی با لایه ها و مفاهیم مختلف تیسیپی-آیپی
پروتکل TCP/IP ، يکی از مهمترين پروتکل های استفاده شده در شبکه های کامپيوتری است. اينترنت بعنوان بزرگترين شبکه جهانی موجود، از پروتکل فوق بمنظور ارتباط دستگاه های متفاوت استفاده می نمايد. پروتکل، مجموعه قوانين لازم بمنظور قانونمند نمودن نحوه ارتباطات در شبکه های کامپيوتری است. در مقاله مفاهيم اوليه پروتکل تی سی پی آی پی که ارائه خواهد شد به بررسی اين پروتکل ها خواهيم پرداخت. در اين بخش مواردی همچون فرآيند انتقال اطلاعات، معرفی و تشريح لايه های پروتکل TCP/IP و نحوه استفاده از سوکت برای ايجاد تمايز در ارتباطات، تشريح می گردد. با کیهان سرور همراه باشید.
لایه فیزیکی TCP/IP
وظیفه اصلی در لایه فیزیکی، انتقال بیتها بصورت سیگنال الکتریکی و ارسال آن بر روی کانال می باشد. واحد اطلاعات در لایه بیت است و بنابراین این لایه هیچ اطلاعی از محتوای پیام ندارد و تنها بیتهای 0 و 1 را ارسال یا دریافت می کند. پارامترهایی که باید در این لایه مورد نظر باشند عبارتند از ظرفیت کانال فیزیکی و نرخ انتقال، نوع مدولاسیون، چگونگی کوپلاژ با خط تلفن، مسائل مکانیکی و الکتریکی مانند نوع کابل، باند فرکانسی و نوع رابط (کانکتور) کابل.
در این لایه که تماماً سخت افزاری است، مسائل مخابراتی در مبادله بیتها، تجزیه و تحلیل شده و طراحی های لازم انجام می شود. طراح شبکه می تواند برای طراحی این لایه، از استاندارد های شناخته شده انتقال همانند RS-232 و RS-422 و RS-423 و … که سخت افزار آنها موجود است، استفاده کند. این لایه هیچ وظیفه ای در مورد تشخیص و ترمیم خطلا ندارد.
لایه پیوند داده ها
وظیفه لایه پیوند داده ها در پروتکل TCP/IP آنست که با استفاده از مکانیزم های کشف و کنترل خطا، داده ها را روی یک کانال انتقال که ذاتاً دارای خطا است، بدون خطا و مطمئن به مقصد برساند. در حقیقت می توان وظیفه این لایه را بیمه اطلاعات در مقابل خطاهای احتمالی دانست؛ زیرا ماهیت خطا بگونه ای است که قابل رفع نیست ولی می توان تدابیری اتخاذ کرد که فرستنده از رسیدن یا نرسیدن صحیح اطلاعات به مقصد مطلع شده و در صورت بروز خطا مجدداً اقدام به ارسال اطلاعات کند؛ با چنین مکانیزمی یک کانال دارای خطا به یک کانال مطمئن و بدون خطا تبدیل می شود.
یکی دیگر از وظائف لایه پیوند داده ها آنست که اطلاعات ارسالی از لایه بالاتر را به واحدهای استاندارد و کوچکتری شکسته و ابتدا و انتهای آنرا از طریق نشانه های خاصی که Delimiter نامیده می شود، مشخص نماید. این قالب استاندارد که ابتدا و انتهای ان دقیقاً مشخص شده فریم نامیده می شود؛ یعنی واحد اطلاعات در لایه دوم فریم است. کشف خطا که از وظائف این لایه می باشد از طریق اضافه کردن بیتهای کنترل خطا مثل بیتهای Parity Check وChecksum و CRC انجام می شود.
- یکی دیگر از وظایف لایه دوم کنترل جریان یا به عبارت دیگر تنظیم جریان ارسال فریم ها به گونه ای است که یک دستگاه کند هیچگونه فریمی را به خاطر آهسته بودن از دست ندهد.
- از دیگر وظایف این لایه آنست که وصول داده های یا عدم رسید داده ها را به فرستنده اعلام کند.
در بخشهای قبل اشاره کردیم که بسیاری از شبکه ها از کانال اشتراکی استفاده می کنند و ارسال همزمان دو ایستگاه منجر به تصادم (اختلاط سیگنال انتقال) و خرابی داده ها خواهد شد. یکی دیگر از وظایف این لایه آنست که قراردادهایی را برای جلوگیری از استدام سیگنال ایستگاههایی که از کانال اشتراکی استفاده می کنند، وضع کنند چرا که فرمان ارسال داده بر روی کانال مشترک از لایه دوم صادر می شود. این قراردادها در زیر لایه هایی به نام Medium Access Sublayer تعریف شده است.
- وقتی یک واحد اطلاعاتی تحویل یک ماشین متصل به کانال فیزیکی در شبکه شد، وظیفه این لایه پایان می یابد. از دیدگاه این لایه، ماشین هایی که به کانال فیزیکی متصل نمی باشد در دسترس نمی باشند. کنترل سخت افزار لایه فیزیکی بر عهده این لایه است. فراموش نکنید که وظایف این لایه نیز با استفاده از سخت افزار های دیجیتال انجام می شود.
لایه شبکه
در این لایه اطلاعات به صورت بسته هایی سازماندهی می شود و برای انتقال مطمئن تحویل لایه دوم می شود. با توجه به آنکه ممکن است بین دو ماشین در شبکه مسیرهای گوناگونی وجود داشته باشد، لذا این لایه وظیفه دارد هر بسته اطلاعاتی را پس از دریافت به مسیری هدایت کند تا آن بسته بتواند به مقص برسد. در این لایه باید تدابیری اندیشیده شود تا از ازدحام (یعنی ترافیک بیش از اندازه بسته ها در مسیریاب یا مرکز سوئیچ) جلوگیری شده و از ایجاد بن بست ممانعت به عمل بیاورد.
هر مسیریاب می تواند به صورت ایستا و غیر هوشمند بسته ها را مسیر یابی کند. همچنین می تواند به صورت پویا و هوشمند برای یسته ها مسیر انتخاب نماید. در این لایه تمام ماشین های شبکه دارای یک آدرس جهانی و منحصر به فرد خواهد بود که هر ماشین بر اساس این آدرس ها اقدام به هدایت بسته ها به سمت مقصد خواهد کرد.
این لایه ذاتاً “بدون اتصال (Connectionless)” است یعنی پس از تولید یک بسته اطلاعاتی در مبداء بدون هیچ تضمینی در رسیدن آن بسته به مقصد، بسته شروع به طی مسیر در شبکه می کند. وظایف این لایه به سیستم نامه رسانی تشبیه شده است؛ یک پاکت محتوی نامه پس از آنکه مشخصات لازم بر روی آن درج شد، به صندوق پست انداخته می شود، بدون آنکه بتوان زمان دقیق رسیدن نامه و وجود نامه را در مقصد، از قبل حدس زد. در ضمن ممکن است نامه به هر دلیلی گم شود یا به اشتباه در راهی بیفتد که مدتها در مسیر بماند و زمانی به گیرنده آن برسد که هیچ ارزشی نداشته باشد.
در این لایه تضمینی وجود ندارد وقتی بسته ای برای یک ماشین مقصد ارسال می شود آن ماشین آماده دیافت آن بسته باشد و بتواند آنرا دریافت کند. در ضمن هیچ تضمینی وجود ندارد وقتی چند بسته متوالی برای یک ماشین ارسال می شود به همان ترتیبی که بر روی شبکه ارسال شده، در مقصد دریافت شوند. همچنین ممکن است که وقتی بسته ای برای یک مقصد ارسال می شود، به دلیل دیر رسیدن از اعتبار ساقط شده و مجدداً ارسال شود و هر دو بسته (قدیم و جدید) با هم برسند. این مسائل در لایه بالاتر قابل حل خواهد بود.
- هر چند وظایف این لایه می تواند بصورت نرم افزاری پیاده شود ولی برای بالاتر رفتن سرعت عمل شبکه، می توان برای این لایه یک کامپیوتر خاص طراحی نمود تا در کنار سخت افزار لایه های زیرین، بسته ها را روی شبکه رد و بدل کند.
لایه انتقال
در لایه انتقال پروتکل TCP/IP بر اساس خدمات لایه زیرین، یک سرویس انتقال بسیار مطمئن و “اتصال گرا (Connection Oriented)” ارائه می شود. تمام مشکلاتی که در لایه شبکه عنوان شد در این لایه حل و فصل می شود.
- قبل از ارسال بسته ها، نرم افزار این لایه اقدام به ارسال یک بسته ویژه می نماید تا مطمئن شود که ماشین گیرنده آماده دریافت اطلاعات است.
- جریان ارسال اطلاات شماره گذاری شده تا هیچ بسته ای گم نشود یا دوبار دریافت نشود.
- ترتیب جریان بسته ها حفظ می شود.
- در این لایه پروسه های مختلفی که بر روی یک ماشین واحد اجرا شده اند، آدرس دهی می شوند به نحوی که هر پروسه بر روی یک ماشین واحد، به عنوان یک هویت مستقل داده های خود را ارسال یا دریافت نمایند.
واحد اطلاعات در این لایه قطعه (Segment) است. از وظائف دیگر این لایه می توان به موارد زیر اشاره کرد.
- تقسیم پیامهای اطلاعاتی بزرگ به بسته های کوچکتر
- بازسازی بسته های اطلاعاتی و تشکیل یک پیام کامل
- شماره گذاری بسته های کوچکتر جهت بازسازی
- تعیین و تبین مکانیزم نامگذاری ایستگاه هایی که در شبکه اند.
وظائف این لایه (و لایه های بعدی) با استفاده از نرم افزار پیاده سازی می شوند و فقط بر روی ماشین های نهایی (HOST) وجود دارد و مراکز سوئیچ به وظائف این لایه احتیاجی ندارند (مگر در موارد خاص).
لایه جلسه
وظیفه لایه جلسه پروتکل TCP/IP فراهم آوردن شرایط یک جلسه (نشست) همانند ورود به سیستم از راه دور (Remote Login)، احراز هویت طرفین، نگهداری این نشست و توانایی از سرگیری یک نشست در هنگام قطع ارتباط می باشد. وظائف این لایه را می توان در موارد زیر خلاصه کرد.
- برقراری و مدیریت یک جلسه
- شناسایی طرفین
- مشخص نمودن اعتبار پیام ها
- اتمام جلسه
- حسابداری مشتری ها (Accounting)
لابه ارائه (نمایش)
در لایه نمایش پروتکل TCP/IP معمولاً کارهایی صورت می گیرد که اگرچه بنیادی و اساسی نیستند ولیکن به عنوان نیازهای عمومی تلقی می شوند. مثل فشرده سازی فایل (Data Compression)، رمزنگاری (Encryption) برای ارسال داده های محرمانه، رمزگشایی (Decryption)، تبدیل کدها به یکدیگر (وقتی که دو ماشین از استانداردهای مختلفی برای متن استفاده می کنند؛ مثل تبدیل متون EBCDIC به ASCII و بالعکس).
لایه کاربرد
در لایه کاربرد پروتکل TCP/IP، استاندارد مبادله پیام بین نرم افزارهایی که در اختیار کاربر بوده و بنحوی با شبکه در ارتباطند، تعریف می شوند. لایه کاربرد شامل تعریف استانداردهایی نظیر انتقال نامه های الکترونیکی، انتقال مطمئن فایل، دسترسی به بانکهای اطلاعاتی راه دور، مدیریت شبکه و انتقال صفحات وب است.
در مدل لایه ای شبکه، وقتی یک برنامه ی کاربردی در لایه آخر اقدام به ارسال یک واحد اطلاعات می نماید، سرآیند لازم به آن اضافه می شده و از طریق صدا زدن توابع سیستمی استاندارد به لایه زیرین تحویل داده می شوند. لایه زیر نیز می تواند پس اضافه کردن سرآیند لازم، آنرا به لایه پایین تحویل می دهد و این روند تکرار می شود تا آن واحد اطلاعات روی کانال فیزیکی ارسال شود. در مقصد پس از دریافت یک واحد اطلاعات از روی خط فیزیکی، تحویل لایه بالاتر شده و در هر لایه پس از تحلیل و پردازش لازم، سرآیند اضافه شده را حذف و به لایه بالاتر تحویل می دهد.