تفاوت IP استاتیک و دینامیک و معرفی پروتکل ARP در شبکه - قسمت هشتم آموزش Embedded Ethernet

blog
12 بازدید
۱۴۰۴-۰۲-۰۸
7 دقیقه

مدل OSI یا TCP/IP

خب بریم سراغ مدل OSI یا حالت ساده‌تر اون مدل TCP/IP (ممکنه به این مدل Internet protocol Suite و یا TCP stack هم گفته بشه). پروتکل‌های شبکه، لایه روی لایه چیده شدن. در سمت فرستنده، اولین لایه‌ای که تولیدکننده داده هست؛ در سمت گیرنده آخرین لایه‌ای خواهد بود که داده نهایی رو دریافت میکنه. بهمین دلیل بهش stack (به فارسی، پشته) میگن.

ما تا اینجا با دو لایه پایینی آشنا شدیم و با استفاده از ENC اون ها رو به وجود آوردیم.

لایه فیزیکال و لایه ارتباط داده

پایین‌ترین لایه یا لایه اول رو به اسم لایه فیزیکال می‌شناسیم و لایه دوم که در اینجا فریم‌هایی به فرمت Ethenet ii  رو ارسال/دریافت میکنه؛ در مدل OSI بهش میگن لایه ارتباط داده (Data Lick Layer) درحالی‌که در مدل TCP/IP بهش فقط میگن لایه ارتباط (Link Layer) .

خب تا اینجا ما یک فریم دریافت کردیم؛ یادمون هست که بعد از مک آدرس‌ها، دو بایت با اسم Ether Type وجود داشت که گفتیم اعداد داخل اون بزرگ‌تر از 0x0600 خواهند بود و در جدولی، تعدادی از اعداد رزرو شده رو نشون دادیم و همچنین گفتیم که دو عدد 0x800 و 0x0806 برای ما حایز اهمیت هستند.

یکتایی مک آدرس

يك نكته كه باعث سردرگمي خواننده ميشه رو اينجا براتون باز كنيم. گفتيم كه مک آدرس‌ها باید در شبکه منحصربه‌فرد و یکتا باشند. در مراجع مختلف هم اين جمله به همين نحو گفته ميشه ولي درستش اینه که بگيم در يك شبكه داخلي يا محلي؛ بايد مك آدرس‌ها يكتا باشه. متأسفانه ما، يك ساختار كه چند هاست رو به هم متصل می‌کنند رو ميگيم “شبكه”؛ ساختاري كه در اون تعداد زيادي شبکه‌های كوچك با استفاده از روترها، به هم متصل‌اند رو هم باز ميگيم “شبكه”. براي عدم آشفتگي ذهني خواننده بهتر اينه كه به اولي بگيم شبكه محلي؛ شبكه داخلي يا حتی زيرشبكه. خب كمي سخت ميشه چون اونطوري بايد در تمام اين نوشتار از “شبكه محلي” به‌جای شبكه استفاده كنيم. خواننده حواسش بايد باشه كه در قسمت اعظم اين نوشتار منظور از شبكه؛ يك شبكه داخلی‌ست.

مقایسه با سیستم پستی

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

مک آدرس‌ها در اتصال بین شبکه‌ها

در هنگام اتصال بين شبکه‌ها؛ ارتباط توسط روترها برقرار ميشه و دراین‌ارتباط چيزي كه مهم هست، آدرسی است كه بهش ميگيم آدرس IP. در فریم‌های ارسالي براي شبکه‌های ديگه؛ روترها موقعي كه يك فريم رو دريافت می‌کنند، به‌جای مك آدرس مبدأ، مك آدرس خودشون رو قرار ميدن؛ به‌جای مک آدرس مقصد هم باتوجه‌به اینکه هاست مقصد در شبکه بعدی قرار داره یا در یک شبکه دیگه ای؛ فرق خواهد کرد. در حالت اول مک آدرس هاست مقصد و در حالت دوم، مک آدرس روتر بعدی قرار میگیره.

