فهرست مطالب
مدل TCP/IP
مدل TCP/IP یا Transmission Control Protocol/Internet protocol که به نامهای دیگر مانند Internet protocol suit یا Protocol Stack نیز معروف است، مدلی مفهومی و مجموعهای از پروتکلها است که در اینترنت و شبکههای کامپیوتری مورد استفاده قرار میگیرد.
علت نامگذاری این مدل به نام TCP/IP دو پروتکل اصلی مورد استفاده در این مدل یعنی پروتکل TCP و IP است. این مدل شامل چهار لایه کاربرد، انتقال، اینترنت و پیوند میباشد که عملکرد این لایهها مشابه لایههای مدل OSI میباشد.
مقایسه مدل TCP/IP با مدلOSI
مدل مرجع OSI و مدل مرجع TCP/IPنقاط مشترک زیادی دارند. هر دوی آنها مبتنی بر مجموعهای از پروتکلهای مستقل هستند و عملکرد لایهها نیز تا حدی شبیه یکدیگر است. مدل OSI ثابت کرده که بهترین ابزار برای توصیف شبکههای کامپیوتری است، اماTCP/IP در مقیاس وسیعی مورد استفاده قرار میگیرد. این دو مدل تفاوتهایی با هم دارند که در زیر به برخی از آنهااشاره می کنیم.
قبل از ایجاد مدل OSI پروتکلهای آن طراحی و ابداع شد، در نتیجه این مدل وابستگی و تعامل خاصی با هیچ مجموعه پروتکلی ندارد اما در TCP/IP مسئله بر عکس بود و این خود باعث شده که مدل TCP/IP تنها برای شبکههای تحت خود مناسب باشد.
مدل OSI دارای هفت لایه است اما مدل TCP/IP چهار لایه دارد و از لایه presentation و لایه session در آن خبری نیست (شکل 5). شاید بزرگترین دستاورد مدل OSI روشن ساختن مفاهیم فوق و تفکیک آنها باشد. هر لایه سرویسهایی در اختیار لایههای بالاتر از خود قرار میدهد. تعریف این سرویسها فقط میگوید که یک لایه چه کارایی انجام میدهد و هیچ حرفی در مورد نحوه انجام آنها و چگونگی استفاده از سرویسها نمیزند.
تعریف چگونگی دسترسی به سرویسهای یک لایه بر عهده واسط است. واسط پارامترهای ورودی لازم و نتیجه موردنظر را تعیین میکند. حتی واسط هم نمیگوید که یک لایه کار خود را چگونه انجام میدهد. کاری را که یک لایه انجام میدهد را پروتکلهای آن لایه تعریف میکند. یک لایه مادامی که کار خود را درست انجام دهد، میتواند از هر پروتکلی استفاده کند. تغییر پروتکلهای یک لایه هیچ تأثیری روی ارتباط آن با لایههای بالاتر نخواهد گذاشت.
ایده های فوق بسیار شبیه به مفاهیم مدرن برنامهنویسی شی گرا هستند. هر شی، مانند یک لایه، متدهایی دارد که اشیا دیگر از آن استفاده میکنند. نحوه استفاده از این متدها در واقع همان سرویسهایی است که این شی در اختیار دیگران میگذارد. ورودیها و خروجیهای شی، واسط آن با دنیای خارج هستند. کد اجرایی شی نیز شبیه همان پروتکل است که نحوه عملکرد آن از دید دیگران مخفی است.
همانطور که گفته شد، مدل OSI قبل از اختراع پروتکلهای آن طراحی و ابداع شد، این بدان معناست که مدل OSI وابستگی و تمایل خاصی به هیچ مجموعه پروتکلی ندارد، این مشخصه یک نقطه ضعف نیز دارد و آن این است که طراحان تجربه چندانی در زمینه موضوع کار ندارند و واقعاً نمیدانند کدام عملکرد را باید در کدام لایه قرار دهند. برای مثال، لایه پیوند داده در ابتدا فقط برای شبکههای نقطه به نقطه یا point to point طراحی شده بود و وقتی شبکههای بزرگتر طراحی شدند، مجبور شدند یک زیر لایه به آن اضافه کنند. در مورد TCP/IP وضع برعکس بود و اول پروتکلها اختراع و توسعه داده شدند و سپس مدلی برای توصیف آنها ساخته شد.
تفاوت دیگر در زمینه اتصال گرا (Connection-Oriented) و غیر اتصال گرا (Connection-Less) میباشد. مدل OSI از هر دو نوع ارتباط اتصال گرا و غیر اتصال گرا در لایه شبکه پشتیبانی میکند ولی در لایه انتقال فقط از سرویس اتصال گرا پشتیبانی میکند (چون این سرویس در معرض دید کاربران است). مدل TCP/IP در لایه شبکه فقط سرویس غیر اتصالگرا دارد ولی در لایه انتقال از هر دو نوع ارتباط پشتیبانی میکند و دست کاربر را برای انتخاب باز میگذارد که به ویژه برای پروتکلهای ساده درخواست و پاسخ request-response بسیار مهم ا ست. مدلی که برای تشریح عملکرد پروتکل اترنت مناسب میباشد و بیشتر مورداستفاده قرار میگیرد، مدل TCP/IP است.
Encapsulation
برای یادگیری نحوه عملکرد اترنت باید ابتدا با مفهوم packet encapsulation که در بخش قبلی نیز به آن اشاره شد و نحوه به کارگیری آن در پروتکلهای شبکه آشنا شویم. هر لایه در طبقهبندی لایهها، وظیفه و کارکردی مشخص دارد. به عنوان مثال لایه فیزیکی وظیفه انتقال الکتریکی بیتها در طول رسانا را به عهده دارد. هر لایه از نتایج لایه پایینتر خود (بدون وابستگی به آن) استفاده میکند. برای توضیح مفهوم بستهبندی بستهها، میتوان از مثالی که در شکل 7 آورده شده است و تطبیق دهنده لایههای مورد استفاده توسط مرورگرهای اینترنتی با مدل TCP/IP است استفاده نمود.
اگر از لایه کاربرد شروع کنیم، مرورگر یک درخواست HTTP طبق فرمانهایی که توسط نوع کاربرد مشخص میشود صادر میکند. این درخواست به لایه TCP منتقل می شود و یک بسته از نوع پروتکل TCP شامل یک بخش سرآیند (Header ) و یک بخش داده (payload) تشکیل میشود. سرآیند شامل اطلاعات مربوط به پروتکل TCP مانند
اطلاعات ترتیب بستهها (packet sequencing information) اطلاعات بررسی بیتها (checksum) و آدرس پورت منبع و مقصد که معمولاً برای HTTP برابر 80 است، میشود. در لایه IP یک بسته اطلاعاتی (IP datagram) ، به منظور نگهداری بسته دریافت شده از لایه TCP تشکیل میشود. بسته اطلاعاتی IP شامل سرآیند IP و داده IP میشود. سرآیند IP شامل مواردی مانند نوع سرویس، اطلاعات بررسی بیتها، نوع پروتکل و آدرس IP منبع و مقصد میباشد. در بخش داده IP بسته دریافتی از TCPکه باید ارسال شود قرار میگیرد. در لایه پیوند داده و لایه فیزیکی، بسته اطلاعاتی IP برای شبکه طبق پروتکل IEEE 802.3 ارسال میشود. یک فریم از نوع MAC از بخش سرآیند و داده تشکیل شده است. سرآیند MAC شامل اطلاعاتی در مورد فریمMAC مانند آدرس MAC مقصد و طول فریم میباشد. در بخش داده، بسته اطلاعاتی IP که باید فرستاده شود قرار میگیرد. باید به این نکته دقت شود که آدرسی که هر پروتکل در فرایند بسته بندی استفاده میکند با آدرس لایههای دیگر متفاوت است، به عبارت دیگر هر لایه آدرس مخصوص به خود را استفاده میکند. مثلاً در این مثال لایه TCPاز شماره پورت استفاده میکند که بستگی به نوع پروتکل لایه کاربردی (در این مثال HTTP) دارد. بستههای IPاز آدرس IP استفاده میکنند که به صورت استاتیک یا دینامیک به آدرسهای اینترنتی تخصیص پیدا میکند و فریمهای MAC از آدرس سخت افزاری MAC استفاده میکنند.
در ادامه در مورد پروتکلهای رایج مورد استفاده در هریک از لایههای مدل TCP/IP توضیح داده شده است.
پروتکل¬های لایه کاربرد
لایه کاربرد فراهم کننده وا سط کاربری است. معمولاً زمانی که لایه کاربرد در بالای لایههای سطح پایین (مانند TCP و UDP) استفاده میشود، به آن یک شماره پورت اختصاص میدهند. به عنوان مثال همانطور که گفته شد معمولاً به پروتکل HTTP شماره پورت 80 تخصیص داده می شود. در شکل 8 پروتکلهای رایج لایه کاربرد که در اینترنت استفاده میشود نشان داده شده است.
- HTTP (Hyper Text Transfer Protocol)
- SMTP (Simple Mail Transfer Protocol)
- FTP (File Transfer Protocol)
- DNS (Domain Name System)
- DHCP (Dynamic Host Configuration Protocol)
- Telnet
- SNTP (Simple Network Time Protocol)
- SNMP (Simple Network Management Protocol)
پروتکل های لایه انتقال
لیست زیر شامل پروتکلهای رایج لایه انتقال که در اینترنت استفاده میشود میباشد.
- TCP (Transmission control protocol)
- UDP (User data gram protocol)
- ICMP (Internet Control Message Protocol)
پروتکل های لایه شبکه
لایه شبکه مشخص کننده چگونگی هدایت بستهها در طول شبکه است که شامل کیفیت سرویس (Quality Of Service)، سرویسها، قوانین آدرس شبکه برای لایه انتقال و … میباشد.
لیست زیر شامل پروتکلهای رایج لایه شبکه که در اینترنت استفاده میشود میباشد.
- IP (Internet Protocol)
- ARP (Address Resolution Protocol )
- RARP (Reverse Address Resolution Protocol)
پروتکل های لایه پیوند داده و فیزیکی
لایه فیزیکی فراهم کنندها انتقال جریان بیتها از طریق اتصالات فیزیکی است و دارای وظایفی مانند کد کردن، مالتی پلکس کردن، همزمانسازی، بازیابی کلاک، تقسیم بندی و … میباشد. وظیفه لایه پیوند داده اطمینان از انتقال مطمئن فریمها بدون وجود خطا است و وظایفی مانند ترتیب بندی فریمها، کنترل جریان فریمها و… میباشد. Ethernetیکی از رایجترین پروتکلهای لایههای فیزیکی و پیوند داده است.