آموزش NAT، Wireshark و مقایسه مدل OSI و TCP/IP

قسمت 21
Embedded EtherNet 21
مشاهده سایر جلسات آموزش
20 بازدید
۱۴۰۴-۱۱-۲۸
8 دقیقه
  • نویسنده: مجتبی داشخانه
  • درباره نویسنده: ---

در قسمت‌های پیشین سری آموزش‌های امبدد اترنت، با بسیاری از پروتکل‌های پایه و نحوه تبادل داده‌ها آشنا شدیم. اما یک مهندس شبکه یا طراح سیستم‌های امبدد، بدون تسلط بر ابزارهای عیب‌یابی و درک ساختار لایه‌بندی شبکه، نمی‌تواند دید کاملی به سیستم داشته باشد. چطور ممکن است هزاران دستگاه با آی‌پی‌های مشابه (مثل ۱۹۲.۱۶۸.۱.۱) هم‌زمان به اینترنت متصل شوند بدون اینکه تداخلی پیش بیاید؟ یا وقتی بسته‌ای در شبکه گم می‌شود، چگونه باید رد آن را زد؟

در قسمت بیست و یکم، قصد داریم جعبه‌ابزار شما را تکمیل کنیم. ابتدا به سراغ مفهوم حیاتی NAT می‌رویم که قهرمان خاموش اتصال ما به اینترنت جهانی است. سپس با دستورات پرکاربرد خط فرمان مثل Ping و Tracert آشنا می‌شویم و نگاهی به نرم‌افزار قدرتمند Wireshark می‌اندازیم تا ببینیم در سیم‌های شبکه واقعاً چه می‌گذرد. در نهایت، با مقایسه دقیق مدل‌های مرجع OSI و TCP/IP، جایگاه هر پروتکلی که تا امروز یاد گرفته‌ایم را در معماری شبکه تثبیت خواهیم کرد. با سیسوگ همراه باشید.

معرفي مفهوم NAT

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 مراجعه کنید.

آموزش NAT، Wireshark و مقایسه مدل OSI و TCP/IP

آشنايي با دستورات پركاربرد در مديريت شبكه

دستور ipconfig

کامند پرامپت را باز کنید (در منوی استارت کلمه cmd.exe روجستجو کنید یا از بخش accessories روی command prompt کلیک کنید).

در خط فرمان تایپ کنید ipconfig و اینتر را بزنید. اطلاعات IP کارت‌های شبکه متصل به سیستم نمایش داده خواهد شد. علاوه بر این می‌توانید با استفاده از این دستور تنظیماتی را نیز انجام دهید.

این دستور آرگومان‌هایی را هم می‌پذیرد؛ با استفاده از دستور ipconfig /all اطلاعات آرگومان‌های اين دستور به طور کامل در اختیار کاربر قرار خواهد گرفت.

دستور ping

پینگ عملیاتی‌ست مبتنی بر پروتکل ICMP جهت بررسی دردسترس‌بودن یک هاست. دستور ping google.com رو ببینیم چه اطلاعاتی به ما میده:

دستور ping

توجه داشته باشید در این حالت؛ ابتدا با استفاده از سرویس DNS آدرس IP گوگل به‌دست‌آمده (مگر اینکه از قبل این اطلاعات در حافظه سیستم باشد) و سپس عملیات پینگ انجام می‌شود.

عملیات traceroute

 عملیات traceroute با استفاده از پروتکل ICMP اطلاعاتی از مسیر دسترسی به هاست موردنظر را به دست می‌دهد. در ويندوز اين عمليات با دستور tracert در خط فرمان (command prompt) انجام ميشه.

عملیات traceroute

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

معرفي نرم افزار wireshark

در ارتباط با مبحث شبکه، یکی از بهترین نرم‌افزارهای شنود (sniffer) و بررسی پکت‌های ارسالی یا دریافتی، نرم افزار wireshark هست. این نرم‌افزار طبیعتاً قابلیت‌های بسیار زیادی داره؛ اما برای شروع، ما سعی می‌کنیم یه توضیح ابتدایی و ساده بدیم. بعد از اجرای نرم‌افزار در قسمت Capture لیست تجهیزات و ارتباطات مبتنی بر شبکه رو می‌بینید؛ رابط موردنظر رو انتخاب و روش دابل‌کلیک کنید.

