مفاهیم شبکه و اینترنت در راه‌اندازی ماژول ESP8266, اینترنت اشیاء, توصیه شده

ادامه مسیر عبور داده ها در اینترنت تا مقصد (بخش دوم) | قسمت هفتم مفاهیم شبکه و اینترنت در راه اندازی ماژول ESP8266

آموزش اینترنت و شبکه در راه اندازی ماژول ESP8266

سلام به همه دوستان. امیدوارم تا حالا مطالب مفید بوده باشه! شاید یکسری از مطالب گفته شده برای شما تکراری باشه و بعضی از قسمت­ ها گیج کننده ولی سعی کردم با تکرار مطالب و توضیح کاملتر در قسمت­ های تکرار شده، موضوع را قابل درک تر کنم. بدون اتلاف وقت میریم و به بقیه مطالب که ادامه قسمت قبل هستش می­پردازیم.

UDP چیست؟

User datagram protocol (دیتاگرام یا بسته کاربر) یکی از اعضای اصلی مجموعه پروتکل اینترنت است. UDP یک پروتکل ارتباطی (جایگزین برای پروتکل انتقال TCP) است که در درجه اول برای برقراری و ارسال داده در زمان کم و همچنین با امکان خطا، در اینترنت استفاده می­شود. UDP از یک روش انتقال ساده بدون handshake است. در استفاده از این پروتکل فرض بر آن است که بررسی خطا و تصحیح آن ضروری نیست.

برنامه‌ها با استفاده از پروتکل UDP اطلاعات را خیلی سریع ارسال می‌کنند؛ زیرا نه نیازی به ایجاد اتصال با کلاینت دارند و نه لازم است منتظر پاسخ باشد. فقط هیچ تضمینی وجود ندارد که بسته‌ها به طور کامل و به همان ترتیبی که ارسال شده‌اند به مقصد برسند! به علاوه این پروتکل امنیت داده‌ها را در برابر دستکاری اشخاص ثالث تضمین نمی‌کند.

امکانات انتقال داده برای تضمین یک انتقال کامل و موفق روی پروتکل دیتاگرام کاربر یا همان UDP حداقل است؛ از این رو نمی‌توان به آن به چشم یک پروتکل انتقال اصلی نگاه کرد. این پروتکل از ابتدا برای کاربردهایی طراحی شده بود که امنیت برای آن‌ها در اولویت نبود؛ بنابراین کاربردهای محدودی دارد، از جمله:

کاربردهای نیازمند ارائه بهترین تلاش (best effort)

گاهی اوقات برای انتقال داده به سرویس‌های ارائه، بهترین تلاش نیاز است. در چنین کاربردهایی معمولا از پروتکل UDP برای انتقال اطلاعات استفاده می‌شود. مثل برنامه‌هایی که مقادیر اندازه‌گیری شده را انتقال می‌دهند یا مرتب دستورات کاری مشابهی اجرا می‌کنند.

کاربردهایی که مکانیسم‌های خاصی برای انتقال قابل اعتماد دارند:

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

کاربردهای چندپخشی

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

کاربردهای بلادرنگ

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

موارد استفاده از UDP

  • بازی‌های آنلاین: اکثر بازی‌های آنلاین از خدمات پروتکل UDP استفاده می‌کنند. از آنجایی که در بازی‌های آنلاین تاخیر قابل تحمل نیست، استفاده از UDP انتخاب عاقلانه‌تری است.
  • کنفرانس ویدیویی: برنامه‌های کنفرانس ویدیویی مانند Skype ،Gmeet ،Zoom همگی از خدمات UDP استفاده می‌کنند؛ چراکه برنامه‌های بلادرنگ محسوب می‌شوند و نباید تاخیری در دریافت داده‌ها داشته باشند.
  • تکنولوژی انتقال صدا روی بستر شبک:(VoIP) : برنامه‌هایی مانند Viber، Whatsapp، Google Hangouts از UDP برای تبدیل صدای ما به داده‌های دیجیتال و انتقال آن از طریق شبکه استفاده می‌کنند.
  • سیستم نام دامنه (DNS): DNS از UDP برای واکشی آدرس IP مربوطه استفاده می‌کند؛ زیرا زمان بارگذاری صفحات وب سرعت اهمیت زیادی دارد و UDP به‌مراتب سریع‌تر از TCP است.

تفاوت میان TCP و UDP چیست؟

تفاوت میان TCP و UDP

