第3章传输层协议UDP和TCP - Read.ppt

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 传输层协议UDP和TCP 3.1 端到端通信和端口号 3.2 用户数据报协议UDP 3.3 传输控制协议TCP 3.4 TCP与UDP的比较 习题 3.1 端到端通信和端口号 3.1.1 端到端通信 在互联网中,任何两台通信的主机之间,从源端到目标端的信道都是由一段一段的点到点通信线路组成的(一个局域网中两台主机通信时只有一段点到点的线路)。如图3-1所示。 由第2章的知识可知,点到点通信是由网络互联层来实现的,网络互联层只屏蔽了不同网络之间的差异,构建了一个逻辑上的通信网络,因此它只解决了数据通信问题。 端到端通信是建立在点到点通信基础之上的,它是比网络互联层通信更高一级的通信方式,完成应用程序(进程)之间的通信。端到端的通信是由传输层来实现的。 3.1.2 传输层端口的概念 为了识别传输层之上不同的网络通信程序(进程),传输层引入了端口的概念。在一台主机上,要进行网络通信的进程首先要向系统提出动态申请,由系统(操作系统内核)返回一个本地惟一的端口号,进程再通过系统调用把自己和这个特定的端口联系在一起,这个过程叫绑定(Binding)。这样,每个要通信的进程都与一个端口号对应,传输层就可以使用其报文头中的端口号,把收到的数据送到不同的应用程序,如图3-2所示。 在TCP/IP协议中,传输层使用的端口号用一个16位的二进制数表示。因此,在传输层如果使用TCP协议进行进程通信,则可用的端口号共有216个。由于UDP也是传输层一个独立于TCP的协议,因此使用UDP协议时也有216个不同的端口。 一些常用服务的TCP和UDP的众所周知端口号见表3-1和表3-2。 256~1023之间的端口号通常都是由Unix系统占用的,以提供一些特定的Unix服务。现在IANA管理1~1023之间所有的端口号。任何TCP/IP实现所提供的服务都使用1~1023之间的端口号。 客户端口号又称为临时端口号(即存在时间很短暂)。这是因为客户端口号是在客户程序要进行通信之前,动态地从系统申请的一个端口号,然后以该端口号为源端口,使用某个众所周知的端口号为目标端口号(如在TCP协议上要进行文件传输时使用21)进行客户端到服务器端的通信。 综上所述,我们知道两台要通信的主机,每一端要使用一个二元地址(IP地址,端口号)才可以完成它们之间的通信。 3.2 用户数据报协议UDP 3.2.1 UDP数据报的封装及其格式 UDP协议在工作时是建立在IP协议之上的,UDP从进程的缓冲区接收进程每一次产生的输出,对每次输出都生成一个UDP数据报,然后把生成的UDP数据报直接封装在IP数据报中进行传输,因此在传输层使用UDP协议时,发送端不需要发送缓冲区,如图3-3所示。 被封装在IP中的UDP数据报通过网络传输到目标主机的IP层后,由目标主机的UDP层根据目标端口号送到接收该数据的相应进程。UDP数据报的格式如图3-4所示。 3.2.2 UDP校验和的计算方法 顾名思义,这个伪头部并不是UDP的真正组成部分,它只是为了UDP在进行差错检查时可以把更多的信息包含进去而人为加上的。伪头部的格式如图3-5所示。 伪头部包含IP头部的一些字段,填充域全填0,目的是使伪头部为16位二进制数的整数倍,这是计算校验和时所需要的。协议字段的值为17(表示为UDP协议,见表2-4),UDP长度为UDP数据报的总长(当然不能包括虚构的伪头部)。 源端在发送UDP数据报时,使用构造的UDP伪头部和UDP数据报计算出校验和(校验和计算方法与IP头部校验和的计算方法相同),然后填入UDP头部。 3.2.3 UDP协议的特点 从UDP协议的数据报格式可以看出,UDP对数据的封装非常简单,主要是增加了端口号与校验和,然后就可以直接通过IP层进行传输了,因此它具有以下特点: (1) UDP是一种无连接、不可靠的数据报传输服务协议。 (2) UDP对数据传输过程中惟一的可靠保证措施是进行差错校验,如果发生差错,则只是简单地抛弃该数据报。 (3) 如果目标端收到的UDP数据报中的目标端口号不能与当前已使用的某端口号匹配,则将该数据报抛弃,并发送目标端口不可达的ICMP差错报文。 (4) UDP协议在设计时的简单性,是为了保证UDP在工作时的高效性和低延时性。因此,在服务质量较高的网络中(如局域网),UDP可以高效地工作。 (5) UDP常用于传输延时小,对可靠性要求不高,有少量数据要进行传输的情况,如DNS(域名服务)、TFTP(简单文件传输)等。 3.3 传输控制协议TCP 3.3.1 TCP报文段格式 TCP报文段(常

文档评论(0)

xx88606 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档