《分布式系统:概念与设计》一3.4.6 TCP和UDP

3.4.6 TCP和UDP

TCP和UDP以一种对应用程序有用的形式提供了互联网的通信能力。应用开发者可能需要其他类型的传输服务,如提供实时保证或安全性,但这些服务需要比IPv4更多的网络层支持。TCP和UDP忠实地反映了IPv4提供的应用编程级的通信设施。IPv6必然会继续支持TCP和UDP,但它包含了通过TCP和UDP无法方便访问的功能。当IPv6的部署已足够广,从而证明了那些功能的开发是必要的,那么可引入其他类型的传输服务来挖掘这些功能。
第4章从分布式程序开发者的角度描述了TCP和UDP的特征。这里我们仅描述它们给IP加入的功能。
端口的使用 第一个要注意的特征是,尽管IP协议支持两台计算机(由IP地址标识)之间的通信,但作为传输层的协议,TCP和UDP必须提供进程间的通信。这通过使用端口来完成。端口号用于将消息寻址到特定计算机上的进程,它仅在此计算机上有效。端口号是一个16位整数。一旦一个IP数据包被发送到目的主机,TCP或UDP层的软件就通过该主机的特定端口将它分派到一个进程中。
UDP的特点 UDP基本上是IP在传输层的一个复制。UDP数据报被封装在一个IP数据包中,它具有一个包含了源端口号和目的端口号的短的头部122(相应的主机地址位于IP头部)、一个长度域和一个校验和。UDP不提供传输保证。我们已经注意到,IP数据包可能会由于拥塞或网络错误被丢弃。除了可选的校验和外,UDP未增加任何额外的可靠性机制。如果校验和域非零,则接收主机根据数据包内容计算出一个校验值,与接收到的校验和相比,若两者不匹配则数据包被丢弃。
因此,依赖IP传输,UDP提供了一种在IP上附加最小开销或传输延迟、在进程对(或者在数据报地址是IP组播地址情况下,从一个进程发送到多个进程)之间传送最长达64KB的消息的方法。它不需要任何创建开销以及管理用的确认消息,但它只适应于不需要可靠传送单个或多个消息的服务和应用。
TCP的特点 TCP提供了一个更复杂的传输服务。它通过基于流的编程抽象,提供了任意长度字节串的可靠传输。可靠性保证使得发送进程递交给TCP软件的数据传送到接收进程时,其顺序是相同的。TCP是面向连接的,在数据被传送前,发送进程和接收进程必须合作,建立一个双向的通信通道。连接只是一个执行可靠数据传输的端到端的协议,中间结点(如路由器)并没有关于TCP连接的知识,一个TCP传输中传输数据的所有IP数据包并不一定使用相同的路由。
TCP层包含额外机制(在IP之上实现)以保证可靠性。这些机制包括:
排序:TCP发送进程将流分割成数据片断序列,然后将之作为IP数据包传送。每个TCP片断均有一个序号。它在该片断的第一个字节给出流中的字节数。接收程序在将数据放入接收进程的输入流前,使用序号对收到的片断排序。只有所有编号较小的片断都已收到并且放入流中后,编号大的片断才能被放入流中,因此,未按顺序到达的片断必须保存在一个缓冲区中,直到它前面的片断到达为止。
流控制:发送方管理不能使接收方或者中间结点过载,这通过片断确认机制完成。当接收方成功地接收了一个片断后,它会记录该片断的序号。接收方会不时地向发送方发送确认信息,给出输入流中片断的最大序号以及窗口大小。如果有反向的数据流,则确认信息被包含在正常的片断中,否则被放在确认数据片中。确认片断中的窗口大小域指定了在下一个确认之前允许发送方传送的数据量。
当一个TCP连接用于与一个远程交互程序通信时,会猝发产生数据,但产生的数据量可能很小。例如,利用键盘输入可能每秒仅输入几个字符,123但字符的显示必须足够快,以便用户看到自己的打字结果。这通过在本地缓冲区中设置一个超时值T(一般是0.5s)来实现。使用这个简单的方案,只要数据片断已在输出缓冲区中停留T秒,或是缓冲区的内容到达MTU限制,就将片断发送到接收方。该缓冲区方案不会使交互式延迟再增加T秒以上。Nagle描述了另一个产生较少流量的算法,它对一些交互式应用更有效[Nagle 1984]。Nagle的算法已用于许多TCP实现中。大多数TCP实现是可以配置的,允许应用程序修改T值,或是在几个缓冲区算法中选择其一。
由于无线网络的不可靠性,会导致数据包丢失频繁发生,上面的流控制机制对于无线通信不是特别适用。这是广域移动通信使用的WAP协议族采纳另一种传输机制的原因。但对无线网络而言,实现TCP也是很重要的,为此提出了TCP机制的修改提议[Balakrishnan et al.1995,1996]。其思想是在无线基站(有线网络和无线网络之间的网关)实现一个TCP支持组件。该组件探听进出无线网络的TCP片断,重传任何未被移动接收方快速确认的外发片断,并且在注意到序列号有间隔时,请求重传接收数据。
重传:发送方记录它发送的片断的序号。当它接收到一个确认消息时,它知道片断被成功接收,并将之从外发缓冲区中清除。如果在一个指定超时时间内,片断并没有得到确认,则发送方重发该片断。
缓冲:接收方的接收缓冲区用于平衡发送方和接收方之间的流量。如果接收进程发出receive操作的速度比发送进程发出send操作的速度慢很多,那么缓冲区中的数据量就会增加。通常情况下,数据在缓冲区满之前被取出,但最终缓冲区会溢出,此时到达的片断不被记录就直接被丢弃了。因此,接收方不会给出相应的确认,而发送方将被迫重新发送片断。
校验和:每个片断包含一个对头部和片断中数据的校验和,如果接收到的片断和校验和不匹配,则片断被丢弃。

