第3章 传输层协议UDP和TCP

上传人:小**** 文档编号:243143873 上传时间:2024-09-16 格式:PPT 页数:46 大小:522.50KB
返回 下载 相关 举报
第3章 传输层协议UDP和TCP_第1页
第1页 / 共46页
第3章 传输层协议UDP和TCP_第2页
第2页 / 共46页
第3章 传输层协议UDP和TCP_第3页
第3页 / 共46页
点击查看更多>>
资源描述
,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第3章 传输层协议,UDP,和,TCP,第,3,章,传输层协议,UDP,和,TCP,3.1 端到端通信和端口号,3.2,用户数据报协议,UDP,3.3,传输控制协议,TCP,3.4,TCP,与,UDP,的比较,习题,3.1 端到端通信和端口号,3.1.1 端到端通信,在互联网中,任何两台通信的主机之间,从源端到目标端的信道都是由一段一段的点到点通信线路组成的(一个局域网中两台主机通信时只有一段点到点的线路)。如图3-1所示。,图3-1 传输层端到端通信,由第2章的知识可知,点到点通信是由网络互联层来实现的,网络互联层只屏蔽了不同网络之间的差异,构建了一个逻辑上的通信网络,因此它只解决了数据通信问题。,端到端通信是建立在点到点通信基础之上的,它是比网络互联层通信更高一级的通信方式,完成应用程序(进程)之间的通信。端到端的通信是由传输层来实现的。,3.1.2 传输层端口的概念,为了识别传输层之上不同的网络通信程序(进程),传输层引入了端口的概念。在一台主机上,要进行网络通信的进程首先要向系统提出动态申请,由系统(操作系统内核)返回一个本地惟一的端口号,进程再通过系统调用把自己和这个特定的端口联系在一起,这个过程叫绑定(,Binding)。,这样,每个要通信的进程都与一个端口号对应,传输层就可以使用其报文头中的端口号,把收到的数据送到不同的应用程序,如图3-2所示。,图3-2 传输层端到端通信,在,TCP/IP,协议中,传输层使用的端口号用一个16位的二进制数表示。因此,在传输层如果使用,TCP,协议进行进程通信,则可用的端口号共有2,16,个。由于,UDP,也是传输层一个独立于,TCP,的协议,因此使用,UDP,协议时也有2,16,个不同的端口。,一些常用服务的,TCP,和,UDP,的众所周知端口号见表3-1和表3-2。,表3-1 常用的众所周知的,TCP,端口号,表3-2 常用的众所周知的,UDP,端口号,2561023之间的端口号通常都是由,Unix,系统占用的,以提供一些特定的,Unix,服务。现在,IANA,管理11023之间所有的端口号。任何,TCP/IP,实现所提供的服务都使用11023之间的端口号。,客户端口号又称为临时端口号(即存在时间很短暂)。这是因为客户端口号是在客户程序要进行通信之前,动态地从系统申请的一个端口号,然后以该端口号为源端口,使用某个众所周知的端口号为目标端口号(如在,TCP,协议上要进行文件传输时使用21)进行客户端到服务器端的通信。,综上所述,我们知道两台要通信的主机,每一端要使用一个二元地址(,IP,地址,端口号)才可以完成它们之间的通信。,3.2,用户数据报协议,UDP,3.2.1,UDP,数据报的封装及其格式,UDP,协议在工作时是建立在,IP,协议之上的,,UDP,从进程的缓冲区接收进程每一次产生的输出,对每次输出都生成一个,UDP,数据报,然后把生成的,UDP,数据报直接封装在,IP,数据报中进行传输,因此在传输层使用,UDP,协议时,发送端不需要发送缓冲区,如图3-3所示。,图3-3,UDP,数据报的封装,被封装在,IP,中的,UDP,数据报通过网络传输到目标主机的,IP,层后,由目标主机的,UDP,层根据目标端口号送到接收该数据的相应进程。,UDP,数据报的格式如图3-4所示。,图3-4,UDP,数据报格式,3.2.2,UDP,校验和的计算方法,顾名思义,这个伪头部并不是,UDP,的真正组成部分,它只是为了,UDP,在进行差错检查时可以把更多的信息包含进去而人为加上的。伪头部的格式如图3-5所示。,图3-5,UDP,伪头部格式,伪头部包含,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,报文段(常称为段)与,UDP,数据报一样也是封装在,IP,中进行传输的,只是,IP,报文的数据区为,TCP,报文段。,TCP,报文段的格式如图3-6所示。,图3-6,TCP,报文段的格式,1,TCP,源端口号,TCP,源端口号长度为16位,用于标识发送方通信进程的端口。目标端在收到,TCP,报文段后,可以用源端口号和源,IP,地址标识报文的返回地址。,2,TCP,目标端口号,TCP,目标端口号长度为16位,用于标识接收方通信进程的端口。源端口号与,IP,头部中的源端,IP,地址,目标端口号与目标端,IP,地址,这4个数就可以惟一确定从源端到目标端的一对,TCP,连接。,3,序列号,序列号长度为32位,用于标识,TCP,发送端向,TCP,接收端发送数据字节流的序号。,4,确认号,确认号长度为32位。,5,头部长度,该字段用4位二进制数表示,TCP,头部的长短,它以32位二进制数为一个计数单位。,TCP,头部长度一般为20个字节,因此通常它的值为5。,6,保留,保留字段长度为6位,该域必须置0,准备为将来定义,TCP,新功能时使用。,7,标志,标志域长度为6位,每1位标志可以打开或关闭一个控制功能,这些控制功能与连接的管理(3.3.2小节讲述)和数据传输控制有关,其内容如下所述:,URG:,紧急指针标志,置1时紧急指针有效。,ACK:,确认号标志,置1时确认号有效。如果,ACK,为0,那么,TCP,头部中包含的确认号字段应被忽略。,PSH:push,操作标志,当置1时表示要对数据进行,push,操作。,RST:,连接复位标志,表示由于主机崩溃或其他原因而出现错误时的连接。,SYN:,同步序列号标志,它用来发起一个连接的建立,也就是说,只有在连接建立的过程中,SYN,才被置1。,FIN:,连接终止标志,当一端发送,FIN,标志置1的报文时,告诉另一端已无数据可发送,即已完成了数据发送任务,但它还可以继续接收数据。,8,窗口大小,窗口大小字段长度为16位,它是接收端的流量控制措施,用来告诉另一端它的数据接收能力。,9,校验和,校验和字段长度为16位,用于进行差错校验。校验和覆盖了整个的,TCP,报文段的头部和数据区。,10,紧急指针,紧急指针字段长度为16位,只有当,URG,标志置1时紧急指针才有效,它的值指向紧急数据最后一个字节的位置(如果把它的值与,TCP,头部中的序列号相加,则表示紧急数据最后一个字节的序号,在有些实现中指向最后一个字节的下一个字节)。,11,选项,选项的长度不固定,通过选项使,TCP,可以提供一些额外的功能。每个选项由选项类型(占1个字节)、该选项的总长度(占1个字节)和选项值组成,如图3-7所示。,图3-7,TCP,选项格式,当前已定义的选项如表,3-3,所示。选项类型字段为,0,和,1,的选项仅各占,1,个字节,其他的选项在选项类型后说明了其总长度。,12,填充,填充字段的长度不定,用于填充以保证,TCP,头部的长度为32位的整数倍,值全为0。,表3-3,TCP,选 项,表略,3.3.2,TCP,连接的建立与关闭,TCP,是一个面向连接的协议,,TCP,协议的高可靠性是通过发送数据前先建立连接,结束数据传输时关闭连接,在数据传输过程中进行超时重发、流量控制和数据确认,对乱序数据进行重排以及前面讲过的校验和等机制来实现的。,TCP,在,IP,之上工作,,IP,本身是一个无连接的协议,在无连接的协议之上要建立连接,对初学者来说,这是一个较难理解的一个问题。,1.,建立连接,TCP,使用“三次握手”(3-,way Handshake),法来建立一条连接。所谓三次握手,就是指在建立一条连接时通信双方要交换三次报文。具体过程如下。,2,关闭连接,由于,TCP,是一个全双工协议,因此在通信过程中两台主机都可以独立地发送数据,完成数据发送的任何一方可以提出关闭连接的请求。关闭连接时,由于在每个传输方向既要发送一个关闭连接的报文段,又要接收对方的确认报文段,因此关闭一个连接要经过4次握手。,连接建立和关闭的过程可以用图3-8表示,该图是通信双方正常工作时的情况。关闭连接时,图中的,u,表示服务器已收到数据的序列号,,v,表示客户机已收到数据的序列号。,图3-8,TCP,连接的建立与关闭,3.3.3,TCP,的流量控制和拥塞控制机制,下面我们来看一个实例,图3-9是主机1和主机2使用,TCP,协议在实际通信时的时序图。,图3-9,TCP,连接的建立与关闭,在图3-9中,主机1连续发送了两个报文段4和5,其长度都为1024个字节,这两个报文段的数据用来填充接收方(主机2)所通知的窗口,由于主机2通知的窗口大小只有2048个字节,这时主机2的缓冲区已经被填满,因此主机1停下来等待一个主机2的确认。,发送端发送数据的过程是如何受到接收方控制的,这可以用图3-10表示。报文段2通知的窗口大小为2048个字节,因此主机1的前两个1024个字节的数据块落入窗口内,如图3-10(,a),所示,窗口内的数据是可以立即发送的数据。图3-10(,b),是图3-9中主机1发送了报文段4和5后的情况,窗口内的数据已发送完毕(用灰色表示),主机1只能等待。,图3-10(,c),是主机2收到前2048个字节发送了确认报文段6窗口右移后的情况,由于报文段6通知的接收方窗口大小只有1024个字节,因此只有一个1024个字节的数据块落入窗口内。图3-10(,d),是主机1对主机2发送了报文段7后的情况,这时窗口内的数据已发送完毕,主机又进入等待状态。图3-9中确认报文段8对收到的前3072个字节进行了确认,但通知的窗口大小为0,如图3-10(,e),所示,这时窗口的左边沿到达右边沿,即窗口的长度变为0,称其为一个0窗口,此时发送方不能再发送任何数据,只能等待。等待一段时间后,由于主机2的应用进程从,TCP,缓冲区中读走了2048个字节的数据,因此由窗口更新报文段9通知的窗口大小为2048个字节,如图3-10(,f),所示,这时主机1又可以发送数据了。,图3-10,TCP,流量控制机制滑动窗口协议,上述流量控制策略中,使用接收方通知的一个窗口大小来控制数据的发送,窗口的起始点为接收方确认号,终止于窗口长度,只有落在窗口内的数据可以发送。,为了解决网络拥塞问题,发送方又引入了另外一个窗口,叫拥塞窗口(,Congestion Window),,拥塞窗口被初始化为1个报文段的长度(即另一端通知的最大报文段长度为,MSS)。,在建立连接时,发送方只发送一个长度为,MSS,的报文段,正常收到确认后,拥塞窗口就增大为2,MSS,,即为原来拥塞窗口长度的两倍,然后发送两个,MSS,长度的报文段。,3.3.4,TCP,的超时重发机制,TCP,协议提供的是可靠的运输层。前面我们已经看到,接收方对收到的所有数据要进行确认,,TCP,的确认是对收到的字节流进行累计确认。发送,TCP,报文段时,头部的“确认号”就指出该端希望接收的下一个字节的序号,其含义是在此之前的所有数据都已经正确收到,请发送从确认号开始的数据。,TCP,的确认方式有两种:一种是利用只有,TCP,头部,而没有数据区的专门确认报文段进行确认;另一种是当通信双方都有数据要传输时,把确认“捎带”在要传输的报文段中进行确认,因此,TCP,的确认报文段和普通数据报文段没有什么区别。,在,TCP,协议层实现超时重发的关键问题是超时重送的策略,即怎样决定超时间隔和如何确定重发的频率。显然使用固定大小的超时间隔有很大的不足之处。,一个好的实现超时重发的方案应该是超时间隔可以随网络的通信状况而自动调整,即超时间隔应具有一定的自适应性。这种动态调整超时间隔的方法与一条连接从发送端发出数据到收到确认所需的往返时间,RTT(Round Trip Time),有关。,具体实现时,可以在每条连接上保持一个叫,RTT,的变量,发送一个,TCP,报文段的同时启动定时器,收到确认后计算出本次的,RTT,值(下面用,M,表示),然后根据下面的公式求出新的,RTT,加权平均值:,计算,RTT:RTT=,RTT+(1,)M,计算重发超时间隔,RTO(Retransmission Time Out):,RTO=RTT,和,都是加权因子,,(0,1),决定本次传输的,TCP,报文段对往返时间,RTT,的影响程度。,比较大时,,RTT,主要由历史数据确定;,比较小时,,RTT,紧跟当时的延迟而变化。,的推荐值为2,也就是说,当等待到2倍的加权平均往返时间后还没有收到确认就重发数据。,取值接近1时,显然超时间隔比较短,它的优点是可以减少等待时间,但可能引起一些不必要的重发;,取值比较大时,可能因等待时间太长而降低了网络的通信效率。,3.4,TCP,与,UDP,的比较,下面对这两个协议进行一下比较,见表3-4。,表3-4,TCP,与,UDP,的比较,习题,1什么是,TCP/IP,协议中的端到端通信?,2端口号在传输层起什么作用?,3试述,UDP,协议的特点。,4,TCP,协议报文段中的主要字段有哪些?,5,TCP,通过哪些措施来保证数据的可靠性传输?,6,TCP,是如何实现连接的建立与关闭、流量控制和超时重发的?,7试述,TCP,和,UDP,的使用场合。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!