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

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

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

در آرپانت، در سال ۱۹۶۹، شروع ارتباط هاست به هاست با پروتکل ۱۸۲۲ بود که نحوهٔ انتقال پیام به یک IMP را تعریف می‌کرد.Interface Message Processor: Specifications for the Interconnection of a Host and an IMP, Report No. 1822, Bolt Beranek and Newman, Inc. (BBN) برنامه کنترل شبکه برای ARPANET برای اولین بار در سال ۱۹۷۰ اجرا شد. رابط NCP با پیاده‌سازی پروتکل‌های ارتباطی سطح بالاتر به نرم‌افزار کاربردی اجازه می دهد تا در سراسر ARPANET متصل شود. این یک نمونهٔ اولیه از مفهوم لایه بندی پروتکل بود."NCP – Network Control Program" , Living Internet

تحقیقات شبکه در اوایل دهه ۱۹۷۰ توسط رابرت ای. کان و وینت سرف منجر به تدوین برنامه کنترل انتقال (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 را به عنوان یک مجموعه پروتکل جامع به عنوان جزء اصلی اینترنت در حال ظهور بنا نهاد."TCP/IP Internet Protocol" , Living Internet

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

 مفهوم 
اطلاعاتی که از طریق شبکه یا رسانه‌های دیگر بین دستگاه‌ها رد و بدل می‌شوند، طبق قوانین و قراردادهایی اداره می‌شوند که می‌توانند در جزئیات پروتکل ارتباطات تنظیم شوند. ماهیت ارتباطات، داده‌های واقعی رد و بدل شده و هرگونه رفتار وضعیتمحور، توسط این مشخصات (جزئیات پروتکل ارتباطات) تعریف می‌شود. در سیستم‌های محاسبات دیجیتال، قوانین را می‌توان با الگوریتم‌ها و ساختارهای داده بیان کرد. پروتکل‌ها برای ارتباط الگوریتم‌ها یا زبان‌های برنامه‌نویسی برای محاسبات هستند.Comer 2000, Sect. 11.2 - The Need For Multiple Protocols, p. 177, "They (protocols) are to communication what programming languages are to computation"Comer 2000, Sect. 1.3 - Internet Services, p. 3, "Protocols are to communication what algorithms are to computation"

سیستم عامل‌ها معمولاً مجموعه ای از فرایندهای هماهنگ را در اختیار دارند که داده‌های مشترک را برای برقراری ارتباط با یکدیگر دستکاری می‌کنند. این ارتباط توسط پروتکل‌های قابل درک اداره می‌شود، که می‌توانند در خودِ کد فرایند قرار گیرند.Ben-Ari 1982, chapter 2 - The concurrent programming abstraction, p. 18-19, states the same.Ben-Ari 1982, Section 2.7 - Summary, p. 27, summarizes the concurrent programming abstraction. در مقابل، چون حافظه مشترک وجود ندارد، سیستم‌های ارتباطی باید با استفاده از یک رسانه انتقال مشترک با یکدیگر ارتباط برقرار کنند. انتقال لزوماً قابل اعتماد نیست و ممکن است سیستم‌های متفاوت از سخت‌افزار یا سیستم عامل‌های مختلفی استفاده کنند.

برای پیاده‌سازی پروتکل شبکه، ماژول‌های پروتکلِ نرم‌افزار با یک چارچوب پیاده‌سازی شده روی سیستم عامل ماشین ارتباط برقرار می‌کنند. این چارچوب عملکرد شبکه سیستم عامل را پیاده‌سازی می‌کند.Marsden 1986, Section 6.1 - Why are standards necessary?, p. 64-65, uses BSC as an example to show the need for both standard protocols and a standard framework. وقتی الگوریتم‌های پروتکل به زبان برنامه‌نویسی قابل حمل بیان می‌شوند، ممکن است نرم‌افزار پروتکل از سیستم عامل مستقل شود. معروف‌ترین چارچوب‌ها مدل TCP / IP و مدل OSI هستند.

در زمان توسعه اینترنت ، لایه بندی انتزاعی به عنوان یک طراحی موفق برای طراحی کامپایلر و سیستم عامل اثبات شده بود و با توجه به شباهت‌های بین زبان‌های برنامه‌نویسی و پروتکل‌های ارتباطی، برنامه‌های شبکه یکپارچه در ابتدا به پروتکل‌های همکاری تجزیه می‌شدند.Comer 2000, Sect. 11.2 - The Need For Multiple Protocols, p. 177, explains this by drawing analogies between computer communication and programming languages. این باعث ایجاد مفهوم پروتکل‌های لایه ای می‌شود که امروزه پایهٔ طراحی پروتکل را تشکیل می‌دهد.Sect. 11.10 - The Disadvantage Of Layering, p. 192, states: layering forms the basis for protocol design.

سیستم‌ها معمولاً از یک پروتکل تکی برای انتقال داده استفاده نمی‌کنند. بلکه از مجموعه ای از پروتکل‌ها استفاده می‌کنند، که بعضاً مجموعه پروتکل نامیده می‌شود.Comer 2000, Sect. 11.2 - The Need For Multiple Protocols, p. 177, states the same. برخی از شناخته شده‌ترین مجموعه‌های پروتکل TCP / IP , IPX / SPX، X.25، AX.25 و AppleTalk هستند.

پروتکل‌ها را می‌توان بر اساس عملکرد در گروه‌ها تقسیم کرد، به عنوان مثال، یک گروه از پروتکل‌های حمل و نقل وجود دارد. ویژگی‌ها بر روی لایه‌ها ترسیم می‌شوند، هر لایه یک کلاس متمایز از مشکلات مربوط به خود را حل می‌کند. به عنوان مثال: برنامه‌های کاربری، حمل و نقل، اینترنت و توابع رابط شبکه.Comer 2000, Sect. 11.3 - The Conceptual Layers Of Protocol Software, p. 178, "Each layer takes responsibility for handling one part of the problem." برای انتقال پیام، باید از هر لایه یک پروتکل انتخاب شود. انتخاب پروتکل بعدی با ادامه دادن پیام با انتخاب پروتکل برای هر لایه انجام می‌شود.Comer 2000, Sect. 11.11 - The Basic Idea Behind Multiplexing And Demultiplexing, p. 192, states the same.

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

پیام‌ها برای برقراری ارتباط در سیستم‌های ارتباطی ارسال و دریافت می‌شوند؛ بنابراین پروتکل‌ها باید قوانین حاکم بر انتقال را مشخص کنند. به‌طور کلی، بسیاری از موارد زیر باید مورد توجه قرار گیرند:Marsden 1986, Chapter 3 - Fundamental protocol concepts and problem areas, p. 26-42, explains much of the following.

 قالبهای داده برای تبادل داده
 پیام‌های بیتی دیجیتالی رد و بدل می‌شوند. بیت‌ها در قسمت‌ها تقسیم می‌شوند و هر فیلد اطلاعات مربوط به پروتکل را حمل می‌کند. از نظر مفهومی پیام بیتی به دو قسمت header و payload تقسیم می‌شود. پیام واقعی در payload حمل می‌شود. قسمت header شامل فیلدهای مرتبط با عملکرد پروتکل است. پیام بیتی که طولانی‌تر از حداکثر واحد انتقال (MTU) باشد، به قطعات مناسب تقسیم می‌شوند.Comer 2000, Sect. 7.7.4 - Datagram Size, Network MTU, and Fragmentation, p. 104, Explains fragmentation and the effect on the header of the fragments.
 قالب‌های آدرس برای تبادل داده
 آدرس‌ها برای شناسایی فرستنده و گیرنده(ها) استفاده می‌شوند. آدرس‌ها در ناحیه هدرِ پیامِ بیتی هستند، و به گیرنده‌ها اجازه می‌دهد تا تشخیص دهند که پیام‌ها مورد توجه هستند یا خیر، باید پردازش شوند یا باید از آنها صرف نظر شود. ارتباط بین فرستنده و گیرنده با استفاده از یک جفت آدرس (آدرس فرستنده، آدرس گیرنده) قابل شناسایی است. معمولاً به ازای برخی از مقادیر، آدرس معنی خاصی می‌دهد؛ مثلاً اگه مقدار همهٔ اجزای آدرس برابر عدد ۱ باشد، به معنی همه گیر بودن پیام است؛ بنابراین ارسال به این آدرس باعث می‌شود که پیام به همهٔ اجزاء شبکه محلی ارسال شود. قوانینی که معنی‌های مقادیر متفاوت آدرس را توصیف می‌کنند در مجموع یک طرح آدرس دهی هستند.Comer 2000, Chapter 4 - Classful Internet Addresses, p. 64-67;71.
 تطبیق آدرس
 گاهی پروتکل‌ها باید یک آدرس از یک طرح را به آدرس در طرح دیگری تبدیل کنند؛ مثلاً تبدیل یک آدرس IP به یک آدرس MAC اترنت. از این به عنوان تطبیق آدرس یاد می‌شود.Marsden 1986, Section 14.3 - Layering concepts and general definitions, p. 187, explains address mapping.
 مسیریابی
 گاهی سیستم‌ها مستقیماً به هم متصل نیستند. در این حالت سیستم‌های واسطه ای که در طول مسیر به گیرنده(ها) مورد نظر وجود دارند که فرستنده برای ارسال داده، ابتدا داده را به این واسطه‌ها ارسال می‌کند و واسطه‌ها نیز پیام را تا گیرنده ارسال می‌کنند باید پیام‌ها را از طرف فرستنده ارسال کنند. در اینترنت ، شبکه‌ها با استفاده از روترها متصل می‌شوند. به اتصال شبکه‌ها از طریق روترها کار اینترنتی گفته می‌شود.
 تشخیص خطاهای انتقال
 شناسایی خطا در شبکه‌هایی که امکان خراب شدن داده‌ها وجود دارد، ضروری است. در یک رویکرد مشترک، CRC ناحیه داده به انتهای بسته‌ها اضافه می‌شود و این امکان را برای گیرنده فراهم می‌کند تا تفاوت‌های ناشی از فساد را تشخیص دهد. گیرنده بسته‌ها را در مورد اختلاف CRC رد می‌کند و به نوعی برای انتقال مجدد ترتیب می‌دهد.Marsden 1986, Section 3.2 - Detection and transmission errors, p. 27, explains the advantages of backward error correction.
 سپاسگزاریها
 تأیید دریافت صحیح بسته‌ها برای ارتباطات اتصال محور مورد نیاز است. تقدیرنامه‌ها از گیرنده‌ها به فرستنده‌های مربوط ارسال می‌شوند.Marsden 1986, Section 3.3 - Acknowledgement, p. 28-33, explains the advantages of positive only acknowledgment and mentions datagram protocols as exceptions.
 از دست دادن اطلاعات - وقفه و تلاش مجدد
 بسته‌ها ممکن است در شبکه گم شوند یا در انتقال به تأخیر بیفتند. برای کنار آمدن با این مسئله، تحت برخی پروتکل‌ها، یک فرستنده ممکن است در مدت زمان معینی انتظار دریافت صحیح از گیرنده را داشته باشد؛ بنابراین، در مهلت زمانی، فرستنده ممکن است نیاز به انتقال مجدد اطلاعات داشته باشد.  در صورت قطع پیوند دائمی ، انتقال مجدد هیچ تأثیری ندارد بنابراین تعداد انتقال مجدد محدود است. فراتر از حد مجاز مجدد خطا محسوب می‌شود.Marsden 1986, Section 3.4 - Loss of information - timeouts and retries, p. 33-34.
 جهت جریان اطلاعات
 اگر انتقال فقط در یک جهت به‌صورت همزمان در پیوندهای نیمه دوبلکس یا از طریق یک فرستنده در یک بار به عنوان یک رسانه مشترک انجام شود، باید جهت دهی شود. این به عنوان کنترل دسترسی رسانه ای شناخته می‌شود. ترتیبات باید در نظر گرفته شود تا در صورت برخورد یا مشاجره دو طرف به‌طور همزمان انتقال یا مایل به انتقال باشند.Marsden 1986, Section 3.5 - Direction of information flow, p. 34-35, explains master/slave and the negotiations to gain control.
 کنترل توالی
 اگر bit bitهای طولانی به قطعات تقسیم شده و سپس به صورت جداگانه روی شبکه ارسال شوند، ممکن است قطعات از دست بروند یا به تأخیر بیفتند یا در برخی از انواع شبکه‌ها مسیرهای مختلف را به مقصد برسانند. در نتیجه، قطعات ممکن است از توالی خارج شوند. انتقال مجدد می‌تواند منجر به قطعات تکراری شود. با علامت گذاری قطعات با اطلاعات ترتیب در فرستنده، گیرنده می‌تواند آنچه را که از دست داده یا کپی شده است، تعیین کند، درخواست انتقال مجدد لازم را دارد و پیام اصلی را دوباره جمع‌آوری می‌کند.Marsden 1986, Section 3.6 - Sequence control, p. 35-36, explains how packets get lost and how sequencing solves this.
 کنترل جریان
 هنگامی که فرستنده سریعتر از گیرنده یا تجهیزات شبکه میانی می‌تواند انتقال‌ها را پردازش کند ، کنترل جریان لازم است. کنترل جریان را می‌توان با پیام رسانی از گیرنده به فرستنده پیاده‌سازی کرد.Marsden 1986, Section 3.7 - Flow control, p. 36-38.
 صف کشیدن
 فرایندهای ارتباطی یا ماشین‌های دولتی از صف (یا "بافر")، معمولاً صف‌های FIFO، برای رسیدگی به پیام‌های ترتیب ارسال شده استفاده می‌کنند و ممکن است گاهی چندین صف با اولویت بندی متفاوت داشته باشند.

 منابع 

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