مقایسه لایه های مدل OSI و مدل TCP/IP
چکیده
مدل مرجع OSI و مدل مرجع TCP/IP نقاط مشترک زیادی دارند. هر دوی آنها مبتنی بر مجموعهای از پروتکل های مستقل هستند، و عملکرد لایهها نیز تا حدی شبیه یکدیگر است. مدل OSI ثابت کرده که بهترین ابزار برای توصیف شبکههای کامپیوتری است. اما پروتکل های TCP/IP در مقیاس وسیعی مورد استفاده قرار میگیرد. این دو مدل تفاوت هایی با هم دارند که در زیر به برخی از آنها اشاره می کنیم:
- در مدل TCP/IP تفاوت سرویس ها، واسط ها و پروتکل ها واضح و مشخص نمیباشد.
- پروتکلهای OSI بهتر از TCP/IP مخفی شده است.
- قبل از ایجاد مدل OSI پروتکلهای آن طراحی و ابداع شد. در نتیجه این مدل وابستگی و تعامل خاصی با هیچ مجموعه پروتکلی ندارد. اما در TCP/IP مسئله برعکس بود و این خود باعث شده که مدل TCP/IP تنها برای شبکههای تحت خود مناسب باشد.
- مدل OSI دارای هفت لایه است اما مدل TCP/IP، چهار لایه دارد و از لایه ارائه و لایه نشست خبری نیست.
- لایه شبکه در مدل OSI اتصال گرا و غیر مستقیم است و لایه انتقال آن تنها اتصال گرا است اما در TCP/IP لایه شبکه الزاما غیر متصل و لایه انتقال آن اتصال گرا(TCP) یا غیر متصل(UDP) است.
مدل OSI
مدل OSI یا Open System Interconnectionیک مدل مرجع برای ارتباط
بین دو کامپیوتر می باشد که در سال 1980 طراحی گردیده است. هر چند امروزه
تغییراتی درآن به وجود آمده اما هنوز هم کاربردهای فراوانی در اینترنت و به
خصوص در معماری پایه شبکه دارد. این مدل بر اساس لایه بندی قراردادهای
برقراری ارتباط که همزمان روی دو سیستم مرتبط اجرا شده اند پایه ریزی شده
است که این امر بسیار سرعت و دقت ارتباط را افزایش می دهد و این قراردادها
بصورت طبقه طبقه در هفت لایه تنظیم شده اند که در زیر بررسی خواهند شد.
بررسی هفت لایه مدل OSI
لایه فیزیکی
لایه پیوند داده ها
لایه شبکه
لایه انتقال
لایه جلسه
لایه ارائه
لایه کاربرد
استانداردهای ارتباط بین نرم افزارهای شبکه در این لایه قرار دارد که می توان از: FTAM, CMIP, MHS VT نام برد.
مدل TCP/IP یا Internet protocol /Transmission Control Protocol
مفهوم TCP/IP
TCP/IP مجموعه قراردادهایی هستند که در جهت اتصال کامپیوتر ها در
شبکه مورد استفاده قرار می گیرند. وبه تعریف دیگر قرارداد کنترل انتقال
اطلاعات می باشد. مدل چهار لایه TCP/IP از لایه های زیر تشکیل شده است.
لایه کاربرد
لایه انتقال
لایه شبکه
لایه واسطه شبکه
لایه فیزیکی
لایه واسط شبکه
در این لایه تمام استانداردهای سخت افزاری و انواع پروتکل شبکه تعریف شده که خاصیت بزرگ این لایه این موضوع می باشد که در آن می توان بین نرم افزار و سخت افزار شبکه ارتباط برقرار کرد.
لایه شبکه
در این لایه پروتکل IP آدرس دهی و تنظیم می شود.(توضیحات در قسمت IP ) و همچنین دیگر پروتکل ها مانند ARP,ICMP,BOOTP که در این میان نقش هیچکدام به اندازه IP , ICMP مهم نیست در کل وظیفه این لایه دادن اطلاعات در مورد شبکه و آدرس دهی در آن می باشد که مسیر یابها از آن بسیار استفاده می کنند.
لایه انتقال
ابتدایی ترین وظیف این لایه آگاهی از وضعیت بسته ها می باشد که بسیار مهم نیز هست. و در مرحله بعد وظیفه این لایه انتقال اطلاعاتی می باشد که نیاز به امنیت ندارند و سرعت برای آنها مهم تر است.
لایه کاربرد
این لایه دارای امکانات زیادی برای هنر نمایی متخصصان می باشد. در این لایه برنامه های کاربردی قرار دارند و در کل این لایه لایه ی نرم افزارهای شبکه می باشد و همچنین لایه پروتکل های نرم افزاری نیز می باشد. از مهم ترین نکات در خصوص این لایه قرارداشتن: انتقال فایل (FTP) و مدیریت پست (SMTP) و بقیه برنامه های کاربردی می باشد.
پروتکل اینترنت یا IP
حتما همه شما عزیزان واقف به این موضوع هستید که IP یکی از مهمترین قسمتهای TCP/IP و شاید بتوان گفت مهمترین قسمت آن زیرا تقریبا شما برای هر کاری نیاز به آن خواهید داشت لذا بسیار ضروری و حیاتی می باشد که شما اطلاعات خود را در زمینه این مهم افزون کنید. IP یک آدرس عددی است که برای ارتباط با شبکه به هر ماشینی در شبکه اختصاص داده می شود (چون IP برای وسایلی از قبیل ROUTER و MODEM و LAN و … استفاده می شود ما اصطلاحا به جای نام بردن تک تک آنها همه را ماشین می نامیم ).
وظیفه IP
وظیفه پروتکل IP حمل و تردد بسته های حاوی اطلاعات و همچنین مسیر یابی آنها از مبدا تا مقصد است. IP پس از دریافت اطلاعات از TCP شروع به قطعه قطعه کردن آن به قطعه های کوچک به اسم FRAGMENT می نماید، پس از این مرحله برای هر FRAGMENT یک بسته IP می سازد که حاوی اطلاعات مورد نیاز بسته برای حرکت در طول شبکه می باشد و بسته IP را به بسته TCP اضافه می کند و شروع به ارسال بسته های تیکه تیکه شده(FRAGMENT) می نماید حال مسیر یابها بر اساس تنظیمات قسمت IP بسته ها را به مقصد خود هدایت می کنند و آن را داخل زیر شبکه ها هدایت می کنند.
خصوصیات IP
بسته IP حد اکثر 64 کیلوبایت فضا را اشغال خواهد کرد و بیشتر از آن نمی تواند باشد ولی موضوع جالب اینجاست که در حالت عادی حجم بسته حدود 1600 بایت بیشتر نمی شود. IP در تمامی سیستم های عامل با ساختار استانداردی که دارد به درستی کار می کنند و نیاز به هیچ نوع سخت افزار ندارد. بسته IP ساخته شده از تعدادی فیلد مجزا می باشد که هر کدام اطلاعاتی را در خود دارند که در زمان مورد نیاز این اطلاعات از داخل بسته ها استخراج می شود و مورد استفاده قرار می گیرد این اطلاعات شامل مواردی مثل:آدرس IP فرستنده. آدرس IP گیرنده و ….. می باشد.
آدرس های ویژه IP
این آدرسها نمونه هائی از آدرس های IP خاص هستند که از قبل برای مقاصد خاصی در نظر گرفته شده اند و در تعریف شبکه نمی توان از آنها به عنوان IP برای ماشینها استفاده کرد. از این آدرس در مواردی استفاده می شود که ماشین میزبان از IP خود بی اطلاع است.البته اگر از این آدرس به عنوان آدرس فرستنده استفاده شود هیچ جوابی برای فرستنده پس فرستاده نمی شود.
HostId.0
ین آدرس برای زمانی است که از آدرس خود در زیرشبکه بی اطلاع باشیم
255.255.255.255
از این آدرس برای ارسال پیامهای به صورت عمومی و فراگیر در شبکه استفاده می شود البته با استفاده از این آدرس می توان در زیر شبکه خود پیام فراگیر ارسال کرد.
NetId.255
از این آدرس برای ارسال پیامهای فراگیر در دیگر شبکه ها از خارج از آنها استفاده می شود.البته این سرویس تقریبا در بیشتر اوقات از سوی مدیران شبکه غیر فعال می شود.
مقایسه مدلهای OSI و TCP/IP
شاید بزرگترین دستاورد مدل OSI روشن ساختن مفاهیم فوق (و تفکیک آنها) باشد.هر لایه سرویس هایی در اختیار لایه های بالاتر از خود قرار می دهد.تعریف این سرویس ها فقط می گوید که یک لایه چه کاری انجام می دهد، و هیچ حرفی در مورد نحوه انجام آنها و چگونگی استفاده از سرویس ها نمی زند.
تعریف چگونگی دسترسی به سرویس های یک لایه بر عهده واسط است.واسط پارامتر های ورودی لازم ، و نتیجه ای را که باید منتظر آن باشید، تعریف می کند.حتی واسط هم نمی گوید که یک لایه کار خود را چگونه انجام می دهد. و بالاخره، کاری را که یک لایه انجام می دهد را پروتکل های آن لایه تعریف می کنند.یک لایه مادامی که کار خود را درست انجام دهد، می تواند از هر پروتکلی استفاده کند.تغییر پروتکل های یک لایه هیچ تاثیری روی ارتباط آن با لایه های بالاتر نخواهد گذاشت.
ایده های فوق بسیار شبیه به مفاهیم مدرن برنامه نویسی شئ گرا هستند.هر شئ، مانند یک لایه، متدها (عملکردها) یی دارد که اشیا دیگر از آن استفاده می کنند.نحوه استفاده از این متدها در واقع همان سرویس هایی است که این شئ در اختیار دیگران می گذارد.ورودی ها و خروجی های شئ واسط آن با دنیای خارج هستند. کد اجرایی شئ نیز شبیه همان پروتکل است، که نحوه عملکرد آن از دید دیگران مخفی است.
در مدل اولیه TCP/IP تمایز بین سرویس ها، واسطها و پروتکل ها واضح و مشخص نبود، اگر چه افرادی (با توجه به تجربه موفق OSI ) سعی کرده بودند آن را هر چه بیشتر شبیه OSI کنند.برای مثال لایه اینترنت فقط دو سرویس واقعی به نامهای SEND IP PACKET و RECEIVE IP PACKET داشت.با توجه به این وضع، پروتکل های OSI نهتر از TCP/IP مخفی شده اند، و امکان تغییر آنها به راحتی وجود دارد، چیزی که هدف غایی طراحی لایه ای محسوب می شود. مدل OSI قبل از اختراع پروتکل های آن طراحی و ابداع شد.این بدان معناست که مدل OSI وابستگی و تمایل خاصی به هیچ مجموعه پروتکلی ندارد، چیزی که در سایر مدل ها بسیار دیده می شود. البته این وضعیت یک نقطه ضعف نیز داردو آن این است که طراحان تجربه چندانی در زمینه موضوع کار ندارند، و واقعا نمی دانند کدام عملکرد را باید در کدام لایه قرار دهند.برای مثال ،لایه پیوند داده در ابتدا فقط برای شبکه های نقطه-به-نقطه طراحی شده بود، وقتی شبکه های بخشی وارد بازار شد، مجبور شدند یک زیر لایه به آن اضافه کنند.
وقتی که افراد شروع به طراحی شبکه با استفاده از مدل OSI و پروتکل های موجود کردند، به زودی دریافتند که این شبکه ها با سرویس های مورد نیاز انطباق ندارند.بنابر این مجبور شدند زیر لایه های زیادی به آن وصله پینه کنند.بالاخره، کمیته استاندارد مقرر کرد که هر کشور برای خود یک مدل منطبق با مدل OSI (تحت نظارت دولت) داشته باشد،شبکه ای که به هیچ عنوان آینده (اینترنت) در آن دیده نشده بود.خلاصه، کارها آنطوری که انتظار داشتند از آب در نیامد. در مورد TCP/IP وضع بر عکس بود:اول پروتکل ها اختراع و توسعه داده شدند، و سپس مدلی برای توصیف آنها ساخته شد.هیچ مشکلی در زمینه انطباق پروتکل ها با مدل وجود نداشت.همه چیز جفت و جور بود،تنها مشکل این بود که این مدل با هیچ مجموعه پروتکل دیگری جور در نمی آمد.
این بدان معنا بود که مدل TCP/IP به درد توصیف شبکه های غیر TCP/IP نمی خورد. جدای از مسایل فلسفی قضیه، تفاوت دیگر در تعداد لایه های این دو مدل است: مدل OSI هفت لایه دارد و مدل TCP/IP چهار لایه.لایه های شبکه، انتقال و کاربرد در هر دو مشترک اند، ولی لایه های دیگر فرق دارند. تفاوت دیگر در زمینه اطلاعات اتصال-گرا و غیر متصل است.مدلOSI از هر دو نوع ارتباط اتصال-گرا و متصل در لایه شبکه پشتیبانی می کند، ولی در لایه انتقال فقط سرویس اتصال-گرا دارد (چون این سرویس در معرض دید کاربران است). مدل TCP/IP در لایه شبکه فقط سرویس غیر متصل دارد، ولی درلایه انتقال از هر دو نوع ارتباط پشتیبانی می کند، و دست کاربر را برای انتخاب باز می گذارد ( که به ویژه برای پروتکل های ساده درخواست – پاسخ بسیار مهم است).
نقد مدل OSI و پروتکل های آن
مدل OSI و TCP/IP ( و پروتکل هایشان) هیچکدام کامل نیستند و جا دارد برخی از نقاط ضعف آنها را برشماریم.در این قسمت، برخی از نقاط ضعف مدل های OSI و TCP/IP را برسی خواهیم کرد.با مدل OSI شروع می کنیم. در سال 1989، بسیاری متخصصان برجسته شبکه بر این باور بودند که آینده در بست متعلق به مدل OSI و پروتکل های آن است، و هیچ چیز نمی تواند در مقابل پیشرفت آن مقاومت کند.اما این اتفاق نیفتاد.چرا؟ نگاهی به گذشته درسهای بسیاری را برای چشمان عبرت بین دارد،که می توان آنها را چنین خلاصه کرد: 1. زمان نا مناسب 2. تکنولوژی نامناسب 3. پیاده سازی نامناسب 4. سیاست های نامناسب
زمان نامناسب
اولین عامل شکست مدل OSI زمان نامناسب بود.زمانی که یک استاندارد وضع می شود، اهمیت حیاتی در موفقیت و عدم موفقیت آن دارد.دیوید کلارک از دانشگاه M.I.T فرضیه ای در زمینه استانداردها دارد که ملاقات فیل ها معروف استد. این نظریه میزان فعالیت های حول یک موضوع جدید را نشان می دهد.وقتی موضوعی برای اولین بار کشف می شود، گرداگرد آن سیلی از فعالیت های تحقیقی ( به شکل بحث، مقاله و سخنرانی) فرا می گیرد.بعد از مدتی این فروکش می کند و بعد از اینکه صنعت به این موضوع علاقه مند شد، موج سرمایه گذاری ها از پی می آید. بسیار مهم است که در محل تلاقی این دو فیل ( موج تحقیق و موج سرمایه گذری) استانداردها به طور کامل وضع شوند.اگر استاندارد زودتر از موعد( قبل از پایان تحقیقات) نوشته شود، خطر آن هست که موضوع به درستی درک نشده باشد و استاندارد ضعیف از آب در آید.اگر استاندارد دیرتر از موعد(بعد از شروع موج سرمایه گذاری) نوشته شود، شرکتهای بسیاری قبلا –از مسیرهای مختلف- در آن سرمایه گذاری کرده اند،و این خطر هست که استانداردهای آنها را نادیده بگیرد. اگر فاصله این دو فیل خیلی کم باشد (همه عجله داشته باشند که کار را زودتر شروع کنند)، خطر آن هست که استاندارد نویسان بین آنها له شوند. اکنون معلوم شده است که پروتکل های استاندارد OSI بین فیل ها له شده اند.وقتی که پروتکل های OSI پا به عرصه وجود گذاشتند، پروتکل های رقیب (TCP/IP ) مدت ها بود که در مراکز تحقیقاتی و دانشگاه ها پذیرفته شده بودند.با اینکه هنوز موج سرمایه گذاری صنعتی در TCP/IP شروع نشده بود.اما بازار آکادمیک آنقدر بزرگ بود که شرکتهای بسیاری را تشویق به تولید محصولات TCP/IP کند.و وقتی OSI بالاخره از راه رسید،کسی نبود که داوطلبانه از آن پشتیبانی کند.همه منتظر بودند دیگری قدم اول را بر دارد.، قدمی که هرگز برداشته نشد د OSIدر نطفه خفه شد.
تـکنولوژی نامناسب
دلیل دیگری که OSI هرگز پا نگرفت آن بود که، این مدل و پروتکل های آن هر دو ناقص و معیوب بودند.انتخاب هفت لایه برای این مدل بیشتر یک انتخاب سیاسی بود تا فنی، و در حالی که دو لایه آن (نشست و نمایش) تقریبا خالی بودند،در لایه های دیگر (لینک داده و شبکه) جای نفس کشیدن نبود. مدل OSI (و سرویس ها و پروتکل های آن) به طور باور نکردی پیچیده است.اگر کاغذهای چاپی این استاندارد را روی هم بچینید.ارتفاع آن از نیم متر هم بیشتر خواهد شد.پیاده سازی پروتکل های OSI بسیار دشوار، و عملکرد آنها ناقص است.در این رابطه، نقل جمله جالبی از پاول موکاپتریس (1993،Rose ) خالی از لطف نیست: سوال: از ترکیب یک گانگستر با یک استاندارد بین المللی چه چیزی بدست می آید؟ جواب: کسی پیشنهادی به شما می کند که از آن سر در نمی آورید. مشکل دیگر مدل OSI ،علاوه بر غیر قابل فهم بودن آن، این است که برخی از عملکرد های آن ( مانند آدرس دهی، کنترل جریان داده ها و کنترل خطا)در تمام لایه ها تکرار می شود.برای مثال، سالتزر و همکارانش (1984) نشان دادند که کنترل خطا باید در بالاترین لایه انجام شود تا بیشترین تاثیر را داشته باشد،بنابراین تکرار آن در لایه های پائین تر نه تنها غیر ضروری است، بلکه باعث افت کارایی هم خواهد شد.