شاید برای شما مفید باشد:
آموزش میکروکنترلر Stm32f1 به صورت رجیستری: GPIO-خروجی

نرم افزار wireshark

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

نرم افزار wireshark

  1. دکمه‌هایی برای استارت/استپ عملکرد شنود
  2. نمایش تمامی پکت‌های دریافتی؛ اگر در بخش 5 فیلتری اعمال شده باشد؛ فقط پکت های مطلوب، نمایش داده می‌شود؛ اما هنگام ذخیره (Save) می‌توان تمامی پکت‌ها را ذخیره کرد.
  3. با کلیک بر روی یک پکت در بخش 2، مشخصات آن در این قسمت نمایش داده می شود. پروتکل های لایه‌های مختلف، طبقه بندی می‌شوند و همانطور که در تصویر مشخص است؛ ابتدا کل frame سپس لایه IP بعد TCP به همراه داده ارسالی در اینجا نمایش داده شده است.
  4. با انتخاب یک لایه در بخش 3 قسمت‌های مختلف لایه انتخاب شده، در اینجا نمایش داده می‌شود.
  5. از مهم‌ترین قابلیت‌های نرم‌افزار wireshark ؛ توانایی ایجاد فیلترهای دلخواه است. این فیلترها با سبک نوشتاری (syntax) شبیه به زبان‌های برنامه‌نویسی پیاده‌سازی می‌شوند؛ به‌عنوان‌مثال فیلتر:

ARP or TCP.Port==1010

تنها “پکت‌های پروتکل ARP یا پکت‌های TCP که پورت آنها (مبدأ یا مقصد) 1010 است”، را نمایش خواهد داد. بعد از نوشتن یا انتخاب یک فیلتر از پیش نوشته شده؛ برای اعمال فیلتر، دکمه 6 را فشار دهید.

7. جهت تعریف و ذخیره یک فیلتر، از این قسمت استفاده کنید.

  • فریم‌های دریافتی را می‌توان با استفاده از گزینه File/Save ذخیره نمود.
  • براي تمايز بهتر اطلاعات، می‌توان رنگ‌بندی نمايش رو هم، سفارشی‌سازی كنيد.

اسناد RFC

اسناد RFC برای بیان استانداردها؛ الگوریتم‌ها یا اصلاح مفاهیم و پروتکل‌های فعلی در شبکه جهانی اینترنت به وجود اومده. با اینکه متولی این کار سازمان IETF هست؛ اما این اسناد توسط اشخاص، گروه‌ها و سازمان‌های مختلفی نوشته شده (مثلاً توسط افرادی که برای اولین‌بار یک پروتکل رو معرفی کردند). این اسناد در سه نوع :

  • STD(STanDard)
  • FYI(For Your Information)
  • BCP(Best Current Practice)

معرفی میشن. اسناد STD، استانداردها رو در خودشون دارند مثل RFC 793 برای معرفی اولین استاندارد TCP؛ اسناد FYI برای اطلاع بیشتر در مورد یک موضوع خاص و BCPها دربرگیرنده نتایج تست انواع الگوریتم‌ها و بهترین وضعیت اونهاست به‌عنوان‌مثال االگوریتم‌های محاسبه چک‌سام. این اسناد شماره‌گذاری میشن و هر بار که در یک موضوع خاص، یک RFC جدید ثبت میشه؛ اسناد قبلی وابسته به اون، ویرایش میشن تا خواننده بتونه دنباله اسناد مرتبط رو داشته باشه. برای دانلود و مطالعه این اسناد می‌توانید از دو سايت rfc-editor.org و datatracker.ietf.org استفاده کنید.

مدل هاي OSI و TCP/IP

در مسير پيشرفت علوم مهندسي، ابتدا يك نياز مطرح شده. سپس براي رفع اون نياز؛ روش‌ها يا مفاهيم جديد محقق شده ن و در ادامه احتمالاً سعي بر استانداردسازی اين فرایندها صورت‌گرفته است. مبحث شبكه نيز از اين قاعده پيروي ميكنه. در نتیجه ابتدا نياز به شبكه‌سازي به وجود اومد. در ادامه روش‌های مختلفي براي ايجاد يك شبكه طراحي و ساخته شد و در نهايت اين روش‌ها استاندارد شده‌اند. مدل‌های OSI و TCP/IP مهم‌ترین مدل‌های طراحي و لایه‌بندی يك شبكه هستند؛ با اين هدف كه در يك ارتباط، وظيفه هر بخش مشخص باشه. با این رویکرد؛ هم طراحي مفاهيم جديد مبتني بر شبكه و هم تعمير/نگهداري شبكه ساده‌تر ميشه.