محدودیت‌های مک آدرس برای ساختار شبکه

 همونطور که گفتیم ممکنه دستگاه‌های مختلفی درون یک شبکه باشند که سازنده‌های مختلف (با OUI مختلفی) دارند. از طرفی مک آدرس‌ها، اصطلاحاً Hard code هستند؛ یعنی از قبل درون حافظه تراشه ثبت میشن درنتیجه ما نمیتونیم فقط بر اساس اونها یک زیرشبکه بسازیم، یعنی شبکه مون رو به بخش‌های مختلفی تقسیم‌بندی کنیم كه هر زيرشبكه داراي محدوده آدرس خاصي باشند، به آدرس‌دهی پستي دقت كنيد؛ اگه فقط در يك شهر بخواهيد نامه بفرستيد؛ كافيه فقط اسم منطقه یا محله بعلاوه خيابون رو بنويسيد؛ اگر در يك كشور بخواهيد نامه ارسال كنيد؛ بايستي اسم شهر رو هم اضافه كنيد؛ ‌اين وضعيت در آدرس‌دهی شبكه تلفن هم هست، در تلفن داخل‌شهری نياز به كد شهر نيست؛ اما بين شهرها، بايد از كد شهر و در بين كشورها از كد كشور استفاده كنيد.

نیاز به آدرس منطقی (IP Address)

وجود زیرشبکه به دلایل مختلف نیازه؛ یکیش دلایل امنیتیه که بتونیم دسترسی به شبکه رو محدود کنیم یا بتونیم قسمت‌های مختلف رو از هم تفکیک کنیم. مثلاً در شبکه یک سازمان؛ بخش مالی از فنی جدا باشن و هر بخش تنها به داده‌های خودش دسترسی داشته باشه. اما خب تنها با اتكا به مك آدرس‌ها اين امكان وجود نداره و درنتيجه نیاز هست که یک ساختار آدرس‌دهی جداگانه به وجود بیاد که اصطلاحاً بهش میگن آدرس منطقی (در مقابل آدرس فیزیکی یا همون مک آدرس). اصلی‌ترین پروتکل شبکه یعنی IP یا همون Internet Protocol از این روش آدرس‌دهی استفاده میکنه. در ارتباط بین شبکه‌ها به‌جای مک آدرس؛ از آدرس IP استفاده میشه. آدرس منطقی در این حالت یک نوع آدرس 4 بایتی است که بهش IP Address میگن.

آدرس IP و  Subnet Mask  

این آدرس معمولاً به‌صورت ده‌دهی (decimal) نمایش داده میشه؛ به‌عنوان‌مثال 192.168.2.30

این آدرس دو بخش داره که اندازه هاشون بر حسب تعداد بایت، متفاوته (اما واضحه که جمعشون میشه 4 ) قسمت سمت چپ میشه آدرس زیرشبکه و مابقی آدرس که سمت راست آدرس زیرشبکه قرار میگیرن، میشه آدرس یا شماره host در اون زیرشبکه. در آدرسي كه مثال زديم اعداد 192.168.2 آدرس زیر شبکه و 30 شماره کامپیوتر در اون زیرشبکه است. اينجا اين سؤال ممكنه مطرح بشه كه از كجا ميدونيم كدام بخش‌های آدرس متعلق به زير شبكه ن و كدام بخش‌ها متعلق به شماره host؟ مفهومي بنام subnet mask داريم كه اون هم مثل آدرس IP‌ چهار بايتي هست. هر بيتي از subnet mask داراي مقدار ‘1’ باشه؛ بيت متناظرش در آدرس IP‌ جزو قسمت آدرس شبكه است و هر بيتي ‘0’ باشه؛ بيت متناظرش در آدرس آی‌پی متعلق به آدرس host در زيرشبكه است. در آدرسي كه مثال زديم subnet mask برابره با 255.255.255.0 در نتيجه سه بايت سمت چپ؛ آدرس زيرشبكه ست و فقط بايت سمت راست؛ آدرس host در زيرشبكه رو مشخص میکنه. توجه داشته باشيد كه اگر subnet mask رو به‌صورت باينري بنويسيم؛ یک‌ها از سمت چپ شروع ميشن و يك جايي تموم ميشن و بين یک‌ها، صفري نخواهيم داشت (1 ها در سمت چپ و 0 ها در سمت راست قرار می‌گیرند و تنها در يك محل تغيير از 1 به 0‌ خواهيم داشت). گاهي هم subnet mask رو با يك عدد در جلوي آدرس IP‌ ممكنه ببينيد؛ مثلاً آدرس به‌صورت 192.168.2.30/24 نمايش داده ميشه به اين معني كه 24 بيت اوليه آدرس، نشون دهنده آدرس زيرشبكه ست. در ضميمه [10] در مورد کلاس‌های تخصيص آدرس IP و subnet mask بيشتر توضيح داديم.

