پردازش بسته‌های IP در STM32 با تابع IP_Process | بررسی لایه شبکه TCP/IP | آموزش Embedded Ethernet قسمت 13

امبدد اترنت قسمت 13
مریم میریان
4 بازدید
۱۴۰۴-۰۴-۱۷
4 دقیقه
  • نویسنده: مجتبی داشخانه
  • درباره نویسنده: ---

از اونجايي كه به جهت سادگي در ارائه مفهوم از پردازش بخش Option صرف‌نظر كرديم و همین‌طور از قابليت Fragmentation در اين پروتكل استفاده نمی‌کنیم؛ لذا تعريف تابع IP_Process() هم به‌صورت زير انجام شده:

بررسی آدرس مقصد بسته IP

در گام اول با بررسي آدرس آی‌پی موجود در پيام؛ بررسي می‌کنیم كه آيا پيام فعلي براي ما ارسال شده يا نه؟

اعتبارسنجی چک‌سام هدر IP

قدم بعدي، محاسبه چك سام و بررسي تساوي چك سام دريافتي و چك سام محاسبه شده است. اگر هر دو بخش رو رد كرديم؛

شناسایی نوع پروتکل لایه چهارم

حالا بايد بررسي كنيم كدام پروتكل در لايه چهارم اين پيام رو فرستاده؛‌ سه پروتكل ICMP,UDP و TCP براي ما اهميت دارند؛ پس بخش پروتكل از هدر IP رو بررسي می‌کنیم و عمليات مناسب رو براي پردازش اين پروتکل‌ها انجام خواهيم داد. از اونجاييكه اين پروتکل‌ها رو هنوز معرفي نكرديم؛ تنها هسته مناسب براي پیاده‌سازی اونها رو در كد می‌بینیم. اينجا دوباره شماره پروتکل‌های لايه چهارم رو نوشتيم:

ICMP = 0x01

UDP  = 0x11

TCP   = 0x06

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

شناخت پروتکل‌های لایه چهارم در مدل TCP/IP

اگه بخوایم وضعیت این پروتکل‌ها رو در مدل OSI یا TCP/IP نشون بدیم مثل جدول زیر باید باشه:

(Transport Layer) لایه 4

TCP(segment)

UDP(segment)

ICMP

 

(Network Layer) لایه 3

IP (packet)

ARP

(Data Link Layer) لایه 2

Ethernet ii (frame)

(Physical Layer) لایه 1

‘0’ , ‘1’ (Stream)

  • تعداد پروتکل‌های موجود در هر لایه بسیار بیشتر از این جدول هست و ما مهم‌ترین و اصلی‌ترین‌ها رو معرفی كردیم.
  • به جریان بیت‌های ارسالی لایه یک، stream می‌گفتیم؛ داده‌های ارسالی در لایه دوم رو frame نام‌گذاری کردیم؛ داده لایه سوم رو packet و داده ارسالی لایه چهارم رو هم segment میگن. لایه چهارم در مدل OSI بنام لایه انتقال (Transport  یا Transmission) شناخته میشه و به وقتش به بررسي اونها خواهيم پرداخت.

جایگاه پروتکل‌ها در مدل OSI و TCP/IP

اولین لایه از بالا که قادر به ارسال داده خام هست، لایه چهارمه. مثلاً فرض کنید بردی طراحی کردید که قراره اطلاعات یک تعداد سنسور دما که شماره‌گذاری شده‌اند رو به یک کامپیوتر منتقل کنه. در این حالت میتونید از دو پروتکل UDP یا TCP برای ارسال اطلاعات متنی، مثل رشته زیر استفاده کنید.

“T1=10.1,T2=12.3,T3=14.1”

 کاربردهای ICMP در شبکه (ping و trace route)

پروتکل ICMP(Intenet Control Message Protocol) همونطور که از اسمش پیداست؛ جهت ارسال/دریافت پیام‌های کنترلی شبکه استفاده میشه (مثل موارد خطا). دو عملیات ping و trace route در شبکه با استفاده از قابلیت‌های پروتكل ICMP پیاده‌سازی میشن که بهشون اشاره خواهیم کرد و در ادامه ICMP  اولین پروتکلی هست که بعد از IP میریم سراغش. پروتکل ICMP برای این بوجود اومده که اگر یک ارتباط IP دچار مشکل شد؛ بشه به فرستنده یا ادمین شبکه اطلاع داد.

تفاوت کاربردی UDP و TCP

اما برای ارسال داده خام از دو پروتکل UDP(User Datagram Protocol) یا TCP(Transmission Control Protocol) استفاده میشه. هر گاه در تبادل اطلاعات زمان بر صحت و سلامت ارسال، ارجحیت داشته باشه از UDP و هرگاه صحت و سلامت تبادل اطلاعات بر زمان ارجح باشه از TCP استفاده میشه. در UDP، داده ها، فقط ارسال میشن؛ بدون اینکه بررسی بشه آیا بطور صحيح به مقصد رسیدن یا نه؟ (اصلا رسیدن یا نه) اما در TCP، صحت رسیدن اطلاعات به مقصد بررسی میشه و چنانچه خطایی رخ بده با استفاده از قابلیت هایی مثل بازارسال (retransmission)؛ داده ها رو مجددا ارسال می کنند. با اینکه هر دو پروتکل به صورت کلاینت/سرور (مشتری/خدمات دهنده) در نظر گرفته میشه؛ اما هر دو سمت شبکه، میتونن داده هایی ارسال یا از طرف مقابل دریافت کنند.

مثال‌های عملی از استفاده UDP و TCP در امبدد سیستم ها

فرض کنید شما در حال استفاده از یک دوربین با رزولوشن بالا هستید و سرعت نمونه برداری و ارسال فریم های تصویر هم بالاست. در این حالت بهتره از UDP استفاده بشه زیرا گم شدن یک یا دو فریم از تصویر اهمیتی نداره. بعنوان یک مثال دیگه از این پروتکل، میشه به ارسال اطلاعات دما یا حتا سیگنال دیجیتال یک میکروفون اشاره کرد زیرا در هر دو حالت، اگر یک یا چند نمونه از بین بروند و به مقصد نرسند؛ اهمیتی نداره؛ اما وقتی که شما در حال ارسال اطلاعات یک دیتابیس (database یا پایگاه داده) هستید یا اینکه دارید اطلاعات یک صفحه وب رو ارسال میکنید؛ در این حالت، صحت ارسال و دریافت بسیار مهم هست و درنتیجه، در این جا از پروتکل TCP استفاده میشه.

 بررسی نیاز به فیلترسازی  با فیلتر های END در شبکه‌های واقعی

با بررسي وضعيت پيغام هاي موجود روي خط با wireshark خواهيم ديد كه در هر لحظه پيغام هاي زيادي روي خط ردوبدل ميشن كه مقصد تعداد زيادي از اونها برد ما نيست؛ در يك شبكه واقعي، تعداد زيادي از اين پيام ها توسط تجهيزات مياني مثل روترها و سوييچ ها فيلتر ميشن. اما در وضعيت فعلي كه ما با يك كابل بطور مستقيم به PC‌ متصل هستيم؛ براي اينكه تعداد پيام هاي نامرتبط رو كاهش بديم؛ پيشنهاد ميشه كه فيلترهاي ENC رو فعال كنيم تا از دريافت تمامی پيغام ها و پردازش اضافه در میکروکنترلر جلوگيري بشه.

اطلاعات
4
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

نویسنده شو !

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

ارسال مقاله