دو مدل، بسيار شبيه بهم طراحي شده‌اند و تفاوت اصلیشون اينه كه در لایه‌های بالاتر از لايه چهارم، در مدل TCP/IP‌ تنها يك لايه تحت عنوان لايه برنامه (Application) تعريف شده؛ اما در مدل OSI، ‌ اين بخش، خودش از سه لایه، تشكيل شده و سعي شده هر لايه تعريف و وظایف مشخصي داشته باشه. هرچند می‌بینیم كه گاها يك عمليات در دو يا چند لايه داره كار ميكنه و لایه‌ها با هم همپوشاني دارند. ما قصد نداريم مطالبي كه عموماً در کتاب‌های درسي در مورد اين دو مدل گفته ميشه رو اينجا تكرار كنيم. در طول اين نوشتار تقریباً با همه لایه‌ها آشنا شديم. اينجا يكبار ديگه و به طور خلاصه هر لايه رو معرفي می‌کنیم. در شکل زیر لایه‌بندی و تفاوت دو مدل رو می‌بینید.

مدل هاي OSI و TCP/IP

  • در بعضي مراجع؛ لايه اول در مدل TCP/IP‌ رو؛ همانند مدل OSI در دو لايه Physical و Link‌ نشان داده‌اند و در نتيجه مدل TCP/IP‌ رو به‌صورت 5 لايه تصوير کرده‌اند. همچنین بگیم که گاهی به آن Internet Protocol Suite یا TCP/ip Stack هم گفته میشه.
  • لايه 1: لايه يك با نام لايه فيزيكي در هر ارتباطي وجود داره. شما بايد بدونيد كه سیگنال‌ها (ديجيتال يا آنالوگ) به چه طريقي به مقصد می‌رسند؛ ارتباط با سيم يا بدون سيم هست؛ مدولاسيون از چه نوعي هست؛ سیگنال‌ها تكي يا ديفرانسيلي هستند؛ باودريت چقدره؛ آيا از فيبر نوري استفاده ميشه، شايدم از دود استفاده بشه!
    • ✅ نكته
