通信协议

一个通信协议是一个规则系统,允许两个或多个实体通信系统发送信息通过任何类型的变体物理数量。该协议定义规则,句法语义同步沟通可能错误恢复方法。协议可以通过硬件软件,或两者的组合。[1]

通信系统使用明确的格式交换各种消息。每个消息具有确切的含义,旨在从针对特定情况预先确定的一系列可能的响应中引起响应。指定的行为通常独立于它的生命实施的。有关各方必须同意沟通协议。[2]为了达成协议,可以将协议发展为技术标准。一个编程语言对计算的描述相同,因此协议和编程语言之间有一个密切的类比:协议是为了通信哪种编程语言与计算.[3]替代配方指出协议是为了交流什么算法是计算.[4]

多个协议通常描述单个通信的不同方面。一组旨在合作的协议被称为协议套件。在软件中实施时,它们是协议堆栈.

互联网通信协议由互联网工程工作队(IETF)。这IEEE(电气和电子工程师研究所)处理有线和无线网络以及国际标准化组织(ISO)处理其他类型。这itu-t手柄电信协议和格式公共交换电话网络(PSTN)。作为PSTN和Internet收敛,标准也朝着融合驱动。

通信系统

历史

该术语的第一个用途之一协议在数据信号中的上下文中发生在标题的备忘录中用于在NPL数据通信网络写的罗杰·斯卡特伯里(Roger Scantlebury)和基思·巴特利特(Keith Bartlett)于1967年4月。[5][6]

Arpanet,1969年的主机到主持人交流的起点是1822协议,它定义了将消息传输到Imp。[7]网络控制协议(NCP)对于ARPANET,最初于1970年实施。[8]允许的NCP接口应用程序软件通过实现高级通信协议来跨ARPANET连接,这是一个早期的示例协议分层概念。[9]

1970年代初的网络研究罗伯特·E·卡恩(Robert E. Kahn)Vint Cerf导致表述传输控制程序(TCP)。[10]它的RFC 675规格由CERF编写Yogen dalal1974年12月,卡尔·阳光(Carl Sunshine)目前仍然是整体设计。

国际网络工作组同意无连接数据报呈现给CCIT在1975年,但没有被ITU或ARPANET采用。[11]国际研究,特别是RémiDesprés,为发展做出了贡献X.25标准,基于虚拟电路itu-t1976年。[12][13]计算机制造商开发了专有协议例如IBM系统网络体系结构(SNA),数字设备公司的decnetXerox网络系统.[14]

将TCP软件重新设计为模块化协议堆栈。最初称为IP/TCP,安装在卫星1982年和1983年1月在Arpanet上。RFC 1122RFC 1123,为成长奠定了基础TCP/IP作为综合协议套件,作为新兴的核心组成部分互联网.[15]

有关传播标准参考模型的国际工作导致OSI模型,于1984年出版。在1980年代末和1990年代初期,工程师,组织和国家成为在哪个标准的问题上极化,OSI模型或Internet协议套件将导致最佳,最强大的计算机网络。[16][17][18]

概念

通过网络或其他媒体之间的设备之间交换的信息受规则和约定,可以在通信协议规范中列出。交流的性质,实际数据交换和任何状态 - 依赖性行为,由这些规格定义。在数字计算系统中,可以通过算法数据结构。协议是为了对计算的算法或编程语言进行交流。[3][4]

操作系统通常包含一组合作的过程,这些过程操纵共享数据以相互通信。这种通信受牢固理解的协议的约束,可以嵌入过程代码本身中。[19][20]相反,因为没有共享内存,通信系统必须使用共享传输介质。传输不一定是可靠的,单个系统可能会使用不同的硬件或操作系统。

为了实现网络协议,协议软件模块与计算机操作系统上实现的框架相连。该框架实现了操作系统的网络功能。[21]当协议算法用便携式编程语言表示时,可以制作协议软件操作系统独立的。最著名的框架是TCP/IP模型OSI模型.

在开发互联网时,抽象分层事实证明,这是编译器和操作系统设计的成功设计方法,并且鉴于编程语言和通信协议之间的相似之处,最初的单片网络程序被分解为合作协议。[22]这引起了分层协议的概念,如今,该协议构成了协议设计的基础。[23]

系统通常不使用单个协议来处理传输。相反,他们使用一组合作协议,有时称为协议套件.[24]一些最著名的协议套件是TCP/IPIPX/SPXX.25AX.25appletalk.

