《第5章运输层.ppt》由会员分享,可在线阅读,更多相关《第5章运输层.ppt(78页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第5章 运输层第第5章章 运输层运输层本章重点与学习目标本章重点与学习目标掌握掌握端口端口的概念与意义;的概念与意义;掌握掌握UDP与与TCP各自的特点与适用范围;各自的特点与适用范围;掌握掌握NAT的工作过程。的工作过程。2021/9/24Computer networks第5章 运输层5.1 案例需求鲁中学院校园网申请的鲁中学院校园网申请的公开公开IP 地址远远不能满足地址远远不能满足需求,故用需求,故用私有私有IP地址。地址。理论上讲,使用理论上讲,使用私有私有IP地址的计算机不能接入因地址的计算机不能接入因特网特网。必须设法让校园网内的计算机全部能上网。必须设法让校园网内的计算机全部能
2、上网。在一些学校的校园网内,访问因特网的速度较快,在一些学校的校园网内,访问因特网的速度较快,可是从校外访问学校网站的速度却很慢。可是从校外访问学校网站的速度却很慢。鲁中学院校园网能否避免这种情况呢?鲁中学院校园网能否避免这种情况呢?2021/9/24Computer networks第5章 运输层5.2 运输层概述运输层概述5.2.1 运输层的任务运输层的任务运输层实体仅存在于计算机中运输层实体仅存在于计算机中,交换机、路由器等网络设备,交换机、路由器等网络设备内没有运输层实体内没有运输层实体.网络层网络层能使数据从能使数据从发送计算机到达接收计算机发送计算机到达接收计算机.运输层运输层起什
3、么作用呢?起什么作用呢?一台计算机中能够一台计算机中能够同时运行多个程序同时运行多个程序,这种,这种运行着的程序称运行着的程序称为进程。为进程。像浏览器、像浏览器、QQ聊天窗口这样的进程,用户直接使用它们,一聊天窗口这样的进程,用户直接使用它们,一般位于应用层,所以叫做应用进程。般位于应用层,所以叫做应用进程。网络通信的网络通信的实际参与者不是某台计算机实际参与者不是某台计算机,而是这台计算机中,而是这台计算机中运行着的运行着的某个应用进程某个应用进程。2021/9/24Computer networks第5章 运输层计算机计算机A中有两个应用进程,分别是进程中有两个应用进程,分别是进程1与进
4、程与进程2,进程,进程1正在与计算机正在与计算机B中的进程中的进程1通信,进程通信,进程2正在与计算机正在与计算机C中的进程中的进程1通信,这样一来,就有通信,这样一来,就有两对实体参与通信两对实体参与通信,可以记为:,可以记为:(计算机(计算机A:进程进程1,计算机,计算机B:进程进程1)(计算机(计算机A:进程进程2,计算机,计算机C:进程进程1)2021/9/24Computer networks第5章 运输层运输层任务-复用复用与分用分用复用复用指发送计算机的运输层实体收集指发送计算机的运输层实体收集多个应用进程多个应用进程的数据的数据,再使用,再使用网络层实体提供的服务网络层实体提供
5、的服务把数据发送把数据发送出去;出去;分用分用指接收计算机的指接收计算机的运输层实体收到网络层实体交运输层实体收到网络层实体交来的数据后,再来的数据后,再正确分配到不同的应用进程中去正确分配到不同的应用进程中去.2021/9/24Computer networks第5章 运输层运输层任务除除复用与分用复用与分用外,运输层还要完成以下两个任务:外,运输层还要完成以下两个任务:(1)当数据在传输过程中出错或者丢失当数据在传输过程中出错或者丢失,要重新传,要重新传输一遍,以保证数据的输一遍,以保证数据的可靠传输可靠传输。网络层协议、数据链路层协议网络层协议、数据链路层协议都都不保证数据的可靠传不保证
6、数据的可靠传输输,可靠传输的任务就落在了运输层身上。,可靠传输的任务就落在了运输层身上。(2)当网络中数据过多时当网络中数据过多时,就会出现拥塞,这时数,就会出现拥塞,这时数据丢失严重,时延急剧增大,要设法降低数据发送速据丢失严重,时延急剧增大,要设法降低数据发送速率,以缓解拥塞,这叫做率,以缓解拥塞,这叫做拥塞控制拥塞控制。2021/9/24Computer networks第5章 运输层5.2.2 运输层的端口运输层为实现运输层为实现复用与分用复用与分用功能,必须能够功能,必须能够区分不同的应用区分不同的应用进程进程,以便正确分配数据。,以便正确分配数据。区分不同应用进程的办法区分不同应用
7、进程的办法:给给每个应用进程设置不同的标每个应用进程设置不同的标识识,这个标识就是,这个标识就是端口(端口(port)号)号。一个端口号由一个端口号由16位二进制数组成,范围是位二进制数组成,范围是02161,即,即065 535。把网络设备上的把网络设备上的物理接口一律叫做接口物理接口一律叫做接口,端口专指运输层端口专指运输层的端口。的端口。IP地址标识了一台计算机地址标识了一台计算机,端口号则标识了计算机中的一端口号则标识了计算机中的一个应用进程个应用进程,IP地址与端口号组合在一起,叫做套接字地址与端口号组合在一起,叫做套接字(socket),),套接字标识了世界范围内的一个应用进程套接
8、字标识了世界范围内的一个应用进程。2021/9/24Computer networks第5章 运输层IP地址与端口号地址与端口号间通常用间通常用冒号冒号隔开,如隔开,如210.44.176.198:80。一对套接字标识了通信的两个应用进程,例如,计算机一对套接字标识了通信的两个应用进程,例如,计算机222.206.70.80中的中的2 000应用进程与计算机应用进程与计算机210.44.176.198中的中的80应用进程通信,通常记为:应用进程通信,通常记为:(222.206.70.80:2 000,210.44.176.198:80)为区分不同的应用进程,为区分不同的应用进程,同一台计算机中
9、的端口号不能相同一台计算机中的端口号不能相同同,由于不同计算机的,由于不同计算机的IP地址不同,所以地址不同,所以不同计算机中的不同计算机中的端口号可以相同端口号可以相同。运输层的协议数据单元叫做报文段(运输层的协议数据单元叫做报文段(segment),在报文),在报文段首部中,有源端口号与目的端口号,源端口号是发送进段首部中,有源端口号与目的端口号,源端口号是发送进程的端口号,目的端口号则是接收进程的端口号。程的端口号,目的端口号则是接收进程的端口号。2021/9/24Computer networks第5章 运输层辨清几个概念接口接口 物理层物理层源源物理地址物理地址与目的与目的物理地址物
10、理地址 链路层链路层 源源IP地址地址与目的与目的IP地址地址 网络层网络层 源源端口号端口号与目的与目的端口号端口号 运输层运输层2021/9/24Computer networks第5章 运输层熟知端口熟知端口当用当用浏览器打开一个网站的网页浏览器打开一个网站的网页时,计算机为浏览器临时分时,计算机为浏览器临时分配一个端口号,浏览器关闭时就收回这个端口号,可以再分配一个端口号,浏览器关闭时就收回这个端口号,可以再分配给其他应用进程,这叫做配给其他应用进程,这叫做动态端口号动态端口号。网站网站服务器进程的端口号怎样呢?服务器进程的端口号怎样呢?浏览网页时必须指明服务器进程的端口号浏览网页时必
11、须指明服务器进程的端口号,但我们上网时没,但我们上网时没有这样做。有这样做。当用户没有指明网站服务器进程的端口号时,浏览器就使用当用户没有指明网站服务器进程的端口号时,浏览器就使用一个一个固定的端口号固定的端口号访问服务器进程,这个固定的端口号叫做访问服务器进程,这个固定的端口号叫做熟知端口熟知端口(well-known port)号或)号或周知端口号周知端口号。之所以叫做熟知端口号,是因为这些服务器进程的端口号是之所以叫做熟知端口号,是因为这些服务器进程的端口号是固定分配好的,大家都知道。固定分配好的,大家都知道。2021/9/24Computer networks第5章 运输层常见的熟知端
12、口号所有的熟知端口号都所有的熟知端口号都在在01023之间,由因之间,由因特网名称与号码分配特网名称与号码分配公司(公司(ICANN)分配。)分配。熟知端口号熟知端口号根据根据应用应用层协议分配层协议分配,不同的,不同的应用层协议服务器进应用层协议服务器进程分配不同的熟知端程分配不同的熟知端口号。口号。应用层应用层协议协议协议用处协议用处熟知端熟知端口号口号FTP传输传输文件文件21telnet远远程程终终端接入端接入23SMTP传输电传输电子子邮邮件件25DNS域名域名转换转换53HTTP浏览浏览网网页页802021/9/24Computer networks第5章 运输层不用熟知端口号不用
13、熟知端口号服务器进程也可以服务器进程也可以不使用熟知端口号不使用熟知端口号,这在,这在服务服务器上通过设置就可以做到器上通过设置就可以做到,但这时要设法把新的,但这时要设法把新的端口号通知用户。端口号通知用户。如果网站如果网站http:/把服务器进程把服务器进程端口号由端口号由80改为改为8000,就必须通知用户。,就必须通知用户。用户在浏览器地址栏上输入用户在浏览器地址栏上输入http:/:8000就可以打开网页。就可以打开网页。输入输入http:/则打不开网页。则打不开网页。让所有用户都知道新的端口号非常麻烦,一般不让所有用户都知道新的端口号非常麻烦,一般不要修改服务器进程的熟知端口号。要
14、修改服务器进程的熟知端口号。2021/9/24Computer networks第5章 运输层熟知端口号仅分配给服务器进程熟知端口号仅分配给服务器进程,客户进程(如浏,客户进程(如浏览器进程)由计算机临时分配端口号。览器进程)由计算机临时分配端口号。浏览器与服务器进程间的浏览器与服务器进程间的IP数据报的首部中数据报的首部中有源有源IP地址与目的地址与目的IP地址地址,IP数据报装载了运输层的报文数据报装载了运输层的报文段,报文段首部中则段,报文段首部中则有源端口号与目的端口号有源端口号与目的端口号。从从到到源源IP地址地址目的目的IP地址地址源端口源端口号号目的端口目的端口号号浏览浏览器器服
15、服务务器器进进程程1.1.1.12.2.2.2120080服服务务器器进进程程浏览浏览器器2.2.2.21.1.1.1801 2002021/9/24Computer networks第5章 运输层5.3 用户数据报协议传输控制协议传输控制协议(Transmission Control Protocol,TCP)。对于运输层的对于运输层的复用与分用、可靠传输与拥塞控制复用与分用、可靠传输与拥塞控制这这3个任务,个任务,UDP仅完成仅完成复用与分用复用与分用的任务的任务,TCP则完成全部则完成全部3个任务。个任务。对于对于UDP与与TCP,应用层协议如何选择使用呢?,应用层协议如何选择使用呢?应
16、用层协议应用层协议要根据自己的情况来确定使用要根据自己的情况来确定使用UDP还还是是TCP。2021/9/24Computer networks第5章 运输层应用层协议选用UDP与TCP的情况不需要可靠传输不需要可靠传输的应用层协议的应用层协议应该选用应该选用UDP,如,如多媒体数据多媒体数据,在在音频与视频音频与视频中出现少量差错中出现少量差错完全可以接受。完全可以接受。数据量特别少的应用层协议数据量特别少的应用层协议也也应该选用应该选用UDP,如,如DNS的一次的一次通信过程只有一来一去两个报通信过程只有一来一去两个报文,也应该选用文,也应该选用UDP。若使用若使用TCP,则,则TCP的控
17、制用的控制用数据比数据比DNS本身的数据还要多,本身的数据还要多,效率太低。效率太低。其他情况应该选用其他情况应该选用TCP,如传,如传输文件。输文件。应用层应用层协议协议协议用处协议用处UDP/TCPFTP传输传输文件文件TCPTelnet远远程程终终端接入端接入TCPSMTP传输电传输电子子邮邮件件TCPHTTP浏览浏览网网页页TCPDNS域名域名转换转换UDPDHCP自自动动配置配置IP协议协议UDPSNMP网网络络管理管理UDPRTP传输传输多媒体多媒体数据数据UDP2021/9/24Computer networks第5章 运输层UDP的报文段格式 2021/9/24Computer
18、 networks第5章 运输层5.4 传输控制协议TCP与与UDP的比较如表的比较如表。传输控制协议(传输控制协议(Transmission Control Protocol,TCP)。)。与与UDP不同,不同,TCP除具有复用与分用功能外,还具有除具有复用与分用功能外,还具有可靠传可靠传输与拥塞控制输与拥塞控制的功能。的功能。UDP是是无连接的无连接的,TCP则是则是面向连接的面向连接的,发送,发送TCP报文段前报文段前需要先建立连接,发送完毕后需要拆除连接。需要先建立连接,发送完毕后需要拆除连接。TCP的连接是的连接是全双工的全双工的,也就是说,发送数据与接收数据使,也就是说,发送数据与
19、接收数据使用同一条连接。用同一条连接。协议协议复用与分用复用与分用可靠传输可靠传输拥塞控制拥塞控制连接连接TCP是是是是是是面向面向连连接接UDP是是否否否否无无连连接接2021/9/24Computer networks第5章 运输层5.4.1 可靠传输的方法TCP最重要的功能是可靠传输最重要的功能是可靠传输,以太网与网络层,以太网与网络层的的IP协议都是不保证可靠传输的,协议都是不保证可靠传输的,所以所以TCP极端极端重要重要。TCP使用了很多复杂的办法来实现可靠传输。使用了很多复杂的办法来实现可靠传输。发送方发送方发送一个报文段后立即停止发送一个报文段后立即停止,接收方正确接收方正确收到
20、报文段后返回一个确认收到报文段后返回一个确认(Acknowledgement,ACK),发送方收到),发送方收到ACK后再发送第后再发送第2个报文段,如此直到数据全部个报文段,如此直到数据全部发送完毕。发送完毕。2021/9/24Computer networks第5章 运输层停止停止-等待协议等待协议(a)是)是正常情况正常情况,A发送报文段发送报文段0后停止,后停止,B收到后返收到后返回一个回一个ACK,A收到收到ACK后再发送新的报文段后再发送新的报文段1。因为每发送一个报文段就要停下等待确认,所以这个因为每发送一个报文段就要停下等待确认,所以这个协议叫做协议叫做停止停止-等待协议等待协
21、议。2021/9/24Computer networks第5章 运输层停止停止-等待协议等待协议非非正常情况正常情况(b)表示)表示B发现报文段发现报文段0出错,出错,B要返回一个要返回一个否定确认否定确认NAK,A收到收到NAK后重传报文段后重传报文段0;(c)表示报文段)表示报文段0在传输过程中丢失,在传输过程中丢失,B收不到,自然也不会收不到,自然也不会返回返回ACK。A每发送完一个报文段,就开始计时,每发送完一个报文段,就开始计时,超时后仍没超时后仍没有收到有收到ACK,就重传该报文段;,就重传该报文段;(d)表示表示ACK丢失,丢失,A超时后重传报文段超时后重传报文段0。2021/9
22、/24Computer networks第5章 运输层考虑问题考虑问题 现在可靠传输问题得到了初步解决,但是以下细节问题仍要仔现在可靠传输问题得到了初步解决,但是以下细节问题仍要仔细考虑:细考虑:1错误检测错误检测:接收方为了发现出错,必须使用某种接收方为了发现出错,必须使用某种检错技术检错技术。2确认确认停止停止-等待协议中使用了等待协议中使用了确认确认ACK与与否定确认否定确认NAK。发送方发送方A每发送完一个报文段,就开始计时,每发送完一个报文段,就开始计时,如果接收方如果接收方B发现发现报文段出错时不发送报文段出错时不发送NAK,A在超时后仍会重传这个报文在超时后仍会重传这个报文段。段
23、。对比(对比(b)与()与(c),能够发现),能够发现没有没有NAK也是可以的也是可以的。2021/9/24Computer networks第5章 运输层3超时重传在超时重传中,需要确定一个合理的在超时重传中,需要确定一个合理的超时时间超时时间。超时时间过长超时时间过长,报文段可能早已丢失或出错,发,报文段可能早已丢失或出错,发送方却还在等待,送方却还在等待,浪费许多时间浪费许多时间;超时时间过短超时时间过短,可能刚刚重传后就收到了确认,可能刚刚重传后就收到了确认,无谓地重传无谓地重传了一次。了一次。合理的超时时间应该比合理的超时时间应该比往返时延往返时延RTT(从发出报(从发出报文段到收到
24、确认的时间)文段到收到确认的时间)略大略大.但网络状况不断变化,但网络状况不断变化,往返时延也是不断变化往返时延也是不断变化的,的,确定合理的超时时间是一个比较麻烦的事情。确定合理的超时时间是一个比较麻烦的事情。2021/9/24Computer networks第5章 运输层4序号在图(在图(d)中,因为丢失确认发送方)中,因为丢失确认发送方A重新发送了报文段重新发送了报文段0,但之,但之前接收方前接收方B已经收到了报文段已经收到了报文段0,这样,这样B就就收到了重复的两个报文收到了重复的两个报文段段,这也是一个错误。,这也是一个错误。B应该丢弃重复的报文段应该丢弃重复的报文段,但是但是B需
25、要确定报文段是不是重复的。需要确定报文段是不是重复的。报文段的内容相同就认为是重复的报文段的内容相同就认为是重复的?不可行,因为应用层协议有可能重复发送同一数据。不可行,因为应用层协议有可能重复发送同一数据。解决办法是给解决办法是给报文段添加序号报文段添加序号,每个报文段的序号各不相同每个报文段的序号各不相同,接,接收方根据序号来判断报文段是否重复。收方根据序号来判断报文段是否重复。图图5.4中报文段中报文段0与报文段与报文段1中的中的0与与1就是序号。就是序号。2021/9/24Computer networks第5章 运输层改进的停止-等待协议停止停止-等待协议等待协议效率太低效率太低。每
26、发送完一个报文段,发送方就要每发送完一个报文段,发送方就要等待等待ACK,浪费时间。,浪费时间。改进措施改进措施是在收到是在收到ACK之前不等待,之前不等待,连续发送报文段连续发送报文段,图,图5.5(a)是停)是停止止-等待协议,图等待协议,图5.5(b)是对停止)是对停止-等待协议的改进。等待协议的改进。在图在图5.5(a)中,)中,A发送完一个报发送完一个报文段就停止发送,文段就停止发送,收到的收到的ACK确认确认的自然是上一个报文段的自然是上一个报文段.在图在图5.5(b)中,)中,A发送了发送了3个报文个报文段才收到一个段才收到一个ACK,ACK确认的是确认的是哪一个报文段呢?哪一个
27、报文段呢?2021/9/24Computer networks第5章 运输层确认号解决方法:解决方法:ACK也带上序号也带上序号,这个序号就叫做确认号。这个序号就叫做确认号。确认号可以有几种含义,只介绍确认号可以有几种含义,只介绍TCP中使用的含义。中使用的含义。在在TCP中,确认号的含义是这个中,确认号的含义是这个确认号之前确认号之前(不包括确认号(不包括确认号本身)的数据都已正确收到,希望本身)的数据都已正确收到,希望再接收从再接收从这个确认号开始这个确认号开始的数据的数据.例如,接收方例如,接收方B向发送方向发送方A发送了发送了确认号确认号500,意思是:,意思是:B已正已正确收到确收到
28、A发送的序号在发送的序号在500之前之前(不包括(不包括500)的所有数据,)的所有数据,希望希望A再发送序号从再发送序号从500开始的数据。开始的数据。改进后的协议在收到改进后的协议在收到ACK之前可以发送很多数据,有必要对之前可以发送很多数据,有必要对数量加以限制。数量加以限制。已发送未确认的数据量达到一个限制值时,要停止发送,等已发送未确认的数据量达到一个限制值时,要停止发送,等待待ACK到来到来,收到收到ACK后,已发送未确认的数据量减少到了后,已发送未确认的数据量减少到了限制值以下,限制值以下,就可以继续发送数据了,这个限制值叫做就可以继续发送数据了,这个限制值叫做窗口窗口。2021
29、/9/24Computer networks第5章 运输层窗口窗口假设窗口是假设窗口是100字节,发送方字节,发送方A向接收方向接收方B发送了发送了100字节数据字节数据后,如果没有收到后,如果没有收到ACK,这,这100字节数据就是已发送未确认的字节数据就是已发送未确认的数据,数据,已经达到了窗口大小,已经达到了窗口大小,A就要停止发送就要停止发送。之后之后A收到一个收到一个ACK,指出,指出B已经正确接收了已经正确接收了70字节的数据字节的数据,已发送未确认的数据量就变成了已发送未确认的数据量就变成了100-70=30字节字节.这时这时A可以再发送可以再发送70字节数据,已发送未确认的数据
30、量又变成字节数据,已发送未确认的数据量又变成了了30+70=100字节,又达到了窗口大小,字节,又达到了窗口大小,A再次停止发送,直再次停止发送,直到收到新的到收到新的ACK。2021/9/24Computer networks第5章 运输层5.4.2 TCP的可靠传输机制 改进的停止改进的停止-等待协议实现了可靠传输,等待协议实现了可靠传输,TCP实实现可靠传输的机制与此基本相同。现可靠传输的机制与此基本相同。发送方发送若干数据,达到窗口大小后停止,接发送方发送若干数据,达到窗口大小后停止,接收方正确收到后返回一个收方正确收到后返回一个ACK。当数据、当数据、ACK丢失或出错后,发送方会超时
31、重传。丢失或出错后,发送方会超时重传。可靠传输使用了可靠传输使用了错误检测、序号、确认与确认号、错误检测、序号、确认与确认号、窗口、超时重传窗口、超时重传等技术,下面介绍等技术,下面介绍TCP如何具体如何具体使用这些技术。使用这些技术。2021/9/24Computer networks第5章 运输层1错误检测错误检测与与UDP一样,一样,TCP也使用检验和方法来检测差错。也使用检验和方法来检测差错。2序号序号TCP使用使用32位的序号,序号是针对字节的,也就是说,位的序号,序号是针对字节的,也就是说,TCP报文段中每一个字节的数据都有一个序号报文段中每一个字节的数据都有一个序号。32位的序号
32、足够长。位的序号足够长。TCP是全双工的双向通信,是全双工的双向通信,两个方向的数据流使用各自的两个方向的数据流使用各自的序号序号,由,由A到到B的数据流从小到大顺序编号,由的数据流从小到大顺序编号,由B到到A的数的数据流也是从小到大顺序编号。据流也是从小到大顺序编号。2021/9/24Computer networks第5章 运输层3确认与确认号TCP是是全双工双向通信全双工双向通信,因此,因此ACK没有必要单独没有必要单独发送发送,接收方把,接收方把ACK与数据放在同一个报文段中与数据放在同一个报文段中发给发送方,这叫做发给发送方,这叫做捎带确认捎带确认。TCP的确认号同序号一样,也是的确
33、认号同序号一样,也是32位,含义是序位,含义是序号在这个确认号之前(不包括确认号本身)的数号在这个确认号之前(不包括确认号本身)的数据都已正确收到,据都已正确收到,希望再接收序号以这个确认号希望再接收序号以这个确认号为开始的数据。为开始的数据。2021/9/24Computer networks第5章 运输层4窗口在在TCP中,中,窗口大小由窗口大小由接收方根接收方根据情况决定据情况决定,而,而且还可以变化。且还可以变化。在在TCP首部中有一个首部中有一个16位的接收窗口字段,位的接收窗口字段,接收接收方利用该字段通知发送方窗口大小。方利用该字段通知发送方窗口大小。当接收方当接收方没有内存没有
34、内存接收数据时,可以把接收窗口接收数据时,可以把接收窗口置为置为0,发送方就,发送方就停止发送停止发送了;当有空闲内存时,了;当有空闲内存时,再把接收窗口置为非再把接收窗口置为非0,发送方又可以发送了。,发送方又可以发送了。发送方的发送速率发送方的发送速率是由是由接收方根据自己的接收能接收方根据自己的接收能力控制的。力控制的。2021/9/24Computer networks第5章 运输层5超时重传TCP每发送一个报文段,就启动一个计时器开始计每发送一个报文段,就启动一个计时器开始计时,在超时后如果没有收到时,在超时后如果没有收到ACK,就重传这一报,就重传这一报文段,在超时重传中,关键是文
35、段,在超时重传中,关键是超时时间如何确定超时时间如何确定。合理的超时时间应该比往返时延合理的超时时间应该比往返时延RTT略大略大,但网络,但网络状况不断变化,状况不断变化,往返时延往返时延也是不断变化的。也是不断变化的。TCP采用了采用了随时测量往返时延随时测量往返时延,再加权平均的办法,再加权平均的办法,较好地解决了这一难题。较好地解决了这一难题。2021/9/24Computer networks第5章 运输层平均往返时延平均往返时延ARTTTCP选择一个报文段,发送后计时,收到它的选择一个报文段,发送后计时,收到它的ACK后就得到后就得到了了往返时延往返时延,这是一个样本值,记为,这是一
36、个样本值,记为SRTT。采用统计学的思路,多次测量后加权平均,为此,引入采用统计学的思路,多次测量后加权平均,为此,引入平均平均往返时延往返时延ARTT。ARTT=(1)ARTT+SRTT,=1/8 (5.1)ARTT也不能作为超时时间,原因是如果网络状况突然恶化,也不能作为超时时间,原因是如果网络状况突然恶化,SRTT突然增大,那么突然增大,那么ARTT的变化会跟不上,为此引入的变化会跟不上,为此引入DRTT,反映反映SRTT的变化程度的变化程度。DRTT=(1)DRTT+SRTT ARTT,=1/4(5.2)SRTT变化越快,变化越快,DRTT越大;越大;SRTT变化越慢,变化越慢,DRT
37、T越小越小。Timeout=ARTT+4DRTT (5.3)2021/9/24Computer networks第5章 运输层重传测量被测量的被测量的报文段如果重传报文段如果重传了,重传后收到的了,重传后收到的ACK是是对对第第1次发送的确认次发送的确认,还是对,还是对第第2次发送的确认次发送的确认?不测量重传报文段?不测量重传报文段?不测量重传报文段的不测量重传报文段的SRTT又带来新的问题,如果又带来新的问题,如果网络状况突然恶化,网络状况突然恶化,往返时延突然增大往返时延突然增大,使用旧的使用旧的超时时间必然导致重传超时时间必然导致重传.若若不测量重传报文段的不测量重传报文段的SRTT,
38、超时时间无法更新,超时时间无法更新,将会一直进行重传。将会一直进行重传。解决策略:解决策略:每重传一次就把超时时间加倍,这样超每重传一次就把超时时间加倍,这样超时时间将很快变大,能够反映出网络的真实状况时时间将很快变大,能够反映出网络的真实状况。2021/9/24Computer networks第5章 运输层5.4.3 TCP报文段格式报文段格式TCP报文段的格式能够很好地说明报文段的格式能够很好地说明TCP协协议的功能,议的功能,每行长度每行长度32位,位,4字节。字节。TCP报文段的报文段的固定首部长度固定首部长度20字节字节,还可,还可以有以有不定长度的首部选项不定长度的首部选项,其后
39、是数据部,其后是数据部分。分。整个整个TCP报文段装入到报文段装入到IP数据报中去。数据报中去。2021/9/24Computer networks第5章 运输层1源端口号源端口号源端口号字段源端口号字段16位,是位,是发送进程的端口发送进程的端口号。号。2目的端口号目的端口号目的端口号字段目的端口号字段16位,是位,是接收进程的端口接收进程的端口号。号。3序号序号序号字段序号字段32位,是针对位,是针对字节的字节的,TCP报文段中每一个字报文段中每一个字节的数据都有一个序号。节的数据都有一个序号。一个报文段的数据部分有很多字节的数据,本字段中的一个报文段的数据部分有很多字节的数据,本字段中的
40、值是哪一个字节的序号呢?值是哪一个字节的序号呢?TCP规定,它是规定,它是数据部分第数据部分第1个字节的序号个字节的序号。TCP是全双工的双向通信,两个方向的数据流使用各自是全双工的双向通信,两个方向的数据流使用各自的序号。的序号。2021/9/24Computer networks第5章 运输层从从到到数据长度数据长度序号序号确认号确认号AB4001012001BA6002001501AB-50126014确认号确认号确认号字段确认号字段32位,含义是序号在这个确认号之前位,含义是序号在这个确认号之前(不包括确认号本身)的数据都已正确收到,希(不包括确认号本身)的数据都已正确收到,希望再接收
41、序号以这个确认号为开始的数据。望再接收序号以这个确认号为开始的数据。2021/9/24Computer networks第5章 运输层5首部长度(默认是首部长度(默认是5)首部长度字段首部长度字段4位,首部中位,首部中可以有一些不定长的选项字段可以有一些不定长的选项字段。该。该字段的表示范围是字段的表示范围是015(0241),长度的单位是),长度的单位是4字节,字节,所以首部最长可以是所以首部最长可以是415=60字节。字节。6保留保留保留字段保留字段6位,最初没有使用,用于以后扩展。位,最初没有使用,用于以后扩展。2021/9/24Computer networks第5章 运输层8接收窗口
42、接收窗口接收窗口字段接收窗口字段16位,单位为字节。位,单位为字节。发送方已发送未确认的数据量不得超过本字段设定的值。发送方已发送未确认的数据量不得超过本字段设定的值。当接收方没有内存接收数据时,可以把接收窗口置为当接收方没有内存接收数据时,可以把接收窗口置为0,发送方,发送方就停止发送了;当有空闲内存时,再把接收窗口置为非就停止发送了;当有空闲内存时,再把接收窗口置为非0,发送,发送方又可以发送了。方又可以发送了。7标志标志标志字段标志字段6位,每一位都含义,置位,每一位都含义,置0时表示无效,置时表示无效,置1时表示有效。时表示有效。这这6位分别是位分别是ACK、SYN、FIN、RST、U
43、RG与与PSH。ACK置置1时表示确认号字段有效,置时表示确认号字段有效,置0时表示确认号字段无效,这时表示确认号字段无效,这说明并不是每个报文段都确认收到的数据,只有说明并不是每个报文段都确认收到的数据,只有ACK置置1时才确时才确认收到的数据。认收到的数据。SYN建立连接时使用,建立连接时使用,FIN拆除连接时使用。拆除连接时使用。RST、URG与与PSH较少使用。较少使用。2021/9/24Computer networks第5章 运输层9检验和检验和检验和字段检验和字段16位,用于检测位,用于检测TCP报文段是否出错,计算方法与报文段是否出错,计算方法与IP数据报和数据报和UDP报文段
44、中的相同。报文段中的相同。发送方对整个发送方对整个TCP报文段计算生成检验和报文段计算生成检验和,接收方用该字段检接收方用该字段检测测TCP报文段是否出错。报文段是否出错。如果发现出错,就丢弃该报文段,不交给应用进程,同时也不如果发现出错,就丢弃该报文段,不交给应用进程,同时也不发送确认,发送确认,等待发送方超时后重传这个报文段,等待发送方超时后重传这个报文段,这就实现了数这就实现了数据的可靠传输。据的可靠传输。10紧急数据指针紧急数据指针紧急数据指针字段紧急数据指针字段16位,用于指出报文段数据部分中哪些数据位,用于指出报文段数据部分中哪些数据是是紧急数据紧急数据,要求应用进程尽快处理。,要
45、求应用进程尽快处理。2021/9/24Computer networks第5章 运输层11首部选项首部选项RFC中定义了多个首部选项字段,实际用的并不多。中定义了多个首部选项字段,实际用的并不多。12数据部分数据部分数据部分一般是应用层的协议数据单元。数据部分一般是应用层的协议数据单元。TCP首部没有总长度字段,但这并不意味着首部没有总长度字段,但这并不意味着TCP报文段的长度不报文段的长度不受限制。受限制。为了不发生低效率的分片,为了不发生低效率的分片,TCP会把应用层实体交来的过长的数会把应用层实体交来的过长的数据划分为一个个的报文段,每个报文段最长据划分为一个个的报文段,每个报文段最长1
46、 480字节(数据部字节(数据部分是分是1 460字节),加上字节),加上IP数据报的固定首部是数据报的固定首部是1 500字节(不考字节(不考虑首部选项字段),正好装入到一个以太网帧中去。虑首部选项字段),正好装入到一个以太网帧中去。2021/9/24Computer networks第5章 运输层5.4.4 TCP的连接管理TCP是面向连接的,在收发数据之前需要建立连是面向连接的,在收发数据之前需要建立连接,收发完毕后需要拆除连接,步骤是:接,收发完毕后需要拆除连接,步骤是:建立连接建立连接收发数据收发数据拆除连接。拆除连接。TCP的连接与电路交换中的连接不同的连接与电路交换中的连接不同:
47、电路交换电路交换中的连接是一条真实存在的中的连接是一条真实存在的物理线路物理线路;TCP的连接则是的连接则是逻辑上的连接逻辑上的连接。2021/9/24Computer networks第5章 运输层1连接的建立建立一个建立一个TCP连接需要来回连接需要来回3个报文段,所以叫做个报文段,所以叫做三次三次握手握手(three-way handshake)。)。TCP连接在两个应用进程间连接在两个应用进程间建立,建立,主动发起建立连接的主动发起建立连接的应用进程叫做客户应用进程叫做客户,被动等被动等待建立连接的应用进程叫做待建立连接的应用进程叫做服务器。服务器。2021/9/24Computer
48、networks第5章 运输层初始序号的选择初始序号的选择初始序号应该随机地选择,初始序号应该随机地选择,不应该是不应该是0或其他固定或其他固定值值,也不应有规律可循,有以下两个原因:,也不应有规律可循,有以下两个原因:(1)连接建立后极短时间内拆除,并且立刻用同)连接建立后极短时间内拆除,并且立刻用同一端口号又建立了另一个连接,在这种特殊的情况一端口号又建立了另一个连接,在这种特殊的情况下,两次连接的初始序号如果相同,下,两次连接的初始序号如果相同,接收方可能会接收方可能会收到重复序号的报文段。收到重复序号的报文段。(2)黑客的某些攻击需要知道)黑客的某些攻击需要知道TCP的初始序号,的初始
49、序号,初始序号如果有规律,黑客很容易猜到;初始序号如果有规律,黑客很容易猜到;初始序号初始序号如果随机选择,如果随机选择,黑客就无法猜到,安全性好。黑客就无法猜到,安全性好。2021/9/24Computer networks第5章 运输层2连接的拆除当数据收发完毕后,当数据收发完毕后,就可以拆除连接了,就可以拆除连接了,拆除连接需要拆除连接需要4个报文个报文段。段。客户向服务器发送第客户向服务器发送第1个报文段,个报文段,FIN标志位标志位要置为要置为1,表明这是用,表明这是用于拆除连接的报文段。于拆除连接的报文段。两个方向两个方向 2021/9/24Computer networks第5章
50、 运输层5.4.5 TCP的拥塞控制当网络中当网络中数据过多时就会出现拥塞现象数据过多时就会出现拥塞现象,这时网,这时网络设备会不堪重负,很多数据会被丢弃,时延会络设备会不堪重负,很多数据会被丢弃,时延会明显增大。明显增大。当数据被丢弃时,当数据被丢弃时,为可靠传输必须重传这些数据,为可靠传输必须重传这些数据,于是更多的数据进入网络,导致更严重的拥塞,于是更多的数据进入网络,导致更严重的拥塞,形成一个恶性循环。形成一个恶性循环。以太网与网络层的以太网与网络层的IP协议都没有拥塞控制功能,协议都没有拥塞控制功能,拥塞控制是拥塞控制是TCP要解决的另一个重要问题。要解决的另一个重要问题。2021/