پروتکل (Protocol) چیست؟ | تعاریف، مفاهیم و انواع — به زبان ساده
در این مطلب به بررسی مفهوم پروتکل از دیدگاه شبکههای کامپیوتری میپردازیم. در شبکهبندی رایانهای، «پروتکل» (Protocol) به مجموعهای از قواعد برای قالببندی و پردازش دادهها گفته میشود. پروتکلهای شبکه مانند یک زبان مشترک برای رایانهها هستند. رایانههای درون یک شبکه میتوانند از نرمافزارها و سختافزارهای بسیار متنوعی بهره بگیرند. با این حال با استفاده از پروتکلها میتوانیم آنها را قادر سازیم که صرفنظر از این تنوع ساختاری، با همدیگر ارتباط برقرار کنند.
پروتکلهای استاندارد شده مانند یک زبان مشترک هستند که رایانهها میتوانند مورد استفاده قرار دهند؛ همچنان که افراد با ملیتهای مختلف از سراسر دنیا ممکن است زبان بومی یکدیگر را درک نکنند، اما میتوانند با یک زبان ثالث مشترک با هم ارتباط برقرار سازند. اگر یک رایانه از «پروتکل اینترنت» (IP) استفاده کند، هر رایانه دیگری میتواند با آن ارتباط برقرار کند؛ همانطور که نمایندگان همه کشورها در سازمان ملل میتوانند با استفاده از 6 زبان رسمی این سازمان با نمایندگان کشورهای دیگر دنیا ارتباط برقرار کنند. اما اگر یک رایانه از IP استفاده کند و رایانه دیگر این پروتکل را درک نکند، امکان ارتباط وجود نخواهد داشت.
در اینترنت پروتکلهای مختلفی برای انواع مختلف پردازشها وجود دارند. پروتکلها غالباً برحسب این که به کدام لایه از مدل OSI تعلق دارند، مورد بررسی قرار میگیرند.
منظور از لایههای مدل OSI چیست؟
مدل «ارتباط متقابل سیستمهای باز» (Open Systems Interconnection) یک بازنمایی انتزاعی از طرز کار اینترنت است.
این مدل شامل 7 لایه است که هر لایه نماینده دسته متفاوتی از کارکردهای شبکه است.
پروتکلها موجب شدهاند که این کارکردهای شبکه در اختیار ما قرار بگیرند. برای نمونه پروتکل اینترنت (IP) مسئول مسیریابی دادهها از طریق تشخیص مبدأ و مقصد بستههای داده است. IP امکان برقراری ارتباط بین شبکهها را فراهم ساخته است. از این رو IP را به عنوان یک پروتکل لایه شبکه (لایه سوم) در نظر میگیریم.
به عنوان یک مثال دیگر، «پروتکل کنترل انتقال» (Transmission Control Protocol) ما را مطمئن میسازد که انتقال بستههای دادهها روی شبکه به طرز روانی صورت میپذیرد. از این رو TCP را یک پروتکل لایه انتقال (لایه چهارم) در نظر میگیریم.
نکته: منظور از «بسته داده» (Data packet)، قطعه کوچکی از داده است. همه دادهها در زمان انتقال روی شبکه به این بخشهای کوچک به نام بسته تقسیم میشوند.
چه پروتکلهایی روی لایه شبکه عمل میکنند؟
چنان که پیشتر اشاره کردیم، IP یک پروتکل لایه شبکه است که مسئول مسیریابی است. اما IP تنها پروتکل این لایه نیست. در ادامه با چند مورد دیگر از پروتکلهای لایه شبکه آشنا میشویم.
IPsec
این کلمه، اختصاری برای عبارت «امنیت پروتکل اینترنت» (Internet Protocol Security) است و یک اتصال IP رمزنگاریشده و احراز هویت شده روی یک شبکه خصوصی مجازی برقرار میسازد. از نظر فنی IPsec یک پروتکل نیست، بلکه یک مجموعه از پروتکلها است که شامل EAP یعنی «پروتکل امنیت کپسولهسازی» (Encapsulating Security Protocol)، AH یعنی «هدر احراز هویت» (Authentication Header) و SA یعنی «پیوستگیهای امنیتی» (Security Associations) است.
ICMP
این کلمه، اختصار عنوان «پروتکل مدیریت کنترل اینترنت» (Internet Control Message Protocol) است و خطاها را گزارش کرد و آپدیتهای وضعیتی را عرضه میکند. برای نمونه اگر روتر نتواند بستهای را تحویل دهد، یک پیام ICMP به مبدأ پیام بازگشت میدهد.
IGMP
این کلمه اختصار عنوان «پروتکل مدیریت گروه اینترنت» (Internet Group Management Protocol) اتصالهای شبکه یک به چند ایجاد میکند. IGMP به راهاندازی multicasting یعنی چند رایانه که میتوانند بستههای دادهی ارسالی به یک نشانی IP را دریافت کنند، کمک میکند.
چه پروتکلهای دیگری در اینترنت استفاده میشوند؟
در این بخش برخی از مهمترین پروتکلهای مورد استفاده در اینترنت را بررسی میکنیم.
TCP
چنان که پیشتر اشاره کردیم، TCP یک پروتکل لایه انتقال است که تحویل مطمئن دادهها را تضمین میکند. TCP به منظور استفاده همراه با IP طراحی شده و این دو پروتکل غالباً همراه با هم به صورت TCP/IP نامیده میشوند.
HTTP
این کلمه اختصاری برای عنوان «پروتکل انتقال ابرمتن» (Hypertext Transfer Protocol) است و شالوده تار جهانگستر وب یعنی آن چه اغلب افراد به نام اینترنت میشناسند را تشکیل داده است. این پروتکل به منظور ارسال دادهها بین دستگاهها استفاده میشود. HTTP به لایه اپلیکیشن (لایه هفتم) تعلق دارد، زیرا دادهها را در قالبی قرار میدهد که اپلیکیشنها (مانند مرورگرها) بتوانند به طور مستقیم و بدون نیاز به تفسیر بیشتر استفاده کنند. لایههای تحتانی مدل OSI از سوی سیستم عامل رایانهها و نه اپلیکیشنها مدیریت میشوند.
درباره این پروتکل میتوانید در مطلبی که با عنوان پروتکل HTTP چیست در مجله فرادرس به انتشار رسیده است، اطلاعات بیشتری کسب و کنید و بهتر با آن آشنا شوید.
HTTPS
مشکل HTTP این است که رمزنگاری نشده است و هر مهاجمی که یک پیام HTTP را دریافت کند، میتواند آن را بخواند. HTTPS یعنی HTTP امن این مشکل را با رمزنگاری پیامها حل میکند.
TLS/SSL
این کلمه از دو بخش تشکیل یافته است. بخش TLS اختصاری برای عنوان «امنیت لایه انتقال» (Transport Layer Security) و بخش SSL اختصار عنوان «لایه سوکتهای امن» (Secure Sockets Layer) است. HTTPS از این پروتکلها برای رمزنگاری پیامها استفاده میکند.
در اینباره میتوانید در مطلب «پروتکل SSL چیست؟ | پروتکل HTTPS و رمزنگاری SSL — به زبان ساده» از مجله فرادرس اطلاعات بیشتری را کسب کنید.
UDP
این کلمه اختصاری برای عبارت «پروتکل دیاگرام کاربر» (User Datagram Protocol) است. این پروتکل نسبت به پروتکل TCP سریعتر و مطمئنتر است و در لایه انتقال به جای TCP کاربرد دارد. این پروتکل غالباً در سرویسهایی مانند استریم کردن ویدئو و بازی که تحویل سریع دادهها اهمیت زیادی دارد مورد استفاده قرار میگیرد.
روترها از چه پروتکلهایی استفاده میکنند؟
روترهای شبکه از برخی پروتکلهای خاص برای کشف کارآمدترین مسیرهای شبکه به روترهای دیگر بهره میگیرند. این پروتکلها برای انتقال دادههای کاربر استفاده نمیشوند، بلکه صرفاً در روترها کاربرد دارند. در ادامه با برخی از مهمترین پروتکلهای روتر آشنا میشویم.
اگر میخواهید درباره اینکه روتر چیست و چه کاربردی دارد بیشتر بدانید، توصیه میکنیم مطلبی که در همین رابطه در مجله فرادرس به انتشار رسیده است را مطالعه کنید.
BGP
این کلمه اختصاری برای عبارت «پروتکل گیتوی مرزی» (Border Gateway Protocol) است که یک پروتکل لایه اپلیکیشن است و برای انتشار نشانیهای IP که تحت اختصار روتر است مورد استفاده قرار میگیرد. این اطلاعات به روترها امکان میدهند در مورد این که کدام بستههای داده باید از یک مسیر به سمت مقصد عبور بکنند، تصمیمگیری کنند.
EIGRP
«پروتکل مسیریابی گیتوی داخلی بهبودیافته» (Enhanced Interior Gateway Routing Protocol) مسافتهای بین روترها را اندازهگیری میکند.EIGRP به طور خودکار هر رکورد روتر را در بهترین مسیر (که جدول مسیریابی نامیده میشود) بهروزرسانی میکند و این بهروزرسانیها را به روترهای دیگر درون شبکه نیز منتشر میکند.
OSPF
پروتکل «کوتاهترین مسیر باز در وهله نخست» (Open Shortest Path First) کارآمدترین مسیرهای شبکه را بر اساس طیفی از عوامل از قبیل مسافت و پهنای باند محاسبه میکند.
RIP
«پروتکل اطلاعات مسیریابی» (Routing Information Protocol) یک پروتکل مسیریابی قدیمیتر است که مسافت بین روترها را اندازهگیری میکند. RIP یک پروتکل لایه اپلیکیشن است.
بررسی تفصیلی پروتکل اینترنت (IP)
با توجه به اهمیت بسیار زیادی که پروتکل اینترنت دارد و در واقع مهمترین پروتکل شبکههای رایانهای محسوب میشود، در این بخش به بررسی دقیقتر این پروتکل میپردازیم.
چنان که در بخشهای قبلی نیز اشاره کردیم، پروتکل اینترنت (Internet Protocol) که به اختصار IP نامیده میشود، از مجموعهای از قواعد تشکیل یافته که برای مسیریابی و آدرسدهی بستههای داده استفاده میشود تا مسیر حرکت آنها را روی انواع شبکهها کنترل کنیم و به مقصد صحیحی تحویل دهیم. دادههایی که سراسر اینترنت را میپیمایند، به بستههای کوچکی افراز میشوند. اطلاعات IP به هر بسته الصاق میشود و این اطلاعات به روترها کمک میکند تا بستهها را به مقصد صحیحی ارسال کنند. هر دستگاه یا دامنه که به اینترنت وصل باشد، یک نشانی IP دارد و از آنجا که بستههای هدایت شده، یک نشانی IP الصاقی دارند، دادهها دقیقاً به جایی که مورد نیاز است تحویل میشوند.
زمانی که دادهها به مقصد مورد نظر خود برسند، بسته به این که کدام پروتکل انتقال در ترکیب یا IP استفاده شده باشد، به روش متفاوتی مدیریت میشوند. رایجترین پروتکلهای انتقال شامل TCP و UDP هستند.
نشانی IP چیست و چطور کار میکند؟
نشانی IP یک شناسه یکتا است که به یک دستگاه یا دامنه که به اینترنت اتصال یافته تعلق مییابد. هر نشانی IP از یک سری کاراکترها مانند 192.168.1.1 تشکیل یافته است. کاربران از طریق نهادهایی به نام DNS Resolver که نامهای دامنه قابل شناسایی از سوی انسان را به نشانیهای IP ترجمه میکنند، میتوانند بدون به خاطر سپردن این سریهای کاراکتری پیچیده، نام وبسایتها را به خاطر بسپارند. هر بسته IP شامل نشانی IP و همچنین دامنه یا دستگاه ارسال کننده آن بسته است و این نشانی IP در مقصد تفسیر میشود. این فرایند شباهت زیادی به روش ارسال و دریافت نامهها در سیستم پستی دارد.
IPv4 و IPv6
چهارمین نسخه از IP که به اختصار IPv4 نامیده میشود در سال 1983 معرفی شد. با این حال با وجود آن که ترکیبهای مختلف زیادی برای اعداد این IP-ها وجود داشت، اما در نهایت موجودی نشانیهای IP نسخه 4 به اتمام رسید. نشانیهای IPv6 هنوز به طور کامل به خدمت گرفته نشدهاند و اغلب دامنهها و دستگاهها همچنان دارای نشانیهای IPv4 هستند.
منظور از بسته IP چیست؟
بستههای IP یا همان IP Packets از طریق افزودن یک هدر IP به هر بسته از دادهها پیش از ارسال به مقصدش ساخته میشوند. این هدر IP تنها یک سری از بیتها است (یعنی ترکیب صفر و یک) و چند نوع اطلاعات از قبیل نشانی IP فرستنده و گیرنده را در مورد بسته ثبت میکند. هدرهای IP همچنین موارد زیر را نشان میدهند:
- طول هدر
- طول بسته
- زمان زنده ماندن (Time To live) که به اختصار TTL نامیده میشود و همچنین تعداد hop-های شبکه که بسته پیش از کنار گذاشته شدن میتواند طی کند.
- این که از چه پروتکل انتقال یعنی TCP، UDP یا غیره استفاده میکند.
در کل 14 فیلد برای اطلاعات در هدرهای IPv4 وجود دارد؛ گرچه برخی از آنها اختیاری هستند.
مسیریابی IP چطور عمل میکند؟
اینترنت از تعداد شبکههای بزرگ به هم متصل تشکیل یافته است که هر یک مسئول بلوکهای نشانی IP خود هستند. این شبکههای بزرگ به نام «سامانههای خودگردان» (Autonomous System) یا به اختصار AS شناخته میشوند. طیفی از پروتکلهای مسیریابی از جمله BGP به مسیریابی بستهها روی این سامانهها با استفاده از نشانیهای IP مقصدشان کمک میکنند. روترها دارای جدولهای مسیریابی هستند که نشان میدهد بستهها باید به ترتیب از کدام سامانهها عبور کنند تا در سریعترین زمان ممکن به مقصدشان برسند. بستهها از یک سامانه به سامانه دیگر حرکت میکنند تا این که به سامانهای برسند که ادعا میکند مسؤولیت نشانی IP مقصد را بر عهده دارد. در این هنگام این سامانه خودگردان به طور داخلی بستهها را به مقصدشان مسیریابی میکند.
پروتکلها هدرهای بسته را در سطح مختلف مدل OSI الصاق میکنند:
بستهها میتوانند در صورت لزوم مسیرهای متفاوتی را به مقصد یکسان انتخاب کنند، همان طور که افراد مختلفی که به مقصد مشترکی میروند، ممکن است از مسیرهای متفاوتی به این منظور بهره بگیرند.
TCP/IP چیست؟
«پروتکل کنترل انتقال» (Transmission Control Protocol) یا به اختصار TCP یک پروتکل انتقال است یعنی تعیین میکند که دادهها چطور ارسال و دریافت شوند. یک هدر TCP در بخش دادههای هر بسته گنجانده میشود که از TCP/IP استفاده میکند. پیش از ارسال دادهها، TCP یک اتصال با گیرنده باز میکند. سپس TCP مطمئن میشود که همه بستهها در زمان آغاز انتقال به ترتیب دریافت میشوند. گیرنده با استفاده از TCP میتواند از رسیدن هر بسته ورودی مطلع شود. بدین ترتیب در صورت وجود بستههای مفقودی، گیرنده تقاضای ارسال مجدد آن بسته را به فرستنده ارسال میکند.
TCP برای افزایش قابلیت اطمینان و نه سرعت انتقال ساخته شده است. از آنجا که TCP باید مطمئن شود که همه بستهها به ترتیب دریافت شدهاند، بارگذاری دادهها از طریق TCP/IP در صورت مفقود شدن برخی بستهها به زمان بیشتری نیاز خواهد داشت
TCP و IP در ابتدا به این منظور طراحی شده بودند که به همراه یکدیگر استفاده شوند و از این رو غالباً همراه با هم به صورت TCP/IP نامیده میشوند. با این حال، پروتکلهای انتقال دیگر نیز میتوانند همراه با IP استفاده شوند.
UDP/IP چیست؟
«پروتکل دیاگرام کاربر» (User Datagram Protocol) یا به اختصار UDP یک پروتکل با استفاده گسترده دیگر است. این پروتکل سریعتر از TCP است، اما قابلیت اطمینان کمتری دارد. UDP از ترتیب صحیح دریافت همه بستهها مطمئن نمیسازد و پیش از ارسال یا دریافت بستهها، هیچ اتصالی برقرار نمیکند.
UDP/IP به طور معمول برای استریم کردن صدا یا ویدئو استفاده میشود، زیرا در این موارد ریسک از دست رفتن برخی بستهها با در نظر گرفتن اهمیت بیدرنگ بودن اتصال، پایین است. برای نمونه زمانی که کاربران یک ویدئوی آنلاین را تماشا میکنند، لازم نیست همه پیکسلهای موجود در یک فریم از ویدئوی آنلاین موجود باشد. کاربران بیشتر ترجیح میدهند، این ویدئو با سرعت خوبی پخش شود تا این که منتظر بنشینند تا مطمئن شوند تکتک فریمهای تصویر به درستی دریافت شده است.
پیادهسازی پروتکلهای شبکه
برای این که پروتکلهای شبکه به درستی کار کنند، باید درون یک نرمافزار پیادهسازی شده باشند که میتواند بخشی از سیستم عامل یک رایانه یا یک اپلیکیشن کاربردی باشد و یا درون سختافزار رایانه پیادهسازی شده باشد.
اغلب سیستمهای عامل مدرن دارای سرویسهای نرمافزاری داخلی هستند که برای پیادهسازی برخی از پروتکلهای شبکه طراحی شدهاند. اپلیکیشنهای دیگری از قبیل مرورگرهای وب نیز با استفاده از کتابخانههای نرمافزاری طراحی شدهاند که از هر پروتکلی که برای کارکرد اپلیکیشن لازم باشد عرضه میشوند. به علاوه TCP/IP و پروتکل مسیریابی برای بهبود عملکرد به طور مستقیم در سختافزار نیز پیادهسازی میشود.
آسیبپذیریهای پروتکلها
یک آسیبپذیری عمده که در پروتکلهای شبکه پیدا میشود، این است که به طور خاص برای امنیت طراحی نشدهاند. این فقدان حفاظت میتواند منجر به حملههای خرابکارانه از قبیل Eavesdropping یا Cache Poisoning شود که روی سیستم تأثیر میگذارند. رایجترین حمله روی پروتکلهای شبکه، آگهی کردن مسیرهای دروغین است که موجب میشود ترافیک به جای میزبانیهای واقعی به میزبانهای خطرناک هدایت شود.
ابزارهای آنالیز پروتکلهای شبکه به منظور مقابله با این آسیبپذیریها طراحی و نصب شدهاند. این ابزارها از طریق فایروال، برنامههای آنتی ویروس و آنتی اسپم موجب حفاظت از سیستمها در برابر فعالیت مخرب میشوند.
سخن پایانی
در این مطلب با پروتکلهای شبکه، ماهیت، تعریف، انواع و کاربردهای آنها آشنا شدیم. همچنین به طور تفصیلی به بررسی پروتکل اینترنت (IP) پرداختیم که یکی از پرکاربردترین پروتکلهای شبکه محسوب میشود و به احتمال زیاد تاکنون نام آن را جایی شنیدهاید. شما نیز میتوانید نظرات و دیدگاههای خود را در مورد موضوع این مطلب در بخش نظرات این نوشته در ادامه با ما و دیگر خوانندگان مجله فرادرس در میان بگذارید.