بررسی ارتباط unicast در سطح شبکه

۰۷ شهریور ، ۱۳۹۷

در این مقاله سعی داریم تا با مفاهیم پایه ای یک ارتباط یک به یک در سطح شبکه آشنا شویم.

ابتدا یک تاریخچه از دستگاه‌های داخل شبکه را بیان می‌کنیم. در سال‌های ابتدایی راه اندازی شبکه‌های کامپیوتری، بستر شبکه ما بر روی توپولوژی Bus قرار داشت که به دلیل collision packet و پایین بودن سرعت این نوع شبکه‌ها، بعدها سراغ توپولوژی ستاره‌ای رفتیم که در این شبکه‌ها ما از دستگاه‌ها و تجهیزات خاصی استفاده می‌کردیم. در واقع در توپولوژی Bus همه سیستم‌ها بر روی بستر Backbone که در واقع یک کابل بود قرار می‌گرفتند و برای ارتباط با یک دیگر باید ابتدا یک سیگنال به سر کابل می‌فرستادند و اگر مطمئن می‌شدند که سیگنال دیگری روی خط نیست سیگنال خود را ارسال می‌کردند و یک کپی از هر دیتا بر روی تمام سیستم‌ها ایجاد می‌شد، چراکه فهم این تجهیزات شبکه درآن زمان در سطح لایه یک یعنی لایه فیزیکی از مدل OSI بود.

بعدها که سراغ توپولوژی star رفتیم در این شبکه‌ها بستر backbone یا اصلی ما بر روی دستگاه‌هایی به نام hub قرار داشتند که به لحاظ ظاهری شبیه به سوییچ بودند اما فهم این دستگاه‌ها تا لایه یک از مدل OSI بودند. اما تفاوتی که با شبکه Bus داشتند این بود که در شبکه star از کابل‌های شبکه twisted pair استفاده شد و هر سیستمی با استفاده از این کابل به دستگاه hub وصل می‌شدند، برخلاف توپولوژی Bus که در آن باید سیستم‌ها به کابل اصلی متصل شوند.

حال به سراغ نحوه ارتباط در شبکه‌های ستاره‌ای با وجود دستگاه hub می‌رویم. در این شبکه‌ها هر سیستمی که می‌خواست دیتایی ارسال کند باید ابتدا یک سیگنال به سر کابل می‌فرستاد و سپس دیتای خود را به سمت hub ارسال می‌کرد، در داخل hub هم چون گفتیم فهم این دستگاه در سطح لایه یک است، این دیتا را بجز از پورتی که دریافت کرده بود برای بقیه پورت‌ها ارسال می‌کرد و به این ترتیب به طور مثال اگر شبکه‌ای متشکل از هشت سیستم داشته باشیم و سیستم شماره ۱ بخواهد دیتایی برای سیستم شماره ۸ ارسال کند، این دیتا به سمت hub فرستاده و سپس از آنجا برای تمام سیستم‌ها ارسال می‌شد حال سیستم ها باید آن دیتا را باز میکردند و فقط سیستم شماره 8 میتوانست به این دیتا پاسخ دهد. حال برای جواب دادن هم به همین شکل دیتا برای تمام سیستم ها ارسال میشد تا به دست سیستم شماره ۱ بیافتد. حال فرض کنید که سیستم شماره ۸ در جواب یک دیتا را اشتباه وارد می‌کند و این به این معنی است که تمام پروسه باید از اول آغاز شود. پس بنابراین مشاهده می‌کنیم که این نوع از ارتباط به دلیل اینکه دیتا بر روی همه سیستم‌ها قرار می‌گیرد اولا ناامن است، هم اینکه سرعت این نوع شبکه‌ها بسیار پایین است و down time برای ما زیاد است.

راهکاری که برای ما در نظر گرفته شد این بود که دستگاه خود را طوری طراحی کنیم که بتوانیم ارتباط خود را بصورت unicast برقرار کنیم. بنابراین به سراغ طراحی دستگاه‌هایی رفتیم که امروزه به عنوان سوئیچ شناخته می‌شود.

حال می‌خواهیم بررسی کنیم که این سوئیچ‌ها به چه نحوی کار می‌کنند:

ابتدا با دو مفهوم آشنا می‌شویم:

1- mac address

2-ip address