可以根据组中的功能来安排协议,例如,有一组运输协议。功能映射到层上,每个层都求解了与:应用程序,传输,Internet和网络接口函数相关的不同类别的问题。[25]要传输消息,必须从每层选择一个协议。下一个协议的选择是通过使用每一层协议选择器扩展消息来完成的。[26]

类型

基于它们所携带的内容的表示,有两种类型的通信协议:基于文本和二进制内容。[27]

基于文本

一个基于文本的协议或者纯文本协议代表其内容人类可读格式,通常是纯文本。

直接的人类可读性与在计算机环境中具有固有好处的二进制协议形成鲜明对比(例如机械性的易用性解析改进的带宽利用率)。

网络应用程序具有各种封装数据的方法。一种与Internet协议非常常见的方法是面向文本的表示形式,将请求和响应作为行作为行ASCII文本,由newline字符终止(通常是马车返回字符)。使用普通,可读文本的命令的协议的示例为ftp(文件传输协议),smtp(简单邮件传输协议)和手指协议.[28]

基于文本的协议通常用于人类的解析和解释,因此每当需要对协议内容进行检查时,例如调试并在早期协议开发设计阶段。

需要明确的是,所有数字通信从根本上都是二进制的。此处提到的基于“文本”的协议仅使用二进制内容,这是由文本编辑器(或其他此类软件)“人性阅读”的。

二进制

一个二进制协议利用一个值的所有值字节,与基于文本的协议相反,该协议仅使用与对应于人类可读字符相对应的值ASCII编码。二进制协议旨在由机器而不是人读取。二进制协议具有简洁的优势,它转化为传输和解释的速度。[29]

二进制已在描述现代标准的规范文件中使用EBXMLhttp/2http/3Edoc.[30]UML中的接口[31]也可以被视为二进制协议。

基本要求

通过网络获取数据只是协议问题的一部分。收到的数据必须在对话进度的上下文中进行评估,因此协议必须包括描述上下文的规则。据说这类规则表达了句法交流。其他规则确定数据对于交换的上下文是否有意义。据说这类规则表达了语义交流。

消息是在通信系统上发送和接收的,以建立通信。因此,协议应指定控制传输的规则。通常,应解决以下大部分:[32]

数据交换的数据格式
数字消息Bitsring被交换。Bitsring在字段中划分,每个字段都包含与协议相关的信息。从概念上讲,分布分为两个部分称为标题有效载荷。实际消息在有效载荷中携带。标题区域包含与协议操作相关的字段。比特林长于最大传输单元(MTU)分为适当的大小。[33]
地址格式用于数据交换
地址用于识别发件人和预期的接收器。地址携带在Bitsring的标题区域,允许接收者确定旁观者是否感兴趣,应处理或应忽略。可以使用地址对确定发件人和接收器之间的连接(发件人地址,接收器地址)。通常,某些地址值具有特殊含义。一个1可以将S地址视为意味着网络上所有站点的地址,因此发送到此地址将导致本地网络上的广播。描述地址值含义的规则共同称为地址方案.[34]
地址映射
有时,协议需要在另一个方案的地址上映射一个方案的地址。例如,将应用程序指定的逻辑IP地址转换为以太网MAC地址。这被称为地址映射.[35]
路由
当系统未直接连接时,沿着中介系统路线对于预期的接收器,需要代表发件人转发消息。在互联网上,网络是使用路由器连接的。通过路由器的网络互连称为互联网工作.
检测传输错误
在可能的数据损坏的网络上需要错误检测。在一种通用方法中,数据区域的CRC添加到数据包的末尾,使接收者可以检测由损坏引起的差异。接收器拒绝CRC差异的数据包,并以某种方式安排重新启动。[36]
致谢
确认正确接收数据包的需要面向连接的通信。致谢是从接收者发送回各自发件人的。[37]
信息丢失 - 超时和检索
数据包可能会在网络上丢失或延迟运输。为了应对这一点,在某些协议下,发件人可以期望在一定时间内获得接收者的正确接收。因此,继续超时,发件人可能需要重新发送信息。[a]如果存在永久断开的链接,则重传无效,因此重传次数的数量受到限制。超过重试限制被认为是错误。[38]
信息流的方向
如果只能一次在一个方向上发生传输,则需要解决方向半双链链接或一次从一个发件人到共享媒介。这被称为媒体访问控制。必须做出安排以适应碰撞或者争论两方分别同时发送或希望传输。[39]
序列控制
如果将长的斑点分为零件,然后单独发送在网络上,则可能会丢失或延迟,或者在某些类型的网络上,将不同的路线带到其目的地。结果,零件可能会出现。重新启动可能会导致重复的作品。通过在发件人处用序列信息标记零件,接收器可以确定丢失或重复的内容,要求进行必要的重传和重新组装原始消息。[40]
流量控制
当发件人的传输速度比接收器或中间网络设备可以处理传输时,需要流量控制。可以通过从接收器到发件人的消息传递来实现流量控制。[41]
排队
交流流程或状态机器采用队列(或“缓冲区”)(通常是FIFO队列)来处理已发送的订单中的消息,有时可能有多个队列具有不同的优先级。

