您好,欢迎访问三七文档
第5章运输层Computernetworks第5章运输层•本章重点与学习目标•掌握端口的概念与意义;•掌握UDP与TCP各自的特点与适用范围;•掌握NAT的工作过程。第5章运输层Computernetworks5.1案例需求•鲁中学院校园网申请的公开IP地址远远不能满足需求,故用私有IP地址。•理论上讲,使用私有IP地址的计算机不能接入因特网。•必须设法让校园网内的计算机全部能上网。•在一些学校的校园网内,访问因特网的速度较快,可是从校外访问学校网站的速度却很慢。•鲁中学院校园网能否避免这种情况呢?第5章运输层Computernetworks5.2运输层概述5.2.1运输层的任务•运输层实体仅存在于计算机中,交换机、路由器等网络设备内没有运输层实体.•网络层能使数据从发送计算机到达接收计算机.•运输层起什么作用呢?•一台计算机中能够同时运行多个程序,这种运行着的程序称为进程。•像浏览器、QQ聊天窗口这样的进程,用户直接使用它们,一般位于应用层,所以叫做应用进程。•网络通信的实际参与者不是某台计算机,而是这台计算机中运行着的某个应用进程。第5章运输层Computernetworks•计算机A中有两个应用进程,分别是进程1与进程2,进程1正在与计算机B中的进程1通信,进程2正在与计算机C中的进程1通信,这样一来,就有两对实体参与通信,可以记为:•(计算机A:进程1,计算机B:进程1)•(计算机A:进程2,计算机C:进程1)因特网进程1进程2进程1进程1计算机A计算机C计算机B第5章运输层Computernetworks运输层任务--复用与分用•复用指发送计算机的运输层实体收集多个应用进程的数据,再使用网络层实体提供的服务把数据发送出去;•分用指接收计算机的运输层实体收到网络层实体交来的数据后,再正确分配到不同的应用进程中去.进程1运输层实体进程3进程2网络层实体网卡进程1运输层实体进程3进程2网络层实体网卡(a)复用(b)分用发送计算机接收计算机第5章运输层Computernetworks运输层任务•除复用与分用外,运输层还要完成以下两个任务:•(1)当数据在传输过程中出错或者丢失,要重新传输一遍,以保证数据的可靠传输。•网络层协议、数据链路层协议都不保证数据的可靠传输,可靠传输的任务就落在了运输层身上。•(2)当网络中数据过多时,就会出现拥塞,这时数据丢失严重,时延急剧增大,要设法降低数据发送速率,以缓解拥塞,这叫做拥塞控制。第5章运输层Computernetworks5.2.2运输层的端口•运输层为实现复用与分用功能,必须能够区分不同的应用进程,以便正确分配数据。•区分不同应用进程的办法:给每个应用进程设置不同的标识,这个标识就是端口(port)号。•一个端口号由16位二进制数组成,范围是0~216-1,即0~65535。•把网络设备上的物理接口一律叫做接口,端口专指运输层的端口。•IP地址标识了一台计算机,端口号则标识了计算机中的一个应用进程,IP地址与端口号组合在一起,叫做套接字(socket),套接字标识了世界范围内的一个应用进程。第5章运输层Computernetworks•IP地址与端口号间通常用冒号隔开,如210.44.176.198:80。•一对套接字标识了通信的两个应用进程,例如,计算机222.206.70.80中的2000应用进程与计算机210.44.176.198中的80应用进程通信,通常记为:•(222.206.70.80:2000,210.44.176.198:80)•为区分不同的应用进程,同一台计算机中的端口号不能相同,由于不同计算机的IP地址不同,所以不同计算机中的端口号可以相同。•运输层的协议数据单元叫做报文段(segment),在报文段首部中,有源端口号与目的端口号,源端口号是发送进程的端口号,目的端口号则是接收进程的端口号。第5章运输层Computernetworks辨清几个概念•接口物理层•源物理地址与目的物理地址链路层•源IP地址与目的IP地址网络层•源端口号与目的端口号运输层第5章运输层Computernetworks熟知端口•当用浏览器打开一个网站的网页时,计算机为浏览器临时分配一个端口号,浏览器关闭时就收回这个端口号,可以再分配给其他应用进程,这叫做动态端口号。•网站服务器进程的端口号怎样呢?•浏览网页时必须指明服务器进程的端口号,但我们上网时没有这样做。•当用户没有指明网站服务器进程的端口号时,浏览器就使用一个固定的端口号访问服务器进程,这个固定的端口号叫做熟知端口(well-knownport)号或周知端口号。•之所以叫做熟知端口号,是因为这些服务器进程的端口号是固定分配好的,大家都知道。第5章运输层Computernetworks常见的熟知端口号•所有的熟知端口号都在0~1023之间,由因特网名称与号码分配公司(ICANN)分配。•熟知端口号根据应用层协议分配,不同的应用层协议服务器进程分配不同的熟知端口号。应用层协议协议用处熟知端口号FTP传输文件21telnet远程终端接入23SMTP传输电子邮件25DNS域名转换53HTTP浏览网页80第5章运输层Computernetworks不用熟知端口号•服务器进程也可以不使用熟知端口号,这在服务器上通过设置就可以做到,但这时要设法把新的端口号通知用户。•如果网站,就必须通知用户。•用户在浏览器地址栏上输入就可以打开网页。•输入则打不开网页。•让所有用户都知道新的端口号非常麻烦,一般不要修改服务器进程的熟知端口号。第5章运输层Computernetworks•熟知端口号仅分配给服务器进程,客户进程(如浏览器进程)由计算机临时分配端口号。•浏览器与服务器进程间的IP数据报的首部中有源IP地址与目的IP地址,IP数据报装载了运输层的报文段,报文段首部中则有源端口号与目的端口号。从到源IP地址目的IP地址源端口号目的端口号浏览器服务器进程1.1.1.12.2.2.2120080服务器进程浏览器2.2.2.21.1.1.1801200第5章运输层Computernetworks5.3用户数据报协议•传输控制协议(TransmissionControlProtocol,TCP)。•对于运输层的复用与分用、可靠传输与拥塞控制这3个任务,UDP仅完成复用与分用的任务,TCP则完成全部3个任务。•对于UDP与TCP,应用层协议如何选择使用呢?•应用层协议要根据自己的情况来确定使用UDP还是TCP。第5章运输层Computernetworks应用层协议选用UDP与TCP的情况•不需要可靠传输的应用层协议应该选用UDP,如多媒体数据,在音频与视频中出现少量差错完全可以接受。•数据量特别少的应用层协议也应该选用UDP,如DNS的一次通信过程只有一来一去两个报文,也应该选用UDP。•若使用TCP,则TCP的控制用数据比DNS本身的数据还要多,效率太低。•其他情况应该选用TCP,如传输文件。应用层协议协议用处UDP/TCPFTP传输文件TCPTelnet远程终端接入TCPSMTP传输电子邮件TCPHTTP浏览网页TCPDNS域名转换UDPDHCP自动配置IP协议UDPSNMP网络管理UDPRTP传输多媒体数据UDP第5章运输层ComputernetworksUDP的报文段格式源端口号目的端口号长度检验和数据部分32位8字节第5章运输层Computernetworks5.4传输控制协议•TCP与UDP的比较如表。•传输控制协议(TransmissionControlProtocol,TCP)。•与UDP不同,TCP除具有复用与分用功能外,还具有可靠传输与拥塞控制的功能。•UDP是无连接的,TCP则是面向连接的,发送TCP报文段前需要先建立连接,发送完毕后需要拆除连接。•TCP的连接是全双工的,也就是说,发送数据与接收数据使用同一条连接。协议复用与分用可靠传输拥塞控制连接TCP是是是面向连接UDP是否否无连接第5章运输层Computernetworks5.4.1可靠传输的方法•TCP最重要的功能是可靠传输,以太网与网络层的IP协议都是不保证可靠传输的,所以TCP极端重要。•TCP使用了很多复杂的办法来实现可靠传输。•发送方发送一个报文段后立即停止,接收方正确收到报文段后返回一个确认(Acknowledgement,ACK),发送方收到ACK后再发送第2个报文段,如此直到数据全部发送完毕。第5章运输层Computernetworks停止-等待协议•(a)是正常情况,A发送报文段0后停止,B收到后返回一个ACK,A收到ACK后再发送新的报文段1。•因为每发送一个报文段就要停下等待确认,所以这个协议叫做停止-等待协议。丢失报文段0→报文段1→ACKACKAB报文段0→报文段0→NAKACKAB报文段0→报文段0→ACKAB报文段0→ACKAB(a)正常情况(b)数据出错(c)数据丢失(d)确认丢失时间出错重传丢失重传超时重传超时ACK→报文段0第5章运输层Computernetworks停止-等待协议•非正常情况•(b)表示B发现报文段0出错,B要返回一个否定确认NAK,A收到NAK后重传报文段0;•(c)表示报文段0在传输过程中丢失,B收不到,自然也不会返回ACK。A每发送完一个报文段,就开始计时,超时后仍没有收到ACK,就重传该报文段;•(d)表示ACK丢失,A超时后重传报文段0。丢失报文段0→报文段1→ACKACKAB报文段0→报文段0→NAKACKAB报文段0→报文段0→ACKAB报文段0→ACKAB(a)正常情况(b)数据出错(c)数据丢失(d)确认丢失时间出错重传丢失重传超时重传超时ACK→报文段0第5章运输层Computernetworks考虑问题•现在可靠传输问题得到了初步解决,但是以下细节问题仍要仔细考虑:•1.错误检测:接收方为了发现出错,必须使用某种检错技术。•2.确认•停止-等待协议中使用了确认ACK与否定确认NAK。•发送方A每发送完一个报文段,就开始计时,如果接收方B发现报文段出错时不发送NAK,A在超时后仍会重传这个报文段。•对比(b)与(c),能够发现没有NAK也是可以的。丢失报文段0→报文段1→ACKACKAB报文段0→报文段0→NAKACKAB报文段0→报文段0→ACKAB报文段0→ACKAB(a)正常情况(b)数据出错(c)数据丢失(d)确认丢失时间出错重传丢失重传超时重传超时ACK→报文段0第5章运输层Computernetworks3.超时重传•在超时重传中,需要确定一个合理的超时时间。•超时时间过长,报文段可能早已丢失或出错,发送方却还在等待,浪费许多时间;•超时时间过短,可能刚刚重传后就收到了确认,无谓地重传了一次。•合理的超时时间应该比往返时延RTT(从发出报文段到收到确认的时间)略大.•但网络状况不断变化,往返时延也是不断变化的,确定合理的超时时间是一个比较麻烦的事情。第5章运输层Computernetworks4.序号•在图(d)中,因为丢失确认发送方A重新发送了报文段0,但之前接收方B已经收到了报文段0,这样B就收到了重复的两个报文段,这也是一个错误。•B应该丢弃重复的报文段,但是B需要确定报文段是不是重复的。•报文段的内容相同就认为是重复的?•不可行,因为应用层协议有可能重复发送同一数据。•解决办法是给报文段添加序号,每个报文段的序号各不相同,接收方根据序号来判断报文段是否重复。•图5.4中报文段0与报文段1中的0与1就是序号。丢失报文段0→报文段1→ACKACKAB报文段0→报文段0→NAKACKAB报文段0→报文段0→ACKAB报文段0→ACKAB(a)正常情况(b)数据出错(c)数据丢失(d)确认丢失时间出错重传丢失重传超时重传超时ACK→报文段0第5章运输层Computernetworks改进的停止-等待协
本文标题:第5章运输层
链接地址:https://www.777doc.com/doc-234840 .html