آموزشآموزش شبکه به زبان ساده

درس ۷ از ۹۹، شبکه و اینترنت، حدود ۱۴ دقیقه خواندن

پروتکل چیست

جواب کوتاه

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

کلمه‌هایی که در این درس می‌بینید

  • پروتکل

    قاعده‌های یک گفت‌وگو میان دستگاه‌ها: چه بگویند، به چه شکل، و به چه ترتیب.

  • پیام

    هر چیزی که یک طرف برای طرف دیگر می‌فرستد؛ درخواست یا پاسخ.

  • قالب

    شکل پیام: کدام تکه کجا بیاید؛ مثل جای نشانی روی پاکت نامه.

  • استاندارد

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

  • RFC

    سندی که یک پروتکل اینترنت در آن نوشته می‌شود؛ هر کدام یک شماره دارد.

  • IETF

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

مثال تلفن

وقتی به کسی زنگ می‌زنید، بی آنکه فکر کنید چند قاعده را رعایت می‌کنید. اول «الو» می‌گویید، منتظر می‌مانید تا او جواب بدهد، بعد حرفتان را می‌زنید، نوبت را به او می‌دهید، و آخر «خداحافظ» می‌گویید. اگر حرف او را نفهمیدید، می‌گویید «ببخشید، دوباره بگویید».

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

این کلمه در جاهای دیگر، مثل پزشکی یا تشریفات اداری، معنی‌های دیگری هم دارد؛ ولی معنی‌اش همه‌جا یکی است: روالی که همه بر آن توافق کرده‌اند.

سه چیزی که هر پروتکل دارد

استانداردهای شبکه پروتکل را «مجموعه‌ای از قاعده‌ها، یعنی قالب‌ها و روال‌ها» برای ارتباط میان سامانه‌ها تعریف می‌کنند. یعنی هر پروتکل سه چیز را روشن می‌کند:

  • قالب پیام: هر پیام از چه تکه‌هایی ساخته شده و هر تکه کجا می‌آید. مثل نامه که جای نشانی گیرنده، فرستنده و تمبر روی پاکت مشخص است.
  • معنی هر پیام: هر کلمه یا عدد در پیام چه می‌گوید. مثلا در HTTP، عدد ۲۰۰ یعنی «موفق» و ۴۰۴ یعنی «پیدا نشد».
  • ترتیب و نوبت: چه کسی اول حرف می‌زند، بعد از هر پیام چه انتظاری هست، و اگر جوابی نیامد یا پیام ناجور بود، چه باید کرد.

اگر هر دو طرف این سه را یکسان بدانند، مهم نیست کدام شرکت دستگاهشان را ساخته یا با چه زبان برنامه‌نویسی نوشته شده‌اند؛ حرف هم را می‌فهمند.

یک گفت‌وگوی واقعی میان مرورگر و سرور

این همان گفت‌وگویی است که وقتی صفحه‌ای را باز می‌کنید، میان مرورگر شما و سرور سایت انجام می‌شود (درس سرور و کلاینت). پروتکلش HTTP است، و پیام‌هایش واقعا همین شکلی‌اند. سه حالت را ببینید:

کلاینت (مرورگر) می‌فرستد:

  1. GET /learn/ HTTP/1.1«بده» (GET)، کدام صفحه (/learn/)، و با کدام نسخه‌ی پروتکل.
  2. Host: example.comاز کدام سایت؛ یک سرور ممکن است چند سایت داشته باشد.

سرور جواب می‌دهد:

  1. HTTP/1.1 200 OK۲۰۰ یعنی «درخواست موفق بود».
  2. Content-Type: text/htmlآنچه می‌آید یک صفحه‌ی وب است.
  3. <html> … </html>و خود صفحه.
هر دو طرف قاعده را رعایت کردند: کلاینت با قالب درست خواست و سرور با قالب درست جواب داد.

درس «HTTP چیست»، که در همین مسیر می‌آید، همه‌ی بخش‌های این پیام‌ها را کامل باز می‌کند.

پروتکل‌هایی که هر روز به کار می‌برید

هر کاری روی اینترنت پروتکل خودش را دارد. چند تا از رایج‌ترین‌ها را به کارشان وصل کنید. دو تا از این‌ها درس کامل خودشان را دارند: DNS چیست و IP چیست.

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

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

پروتکل‌ها روی هم: پشته‌ی پروتکل

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

پس پروتکل‌ها روی هم می‌نشینند، و هر کدام کار پروتکل زیرش را به او می‌سپارد. به این پشته‌ی پروتکل می‌گویند. در درس اینترنت همین را با «پاکت در پاکت» دیدید. درس بعد، «مدل OSI و هفت لایه‌ی شبکه»، این لایه‌ها را یکی‌یکی باز می‌کند.

چه کسی پروتکل را می‌نویسد: IETF و RFC

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

هر پروتکل در سندی به نام RFC نوشته می‌شود، یعنی «درخواست برای نظر»، و هر سند یک شماره دارد. این سندها از ۱۹۶۹ شروع شدند، با پروژه‌ی آرپانت؛ اولی، RFC شماره‌ی ۱، را استیو کراکر در ۷ آوریل ۱۹۶۹ نوشت. HTTP، TCP، IP، DNS و ایمیل هر کدام RFC خودشان را دارند.