协议设计

系统工程已应用原理来创建一组通用的网络协议设计原理。复杂协议的设计通常涉及分解为更简单,合作的协议。这样的一组合作协议有时称为协议族或协议套件,[24]在概念框架内。

通信系统同时运行。一个重要方面并发编程是在适当测序中接收和传输通信消息的软件的同步。传统上,并发编程是操作系统理论文本中的一个主题。[42]正式验证似乎是必不可少的,因为并发程序对于它们所包含的隐藏和复杂的错误臭名昭著。[43]对并发和沟通研究的数学方法称为传达顺序过程(CSP)。[44]并发也可以使用有限状态机, 如梅莉摩尔机器。Mealy和Moore机器在数字电子系统中用作设计工具,该工具以电信或电子设备的硬件形式遇到的形式。[45]

文献在计算机通信和编程之间提供了许多类比。类比,协议的转移机制与中央处理单元(CPU)相当。该框架引入了规则,使程序员可以彼此独立地设计合作协议。

分层

Figure 2. Protocols in relation to the Internet layering scheme.
图2. TCP/IP模型或Internet层次方案及其与某些常见协议的关系。

在现代协议设计中,协议将分层以形成协议堆栈。分层是一个设计原理,将协议设计任务分为较小的步骤,每个步骤都完成了特定的部分,仅以少数定义的方式与协议的其他部分进行交互。分层允许设计和测试协议的各个部分,而无需组合爆炸案例,保持每个设计相对简单。

正在使用的通信协议互联网旨在在各种和复杂的环境中运作。互联网协议的设计是为了简单性和模块化,并适合于定义的功能层的粗层次结构互联网协议套件.[46]前两个合作协议,传输控制协议(TCP)和互联网协议(IP)是由原始传输控制程序(一种单片通信协议)分解为这个分层通信套件产生的。

OSI模型是基于网络的经验而在国际上开发的,该网络早于互联网作为通用通信的参考模型,并具有更严格的协议互动规则和严格的分层规则。

通常,应用程序软件建立在强大的数据传输层上。该传输层的基础是数据报交付和路由机制通常是无连接互联网上。跨网络的数据包继电器发生在另一层,仅涉及网络链接技术,这些技术通常是特定于某些物理层技术的,例如以太网。分层提供了在需要时交换技术的机会,例如,协议通常被堆叠在一个隧道安排以适应不同网络的连接。例如,IP可能会在异步传输模式(ATM)网络。

协议分层

Figure 3. Message flows using a protocol suite.
图3.使用协议套件的消息流。黑色循环显示实际的消息传递循环,红色循环是下层启用的图层之间的有效通信。

协议分层构成了协议设计的基础。[23]它允许将单个复杂的协议分解为更简单的合作协议。[46]协议层每个都解决了不同类别的通信问题。这些层共同构成了分层方案或模型。

计算涉及算法和数据;沟通涉及协议和消息;所以一个类似数据流程图是某种消息流程图。[4]为了可视化协议分层和协议套件,图3中显示了两个系统中和两个系统之间的消息流的图。垂直流(和协议)是系统系统,水平消息流(和协议)在系统之间。消息流由规则和协议指定的数据格式约束。蓝线标志着(水平)协议层的边界。

软件分层

图5:协议和软件分层。实施协议的软件模块由立方体表示。模块之间的信息流由箭头表示。(顶部两个水平)红色箭头是虚拟的。蓝线标记层边界。

软件支持协议具有分层组织,其与协议分层的关系如图5所示。

要在系统A上发送消息,顶层软件模块与其下方的模块交互,并将其移交给要封装的消息。下部模块根据其实施的协议填充标题数据,并与底部模块进行交互,该模块通过通信通道将消息发送到系统B的底部模块B的底部B。以其原始形式传递到系统B的顶部模块。[47]

