تصور کنید دو کامپیوتری که در شبكههای مختلفی قرار دارند، بخواهند دادهای را بین هم جابجا نمایند. ارتباط بین دو کامپیوتر صرفاً با دو لایه Physical و DataLink امکان پذیر نمیباشد. زیرا کامپیوترها در شبكههای مختلفی قرار دارند که ممکن است حتی نوع Interface در دو شبکه مختلف، یکسان نباشد.
مثلاً کامپیوتر مبدأ در شبکه Ethernet و کامپیوتر مقصد در شبکه Token-Ring قرار داشته باشد. نوع فریم و نوع آدرسدهی در این دو شبکه کاملاً متفاوت است. لذا فریم ارسالی توسط مبدأ، بهوسيله مقصد قابل درک نیست. مبدأ نمیتواند از آدرس مقصد مطلع باشد زیرا نوع آدرسدهی این دو شبکه کاملاً متفاوت است. حتی اگر نوع شبکهها نيز یکسان باشد باز معمولاً مبدأ از آدرس مقصد اطلاع ندارد زیرا مقصد در شبکهای قرار دارد که تحت مدیریت متفاوتی است.
به دلایل فوق ارتباط دو کامپیوتر که در دو شبکه مختلف قرار دارند، از طریق لایه Physical و DataLink امکانپذیر نمیباشد.
برای ارتباط بین کامپیوترهایی که در شبكههای مختلف قرار دارند از دستگاههایی به نام روتر استفاده میشود که 3 لایه پائینی شبکه را پشتیبانی مینمایند. روترها به ازاء هر شبکهای که به آن متصل میشوند، Interfaceی از نوع همان شبکه دارند.
در شكل زير، کامپیوتر مبدأ، بستهای را به روتری که در همان شبکه خودش قرار دارد تحویل میدهد. بدیهی است که این ارتباط با استفاده از دو لایه پائینی امکان پذیر است (زيرا در يک شبکه قرار دارند). سپس روتر، بسته را به کامپیوتر مقصد که در شبکه دیگری اما متصل به همین روتر است، تحویل میدهد.
ارتباط بين دو كامپيوتر در دو شبكه مختلف از طريق روتر
شبکههای مختلف از طریق روترها به يکديگر متصل میشوند. روتر قادر است ارتباط بین کامپیوترهای انتهایی را که در شبكههای مختلفی قرار دارند برقرار نماید.
برقراري ارتباط بين شبكهها از طريق روتر
در شکل فوق برای آنکهPC1 دادهای را به PC2 ارسال نماید، داده را تحویل Router1 میدهد. Router1 بعد از انجام مسیریابی (پیدا کردن مسیر خروجی) داده را تحویل Router4 میدهد و نهایتاً Router4 داده را تحویل PC2 یعنی مقصد میدهد.
چه مولفههایی مورد نیاز است تا روتر بتواند ارتباطات بین کامپیوترهایی که در شبكههای مختلف قرار دارند را ایجاد نماید؟
- سيستم آدرسدهي مستقل از Interface مانند آدرسدهي IP (آدرسدهی منطقی، یا آدرسدهي در لایه 3)
- مسیریابی (Routing)
- تبدیل آدرس لایه 3 (آدرس منطقی) به آدرس لایه 2 (آدرس فیزیکی)
ضرورت هر یک از مولفههای مذکور در ذیل شرح داده خواهد شد.
- منظور از آدرسدهي مستقل از Interface، این است که مبدأ بتواند آدرس مقصد را مستقل از اینکه مقصد در چه نوع شبکهای قرار دارد، بداند. این آدرس باید در همه شبکهها به شکل یکسان عمل نماید.
- منظور از مسیریابی این است که روتر، Packet دریافتی را براساس آدرس لایه 3 مقصد، مسیریابی نماید. به عبارت دیگر روتر براساس آدرس لایه 3 مقصد، مسیر خروجی را پیدا نماید و Packet را تحویل روتر بعدی بدهد تا زمانی که Packet به مقصد برسد.
به این عمل در روتر، مسیریابی گفته میشود (Routing) که با استفاده از جدول مسیریابی (Routing table) که در روترها قرار دارد، انجام میگیرد.
برای درک بهتر لایه InterNetwork شبکهای را در پائین تشریح نموده و مسیر Packet را از مبدأ تا مقصد دنبال خواهیم نمود.
- Packet، واحد داده در لايه 3 ميباشد.
دنبال كردن Packet از PC1 تا PC11
در شکل فوق آدرسهای Physical (لایه 2) و منطقی (لایه 3)، برای Interfaceهایی که در تحلیل انتقال Packet، از مبدأ تا مقصد مورد نیاز میباشند، نشان داده شده است.
آدرس لایه 2، از نوع Ethernet و آدرس لایه 3 از نوع IP میباشد. آدرس Ethernet 6 بایتی است که با 12 رقم هگزا دسیمال نشان داده شده است. آدرس IP، 4 بایتی است و با 4 رقم دسیمال نشان داده شده است.
هر سه شبکهي نشان داده شده در شکل، از نوع Ethernet هستند. بدیهی است که دلیل انتخاب Ethernet راحتتر بودن تشریح عملکرد Routing (مسیریابی) است اما این مسئله ضروری نیست. PC1 قصد دارد دادهای را بهPC11 ارسال نماید. اين پروسه به شرح ذیل می باشد:
1)PC1 دادهای را آماده مینماید. آدرس مبدأ و آدرس مقصد لایه 3 را در قالب فرمت IP به داده اضافه مینماید. بدیهی است که PC1 باید آدرس IP مقصد را بداند. البته میدانیم کاربری که میخواهد با مقصدی ارتباط برقرار نماید، نام مقصد را ميداند (www.yahoo.com). پروتکلی به نام DNS در پشت صحنه، نام را به آدرس IP مقصد تبديل ميكند. در مورد پروتکل DNS در این کتاب بحث نمیشود و فرض میکنیم که مبدأ، آدرس IP مقصد را میداند.
داده بستهبندي شده در لايه 3 (L3 Encapsulation)
2) مبدأ از روی آدرس مقصد متوجه میشود که مقصد در شبکه مبدأ قرار ندارد (چرا؟).
آدرس مبدأ: 192.168.1.X
آدرس مقصد: 192.168.3.X
در مورد نحوه آدرسدهي IP در فصل چهارم بحث میگردد.
لذا بدیهی است که مبدأ باید Packet را تحویل روتری که به همان شبکه متصل است بدهد. (اگر مقصد در همان شبكه باشد، داده را مستقيماً به مقصد و در غير اين صورت از طريق Router به مقصد ارسال مينمايد). میدانیم ارتباطات داخل شبکه از طریق آدرسدهي لایه 2 Ethernet) در این مثال) انجام میشود. لذا مبدأ باید این Packet را مجدداً در لايه 2 بستهبندی (Encapsulation) نماید و با قرار دادن آدرس مبدأ و مقصد لایه 2 آن را تحویل روتر دهد.
بستهبندي لايه 2 (L2 Encapsulation)
اما مبدأ، آدرس فيزيكی روتر را از کجا بیاورد؟
نخست باید بدانید که مبدأ باید آدرس IP روتر را بداند. مدیر شبکه باید پيشتر آدرس روتر را تحت عنوان gateway (یا GW) روی PC تنظیم نماید. در صورت عدم پیکربندی این آدرس در PCهای داخل یک شبکه، PCها هیچگاه قادر نخواهند بود ارتباطات خارج شبکهای را برقرار نمایند.
اما این آدرس، آدرس IP روتر است و مبدأ برای تکمیل فریم، نیاز دارد تا آدرس MAC روتر را بداند. برای تکمیل این پروسه، از " تبدیل آدرس لایه 3 به آدرس لایه 2 " استفاده مینماید (در شبكه Ethernet اين پروسه، ARP ناميده ميشود).
3) مبدأ با استفاده از پروسهي "تبدیل آدرس لایه 3 به آدرس لایه 2 " از روی آدرس IP، آدرس MAC روتر را بدست میآورد. نام این پروسه در شبکه Ethernet، ARPاست. این پروسه در ادامه، تشریح خواهد شد، در این نقطه فرض میکنیم که مبدأ با داشتن آدرس IP روتر، آدرس MAC آن را بدست میآورد. لذا مبدأ، فریم خود را تکمیل و آماده ارسال مینماید.
تكميل بستهبندي در لايه 2
4) مبدأ، فریم را روی بستر فيزيكی ارسال مینماید. تمام Interfaceهایی که روی این بستر فيزيكی قرار دارند، فریم را دریافت میکنند اما تنها Interfaceی که این فریم را پردازش میکند، Interfaceی است که آدرس فيزيکی آن با آدرس فيزيکی مقصد موجود در فریم مطابقت داشته باشد.
لذا Router1 فریم را دریافت و پردازش میکند. فراموش نشود که هدف Router1 مسيريابي بسته دريافتي با توجه به آدرس IP مقصد و جدول مسيريابي است.
Router1، آدرس IP مقصد را از روی Packet دریافتی استخراج میکند (192.168.3.10)، سپس به جدول مسیریابی مراجعه نموده و مسیر خروجی این Packet را پیدا میکند.
محتویات جدول مسیریابی Router1 که پيشتر توسط مدیر شبکه پیکربندی شده است به صورت زیر میباشد:
جدول مسيريابي Router1
روتر از روی جدول مسیریابی تشخیص میدهد که برای آنکه Packet دریافتی به مقصد مورد نظر ارسال شود (192.168.3.10) باید Packet را از روی اينترفيس e1 خارج نماید و آن را به روتر بعدی تحویل دهد. آدرس روتر بعدی 192.168.2.2 میباشد.
ممکن است این سؤال در ذهن خواننده ایجاد شده باشد که محتویات جدول مسیریابی از کجا ایجاد شده است؟ در كتاب مربوط به مسیریابی مفصلاً در این خصوص بحث شده است.
جهت درک بهتر جدول مسیریابیRouter1، رکورد اول این جدول نشان میدهد که برای ارسال Packet به مقصد 192.168.1.X باید Packet را از روی اينترفيسe0 خارج نمايد. ضمناً این Packet تحویل هيچ روتر بعدی نميشود زیرا شبکه مقصد به این روتر متصل (Connected) است.
اکنون روتر، مسیر خروجی را پیدا نموده است و لذا گام بعدی آماده نمودن فریم برای ارسال به روتر بعدی است.
5) روتر با استفاده از پروتکل ARP، آدرس MAC روتر بعدی را از روی آدرس IP آن استخراج مینماید. (مکانیزم پروتکل ARP در ادامه، شرح داده خواهد شد.)
اکنون روتر میتواند فریم را آماده و سپس ارسال نماید.
6) روتر، فریم را مطابق شکل زیر آماده مینماید.
بستهبندي مجدد لايه 2 در روتر در شبكه جديد
شکل فوق نشان میدهد که روتر، هدر لایه 2 را مجدداً بستهبندی مینماید. آدرس مبدأ در لایه 2 آدرس اينترفيس e1، از Router1 میباشد. آدرس مقصد آدرس e0، از روتر Router2 میباشد که با مکانیزم ARP بدست آمده است. حال فریم، آماده ارسال است. Router1 فریم را روی اينترفيس ارسال مینماید.
7) Router2 و بقیه Interfaceهای این شبکه (از جمله PC6) این فریم را دریافت میکنند اما فقط Router2 فریم را پردازش میکند که آدرس مقصد فريم با آدرس خودش مطابقت دارد. لذا Router2 مسئول پردازش این فریم است (4444.4444.4444).
وظیفه روتر را فراموش نکنيد؛ "مسیر خروجی Packet دریافتی را با توجه به آدرس مقصد لایه 3 و جدول مسیریابی پیدا میکند و آن را روی مسیر خروجی ارسال مینماید".
Router2 به جدول مسیریابی مراجعه مینماید تا مسیر خروجی را استخراج نماید:
جدول مسيريابي Router2
برای ارسال Packet به شبکه 192.168.3.X، روتر باید آن را از روی اينترفيس e1 خارج نمايد. ضمناً شبکه مقصد به این روتر متصل میباشد.
روتر، مسیر خروجی را پیدا نموده است. حال میتواند فریم را آماده و روی مسیر خروجی قرار دهد.
8) روتر برای آمادهسازی فریم، باید هدر لایه 2 را از روی Packet جدا نموده و آن را مجدداً بستهبندی نماید. آدرس مبدأ لایه 2، اينترفيسe1 از روتر R2 میباشد. (5555.5555.5555). آدرس مقصد لایه 2، خود مقصد است زیرا روتر بعدی برای ارسال وجود ندارد و مقصد به روتر متصل میباشد.
روتر با مکانیزم ARP، آدرس IP مقصد (192.168.3.10) را به آدرس MAC تبدیل مینماید (6666.6666.6666). سپس فریم را به صورت زیر آماده و از روی اينترفيس e1 خارج میسازد.
بستهبندي مجدد لايه 2 در Router2
9) روتر فریم را از روی e1 Interface خارج نموده است. Interfaceهای روی این شبکه، فریم را دریافت مینمایند. (PC11 و PC12) اما فریم را Interfaceي پردازش مینماید که آدرس MAC مقصد فریم با آدرس MAC خودش مطابقت داشته باشد. لذا PC11 که مقصد واقعی است فریم را دریافت و پردازش میکند.PC11 با حذف هدر لایه 2، فریم را از لایه 2 به لایه 3 هدایت مینماید. سپس با حذف لایه 3، فریم را به لایه 4 تحویل میدهد. نهایتاً داده در لایه Application در مقصد دریافت میشود.
چندین نکته در انتهای بحث میتواند در درک هرچه بهتر مطالب فوق ما را یاری نماید.
1- همانطور که پیداست هدر لایه 2 در هر شبکه تغییر مینماید. زیرا لایه 2 با هدف ارتباط در داخل یک Interface (شبکه) طراحی شده است. در شکل مورد نظر، همه شبکهها از نوع Ethernet بودهاند. این در حالی است که در واقعیت، عمدتاً شبكههای میاني، از Interfaceهای متفاوتی برخوردار هستند. از طرفی هدر لایه 2 در هر شبکه، وابسته به Interface آن شبکه است. پس بدیهی است که هدر لایه 2 باید در هر شبکه تغییر نماید.
2- هدر لایه 3 از ابتدا تا انتها (End-to-End) تغییر نمیکند و همواره ثابت میماند. زیرا آدرس مبدأ و مقصد واقعی در هدر لایه 3 وجود دارد، پس این آدرس نباید تغییر کند.
- هر روتر میانی در طول مسیر، آدرس لایه 3 روتر بعدی را با مکانیزم ARP به آدرس لایه 2 تبدیل مینماید. آخرین روتري که کامپیوتر مقصد به آن متصل است آدرس لایه 3 مقصد را با مکانیزم ARP به آدرس لایه 2 تبدیل مینماید.
4- در مطالب تشریح شده، سه کلمه فریم (Frame)، بسته (Packet) و داده (Data) مرتباً استفاده شده است. سعی شده است این واژهها به درستی استفاده شوند اما برای درک مطالب گفته شده میتوانید هر 3 واژه را تقریباً یکسان در نظر بگیرید و منظور، واحد دادهای است که در حال ارسال است. در ادامه، تفاوت این واژهها تشریح خواهند شد.
1-4-1-دیگر پروتکلهای لایه InterNetwork
در این فصل از پروتکل IP به عنوان پروتکل لایه InterNetwork نام برده شده است اما پروتکلهای دیگری نیز در این لایه وجود دارند مانند IPX و NetBIOS.
در این کتاب پروتکل IP به عنوان پروتکل لایه 3 در نظر گرفته می شود.
2-4-1-مکانیزم ARP
میدانیم که در یک شبکه Ethernet، اگر نودی آدرس IP یک Interface را داشته باشد و آدرس MAC آن را بخواهد، میتواند با استفاده از مکانیزم ARP، آن را استخراج نماید. مکانیزم ARP به شرح ذیل است:
1) درخواست کننده، بسته ARP Request را تولید و به تمامی کامپیوترهای شبکه ارسال مینماید (Broadcast). آدرس ffff.ffff.ffff جهت Broadcast کردن فریم در شبکه Ethernet رزرو شده است. هر فریمی که بخواهید به کلیه کامپیوترهای شبکه Ethernet ارسال شود، باید به آدرس مقصد ffff.ffff.ffff (آدرس لايه 2) همراه شود (تمامی کامپیوترهایی که فریم با آدرس مقصد Broadcast را دریافت میکنند آن را پردازش مینمایند). فرمت بسته ARP Request به صورت زیر است:
فرمت فريم ARP Request
آدرس IP مقصد در هدر ARP Request قرار گرفته و آدرس MAC را درخواست مینماید. سپس بسته ARP Request ارسال میشود.
2-همه کامپیوترهای شبکه، بسته ARP Request را دریافت و پردازش میکنند اما فقط کامپیوتری پاسخ میدهد (ARP Reply) که آدرس مقصد آن با آدرس موجود در هدر ARP Request مطابقت داشته باشد.
بسته ARP Reply، unicast است؛ بدین معنی که فقط به درخواست کننده پاسخ داده میشود. به عبارت دیگر آدرس مقصد بسته ARP Reply، Broadcast نمیباشد و فقط به MAC درخواست کننده اشاره میکند. بدیهی است که این آدرس همان آدرس مبدأ ARP Request است.
3- درخواست کننده، آدرس MAC یاد گرفته شده را در جدولی به نام ARP Table در حافظه نگهداری میکند تا در مراجعات بعدی به همین مقصد مجدداً نخواهد از مکانیزم ARP استفاده کند. اگر به مدت زمان Age time، هیچ مراجعهای به مقصد مورد نظر نداشته باشد، این رکورد از جدول ARP حذف میگردد. (Age time بطور پيش فرض 5 دقيقه است.)
نتیجه گیری
تاکنون آموختیم که چگونه با استفاده از 3 لایه پائینی، ارتباط را میتوان از هر کامپیوتری در هر شبکه با هر کامپیوتری در هر شبکه دیگری برقرار نمود (End-to-End). لذا در این لحظه، هر ارتباطی در بستر اینترنت برای ما قابل درک و تحلیل میباشد. زیرا کل بستر اینترنت مبتنی بر پروتکل لایه 3 IP میباشد. در اینترنت تنوع بسیار زیادی از انواع Interfaceها وجود دارد.