《传输层概述用户数据报协议优秀课件.ppt》由会员分享,可在线阅读,更多相关《传输层概述用户数据报协议优秀课件.ppt(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、传输层概述用户数据报协议第1页,本讲稿共43页本讲主要内容n传输层概述n用户数据报协议UDPn传输控制协议TCP 2第2页,本讲稿共43页8.1传输层概述n传输层是整个网络体系结构中的关键层次之一,其根本任务是为两个主机中的应用进程提供通信服务。在传输层中共有两个协议,分别是TCP协议与UDP协议,TCP协议的控制机制非常复杂,从而保证了应用进程之间的可靠数据传输。3第3页,本讲稿共43页8.1.1传输层的设计问题n传输层的最高目标是向其用户(一般是指应用层的进程,即运行着的应用程序),提供有效、可靠且价格合理的服务。n为了达到这一目标,传输层利用了网络层所提供的服务。传输层完成这一工作的硬件
2、和软件称为传输实体(transport entity)。传输实体可能在操作系统内核中,或在一个单独的用户进程内,也可能是包含在网络应用的程序库中,或是位于网络接口卡上。n网络层、传输层和应用层的逻辑关系如图8-1所示。4第4页,本讲稿共43页图8-1 网络层、传输层和应用层的逻辑关系5第5页,本讲稿共43页传输层协议通常具有几种责任n一种责任就是创建进程到进程的通信,通常使用端口号来完成这种功能。n另一种责任是在传输层提供控制机制,比如差错控制、流量控制及拥塞控制等。n另外,传输层还应当负责为进程建立连接机制,这些进程应当能够向传输层的发送数据流。6第6页,本讲稿共43页传输层的任务n传输层的
3、任务是为两个主机中的应用进程提供通信服务。这与网络层中的IP协议有什么区别呢?nIP协议是负责计算机级的通信,换句话说,是提供主机到主机的通信服务。作为网络层协议,IP协议只能将报文交付给目的计算机。但是,这是一种不完整的交付。这个报文还必须送交到正确的进程。这正是传输层协议所要做的事。7第7页,本讲稿共43页图8-2给出了IP协议与传输层协议作用范围的区别。应用进程应用进程IP 协议的作用范围(提供主机之间的逻辑通信)TCP 和 UDP 协议的作用范围(提供进程之间的逻辑通信)因 特 网8第8页,本讲稿共43页传输层的任务n另外,除了在作用范围上有所区别,传输层还比网络层提供更可靠的传输服务
4、。分组丢失、数据残缺均会被传输层检测到并采取相应的补救措施。9第9页,本讲稿共43页8.1.2 端口n现在的操作系统都支持多用户、多任务的运行环境。一个计算机在同一时间可运行多个进程。在网络上,主机是用IP地址来定义的。要定义主机上的某一个进程,便需要第二个标识符,叫做端口号。n端口是个非常重要的概念,因为应用层的各种进程是通过相应的端口与运输实体进行交互的。因此在运输协议数据单元的首部中都要写入源端口号和目的端口号。当运输层收到IP层交上来的数据,就要根据其目的端口号来决定应当通过哪一个端口上交给目的应用进程。10第10页,本讲稿共43页端口号n在TCP/IP协议族中,端口号由16位二进制数
5、表示,换算为十进制,则是0-65536之间的整数。n端口号只有本地意义,即端口号只是为标志本计算机应用层中的各进程,不同计算机的相同端口号是没有联系的。11第11页,本讲稿共43页端口号分为两类n一类是由因特网指派名字和号码公司ICANN负责分配给一些常用的应用层程序固定使用的熟知端口(well-known port),其数据一般为0-1023,表8-1中便列出了部分常见的熟知端口。“熟知”就表示这些端口号是TCP/IP体系确定并公布的,因而是所有用户进程都知道的。n另一类是一般端口,用来随时分配给请求通信的客户进程,一般来说,客户进程所使用的端口号都是临时产生的,通信完成后便释放,所以又称短
6、暂端口号。12第12页,本讲稿共43页表8-1 常见的熟知端口协议端口说明FTP21文件传输协议TELNET23远程登录协议SMTP25简单邮件传输协议DNS53域名解析协议DHCP67动态主机配置协议TFTP69快速文件传输协议HTTP80超文本传输协议SNMP161简单网络管理协议13第13页,本讲稿共43页套接字n为了在通信时能确定唯一主机的唯一进程,就必须把端口号和主机的IP地址结合起来一起使用,称为套接字地址(socket address),或直接称为SOCKET。n在实际通信过程中,我们需要一对套接字地址:客户套接字地址和服务器套接字地址,客户套接字地址惟一定义了客户进程,而服务器
7、套接字唯一地定义了服务器进程。这四种信息分别是IP首部与运输协议数据单元首部中的一部分。14第14页,本讲稿共43页套接字的组成IP 地址200.10.10.1端口号21 200.10.10.1,2115第15页,本讲稿共43页8.2用户数据报协议UDP8.2.1 UDP概述n用户数据报协议UDP是传输层协议之一,其实现功能较为简单,但由于其灵活、开销小等特点,使得它更适合某些应用。nUDP提供无连接的服务。这表示UDP发送出的每一个用户数据报都是独立的数据报。用户数据报并不进行编号,也没有建立连接和释放连接的过程,每一个用户数据报可以走不同的路径。nUDP是一个不可靠的传输层协议。16第16
8、页,本讲稿共43页8.2.2 UDP用户数据报 nUDP分组叫做用户数据报,有8个字节的固定首部。源端口目的端口长 度检验和数 据首 部UDP 用户数据报17第17页,本讲稿共43页用户数据报首部中的字段n源端口号:源端口号:这是在源主机上运行的进程所使用的端口号。有16位长,这就是表示端口号的范围为0-65535。n目的端口号:目的端口号:这是在目的主机上运行的进程使用的端口号,16位长。n总长度:总长度:是用户数据报的总长度,即首部加上数据后的总长度,16位长。n检验和:检验和:这个字段用来检验整个用户数据报出现的差错。18第18页,本讲稿共43页8.3 传输控制协议TCP8.3.1 TC
9、P概述n与UDP不同,TCP是一种面向流的协议。n在UDP中,进行把一块数据发送给UDP以便进行传递。UDP在这块数据上添加自己的首部,这就构成了数据报,然后再把它传递给IP来传输。这个进程可以一连传递好几个块数据给UDP,但UDP对每一块数据都是独立对待,而并不考虑它们之间的任何联系。nTCP则允许发送进程以字节流的形式来传递数据,而接收进程也把数据作为字节流来接收。TCP创建了一种环境,它使得两个进程好像被一个假想的“管道”所连接,而这个管道在Internet上传送两个进程的数据,发送进程产生字节流,而接收进程消耗字节流。19第19页,本讲稿共43页报文段n由于发送进程和接收进程产生和消耗
10、数据的速度并不一样,因此TCP需要缓存来存储数据。在每一个方向上都有缓存,即发送缓存和接收缓存。另外,除了用缓存来处理这种速度的差异,在发送数据前还需要一种重要的方法,即将字节流分割为报文段(Segment)。报文段是TCP处理的最小数据单元。报文段的长度可以是不等的。20第20页,本讲稿共43页TCP发送与接收数据过程的示意图如图8-5所示。21第21页,本讲稿共43页TCP特点nTCP提供全双工服务,即数据可在同时间双向流动,每一个TCP都有发送缓存和接收缓存,而两个方向都可以发送报文段。nTCP是面向连接协议,它有连接建立、数据传输、连接释放三个过程。nTCP是可靠的传输协议,它使用确认
11、机制来检查数据是否安全和完整地到达。22第22页,本讲稿共43页8.3.2 TCP报文段nTCP报文段同样由首部和数据两部分组成。但其首部要比UDP复杂的多,其首部前20个字节是固定的,后面有4N字节是根据需要而增加的选项(N为整数)。因此,TCP首部长度在20-60字节之间。23第23页,本讲稿共43页图8-6 TCP报文段格式TCP首部20 字节的固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FIN32 bitSYNRSTPSHACKURG比特 0 8 16 24 31填 充TCP 数据部分TCP 首部TCP 报文段2
12、4第24页,本讲稿共43页TCP报文段首部字段n源端口和目的端口字段源端口和目的端口字段:各占 2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。n序号字段:序号字段:占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。n确认号字段:确认号字段:占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。n数据偏移:数据偏移:占 4 bit,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。“数据偏移”的单位不是字节而是 32 bit 字(4 字节为计算
13、单位)。25第25页,本讲稿共43页TCP报文段首部字段n保留字段:保留字段:占 6 bit,保留为今后使用,但目前应置为 0。n紧急比特紧急比特 URGURG:当 URG 1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。n确认比特确认比特 ACKACK:只有当 ACK 1 时确认号字段才有效。当 ACK 0 时,确认号无效。n推送比特推送比特 PSH(PuSH)PSH(PuSH):接收 TCP 收到推送比特置 1 的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。26第26页,本讲稿共43页TCP报文段首部字段n复
14、位比特复位比特 RST(ReSeT)RST(ReSeT):当 RST 1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。n同步比特同步比特 SYNSYN:同步比特 SYN 置为 1,就表示这是一个连接请求或连接接受报文。n终止比特终止比特 FIN(FINal)FIN(FINal):用来释放一个连接。当FIN 1 时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。n窗口字段:窗口字段:占 2 字节。窗口字段用来控制对方发送的数据量,单位为字节。TCP 连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对
15、方的发送窗口的上限。27第27页,本讲稿共43页TCP报文段首部字段n检验和:检验和:占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。n紧急指针字段:紧急指针字段:占 16 bit。紧急指针指出:在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。n选项字段:选项字段:长度可变。TCP 只规定了一种选项,即最大报文段长度 MSS(Maximum Segment Size)。MSS 告诉对方 TCP:“我的缓存所能接收的报文段的数据字段的最大长度是 MSS 个字节。”n填充字段:填充字段:这是为了使
16、整个首部长度是 4 字节的整数倍。28第28页,本讲稿共43页8.3.3 TCP的可靠性nTCP是一种可靠的传输协议。其可靠性体现在它可保证数据按序、无丢失、无重复的到达目的端。TCP报文段首部的数据编号与确认字段为这种可靠传输提供了保障。nTCP将所要传送的整个报文看成一个个字节组成的数据流,并使每一个字节对应于一个序号。在连接建立时,双方要商定初始序号。TCP每次发送的报文段的首部中的序号字段数值表示该报文段中的数据部分的第一个字节的序号。29第29页,本讲稿共43页序号的作用n接收站点在收到发送方发来的数据后依据序号重新组装所收到的报文段。在一个高速链路与低速链路并存的网络上,可能会出现
17、高速链路上的报文段比低速链路上的报文段提前到达的情况,此时就必须依靠序列号来重组报文段,以保证数据可以按序上交应用进程。nTCP的确认是对接收到的数据的最高序号(即收到的数据中的最后一个序号)进行确认。但返回的确认序号ACK是已收到的数据的最高序号再加1,该确认号既表示对已收数据的确认,同时表示期望下次收到的第一个数据字节的序号。30第30页,本讲稿共43页图8-7显示了TCP报文段传输时SEQ和ACK所扮演的角色。31第31页,本讲稿共43页超时和重传n在实际通信中,存在着超时和重传两种现象。如果在传输过程中丢失了某个序号的报文段,导致发送端在给定的时间段内得不到相应的确认序号,那么就确认该
18、报文段已被丢失并要求重传。已发送的TCP报文段会被保存在发送端的缓冲区中,直到发送端接收到确认序号才会消除缓冲区中的这个报文段。这种机制称为肯定确认和重新传输(Positive Acknowledgement and Retransmission,PAR),它是许多通信协议用来确保可信度的一种技术,工作过程如图8-8所示。32第32页,本讲稿共43页图8-8 超时和重传过程中序号与确认号的作用33第33页,本讲稿共43页序号的作用n序号的另一个作用是消除网络中的重复包(同步复制)。例如在网络阻塞时,发送端迟迟没有收到接收端发来的对于某个报文段的ACK信息,它可能会认为这个序号的报文段丢失了。于
19、是它会重新发送这一报文段,这种情况将会导致接收端在网络恢复正常后收到两个同样序号的报文段,此时接收端会自动丢弃重复的报文段。n序号和确认号为TCP提供了一种纠错机制,提高了TCP的可靠性。34第34页,本讲稿共43页8.3.4 TCP连接管理nTCP是面向连接的协议。面向连接的协议在源端和目的端之间建立一条虚路径。属于一个报文的所有报文段都沿着这条虚路径发送。在TCP通信中,整个过程分为三个阶段:连接建立、数据传送和连接释放。35第35页,本讲稿共43页建立连接nTCP以全双工方式传送数据。当两个机器中的两个TCP进程建立连接后,它们应当都能够同时向对方发送报文段。主动发起连接建立的应用进程叫
20、做客户方,而被动等待连接建立的应用进程叫做服务器方。n在连接建立过程中要解决以下三个问题:(1)要使每一方能够确知对方的存在。(2)要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。(3)能够对运输实体资源(如缓存大小,连接表中的项目等)进行分配。36第36页,本讲稿共43页用三次握手建立 TCP 连接 SYN,SEQ=x主机 BSYN,ACK,SEQ=y,ACK=x 1ACK,SEQ=x+1,ACK=y 1被动打开主动打开确认确认主机 A连接请求37第37页,本讲稿共43页2释放连接n传输数据的双方中的任何一方都可以关闭连接。当一个方向的连接被终止时,另外一方还可继续向对
21、方发送数据。因此,要在两个方向都关闭连接就需要四个动作,被释放连接的过程被称为四向握手。38第38页,本讲稿共43页TCP 连接释放的过程 FIN,SEQ=xACK,SEQ=y,ACK=x 1ACK,SEQ=x+1,ACK=y 1应用进程释放连接A 不再发送报文FIN,ACK,SEQ=y,ACK=x+1主机 B主机 A通知主机应用进程应用进程释放连接B 不再发送报文确认确认从 A 到 B 的连接就释放了,连接处于半关闭状态。相当于 A 向 B 说:“我已经没有数据要发送了。但你如果还发送数据,我仍接收。”至此,整个连接已经全部释放。39第39页,本讲稿共43页8.3.5滑动窗口与流量控制n利用
22、滑动窗口进行流量控制的方法在数据链路层协议中就采用过。为了提高报文段的传输效率,TCP采用大小可变的滑动窗口进行流量控制。n窗口大小的单位是字节。在TCP报文段首部的窗口字段写入的数值就是当前给对方设置的发送窗口数值的上限。发送窗口在连接建立时由双方商定。但在通信过程中,接收端可根据自己的资源情况,随时动态地调整对方的发送窗口上限值。40第40页,本讲稿共43页滑动窗口n滑动窗口允许发送方在收到接收方的确认信息之前发送多个数据段。n窗口大小决定了在收到确认信息之前,一次可以传送的数据段的最大数目。窗口越大,主机一次可以传输的数据段就越多。当主机发送完窗口允许的最大数量的数据段后,就必须等待确认信息。在接收到确认信息后才可以再发送下面的数据段。n窗口的大小并非一成不变的,接收端可根据自己的资源情况,动态地调整发送方的发送窗口大小。41第41页,本讲稿共43页大小可变的滑动窗口应用如图8-11所示。图8-11 大小可变的滑动窗口在通信中的应用42第42页,本讲稿共43页小结n传输层重要概念:传输实体、端口、套接字n用户数据报协议UDPn首部n传输控制协议TCPn首部n序号(初始序号、ACK确认号)n连接管理(三次握手协议)n流量控制(滑动窗口)43第43页,本讲稿共43页