خب… بریم به ادامه مطالب اصلی بپردازیم. شاید عبارت هایی که قبلاً استفاده کردیم نامفهوم بوده باشند. یا اینکه ندونیم از کجا اومدند! توی این قسمت سعی کردم هر نوع پروتکلی که (تا زمان نوشتن این مقاله) در شبکه محلی و یا شبکه اینترنت استفاده میشند و اسم اونها را زیاد میشنوید و در راه اندازی ESP8266 بدرد میخورند را توضیح بدم. البته این ماژول فقط چند پروتکل (اصلی و مهم) را پشتیبانی میکنه ولی سعی کردم خیلی جامعتر توضیح بدم.
انواع پروتکلهایی که به طریقی شما با آنها در کار با شبکه یا وب سروکار خواهید داشت در اینجا بهصورت دستهبندیشده و با توضیحات لازم برای هر کدام از آنها، تهیه شده. اگر مطالب قبل درباره لایه های شبکه را بهخاطر بیارید، تصویر زیر را بهتر میتونید درک کنید. شکل زیر انواع پروتکل های شبکه و اینترنت، و محل قرارگیری اونها (بهطورکلی) در دولایه از بین لایه های شبکه که بیشترین تعامل و آشنایی با اون را داریم، بیان میکنه:
شاید و بهاحتمال زیاد شکل بالا خیلی دقیق نباشه (این رو دوستان رشته های کامپیوتر بهتر میدونند) چون خیلی از پروتکل ها را فقط در دولایه قرار داده؛ ولی یک الگوی ساده برای درک بهتر محل قرارگیری انواع پروتکل ها در بین لایه های شبکه است. برای مثال پروتکل HTTP که مربوط به صفحات وب میشه و همیشه ازش در اینترنت استفاده میکنیم در لایه کاربرد قرار داره. فکر کنم تصویر زیر این مطلب را بهتر بیان کرده!
تصویر زیر کامل تر از تصویر قبل هستش و اگر دقت کنید جای چند پروتکل جابجا شده!
مطلب دیگه ای که باید اضافه کنم اینه که در اکثر مواقع هر پروتکل بهتنهایی کاری از پیش نمیبره و با ترکیب چند پروتکل با همدیگه است که فرایند انتقال کامل میشه. شاید برای راهاندازی ESP8266 از چند پروتکل بیشتر استفاده نکنیم؛ ولی بد نیست با موارد بالا بیشتر آشنا بشیم:
لایه کاربرد (Application Layer)
پروتکل BGP (Border Gateway Protocol)
BGP مخفف عبارت «Border Gateway Protocol» به معنای پروتکل دروازه مرزی است. یک پروتکل مسیریابی که برای انتقال دادهها و اطلاعات بین دروازه هاستهای مختلف، روی اینترنت یا سیستمهای مستقل استفاده میشود.
پروتکل DHCP (Dynamic Host Configuration Protocol)
در علم کامپیوتر، پروتکل پیکربندی Dynamic Host (DHCP) یک پروتکل مدیریت شبکه است که در شبکههای پروتکل اینترنت (IP) استفاده میشود؛ بهموجب آن یک سرور DHCP به طور خودکار یک آدرس IP و سایر پارامترهای پیکربندی شبکه را به هر دستگاهی که به روی شبکه بهصورت فیزیکی یا وایرلس وصل میشود را اختصاص میدهد، بنابراین دستگاهها میتوانند پس از اتصال به شبکه و دریافت IP اختصاصی با دیگر دستگاههای (گره) شبکه ارتباط برقرار کنند.
با بهکارگیری این پروتکل، حجم کار مدیریت سیستم بهشدت کاهش مییابد و دستگاه ها میتوانند با حداقل تنظیمات یا بدون تنظیمات دستی به شبکه افزوده شوند. سرور DHCP رایانه ها را قادر میسازد آدرس های IP و پارامترهای شبکه را به طور خودکار از ارائهدهنده خدمات اینترنت (ISP) درخواست کنند و نیاز مدیر سرور یا کاربر را برای واردکردن آدرس های IP به صورت دستی برای اتصال همه دستگاه های شبکه، کاهش میدهند.
در صورت عدم وجود سرور DHCP، برای رایانه یا دستگاهی که در شبکه وجود دارد، باید بهصورت دستی یک آدرس IP اختصاص داده شود.
پروتکل DNS (Domain Name System)
هر وبسایت یک آدرس منحصربهفرد در اینترنت دارد که IP یا Internet Protocol نامیده میشود. برای مراجعه به هر کدام از این وبسایتها لازم است که آدرس IP آن را در اختیار داشته باشیم. اما واضح است که بهخاطر سپردن این آدرس ها کار بسیار دشوار و دور از ذهنی است.
به همین دلیل از Domain Name برای دستیابی به آنها استفاده میکنیم به این صورت که دامنه (نامی که به یک وبسایت اختصاص میابد و برای هر سایت منحصربهفرد است و باعث میشود بهراحتی نام آنها را به ذهن بسپاریم.) بجای آن آدرس IP استفاده میشود و پروتکل DNS وظیفه تبدیل این نام دامنه، به آن IP را بر عهده دارد.
پروتکل FTP (File Transfer Protocol)
پروتکل FTP، اولین تلاش انجام شده برای ایجاد یک استاندارد بهمنظور مبادله فایل بر روی شبکههای مبتنی بر پروتکل TCP/IP بوده است که از سال 1970 مطرح و مشخصات استاندارد آن طی RFC 959 در اکتبر سال 1985 ارائه گردید. پروتکل انتقال فایل، قراردادی است که در شبکه های رایانه ای برای جا به جایی فایل از مبدأ به مقصد (بین سرور و کاربر) مورد استفاده قرار میگیرد. پروتکل FTP از دو پورت مختلف برای برقراری اتصال و انتقال داده استفاده می کند.
اولین پورت، پورت 21 است که برای ارسال دستورات لازم برای کلاینت و سرور استفاده می شود. پورت دوم، پورت 20 است که انتقال داده ها از طریق آن انجام میشوند. زمانی که کاربر درخواست خود را ارسال میکند، برقراری ارتباط با سرور از طریق پورت 21 انجام شده و فایل های درخواستی نیز از پورت 20 برای او ارسال میشوند.
وقتی پروتکل FTP ساخته شد، امنیت اطلاعات مانند الان نگرانکننده نبود. از آن زمان بسیاری از چیزها تغییر کرده و ارسال دادهها از طریق هر شبکه عمومی بدون رمزگذاری بسیار خطرناک و در برخی موارد ممنوع تلقی میشود. بهمنظور افزایش امنیت سطح اینترنت، پروتکل Secure Sockets Layer یا همان گواهی SSL به وجود آمد.
FTP SSL و یا همان FTPS مخفف عبارت File Transfer Protocol Secure است. این روش درواقع همان روش FTP است با این تفاوت که در FTPS اطلاعات با استفاده از SSL رمزنگاری میشود. میتوانیم بگوییم که پروتکل TLS در واقع نسخهی بهروز شدهی پروتکل SSL است که هم بعضی از باگهای امنیتی را برطرف کرده و هم اصلاحاتی روی آن انجام شده که باعث رشد سرعت آن شده است. پس هروقت میگوییم FTPS در اصل همان FTP SSL/TLS است.
پروتکل HTTP(Hypertext Transfer Protocol)
پروتکل HTTP مخفف عبارت Hyper Text Transfer Protocol است که به معنی پروتکلی برای انتقال ابرمتنها میباشد. پروتکل HTTP در اوایل دهه 1990 میلادی تعریف شده و یک پروتکل قابل بسط است که در طی زمان تکاملیافته است. این پروتکل در لایه اپلیکیشن شبکه قرار دارد و روی اتصال TCP یا روی یک اتصال TCP رمزنگاری شده با TLS ارسال میشود.
هنگامی که کاربر، صفحه مرورگر وب خود را باز میکند، به طور غیرمستقیم از HTTP استفاده میکند. پروتکل HTTP یک پروتکل کلاینت – سرور است، یعنی درخواستها از سوی یک نهاد ارسال میشوند که در اغلب موارد این عامل کاربر یک مرورگر وب است. کلاینتها و سرورها از طریق مبادله پیام با هم ارتباط میگیرند. همانطور که گفته شد این پیامها از سوی کلاینت ارسال میشوند و عموماً یک مرورگر وب هستند و درخواست (Request) نام دارند. از سوی دیگر پیامهایی که از سوی سرور ارسال میشوند، پاسخ (Response) نامیده میشوند. شروع این پروتکل از طرف کلاینت است که با ارسال یک درخواست HTTP به سمت سرور گفتگو را آغاز میکند. سرور بر اساس درخواست ارسالی یا منبعی مانند یک فایل را در اختیار کلاینت میگذارد یا عملیات خاصی را انجام میدهد.
نتیجه این عملِ سرور در بسته پاسخ HTTP برای کلاینت ارسال میشود. بسته پاسخ شامل اطلاعات وضعیت و احتمالاً محتویات منبع درخواست شده میباشد. مرورگر وب یک نمونه از عامل کاربر (User Agent) است. نرمافزارهای تلفنهای همراه و نرمافزارهای دیگری که به وب متصل شده و از اطلاعات آن استفاده یا صفحهای را نمایش میدهند، از جمله عامل کاربر هستند. منابع HTTP همگی با یک نشانی وب (URL) آدرسدهی و مشخص میشوند. تمامی این آدرسها با نشانه HTTP یا HTTPS آغاز میگردند. از این آدرسها در زبان نشانهگذاری ابرمتن بهصورت گسترده برای انتقال بین صفحات مختلف استفاده میگردد و از آن تحت عنوان پیوند یا لینک یاد میشود.
پروتکل HTTPS (Hypertext Transfer Protocol Secure)
پروتکل HTTPS که یک پسوند اضافی به معنای Secure برای پروتکل HTTP دارد، برای ارتباط ایمن از طریق شبکه رایانهای استفاده میشود و در اینترنت بهصورت بسیار گسترده مورداستفاده قرار میگیرد. در HTTPS جهت برقراری ارتباط رمزنگاری شده از لایه انتقال ایمن (TLS) یا، از نسخه قدیمیتر لایه سوکت ایمن (SSL) استفاده میشود. اهداف اصلی استفاده از HTTPS جهت احراز هویت وبسایت دسترسی یافته و محافظت از حریم خصوصی و یکپارچگی دادههای ردوبدل شده در هنگام انتقال است. پروتکل HTTPS از حملات خرابکارانه توسط هکرها و اقدامات مجرمانه مشابه محافظت میکند، و با رمزگذاری دوطرفه در ارتباطات بین مشتری و سرور، در برابر استراق سمع از دادهها و دسترسی غیرمجاز به آنها، یک فضای امن ایجاد به وجود میآورد. در عمل، این اطمینان معقول را فراهم میکند که شخص بدون دخالت مهاجمان با وبسایت موردنظر ارتباط برقرار کند.
پروتکل (کمکی) به نام WebSocket
وب سوکت (WebSocket) یک پروتکل ارتباطی مبتنی بر TCP است که برای ارتباط بین مرورگر کاربر (مثل HTTP) و سرور به کار میرود. همچنین یکی از مطرح ترین پروتکل هایی است که قابلیت ارتباط دوطرفه و در لحظه، بین کلاینت و سرور را ایجاد میکند. داخل یک اتصال WebSocket کلاینت و سرور میتوانند دادهها را بدون نیاز به برقراری مجدد Sessions ارسال کنند. این پروتکل به برنامه نویسان اجازه میدهد تا به صورت دوطرفه (Full Duplex) و بدون نیاز به انجام درخواستهای مجدد، داده هایی را بین مرورگر و سرور انتقال دهند. به همین خاطر سرعت تبادل داده ها با استفاده از این پروتکل بسیار سریع است.
این اتصال اغلب برای اپلیکیشن های بلادرنگ مانند پیامرسان ها و بازی های آنلاین کاربردی هستند. پروتکل WebSocket در تمام مرورگرهای مدرن پشتیبانی میشود و از اساسی ترین و پایه ای ترین فناوری های ارتباطات در زمینه توسعه برنامه های وب به شمار میرود. در حال حاضر وب سوکت در بیشتر مرورگرهای اصلی ازجمله گوگل کروم، فایرفاکس، سافاری و اوپرا پشتیبانی میشود.
پروتکل IMAP (Internet Message Access Protocol)
پروتکل IMAP مخفف Internet Message Access Protocol میباشد که به معنی پروتکل دستیابی به پیغام در اینترنت است. از این پروتکل برای انتقال و ارتباطات ایمیل از طریق اتصال TCP/IP در وب بهره میگیرد. به طور مثال سرویس های صندوق پست الکترونیکی و یا وبسایتهای جدید که امروزه فایلهای صوتی و تصویری در آنها بهصورت آنلاین Online مورداستفاده قرار میگیرند از این پروتکل بهره گرفته اند.
پروتکل IMAP در لایه کاربردی و بر روی پورت ۱۴۳ قرار دارد و به سرویسگیرندهها اجازه دسترسی به ایمیل را فراهم میکند. پورت 143، پورت رمزگذاری نشده پروتکل IMAP است و 933 نیز پورت ایمن و رمزگذاری (TLS) شده پروتکل IMAP است که در این حالت به IMAPS تبدیل میشود و کاربران برای تنظیمات پروتکل های ایمیل خود میتوانند یکی از این دو پورت را استفاده کنند.
پروتکل LDAP (Lightweight Directory Access Protocol)
پروتکل دسترسی دایرکتوری سبکوزن با نام انگلیسی Lightweight Directory Access Protocol یا (LDAP) یک پروتکل نرمافزاری است که برای احراز هویت سرویس دایرکتوری استفاده میشود و به کاربران و برنامهها اجازه میدهد اطلاعات را در یک دایرکتوری، چه در اینترنت عمومی و چه در یک شبکه خصوصی جستجو، پیدا و مدیریت کنند.
پروتکل MGCP (Media Gateway Control Protocol)
این پروتکل، ابزاری برای سیگنال دهی و مدیریت کنفرانس های چندرسانهای میباشد. در واقع این پروتکل، ارتباطات از طریق درگاههای چندرسانهای را معنا میبخشد. از پروتکل MGCP جهت راهاندازی، نگهداری و خاتمه تماس میان نقطه ابتدایی و انتهایی تماس به کار برده میشود. مجموعه توسعهیافته دو پروتکل Megaco و H.248، پروتکل MGCP را تشکیل میدهد.
پروتکل MQTT (MQ Telemetry Transport یا Message Queuing Telemetry Transport)
پروتکل MQTT یکی از مهمترین و پرکاربردترین پروتکل ها در حوزه اینترنت اشیا بشمار میرود. باید گفت که MQTT یک پروتکل M2M یا machine to machine است. ارتباط این پروتکل بر اساس ارتباطات کلاینت سروری میباشد و همچنین در لایه شبکه یا Network قرار دارد. پروتکل MQTT پروتکلی است که بر روی پروتکل TCP کار میکند؛ بنابراین برای شبکه هایی که بر روی TCP کار میکند مناسب میباشد. این پروتکل از مدل Publish/Subscribe برای ارتباط خود استفاده میکند. به این صورت که هر دیوایس یا سنسور در این پروتکل اطلاعات خود را به سرور MQTT که در اینجا یک Broker است، Publish میکند. بهعنوانمثال یک سنسور دما اطلاعات خود را با استفاده از یک topic خاص تحت عنوان Temperature بر روی سرور Publish میکند، در اینجا هر کسی که بخواهد به این اطلاعات دسترسی داشته باشد یا بهاصطلاح subscribe کند، باید آن Topic خاص را که در اینجا Temperature است، داشته باشد تا بتواند اطلاعات را از سرور دریافت کند. در واقع دستگاه ها یا Clientها در MQTT هم میتوانند Publisher و هم Subscriber باشند.
در MQTT محدودیتی برای تعدادTopic ها وجود ندارد. همچنین هر دستگاه می تواند داده های خود را در چند Topic مختلف قرار دهد.
پروتکل NNTP (Network News Transfer Protocol)
پروتکل انتقال اخبار شبکه (NNTP) یک برنامه کاربردی است که برای انتقال مقالات خبری Usenet(Netnews) بین سرورهای خبری و خواندن و ارسال مقاله توسط برنامههای کاربر نهایی استفاده میشود.
پروتکل NTP (Network Time Protocol)
بعضی از برنامه هایی که در سرور نصب میشوند ممکن است حساس به مؤلفه زمان باشند به عبارتی در یک شبکه ما به دنبال آن هستیم که کلاینت برنامه با سرور اختلاف زمانی بسیار کم در حد یک ثانیه و حتی کمتر از آن داشته باشد. برایآنکه این اختلاف زمانی را کم کنیم از ابزار Time_server بهره میگیریم، پس از راهاندازی Time Server به سراغ تنظیم کلاینت ها میرویم و طوری آن را کانفیگ میکنیم که زمانشان را از Time Server بگیرند. در واقع کلاینت ها درخواستی که مبنی بر دریافت زمان است را در قالب فرمت پروتکل زمان شبکه (Network Time Protocol) {بهاختصار NTP} ارسال میکند و پاسخ را نیز از Time Server با همین فرمت دریافت خواهد کرد.
پروتکل POP (Post Office Protocol)
POP در واقع یک موافقتنامه بینالمللی دریافت و ارسال نامههای الکترونیکی است. این توافقنامه توسط شرکت های خدمات اینترنتی، پشتیبانی و مورداستفاده قرار میگیرد. سیستم های پست الکترونیکی که بر مبنای این پروتکل طرحریزی و طراحی میشوند بهصورت مستقیم میتوانند پذیرای نرمافزارهایی مانند Outlook باشند و کاربران نیز میتوانند از طریق این نرمافزارها وارد صندوق پستی خود شوند نامه ها را بخوانند و به آنها جواب دهند.
مزیت داشتن ایمیل POP3 این است که شما میتوانید ایمیل های خود را از طریق نرمافزارهای مدیریت، نامه دریافت نمایید. میلهای (نامه های) خود را در سیستم خود آرشیو نمایید و ایمیل هایتان را بهصورت آفلاین مطالعه نمایید. سرعت دریافت و ارسال ایمیل با این روش بسیار بیشتر از حالتی است که بهصورت وب میل و مرورگر صورت میگیرد. همچنین شما میتوانید نامه های خود را با کمک ویرایشگر قوی که در نرمافزارهای مدیریت میل وجود دارد تایپ نموده، تصویر یا هرگونه فایل بر روی سیستم خود را ضمیمه نامه کرده و تنها برای ارسال نامه به اینترنت متصل شوید که مسلماً در وقت و هزینه شما در اینترنت صرفهجویی خواهد شد.
پروتکل SMTP (Simple Mail Transfer Protocol)
قرارداد ساده نامهرسانی SMTP پروتکلی ساده و درعینحال مهم و اساسی برای انتقال ایمیل است. این اصطلاح ازآنرو به کار میرود که نسبت به سایر پروتکلهای ایمیل قبلی بسیار ساده عمل میکند. پروتکل SMTP فقط به نام کاربری و دامنه نیاز دارد تا مستقیم پیغام را به سمت گیرنده مسیریابی کند. پروتکل SMTP یک پروتکل ارسال و دریافت ایمیل است؛ ولی برای دریافت ایمیل مناسب نیست و پیشنهاد نمیشود، به همین دلیل برای دریافت ایمیل بهجای SMTP از پروتکل های دریافت ایمیل مثل پروتکل دستیابی به پیغام در اینترنت (IMAP) و POP3 استفاده میشود. سرورهای SMTP عموماً از پروتکل TCP بروی پورت شماره 25 استفاده میکنند.
پروتکل PTP (Precision Time Protocol)
پروتکل Precision Time پروتکلی است که برای همگامسازی ساعتها در یک شبکه رایانهای استفاده میشود. در یک شبکه محلی، به دقت ساعت در محدوده زیر میکروثانیهای رسیده و آن را برای سیستمهای مختلف اندازهگیری و کنترل مناسب را فراهم میکند. پروتکل PTP در حال حاضر برای همگامسازی تراکنشهای مالی، دکلهای آنتن تلفن همراه، آرایههای صوتی زیر دریا و شبکههایی که به زمان دقیق نیاز دارند؛ اما فاقد دسترسی به سیگنالهای ناوبری ماهوارهای هستند، استفاده میشود.
پروتکل RTP (Real-time Transport Protocol)
پروتکل RTP یک پروتکل ارتباطی مربوط به انتقال صدا و تصویر بر روی شبکه هایی با بستر IP میباشد. این پروتکل به طور گستردهای در سیستمهای مخابراتی و سرگرمی (Entertainment) که شامل جریان داده هستند از جمله ویدئوکنفرانس و … استفاده میشود.
پروتکل RTSP (Real-Time Streaming Protocol)
پروتکل RSTP پروتکلی که در لایه کاربرد قرار دارد و وظیفه آن، کنترل انتقال داده بهصورت زنده است. پروتکل RTSP چهارچوبی برای انتقال مستقیم داده زنده مانند صدا و تصویر فراهم میکند. داده مبدأ میتواند، داده زنده یا ضبط شده باشد. این پروتکل در سیستم دوربین های مداربسته تحت شبکه بسیار کاربردی است و میتواند در دوربینهای مداربسته تحت شبکه یا IP، دستگاه NVR و DVR، همینطور در سایر دستگاهها و تجهیزات وجود داشته باشد.
برای این قسمت هم کافیه… همگی خسته شدیم. شاید خیلی از مطالب، به نظر، مطالب بیربطی میان ولی مطمئن باشید که موقع استفاده از هر نوع ماژول اینترنتی، در هر نوع پروژهای که پای انتقال داده از طریق اینترنت مطرح باشه، حتماً با چند تا از موارد گفته شده در این هشت قسمت (و قسمت های بعدی) برخورد خواهید کرد.
اگر مطالب براتون جذاب بوده، با قسمت بعدی (قسمت نهم) که ادامه همین فصل هستش، بنده را همراهی کنید.