TCP یک پروتکل اتصال‌گرا است. به این معنی که برای انتقال با این پروتکل باید یک جلسه بین فرستنده و گیرنده برگذار شود تا در مورد اینکه چه داده‌هایی منتقل می‌شوند، توافق کنند. هنگامی که بسته‌های TCP دریافت می‌شوند و عملیات بررسی خطا را پشت سر می‌گذارند، گیرنده باید با یک تایید پاسخ دهد. اگر بسته‌های TCP در حین انتقال خراب یا گم شوند، گیرنده تأییدیه­ ای ارسال نمی‌کند و فرستنده در نهایت آن بسته‌ها را دوباره ارسال می‌کند.

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

موارد استفاده از TCP

  • انتقال متن: قطعا انتظار همه در ارسال و دریافت پیام‌های متنی این است که متن بدون اتلاف و به همان ترتیبی که ارسال شد، دریافت گردد. از این رو پروتکل TCP به دلیل قابلیت انتقال مطمئن و کنترل خطا در ارتباطات متنی استفاده می‌شود مانند  Whatsapp، iMessage، Instagram و Google Chat.
  • انتقال فایل یا FTP : زمانی که در انتقال فایل، صحت بسته‌ها در مقصد دارای اهمیت باشد از TCP استفاده می‌شود؛ مثل مشتری و سرور FileZilla.
  • پروتکل انتقال ابرمتن (HTTP) : برای دسترسی به داده‌های موجود در شبکه جهانی وب از TCP استفاده می‌شود زیرا TCP از ارسال مرتب داده‌ها، کنترل خطا و کنترل جریان و ارسال مجدد بسته‌های گم شده پشتیبانی می‌کند.
  • پروتکل انتقال نامه ساده (SMTP): این یک پروتکل لایه کاربرد است که برای ارسال ایمیل از یک سیستم به سیستم دیگر استفاده می‌شود. SMTP برای برقراری ارتباط از خدمات TCP استفاده می‌کند. هنگامی که سرور SMTP درخواست اتصال را می‌پذیرد، اجازه ارسال نامه‌ها را به فرستنده می‌دهد. نمونه‌هایی از این پروتکل را در Yahoo ،Gmail ،Outlook و غیره می‌بینیم.

PPPOE چیست؟

PPPOE مخفف عبارت Point-to-Point over Ethernet است و یک پروتکل شبکه‌­ایست که از پروتکل قدیمی PPP یا Point-to-Point  گرفته شده. دلیل طراحی PPPOE مدیریت و نحوه انتقال داده‌ها از طریق شبکه‌های اترنت (شبکه‌های کابل) هست. در نتیجه چندین کلاینت در یک شبکه می‌تونن دسترسی به اینترنت رو با استفاده از اتصال PPPOE داشته باشن.

برای اینکه موضوع رو راحت‌تر درک کنین باید بگیم که PPPOE نسخه جدیدتر از اتصالات dial-up connection هست که بیشتر توی دهه‌های 80 و 90 میلادی مورد استفاده قرار می‌گرفتن. همچنین PPPOE توانایی این رو داره که ویژگی‌های مهم و اساسی در شبکه مثل فشرده سازی داده‌ها (data compression)، رمزگذاری (encryption)، نقش رمزنگاری در امنیت شبکه و تأیید هویت (authentication) رو ارائه کنه.

کارت شبکه با پروتکل PPPOE

اگر مطلب گفته شده براتون گنگ بود، بذارید یک جور دیگه هم توضیح بدم. خوب،

PPPOE  شامل دو قسمت PPP و OE هست. قسمت اول همون پروتکل Point to Point Protocol هست که روی مودم‌های Dial-Up هم برای برقراری ارتباط استفاده می‌شد. به کمک این پروتکل می‌شه بین دو شبکه یا دو نقطه یا دو point داده‌هایی رو تبادل کرد. OE هم یعنی استفاده چندین کاربر از اترنت.

PPPOE سازگاری خوبی با IPv4 و IPv6 داره. به خاطر اینکه توی این پروتکل نیاز به ساخت کانکشن و تنظیم اون توسط کاربر نیست، توی ISP ها یا شرکت‌های ارائه‌دهنده خدمات اینترنت نظیر ADSL بیشترین کاربرد رو داره. بنابراین بیشترین میزان تنظیم سرور PPPOE در سمت ISPها صورت می‌گیره و معمولا تنظیمات PPPOE Client روی مودم‌ها در کاربرد خانگی یا روی روتر سازمان انجام می‌شه.

پروتکل PPPOE در شبکه به طور خودکار دنبال access pointهایی می‌گرده که می‌شه بهشون وصل شد. سپس یک PPPOE connection می‌سازه که با یک username و password به سادگی قابل اتصال هست. این پروتکل یک پروتکل استاندارده که برای اینکه بین دو نقطه ارتباط برقرار بشه، مورد استفاده قرار می‌گیره.

