لایه Network در مدل TCP/IP شامل قابلیتهای بسیاری میباشد، که توسط پروتکل IP به وجود آمدهاند. پروتکل IP نقش بزرگی را در شبکههای امروزی ایفا میکند، از جمله، آدرسدهی و ایجاد قابلیت مسیریابی.با این حال، پروتکلها و استانداردهای دیگری هم در لایه Network وجود دارد که با RFCهای متفاوتی تعریف شدهاند، و نقش مهمی را در انجام امور شبکه برعهده دارند. برای مثال، پروتکلهای مسیریابی از جمله Open Shortest Path First یا OSPF به عنوان پروتکل جداگانهای وجود دارند، و دارای RFC متفاوتی هستند.
در این درس میخواهیم با سه قابلیت دیگر و اساسی لایه Network آشنا شویم، که در ادامه این دوره آموزشی به شما کمک خواهند کرد. این سه پروتکل، به شما کمک میکند تا در طول این دوره آموزشی، نقاط مبهم کمتری داشته باشید. این سه قابلیت به شرح زیر میباشند:
آیا میتوانید تصور کنید که در دنیا، هر زمان که نیاز به اجرای یک نرمافزار دارید، باید آن را با آدرس IP مربوطه، فراخوانی کنید؟ یا به جای استفاده از نامهایی مانند Google.com یا Facebook.com، شما باید آدرسهای IP مربوط به آنها را به ذهن بسپارید، مانند ۶۴.۲۳۳.۱۷۷.۱۰۰ (در سالهای دور آدرس ۶۴.۲۳۳.۱۷۷.۱۰۰، آدرسی بود که توسط گوگل استفاده شده بود، و برای دسترسی به وبسایت گوگل، باید آدرس IP آن را در مرورگر خود وارد میکردید.) در آن دوران، از کاربران خواسته میشد که این آدرسها را به خاطر بسپارند، و این موضوع، کاربر پسند نبود و موجب دور شدن کاربران از کامپیوترها میشد.
خوشبختانه، مدل TCP/IP راهی را ارائه کرد که توسط آن کاربران میتوانستند به کامپیوترها، نامی را اختصاص دهند. پس از آن، کاربر برای ارتباط با کامپیوتری دیگر، نه آدرس IP آن، و حتی نه به نام آن نیاز داشت. به این دلیل که پروتکلها به صورت اتوماتیک تمام اطلاعات مورد نیاز خود را پیدا میکردند و اجازه میدادند که ارتباطات براساس نام ها برقرار شود.
برای مثال، زمانی که شما یک مرورگر اینترنت را باز میکنید و نام www.google.com را وارد میکنید، کامپیوتر شما در پکت ارسالی، در قسمت آدرس مقصد، نام www.google.com را قرار نمیدهد. بلکه این بسته را به سمت آدرس IP مورد استفاده توسط سرور گوگل ارسال میکند. مدل TCP/IP به راهی نیاز دارد تا به کامپیوترها این اجازه را بدهد که آدرس IP مربوط به hostname وارد شده را پیدا کنند، و برای این کار از پروتکل Domain Name System یا همان DNS استفاده میکند.
در شبکههای بزرگ، استفاده از سرویس DNS این اجازه را میدهد تا آدرس IP مربوط به نامها به کامپیوترها برگردانده شود، همانطور که در شکل ۱-۱۵ نشان داده شده است. در این شکل، کامپیوتر PC11 در سمت چپ، نیاز دارد تا به سروری با نام Server1 متصل شود. برای برقراری این ارتباط، این کامپیوتر، نام Server1 را در نرمافزاری وارد میکند. در مرحله اول، PC11 یک درخواست DNS یا DNS query به سرور DNS ارسال میکند. در مرحله دوم، سرور DNS در پاسخ به درخواست PC11، یک DNS reply به او ارسال میکند که حاوی آدرس IP Server1 میباشد. در مرحله سوم، PC11 میتواند یک پکت به آدرس مقصد ۱۰.۱.۲.۳، که توسط Server1 استفاده شده است، ارسال کند.
توجه داشته باشید که در مثال شکل فوق، برای نمایش شبکه TCP/IP از یک ابر استفاده شده است، و این به این دلیل است که، جزئیات شبکه از جمله، روترها در این سناریو و تبدیل نام به آدرس، اهمیتی ندارد. روترها با بستههای DNS مانند سایر بستههای IP رفتار میکنند، و آنها را بر اساس آدرس مقصد مسیریابی میکنند. برای مثال، در قدم اول شکل بالا، در بسته DNS query، در قسمت آدرس مقصد، آدرس سرور DNS قرار میگیرد، که روترها از این آدرس برای هدایت بسته به سمت مقصد استفاده میکنند.
سرانجام، سرویس DNS فقط شامل چند بسته query و reply نمیشود، بلکه شامل پروتکلها و استانداردهایی است که میتواند تمام نامهای متنی کامپیوترها در سراسر دنیا را به آدرس IP تبدیل کند، و شامل مجموعه بسیار وسیعی از سرورهای DNS توزیع شده در سراسر دنیا میباشد. نامها و دامنههایی که کاربران در هنگام کار با اینترنت از آنها استفاده میکنند، که شبیه به الگوی www.example.com میباشد، از استانداردهای نامگذاری DNS پیروی میکنند. همچنین، تنها از یک سرور DNS برای تبدیل نامها به آدرسهای IP مربوطه استفاده نمیشود، بلکه این اطلاعات بر روی تعداد بسیاری سرور DNS توزیع شده است. پس، تمام سرورهای DNS در کل دنیا با یکدیگر در ارتباط هستند و تبادل اطلاعات دارند و به یکدیگر query ارسال میکنند، تا بتوانند به تمام درخواستهای کاربران در مورد تبدیل نامها به آدرس IP پاسخ دهند.
در درسهای گذشته به طور کامل با نحوه مسیریابی و نیاز هاستها و روترها به بستهبندی اطلاعات بستههای IP درون فریمهای Data-Link آشنا شدید. برای اینترفیسهای اترنت، روترها چگونه تشخیص میدهند که از چه آدرس MACی برای آدرس مقصد استفاده کنند؟ در واقع آنها برای این کار از پروتکل ARP کمک میگیرند.
در شبکههای LAN مبتنی بر اترنت، زمانی که یک هاست یا روتر نیاز به بستهبندی اطلاعات پکت درون یک فریم جدید اترنت داشته باشد، این هاست یا روتر تمام اطلاعات مهم برای ایجاد هدر این فریم را دارد به غیر از آدرس MAC مقصد. یک هاست ، آدرس IP مقصد بعدی این فریم را میداند ، که ممکن است یک آدرس IP هاست دیگر یا آدرس Default Gateway باشد.یک روتر هم بر اساس جدول مسیریابی خود میتواند آدرس IP مقصد بعدی بسته را تشخیص دهد.به هر حال، روترها و هاستها از آدرس MAC دستگاه همسایه خود اطلاعی ندارند.
مدل TCP/IP برای رفع این مشکل پروتکل ARP را ارائه کرده است، که به کمک این پروتکل، روترها و هاستها به صورت اتوماتیک میتوانند در یک شبکه LAN، آدرس MAC سیستم همسایه خود را بر اساس آدرس IP در همان شبکه LAN آن پیدا کنند. پروتکل ARP شامل بستههای ARP Request میشود که این بستهها یک درخواست ساده را به این شکل ایجاد میکنند “اگر این آدرس IP شما میباشد، لطفا در پاسخ آدرس MAC خود را ارسال کنید”. بنابراین پروتکل ARP دارای بستههای ARP Reply هم میباشد تا به وسیله آن بتوان به درخواستها پاسخ داد. در بستههای ARP Reply هم آدرس IP و هم آدرس MAC مربوط به دستگاه، ارسال میشود.
شکل ۲-۱۵ مثالی از نحوه استفاده روترها و هاستها از پروتکل ARP را نشان میدهد. در سمت چپ این شکل، بستههای ARP Request ارسال شده توسط روتر R3 به عنوان یک بسته Broadcast، نشان داده شده است. بنابراین تمام دستگاههای موجود در این شبکه LAN، این فریم را دریافت کرده و بررسی میکنند. در سمت راست شکل، در قدم دوم، کامپیوتر PC2 با ارسال یک بسته ARP Reply به روتر R3، آدرس MAC خود را به او اعلام میکند. همچنین در شکل محتوای هر بسته ARP نشان داده شده است. در طی این فرایند، کامپیوتر PC2، آدرس MAC متناظر با آدرس IP روتر R3، و همچنین روتر R3 هم آدرس MAC متناظر با آدرس IP کامپیوتر PC2 را خواهد آموخت.
توجه داشته باشید که روترها و هاستها، نتایج این بستههای ARP را برای خود در ARP Cache یا ARP Table برای مدت مشخصی نگهداری میکنند. روترها و هاستها، فقط زمانی از از پروتکل ARP استفاده میکنند که، آدرس MAC مورد نظر آنها در ARP Cache یافت نشود. زمانی که یک روتر میخواهد یک پکت را درون یک فریم بستهبندی کند نیاز دارد تا آدرس MAC مقصد را درون هدر فریم قرار دهد، برای این کار ابتدا به ARP Cache خود مراجعه کرده و در صورتی که آدرس MAC مورد نظر خود را یافت نکرد، آنگاه از پروتکل ARP کمک میگیرد.
نکته: در اکثر سیستمعاملهای PC، شما میتوانید با دستور arp –a، محتویات جدول ARP را مشاهده کنید.
بعد از این که شما یک شبکه TCP/IP را راه اندازی کردید، به راه و روشی برای چک کردن ارتباطات شبکه نیاز دارید. دستور Ping (پینگ) یک ابزار مقدماتی برای چک کردن و تست اتصالات تجهیزات شبکه میباشد.
پینگ که زیرمجموعه پروتکل Internet Control Message Protocol یا ICMP میباشد، پیامی به نام ICMP echo request را به یک آدرس IP دیگر ارسال میکند. و کامپیوتری که مالک این آدرس IP میباشد، در صورت دریافت این پیام، باید به آن پاسخ دهد که به این پاسخ ICMP echo reply گفته میشود. اگر این فرایند با موفقیت انجام شود، تست شبکهی IP با موفقیت انجام شده است. به بیان دیگر، شما اطمینان حاصل میکنید که شبکه شما میتواند پکتها را بین این دو نقطه منتقل کند. پروتکل ICMP متکی بر نرمافزار خاصی نمیباشد، بنابراین، یک ابزار تست ارتباطات IP محسوب میشود. زمانی که این تست با موفقیت انجام شود، به این معنی است که لایههای ۱، ۲، و ۳ مدل TCP/IP به درستی کار میکنند. شکل ۳-۱۵، این فرایند را نشان میدهد.
توجه داشته باشید که زمانی که از دستور Ping استفاده میکنید، در واقع از پروتکل ICMP استفاده میکنید، و این پروتکل شامل پیامهای بسیاری است، که تجهیزات با استفاده از این پیامها میتوانند شبکه IP را کنترل و مدیریت کنند.