计算机网络b-第5章 运输层

上传人:tia****nde 文档编号:70182638 上传时间:2019-01-16 格式:PPT 页数:78 大小:2.83MB
返回 下载 相关 举报
计算机网络b-第5章 运输层_第1页
第1页 / 共78页
计算机网络b-第5章 运输层_第2页
第2页 / 共78页
计算机网络b-第5章 运输层_第3页
第3页 / 共78页
计算机网络b-第5章 运输层_第4页
第4页 / 共78页
计算机网络b-第5章 运输层_第5页
第5页 / 共78页
点击查看更多>>
资源描述

《计算机网络b-第5章 运输层》由会员分享,可在线阅读,更多相关《计算机网络b-第5章 运输层(78页珍藏版)》请在金锄头文库上搜索。

1、Computer networks,第5章 运输层,本章重点与学习目标 掌握端口的概念与意义; 掌握UDP与TCP各自的特点与适用范围; 掌握NAT的工作过程。,Computer networks,5.1 案例需求,鲁中学院校园网申请的公开IP 地址远远不能满足需求,故用私有IP地址。 理论上讲,使用私有IP地址的计算机不能接入因特网。 必须设法让校园网内的计算机全部能上网。 在一些学校的校园网内,访问因特网的速度较快,可是从校外访问学校网站的速度却很慢。 鲁中学院校园网能否避免这种情况呢?,Computer networks,5.2 运输层概述 5.2.1 运输层的任务,运输层实体仅存在于计

2、算机中,交换机、路由器等网络设备内没有运输层实体. 网络层能使数据从发送计算机到达接收计算机. 运输层起什么作用呢? 一台计算机中能够同时运行多个程序,这种运行着的程序称为进程。 像浏览器、QQ聊天窗口这样的进程,用户直接使用它们,一般位于应用层,所以叫做应用进程。 网络通信的实际参与者不是某台计算机,而是这台计算机中运行着的某个应用进程。,Computer networks,计算机A中有两个应用进程,分别是进程1与进程2,进程1正在与计算机B中的进程1通信,进程2正在与计算机C中的进程1通信,这样一来,就有两对实体参与通信,可以记为: (计算机A:进程1,计算机B:进程1) (计算机A:进程

3、2,计算机C:进程1),Computer networks,运输层任务-复用与分用,复用指发送计算机的运输层实体收集多个应用进程的数据,再使用网络层实体提供的服务把数据发送出去; 分用指接收计算机的运输层实体收到网络层实体交来的数据后,再正确分配到不同的应用进程中去 .,Computer networks,运输层任务,除复用与分用外,运输层还要完成以下两个任务: (1)当数据在传输过程中出错或者丢失,要重新传输一遍,以保证数据的可靠传输。 网络层协议、数据链路层协议都不保证数据的可靠传输,可靠传输的任务就落在了运输层身上。 (2)当网络中数据过多时,就会出现拥塞,这时数据丢失严重,时延急剧增大

4、,要设法降低数据发送速率,以缓解拥塞,这叫做拥塞控制。,Computer networks,5.2.2 运输层的端口,运输层为实现复用与分用功能,必须能够区分不同的应用进程,以便正确分配数据。 区分不同应用进程的办法: 给每个应用进程设置不同的标识,这个标识就是端口(port)号。 一个端口号由16位二进制数组成,范围是02161,即065 535。 把网络设备上的物理接口一律叫做接口,端口专指运输层的端口。 IP地址标识了一台计算机,端口号则标识了计算机中的一个应用进程,IP地址与端口号组合在一起,叫做套接字(socket),套接字标识了世界范围内的一个应用进程。,Computer netw

5、orks,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) 为区分不同的应用进程,同一台计算机中的端口号不能相同,由于不同计算机的IP地址不同,所以不同计算机中的端口号可以相同。 运输层的协议数据单元叫做报文段(segment),在报文段首部中,有源端口号与目的端口号,源端口号是发送进程的端口号,目的端口号则是接收进程的端口号。

