《第4章传输层.ppt》由会员分享,可在线阅读,更多相关《第4章传输层.ppt(69页珍藏版)》请在优知文库上搜索。
1、 计算机网络实用教程 第4章 传输层 目 录 n4.14.1概述概述 4.1.1 4.1.1 传输层和网络层的关系传输层和网络层的关系 4.1.2 4.1.2 因特网传输层概述因特网传输层概述 4.1.3 4.1.3 多路复用与多路分解多路复用与多路分解n4.24.2用户数据报协议用户数据报协议UDPUDP 4.2.1 UDP 4.2.1 UDP协议概述协议概述 4.2.2 UDP4.2.2 UDP报文段的结构报文段的结构 4.2.3 UDP4.2.3 UDP校验和校验和 目 录n4.34.3可靠数据传输的原理可靠数据传输的原理 4.3.1 4.3.1 构造可靠数据传输协议构造可靠数据传输协议
2、 4.3.2 4.3.2 流水线可靠数据传输协议流水线可靠数据传输协议 4.3.3 Go-Back-N4.3.3 Go-Back-N 4.3.4 4.3.4 选择重传选择重传n4.44.4面向连接的面向连接的TCPTCP协议协议 4.4.1 TCP4.4.1 TCP连接连接 4.4.2 TCP4.4.2 TCP报文段结构报文段结构 目 录 4.4.3 4.4.3 可靠数据传输可靠数据传输 4.4.4 TCP4.4.4 TCP的流量控制的流量控制 4.4.5 TCP4.4.5 TCP连接管理连接管理4.54.5拥塞控制拥塞控制 4.5.1 4.5.1 拥塞控制的基本概念拥塞控制的基本概念 4.5
3、.2 4.5.2 拥塞控制的基本方法拥塞控制的基本方法 4.5.3 TCP 4.5.3 TCP 的拥塞控制的拥塞控制本章重点内容本章重点内容 本章首先讨论传输层和网络层之间的关系,接着讨论UDP协议,然后针对计算机网络中最基本的问题之一,即两个实体怎样才能在一种会丢失或损坏数据的媒体上可靠的通信,逐步介绍用来解决这些问题的技术,最后讨论面向连接TCP协议及拥塞控制。如下图传输层在网络体系结构如下图传输层在网络体系结构中所处的地位。中所处的地位。4.1概述概述n传输层协议为运行在不同主机上的应用进程之间提供了逻辑通信,应用进程之间使用传输层提供的逻辑通信功能发送报文,而无需考虑承载这些报文的物理
4、基础设施。n传输层协议为其调用的网络应用程序提供不同的传输层服务。因特网有两种协议,即TCP和UDP。他们分别提供面向连结和无连接的服务。4.1.1 4.1.1 传输层和网络层的关系传输层和网络层的关系 在TCP/IP协议栈中,传输层位于网络层之上,传输层为运行在不同主机上的进程之间提供了“逻辑通信”。逻辑通信的意思是:传输层之间的通信好像是沿水平方向传送数据。但事实上这两个传输层之间并没有一条水平方向的物理连接。网络层则提供了主机之间的逻辑通信。传输层协议只工作在端系统。如下图4.2 所示端到端的协议 传输层看到的通信系统传输层看到的通信系统 路由器路由器 高层传输层网络层网络接口网络层传输
5、层网络接口高层网络接口网络层网络1网络2 4.1.2 因特网传输层概述nTCP/IP网络,为应用层安排了两种截然不同的传输层协议。一种是UDP协议(用户数据报协议User Datagram Protocol),为调用它的应用程序提供了一种不可靠、无连接的服务。另一种是TCP(传输控制协议Transmission Control Protocol),为调用它的应用程序提供了一种可靠的、面向连接的服务。n设计一个网络应用程序时,该程序的开发人员必须指定使用这两种传输层协议的哪一种,是选择UDP还是选择TCP.4.1.2 因特网传输层概述nUDP和TCP最基本的任务是,将两个端系统间IP的交付服务扩
6、展为运行在两个端系统上的进程之间的交付服务。n将主机间交付扩展到进程间交付被称之为传输层的多路复用(transport-layermultiplexing)与多路分解(demultiplexing)。我们将在下一节讨论传输层的多路复用与多路分解。4.1.2 因特网传输层概述nUDP和TCP还可以通过在其报文段的首部中添加差错检测字段从而提供完整性检查。进程间数据交付和差错检查是两种最低限度的运输层服务,也是UDP所能提供的仅有的两种服务。特别是,UDP和IP一样,它也是一种不可靠服务,即不能保证一个进程所发送的数据能够完整无损地到达目的进程。4.1.3 多路复用与多路分解4.1.3 多路复用与
7、多路分解n上图4.3所示传输层的多路复用(multiplexing)与多路分解(demultiplexing),也就是将网络层所提供的主机到主机交付服务扩展到在主机上运行的应用程序到应用程序的交付服务,多路复用与多路分解服务是所有计算机网络都需要的。4.1.3 多路复用与多路分解n接收主机将一个收到的传输层报文段定向到适当的套接字,在每个传输层报文段中设置了几个字段,在接收端,传输层检查这些字段并标识出接收套接字,然后将报文段定向到该套接字。将传输层报文段中的数据交付到正确的套接字的工作称为多路分解。n从在原主机的不同套接字中收集数据块,并为每个数据块封装上首部信息从而生成报文段,然后将报文段
8、传递到网络层的工作称为多路复用。传输层是怎样实现多路分解服务的呢?n主机上的每个套接字被分配一个端口号,端口是个非常重要的概念,因为应用层的各种进程是通过相应的端口与运输实体进行交互。端口用一个16bit端口号进行标志。端口n端口号分为两类,一类是由因特网指派名字和号码公司ICANN负责分配给一些常用的应用层程序固定使用的熟知端口(well-known port),其数值一般为01023,例如:n表4.1常用的应用层程序固定使用的熟知端口表4.1常用的应用层程序固定使用的熟知端口4.1.3 多路复用与多路分解nTCP中的多路复用与多路分解可以分为两种:n无连接的多路复用与多路分解;无连接的服务
9、就是在传送数据之前不需要建立连接,数据传送结束后,不需要给出任何确认。n面向连接的多路复用与多路分解。面向连接的服务要求在传送数据之前先建立连接,数据结束后要释放连接。TCP提供的是面向连接的服务。4.24.2用户数据报协议用户数据报协议UDPUDP n4.2.1 UDP协议概述表协议概述表n如下表如下表4.2给出了一些应用和应用层协议给出了一些应用和应用层协议主要使用的传输层协议。主要使用的传输层协议。n4.2.2 UDP报文段的结构报文段的结构 UDPUDP信息包由信息包由UDPUDP标题和数据组成。标题和数据组成。UDPUDP的的标题结构如图所示标题结构如图所示,它由它由5 5个域组成:
10、源个域组成:源端端口端端口(SourcePort),(SourcePort),目的地端口目的地端口(DestinationPort)(DestinationPort)、用户数据包的长度、用户数据包的长度(Length)(Length)和校验和(和校验和(Checksum)Checksum)。4.2用户数据报协议用户数据报协议UDP 4.2.2 UDP报文段的结构报文段的结构 32位 0 15 16 32源端口号用户数据包的长度检查和目的端口号数据(Date)4.2.3 UDP4.2.3 UDP校验和校验和nUDP校验和提供差错检测。即效验和用于确定当UDP报文段从源到达目的时,其中的比特是否发
11、生了改变(例如,由于链路中或者当在路由器中存储数据时的噪声干扰)。发送方的UDP对报文段中的所有16比特字的和进行1的补运算,求和时遇到的任何溢出都被丢弃。得到的结果放在UDP报文段中的效验和字段。4.34.3可靠数据传输的原理可靠数据传输的原理n如何得到一个完整的可靠数据传输协议呢?我们来讨论下面两个协议n1、完全可靠信道上的可靠数据传输:n2、具有比特差错信道上的可靠数据传输:4.3.1 构造可靠数据传输协议构造可靠数据传输协议n控制报文使得接收方可以让发送方知道哪些内容被正确接收,哪些内容接收有误从而需要重传。在计算机网络环境中,基于这样的重传机制的可靠数据传输协议叫自动重传请求协议(A
12、RQ)4.3.1 构造可靠数据传输协议构造可靠数据传输协议n基本上,ARQ协议中还需要另外三种功能来处理存在的比特差错:1.差错检测;2.接收方反馈;3.重传 4.3.2 流水线可靠数据传输协议 n不使用停等方式运行,允许发送方发送多个分组而无需等待确认;由于从发送方向接收方传输的众多分组可以被看成是填充到一条流水线中,故这种技术被称为流水线(pipelining)。4.3.3 Go-Back-N 4.3.3 Go-Back-N(GBN)nGo-Back-N协议中,允许发送方传输多个分组(当有多个分组时)而不需等待确认,但它也受限于在流水线中未确认的分组数不能超过最大允许数N。那些已被传输但还
13、未被确认的分组的许可序号范围可以被看成是一个在序号范围内大小为N的“窗口”。随着协议的运行,该窗口在序号空间内向前滑动。因此,N常被称为窗口长度(window size),GBN协议常被称为滑动窗口协议(slidingwindow protocol)。4.3.4 4.3.4 选择重传选择重传n在GBN协议中本身也存在性能问题。尤其是当窗口长度和带宽时延累积都很大时,在流水线中会有很多分组。一个分组的差错就可能引起GBN重传大量分组,其中许多分组也许根本没有必要重传。随着信道差错率的增加,流水线可能会被这些没必要重传的分组填满。选择重传(SR)协议通过让发送方仅重传那些它怀疑在接收方出错(即丢失
14、或受损)的分组从而避免了不必要的重传。4.3.4 4.3.4 选择重传选择重传n这种个别地、按需的重传要求接收方逐个地确认正确接收的分组,再次用窗口长度N来限制流水线中未被确认的分组数。然而,与GBN不同的是,发送方已经收到了对窗口中某些分组的ACK,发送方所采取的各种动作如下:1.从上层收到数据;2.超时;3.收到ACK.表4.4列出多种用于提供可靠数据传输的机制 4.44.4面向连接的面向连接的TCPTCP协议协议n4.4.1 TCP连接连接n4.4.2 TCP报文段结构报文段结构 TCP数据被封装在一个IP数据报中,如图4.5所示:4.4.2 TCP4.4.2 TCP报文段结构报文段结构
15、 IP数据包 TCP段IP段IP有效负载TCP报头段图4-6给出了TCP报文段的结构 4.4.4 TCP4.4.4 TCP的流量控制的流量控制n为了提高报文段的传输效率,TCP采用大小可变的滑动窗口进行流量控制。窗口大小的单位是字节。在TCP报文段首部的窗口字段写入的数值就是当前给对方设置的发送窗口数值的上限。发送窗口在连接建立是由双发商定。但在通信的过程中,接受方可根据自己的资源情况,随时动态地调整对方的发送窗口上限值(可增大或减小)。4.4.4 TCP4.4.4 TCP的流量控制的流量控制n为了提高报文段的传输效率,TCP采用大小可变的滑动窗口进行流量控制。窗口大小的单位是字节。图4.7表
16、示的是在TCP中使用的窗口概念。4.4.4 TCP4.4.4 TCP的流量控制的流量控制 4.4.5 TCP4.4.5 TCP连接管理连接管理nTCP连接的三个阶段,TCP是面向连接的协议。TCP连接是用来传送TCP报文的。TCP连接的建立和释放是每一次面向连接的通信中必不可少的过程。因此,TCP连接就有三个阶段,即连接建立、数据传送和连接释放。TCP连接的管理就是使TCP连接的建立和释放都能正常地进行。4.4.5 TCP4.4.5 TCP连接管理连接管理在连接建立过程中要解决以下3个问题。(1)要使每一方能够确知对方的存在。(2)要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。(3)能够对传输实体资源(如缓存大小,连接表中的项目等)进行分配。TCP的连接建立采用客户服务器方式。主动发起连接建立的应用程序叫做客户(client),而被动等待连接建立的应用进程叫做服务器(server)。4.4.5 TCP4.4.5 TCP连接管理连接管理4.4.5 TCP4.4.5 TCP连接管理连接管理n设主机B中运行TCP的服务器进程,如图4.9所示,先发出一个被动打开(pas