程序翻译被分为子问题。结果,翻译软件也分层,允许独立设计软件层。在TCP/IP分层中可以看到相同的方法。[48]

应用层下方的模块通常被视为操作系统的一部分。在这些模块之间传递数据要比应用程序和传输层之间的数据便宜得多。应用层和传输层之间的边界称为操作系统边界。[49]

严格的分层

严格遵守分层模型,一种被称为严格分层的实践,并不总是最好的网络方法。[50]严格的分层会对实施的性能产生负面影响。[51]

虽然今天在计算机网络领域中使用协议分层无处不在,但历史上一直受到许多研究人员的批评[52]由于以这种方式抽象协议堆栈可能会导致更高的层以复制较低层的功能,因此,一个主要示例是在每链接和端到端的错误恢复。[53]

设计模式

在设计和实施通信协议中,通常会反复出现问题软件设计模式.[54][55][56][57][58]

正式规格

描述交流语法的流行形式方法是抽象语法符号一(一个ISO标准)和增强的背部 - naur形式(一个IETF标准)。

有限状态机模型用于正式描述协议的可能相互作用。[59][60]并通信有限国家机器[61]

协议开发

为了进行通信,必须选择协议。规则可以通过算法和数据结构表示。硬件和操作系统独立性通过以便携式编程语言表达算法来增强。规范的源独立性提供了更广泛的互操作性。

协议标准通常是通过获得批准或支持来创建的标准组织,启动标准化过程。标准组织的成员同意自愿遵守工作结果。通常,成员控制与协议相关的大型市场份额,在许多情况下,标准是由法律或政府执行的,因为他们被认为可以符合重要的公共利益,因此获得批准对协议非常重要。

对协议标准的需求

可以通过查看发生的情况来显示对协议标准的需求二进制同步通信(BSC)协议由IBM。BSC是用于连接两个单独节点的早期链接级协议。它最初不是打算在多键网络中使用的,但是这样做揭示了该协议的几个缺陷。在没有标准化的情况下,制造商和组织感到自由增强协议,在其网络上创建不兼容的版本。在某些情况下,故意这样做是为了阻止用户使用其他制造商的设备。原始BI-SYNC协议有50多个变体。可以假设,标准至少会阻止其中一些发生。[21]

在某些情况下,协议在不经过标准化过程的情况下获得了市场优势。这样的协议称为事实上的标准。事实上的标准在新兴市场,利基市场或市场中很常见垄断(或者寡头)。他们可以在非常负面的抓地力中保持市场,尤其是在吓跑竞争时。从历史的角度来看,标准化应被视为应对事实上标准的不良影响的措施。存在积极的例外;事实上的标准操作系统像Linux这样的市场上没有这种负面影响,因为这些消息来源以公开的方式发布和维护,从而邀请竞争。

标准组织

某些标准组织与通信协议相关的是国际标准化组织(ISO),国际电信联盟(ITU),电气和电子工程师研究所(IEEE),互联网工程工作队(IETF)。IETF维护Internet上使用的协议。IEEE控制着电子行业的商业和消费设备中的许多软件和硬件协议。ITU是一个电信工程师设计的伞组织公共交换电话网络(PSTN),以及许多收音机通信系统。为了海洋电子NMEA使用标准。这万维网联盟(W3C)生成Web技术的协议和标准。

国际标准组织应该比具有国家或商业自身利益的本地组织更公正。标准组织还为未来标准进行研究和发展。实际上,标准组织提到,彼此紧密合作。[62]

多个标准机构可能参与协议的制定。如果它们不协调,则结果可能是多个协议的多个,不兼容的定义,或对消息的多个不兼容的解释;一个定义中的重要不变性(例如时间的时间值是单调减少防止稳定路由循环)可能不会在另一个人中受到尊重。[63]

标准化过程

在ISO中,标准化过程始于小组委员会工作组的调试。工作组向有关方面(包括其他标准机构)发出工作草案和讨论文件,以引起讨论和评论。这将产生很多问题,讨论很多,并且通常有些分歧。这些评论已考虑到提案草案是由工作组生产的。反馈后,修改和妥协提案达到了国际标准草案,最终国际标准。定期重新发布国际标准,以应对缺陷并反映对该主题的不断变化的看法。[64]

OSI标准化

从中学到的教训Arpanet,Internet的前身是协议需要一个框架才能操作。因此,重要的是开发适合的通用,防止未来的框架结构化协议(例如分层协议)及其标准化。这将防止具有重叠功能的协议标准,并可以清楚地定义在不同级别(层)下协议的责任。[65]这引起了开放系统互连模型(OSI模型),该模型用作设计标准协议和服务的框架,符合各种层规范。[66]

在OSI模型中,假定通信系统通过提供基本传输机制的基本物理介质连接。上方的层被编号。每个层都使用紧接其下方的层的服务为其上方的图层提供服务。顶层为应用程序过程提供服务。这些图层通过接口相互通信,称为服务访问点。每个系统的相应层被调用同行实体。为了进行交流,给定层的两个对等实体使用特定于该层的协议,该协议是通过使用以下层的服务实现的。[67]对于每一层,标准标准有两种类型:协议标准定义给定层的相关实体如何通信,以及定义给定层如何与上方层通信的服务标准。

在OSI模型中,层及其功能是(从最高到最低层):

  • 应用层可以为申请流程提供以下服务:识别预期的沟通合作伙伴,建立必要的授权,确定合作伙伴的可用性和认证,就通信的隐私机制协议,错误恢复的责任协议和程序协议为了确保数据完整性,合作应用程序过程之间的同步,识别语法上的任何约束(例如字符集和数据结构),确定成本和可接受的服务质量,选择对话纪律,包括所需的登录和注销过程。[68]
  • 演示层可以为应用程序层提供以下服务:建立会话的请求,数据传输,在应用程序层之间使用的语法协商,任何必要的语法转换,格式化和特殊目的转换(例如,数据压缩和数据压缩和特殊目的转换)数据加密)。[69]
  • 会话层可以为演示层提供以下服务:会话连接的建立和发布,正常和加快数据交换,隔离服务,允许发送演示实体指示接收会话实体在未经许可,交互,交互,交互,交互,不将数据发布到其演示实体上管理实体可以控制执行某些控制功能的转弯,重新同步会话连接,报告对演示实体的不可撤销异常。[70]
  • 运输层根据所选服务质量的要求,以具有成本效益的方式提供可靠和透明的数据传输。它可能支持连接到一个网络连接的多个传输连接或将一个传输连接分为几个网络连接的多路复用。[71]
  • 网络层运输对等实体之间的网络路径的设置,维护和释放。当需要继电器时,该层提供路由和继电器功能。在建立连接时,网络和运输实体之间的服务质量是协商的。该层也负责网络拥塞控制。[72]
  • 数据链路层是否设置,维护和发布数据链接连接。检测到物理层中发生的错误并可以纠正。错误报告给网络层。数据链路单位(包括流控制)的交换由该层定义。[73]
  • 物理层描述了诸如物理连接的电气特性,所使用的传输技术以及物理连接的设置,维护和清除等细节。[74]

TCP/IP分层方案,假设一个无连接的网络,RM/OSI假设了一个面向连接的网络。[75]面向连接的网络更适合广域网络,无连接网络更适合于局域网。面向连接的通信需要某种形式的会话和(虚拟)电路,因此(在缺乏TCP/IP模型中)会话层。ISO的组成成员主要与大区域网络有关,因此首先在RM/OSI的附录中首先提到了集中在面向连接的网络和无连接网络上的RM/OSI的开发。[76][77]后来纳入RM/OSI的更新中。[78]

当时,[什么时候?]IETF不得不应对这一事实,即Internet需要的协议根本不存在。结果,IETF基于“粗糙共识和运行代码”开发了自己的标准化过程。[79]标准化过程由RFC 2026.

如今,IETF已成为Internet上使用协议的标准组织。RM/OSI已将其模型扩展到包括无连接服务的模型,因此,TCP和IP都可以发展为国际标准。

骨化

协议骨化是失去灵活性,可扩展性和可发展性网络协议。这主要是由于中间箱对协议的电线图像敏感,并且可以中断或干扰有效的消息,但中间框无法正确识别。[80]这是对端到端原理.[81]次要原因包括协议的端点实现中的僵化。[82]

骨化是一个主要问题互联网协议设计和部署,因为它可以防止新的协议或扩展程序在Internet上部署,或者对新协议的设计进行限制;新协议可能必须是封装用已经部署的协议或模仿另一个协议的电线图像。[83]由于骨化,传输控制协议(TCP)和用户数据报协议(UDP)是唯一的实际选择运输协议在网上,[84]TCP本身已经大大渗透,使协议的扩展或修改变得困难。[85]