هاست و گره (Node) در شبکه

  • Host (هاست یا به فارسی میزبان) به هر دستگاهی که در انتهای شبکه؛ داده نهایی رو ارسال یا دریافت میکنه، host میگن؛ لذا ابزارهايی مثل سوئیچ‌ها (switch)، روترها (router یا مسیریاب)، هاب‌ها (hub)، پل‌ها (bridge)، هاست به حساب نمیان. اما کامپیوترهای شخصی، گوشی‌های همراه، پرینترها و… هاست هستند. بعلاوه به هر وسیله‌ای که داخل شبکه قرار میگیره و فریم‌ها به اون وارد یا ازش خارج میشن هم گره یا Node میگن. در ضمیمه [1] اطلاعات بیشتری در مورد اجزای شبکه در دسترس شما قرار میگیره.

فریم با EtherType برابر 0x080

همونطور که گفتیم در بخش نوع اترنت (دو بایت بعد از مک آدرس‌ها در فریم اترنت) عدد 0x0800 نشان‌دهنده اینه که فریم فعلی داده‌هایی رو در خودش داره که با فرمت پروتكل IP ارسال شده ن. اگه بخوایم روی مدل OSI یا TCP/IP توضیح بدیم نتیجه مثل شکل زیر هست. توجه داشته باشيد كه هر جا ميگيم IP‌ منظورمون Ipv4 هست.

ethernet 8

جریان داده‌ها در مدل OSI/TCP-IP

در سمت فرستنده، اطلاعات از لایه 4 به لایه 3 که در مدل OSI به اون لایه شبکه (Network) میگن؛ تحویل داده میشه. لایه سوم با استفاده از پروتکل IP ، روي داده دريافتي از لايه چهارم، بسته بندی مخصوص به خودش رو انجام میده، این بسته بندی دو وظيفه اساسي داره. وظيفه اول كه هميشه انجام ميشه، طبق معمول، اضافه کردن بخشی بنام هدر (Header ؛ سرآمد یا سرآیند) به داده ها است؛ گاهی هم كه حجم داده هاي دريافتي از لايه 4 بسيار زياد هست و در يك فريم جا نميشه؛ وظيفه تکه تکه کردن داده های لایه چهارم به قطعات کوچکتر و ارسال اون ها در چند بسته (Packet) هم اضافه ميشه.

تعریف Packet و  Encapsulation

  • لایه سوم در مدل TCP/IP بنام لایه اینترنت (Internet Layer) شناخته میشه.
  • یكبار دیگه مرور کنیم: به جریان بیت‌هایی که لایه 1 ارسال می‌کرد؛ می‌گفتیم stream ؛ به داده‌هایی که لایه 2 به لایه 1 تحویل می‌داد؛ می‌گفتیم فریم (frame) و به داده‌هایی که لایه 3 به لایه 2 تحویل میده، پکت (packet یا بسته) گفته میشه.
  • به فرایند اضافه‌کردن هدر به داده‌های لایه بالاتر و تحویل داده جدید به لایه پایین‌تر، کپسوله‌سازی (Encapsulation) گفته میشه. این در موقع ارسال هست. در گیرنده عکس این عمل انجام میشه، بهش Decapsulation میگن. در گیرنده، هر لایه، داده‌ها رو از لایه پایین می گیره، هدر خودش رو جدا میکنه و داده باقیمانده رو (بعلاوه تفسیر اون داده‌ها) به لایه بالاتر میده تا در نهایت داده اصلی به دست مصرف‌کننده نهایی برسه.