قابلیت PoE چیست؟

قابلیت PoE یا Power over Ethernet یک فناوری جدید است که به کابل شبکه اجازه می دهد تا علاوه بر انتقال داده، انرژی الکتریکی (تغذیه) را نیز انتقال دهد. برای مثال یک دوربین مدار بسته را در نظر بگیرید که قصد داریم آن را در فضای بیرونی ساختمان نصب کنبم. دوربین مداربسته برای عملکرد صحیح به دو اتصال (کابل) نیاز دارد:

  • اتصال شبکه: برای ارتباط برقرار کردن با NVR یا مانیتور
  • اتصال برق (تغذیه): برای تأمین نیروی الکتریکی لازم

با این وجود اگر دوربین دارای قابلیت PoE باشد، برای این دو نوع اتصال فقط به یک کابل شبکه نیاز خواهد داشت که هم داده ها را انتقال دهد و هم انرژی برق لازم را تأمین کند.

قابلیت PoE

پورت PORT چیست؟

پورت نقطه اتصال یا رابط بین کامپیوتر و یک دستگاه خارجی یا داخلی می باشد. پورت های داخلی، جهت اتصال دستگاه هایی مانند هارد دیسک، درایوهای CD ROM یا DVD و پورت های خارجی برای مودم ها، چاپگرها، ماوس ها و سایر دستگاه ها استفاده می­گردند. به هر پورت شماره­ای اختصاص داده می­شود تا در حین برقراری ارتباط بین دستگاه ­ها و سیستم، شبکه بتواند نوع ارتباط و داده­ های دریافت شده در زمان ارتباط را ردیابی نماید.

ما دو نوع پورت داریم:

پورت سخت افزاری و پورت نرم افزاری.

پورت سخت افزاری: مانند پورت LAN در مادربرد و Switchها. پورت های سخت افزاری به دلیل قابل دیده شدن آنها، برای ما واضح است (پورت­ های سخت ­افزاری برای ما الکترونیکی ها، آشناست!).

انواع پورت

اما پورت نرم افزاری چیست؟ و چه نیازی به آن داریم؟

پورت‌های نرم افزاری تعیین می‌کنند که کامپیوترها، اطلاعات را از یک IP مشخص با یک پورت مشخص، ارسال و دریافت کنند. پس، می­توان گفت پورت نرم افزاری قسمتی از یک آدرس اینترنتی است.

جایگاه Port در مدل OSI

در مدل OSI سه نوع آدرس داریم:

  1. آدرس سخت افزاری (MAC Address)
  2. آدرس IP
  3. شماره پورت

جایگاه پورت­ ها و آدرس ­ها در مدل OSI به­ صورت زیر است:

  1. Port  در لایه 4 یعنی Transport
  2. IP Address  در لایه 3 یعنی Network
  3. MAC Address  در لایه 2 یعنی Data-link

برای درک بهتر کاربرد پورت، به مثال زیر توجه کنید:

فرض کنیم قرار است نامه­ای را برای شخصی ارسال کنیم در این صورت اگر:

  • IP Address  را معادل کد پستی ساختمان و
  • MAC Address  را معادل شماره واحد در آن ساختمان در نظر بگیریم،

در این صورت شماره Port معادل (کد ملی) همان شخصی است که گیرنده نامه است.

شماره پورت چیست؟

در شبکه های کامپیوتری، شماره پورت­های شبکه برای برنامه­ های مختلف استفاده می­شود. پورت ­ها در تمام دستگاه­ های متصل به شبکه استاندارد شده­اند و به هر پورت یک عدد اختصاص داده شده است. بیشتر پورت‌ها برای پروتکل‌های خاصی رزرو شده‌اند.

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

یعنی نیاز نیست یک اتصال مثلا داده سیم‌کارت برای دانلود فیلم برقرار کنید و یک اتصال اینترنت خانگی برای وب‌گردی.  در حقیقت پستچی یک نفر است که تمامی نامه‌های شما را از مکان‌های مختلف به دستتان می‌رساند. یعنی یک اتصال تمامی کد‌ها، درخواست‌ها، پاسخ‌ها و… را هم‌زمان و به‌صورت فله‌ای تحویل گوشی، لپ‌تاپ یا هر دستگاهی می‌دهد و هر Port، درخواست مربوط به خود را سوا کرده و می‌برد.