推荐的预防骨化方法包括加密协议元数据,[86]并确保行使延长点并尽可能充分地表现出电线图像变异性;[87]纠正现有的骨化需要协议参与者的协调。[88]quic是第一个IETF运输协议是具有故意抗化学特性的设计。[89]

分类学

协议的分类方案通常集中在使用和功能领域。作为使用域的一个例子,面向连接的协议无连接协议分别用于以连接为导向的网络和无连接网络。功能的一个示例是隧道协议,用于将数据包封装在高级协议中,以便可以使用高级协议在传输系统上传递数据包。

一个分层方案结合使用功能和使用域。主要的分层方案是由IETF和ISO开发的。尽管事实是,分层方案的基本假设足以区分两者,但通过将共同协议与两个方案的层次相关联两者进行比较是一种普遍做法。[90]IETF的分层方案称为互联网分层或者TCP/IP分层。 ISO的分层方案称为OSI模型或者ISO分层.

在网络设备配置中,通常会提出一个学期的区别:该术语协议严格指的是运输层,该术语服务指的是利用一个协议协议用于运输。在TCP和UDP的常见情况下,服务以端口号区分。符合这些端口号是自愿的,因此在内容检查系统中服务严格指端口号,该术语应用通常用于参考通过检查签名确定的协议。

也可以看看

笔记

  1. ^未能获得确认表明原始传输或确认已丢失。发件人没有能力区分这些案例,因此,为了确保收到所有数据,必须对原始传输丢失的保守假设。