时间: 2025-01-31 01:42:01

《分布式系统:概念与设计》一3.4.6 TCP和UDP的相关文章

《分布式系统:概念与设计》一第3节 练习

前 言 在互联网和Web持续发展并且对我们社会的每个方面都产生影响的时候,这本教材的第5版问世了.本书的介绍性章节提到互联网和Web对诸多(如金融.商业.艺术.娱乐等)应用领域的影响以及对信息社会的普遍影响.它还强调了诸如Web搜索和多人在线游戏等应用领域中的需求.从分布式系统的角度出发,这些开发在应用的范围.多个现代系统所支持的工作负载和系统大小等方面正在对底层系统架构提出实质性的新需求.重要的趋势包括网络技术上不断增加的多样性和普遍性(包括不断增加的无线网络的重要性).移动和无处不在计算元素

《分布式系统:概念与设计》一1.2 分布式系统的例子

1.2 分布式系统的例子 本节给出能激发读者学习积极性的当代分布式系统的例子,用于说明分布式系统所扮演的无处不在的角色和相关应用的多样性. 如1.1节所提及的那样,网络无处不在,成为我们现在认为理所当然的日常服务(互联网和相关的万维网.Web搜索.在线游戏.电子邮件.社会网络.电子商务,等等)的基础.为了进一步说明这一点,可参考图1-1,它描述了一系列所选的关键商务或社会应用部门,强调了相关的分布式系统技术已公认或新出现的应用. 正如所看到的,分布式系统包含近些年许多最重要的技术发展,因此理解底

《分布式系统:概念与设计》一3.4 互联网协议

3.4 互联网协议 本节将介绍TCP/IP协议组的主要特点,并讨论在分布式系统中使用它们的好处及局限性.互联网的研究始于20世纪70年代早期的ARPANET--第一个大规模计算机网络的开发[Leiner et al.1997],随着近20年的研究和开发,互联网渐渐成形.这项研究的一个重要部分是开发TCP/IP协议组,TCP指传输控制协议,IP是指网际协议.TCP/IP和互联网应用协议在美国研究网络中的广泛采用以及最近在许多国家的商业网络中的广泛使用,使得全国的网络可以集成为一个互连网络,这一网络

《PADS 9.5电路设计与仿真从入门到精通》——第一章 绪论 1.1 PCB的基本概念及设计工具

第一章 绪论 PADS 9.5电路设计与仿真从入门到精通 本章主要介绍PADS的基本概念及特点,包括PCB设计的一般原则.基本步骤.标准规范等.着重介绍了美国Mentor Graphics公司的PCB设计软件:PADS 9.5,包括了PADS 9.5的发展过程以及它的新特点.PADS 9.5是一款非常优秀的PCB设计软件,它具有完整强大的PCB绘制工具,界面和操作十分简洁,希望用户好好学习本书,以便更加方便地使用PADS 9.5软件. 1.1 PCB的基本概念及设计工具 PADS 9.5电路设计