درنتیجه می‌توان به‌صورت هم‌زمان حتی از هزاران شبکه مختلف بهره برد. رایانه نهایتا ۵۰ پورت سخت‌افزاری مختلف خواهد داشت اما پورت­ های مجازی ۶۵۵۳۵ عدد هستند که به صورت عدد مشخص می شوند و به آنها پورت نامبر نیز می‌گویند. بعضی از این پورت ها توسط سازمان IANA  برای سرویس خاصی رزرو شدند و سایر پورت ها آزاد هستند. چند نمونه از پورت ها و سرویس های معادل آن ها را در زیر می بینید:

شماره های پورت

برای دیدن لیست پورت های معروف و سرویس های معادل آن ها به لینک زیر سر بزنید:

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

چه زمانی به Port نیاز داریم؟

هر گاه در سطح Application بخواهیم در شبکه ارتباطی برقرار کنیم نیاز به سه آدرس MAC، IP و Port داریم. هم برای مبدا و هم برای مقصد. آدرس MAC که از قبل بر روی کارت های شبکه تنظیم شده است. بنابراین آنچه که نیاز داریم IP و Port خواهد بود. تنظیمات IP می­تواند توسط ما به صورت دستی و یا توسط DHCP یا APIPA به صورت اتوماتیک بر روی کارت شبکه انجام شود. اما چه کسی Port ها را اختصاص می دهد؟

پاسخ کوتاه:IANA، سیستم عامل، کاربر

یک مرورگر وب مانند Mozilla را در نظر بگیرید. این Application  به این دلیل ایجاد شده تا صفحات وب را برای ما نشان دهد. بنابراین Mozilla  باید درخواست ها را به وب سرور و به پورت 80 آن بفرستد. چرا که پورت 80 برای پروتکل HTTP و درخواست صفحات وب می باشد(اختصاص پورت توسط IANA). پس پورتی که باید به آن Data بفرستد مشخص شد! اما خود Mozilla از چه پورتی استفاده می کند؟ برنامه Mozilla لزوما از یک پورت ثابت استفاده نمی­کند و به ازای درخواست­های مختلف، نیاز به پورت­های مختلفی دارد، بنابراین هرگاه نیاز به پورت جدید برای برقراری ارتباط داشته باشد، به سیستم عامل درخواست می­دهد تا یک پورت خالی به او اختصاص دهد. (اختصاص پورت توسط سیستم عامل)!

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

انواع حالت های پورت

پورت های 0 تا 1023 با نام پورت های اختصاص یافته (Assigned) مهمترین و پرکاربردترین پورت ها هستند و از هرکدام برای سرویسی خاص استفاده می شود، پورت های 1024 تا 49151 به عنوان پورت های ثبت شده (Registered) و پورت های بالاتر از 49151 به عنوان پورت های خصوصی (Private) شناخته می شوند.

پورت 80 یکی از مهم ترین پورت های جهان است که معمولا برای ارتباطات اینترنتی استفاده می شود، تمامی صفحات اینترنتی بر پایه این پورت کار می­کنند. زمانی که به وب سایتی مراجعه می­کنیم، در واقع مرورگر درخواست دریافت آن صفحه را از طریق پورت 80 به وب سرور مقصد ارسال نموده و وب سرور اطلاعات را از طریق پورت 80 برای ما ارسال می­کند. پورت 80 از پروتکل Hypertext Transfer Protocol (HTTP) یا (پروتکل انتقال ابر متن) برای انتقال اطلاعات استفاده می کند.

پورت HTTP

اینترنت در ابتدا بر روی سیستم های مبتنی بر یونیکس گسترش یافته بود، یونیکس در ابتدا 1023 پورت اول را به عنوان پورت های دارای حق امتیاز سیستمی یا root ثبت نموده بود که تنها توسط سرویس های root در دسترس بودند. بنابراین تنها سیستم های دارای مجوز و حق انحصاری قادر به برقراری ارتباط و راه اندازی وب سرور از طریق پورت 80 بودند. در نتیجه سیستم هایی که دارای چنین حق امتیازی نبودند تا وب سرور خود را با پورت 80 راه اندازی کنند، پورت 8080 را بعنوان پورت جایگزین انتخاب نمودند.  وب سرور هایی مانند آپاچی و تامکت با این پورت کار می کنند.

پورت 8080 در اصل جایگزین پورت محبوب 80 است و با نام HTTP Alternate شناخته می شود، برای دلیل استفاده از پورت 8080 باید به مروری کوتاه از تاریخچه این پورت بپردازیم.

دیگه یواش یواش اطلاعاتتون درباره شبکه و اینترنت و… داره کامل میشه. ولی یه خورده­ کاری­ هایی هنوز هست. پس بریم تا در قسمت هشتم مطالب را ادامه بدیم.

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *