پروتکل ارتباطات

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

### تاریخچه
اصطلاح *پروتکل* در زمینه تبادل داده‌ها اولین بار در یک تفاهم‌نامه استفاده شد. تفاهم‌نامه‌ای که با عنوان *پروتکل برای استفاده در شبکه تبادل داده NPL* توسط راجر اسکانتلبوری و کیت بارتلت در آوریل ۱۹۶۷ نوشته شده است.

در آرپانت، در سال ۱۹۶۹، شروع ارتباط هاست به هاست با پروتکل ۱۸۲۲ بود که نحوهٔ انتقال پیام به یک IMP را تعریف می‌کرد. برنامه کنترل شبکه برای ARPANET برای اولین بار در سال ۱۹۷۰ اجرا شد. رابط NCP با پیاده‌سازی پروتکل‌های ارتباطی سطح بالاتر به نرم‌افزار کاربردی اجازه می دهد تا در سراسر ARPANET متصل شود. این یک نمونهٔ اولیه از مفهوم لایه بندی پروتکل بود.

تحقیقات شبکه در اوایل دهه ۱۹۷۰ توسط رابرت ای. کان و وینت سرف منجر به تدوین برنامه کنترل انتقال (TCP) شد. مشخصات  آن توسط Cerf با Yogen Dalal و Carl Sunshine در دسامبر ۱۹۷۴ نوشته شده است، درحالی که هنوز که یک طراحی یکپارچه است.

