ساختار فریم اترنت II و تفاوت آن با IEEE 802.3 به زبان ساده | قسمت پنجم آموزش Embedded Ethernet

blog
24 بازدید
۱۴۰۴-۰۱-۱۷
8 دقیقه

ارتباط تجهیزات با سرعت‌های مختلف و هم‌زمان‌سازی

خب یکم بریم عقب تر، اگه یادتون باشه؛ گفتیم که برای ارتباط تنها دو روج سیم برای TX و RX استفاده شدن! و سيگنال كلاك نداريم! از طرفی، درون شبکه، تجهیزات مختلفي با سرعت های مختلف هستند. این ها چطور با هم سنکرون میشن؟

معرفی preamble و  SFD

اینجاست که لایه دوم تعدادي بایت که بهشون میگن preamble هم در ابتدای frame و قبل از ارسال مک آدرس‌ها میفرسته.

تفاوت اصطلاحات stream و  frame

 

  • متوجه شديد كه براي لايه اول از اصطلاح stream و برای لايه دوم از frame ‌استفاده شد.

جزئیات preamble و  SFD

Preamble شامل 7 بایت با مقدار 0x55 و یک بایت هشتم با مقدار 0xD5 که به نام SFD (Start of Frame Delimiter) شناخته میشه. اگر این اعداد رو بصورت باینری بنویسید متوجه میشید که بصورت یک در میان ‘0’ و ‘1’ میشن.

  • 0x55=01010101
  •  0xD5=11010101

ترتیب ارسال بیت‌ها

(در بعضی مراجع SFD رو هم جزو Preamble به حساب میارن و اونو 8 بایتی در نظر می‌گیرند) یادمون هست که هر بایت از کم‌ارزش‌ترین بیت ارسال می‌شد. پس، ارتباط با ارسال یک بیت با مقدار ‘1’ شروع میشه (کم‌ارزش‌ترین بیت از پرارزش‌ترین بایت که 0x55 هست) و بعد به ترتیب صفرها و یک‌ها ارسال میشن تا آخرین بیت از بایت هشتم که به جای اینکه ‘0’ باشه دارای مقدار ‘1’ هست. تا اينجا کلاک دو سمت با هم سنكرون شده ن. هنگام ارسال آخرين بيت از بايت هشتم، طرف گیرنده، متوجه شروع ارسال مک آدرس‌ها میشه.

مفهوم Idle و  IPG

بعد از ارسال فریم هم خط برای زمان مشخصی ساکت میشه که بهش IPG(InterPacket Gap) میگن. در حالت سکوت اصطلاحاً خط در حالت Idle (توقف) هست و سیگنالی از نوع ‘0’ یا ‘1’ روی خط نیست. دو وضعيت ‘0’ و ‘1’ و همچنين Idle باتوجه‌به اختلاف سطوح ولتاژ روي پین‌های TX+,TX- تعريف شده است (توجه داشته باشید که در سرعت 100Mb وضعیت Preamble کمی متفاوت هست نسبت به 10Mhz).

این نوع بسته‌بندی؛ استاندارد Ethernet ii یا همون اترنت دو هست. بیاید این اطلاعات رو درون جدول ببینیم.

جدول ساختار فریم  Ethernet II

نام

Preamble

SFD

Destination

MAC Address

Source

MAC

Address

Ether

Type/Length

Payload

(data)+pad(0x00)

FCS

IPG

تعداد بایت

7

1

6

6

2

46~1500

4

12

مقدار

0x55

0xD5

مک

 آدرس مقصد

مک آدرس مبدا

نوع/ طول پروتکل

داده دریافتی از لایه سوم

CRC

Idle

ترتیب ارسال مک آدرس‌ها و مفهوم  Big Endian

در مراجع؛ دو بخش Preamle و SFD رو به همراه بخش IPG، جزو بخش های اصلی فریم در نظر نمی گیرند. در دو بخش DA, SA مک آدرس گیرنده و فرستنده قرار دارد. پرارزش ترين بايت در هر مك آدرس، ابتدا ارسال مي شود. به عنوان مثال در صورتی که مک آدرس مقصد 0A:55:4C:12:AF:B3 باشد؛ ارسال با 0x0A آغاز و با 0xB3 خاتمه مي يابد. مك آدرس مبدا نیز به همین منوال بعد از مک ادرس مقصد نوشته و ارسال خواهد شد. یادمون هم هست که گفتیم هر بایت از کم ارزشترین بیت ارسال میشه!