آدرس IP استاتیک و دینامیک

خب تا اینجا چی یاد گرفتیم؛ اینکه لایه 3 به داده‌های دریافتی از لایه 4 یه هدر اضافه میکنه؛ بعلاوه متوجه شدیم که در لایه 3 اصلی‌ترین پروتکل شبکه اینترنت یا همون IP protocol قرار داره و اینکه این پروتکل از آدرس‌دهی جداگانه‌ای (نسبت به آدرس فیزیکی یا همون مک آدرس) با نام آدرس منطقی یا IP Address استفاده میکنه.

آدرس IP ؛ یا از قبل (مثلاً موقع کدنویسی میکروکنترلر) مشخص میشه که بهش میگیم حالت استاتیک و یا درون شبکه و با پروتکل‌های مخصوص مثل پروتکل DHCP  (Dynamic Host Configuration Protocol) به host تعلق میگیره که به این حالت میگیم تخصیص دینامیک آدرس. در واقع در حالت دینامیک، هاست موقع اتصال به شبکه آدرس IP نداره؛ اما جزو اولین کارهاش، گرفتن آدرس IP هست. همین‌جا هم بگیم که پروتکل DHCP رو در موقع خودش توضیح میدیم. ما فعلاً از حالت استاتیک استفاده می‌کنیم؛ چون هنوز چیزی از پروتکل DHCP نمیدونیم.

نیاز به یافتن MAC از روی IP (ARP)

میدونیم که پروتکل IP از آدرس IP استفاده میکنه (البته هنوز با خود پروتکل IP درگير نشدیم) اما یادمون هست که قبلاً متوجه شدیم که لایه 2 از آدرس فیزیکی یا همون MAC Address استفاده می‌کرد، لذا اولین سؤالی که باید برای ما پیش بیاد اینه که یک هاست چطور میتونه بفهمه آدرس فیزیکی مرتبط با یک آدرس IP چیه؟ به‌عنوان‌مثال در همین برد خودمون؛ برد الکترونیکی قصد ارتباط با کامپیوتر رو داره؛ در این حالت نه آدرس آی‌پی و نه مک آدرس کامپیوتر رو نداریم! يك هاست، مك آدرس و IP ‌ آدرس خودش رو ميدونه؛ فرض می‌کنیم آدرس IP طرف مقابل رو هم ميدونه (اينكه چطور ميدونه، الان برامون مهم نيست، به وقتش توضیح میدیم که معمولاً با استفاده از سرويس DNS‌ پيدا میشه یا به طور ثابت در برنامه اضافه شده!) اما لايه دوم بايد مك آدرس طرف مقابل رو داشته باشه تا فريم رو ارسال كنه. اينجاست كه لزوم داشتن فرایندی، كه قبل از هر كاري، بتونه مك آدرس طرف گيرنده رو بدست بياره؛ احساس ميشه. اين وظيفه به عهده پروتكلي بنام ARP‌ گذاشته شده.

  • در عموم کتاب‌ها و منابع مربوط به اترنت؛ بعد از توضیح لایه دوم و فرمت فریم Ethernet ii به معرفي و اجراي پروتکل IP در لایه سوم (Ether Type=0x0800) پرداخته ميشه؛ اما فکر می‌کنم قبل از اينكه پروتکل IP رو بررسي كنيم؛ بهتره لايه سوم رو با پروتكل ARP شروع كنيم. اين نكته رو هم بگم كه در بعضي منابع پروتكل ARP رو جزو لايه 2 به‌حساب‌آوردن، خيلي هم ايرادي نداره، چون از نظر عملكرد جزو لايه 2 حساب ميشه، از نظر پیاده‌سازی جزو لايه 3؛ در ادامه متوجه منظورم خواهيد شد.
اطلاعات
12
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

نویسنده شو !

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

ارسال مقاله