گروه کاری شبکه بین‌المللی با یک استاندارد دیتاگرام بدون اتصال موافقت کرد که در سال ۱۹۷۵ به CCIT ارائه شد اما توسط ITU یا ARPANET پذیرفته نشد. تحقیقات بین‌المللی، علی‌الخصوص کارهای Rémi Després، به توسعه استاندارد X.25، مبتنی بر مدارهای مجازی توسط ITU-T در ۱۹۷۶، کمک کرد. تولیدکنندگان رایانه پروتکل‌های اختصاصی مانند معماری شبکه سیستم‌ها ی (IBM(SNA، شرکت تجهیزات دیجیتال DECent و سیستم‌های شبکه زیراکس را ایجاد کردند.

ساختار TCP به عنوان پشته پروتکل مدولار دوباره طراحی شد. در اصل به آن *IP / TCP گفته می‌شد و* در سال ۱۹۸۲ در SATNET و در ژانویه ۱۹۸۳ بر روی ARPANET نصب شد. همان‌طور که در  و ذکر شده است، توسعهٔ یک مجموعه پروتکل کامل تا سال ۱۹۸۹، پایه و اساس رشد TCP / IP را به عنوان یک مجموعه پروتکل جامع به عنوان جزء اصلی اینترنت در حال ظهور بنا نهاد.

کار بین‌المللی در مورد یک مدل مرجع برای استانداردهای ارتباطی منجر به مدل OSI شد که در سال ۱۹۸۴ منتشر شد. برای مدتی در اواخر دهه ۱۹۸۰ و اوایل دهه ۱۹۹۰، مهندسان، سازمان‌ها و کشورها درمورد اینکه کدام استاندارد، مدل OSI یا مجموعه پروتکل اینترنت ، بهترین و قوی‌ترین شبکه‌های رایانه ای را ایجاد می‌کند، به دو قطب تقسیم شدند.

### مفهوم
اطلاعاتی که از طریق شبکه یا رسانه‌های دیگر بین دستگاه‌ها رد و بدل می‌شوند، طبق قوانین و قراردادهایی اداره می‌شوند که می‌توانند در جزئیات پروتکل ارتباطات تنظیم شوند. ماهیت ارتباطات، داده‌های واقعی رد و بدل شده و هرگونه رفتار وضعیتمحور، توسط این مشخصات (جزئیات پروتکل ارتباطات) تعریف می‌شود. در سیستم‌های محاسبات دیجیتال، قوانین را می‌توان با الگوریتم‌ها و ساختارهای داده بیان کرد. پروتکل‌ها برای ارتباط الگوریتم‌ها یا زبان‌های برنامه‌نویسی برای محاسبات هستند.

سیستم عامل‌ها معمولاً مجموعه ای از فرایندهای هماهنگ را در اختیار دارند که داده‌های مشترک را برای برقراری ارتباط با یکدیگر دستکاری می‌کنند. این ارتباط توسط پروتکل‌های قابل درک اداره می‌شود، که می‌توانند در خودِ کد فرایند قرار گیرند. در مقابل، چون حافظه مشترک وجود ندارد، سیستم‌های ارتباطی باید با استفاده از یک رسانه انتقال مشترک با یکدیگر ارتباط برقرار کنند. انتقال لزوماً قابل اعتماد نیست و ممکن است سیستم‌های متفاوت از سخت‌افزار یا سیستم عامل‌های مختلفی استفاده کنند.

برای پیاده‌سازی پروتکل شبکه، ماژول‌های پروتکلِ نرم‌افزار با یک چارچوب پیاده‌سازی شده روی سیستم عامل ماشین ارتباط برقرار می‌کنند. این چارچوب عملکرد شبکه سیستم عامل را پیاده‌سازی می‌کند. وقتی الگوریتم‌های پروتکل به زبان برنامه‌نویسی قابل حمل بیان می‌شوند، ممکن است نرم‌افزار پروتکل از سیستم عامل مستقل شود. معروف‌ترین چارچوب‌ها مدل TCP / IP و مدل OSI هستند.

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

سیستم‌ها معمولاً از یک پروتکل تکی برای انتقال داده استفاده نمی‌کنند. بلکه از مجموعه ای از پروتکل‌ها استفاده می‌کنند، که بعضاً مجموعه پروتکل نامیده می‌شود. برخی از شناخته شده‌ترین مجموعه‌های پروتکل TCP / IP , IPX / SPX، X.25، AX.25 و AppleTalk هستند.

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

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

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

; قالبهای داده برای تبادل داده
: پیام‌های بیتی دیجیتالی رد و بدل می‌شوند. بیت‌ها در قسمت‌ها تقسیم می‌شوند و هر فیلد اطلاعات مربوط به پروتکل را حمل می‌کند. از نظر مفهومی پیام بیتی به دو قسمت *header* و *payload تقسیم می‌شود*. پیام واقعی در payload حمل می‌شود. قسمت header شامل فیلدهای مرتبط با عملکرد پروتکل است. پیام بیتی که طولانی‌تر از حداکثر واحد انتقال (MTU) باشد، به قطعات مناسب تقسیم می‌شوند.
; قالب‌های آدرس برای تبادل داده
: آدرس‌ها برای شناسایی فرستنده و گیرنده(ها) استفاده می‌شوند. آدرس‌ها در ناحیه هدرِ پیامِ بیتی هستند، و به گیرنده‌ها اجازه می‌دهد تا تشخیص دهند که پیام‌ها مورد توجه هستند یا خیر، باید پردازش شوند یا باید از آنها صرف نظر شود. ارتباط بین فرستنده و گیرنده با استفاده از یک جفت آدرس *(آدرس فرستنده، آدرس گیرنده) قابل شناسایی است*. معمولاً به ازای برخی از مقادیر، آدرس معنی خاصی می‌دهد؛ مثلاً اگه مقدار همهٔ اجزای آدرس برابر عدد ۱ باشد، به معنی همه گیر بودن پیام است؛ بنابراین ارسال به این آدرس باعث می‌شود که پیام به همهٔ اجزاء شبکه محلی ارسال شود. قوانینی که معنی‌های مقادیر متفاوت آدرس را توصیف می‌کنند در مجموع یک *طرح آدرس دهی هستند*.
; تطبیق آدرس
: گاهی پروتکل‌ها باید یک آدرس از یک طرح را به آدرس در طرح دیگری تبدیل کنند؛ مثلاً تبدیل یک آدرس IP به یک آدرس MAC اترنت. از این به عنوان تطبیق *آدرس یاد می‌شود*.
; مسیریابی
: گاهی سیستم‌ها مستقیماً به هم متصل نیستند. در این حالت سیستم‌های واسطه ای که در طول *مسیر* به گیرنده(ها) مورد نظر وجود دارند که فرستنده برای ارسال داده، ابتدا داده را به این واسطه‌ها ارسال می‌کند و واسطه‌ها نیز پیام را تا گیرنده ارسال می‌کنند باید پیام‌ها را از طرف فرستنده ارسال کنند. در اینترنت ، شبکه‌ها با استفاده از روترها متصل می‌شوند. به اتصال شبکه‌ها از طریق روترها کار *[[شبکه شبکه‌ها|اینترنتی گفته می‌شود]]*.
; تشخیص خطاهای انتقال
: شناسایی خطا در شبکه‌هایی که امکان خراب شدن داده‌ها وجود دارد، ضروری است. در یک رویکرد مشترک، CRC ناحیه داده به انتهای بسته‌ها اضافه می‌شود و این امکان را برای گیرنده فراهم می‌کند تا تفاوت‌های ناشی از فساد را تشخیص دهد. گیرنده بسته‌ها را در مورد اختلاف CRC رد می‌کند و به نوعی برای انتقال مجدد ترتیب می‌دهد.
; سپاسگزاریها
: تأیید دریافت صحیح بسته‌ها برای ارتباطات اتصال محور مورد نیاز است. تقدیرنامه‌ها از گیرنده‌ها به فرستنده‌های مربوط ارسال می‌شوند.
; از دست دادن اطلاعات - وقفه و تلاش مجدد
: بسته‌ها ممکن است در شبکه گم شوند یا در انتقال به تأخیر بیفتند. برای کنار آمدن با این مسئله، تحت برخی پروتکل‌ها، یک فرستنده ممکن است در مدت زمان معینی انتظار دریافت صحیح از گیرنده را داشته باشد؛ بنابراین، در مهلت زمانی، فرستنده ممکن است نیاز به انتقال مجدد اطلاعات داشته باشد.  در صورت قطع پیوند دائمی ، انتقال مجدد هیچ تأثیری ندارد بنابراین تعداد انتقال مجدد محدود است. فراتر از حد مجاز مجدد خطا محسوب می‌شود.
; جهت جریان اطلاعات
: اگر انتقال فقط در یک جهت به‌صورت همزمان در پیوندهای نیمه دوبلکس یا از طریق یک فرستنده در یک بار به عنوان یک رسانه مشترک انجام شود، باید جهت دهی شود. این به عنوان کنترل دسترسی رسانه ای شناخته می‌شود. ترتیبات باید در نظر گرفته شود تا در صورت برخورد یا مشاجره دو طرف به‌طور همزمان انتقال یا مایل به انتقال باشند.
; کنترل توالی
: اگر bit bitهای طولانی به قطعات تقسیم شده و سپس به صورت جداگانه روی شبکه ارسال شوند، ممکن است قطعات از دست بروند یا به تأخیر بیفتند یا در برخی از انواع شبکه‌ها مسیرهای مختلف را به مقصد برسانند. در نتیجه، قطعات ممکن است از توالی خارج شوند. انتقال مجدد می‌تواند منجر به قطعات تکراری شود. با علامت گذاری قطعات با اطلاعات ترتیب در فرستنده، گیرنده می‌تواند آنچه را که از دست داده یا کپی شده است، تعیین کند، درخواست انتقال مجدد لازم را دارد و پیام اصلی را دوباره جمع‌آوری می‌کند.
; کنترل جریان
: هنگامی که فرستنده سریعتر از گیرنده یا تجهیزات شبکه میانی می‌تواند انتقال‌ها را پردازش کند ، کنترل جریان لازم است. کنترل جریان را می‌توان با پیام رسانی از گیرنده به فرستنده پیاده‌سازی کرد.
; صف کشیدن
: فرایندهای ارتباطی یا ماشین‌های دولتی از صف (یا "بافر")، معمولاً صف‌های FIFO، برای رسیدگی به پیام‌های ترتیب ارسال شده استفاده می‌کنند و ممکن است گاهی چندین صف با اولویت بندی متفاوت داشته باشند.

## منابع

## یادداشت
رده:انتقال داده
رده:پروتکل‌های ارتباطی
رده:پروتکل‌های شبکه