تفاوت Big Endian و  Little Endian

  • به این نوع نوشتن، اصطلاحاً فرم Big Endian یا فرمت اینترنتی گفته میشه؛ در حالی که در کامپیوترهای مبتنی بر پردازنده‌های 8086 (همین PC و لپ‌تاپ‌هایی که در اختیار ماست) و اکثر میکروکنترلرها از فرم Little Endian استفاده می‌شود. بخواهیم ساده بگیم در فرمت Little Endian بایت با ارزش کمتر در خانه با آدرس کمتر نوشته می‌شود؛ ولی همان‌طور که می‌بینید، در فرمت اینترنتی بایت پرارزش در خانه‌های ابتدایی نوشته می‌شود. اگر با این دو فرمت آشنایی ندارید؛ به‌ضمیمه [8] مراجعه کنید.

نکات مهم درباره نمایش باینری اعداد

  • در اسناد موجود در نت گاهی اعداد واقع در شروع فریم رو به صورت بیتی از راست به چپ می‌نویسند (0x55 رو به‌صورت “10101010” و 0XD5 رو به‌صورت “10101011”) و خواننده ممکنه فکر کنه که اعداد اصلی 0xAA و 0XAB هستند. حواستون باشه به این مورد!
  • وضعیت ارسال بخش آغازین و انتهایی فریم، در سرعت‌های 100,1000Mb کمی متفاوت هست از سرعت 10Mb ولی از اونجایی که این بخش رو همواره سخت‌افزار انجام میده؛ آن‌چنان اهمیتی از نظر ما نداره. برای دریافت اطلاعات بیشتر می توانید به نت مراجعه کنید.

 

بخش Ether Type/Length و نقش آن

بعد از مک آدرس‌ها دو بایت با عنوان Ether type/Length ارسال می‌شود. با استفاده از این دو بایت؛ گیرنده متوجه می‌شود که داده ارسالی، تحت چه پروتکلی (از لايه 3) ارسال شده یا شامل چه تعداد بایت هست. سپس داده‌های اصلی قرار دارند.

پدینگ (Padding) در داده‌ها

طبق استاندارد؛ بخش داده‌ها، حداقل باید دارای 46 بایت باشد. اگر تعداد داده های واقعی کمتر از آن باشد؛ باید در انتهای داده ها، تعدادی بایت با مقدار 0x00 قرار دهیم تا تعداد آن به 46 بایت برسد و به آن padding گویند. در انتهای پکت هم، 4 بایت برای بررسی صحت دریافت قرار دارند که به نام FCS(Frame Check Syquence) شناخته میشه و محاسبات آن با روش CRC (از ابتدای DA تا انتهای داده‌ها) انجام می شود. این محاسبات عموما توسط سخت افزار انجام میشه و ما ازش عبور می کنیم. تنها نکته‌ای که در این بخش، بهتره یادمون باشه؛ اینه که در هنگام ارسال CRC؛ برعکس مابقی بایت ها؛ از پرارزشترین بیت یعنی بیت شماره 31 شروع و با ارسال بیت شماره 0 تمام می شود.

محاسبه CRC در  FCS

 در انتهاي فريم هم به اندازه 12 بایت (96us در ارتباط 10Mb) روی خط سکوت برقرار می‌شود (خروجی در حالت Idle قرار می‌گیرد) که به آن IPG یا IFG گفته می‌شود (Inter Packet/Frame Gap). IPG و در سرعت 100Mb کمی متفاوت انجام می‌شود.

اگر بخش‌های Preamble,SFD,IPG رو در نظر نگيريم؛ تعداد بایت‌های کل فریم اترنت، حداقل 64 و حداکثر 1518 بایت هست. 12 بایت برای مک آدرس‌ها؛ 2 بایت برای Ether type/Length و 4 بایت برای CRC. مجموعاً 18 بایت از کل فریم، سربار هست؛ لذا حداقل داده ارسالی میشه 64-18=46

از سوی دیگر، حداکثر داده ارسالی هم ميشه 1518-18=1500 که برای استفاده در عموم پروتکل‌های تعریف شده؛ کافیه. چنانچه بیش از این مقدار، نیاز باشه (مثلاً برای ارسال یک فایل) داده‌های اصلی توسط پروتکل‌های مربوطه شکسته و خرد میشه و بعد ارسال میشن. همین‌جا چند اصطلاح دیگه رو معرفی کنیم:

مفاهیم Octet، PDU، MTU

“Octet” که در لغتنامه اینترنتی، نام دیگر “بایت” هست!

 PDU(Protocol Data Unit) به‌طورکلی به داده‌هایی که توسط یک پروتکل ارسال میشه؛ گفته میشه. MTU(Maximum Transmission Unit) حداکثر داده ارسالی بر حسب بایت هست. در استاندارد بعضی از پروتکل‌ها، این الزام هست که گیرنده‌ها باید بتونن یک حداقلی از داده رو دریافت کنن. از طرفی حداکثر مقدار ارسالی هم توسط تنظیمات اولیه یا در مرحله مذاکره (Negotiation) یا هندشیک (دست دهی، Handshake) ممکنه مورد توافق قرار بگیره. همچنین ماکزیمم اندازه داده‌های هر پیغام توسط فریم اصلی Ethernet ii هم محدود میشه (1500 بایت).