وقتی پروتکلی بهتر می‌شود، RFC تازه با شماره‌ی تازه منتشر می‌شود و بالایش می‌نویسد کدام RFC قبلی را کنار می‌گذارد. مثلا TCP اول در RFC 793، سال ۱۹۸۱، نوشته شد و در ۲۰۲۲ RFC 9293 جای آن را گرفت.

قاعده‌ای که اینترنت را سر پا نگه داشته: «در آنچه می‌پذیری گشاده‌دست باش، و در آنچه می‌فرستی سخت‌گیر.» یعنی پیام‌هایت را دقیق مطابق قاعده بفرست، ولی اگر از دیگری پیامی کمی ناجور رسید، تا جای ممکن بفهمش. این جمله در استانداردهای خود اینترنت آمده است.

پروتکل باز و پروتکل اختصاصی

پروتکلی که قاعده‌هایش منتشر شده و هر کسی می‌تواند آن را بسازد، باز است؛ مثل HTTP و ایمیل. برای همین می‌توانید با هر برنامه‌ی ایمیلی به هر کسی ایمیل بفرستید، و هر مرورگری هر سایتی را باز می‌کند.

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

اشتباه‌های رایج

«پروتکل یک برنامه است.»
پروتکل قاعده است؛ برنامه‌ها آن را رعایت می‌کنند. مرورگرهای مختلف همه یک پروتکل، HTTP، را رعایت می‌کنند.
«هر کار اینترنتی فقط یک پروتکل دارد.»
هر کار چند پروتکل روی هم دارد: باز کردن یک صفحه دست‌کم DNS، HTTP، TCP و IP را با هم لازم دارد.
«HTTPS پروتکلی جدا از HTTP است.»
HTTPS همان HTTP است که از یک لایه‌ی رمزگذاری می‌گذرد؛ قاعده‌های درخواست و پاسخ همان است. درس «HTTPS و TLS» آن را کامل می‌گوید.
«استانداردهای اینترنت را یک شرکت یا دولت می‌نویسد.»
IETF گروهی باز است که عضویت ندارد؛ هر کسی می‌تواند در نوشتنشان شرکت کند.

پرسش‌های پرتکرار

پروتکل را تعریف کنید.

پروتکل مجموعه‌ای از قاعده‌هاست، یعنی قالب‌ها و روال‌ها، که دستگاه‌ها برای ارتباط با هم رعایت می‌کنند.

پروتکل شبکه چیست؟

قاعده‌های گفت‌وگوی دستگاه‌ها در شبکه: پیام به چه شکل باشد، چه معنی بدهد و به چه ترتیب فرستاده شود.

انواع پروتکل‌های شبکه کدام‌اند؟

پروتکل‌ها بر اساس کارشان دسته می‌شوند: برای کاربردها (HTTP، SMTP، DNS)، برای رساندن مطمئن (TCP و UDP)، برای نشانی و رساندن بسته (IP)، و برای سیم و موج (اترنت و وای‌فای).

پروتکل اینترنت چیست؟

پروتکل اینترنت (IP) قاعده‌ی نشانی دادن و رساندن بسته‌هاست؛ هر دستگاه در اینترنت یک نشانی IP دارد.

پشته‌ی پروتکل چیست؟

چند پروتکل روی هم که هر کدام یک کار را انجام می‌دهد و کار دیگر را به پروتکل زیرش می‌سپارد؛ مثل HTTP روی TCP روی IP.

RFC چیست؟

سندی با شماره که یک استاندارد یا پیشنهاد اینترنت در آن نوشته می‌شود؛ از ۱۹۶۹ تا امروز.

IETF چیست؟

گروهی باز که استانداردهای اینترنت را می‌نویسد و در RFCها منتشر می‌کند؛ عضویت ندارد.

کد ۴۰۴ یعنی چه؟

یعنی سرور چیزی با این نشانی پیدا نکرد؛ درخواست درست بود، صفحه نبود.

جمع‌بندی. آنچه از این درس با خودتان می‌برید.

  • پروتکل قاعده‌های یک گفت‌وگوست: قالب پیام، معنی هر پیام، و ترتیب و نوبت.
  • دستگاه‌های سازنده‌های مختلف فقط وقتی حرف هم را می‌فهمند که هر دو یک پروتکل را رعایت کنند.
  • مرورگر و سرور با HTTP حرف می‌زنند؛ کد ۲۰۰ یعنی موفق، ۴۰۰ یعنی درخواست قاعده را رعایت نکرده، ۴۰۴ یعنی پیدا نشد.
  • هر کار روی اینترنت چند پروتکل روی هم دارد: HTTP روی TCP، روی IP، روی اترنت یا وای‌فای.
  • استانداردهای اینترنت را IETF در سندهایی به نام RFC می‌نویسد؛ RFC شماره‌ی ۱ در ۱۹۶۹ نوشته شد.
  • پروتکل باز، مثل ایمیل، را هر کسی می‌تواند بسازد؛ برای همین ایمیل میان همه کار می‌کند.

خودتان را بسنجید ۸ پرسش، اختیاری؛ نتیجه فقط برای خود شماست.