در قسمتهای پیشین سری آموزشهای امبدد اترنت، با بسیاری از پروتکلهای پایه و نحوه تبادل دادهها آشنا شدیم. اما یک مهندس شبکه یا طراح سیستمهای امبدد، بدون تسلط بر ابزارهای عیبیابی و درک ساختار لایهبندی شبکه، نمیتواند دید کاملی به سیستم داشته باشد. چطور ممکن است هزاران دستگاه با آیپیهای مشابه (مثل ۱۹۲.۱۶۸.۱.۱) همزمان به اینترنت متصل شوند بدون اینکه تداخلی پیش بیاید؟ یا وقتی بستهای در شبکه گم میشود، چگونه باید رد آن را زد؟
در قسمت بیست و یکم، قصد داریم جعبهابزار شما را تکمیل کنیم. ابتدا به سراغ مفهوم حیاتی NAT میرویم که قهرمان خاموش اتصال ما به اینترنت جهانی است. سپس با دستورات پرکاربرد خط فرمان مثل Ping و Tracert آشنا میشویم و نگاهی به نرمافزار قدرتمند Wireshark میاندازیم تا ببینیم در سیمهای شبکه واقعاً چه میگذرد. در نهایت، با مقایسه دقیق مدلهای مرجع OSI و TCP/IP، جایگاه هر پروتکلی که تا امروز یاد گرفتهایم را در معماری شبکه تثبیت خواهیم کرد. با سیسوگ همراه باشید.
Network Addres Translation یا “ترجمه آدرس شبکه” روشی است برای ارتباط یک زیرشبکه با شبکه جهانی اینترنت؛ یا تبدیل و تغییر (Mapping) یک آدرس به آدرس یک شبکه خارجی. احتمالا متوجه شده اید که در شبکه خانگی شما؛ تجهیزات دارای آیپی های کلاس C هستند مثلا 192.168.1.X ؛ خونه همسایه و دوست و آشنا و در دفتر کار شما نیز وضع همینه. اما مگه قرار نبود در تمام شبکه، آیپی ها یکتا (Uniqe) باشند! اینطوری که آیپی های مشترک زیاد داریم! پس چطور تجهیزات به اینترنت دسترسی دارند.
این وظیفه پروتکلیه بنام NAT که توسط سخت افزار انجام میشه (مودم) و کاربر عموما با اون درگیر نمیشه. مودم شما به یک روتر در ISP شما متصل هست و پیغام هایی که از طرف تجهیزات شما (کامپیوتر یا گوشی های تلفن همراه که از طریق وای فای به مودم متصل هستند) به مودم ارسال میشه. با استفاده از NAT تغییر آدرس داده میشن به محدوده آدرسی که ISP در اختیار شما گذاشته (در NAT تعدادی آدرس در شبکه داخلی به یک آدرس در شبکه عمومی ترجمه یا لینک میشه. مودم در حافظه خودش، اطلاعاتی از پیام های ارسالی رو ذخیره میکنه که بدونه یک پیغام به یک IP خاص (در شبکه خارجی) از طرف کدام وسیله آمده و به شبکه اینترنت ارسال شده تا در برگشت؛ پاسخ ها رو به همون دستگاه تحویل بده. مودم ها برای این کار از اطلاعات IP header و شماره پورت (در لایه چهارم) استفاده می کنند. همونطور که می دونید در پروتکل IPV4 تعداد 4 بایت برای آدرس دهی موجود هست.
خیلی زود (در اواسط دهه 90 میلادی) متوجه شده ن که این تعداد آدرس، احتمالا برای شبکه ای به وسعت اینترنت کم هست. لذا قبل از تعریف پروتکل IPV6 و به عنوان یک راه حل کوتاه مدت، مفهوم NAT بوجود اومد. اما از اونجایی که این روش، کارایی خودشو نشون داده؛ همچنان در حال استفاده ست و بنظر میرسه در آینده نزدیک نیز کنار گذاشته نشود. برای کسب اطلاعات بیشتر در مورد NAT به سند RFC 2663 مراجعه کنید.

کامند پرامپت را باز کنید (در منوی استارت کلمه cmd.exe روجستجو کنید یا از بخش accessories روی command prompt کلیک کنید).
در خط فرمان تایپ کنید ipconfig و اینتر را بزنید. اطلاعات IP کارتهای شبکه متصل به سیستم نمایش داده خواهد شد. علاوه بر این میتوانید با استفاده از این دستور تنظیماتی را نیز انجام دهید.
این دستور آرگومانهایی را هم میپذیرد؛ با استفاده از دستور ipconfig /all اطلاعات آرگومانهای اين دستور به طور کامل در اختیار کاربر قرار خواهد گرفت.
پینگ عملیاتیست مبتنی بر پروتکل ICMP جهت بررسی دردسترسبودن یک هاست. دستور ping google.com رو ببینیم چه اطلاعاتی به ما میده:

توجه داشته باشید در این حالت؛ ابتدا با استفاده از سرویس DNS آدرس IP گوگل بهدستآمده (مگر اینکه از قبل این اطلاعات در حافظه سیستم باشد) و سپس عملیات پینگ انجام میشود.
عملیات traceroute با استفاده از پروتکل ICMP اطلاعاتی از مسیر دسترسی به هاست موردنظر را به دست میدهد. در ويندوز اين عمليات با دستور tracert در خط فرمان (command prompt) انجام ميشه.

در قسمت بالایی تصویر، دستور tracert بدون هیچ آرگومانی و در دستور پایینی tracert google.com اجرا شده است. در گزارش این عملیات، روترهای واسط بین دستگاه شما و سرور اصلی نمایش داده میشود. توجه داشته باشید که این مسیر عملاً به دلیل استفاده از default gatewayها جز در موارد خاص؛ تقریباً همواره ثابت است.
در ارتباط با مبحث شبکه، یکی از بهترین نرمافزارهای شنود (sniffer) و بررسی پکتهای ارسالی یا دریافتی، نرم افزار wireshark هست. این نرمافزار طبیعتاً قابلیتهای بسیار زیادی داره؛ اما برای شروع، ما سعی میکنیم یه توضیح ابتدایی و ساده بدیم. بعد از اجرای نرمافزار در قسمت Capture لیست تجهیزات و ارتباطات مبتنی بر شبکه رو میبینید؛ رابط موردنظر رو انتخاب و روش دابلکلیک کنید.

در پنجره اصلی برنامه؛ اطلاعات روی خط، نمایش داده میشه. طبق معمول موارد زیادی از طریق منوها و ابزار این نرمافزار در اختیار کاربر قرار داره که بعضی رو در ادامه معرفی کردیم:

ARP or TCP.Port==1010
تنها “پکتهای پروتکل ARP یا پکتهای TCP که پورت آنها (مبدأ یا مقصد) 1010 است”، را نمایش خواهد داد. بعد از نوشتن یا انتخاب یک فیلتر از پیش نوشته شده؛ برای اعمال فیلتر، دکمه 6 را فشار دهید.
7. جهت تعریف و ذخیره یک فیلتر، از این قسمت استفاده کنید.
اسناد RFC برای بیان استانداردها؛ الگوریتمها یا اصلاح مفاهیم و پروتکلهای فعلی در شبکه جهانی اینترنت به وجود اومده. با اینکه متولی این کار سازمان IETF هست؛ اما این اسناد توسط اشخاص، گروهها و سازمانهای مختلفی نوشته شده (مثلاً توسط افرادی که برای اولینبار یک پروتکل رو معرفی کردند). این اسناد در سه نوع :
معرفی میشن. اسناد STD، استانداردها رو در خودشون دارند مثل RFC 793 برای معرفی اولین استاندارد TCP؛ اسناد FYI برای اطلاع بیشتر در مورد یک موضوع خاص و BCPها دربرگیرنده نتایج تست انواع الگوریتمها و بهترین وضعیت اونهاست بهعنوانمثال االگوریتمهای محاسبه چکسام. این اسناد شمارهگذاری میشن و هر بار که در یک موضوع خاص، یک RFC جدید ثبت میشه؛ اسناد قبلی وابسته به اون، ویرایش میشن تا خواننده بتونه دنباله اسناد مرتبط رو داشته باشه. برای دانلود و مطالعه این اسناد میتوانید از دو سايت rfc-editor.org و datatracker.ietf.org استفاده کنید.
در مسير پيشرفت علوم مهندسي، ابتدا يك نياز مطرح شده. سپس براي رفع اون نياز؛ روشها يا مفاهيم جديد محقق شده ن و در ادامه احتمالاً سعي بر استانداردسازی اين فرایندها صورتگرفته است. مبحث شبكه نيز از اين قاعده پيروي ميكنه. در نتیجه ابتدا نياز به شبكهسازي به وجود اومد. در ادامه روشهای مختلفي براي ايجاد يك شبكه طراحي و ساخته شد و در نهايت اين روشها استاندارد شدهاند. مدلهای OSI و TCP/IP مهمترین مدلهای طراحي و لایهبندی يك شبكه هستند؛ با اين هدف كه در يك ارتباط، وظيفه هر بخش مشخص باشه. با این رویکرد؛ هم طراحي مفاهيم جديد مبتني بر شبكه و هم تعمير/نگهداري شبكه سادهتر ميشه.
دو مدل، بسيار شبيه بهم طراحي شدهاند و تفاوت اصلیشون اينه كه در لایههای بالاتر از لايه چهارم، در مدل TCP/IP تنها يك لايه تحت عنوان لايه برنامه (Application) تعريف شده؛ اما در مدل OSI، اين بخش، خودش از سه لایه، تشكيل شده و سعي شده هر لايه تعريف و وظایف مشخصي داشته باشه. هرچند میبینیم كه گاها يك عمليات در دو يا چند لايه داره كار ميكنه و لایهها با هم همپوشاني دارند. ما قصد نداريم مطالبي كه عموماً در کتابهای درسي در مورد اين دو مدل گفته ميشه رو اينجا تكرار كنيم. در طول اين نوشتار تقریباً با همه لایهها آشنا شديم. اينجا يكبار ديگه و به طور خلاصه هر لايه رو معرفي میکنیم. در شکل زیر لایهبندی و تفاوت دو مدل رو میبینید.

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.