《分布式系统:概念与设计》一练习

练习 1.1 列出能被共享的五种类型的硬件资源和五种类型的数据或软件资源,并举出它们在实际的分布式系统中发生共享的例子. 1.2 在不参考外部时间源的情况下,通过本地网络连接的两台计算机的时钟如何同步?什么因素限制了你描述的过程的准确性?由互联网连接的大量的计算机的时钟是如何同步的?讨论该过程的准确性. 1.3 考虑1.2.2节讨论的大型多人在线游戏的实现策略.采用单一服务器方法表示多个玩家游戏状态的好处是什么?这存在什么问题以及如何解决? 1.4 一个用户随身携带可以无线连网的PDA,来到一个

《分布式系统:概念与设计》一2.3.1 体系结构元素

2.3.1 体系结构元素 为了理解一个分布式系统的基础构建块,有必要考虑下面四个关键问题: 在分布式系统中进行通信的实体是什么? 它们如何通信,特别是使用什么通信范型? 它们在整个体系结构中扮演什么(可能改变的)角色,承担什么责任? 它们怎样被映射到物理分布式基础设施上(它们被放置在哪里)? 通信实体 上述前两个问题是理解分布式系统的关键:什么是通信和这些实体如何相互通信为分布式系统开发者定义了一个丰富的设计空间.它对从面向系统和面向问题的角度解决第一个问题是有帮助的. 从系统的观点,回答通常是

《分布式系统:概念与设计》一2.4.1 交互模型

2.4.1 交互模型 2.3节对系统体系结构的讨论表明分布式系统由多个以复杂方式进行交互的进程组成.例如: 多个服务器进程能相互协作提供服务,前面提到的例子有域名服务(它将数据分区并复制到互联网中的服务器上)和Sun的网络信息服务(它在局域网的几个服务器上保存口令文件的复制版本). 对等进程能相互协作获得一个共同的目标.例如,一个语音会议系统,它以类似的方式分布音频数据流,但它有严格的实时限制. 大多数程序员非常熟悉算法的概念--采取一系列步骤以执行期望的计算.简单的程序由算法控制,算法中的每一

《分布式系统:概念与设计》一3.1 简介

3.1 简介 要构建分布式系统所使用的网络,首先需要众多的传输介质,包括电线.电缆.光纤以及无线频道:然后需要一些硬件设备,包括路由器.交换机.网桥.集线器.转发器和网络接口:最后还需要软件组件,包括协议栈.通信处理器和驱动器.上述因素都会影响分布式系统和应用程序所能达到的最终功能和性能.我们把为分布式系统提供通信设施的软硬件组件称为通信子系统.计算机和其他使用网络进行通信的设备称为主机.结点则指的是在网络上的所有计算机或者交换设备.互联网是一个通信子系统,它为所有接入的主机提供通信服务.互联网

《分布式系统:概念与设计》一1.1 简介

1.1 简介 计算机网络无处不在.互联网也是其中之一,因为它是由许多种网络组成的.移动电话网.协作网.企业网.校园网.家庭网.车内网,所有这些,既可单独使用,又可相互结合,它们具有相同的本质特征,这些特征使得它们可以放在分布式系统的主题下来研究.本书旨在解释影响系统设计者和实现者的连网的计算机的特征,给出已有的可帮助完成设计和实现分布式系统任务的主要概念和技术.我们把分布式系统定义成一个其硬件或软件组件分布在连网的计算机上,组件之间通过传递消息进行通信和动作协调的系统.这个简单的定义覆盖了所有可

《分布式系统:概念与设计》一第2章 系统模型

第2章 系统模型 本章提供三个重要且互补的解释方法,以便有效地描述和讨论分布式系统的设计:物理模型考虑组成系统的计算机和设备的类型以及它们的互连,不涉及特定的技术细节.体系结构模型是从系统的计算元素执行的计算和通信任务方面来描述系统:这里计算元素或是指单个计算机或是指通过网络互连的计算机集合.客户-服务器和对等模型是分布式系统中的两种最常使用的体系结构模型.基础模型采用抽象的观点描述大多数分布式系统面临的单个问题的解决方案.在分布式系统中没有全局时间,所以不同计算机上的时钟未必给出相同的时间.进