استاندارد IEEE802.1Q و تگ  VLAN

  • فریم‌هایی هم داریم که 4 بایت اضافه دارند. اين 4 بايت، بعد از مك آدرس ها و قبل از بخش Ether Type/Length‌ قرار مي گيرند. دو بايت اول از اين چهار بايت، داراي مقدار ثابت 0x8100 است و به دو بايت بعدي تگ (tag) گفته ميشه. لذا اندازه فریم ارسالی حداكثر 1522 بایت هست و حداقل 64 بایت. چون این 4 بایت، جزو هدر به حساب میان؛ حداکثر داده ارسالی همون 1500 و حداقل 42 بایت خواهد بود. به این استاندارد 1Q گفته میشه و در ایجاد VLAN ها استفاده میشه. پشتیبانی از اینگونه فریم ها و یا هر گونه فریمی که اندازه بزرگتری دارد، بستگی به قابلیت های تراشه دارد.
  •  

فریم  magic packet

  • یک فریم خاص هم داریم به اسم magic packet که توسط شرکت AMD معرفی شده و برای بیرون آوردن یک دستگاه از حالت sleep مورد استفاده قرار می گیره. (همونطور که می‌بینید؛ اینجا به‌جای فریم از اصطلاح پکت استفاده شده!) در بخش داده‌های این فریم (یا پکت)؛ 6 بایت با مقدار 0xFF برای سنکرون شدن و 16 بار مک آدرس گیرنده (بدون اینکه فاصله‌ای بینشون باشه) قرار داده میشه. در بخش مک آدرس مقصد؛ هم میشه از آدرس عمومی (6 بایت شامل 0xFF) استفاده کرد و هم از مک آدرس دستگاه مورد نظر.

فریم کنترلی  pause

  • و باز یک فریم خاص دیگه که به نام فریم کنترلی (control frame) شناخته میشه؛ در بخش Ether Type دارای عدد 0x8808 هست. در بخش داده‌ها 2 بایت برای نوع کنترل (opcode) و 2 بایت برای پارامترهای آن (در صورت وجود) به همراه 42 بایت 0x00 برای پدینگ داره. در حال حاضر تنها یک فریم کنترلی به نام pause تعریف شده با opcode=0x0001 و DA=01-80-c2-00-00-01 که یک آدرس multicast هست و برای توقف موقتی ارسال داده در شبکه استفاده میشه. مقدار توقف در قسمت پارامتر مشخص میشه و هر عدد آن برابر با مدت‌زمان لازم برای ارسال 512 بیت هست (مثلاً اگر در بخش پارامتر، عدد 2 قرار بدیم، به اندازه ارسال 1024 بیت، ارتباط متوقف میشه). برای لغو توقف هم باید دوباره همین فریم با پارامتر 0x0000 ارسال بشه. باز هم تکرار می‌کنم این اطلاعات صرفاً جهت اطلاع هست و نیازی بهشون نداریم.

تفاوت استاندارد Ethernet II و  IEEE802.3

مهم‌ترین بخش هر فریم، قسمت Ether Type/Length هست. اگر در این قسمت عددی کوچک‌تر یا مساوی 1500 معادل 0x05DC نوشته شده باشه؛ این عدد؛ اندازه بخش payload یا همون طول داده های ارسالی (Length) رو نشون میده. به این حالت میگن استاندارد IEEE 802.3 ؛ برای اطلاعات بیشتر در مورد نامگذاری و تاریخچه این استاندارد میتونید از لینک زیر استفاده کنید:

https://en.wikipedia.org/wiki/IEEE_802

اعداد 1501–1535 تعریف نشده اند و نباید استفاده بشوند. اما اگر در این قسمت، عددی بزرگتر/مساوی 1536 یا همان 0x0600 قرار داده شده باشه، این عدد نشانگر پروتکلیه که داده ها تحت اون ارسال شده ن. این حالت رو میگیم استاندارد Ethernet ii. چیزی که ما نیاز داریم و از ابتدا هم بارها بهش اشاره کردیم، در واقع این استاندارد هست. در اسناد موجود در اینترنت؛ در موارد زیادی منجمله در دیتاشیت ENC به جای Ethernetii از IEEE802.3 استفاده میشه؛ ولي شما باید متوجه تفاوت این دو حالت باشید. استاندارد مدنظر ما Ethernet ii هست و از IEEE802.3 موقعی میتوانید استفاده کنید که بخواهید داده ها رو بدون استفاده از پروتکل های تعریف شده، ارسال کنید و یا خودتون پروتکل شخصی ایجاد کنید مثل magic packet.

  • برای دریافت اطلاعات تکمیلی در مورد فریم اترنت به AN1120 “Ethernet Theory of Operation” از شرکت میکروچیپ مراجعه کنید.

