سلام به همه دوستان. امیدوارم قسمت قبل توجه شما را برای خواندن ادامه مطالب جلب کرده باشه. در قسمت قبل (مقدمه) با موضوع این مطلب آموزشی آشنا شدید و متوجه شدید که برای استفاده از ماژول ESP8266 علاوه بر علم الکترونیک، نیاز به دانش شبکه و اینترنت دارید. در این قسمت سعی میکنم مفاهیم مهم و کلیدی درباره شبکه و اینترنت را توضیح دهم. اینکه اصلاً شبکه چی هست و از کجا شکل گرفت؟! و اینترنت کجای این مفهوم قرار میگیره.
دستگاه ها چگونه میفهمند که چطور باید دادههای خود را برای دستگاه های دیگری که با آنها فاصله دارند و از طریق شبکه (مثلاً اینترنت) ارسال کنند؟ چگونه در مورد قالب، سرعت، ترتیب و بستر ارسال و دریافت دادهها به هماهنگی میرسند؟ یا با خطاها، ازدحام یا تداخل دادهها برخورد میکنند؟ محافظت از دادهها در برابر دسترسی یا تغییر غیرمجاز چطور انجام میشود؟
برای پاسخدادن به این سؤالات باید ابتدا کمی با تاریخچه بهوجودآمدن شبکه و به دنبال آن، با مفهومی (یا بهتره بگیم با نیازی) به نام پروتکل آشنا شویم.
شبکه های کامپیوتری چگونه و چرا به وجود آمدند؟
در سال ۱۹۵۷ نخستین ماهواره، یعنی اسپوتنیک توسط اتحاد جماهیر شوروی سابق به فضا پرتاب شد. در همین دوران رقابت سختی از نظر تسلیحاتی بین دو ابرقدرت آن زمان جریان داشت و دنیا در دوران جنگ سرد به سر میبرد.
وزارت دفاع آمریکا در واکنش به این اقدام رقیب نظامی خود، آژانس پروژههای تحقیقاتی پیشرفته یا آرپا (ARPA) را تأسیس کرد. یکی از پروژههای مهم این آژانس تأمین ارتباطات در زمان جنگ جهانی احتمالی تعریف شده بود. در همین سالها در مراکز تحقیقاتی غیرنظامی که بر پایه دانشگاهها بودند، تلاش برای اتصال کامپیوترها به یکدیگر در جریان بود.
در آن زمان کامپیوترهای Mainframe از طریق ترمینالها به کاربران سرویس میدادند. در اثر اهمیت یافتن این موضوع آژانس آرپا منابع مالی پروژه اتصال دو کامپیوتر از راه دور به یکدیگر را در دانشگاه MIT بر عهده گرفت.
در اواخر سال ۱۹۶۰ اولین شبکه کامپیوتری بین چهار کامپیوتر که دوتای آنها در MIT، یکی در دانشگاه کالیفرنیا و دیگری در مرکز تحقیقاتی استنفورد قرار داشتند، راهاندازی شد. این شبکه آرپانت نامگذاری شد در سال ۱۹۶۵ نخستین ارتباط راه دور بین دانشگاه MIT و یک مرکز دیگر نیز برقرار گردید.
در سال ۱۹72 شبکه آرپانت به عموم معرفی شد. در این سال شبکه آرپانت مراکز کامپیوتری بسیاری از دانشگاهها و مراکز تحقیقاتی را به هم متصل کرده بود. در این سالها حرکتی غیر انتفاعی به نام MERIT که چندین دانشگاه بنیانگذار آن بودهاند، مشغول توسعه روشهای اتصال کاربران ترمینالها به کامپیوتر مرکزی یا میزبان بود. مهندسان پروژه MERIT در تلاش برای ایجاد ارتباط بین کامپیوترها، مجبور شدند تجهیزات لازم را خود طراحی کنند.
آنان با طراحی تجهیزات واسطه برای مینی کامپیوتر 11-DECPDP توانستند نخستین بستر اصلی شبکه کامپیوتری را بسازند. تا سالها نمونههای اصلاح شده این کامپیوتر با نام PCP یا Processor Communications Primary نقش میزبان را در شبکهها ایفا میکرد.
نخستین شبکه از این نوع که چندین ایالت را به هم متصل میکرد Michnet نام داشت. روش اتصال کاربران به کامپیوتر میزبان در آن زمان به این صورت بود که یک نرمافزار خاص بر روی کامپیوتر مرکزی اجرا میشد؛ و ارتباط کاربران را برقرار میکرد. اما در سال ۱۹۷۶ نرمافزار جدیدی به نام Hermes عرضه شد که برای نخستینبار به کاربران اجازه میداد تا از طریق یک ترمینال بهصورت تعاملی مستقیماً به سیستم MERIT متصل شوند. این، نخستین باری بود که کاربران میتوانستند در هنگام برقراری ارتباط از خود بپرسند: کدام میزبان؟
با گسترش این شبکه ها نیاز به قوانینی برای ایجاد یک شبکه ایدهآل (هم از لحاظ سیمکشی و هم از لحاظ حجم، سرعت و خطای ارتباطی) و ارتباط صحیح و بدون خطا بیشتر دیده میشد. این امر باعث بهوجودآمدن انواع شبکه ها و پروتکلهای ارتباطی شد. درنتیجه در سال ۱۹۷۴ پروتکل ارتباطی IP/TCP به وجود آمد. این پروتکل در سال ۱۹۸۲ جایگزین پروتکل NCP شد و به پروتکل استاندارد برای آرپانت تبدیل گشت.
یه ایده کلی از مسیر بهوجودآمدن شبکه توی ذهنتون ساخته شد! حالا بریم ببینیم شبکه و پروتکل در مفهوم کلی چی هستند؟!
شبکه چیست؟
به اتصال دو یا چند سیستم (مانند کامپیوتر، لپتاپ، و…) با توانایی ارسال و دریافت داده گفته میشود. این انتقال دادهها میتواند با کابل چندرسانهای، کابل نوری یا بیسیم انجام شود. همچنین میتوانیم منابع داخل شبکه را در دسترس تمامی کاربران درون شبکه قرار دهیم. شبکه رایانهای باعث تسهیل ارتباط میان کاربران شده و اجازه میدهد تا کاربران منابع خود را به اشتراک بگذارند. منابعی مانند فایلهای داخل شبکه (شامل: اسناد متنی، عکس، فایل صوتی و تصویری و…) و همچنین پرینتر، اسکنر و دستگاههای مشابه که داخل شبکه استفاده میشوند.
پروتکل چیست؟
به مجموعهای از قوانین و فرایندهایی که (بهصورت نرمافزاری و سختافزاری) بر ارتباط دو یا چند دستگاه حاکم است، پروتکل گفته میشود. پروتکل مشخص میکند که دستگاهها چگونه شناسایی میشوند، چگونه باید دادهها را قالببندی و رمزگذاری کنند، ارتباطات را شروع کنند یا خاتمه دهند، خطاها و تصدیقها را مدیریت کنند، اقدامات خود را همگامسازی و هماهنگ کنند و چگونه باید امنیت دادهها را فراهم کنند.
پروتکلها برای حصول اطمینان از هماهنگی، سازگاری و تعامل بین دستگاههای مختلف ضروری هستند. آنها همچنین به بهینهسازی عملکرد، کارایی و قابلاطمینان بودن ارتباطات کمک میکنند.
در الکترونیک گاهی برای ارسال یا دریافت دادهها از پروتکل هایی مانند UART، SPI، I2C و… که در لایههای پایین (لایههای فیزیکی) ارتباط قرار دارند یا در فاصله کمی از هم هستند، استفاده میشود. بعضی از مواقع فاصله بین دو دستگاه بسیار زیاد است. مثلاً بین دو قاره! در این مواقع پروتکل های نامبرده دیگر جوابگوی آن فاصله زیاد، حجم اطلاعات، تداخل اطلاعات و… نیستند و باید به دنبال شبکه های قوی تری برویم!
این نوع پروتکل ها (پروتکل اینترنت یکی از انواع پروتکلها است که میتوانیم دراینرابطه مثال بزنیم.) هم از لحاظ سختافزاری و هم از لحاظ نرمافزاری باید قوی تر و پیچیده تر باشند. برای اینگونه ارتباطات دورتر، با حجم اطلاعات بیشتر، نیاز به سرعت بالاتر، امنیت بهتر و نیاز به پروتکل های پیچیدهتری داریم.
برای این منظور، قبل از هر چیز با بعضی تعاریف آشنا میشویم. این تعاریف مربوط به انواع پروتکلهای ارتباطی پیچیدهتری مثل اینترنت هستند و هیچ ربطی به پروتکلهای ساده قبل مثل UART، SPI و… ندارند. بعدازاین تعاریف، هر کدام را در مکان خود و به طور کاملتری توضیح خواهم داد.
اینترنت چیست؟
مجموعهای از شبکههای جهانی (سختافزاری و نرمافزاری) است که میلیاردها دستگاه را در سراسر دنیا به هم متصل میکند و بر مجموعهای از پروتکلها متکی است. پروتکل اینترنت نحوه ارتباط دستگاهها را در شبکهها و فناوریهای مختلف با یکدیگر تعریف میکند که برخی از مهمترینهای آنها عبارت هستند از TCP/IP، HTTP، DNS، SMTP، FTP و… .
وب چیست؟
وب (WEB) یک سیستم مبتنی بر سرویسدهنده سرویسگیرنده (Server/Client) بر روی اینترنت است که با استفاده از ابزار فرامتن (Hypertext) و پیوند (Link) دادن اجزای اطلاعات به یکدیگر دسترسی به منابع اطلاعاتی را تسهیل میکند.
وب متکی به پروتکلهایی است که نحوه درخواست و دریافت صفحات وب (از سرورهای وب)، نحوه قالببندی و نمایش صفحات وب با استفاده از HTML، CSS و JavaScript را تعریف میکند. صفحات وب میتوانند با استفاده از APIها (رابط برنامهنویسی اپلیکیشن) و غیره با یکدیگر تعامل داشته باشند. یک مقدار پیچیده شد! نگران نباشید! فعلاً اجازه بدید ذهنتان با بعضی مفاهیم آشنا بشه!
در شبکههای کامپیوتری که از طریق اینترنت به هم متصل بودند دو ضعف وجود داشت که منجر شد وب به وجود بیاید. یکی اینکه ارسال و دریافت اطلاعات باید دوطرفه صورت میگرفت. یعنی یک نفر با استفاده از یک کامپیوتر و با استفاده (IP) Internet Protocol کامپیوتر مقصد اطلاعات خاصی رو با تأیید نفر دوم برای آن شخص ارسال میکرد.
دوم اینکه این اطلاعات در دسترس همه نبود و وجود یک دریافتکننده و یک ارسالکننده اطلاعات الزامی بود. پس نیاز به فضایی بود که اطلاعات در دسترس همه باشد و اطلاعات موجود در سراسر دنیا با هم ارتباط داشته باشند تا یک شبکه عظیم اطلاعاتی که امروزه وب نام دارد به وجود آید. نکته دیگر اینکه اینترنت برای تسهیل ارتباطات شکل گرفت؛ ولی وب برای دردسترسبودن اطلاعات اختراع شد. همچنین در بستر اینترنت خدمات دیگری مثل ایمیل (پست الکترونیک)، انتقال فایل (پروتکل FTP)، کنترل از راه دور کامپیوترها و … نیز ارائه میشود.
اینترنت اشیا چیست؟
شبکهای از اشیا فیزیکی است که در آنها حسگرها، محرکها و نرمافزارهایی تعبیه شده است که آنها را قادر میسازد تا دادهها را با دستگاهها یا سیستمهای دیگر از طریق اینترنت جمعآوری و یا مبادله کنند. اینترنت اشیا بر پروتکلهایی متکی است که نحوه شناسایی دستگاهها با استفاده از شناسهها یا آدرسهای منحصربهفرد بوده و نحوه برقراری ارتباط آنها با یکدیگر با استفاده از پروتکلهای کممصرف و پهنای باند کم انجام میگیرد. برای مثال MQTT ،CoAP و LoRaWAN برخی از این پروتکلها هستند.
تا اینجا با مفاهیم اولیه شبکه، پروتکل، اینترنت و اینترنت اشیاء آشنا شدیم. البته خیلی از دوستان که این مطلب را میخونند با این مفاهیم آشنا بودند! و تا این قسمت مطلب جدیدی ندیدند! ولی شاید برای بعضی افراد مثل من، جالب بوده باشه.
شاید برای شما مفید باشد: اینترنت اشیاء چیست؟
مفاهیم شبکه ها
خب… بریم به ادامه مطالب بپردازیم.
انواع شبکههای رایانهای از نظر وسعت
PAN: شبکه محیط شخصی (Personal Area Network)
LAN: شبکه محیط محلی (Local Area Network)
HAN: شبکه محیط خانه (Home Area Network) یک زیرمجموعه از شبکه LAN
WLAN: شبکه محیط محلی بیسیم (Wireless Local Area Network)
CAN: شبکه محیط پردیس دانشگاه (Campus Area Network)
MAN: شبکه محیط کلانشهری (Metropolitan Area Network)
WAN : شبکه محیط گسترده (Wide Area Network)
انواع شبکههای رایانهای از نظر توپولوژی
Star – Bus – Ring – Mesh – Extended Star
لایههای شبکه
به چارچوب یا پلتفرمی گفته میشود که به درک بهتر تعاملات پیچیده شبکه کمک میکند و شبکه قوانین آن را اجرا میکند. دو مدل لایه شبکه که امروزه به طور گسترده کاربرد دارند مدل OSI(Open Systems Interconnection) و مدل TCP/IP(Transmission Control Protocol/Internet Protocol). البته خود لایههای این دو مدل با هم متفاوت هستند.
پروتکلها را میتوان بر اساس عملکرد، ویژگیها یا لایههایشان به انواع مختلفی طبقهبندی کرد مثل پرتکل شبکه (محلی)، پروتکل اینترنت و پروتکل ارتباط بیسیم و… . در ادامه برخی از رایجترین پروتکلها را معرفی خواهیم کرد. قبل از آن با چند تعریف آشنا میشویم.
پروتکل ها
پروتکل شبکه
پروتکل شبکه به مجموعه پروتکلهایی (قوانین و روشهایی) گفته میشود که در لایههای شبکه ازجمله مدل OSI (Open Systems Interconnection) یا لایه اینترنت مدل TCP/IP عمل میکنند. پروتکل شبکه مسئول مسیریابی و ارسال بستههای داده در شبکهها یا زیرشبکههای مختلف است. همچنین، با ارائه آدرسهای منحصربهفرد به دستگاهها، آنها را از یکدیگر متمایز میکند. برخی از نمونههای پروتکل شبکه عبارت هستند از IP ،ICMP ،ARP و غیره. پس میتوان گفت یک شبکه میتواند چندین پروتکل شبکه را در لایههای مختلف شبکه خود، داشته باشد.
پروتکل اینترنت
پروتکل اینترنت به پروتکلهایی گفته میشود که در لایه انتقال یا لایههای بالاتر مدل TCP/IP کار میکنند. پروتکل اینترنت وظیفه برقراری ارتباط سراسری بین برنامههای در حال اجرا در دستگاههای مختلف از طریق اینترنت را برعهده دارد. همچنین، خدماتی مانند قابلیت اطمینان و کنترل خطا، جریان، ترافیک، امنیت و غیره را ارائه میدهند. برخی از نمونههای پروتکل اینترنت عبارت هستند از TCP ،UDP ،HTTP ،HTTPS و غیره.
پروتکل ارتباط بیسیم
پروتکل ارتباط بیسیم به پروتکلهایی گفته میشود که در لایه فیزیکی یا لایه پیوند داده مدل OSI یا مدل TCP/IP کار میکنند. این پروتکلها وظیفه انتقال و دریافت دادهها را با استفاده از امواج الکترومغناطیسی روی یک رسانه بیسیم برعهده دارند و ویژگیهایی مانند مدولاسیون، دمدولاسیون، رمزگذاری، رمزگشایی، چندگانهسازی و غیره را ارائه میدهند.
انواع پروتکل شبکه
بهطورکلی، استانداردهای پروتکلهای شبکه به سه دسته تقسیم میشوند:
- پروتکلهای ارتباطی مانند Ethernet
- پروتکلهای مدیریتی مانند SMTP
- پروتکلهای امنیتی مانند Secure Shell یا SSH
در هر یک از این سه دسته بزرگ، هزاران نوع پروتکل شبکه وجود دارد که به طور یکنواخت طیف گستردهای از وظایف تعریف شده، از جمله احراز هویت، اتوماسیون، تصحیح، فشردهسازی، مدیریت خطا، بازیابی فایل، انتقال فایل، تجمع پیوند، مسیریابی، معناشناسی، همگامسازی و ترکیب را انجام میدهند. در ادامه، سه نوع از استانداردهای پروتکلهای شبکه که برای ارتباطات به کار میروند را معرفی خواهیم کرد.
اگر تا اینجا هنوز کامل متوجه معنی و مفاهیم نشدید، نگران نباشید. فقط سعی کنید با عبارتها آشنا بشید و لازم نیست دقیقاً بدانید آنها چه هستند.
1. استاندارد مربوط به پروتکلهای ارتباطی شبکه
کارایی یک شبکه، توسط پروتکلهای ارتباطی آن تعیین میشود. فرمتها و مقرراتی که بر نحوه مبادله دادهها بین شبکهها نظارت میکنند، توسط این دسته از استانداردهای پروتکلهای شبکه توصیف میشوند.
این امر، هم برای سختافزارها و هم نرمافزارها اعمال میشود و برای برقراری ارتباط بین سیستمهای محاسباتی و سیستمهای مخابراتی ضروری است.
پروتکلهای ارتباطی علاوه بر رسیدگی به نحوه هماهنگسازی و الزامات معنایی که برای کارکردن ارتباطات آنالوگ و دیجیتال باید وجود داشته باشد، احراز هویت و تشخیص خطا را نیز انجام میدهند HTT ،UDP ،TCP و Internet Relay Chat برخی از استانداردهای پروتکلهای شبکه هستند که در دسته پروتکلهای ارتباطی طبقهبندی میشوند.
۲. استاندارد مربوط به پروتکلهای مدیریت شبکه
پروتکلهای مدیریت شبکه برای اطمینان از ارتباط پایدار و عملکرد بهینه در سراسر شبکه، به تعیین خطمشیها و فرایندهای موردنیاز برای نظارت، مدیریت و نگهداری از یک شبکه کامپیوتری کمک میکنند. آنها همچنین در برقراری ارتباط در شبکه کمک میکنند. پروتکل مدیریت شبکه ساده (SNMP) و ICMP نمونههایی از پروتکلهای مدیریت شبکه هستند.
۳. استاندارد مربوط به پروتکلهای امنیتی شبکه
مسئولیت اصلی پروتکلهای امنیتی شبکه، حصول اطمینان از امن و مطمئن بودن دادههای در حال انتقال از طریق اتصالات شبکه است. این پروتکلها همچنین مشخص میکنند که شبکه چگونه باید از دادهها در برابر هرگونه تلاش غیرمجاز برای بازرسی یا استخراج آنها محافظت کند.
این فرایند تضمین میکند که کاربران، سرویسها یا دستگاههای غیرمجاز به شبکه دسترسی پیدا نمیکنند. پروتکلهایی مانند SSL (Secure Sockets Layer) یا Secure FTP و HTTP Secure (HTTPS) در این سطح کار میکنند.
خب برای این قسمت دیگه کافیه… ادامهاش باشه برای قسمت بعدی. در قسمت دوم با شبکه های مهم و کاربردی مثل TCP/IP و… آشنا خواهیم شد.
سلام مطلب اتون خیلی خوب بود، من خیلی دوست دارم با esp شروع کنم ولی بین esp32 و esp8266 موندم، یک نسخه از آردینو دیدم که پردازنده esp داره و اتصال بهش خیلی راحت تره نظرتون راجب اون چیه میشه راهنمای کنید؟