6、,Computer networks,辨清几个概念,接口 物理层 源物理地址与目的物理地址 链路层 源IP地址与目的IP地址 网络层 源端口号与目的端口号 运输层,Computer networks,熟知端口,当用浏览器打开一个网站的网页时,计算机为浏览器临时分配一个端口号,浏览器关闭时就收回这个端口号,可以再分配给其他应用进程,这叫做动态端口号。 网站服务器进程的端口号怎样呢? 浏览网页时必须指明服务器进程的端口号,但我们上网时没有这样做。 当用户没有指明网站服务器进程的端口号时,浏览器就使用一个固定的端口号访问服务器进程,这个固定的端口号叫做熟知端口(well-known port)号或周

7、知端口号。 之所以叫做熟知端口号,是因为这些服务器进程的端口号是固定分配好的,大家都知道。,Computer networks,常见的熟知端口号,所有的熟知端口号都在01023之间,由因特网名称与号码分配公司(ICANN)分配。 熟知端口号根据应用层协议分配,不同的应用层协议服务器进程分配不同的熟知端口号。,Computer networks,不用熟知端口号,服务器进程也可以不使用熟知端口号,这在服务器上通过设置就可以做到,但这时要设法把新的端口号通知用户。 如果网站http:/把服务器进程端口号由80改为8000,就必须通知用户。 用户在浏览器地址栏上输入http:/:8000就可以打开网页

8、。 输入http:/则打不开网页。 让所有用户都知道新的端口号非常麻烦,一般不要修改服务器进程的熟知端口号。,Computer networks,熟知端口号仅分配给服务器进程,客户进程(如浏览器进程)由计算机临时分配端口号。 浏览器与服务器进程间的IP数据报的首部中有源IP地址与目的IP地址,IP数据报装载了运输层的报文段,报文段首部中则有源端口号与目的端口号。,Computer networks,5.3 用户数据报协议,传输控制协议(Transmission Control Protocol,TCP)。 对于运输层的复用与分用、可靠传输与拥塞控制这3个任务,UDP仅完成复用与分用的任务,TC

9、P则完成全部3个任务。 对于UDP与TCP,应用层协议如何选择使用呢? 应用层协议要根据自己的情况来确定使用UDP还是TCP。,Computer networks,应用层协议选用UDP与TCP的情况,不需要可靠传输的应用层协议应该选用UDP,如多媒体数据,在音频与视频中出现少量差错完全可以接受。 数据量特别少的应用层协议也应该选用UDP,如DNS的一次通信过程只有一来一去两个报文,也应该选用UDP。 若使用TCP,则TCP的控制用数据比DNS本身的数据还要多,效率太低。 其他情况应该选用TCP,如传输文件。,Computer networks,UDP的报文段格式,Computer networ

10、ks,5.4 传输控制协议,TCP与UDP的比较如表 。 传输控制协议(Transmission Control Protocol,TCP)。 与UDP不同,TCP除具有复用与分用功能外,还具有可靠传输与拥塞控制的功能。 UDP是无连接的,TCP则是面向连接的,发送TCP报文段前需要先建立连接,发送完毕后需要拆除连接。 TCP的连接是全双工的,也就是说,发送数据与接收数据使用同一条连接。,Computer networks,5.4.1 可靠传输的方法,TCP最重要的功能是可靠传输,以太网与网络层的IP协议都是不保证可靠传输的, 所以TCP极端重要 。 TCP使用了很多复杂的办法来实现可靠传输。

11、 发送方发送一个报文段后立即停止,接收方正确收到报文段后返回一个确认(Acknowledgement,ACK),发送方收到ACK后再发送第2个报文段,如此直到数据全部发送完毕。,Computer networks,停止-等待协议,(a)是正常情况,A发送报文段0后停止,B收到后返回一个ACK,A收到ACK后再发送新的报文段1。 因为每发送一个报文段就要停下等待确认,所以这个协议叫做停止-等待协议。,Computer networks,停止-等待协议,非正常情况 (b)表示B发现报文段0出错,B要返回一个否定确认NAK,A收到NAK后重传报文段0; (c)表示报文段0在传输过程中丢失,B收不到,