در يك ارتباط، حتی در غير از حالت شبكه؛ مثل وقتي كه فقط دو سخت‌افزار پیام‌هایی بين خودشون ردوبدل می‌کنند، ‌يك سنسور و يك ميكروكنترلر مثلاً؛ یا ارتباط سریال بین میکروکنترلر و کامپیوتر؛ بخش سخت‌افزاری ارتباط در لايه يك گنجونده ميشه و بخش نرم‌افزاری ارتباط هم تنها در يك لايه با عنوان لايه منطقي ايجاد ميشه (مثلاً در ارتباط RS232 و مفاهيمي مثل تعداد بیت‌ها، آغاز و پايان يك ارتباط و….)
  • لايه 2: الان فرض بر اينه كه در لايه قبل؛ يك سيگنال ديجيتال رو به سمت مقابل فرستاديم. لايه دوم، اولين لايه ايه كه مفاهيم نرم‌افزاری و منطقي وارد ميشن؛ مثلاً ابتدا و انتهاي يك استريم (مجموعه‌ای از بیت‌ها) كجاست؟ چند بيت فرستاده ميشه؟ در شبكه اين بیت‌ها رو كدام گره فرستاده و كدام گره بايد از اون ها استفاده كنه؟ لذا اينجا ما نياز به يك فرمت آدرس‌دهی داريم! اين آدرس رو عموماً آدرس سخت‌افزاری ميگن و واضحه كه هر آدرس برای ارسال در این لایه؛ بايد يكتا باشه! پروتکل‌های Ethernet ii و IEEE802.3‌ از اصلی‌ترین پروتکل‌های اين لايه هستند كه در اين نوشتار توضيح داده شده‌اند.
  • لايه 3: وجود بعضي الزامات همچون موارد امنيتي يا نياز به جداسازي زیرشبکه‌ها از يكديگر (مثلاً براي مسيريابي)؛ باعث شده به يك فرمت آدرس‌دهی ديگه؛ احساس نیاز بشه كه قابليت اعمال تغيير از سوي ادمين رو هم داشته باشه. به اين آدرس؛ آدرس منطقي؛ اينترنتي و یا در قیاس با آدرس سخت‌افزاری؛ آدرس نرم‌افزاری گفته ميشه. این نحوه آدرس‌دهی در این لایه پیاده‌سازی میشه. همچنين گزارشات مربوط به خطا عموماً در اين لايه اجرا ميشه. عمليات ديگه اي كه در اين لايه انجام ميشه، تکه‌تکه كردن داده‌های بزرگ براي ارسال هست. مهم‌ترین پروتکل‌های اين لايه ARP , IPv4, IPv6 هستند كه در اين نوشته؛ دوتاي اول رو توصيف كرديم. در بعضی مراجع ARP رو جزو لایه دوم به‌حساب می‌آورند.
  • لايه 4: در لایه یک تا سه؛ ارتباط هاست (host) به هاست برقرار شده؛ اما براي ارتباط سرويس با سرويس، مجدداً نياز به يك آدرس‌دهی داخلي (درون يك هاست) داريم. اين نوع آدرس رو اصطلاحاً آدرس یا شماره پورت ميگن و در اين لايه قرار داره. فرض كنيد در يك كامپيوتر، هم‌زمان چند برنامه از شبكه استفاده می‌کنند. ‌طبيعيه كه آدرس فيزيكي و منطقي همه اینها يكسانه؛ لذا از شماره پورت‌ها، جهت تعيين مقصد هر بسته درون یک هاست استفاده ميشه. از وظايف ديگه اين طبقه مديريت ترافيك و جلوگيري از موارد ازدحام (Congestion) هست. همچنين درخواست ارسال دوباره داده‌ها در اين لايه انجام ميشه. سه پروتكل UDP, TCP, ICMP اصلی‌ترین پروتکل‌های اين لايه هستند كه یک‌به‌یک توضيح داده شده‌اند. پروتکل‌های UDP,TCP ‌جهت ارسال/دريافت داده و پروتكل ICMP‌ جهت عیب‌یابی،‌گزارش خطا و بررسي سلامت رفتار شبكه استفاده ميشن. در بعضی مراجع ICMP رو در لایه سوم بررسی می‌کنند!
  • لایه‌های 5 تا 7 : كه گاهي به اون‌ها لايه 5+ هم گفته ميشه؛ در ارتباط مستقيم با داده‌هاي نهايي هستند كه توسط كاربر يا نرم‌افزارها و سرويس‌ها استفاده ميشن. حتا در تعاريف كتابي نيز؛ قسمت زيادي از وظايفي كه براي اين لايه‌ها تعريف شده‌اند، ‌با هم هم‌پوشاني دارند. انواع پروتكل‌ها براي مواردي چون ارسال ايميل (مثل SMTP)،‌ ارسال فايل‌ها (مثل FTP) و يا نمايش صفحات وب (مثل HTTP يا HTTPS) در اين لايه‌ها انجام مي‌گيرد.
اطلاعات
20
0
0
اشتراک و حمایت
profile نویسنده: مجتبی داشخانه متخصص الکترونیک

ویراستار: مریم میریان
مقالات بیشتر

slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. جستجو در آیسی
family

سیسوگ‌شاپ | فروشگاه محصولات Quectel

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
family

سیکار | اولین مرجع متن باز ECU در ایران

بررسی و ارائه اطلاعات مربوط به ECU (واحد کنترل الکترونیکی) و نرم‌افزارهای متن باز مرتبط با آن برو به سیکار
become a writer
نویسنده شو !

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

ارسال مقاله
become a writer
نویسنده شو !

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

ارسال مقاله

خانواده سیسوگ

سیسوگ‌شاپ

فروشگاه محصولات Quectel

پالت
سیسوگ فروم

محلی برای پاسخ پرسش‌های شما

سیسوگ جابز
سیسوگ
سیسوگ فروم
سی‌کار

اولین مرجع متن باز ECU در ایران

سیسوگ مگ
آی‌سی

موتور جستجوی قطعات الکترونیکی

سیسوگ آکادمی
پالت

بازار خرید و فروش قطعات الکترونیک

دیدگاه ها

become a writer
نویسنده شو !

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

ارسال مقاله
become a writer
نویسنده شو !

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

ارسال مقاله