انواع پروتکلهای ارتباطی – نحوه عملکرد و وظایف هر کدام
چرا ما نیاز داریم درباره پروتکلها بیشتر بدانیم و با نحوه کارشان آشنا شویم؟
ما در دنیایی زندگی میکنیم که میلیاردها دستگاه و انسان با یکدیگر در ارتباط هستند؛ به شکلهای مختلف و با ابزارهای مختلف و در بسترهای نرمافزاری مختلف!
دو نفر دارند با یکدیگر در واتساپ و تلگرام چت میکنند؛ چند نفر در آن سوی دنیا با نرمافزار زوم یک ویدئوکنفرانس برگزار کردند؛ یکی دارد وبگردی میکند و دیگری مشغول بازی آنلاین با کاربر دیگری در هزاران کیلومتر دورتر از خود است. دستگاهها هم مانند انسانها با زبانهای مختلف و در قالبهای گوناگونی با یکدیگر در ارتباط هستند.
همه این ارتباطات را یک سری استانداردهای ثابت و مشخص مدیریت و کنترل میکنند که ما در دنیای شبکه به آنها «پروتکل» میگوییم. پروتکلها مجموعهای از قوانین استاندارد هستند که نحوه ارتباط یک کاربر یا دستگاه را با کاربر و دستگاه دیگری در شبکه و اینترنت مدیریت میکنند.
اگر امروز داریم از اینترنت استفاده میکنیم؛ مدیون همین پروتکلها هستیم و اگر در یک شبکه میتوانیم با دهها کامپیوتر و دستگاه دیگر تبادل فایل کنیم؛ پروتکلها باعث انجام آن شدند. بنابراین، ما هر روز، هر ساعت، هر دقیقه و هر لحظه در حال استفاده از چندین پروتکل شبکه هستیم.
پروتکلهای ارتباطی جزو مفاهیم اصلی و بنیادین شبکههای کامپیوتری و ارتباطات هستند و شناخت آنها میتواند به درک بهتر ما پیرامون مهندسی اینترنت منجر شود. ضمن اینکه هر فردی که بخواهد سراغ آموزش شبکههای کامپیوتری یا سایر آموزشهای پیشرفته شبکه و امنیت در منبعهای معتبر آموزشی روی اینترنت مانند سایت «فرادرس» برود؛ نخست باید آشنایی کاملی با انواع پروتکلهای ارتباطی داشته باشد.
پروتکل چیست؟
شاید بخواهید دقیقتر بدانید «پروتکل چیست؟» در حوزههای مختلف، مفهوم پروتکل (Protocol) معانی و کاربردهای مختلفی پیدا میکند ولی در شبکههای کامپیوتری و ارتباطات یک پروتکل به مجموعهای از قوانین، استانداردها و الگوریتمها برای کنترل و مدیریت دادهها و ارتباط دستگاههای مختلف با یکدیگر هستند.
به زبان ساده، یک پروتکل را میتوان یک زبان مشترک میان کامپیوترها یا دستگاههای اینترنت اشیاء برای برقراری یک ارتباط دانست؛ دقیقا همانند ما انسانها که برای ارتباط با یکدیگر از یک زبان مشترک استفاده میکنیم.
ما انسانها هریک ممکن است به یک زبان مادری صحبت کنیم و در یک نقطه از جهان باشیم؛ شکل زندگی متفاوتی داشته باشیم و رنگ پوست و غذا و سبک زندگیمان متفاوت باشد ولی برای ارتباط با انسانهای دیگر در جهان از یک زبان مشترک ثالث بینالمللی و استاندارد استفاده میکنیم.
کامپیوترها و دستگاههای متصل به اینترنت و شبکه هم مانند انسانها دارای مشخصات متفاوتی از یکدیگر هستند ولی برای ارتباط با هم نیاز به زبان مشترکی دارند که «پروتکل» نامیده میشود.
پروتکلهای اینترنت و شبکه بسیار زیاد و متنوع هستند و ما روزانه از مجموعهای از این پروتکلها برای کارهای روزمره خود استفاده میکنیم. مثلا، برای ارسال ایمیل یک پروتکل و برای وبگردی یک پروتکل دیگر استفاده میکنیم. برای دانلود فایلها از روی سرورهای FTP سراغ یک پروتکل میرویم و برای چت تصویری در واتساپ یک پروتکل دیگر به کار میگیریم.
سیستمعاملها و اپلیکیشنها آمدند و کار ما در استفاده از پروتکلهای ارتباطی را ساده کردند. در گذشته، کاربران برای استفاده از اینترنت و شبکه باید به طور مستقیم با این پروتکلها کار میکردند ولی امروزه نیازی نیست شما نام یک پروتکل ارتباطی را بدانید و با مفاهیم یا دستورات و قالب استاندارد آن آشنا شوید؛ برنامهها این وظیفه فراخوانی پروتکلها را برعهده دارند.
اما اگر بخواهید برنامهنویسی شبکه انجام دهید یا دنبال آموزش امنیت شبکه و نتورک پلاس و سایر مدارک شبکه هستید؛ ضروری است با مهمترین پروتکلهای ارتباطی آشنایی پیدا کنید و کاربردهای هریک را در لایهبندیهای شبکه و اینترنت بدانید.
انواع مدلهای لایهبندی شبکه
پیش از اینکه سراغ معرفی مهمترین پروتکلهای ارتباطی برویم؛ باید مدلهای لایهبندی شبکه را بررسی کنیم؛ چون بعدا خواهیم گفت هریک از پروتکلهای ارتباطی در کدام لایه از کدام مدل لایهای شبکه قرار میگیرند.
به طور کلی، دو مدل لایهای شبکه تعریف شده است. مدل لایهای OSI یا Open Systems Interconnection که قدیمیتر و ۷ لایهای است و یک شماتیک از طرز کار اینترنت است.
در هر لایه مجموعهای از دستگاههای سختافزاری، نرمافزارها، پروتکلها و اتصالات قرار میگیرند و نماینده یک بخش از شبکه و کاربردهای آن هستند. پروتکلهای ارتباطی نیز برحسب کارکردشان در یکی از این لایهها قرار میگیرند. به عنوان مثال، پروتکل TCP در لایه ۴ یا لایه انتقال قرار میگیرد و پروتکل HTTP که همگی با آن آشنا هستیم؛ در لایه ۷ یا لایه اپلیکیشن است.
به جز مدل لایهبندی شبکه OSI که ۷ لایه است؛ یک مدل لایهبندی TCP/IP چهار لایهای نیز مطرح است که امروزه کاربرد بیشتری دارد ولی از نظر لایهبندی مشابه همان مدل مرجع OSI است. تفاوت این دو مدل را در تصویر زیر مشاهده کنید:
در مدل TCP/IP لایههایی که در مدل OSI عملکرد مشابه یا نزدیک به هم داشتند؛ با هم ادغام شده تا معماری شبکه سادهتر شود. مهمترین مزیت مدل شبکه TCP/IP این است که براساس پروتکلها طراحی شده است و لایهها براساس عملکرد پروتکلها تنظیم شدند. برای آموزش و درک بهتر شبکه از مدل OSI استفاده میشود ولی برای کاربردهای عملی و عیبیابی و پیکربندی تجهیزات شبکه به مدل TCP/IP استناد میشود. در آموزش نتورک پلاس به طور کامل با مدلهای مفهومی لایهبندی شبکه و وظایف هر لایه آشنا خواهید شد.
حالا که با مدلهای مفهومی لایهبندی شبکه بیشتر آشنا شدیم؛ سراغ مهمترین پروتکلهای اینترنت و شبکه میرویم و سعی میکنیم در چند خط هریک را توضیح دهیم تا دیگر هر زمان نام این پروتکلها را دیدیم؛ بدانیم حداقل چه کاری انجام میدهند:
پروتکل TCP/IP
چیزی که تمام شبکههای مختلف دنیا را به صورت موفقیتآمیزی به هم پیوند زده است؛ پیروی و تبعیت آنها از مجموعه پروتکلی است که تحت عنوان TCP/IP در دنیا شناخته میشود. البته، عبارت TCP/IP میتواند به دو موضوع متفاوت اشاره کند: پروتکل چهار لایهای برای ارتباطات اینترنت که پروتکل TCP/IP شناخته میشود و دیگری پشتهای از پروتکلهای TCP/IP است. ما در این مقاله منظورمان پروتکل TCP/IP است.
پروتکل TCP/IP که زبان مشترک تمام دستگاهها در اینترنت و شبکه است؛ سرنام Transmission Control Protocol/ Internet Protocol بوده و خودش از دو پروتکل TCP و IP شکل گرفته است.
پروتکل TCP (سرنام Transmission Control Protocol) یا پروتکل کنترل انتقال، یکی از مهمترین پروتکلهای برقراری ارتباط در مدل شبکه چهار لایهای TCP/IP است و کنترل آن در لایه انتقال (Transport Layer) است. پروتکل TCP وظیفه دارد مجموعهای از بستهها اطلاعاتی یا کنترلی را از یک دستگاه و آدرس منبع (مبدا) به یک دستگاه و آدرس مقصد در بستر شبکه و اینترنت ارسال کند. این بستهها باید در منبع به بستههای کوچکتر تقسیم شده و در مقصد دوباره این بستهها به یکدیگر متصل و بسته نهایی را تشکیل دهند.
برای شناسایی آدرس منبع و مقصد در شبکه و اینترنت و مسیریابی حرکت بستهها از میان هزاران روتر و سوئیچ و دستگاه واسط دیگر، از پروتکل IP (سرنام Internet Protocol) استفاده میشود. پروتکل IP که به پروتکل اینترنت نیز معروف است؛ وظیفه آدرسدهی به نودهای شبکه و مبدا و مقصد بستهها را برعهده دارد. عبارتهای معروف و پرکاربرد IPv4 و IPv6 و آدرس IP که همه ما در کامپیوترها، مودمها و روترها با آن سروکار داریم؛ همین پروتکل IP را تشریح میکنند.
پروتکل UDP
یکی دیگر از اساسیترین پروتکلهای ارتباطی در اینترنت که رقیب و همکاری پروتکل TCP نیز محسوب میشود؛ پروتکل UDP (سرنام User Datagram Protocol) یا پروتکل دیتاگرام کاربر است.
این پروتکل نیز برای کنترل انتقال بستهها از مبدا به مقصد در لایه انتقال شبکه استفاده میشود ولی سریعتر از TCP است و از سوی دیگر قابلیت اطمینان کمتری دارد.
جالب است اگر بدانید که از پروتکل UDP برای سرویسهایی مانند استریم ویدئو، گیمینگ و نظایر اینها استفاده میشود تا انتقال دادهها با افت سرعت روبرو نشود. وقتی میخواهیم دو کامپیوتر یا برنامه را با تاخیر بسیار ناچیز و پایین به یکدیگر وصل کنیم؛ از پروتکل UDP استفاده خواهیم کرد.
علت قابل اتکا بودن پروتکل UDP این است که نه گیرنده و نه فرستنده، دریافت و ارسال بسته را تایید نمیکنند و تضمینی برای ارسال و دریافت بسته روی شبکه نیست. این عدم الزام باعث میشود بستههای جریانی سریعتر منتقل شوند ولی قابل اطمینان نباشند. برای همین از پروتکل UDP در استریم ویدئو و بازی استفاده میشود.
پروتکل HTTP
به HTTP پروتکل «انتقال ابرمتن» گفته میشود و سرنام Hypertext Transfer Protocol است. همه ما با این پروتکل آشنایی داریم و میدانیم برای انتقال یک صفحه وب از سرور به درون مرورگر وب ما از http و مدل امنتر آن https استفاده میشود. پروتکل HTTP شاکله وب را تشکیل میدهد و یکی از مهمترین پروتکلها در لایه هفتم شبکه مدل OSI یا لایه چهارم مدل TCP/IP است.
در این پروتکل، دادهها در قالبی انتقال پیدا میکنند که در مرورگرهای وب، اپلیکیشنها قابل نمایش و نیازی به ترجمه و تفسیر نداشته باشند.
پروتکلهای POP3 و SMTP
برای ارسال ایمیلها در شبکه و اینترنت چند پروتکل مهم مانند POP3 و SMTP داریم. پروتکل POP3 سرنام Post Office Protocol 3 است و برای دریافت و ویرایش پست الکترونیکی استفاده میشود. تمام برنامههای کلاینتهای ایمیل از پروتکل POP3 استفاده میکنند. وقتی این پروتکل روی سرور شما نصب و پیکربندی شده باشد؛ کاربران شبکه یا اینترنت میتوانند از طریق برنامههای کلاینت ایمیل، دریافت و ارسال پست الکترونیکی داشته باشند.
پروتکل POP3 در لایه اپلیکیشن مدل TCP/IP یا OSI اجرا میشود و در کنار مزایا بزرگ و چشمگیری که دارد؛ دارای برخی معایب نیز هست که باعث شده به مرور کمتر از آن استفاده شود.
پروتکل SMTP (سرنام Simple Mail Transfer Protocol) یکی دیگر از مهمترین پروتکلهای ارسال و دریافت ایمیل است و جزو بهترین پروتکلهای مدل شبکه TCP/IP محسوب میشود. معمولا برای ارسال نامههای الکترونیکی از پروتکل SMTP استفاده میشود و برای دریافت ایمیلها سراغ پروتکل POP3 یا IMAP میروند؛ چون SMTP امکان ذخیره یک ایمیل روی سرور و بعد دانلود آن از سرور را راحت میکند.
پروتکل FTP
این پروتکل پر کاربرد هم برای کاربران اینترنت کاملا شناخته شده است و بارها نام آن را شنیدهاند. FTP یا پروتکل انتقال فایل (سرنام File Transfer Protocol) برای انتقال فایلها و پروندهها میان سرور و کلاینت در شبکه و اینترنت مورد استفاده قرار میگیرد.
کاربری این پروتکل بسیار آسان است و چون نسبت به پروتکلهای مشابه، قدیمتر است؛ سرعت چندان بالایی ندارد. قدمت این پروتکل به بیش از ۵۰ سال برمیگردد و البته تغییرات بسیار زیادی دیده است تا مرتبا با فناوریهای روز سازگار شود. هنوز هم پروتکل FTP در این روزگار استفاده میشود؛ بهویژه طراحان سایت و توسعهدهندههای اپلیکیشنها و وب از آن برای انتقال فایلها به سرور یا برعکس استفاده میکنند.
پروتکل FTP یک پروتکل کاملا استاندارد براساس مدل شبکه TCP/IP است و در لایه چهارم (لایه هفتم یا لایه اپلیکیشن مدل OSI) اجرا میشود.
پروتکل TLS/SSL
نوبتی هم باشد؛ نوبت به پروتکل رمزنگاری دادهها روی اینترنت میرسد. هر دو پروتکل TLS و SSL برای رمزنگاری اطلاعات میان وب سرور و وب اپلیکیشنها مورد استفاده قرار میگیرند. در ابتدا پروتکل SSL معرفی شد و بعدتر پروتکل TLS نیز ارائه و جایگزین آن شد. باید بدانید که این روزها اصلا از پروتکل SSL دیگر استفاده نمیشود ولی هنوز رایج است که همیشه میگویند TLS/SSL!
SSL مخفف Secure Sockets Layer و TLS مخفف Transfer Layer Security است. هر دو پروتکل براساس یک روش رمزنگاری اطلاعات روی پروتکل HTTPS کار میکنند ولی این روزها TLS کارایی و عملکرد بهتری دارد و امنتر نیز هست. هر دو این پروتکلها نیز در لایه اپلیکیشن اجرا میشوند.
پروتکل IPSec
پروتکل «امنیت پروتکل اینترنت» یا Internet Protocol Security برای رمزنگاری یک اتصال مبتنی بر آدرس IP و احرازهویت در یک شبکه خصوصی مجازی (VPN) استفاده میشود و یک پروتکل اجرا شده در لایه شبکه است.
در حقیقت، IPSec یک پروتکل نیست و بیشتر به مجموعهای از پروتکلهای خاص منظوره برای ایمنسازی و رمزنگاری ارتباطات میان دستگاهها در یک شبکه اطلاق میشود. این پروتکلها به طور دقیقتر، فرآیند احرازهویت و رمزنگاری بستههای اطلاعاتی در لایه شبکه را انجام میدهند.
پروتکل ICMP
پروتکل ICMP (سرنام Internet Control Message Protocol) در لایه شبکه برای تشخیص مشکلات ارتباطی دستگاههای شبکه استفاده میشود. مثلا، برای اینکه ببینند آیا دادهها به موقع به مقصد میرسند یا خیر از پروتکل ICMP بهره میبرند. پروتکلی است که در روترها یا مودمها زیاد به کار گرفته میشود و برای گزارشهای خطا و تست بسیار مهم است.
چرا انواع پروتکلهای ارتباطی برای ما مهم هستند؟
در این مطلب کمی درباره پروتکلهای ارتباطی صحبت کردیم. نخست، گفتیم که پروتکل چیست و چرا در اینترنت و شبکه به پروتکلها نیاز داریم. بعد سراغ انواع مدلهای لایهبندی شبکه رفتیم. در ادامه هم مهمترین پروتکلهای لایه اینترنت و لایه شبکه را به زبان ساده توضیح دادیم.
اما شاید یک سوال ذهن شما را درگیر کرده باشد و اینکه آشنایی با این همه پروتکل و دهها پروتکل دیگر که در این مقاله اشاره نشده؛ به چه دردی میخورد؟ چرا ما باید وظیفه هر پروتکل را بدانیم یا اینکه بررسی کنیم در کدام لایه شبکه هستند و ساختار دقیق آنها چیست؟
وقتی بخواهید دورههای آموزش امنیت شبکه یا آموزش سیسکو را بگذرانید؛ آشنایی با پروتکلهای شبکه میتواند کارتان را بسیار سادهتر و یادگیری شما را عمیقتر و کاملا کاربردی کند.
برنامهنویسی شبکه، برنامهنویسی سوکت در شبکه، توسعه اپلیکیشنهای سمت سرور، کار با پلتفرمهایی مانند داکر و کانتینر و حتی توسعه وب، همگی حوزههایی هستند که سروکارتان با پروتکلها میافتد و باید از قبل یک آشنایی مختصر و بسیار اندک با آنها داشته باشید.
در سایت «فرادرس» میتوانید آموزشهای ویدئویی بسیار کامل و کاربردی درباره انواع پروتکلها و نحوه پیکربندی آنها مشاهده کنید. هیچگاه نباید از اهمیت مفاهیم شبکه و پروتکلها غافل شوید؛ چون پروتکلها قوانین جاری اینترنت و شبکه هستند و یک زبان مشترک برای ارتباط دستگاهها و اینترنت اشیا با یکدیگر.
اگر برای خرید مودم، اینترنت و تجهیزات شبکه سوال داشتید یا نیاز به راهنمایی و کمک دارید؛ کانال تلگرام شبکهچی به آیدی shabakehchi@ را فالو و پرسش خود را برای مدیر کانال بفرستید تا جواب دهیم.