تا اینجا چی یاد گرفتیم؟ اگر در قسمت Ethe type عددی کمتر از 1501 نوشته شده باشه؛ داریم از استاندارد IEEE802.3 استفاده می‌کنیم و در واقع اطلاعات این دو بایت Ether Length هست. این حالت برای ما کارایی نداره. مدنظر ما حالتیه که در قسمت Ether Type عددی بزرگ‌تر از 1535 نوشته شده. این حالت همون استاندارد Ethernet ii (اترنت دو) هست. اعدادی که در این قسمت نوشته میشه از قبل تعریف شده ن و ما برای استفاده از هر پروتکلی مبتنی بر Ethernet ii باید در این قسمت اعداد مشخصی رو قرار بدیم. این اعداد توسط سازمانی بنام IANA(Internet Assigned Numbers Authority) اختصاص‌داده‌شده‌اند. جدول زیر تعدادی از این اعداد رو مشخص کرده.

جدول مقادیر Ether Type و پروتکل‌ها

Ether Type

Protocol

0x0800

Internet Protocol Version4(Ipv4)

0x0806

Address Resolution Protocol(ARP)

0x8035

Reverse Address Resolution Protocol(RARP)

0x86DD

Internet Protocol Version6(Ipv6)

0x8100

Tagged VLAN

0x88A4

EtherCAT Protocol

تعداد پروتکل‌های تعریف شده، بسیار بیشتر از این جدوله اما چیزی که برای ما اهمیت دارد؛ دو عدد 0x0800 و 0x0806 (که در جدول پررنگ‌تر نوشته شده ن) هست که با نام پروتکل‌های IPv4 و ARP شناخته می‌شوند. اگه یادتون باشه در ابتدا گفتیم که چند تا پروتکل؛ نیاز حتمی هست که یاد بگیریم تا اصول رو بفهمیم.

پروتکل‌های ضروری : Ethernet II IP، ARP

سه پروتکل Ethernetii ؛ IP و ARP جزو اون ها هستند. پروتکل Ethernet ii که در لایه دوم قرار داره رو تعریف کردیم و دوتای دیگه که جزو لایه سه از مدل OSI هستند رو خواهیم گفت.

  • IP یا همون پروتکل اینترنت، اصلی‌ترین پروتکلیه که اینترنت روی اون بنا شده. اگه در جدول دقت کرده باشید دو ورژن برای IP داریم؛ Ipv4 و Ipv6. در سرتاسر اين نوشتار ما هرجا نوشتيم IP‌ منظورمون در واقع Ipv4 هست. در ادامه Ipv4 رو توضیح میدیم، چون همچنان مهم‌ترین پروتکل مصرفی در اینترنت و مبحث شبکه هست. در موقع مناسب اگه فراموش نکنیم، علت به وجود اومدن Ipv6 و تفاوتش با Ipv4 رو خواهیم گفت.
  • برای بررسی اعداد انحصاری و یا اختصاص‌یافته در پروتکل‌های مختلف توسط IANA؛ به سند مرجع RFC 1700 مراجعه کنید. اگه بخوایم بگیم اسناد RFC شامل چه چیزهایی هستند، باید بگیم این اسناد اصلی‌ترین مرجع تعریف استانداردها، پروتکل‌ها، الگوریتم‌ها و… در شبکه اینترنت هست. در ضمیمه [6] مفصل‌تر در مورد این اسناد صحبت می‌کنیم. در واقع بعدها اگر نیاز داشتید پروتکلی رو به طور کامل بررسی کنید یا پروتکل‌هایی که ما بهشون نرسیدیم، رو مطالعه کنید؛ نیاز هست به اسناد RFC مربوطه مراجعه کنید.

مفهوم  RFC

 RFC سرنام (acronym) اصطلاح Request For Comment هست. (خودتون رو زیاد درگیر این اصطلاحات و مخفف‌ها (abbreviation) نكنيد وگرنه بیشتر گیج می‌شد. کم‌کم همه شون رو یاد می‌گیرید؛ بدون حفظ‌کردن)

اطلاعات
24
0
1
لینک و اشتراک
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

نویسنده شو !

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

ارسال مقاله