可靠性 (计算机网络)

在计算机网络中,可靠的协议是一种通信协议。这种协议由接受方通知发送方数据是否成功接收。可靠性是保证的代名词,是国际电联和ATM论坛使用的术语。

可靠的协议通常会比不可靠的协议产生更多的开销,因此,运行速度较慢且可伸缩性较低。对于单播协议,这通常不是问题,但对于可靠的多播协议,则可能成为问题。

传输控制协议(TCP)是Internet上使用的主要协议,是一种可靠的单播协议。 UDP是一种不可靠的协议,通常用于计算机游戏,流媒体或其他由于速度问题而可能会容忍某些数据丢失的场景。

通常,可靠的单播协议也是面向连接的。例如,TCP是面向连接的,虚电路ID由源IP地址和目标IP地址以及端口号组成。但是,某些不可靠的协议是面向连接的,例如异步传输模式和帧中继。此外,某些无连接协议(例如IEEE 802.11)是可靠的。

历史编辑

在Donald Davies提出的包交换概念的基础上,ARPANET上的第一个通信协议是一种经由1822接口连接主机的可靠的数据包传送机制。[1][2]源主机简单地以正确的包格式排列数据,插入目的主机的地址,然后通过接口将消息发送到其连接的接口消息处理器(IMP)。将消息传递到目的主机后,将确认数据传回源主机。如果网络无法传递消息,则IMP会将错误消息发送回源主机。

同时,CYCLADES和ALOHAnet的开发人员证明,有可能在不提供可靠的数据包传输的情况下构建有效的计算机网络。后来,这个研究被以太网的设计者采纳。

如果网络不能保证数据包的传递,则主机有责任通过检测和重新传输丢失的数据包来提供可靠性。随后在ARPANET上的经验表明,网络本身无法可靠地检测到所有数据包传递失败,这在任何情况下都将错误检测的责任推到了发送主机上。这导致了端到端原则的发展,端到端是Internet的基本设计原则之一。

属性编辑

可靠消息传递是在不可靠的基础结构上传递消息的概念,同时能够对消息的成功传输做出某些保证。[3]例如,如果消息已成功传递,则它最多只能传递一次,或者所有成功传递的消息都以特定顺序到达。

实现编辑

可靠的传输协议能够建立在不可靠的协议之上。一个非常常见的例子是传输控制协议(TCP)。

WS-ReliableMessaging是实现可靠消息传递的一种协议,它处理SOAP消息的可靠传递。[4]

IEEE 802.11尝试为所有流量提供可靠的服务。如果发送方在预定时间段内未收到ACK帧,则发送方将重新发送帧。

参考文献编辑

  1. ^ Gillies, J.; Cailliau, R. How the Web was Born: The Story of the World Wide Web. Oxford University Press. 2000: 23–25 [2021-03-14]. ISBN 0192862073. (原始内容存档于2021-04-14). 
  2. ^ Roberts, Dr. Lawrence G. The Evolution of Packet Switching (PDF). IEEE Invited Paper. November 1978 [September 10, 2017]. (原始内容存档 (PDF)于2018-12-31). In nearly all respects, Davies’ original proposal, developed in late 1965, was similar to the actual networks being built today. 
  3. ^ W3C paper on reliable messaging. [2021-03-14]. (原始内容存档于2021-05-10). 
  4. ^ WS-ReliableMessaging specification (PDF) (PDF). [2021-03-14]. (原始内容存档 (PDF)于2009-05-21).