12、自然也不会返回ACK。A每发送完一个报文段,就开始计时,超时后仍没有收到ACK,就重传该报文段; (d)表示ACK丢失,A超时后重传报文段0。,Computer networks,考虑问题,现在可靠传输问题得到了初步解决,但是以下细节问题仍要仔细考虑: 1错误检测:接收方为了发现出错,必须使用某种检错技术。 2确认 停止-等待协议中使用了确认ACK与否定确认NAK。 发送方A每发送完一个报文段,就开始计时,如果接收方B发现报文段出错时不发送NAK,A在超时后仍会重传这个报文段。 对比(b)与(c),能够发现没有NAK也是可以的。,Computer networks,3超时重传,在超时重传中,需

13、要确定一个合理的超时时间。 超时时间过长,报文段可能早已丢失或出错,发送方却还在等待,浪费许多时间; 超时时间过短,可能刚刚重传后就收到了确认,无谓地重传了一次。 合理的超时时间应该比往返时延RTT(从发出报文段到收到确认的时间)略大. 但网络状况不断变化,往返时延也是不断变化的,确定合理的超时时间是一个比较麻烦的事情。,Computer networks,4序号,在图(d)中,因为丢失确认发送方A重新发送了报文段0,但之前接收方B已经收到了报文段0,这样B就收到了重复的两个报文段,这也是一个错误。 B应该丢弃重复的报文段,但是B需要确定报文段是不是重复的。 报文段的内容相同就认为是重复的?

14、不可行,因为应用层协议有可能重复发送同一数据。 解决办法是给报文段添加序号,每个报文段的序号各不相同,接收方根据序号来判断报文段是否重复。 图5.4中报文段0与报文段1中的0与1就是序号。,Computer networks,改进的停止-等待协议,停止-等待协议效率太低。 每发送完一个报文段,发送方就要等待ACK,浪费时间。 改进措施是在收到ACK之前不等待,连续发送报文段,图5.5(a)是停止-等待协议,图5.5(b)是对停止-等待协议的改进。 在图5.5(a)中,A发送完一个报文段就停止发送,收到的ACK确认的自然是上一个报文段. 在图5.5(b)中,A发送了3个报文段才收到一个ACK,A

15、CK确认的是哪一个报文段呢?,Computer networks,确认号,解决方法:ACK也带上序号,这个序号就叫做确认号。 确认号可以有几种含义,只介绍TCP中使用的含义。 在TCP中,确认号的含义是这个确认号之前(不包括确认号本身)的数据都已正确收到,希望再接收从这个确认号开始的数据. 例如,接收方B向发送方A发送了确认号500,意思是:B已正确收到A发送的序号在500之前(不包括500)的所有数据,希望A再发送序号从500开始的数据。 改进后的协议在收到ACK之前可以发送很多数据,有必要对数量加以限制。 已发送未确认的数据量达到一个限制值时,要停止发送,等待ACK到来,收到ACK后,已发

16、送未确认的数据量减少到了限制值以下,就可以继续发送数据了,这个限制值叫做窗口。,Computer networks,窗口,假设窗口是100字节,发送方A向接收方B发送了100字节数据后,如果没有收到ACK,这100字节数据就是已发送未确认的数据,已经达到了窗口大小,A就要停止发送。 之后A收到一个ACK,指出B已经正确接收了70字节的数据,已发送未确认的数据量就变成了100-70=30字节. 这时A可以再发送70字节数据,已发送未确认的数据量又变成了30+70=100字节,又达到了窗口大小,A再次停止发送,直到收到新的ACK。,Computer networks,5.4.2 TCP的可靠传输机制,改进的停止-等待协议实现了可靠传输,TCP实现可靠传输的机制与此基本相同。 发送方发送若干数据,达到窗口大小后停止,接收方正确收到后返回一个ACK。 当数据、ACK丢失或出错后,发送方会超时重传。 可靠

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号