参考

  1. ^美国7529565,Hilpisch,Robert E。;Duchscher,Rob&Seel,Mark等人,“无线通信协议”,于2009-05-05出版,分配给Starkey Laboratories Inc.Oticon AS 
  2. ^协议百科全书大不列颠,检索9月24日2012
  3. ^一个bComer 2000,Sect。11.2-需要多个协议的需求,p。177,“他们(协议)是要交流哪种编程语言来计算”
  4. ^一个bcComer 2000,Sect。1.3-互联网服务,p。3,“协议是为了交流什么算法来计算”
  5. ^诺顿,约翰(2015年9月24日)。未来的简短历史。猎户座。ISBN 978-1-4746-0277-8.
  6. ^坎贝尔·凯利(Cambell-Kelly),马丁(1987)。“国家物理实验室(1965-1975)的数据通信””.计算史的年鉴.9(3/4):221–247。doi10.1109/MAHC.1987.10023.S2CID 8172150.
  7. ^接口消息处理器:主机互连和IMP的规格(PDF)(报告)。Bolt Beranek和Newman(BBN)。报告编号1822。
  8. ^书籍,高清。UGC -NET/JRF/SET PTP和指南教学与研究能力:UGC -NET by HD。高清书籍。
  9. ^“ NCP - 网络控制程序”.生活互联网.
  10. ^Cerf,V。; Kahn,R。(1974)。“数据包网络间断协议”(PDF).IEEE交流交易.22(5):637–648。doi10.1109/tcom.1974.1092259.ISSN 1558-0857.作者希望感谢许多同事在对国际网络协议的早期讨论中的有益评论,尤其是R. Metcalfe,R。Scantlebury,D。Walden和H. Zimmerman;D. Davies和L. Pouzin对分裂和会计问题进行了建设性评论;和S. Crocker评论了协会的创造和破坏。
  11. ^McKenzie,Alexander(2011)。“ INWG和Internet的概念:目击者帐户”。IEEE计算历史.33(1):66–71。doi10.1109/mahc.2011.9.ISSN 1934-1547.S2CID 206443072.
  12. ^Schwartz,Mischa(2010)。“ X.25虚拟电路 - 法国的TransPac-前互联网数据网络[通信历史]”。IEEE通讯杂志.48(11):40–46。doi10.1109/MCOM.2010.5621965.ISSN 1558-1896.S2CID 23639680.
  13. ^Rybczynski,Tony(2009)。“数据包切换的商业化(1975-1985):加拿大的观点[通信历史]”。IEEE通讯杂志.47(12):26–31。doi10.1109/MCOM.2009.5350364.ISSN 1558-1896.S2CID 23243636.
  14. ^欧洲研究网络的“隐藏”史前。特拉福德出版。 p。 354。ISBN 978-1-4669-3935-6.
  15. ^“ TCP/IP Internet协议”.生活互联网.
  16. ^安德鲁·罗素(Andrew L. Russell)(2013年7月30日)。“ OSI:不是互联网”.IEEE光谱。卷。 50,不。 8。
  17. ^罗素,安德鲁·L。“粗略的共识和运行代码”以及互联网标准战争”(PDF)。IEEE计算史。
  18. ^“标准战”(PDF)。 2006。
  19. ^Ben -Ari 1982,第2章 - 并发编程抽象,第2页。18-19指出。
  20. ^Ben -Ari 1982,第2.7节 - 摘要,p。27,总结了并发的编程抽象。
  21. ^一个bMarsden 1986,第6.1节 - 为什么需要标准?64-65,使用BSC作为示例来表明对标准协议和标准框架的需求。
  22. ^Comer 2000,Sect。11.2-需要多个协议的需求,p。177,通过在计算机通信和编程语言之间绘制类比来解释这一点。
  23. ^一个b教派。11.10-分层的缺点,p。192,指出:分层构成了协议设计的基础。
  24. ^一个bComer 2000,Sect。11.2-需要多个协议的需求,p。177,同样。
  25. ^Comer 2000,Sect。11.3-协议软件的概念层,p。178,“每一层负责处理问题的一部分。”
  26. ^Comer 2000,Sect。11.11-多路复用和反复运动背后的基本思想,p。192,同样。
  27. ^“数据通信 - 概述| ScienceDirect主题”.www.sciencedirect.com。检索5月31日2022.
  28. ^基尔奇,奥拉夫(2002年1月16日)。“基于文本的协议”。存档原本的2010年5月30日。检索10月21日2014.
  29. ^基尔奇,奥拉夫(2002年1月16日)。“二进制表示协议”。存档原本的2006年3月5日。检索5月4日2006.
  30. ^基尔奇,奥拉夫(2002年1月16日)。“二进制表示协议”。存档原本的2006年3月5日。检索5月4日2006.
  31. ^“欢迎来到UML网站!”.uml.org。检索1月15日2017.
  32. ^Marsden 1986,第3章 - 基本协议概念和问题领域,p。26-42解释了以下许多内容。
  33. ^Comer 2000,Sect。7.7.4-数据报尺寸,网络MTU和碎片,p。104,解释了碎裂和对碎片标头的影响。
  34. ^Comer 2000,第4章 - 类互联网地址,第2页。64-67; 71。
  35. ^Marsden 1986,第14.3节 - 分层概念和一般定义,第1页。187,解释地址映射。
  36. ^Marsden 1986,第3.2节 - 检测和传输错误,第1页。27,解释了向后误差校正的优势。
  37. ^Marsden 1986,第3.3节 - 致谢,第1页。28-33解释了正面确认的优势,并将数据报协议作为例外。
  38. ^Marsden 1986,第3.4节 - 信息丢失 - 超时和检索,第1页。33-34。
  39. ^Marsden 1986,第3.5节 - 信息流的方向,p。34-35,解释了主人/奴隶和获得控制的谈判。
  40. ^Marsden 1986,第3.6节 - 序列控制,p。35-36解释了数据包如何丢失以及测序如何解决此问题。
  41. ^Marsden 1986,第3.7节 - 流量控制,p。36-38。
  42. ^本 - 阿里(Ben-Ari)1982年,在他的序言中,p。 xiii。
  43. ^本 - 阿里(Ben-Ari)1982年,在他的序言中,p。 xiv。
  44. ^Hoare 1985,第4章 - 沟通,p。133,处理沟通。
  45. ^S. Srinivasan,数字电路和系统,NPTEL课程,存档原本的2009年12月27日
  46. ^一个bComer 2000,Sect。11.2-需要多个协议的需求,p。177,以层为单位引入分解。
  47. ^Comer 2000,Sect。11.3-协议软件的概念层,p。179,前两段描述了通过连续的层发送消息的发送。
  48. ^Comer 2000,Sect。11.2-需要多个协议的需求,p。178,解释相似性协议软件和编译器,汇编程序,链接器,加载程序。
  49. ^Comer 2000,Sect。11.9.1-操作系统边界,p。192,描述了操作系统边界。
  50. ^IETF 1989,第1.3.1节 - 组织,第1页。第15段:第二段:许多设计选择涉及严格分层的创意“破坏”。
  51. ^Comer 2000,Sect。11.10-分层的缺点,p。192,解释了为什么“严格的分层可能非常低效”给出优化的示例。
  52. ^Wakeman,我(1992年1月)。“分层被认为有害”。IEEE网络:20–24。
  53. ^詹姆斯·库罗斯(Kurose);罗斯,基思(2005)。计算机网络:一种自上而下的方法。皮尔逊。
  54. ^拉斯卡诺(Lascano),豪尔赫·爱迪生(Jorge Edison);克莱德,斯蒂芬;拉扎,阿里。“通信协议设计模式(COMMDP)-CommDP”。存档原本的2017年3月18日。检索3月17日2017.
  55. ^Lascano,J。E。;克莱德,S。(2016)。应用程序级通信协议的模式语言。ICSEA 2016,第十一国际软件工程会议。pp。22–30。
  56. ^Daigneau,R。(2011)。服务设计模式:用于肥皂/WSDL和RESTFUL Web服务的基本设计解决方案(1 ed。)。新泽西州上萨德尔河:Addison-Wesley Professional。
  57. ^Fowler,M。(2002)。企业应用程序体系结构的模式(1 ed。)。波士顿:Addison-Wesley专业人士。ISBN 0-321-12742-0.
  58. ^[1] f。Buschmann,K。Henney和D. C. Schmidt,面向模式的软件体系结构卷4:用于分布式计算的模式语言,第4卷。英格兰奇切斯特;纽约:威利,2007年。
  59. ^Bochmann,G。(1978)。“通信协议的有限状态描述”。计算机网络.2(4–5):361–372。doi10.1016/0376-5075(78)90015-6.
  60. ^Comer 2000,Internetworking术语和缩写的词汇表,第1页。704,术语协议。
  61. ^品牌,丹尼尔;Zafiropulo,Pitro(1983)。“传达有限状态机器”。ACM杂志.30(2):323。doi10.1145/322374.322380.S2CID 11607967.
  62. ^Marsden 1986,第6.3节 - 标准化的优势,p。66-67表示相同。
  63. ^布莱恩特和莫罗2009,p。 4。
  64. ^Marsden 1986,第6.4节 - 标准化的一些问题,p。67,遵循HDLC来说明该过程。
  65. ^Marsden 1986,第6.1节 - 为什么需要标准?65,从Arpanet中学到的教训。
  66. ^Marsden 1986,第14.1节 - 简介,p。181,介绍OSI。
  67. ^Marsden 1986,第14.3节 - 分层概念和一般定义,第1页。183-185,解释了术语。
  68. ^Marsden 1986,第14.4节 - 申请层,p。188,解释了这一点。
  69. ^Marsden 1986,第14.5节 - 演示层,第1页。189解释了这一点。
  70. ^Marsden 1986,第14.6节 - 会话层,第1页。190,解释了这一点。
  71. ^Marsden 1986,第14.7节 - 运输层,p。191解释了这一点。
  72. ^Marsden 1986,第14.8节 - 网络层,p。192,解释了这一点。
  73. ^Marsden 1986,第14.9节 - 数据链路层,第1页。194,解释了这一点。
  74. ^Marsden 1986,第14.10节 - 物理层,p。195,解释了这一点。
  75. ^“ ISO 7498:1984 - 信息处理系统 - 开放系统互连 - 基本参考模型”:5。这种开放系统互连的基本参考模型基于以下假设:数据传输需要连接。{{}}引用期刊需要|journal=帮助
  76. ^“ ISO 7498:1984/ADD 1:1987 - 信息处理系统 - 开放系统互连 - 基本参考模型 - 附录1”.{{}}引用期刊需要|journal=帮助
  77. ^Marsden 1986,第14.11节 - 无连接模式和RM/OSI,p。195,提到了这一点。
  78. ^“ ISO/IEC 7498-1:1994 - 信息技术 - 开放系统互连 - 基本参考模型:基本模型”.{{}}引用期刊需要|journal=帮助
  79. ^Comer 2000,第1.9节 - 互联网协议和标准化,第1页。12,解释了为什么IETF不使用现有协议。
  80. ^Papastergiou等。2017,p。 619。
  81. ^Papastergiou等。2017,p。 620。
  82. ^Papastergiou等。2017,p。 620-621。
  83. ^Papastergiou等。2017,p。623-4。
  84. ^McQuistin,Perkins&Fayed 2016,p。 1。
  85. ^Thomson&Pauly 2021,A.5。TCP。
  86. ^Hardie 2019,p。 7-8。
  87. ^Thomson&Pauly 2021,3.主动使用。
  88. ^Thomson&Pauly 2021,3.5。恢复主动使用。
  89. ^Trammell&Kuehlewind 2019,p。 2。
  90. ^Comer 2000,Sect。11.5.1- TCP/IP 5层参考模型,p。183,同样。

参考书目

外部链接