در دنیای ارتباطات، پروتکل قوانینی را تعریف میکند که فرستنده و گیرنده و تمامی دستگاههای میانی باید از آنها پیروی کنند تا بتوانند به طور مؤثر با یکدیگر ارتباط برقرار کنند…
وقتی ارتباط ساده است، ممکن است فقط به یک پروتکل ساده نیاز داشته باشیم. هنگامی که ارتباطات پیچیده میشود، ممکن است لازم باشد کارهای مختلف را میان لایههای مختلف تقسیم کنیم، در این صورت به یک پروتکل در هر لایه پروتکل نیاز داریم.
اجازه دهید دو سناریو ساده را برای درک بهتر نیاز به لایهبندی پروتکل ایجاد کنیم.
سناریوی اول
در سناریوی اول، ارتباط به قدری ساده است که میتواند تنها در یک لایه انجام شود. فرض کنید ماریا و آن همسایههایی هستند که ایدههای مشترک زیادی دارند. ارتباط بین ماریا و آن در یک لایه، چهره به چهره با زبان یکسانی انجام میشود:
حتی در این سناریوی ساده، میتوانیم مشاهده کنیم که مجموعهای از قوانین باید رعایت شود. اول، ماریا و آن میدانند که هنگام ملاقات باید به یکدیگر سلام کنند. دوم، آنها میدانند که باید دایره لغات خود را به سطح دوستی خود محدود کنند. ثالثاً، هر یک از طرفین میدانند که وقتی طرف مقابل در حال صحبت است باید از صحبت کردن خودداری کند. چهارم، هر یک از طرفین میدانند که مکالمه باید یک گفتوگو باشد، نه یک مونولوگ: هر دو باید فرصت صحبت در مورد موضوع را داشته باشند. پنجم، هنگام رفتن باید چند کلمه خوب رد و بدل کنند
مشاهده میکنیم که پروتکل استفاده شده توسط ماریا و آن با ارتباط بین یک استاد و دانشجویان در یک سالن سخنرانی متفاوت است. ارتباط در مورد دوم بیشتر مونولوگ است. استاد بیشتر اوقات صحبت میکند، مگر اینکه دانشجویی سؤالی داشته باشد، وضعیتی که در پروتکل حکم میکند این است که شخص باید دست خود را بلند کند و منتظر اجازه صحبت باشد. در این حالت، ارتباط معمولاً بسیار رسمی و محدود به موضوعی است که تدریس میشود.
سناریوی دوم
در سناریوی دوم، فرض میکنیم که به آن یک موقعیت سطح بالاتر در شرکتش پیشنهاد میشود، اما باید به شعبه دیگری در شهری بسیار دور از ماریا نقل مکان کند. این دو دوست هنوز هم میخواهند به ارتباط و تبادل نظر ادامه دهند، زیرا آنها روی یک پروژه خلاقانه و یک تجارت جدید کار میکنند. آنها تصمیم میگیرند با استفاده از پست معمولی از طریق اداره پست به گفتگوهای خود ادامه دهند. با این حال، آنها نمیخواهند در صورت رهگیری نامهها، عقایدشان برای افراد دیگر فاش شود. آنها روی یک تکنیک رمزگذاری/رمزگشایی توافق دارند. فرستنده نامه آن را رمزگذاری میکند تا توسط متجاوز غیر قابل خواندن باشد. گیرنده نامه آن را رمزگشایی میکند تا نامه اصلی را دریافت کند. فرض میکنیم که ماریا و آن از یک تکنیک استفاده میکنند تا رمزگشایی حرف را در صورتی که کلیدی برای انجام آن نداشته باشد، سخت کنند. اکنون میتوان گفت که ارتباط بین ماریا و آن در سه لایه انجام میشود، همانگونه که در شکل زیر نشان داده شده است. ما فرض میکنیم که Ann و Maria هر کدام سه ماشین (روبات) دارند که میتوانند کار را در هر لایه انجام دهند.
فرض کنید ماریا اولین نامه را برای آن میفرستد. ماریا با دستگاه در لایه سوم طوری صحبت میکند که انگار دستگاه آن است و به او گوش میدهد. دستگاه لایه سوم به آنچه ماریا میگوید گوش میدهد و متن ساده (حرفی به زبان انگلیسی) را ایجاد میکند که به دستگاه لایه دوم منتقل میشود. ماشین لایه دوم متن ساده را میگیرد، آن را رمزگذاری میکند و متن رمز را ایجاد میکند که به ماشین لایه اول ارسال میشود. ماشین لایه اول، یک ربات است که متن رمز را میگیرد، آن را در یک پاکت میگذارد، آدرس فرستنده و گیرنده را اضافه میکند و آن را پست میکند.
در کنار آن، دستگاه لایه اول نامه را از صندوق پستی آن برمیدارد و نامه ماریا را با آدرس فرستنده تشخیص میدهد. دستگاه متن رمز شده را از پاکت خارج کرده و به دستگاه لایه دوم تحویل میدهد. ماشین لایه دوم پیام را رمزگشایی میکند، متن ساده را ایجاد میکند و متن ساده را به ماشین لایه سوم میدهد. دستگاه لایه سوم متن ساده را میگیرد و آن را طوری میخواند که انگار ماریا در حال صحبت است.
لایهبندی پروتکل
در دنیای شبکههای کامپیوتری لایهبندی پروتکل ما را قادر میسازد تا یک کار پیچیده را به چندین کار کوچکتر و سادهتر تقسیم کنیم. بهعنوانمثال، در شکل بالا ما میتوانستیم تنها از یک ماشین برای انجام کار هر سه ماشین استفاده کنیم. با این حال، اگر ماریا و آن تصمیم بگیرند که رمزگذاری/رمزگشایی انجام شده توسط دستگاه برای محافظت از رازداری آنها کافی نیست، باید کل دستگاه را تغییر دهند. در شرایط فعلی، آنها فقط نیاز به تغییر ماشین لایه دوم دارند. دو تای دیگر میتوانند به همین شکل باقی بمانند. به این تکنیک ماژولاریتی گفته میشود. ماژولاریتی در این مورد به معنای لایههای مستقل است. یک لایه (ماژول) را میتوان به عنوان یک جعبه سیاه با ورودی و خروجی، بدون نگرانی در مورد چگونگی تغییر ورودیها به خروجی تعریف کرد. اگر دو ماشین خروجیهای یکسانی را با ورودیهای یکسان ارائه دهند، میتوانند یکدیگر را جایگزین کنند. به عنوان مثال، آن و ماریا میتوانند دستگاه لایه دوم را از دو سازنده مختلف خریداری کنند. تا زمانی که دو ماشین یک متن رمزی مشابه را از یک متن ساده ایجاد کنند و بالعکس، کار را انجام میدهند.
یکی از مزایای لایهبندی پروتکل این است که به ما امکان میدهد خدمات را از پیادهسازی جدا کنیم. یک لایه باید بتواند مجموعهای از خدمات را از لایه پایین دریافت کند و خدمات را به لایه بالایی ارائه دهد. البته ما به نحوه پیادهسازی لایه اهمیتی نمیدهیم و تنها عملکرد است که برای ما مهم است. بهعنوانمثال، ماریا ممکن است تصمیم بگیرد که دستگاه (ربات) را برای لایه اول خریداری نکند. او خودش میتواند کار را انجام دهد تا زمانی که ماریا بتواند وظایف ارائه شده توسط لایه اول را انجام دهد در هر دو جهت، سیستم ارتباطی کار میکند.
یکی دیگر از مزایای لایهبندی پروتکل که در مثالهای ساده ما دیده نمیشود، اما زمانی که در مورد لایهبندی پروتکل در اینترنت بحث میکنیم، خود را نشان میدهد، این است که ارتباطات همیشه فقط از دو سیستم نهایی استفاده نمیکند. سیستمهای میانی وجود دارند که فقط به چند لایه نیاز دارند، اما نه همه لایهها. اگر از لایهبندی پروتکل استفاده نمیکردیم، باید هر سیستم میانی را مانند سیستمهای پایانی پیچیده میکردیم که در عمل هزینهها را چند برابر میکرد.
آیا لایهبندی پروتکل ضرری دارد؟ میتوان استدلال کرد که داشتن یک لایه کار را آسانتر میکند، زیرا دیگر ضرورتی ندارد که هر لایه به لایه بالایی و پایینی خود سرویس بدهد. بهعنوانمثال، آن و ماریا میتوانند ماشینی را بیابند یا بسازند که بتواند هر سه کار را انجام دهد. با این حال، همانطور که در بالا ذکر شد، اگر روزی متوجه شوند که کدشان خراب است، هر کدام باید به جای اینکه فقط دستگاه را در لایه دوم تغییر دهند باید کل دستگاه را با یک دستگاه جدید جایگزین کنند.
اصول لایهبندی پروتکل
اجازه دهید در مورد دو اصل لایهبندی پروتکل در انتهای مقاله صحبت کنیم.
اصل اول
اصل اول حکم میکند که اگر میخواهیم ارتباط دو طرفه داشته باشیم، باید هر لایه را طوری بسازیم که بتواند دو وظیفه مخالف، یکی در هر جهت را انجام دهد. بهعنوانمثال، وظیفه لایه سوم گوش دادن (در یک جهت) و صحبت کردن (در جهت دیگر) است. لایه دوم باید قابلیت رمزگذاری و رمزگشایی را داشته باشد. لایه اول نیاز به ارسال و دریافت نامه دارد.
اصل دوم
دومین اصل مهمی که باید در لایهبندی پروتکل رعایت کنیم این است که دو شیء زیر هر لایه در هر دو سایت باید یکسان باشند. بهعنوانمثال، شی زیر لایه سوم در هر دو سایت باید یک حرف متنی ساده باشند. شیء زیر لایه دوم در هر دو سایت باید یک حرف متنی رمزی را شامل شوند. شیء زیر لایه اول در هر دو سایت باید یک قطعه از اطلاعات را شامل شود.
اتصالات منطقی
پس از پیروی از دو اصل فوق، میتوانیم در مورد اتصالات منطقی بین هر لایه همانطور که در شکل زیر نشان داده شده است فکر کنیم. یعنی ارتباط لایه به لایه داریم. ماریا و آن میتوانند فکر کنند که در هر لایه یک ارتباط منطقی وجود دارد که از طریق آن میتوانند شی ایجاد شده از آن لایه را ارسال کنند. اتصال منطقی به ما کمک میکند تا وظیفه لایهبندی را که در ارتباطات داده و شبکه با آن مواجه میشویم، بهتر درک کنیم.
منبع: مجله شبکه
اگر این مطلب براتون مفید بود پیشنهاد میکنم مقاله”چرا به لایهبندی پروتکلها در دنیای شبکه نیاز داریم؟” را مطالعه کنید