第七章 传输层(精品).ppt
《第七章 传输层(精品).ppt》由会员分享,可在线阅读,更多相关《第七章 传输层(精品).ppt(56页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数字通信与计算数字通信与计算数字通信与计算数字通信与计算机网络技术基础机网络技术基础机网络技术基础机网络技术基础第第第第7 7章章章章 传输层传输层传输层传输层 本章学习目标本章学习目标有关传输层的一些概念和基础知识,传输协议(transport protocol)是整个网络体系结构中的关键之一。位于网络层与应用层之间,主要功能是负责应用程序之间的通信,主要有连接端口管理、流量控制、错误处理、数据重发等工作。在本章的学习中要求重点掌握和理解以下内容:l掌握有关端口和插口的概念,作用和使用方法l掌握关于TCP协议的基础知识l了解UDP协议的基础知识 第第第第7 7章章章章 传输层传输层传输层传输
2、层 7.1 7.1 传输层提供的服务传输层提供的服务传输层提供的服务传输层提供的服务 7.2 7.2 传输控制协议传输控制协议传输控制协议传输控制协议TCP TCP 7.3 7.3 用户数据协议用户数据协议用户数据协议用户数据协议UDP UDP 退出退出退出退出7.1 传输层提供的服务传输层提供的服务 7.1.1 7.1.1 传输层概述传输层概述传输层概述传输层概述 7.1.2 7.1.2 提供给高层的服务提供给高层的服务提供给高层的服务提供给高层的服务 7.1.3 TCP/IP7.1.3 TCP/IP协议中的传输层协议中的传输层协议中的传输层协议中的传输层 7.1.4 7.1.4 端口端口端
3、口端口 7.1.1 传输层概述传输层概述 传输层位于网络体系结构的第四层,如果将其上的各层均作为应用层,则传输层直接与上层应用层进行数据通信,是整个网络体系结构的核心部分。需要注意的是在通信子网中没有传输层,它只存在于通信子网以外的各主机中,如果将整个网络体系结构从网络功能和用户功能角度来划分,传输层不包括在网络功能部分,而是属于用户功能层的最低层。传输层的位置如图7-1所示。7.1.1 传输层概述传输层概述 7.1.2 提供给高层的服务提供给高层的服务 传输层的最终目标是利用网络层提供的服务向其用户(一般是应用层的进程),提供有效、可靠且价格合理的服务。其主要任务是:在优化网络服务的基础上,
4、从源端机到目的端机提供可靠的、价格合理的数据传输,使高层服务用户在相互通信时不必关心通信子网实现的细节,即与所使用的网络无关。所以在通信子网内的各个交换节点以及连接各通信子网的路由器中,都没有传输层。7.1.2 提供给高层的服务提供给高层的服务 例如,设两台计算机主机A和主机B要进行数据通信,如图7-2所示,在计算机A和计算机B上同时有两个应用程序在运行,每对应用程序需要通过两个互连的网络才能进行数据通信,如主机A上的应用程序AP1AP1要和主机B上的应用程序AP3AP3进行通信,数据传输的过程如图7-3所示:7.1.2 提供给高层的服务提供给高层的服务 图7-2多进程通信情况7.1.2 提供
5、给高层的服务提供给高层的服务 图7-3应用程序进行数据通信的过程7.1.2 提供给高层的服务提供给高层的服务 由上图可以看出数据在两台主机间传送的整个过程,在物理层上可以透明地传输数据的比特流;在数据链路层上使得各条链路能传送无差错的数据帧(数据帧按顺序、无丢失、不重复);在网络层上提供了路由选择和网络互连的功能,使得主机A发送的数据段能够按照合理的路由到达主机B。但是在这一过程中,到达主机B的数据并不一定是最可靠的,为了提高网络服务的质量,在传输层需要再次优化网络服务,并向高层用户屏蔽通信子网的细节,使高层用户看见的就好像在两个传输层实体之间有一条端到端的、可靠的、全双工的通信通路一样。7.
6、1.2 提供给高层的服务提供给高层的服务 在整个通信的过程中,数据在传输层上,才是第一次实现真正意义的端到端的数据通信。要想实现传输层的功能,必须在主机中装有传输层协议,此协议一般都可支持多个进程的连接。如上述例子中,它同时支持了两对应用进程进行通信。在传输层中完成传输功能的硬件和软件被称为传输实体TSAP(Transport Service Access Point),通过传输实体,传输层可以向应用层提供传输服务,具体的过程如图7-4所示:7.1.2 提供给高层的服务提供给高层的服务 图7-4传输层与其上下层之间的关系7.1.3 TCP/IP协议中的传输层协议中的传输层 在TCP/IP协议中
7、有两个并列的协议:UDP和TCP。UDP(UserDatagramProtocol,用户数据报协议)是面向无连接的,即在进行数据传输之前不需要建立连接,而目的主机收到数据报后也不需要发回确认。这种协议提供了一种高效的传输服务。TCP(TransmissionControlProtocol,传输控制协议)是面向连接的,即在进行数据传输之前需要先建立连接,而且目的主机收到数据报后要发回确认信息。这种协议提供了一种可靠的传输服务。与UDP相比提供了较多的功能,但是相对的报文格式和运行机制也较为复杂。7.1.4 端口端口 TCP/IP传输层可以通过协议端口(protocolport,简称端口)来标识通
8、信的应用进程。传输层就是通过端口与应用层的应用程序进行信息交互的,应用层各种用户进程通过相应的端口与传输层实体进行信息交互。端口实际上是一个16Bit长的地址,范围可以从0至65535。将0至1023端口号称为熟知端口(Well-KnownPort),其余1024至65535端口号称为一般端口或(动态)连接端口(Registered/Dynamic),在数据传输过程中,应用层中的各种不同的服务器进程不断地检测分配给它们的端口,以便发现是否有某个应用进程要与它通信。7.1.4 端口端口 图7-5各端口的意义7.1.4 端口端口 协议端口号关键字描述UDP42NAMESERVER主机名字服务器UD
9、P53DOMAIN域名服务器UDP77BOOTPClient客户端启动协议服务UDP78BOOTPServer服务器端启动协议服务UDP79TFTP简单文件传输协议UDP111RPC微系统公司RPCTCP20FTPData文件传输服务器(数据连接)TCP21FTPControl文件传输服务器(控制连接)TCP23Telnet远程终端服务器TCP25SMTP简单邮件传输协议TCP80HTTP超文本传输协议7.1.4 端口端口 图7-7通过SMTP进行通信的主机7.1.4 端口端口 为了使得多主机多进程通信时,不至于发生上述的混乱情况,必须把端口号和主机的IP地址结合起来使用,称为插口或套接字(S
10、coket)。由于主机的IP地址是唯一的,这样目的主机就可以区分收到的数据报的源端机了。插口包括IP地址(32位)和端口号(17位),共48位。如上图7-7所示:(124.33.13.55,200)和(127.45.21.51,25)就是一对插口,在整个Internet中,在传输层上进行通信的一对插口都必须是唯一的。在上述的例子中,使用的是TCP协议,若使用UDP协议,虽然在进行通信的进程间不需要建立连接,但是在每次传输数据时,都要给出发送端口和接收端口,因此同样也要使用插口。7.2 传输控制协议传输控制协议TCP 7.2.1 TCP7.2.1 TCP报文的格式报文的格式报文的格式报文的格式
11、7.2.2 TCP7.2.2 TCP的编号与确认的编号与确认的编号与确认的编号与确认 7.2.3 TCP7.2.3 TCP的流量控制机制的流量控制机制的流量控制机制的流量控制机制 7.2.4 TCP7.2.4 TCP的重发机制的重发机制的重发机制的重发机制 7.2.5 TCP7.2.5 TCP的传输连接管理的传输连接管理的传输连接管理的传输连接管理 7.2.1 TCP报文的格式报文的格式 图7-7TCP报文段格式7 7.2.2 TCP.2.2 TCP的编号与确认的编号与确认 TCP将所要传送的整个报文段看成是由一个个字节组成的,对于每一个字节进行编号。在传送数据之前,通信双方要首先商定好起始序
12、号,每一次传送数据时,都会将报文段中的第一个字节的序号放在报文段中的确认序号字段中。在TCP报文段首部含有确认序号字段,通过它可以完成TCP报文的确认,具体的确认是对接收到的数据的最高序号进行确认,返回的确认序号是已经收到的数据的最高序号加1。由于TCP采用全双工的通信方式,因此进行通信的每一方都不必专门发送确认报文段,可以在传送数据的同时进行确认,这种方式称为捎带确认。7.2.3 TCP7.2.3 TCP的流量控制机制的流量控制机制 两用户进程间的流量控制和链路层两相邻结点间的流量控制类似,都要防止快速的发送数据时超过接收者的能力,采用的方法都是基于滑动窗口的原理。但是链路层常采用固定窗口大
13、小,而传输层则采用可变窗口大小和使用动态缓冲分配。在TCP报文段首部的窗口字段写入的数值就是当前设定的接收窗口的大小。假设发送端要发送的数据为8个报文段,每个报文段的长度为100个字节,而此时接收端许诺的发送窗口为400个字节,具体情况如下图7-9所示:7.2.3 TCP7.2.3 TCP的流量控制机制的流量控制机制 图7-9 滑动窗口机制7.2.3 TCP7.2.3 TCP的流量控制机制的流量控制机制 实际上实现流量控制并非仅仅为了使得接收方来得及接收而已,还要有控制网络拥塞的作用。比如接收端正处于较空闲的状态,而整个网络的负载却很多,这时如果发送方仍然按照接收方的要求发送数据就会加重网络负
14、荷,由此会引起报文段的时延增大,使得主机不能及时地收到确认,因此会重发更多的报文段,更加剧了网络的阻塞,形成恶性循环。为了避免发生这种情况,主机应该及时地调整发送速率。7.2.3 TCP7.2.3 TCP的流量控制机制的流量控制机制 发送端主机在发送数据时,既要考虑到接收方的接收能力,也要考虑网络目前的使用情况,发送方发送窗口大小应该考虑以下几点:(1)通知窗口(advertised window):这是接收方根据自己的接收能力而确定的接收窗口的大小。(2)拥塞窗口(congestionwindow):这是发送方根据目前网络的使用情况而得出的窗口值,也就是来自发送方的流量控制。当中最小的一个最
15、为适宜,即:发送窗口=Min通知窗口,拥塞窗口 进行拥塞控制,Internet标准推荐使用三种技术,即慢启动(slow-start),加速递减(multiplicative decrease)和拥塞避免(congestion avoidance)。7.2.4 TCP7.2.4 TCP的重发机制的重发机制 重发机制是TCP协议中最重要和最复杂的问题之一。在这一过程中,关键在于如何设置定时器的时间,定时器的时间应该等于数据报文段往返时延,也就是等于从数据发出到收到对方确认所经历的时间。TCP采用了一种自适应算法来计算重发超时时间。所有发送正确的报文段的往返时延进行加权平均,得到报文段的平均往返时延
16、RT,而将TCP测量该往返时延所用的时间设为M,根据得到的时延,按照下列的公式进行计算修正的RT:RT=RT+(1-)M是修正因子,一般取值为7/8。7.2.4 TCP7.2.4 TCP的重发机制的重发机制 后来发现设为常量在程序中使用并不是很灵活。1988年,Jacobson提出一种动态的确定超时重发时间的方法,他提出的变化要与确认到达时间的概率密度函数的标准偏差大致成比例,并建议采用平均偏差作为对标准偏差的粗略估计。在这种算法中,需要保存另一个修正因子D(偏差值),按照下列公式进行新的计算:D=D+(1-)|RT-M|此时,Phil Karn提出了一种简单的建议:对于已经重发的数据段不需要
17、再修正它的超时重发时间,而是在每次传输失败时将超时时间加倍,直到该数据段传送成功为止。目前大多数TCP程的实现都是采用这种算法。7.2.5 TCP7.2.5 TCP的传输连接管理的传输连接管理 1.TCP1.TCP连接的建立连接的建立第一次握手:源端机发送一个带有本次连接序号的请求。第二次握手:目的主机收到请求后,如果同意连接,则发回一个带有本次连接序号和源端机连接序号的确认。第三次握手:源端机收到含有两次初始序号的应答后,再向目的主机发送一个带有两次连接序号的确认。7.2.5 TCP7.2.5 TCP的传输连接管理的传输连接管理 图7-10 TCP协议中连接建立的过程 7.2.5 TCP7.
18、2.5 TCP的传输连接管理的传输连接管理 2.2.连接的释放连接的释放 第一次握手:由进行数据通信的任意一方提出要求释放连接的请求报文段。第二次握手:接收端收到此请求后,会发送确认报文段,同时当接收端的所有数据也都已经发送完毕后,接收端会向发送端发送一个带有其自己序号的报文段。第三次握手:发送端收到接收端的要求释放连接的报文段后,发送反向确认。7.2.5 TCP7.2.5 TCP的传输连接管理的传输连接管理 图7-11 TCP连接的释放过程 7.3 7.3 用户数据协议用户数据协议UDPUDP 7.3.1 UDP7.3.1 UDP7.3.1 UDP7.3.1 UDP数据报的格式数据报的格式数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七章 传输层精品 第七 传输 精品
限制150内