طبق مدل‌های OSI ما هفت لایه داریم که هر کدام وظیفه خاصی انجام می‌دهند، از لایه یک شروع کردیم که درواقع لایه فیزیکی ما بود که اکثر تجهیزات شبکه برروی این لایه قرار دارند و سپس به لایه‌های بالاتر می‌رویم که لایه دوم یا همان data link است که وظیفه مدیریت لایه فیزیکی را دارد و همچمین چیزی اینجا تعریف می‌شود به نام mac address که همان شماره فیزیکی کارت شبکه ما است که در واقع شرکت سازنده این کارت شبکه یک کد کاملا unique را در هنگام ساخت به هر کارت شبکه اختصاص می‌دهد. سپس به لایه ۳ می‌رویم که به این لایه network layer گفته می‌شود و در این لایه آدرس‌های IP برای ما تعریف می‌شوند. که در سطح یک شبکه هر کدام از سیستم‌ها یک IP به خود اختصاص می‌دهند. همچنین یک پروتکلی در سطح لایه دو داریم که کار آن تبدیل کردن آدرس های IP به آدرس های فیزیکی می‌باشد که به این پروتکل Arp گفته می‌شود.

بعد از آشنایی با این مفاهیم سراغ نحوه کار می‌رویم. در واقع به این صورت است که وقتی هر سیستمی با استفاده از کابل شبکه به سوئیچ وصل می‌شود در سوئیچ چیزی به نام mac table وجود دارد که در واقع لیستی از تمام آدرس‌های Mac می‌باشد که به این سوئیچ متصل هستند. نحوه پر کردن این لیست هم به این صورت است که سوئیچ هر چند دقیقه یک بار یک پیغام broad cast بر روی تمام پورت‌های خود ارسال می‌کند و از همه درخواست می‌کند که آدرس mac خود را ارسال کند، به این ترتیب سوئیچ در لیست خود می‌داند که هر پورت متعلق به کدام mac address می‌باشد که در واقع سوئیچ‌های لایه دو به این شکل کار می‌کنند.

حال فرض می‌کنیم که یک شبکه با هشت سیستم داریم که هر کدام با کابل به سوئیچ وصل می‌شوند. به طور مثال سیستم شماره ۱ با ۸ میخواهد ارتباط برقرار کند. می‌دانیم که هر سیستم یک computer name دارد اگر سیستم شماره ۱ سیستم شماره هشت را از طریق computer name آن صدا کند ابتدا این نام باید به IP تبدیل شود که این کار را پروتکل netbios انجام می‌دهد. در هر حال سیستم شماره ۱ از لایه هفت شروع به پر کردن لایه‌های OSI می‌کند به لایه سوم که می‌رسد در قسمت source ip آدرس IP خود را وارد می‌کند و در قسمت Destionation ip هم آدرس IP سیستم شماره ۸ را که از طریق پروتکل netbios به دست آورد قرار می‌دهد. حال سراغ لایه دوم می‌رود در این لایه هم مانند لایه سه دو بخش داریم که در قسمت source mac آدرس mac خود را قرار می‌دهد و برای قسمت destination mac هم اینجا از پروتکل arp استفاده می‌کند و در سطح سوئیچ پیغامی broadcast می‌‌کند که این destination ip که در لایه سوم به دست آمد چه آدرس فیزیکی دارد و از این طریق قسمت Destination mac را هم در لایه دوم پر کرده و packet را به لایه یک ارسال کرده و دیتا رابصورت کدهای آنالوگ آماده ارسال در سطح شبکه می‌کند. این بسته وارد سوئیچ می‌شود و در اینجا سوئیچ ما در سطح لایه دوم کار می‌کند پس سراغ لایه دوم این بسته می‌شود و مشاهده می‌کند که این بسته با یک آدرس فیزیکی درقسمت destination mac کاردارد حال سوئیچ به mac table خود مراجعه می‌کند و می‌بیند که این آدرس mac که مشخص شده بر روی کدام پورت خود قرار دارد. اگر این مقصد در mac table وجود داشته باشد، سوئیچ این بسته را بر روی همان پورت برای سیستم شماره ۸ ارسال می‌کند و اگر چنین مقصدی وجود نداشته باشد این بسته توسط سوئیچ drop می‌شود. برای جواب هم دوباره به همین شکل سیستم شماره هشت از لایه هفت شروع کرده و هر لایه را پر می‌کند تا بسته به دست مقصد برسد و به این صورت ارتباط ما بصورت unicast یا همان یک به یک خواهد بود و دیتای هر شخص برای مقصد خود ارسال می‌شود. این نوع ارتباط یک به یک در سطح یک شبکه وجود داشت، در مقالات بعدی سعی خواهیم کرد نحوه ارتباط unicast در بین دو شبکه با وجود روتر را هم به صورت مختصر بیان کنیم.


میانگین آرا:
100% (5 نفر)
رای دهید:
مقالات مرتبط
مشاهده بیشتر...