2015协议分析-第5章传输层_第1页
2015协议分析-第5章传输层_第2页
2015协议分析-第5章传输层_第3页
2015协议分析-第5章传输层_第4页
2015协议分析-第5章传输层_第5页
已阅读5页,还剩110页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章传输层协议《网络协议分析及应用》第5章传输层协议2本章学习要求:掌握:用户数据报协议UDP。掌握:传输控制协议TCP。

《网络协议分析及应用》第5章传输层协议35.1网络环境中分布式进程通信的基本概念《网络协议分析及应用》第5章传输层协议4网络层及以下的各层实现了网络中主机之间的通信,但是数据通信不是最终的目的;计算机网络最本质的活动是分布在不同地理位置的主机之间的进程通信,以实现各种网络服务功能;设置传输层的主要目的就是要实现分布式进程通信。

《网络协议分析及应用》第5章传输层协议55.1.1单机系统中的进程通信方法

进程和进程通信是操作系统中的一个最基本的概念;程序是一个在时间上按照严格次序的前后相继的操作序列,是一个静态的概念;进程是一个动态的概念,它是一个程序对某个数据集的执行过程;《网络协议分析及应用》第5章传输层协议6正在运行的进程叫做运行态;等待分配CPU的进程叫做就绪态;等待其他的条件的进程叫做等待态;进程状态反映出进程执行过程的变化;要保证系统正常地工作,操作系统必须对进程的创建、撤消与状态转换进行控制;从进程的观点看,操作系统的核心则是控制和协调这些进程的运行,解决进程之间的通信。《网络协议分析及应用》第5章传输层协议7在解决单机环境下操作系统的进程通信中:BSDUNIX引入了管道(pipe)、命名管道(namedpipe)和软中断信号(signal)机制;AT&TUNIX引入了消息(message)、共享存储区(sharedmemory)和信号量(semaphore)等;UNIX系统的消息、共享存储区和信号量统称为进程通信(interprocesscommunication,IPC)机制;IPC机制也不适应于网络环境中的进程通信。《网络协议分析及应用》第5章传输层协议85.1.2网络环境中分布式进程通信的特点用一句最简单的话去描述计算机网络,那就是:

“计算机网络是分布在不同地理位置的多台独立的计算机系统的集合”。“独立的计算机系统”意味着连网的每一台计算机的操作与资源是由自己的操作系统所管理;用户共享的网络资源及网络所能提供的服务功能最终是通过网络环境中的分布式进程通信来实现的。《网络协议分析及应用》第5章传输层协议9网络环境中的进程通信与单机系统内部的进程通信的主要区别:网络中主机的高度自治性;不是在同一个主机系统之中,没有一个统一的高层进行控制与管理;网络中一台主机对其他主机的

•活动状态;

•位于其他主机系统中的各个进程状态;

•这些进程什么时间参与网络活动;

•希望与网络中哪一台主机的什么进程通信一概无从知道。《网络协议分析及应用》第5章传输层协议101.网络环境中分布式进程通信需要解决:进程命名与寻址方法多重协议的识别进程间相互作用的模式《网络协议分析及应用》第5章传输层协议112.网络环境中进程标识在一台计算机中,不同的进程用进程号或进程标识(processID)惟一地标识出来。网络环境中完整的进程标识应该是:

•本地主机地址-本地进程标识;

•远程主机地址-远程进程标识。进程地址也叫做端口号(portnumber)。

《网络协议分析及应用》第5章传输层协议123.多重协议的识别UNIX操作系统的TCP/IP的传输层就有TCP协议和UDP协议;网络环境中一个进程的全网惟一的标识需要一个三元组来表示:协议,本地地址,本地端口号。《网络协议分析及应用》第5章传输层协议13网络环境中一个完整的进程通信标识需要一个五元组来表示:

协议本地地址本地端口号远地地址远地端口号在UNIX操作系统中:三元组又叫做半相关half-association

五元组叫做一个相关association《网络协议分析及应用》第5章传输层协议145.1.3进程间相互作用模式:Client/Server模型

1.Client/Server模型的基本概念

网络中每台联网的计算机既为本地用户提供服务,也为网络的其他主机的用户提供服务;每台联网的计算机的硬件、软件与数据资源应该既是本地用户可以使用的资源,也是网络的其他主机的用户可以共享的资源;每一项网络服务都是对应一个“服务程序”进程;

“服务程序”进程要为每一个获准的网络用户请求执行一组规定的动作,以满足用户网络资源共享的需要;

《网络协议分析及应用》第5章传输层协议15网络环境中进程通信要解决的进程间相互作用的模式;在TCP/IP协议体系中,进程间的相互作用采用客户/服务器(Client/Server)模型;客户与服务器分别表示相互通信的两个应用程序的进程;客户向服务器发出服务请求,服务器响应客户的请求,提供客户机所需要的网络服务。《网络协议分析及应用》第5章传输层协议162.为什么要采用客户机/服务器模型?网络资源分布的不均匀性网络资源分布的不均匀性表现在硬件、软件和数据等三个方面;网络资源分布的不均匀性是客观存在的,同时也是网络应用系统设计者的设计思想的体现;“资源共享”就是因为网络不同结点之间在硬件配置、计算能力、存储能力,以及数据分布等方面存在着差距与不均匀性;能力强、资源丰富的充当服务器,能力弱或需要某种资源的成为客户。《网络协议分析及应用》第5章传输层协议17网络环境中进程通信的异步性

分布在不同主机系统中的进程什么时间发出通信请求,希望和哪一台主机的哪一个进程通信,以及对方进程是否能接受通信请求是不确定的;网络分布式进程之间不存在一个高层的调度与协调;必须要建立一个体制,为准备通信的进程之间建立起连接,在进程交换数据的过程中维护连接,为数据交换提供同步。《网络协议分析及应用》第5章传输层协议18客户—一次进程通信中发起的一方;服务器—接受进程通信的请求,提供服务的一方;每一次通信由客户进程随机启动;服务器进程处于等待状态,及时响应客户服务请求。《网络协议分析及应用》第5章传输层协议195.1.4进程通信中Client/Server模型实现方法客户机/服务器模型的工作实质是“请求驱动”;在网络环境中,客户进程发出请求完全随机。在同一个时刻,可能有多个客户进程向一个服务器发出服务请求;

为了实现服务器的功能,在服务器的设计中要解决服务器的:并发请求处理能力并发服务器的进程标识服务器安全《网络协议分析及应用》第5章传输层协议20解决服务器处理并发请求的基本方案:设计一个并发服务器;采用重复服务器的方法。《网络协议分析及应用》第5章传输层协议21并发服务器(concurrentserver)并发服务器的核心是使用一个守护程序(daemon);守护程序在系统启动的时候随之启动,在没有客户的服务请求到达时,并发服务器处于等待状态;一旦客户机的服务请求到达,服务器根据客户的服务请求的进程号,去激活相应的子进程,而服务器回到等待状态;并发服务器叫做主服务器(master),把子服务器叫做从服务器(slave);主服务器必须拥有一个全网公认的进程地址;网络中的客户进程可以根据服务器进程的公认地址,向服务器提出服务请求。《网络协议分析及应用》第5章传输层协议22客户与并发服务器建立传输连接的过程《网络协议分析及应用》第5章传输层协议23重复服务器(interativeserver)通过设置一个请求队列来存储客户机的服务请求;服务器采用先来先服务的原则来顺序处理客户机的服务请求。《网络协议分析及应用》第5章传输层协议24比较并发服务器:并发服务器可以处理多个客户的服务请求;从服务器不依赖主服务器而独立处理客户服务请求;不同的从服务器可以分别处理不同的客户的服务请求;系统的实时性好。重复服务器:处理客户的服务请求的数量受到请求队列长度的限制,但可以有效地控制请求处理的时间并发服务器适应于面向连接的服务类型;重复服务器适应于无连接的服务类型。

《网络协议分析及应用》第5章传输层协议25讨论主动启动与服务器进程通信的程序叫做客户;服务器是一个用来提供某种服务的,有特殊权限的专用程序;服务器程序在网络中一台计算机上运行,接受来自远程客户的服务请求,提供一种服务;服务器程序需要硬件配置较高的计算机和操作系统的支持;客户/服务器是软件设计中进程间相互作用关系的模型。

《网络协议分析及应用》第5章传输层协议265.2传输层的基本功能

5.2.1传输层的端-端通信

《网络协议分析及应用》第5章传输层协议275.2.2传输层协议的基本功能

1.传输层在协议层次结构中的位置

传输层的目标是向应用层应用程序进程之间的通信,提供有效、可靠、保证质量的服务;传输层在网络分层结构中起着承上启下的作用,通过执行传输层协议,屏蔽通信子网在技术、设计上的差异和服务质量的不足,向高层提供一个标准的、完善的通信服务;从通信和信息处理的角度看,应用层是面向信息处理的,而传输层是为应用层提供通信服务的。《网络协议分析及应用》第5章传输层协议282.传输协议数据单元传输层之间传输的报文叫做传输协议数据单元(TransportProtocolUnit,TPDU);TPDU有效载荷是应用层的数据。《网络协议分析及应用》第5章传输层协议295.2.3网络服务与服务质量QoS

服务(Service)网络层次结构中,各层之间有严格的依赖关系各层次的分工和协作集中地体现在相邻层之间的界面上;服务是描述相邻层之间关系的重要概念;网络服务体现在低层向相邻上层提供的一组操作;低层是服务提供者,高层是服务的用户。《网络协议分析及应用》第5章传输层协议30衡量服务质量QoS的主要指标连接建立延迟/连接释放延迟;连接建立/释放失败概率;传输时延;吞吐率;残留误码率;传输失败概率。

《网络协议分析及应用》第5章传输层协议31连接建立延迟从传输服务用户要求建立连接到收到连接确认之间所经历的时间;它包括了远端传输实体的处理延迟;连接建立延迟越短,服务质量越好。连接建立失败的概率在最大连接建立延迟时间内,连接未能建立的可能性;由于网络拥塞,缺少缓冲区或其他原因造成的失败。

《网络协议分析及应用》第5章传输层协议32吞吐率吞吐率是在某个时间间隔内测得的每秒钟传输的用户数据的字节数;每个传输方向分别用各自的吞吐率来衡量。传输延迟传输延迟是指从源主机传输用户发送报文开始到目的主机传输用户接收到报文为止的时间;每个方向的传输延迟是不同的。《网络协议分析及应用》第5章传输层协议33残余误码率残余误码率用于测量丢失或乱序的报文数占整个发送的报文数的百分比;理论上残余误码率应为零,实际上它可能是一较小的值。安全保护安全保护为传输用户提供了传输层的保护,以防止的第三方读取或修改数据。《网络协议分析及应用》第5章传输层协议34优先级为传输用户提供用以表明哪些连接更为重要的方法;当发生拥塞事件时,确保高优先级的连接先获得服务。恢复功能当出现内部问题或拥塞情况下,传输层本身自发终止连接的可能性。《网络协议分析及应用》第5章传输层协议35在讨论传输层服务质量参数时需要注意以下几个问题:服务质量参数是传输用户在请求建立连接时设定的,表明希望值和最小可接受的值;传输层通过检查服务质量参数可以立即发现其中某些值是无法达到的,传输层可以不去与目的主机连接,而直接通知传输用户连接请求失败与失败的原因;有些情况下,传输层发现不能达到用户希望的质量参数,但可以达到稍微低一些的要求,然后再请求建立连接;并非所有的传输连接都需要提供所有的参数,大多数仅仅是要求残余误码,而其他参数则是为了完善服务质量而设置的。《网络协议分析及应用》第5章传输层协议365.3用户报文协议UDP

5.3.1UDP协议的主要特点

UDP是一种无连接的、不可靠的传输层协议;在完成进程到进程的通信中提供了有限的差错检验功能;设计比较简单的UDP协议的目的是希望以最小的开销来达到网络环境中的进程通信目的;进程发送的报文较短,同时对报文的可靠性要求不高,那么可以使用UDP协议。《网络协议分析及应用》第5章传输层协议375.3.2UDP的基本工作过程UDP用户数据报传输过程中的封装与拆封

《网络协议分析及应用》第5章传输层协议38UDP基本工作过程描述UDP数据报的发送和接收通过UDP端口实现端口是一个可读写的结构,具有内部的报文缓冲区数据报发送UDP软件将用户数据封装在UDP数据报中转交给IP软件,进行IP封装和转发数据报的接收IP层接收到UDP数据报,提交给UDP软件的各端口端口判断该报文的目的端口号是否与当前端口匹配若匹配成功,将该数据报保存到相应端口的接收队列中;(若队列已满,则丢弃该数据报)若未匹配,则丢弃该数据报,同时向源端发送“端口不可达”的ICMP包《网络协议分析及应用》第5章传输层协议39UDP报文传输队列《网络协议分析及应用》第5章传输层协议40UDP的复用和分用《网络协议分析及应用》第5章传输层协议415.3.3UDP端口号TCP/IP协议族中用端口号来标识进程;端口号是在0到65535之间的整数;客户程序随机选取的临时端口号;每一种服务器程序被分配了确定的全局一致的熟知端口号;每一个客户进程都知道相应的服务器进程的熟知端口号。《网络协议分析及应用》第5章传输层协议42UDP使用的熟知端口号《网络协议分析及应用》第5章传输层协议435.3.4UDP数据报格式《网络协议分析及应用》第5章传输层协议44SourcePort—16位。源端口是可选字段。当使用时,它表示发送程序的端口,同时它还被认为是没有其它信息的情况下需要被寻址的答复端口。如果不使用,设置值为0。DestinationPort—16位。目标端口在特殊因特网目标地址的情况下具有意义。Length—16位。该用户数据报的八位(字节)长度,包括协议头和数据。长度最小值为8,最长长度为65515(IP的最大长度65535减去20)。Checksum—16位。IP协议头、UDP协议头和数据位,最后用0填补的信息假协议头总和。如果必要的话,可以由两个八位(字节)复合而成。注意:计算校验和时,在UDP用户数据报之前要增加12字节的伪头部。Data—

包含上层数据信息。《网络协议分析及应用》第5章传输层协议45UDP检验和的检验范围:伪头部

UDP头应用层数据伪头部只在计算校验和时起作用,是临时的,不用于传输。《网络协议分析及应用》第5章传输层协议46伪头部:伪报头并非UDP数据报中实际的有效成分伪报头是一个虚拟的数据结构:其中的信息是从数据报所在IP分组头的分组头中提取的使用伪报头是为了验证UDP数据报是否正确地传到了目的系统中伪报头的采用在一定程度上违反了网络结构分层的原则《网络协议分析及应用》第5章传输层协议47《网络协议分析及应用》第5章传输层协议48《网络协议分析及应用》第5章传输层协议495.4传输控制协议TCP

5.4.1TCP协议的主要特点

TCP是一种面向连接的、可靠的传输层协议;全双工通信;TCP协议建立在不可靠的网络层IP协议之上,IP不能提供任何可靠性机制,TCP的可靠性完全由自己实现;TCP采用的最基本的可靠性技术是:

确认与超时重传;

流量控制。《网络协议分析及应用》第5章传输层协议50TCP协议与其他协议的层次关系《网络协议分析及应用》第5章传输层协议515.4.2TCP的端口号分配和Socket地址TCP常用的熟知端口号《网络协议分析及应用》第5章传输层协议525.4.3TCP报文段格式《网络协议分析及应用》第5章传输层协议53TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充源端口和目的端口字段——各占2字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。《网络协议分析及应用》第5章传输层协议54TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充序号字段——占4字节。TCP连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。《网络协议分析及应用》第5章传输层协议55TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充确认号字段——占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。《网络协议分析及应用》第5章传输层协议56TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充数据偏移——占4bit,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。“数据偏移”的单位不是字节而是32bit字(4字节为计算单位)。《网络协议分析及应用》第5章传输层协议57TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充保留字段——占6bit,保留为今后使用,但目前应置为0。《网络协议分析及应用》第5章传输层协议58TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充紧急比特URG——当URG1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。《网络协议分析及应用》第5章传输层协议59TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充确认比特ACK——只有当ACK1时确认号字段才有效。当ACK0时,确认号无效。《网络协议分析及应用》第5章传输层协议60TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充推送比特PSH(PuSH)——接收TCP收到推送比特置1的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。《网络协议分析及应用》第5章传输层协议61TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充复位比特RST(ReSeT)——当RST1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。《网络协议分析及应用》第5章传输层协议62TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充同步比特SYN——同步比特SYN置为1,就表示这是一个连接请求或连接接受报文。《网络协议分析及应用》第5章传输层协议63TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充终止比特FIN(FINal)——用来释放一个连接。当FIN1时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。《网络协议分析及应用》第5章传输层协议64TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充窗口字段——占2字节。窗口字段用来控制对方发送的数据量,单位为字节。TCP连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。《网络协议分析及应用》第5章传输层协议65TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充检验和——占2字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。《网络协议分析及应用》第5章传输层协议66TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充紧急指针字段——占16bit。紧急指针指出:在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。

《网络协议分析及应用》第5章传输层协议67TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充选项字段——长度可变。MSS是TCP报文段中的数据字段的最大长度。数据字段加上TCP首部才等于整个的TCP报文段。《网络协议分析及应用》第5章传输层协议68TCPOptionsUsedtoextendTCPfunctionalityDefinedTCPoptions:EndofOptionListNoOperationMaximumSegmentSizeTCPWindowScaleSelectiveAcknowledgement(SACK)TCPTimestamps《网络协议分析及应用》第5章传输层协议69EndOfOptionListandNoOperationEndofOptionListAsingleoctetwiththeoptionkindsetto0,whichindicatesthatnootheroptionsfollowNoOperationAsingleoctetwiththeoptionkindsetto1,whichisusedbetweenTCPoptionsfor4-bytealignment《网络协议分析及应用》第5章传输层协议70AMultiple-OctetTCPoptionOptionKindOptionLengthOptionoctets...《网络协议分析及应用》第5章传输层协议71IPTCPSegmentIPMTUMSSTCPMaximumSegmentSize《网络协议分析及应用》第5章传输层协议72OptionKindOptionLengthMaximumSegmentSize=2=4MaximumSegmentSizeOption《网络协议分析及应用》第5章传输层协议73TCPWindowScaleOptionOptionKindOptionLengthShiftCount=3=3《网络协议分析及应用》第5章传输层协议74SACKPermittedOptionOptionKindOptionLength=4=2《网络协议分析及应用》第5章传输层协议75SACKOptionOptionKindOptionLengthLeftEdgeof1stBlockRightEdgeof1stBlockLeftEdgeof2ndBlockRightEdgeof2ndBlock...=5《网络协议分析及应用》第5章传输层协议76TCPTimestampsOptionOptionKindOptionLengthTsValueTsEchoReply=8=10《网络协议分析及应用》第5章传输层协议77TCP首部20字节固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FINSYNRSTPSHACKURG比特08162431填充填充字段——这是为了使整个首部长度是4字节的整数倍。《网络协议分析及应用》第5章传输层协议78EXAMPLE:TCPFrameFragmentTCP:-----TCPheader-----TCP:TCP:Sourceport=4704TCP:Destinationport=23(Telnet)TCP:Sequencenumber=399TCP:Acknowledgmentnumber=738299106TCP:Dataoffset=20bytesTCP:Flags=18TCP:..0.....=(Nourgentpointer)TCP:...1....=AcknowledgmentTCP:....1...=PushTCP:.....0..=(Noreset)TCP:......0.=(NoSYN)TCP:.......0=(NoFIN)TCP:Window=512TCP:Checksum=43E2(correct)《网络协议分析及应用》第5章传输层协议79TCP:NoTCPoptionsTCP:[1byte(s)ofdata]TCP:Telnet:-----Telnetdata-----ADDRHEXASCII0000104002608C06384102608C115176AAAA.@.`..8A.`..Qv..00100300000008004500002903190000FF06......E..)......00206EB6243500C3243800D0126000170000n.$5..$8...`....0030018F2C018CE25018020043E200005300..,...P...C...S.004001FFFD03....《网络协议分析及应用》第5章传输层协议805.4.4TCP传输连接建立与连接释放TCP传输连接建立过程示意图

连接请求报文应答报文建立传输连接确认报文《网络协议分析及应用》第5章传输层协议81TCP在传输连接释放过程中4次握手过程《网络协议分析及应用》第5章传输层协议825.4.5小段小段是小于MSS(最大段长度)的TCP段。(Telnet会话过程,有些时候会出现1个有效字节40个包头(IP头+TCP头)的这样低效的包,增加网络负担从而影响网络性能。)Nagle算法是:如果发送方发送小的数据报时,没有收到上一次发送的应答,那么将暂时缓冲这个数据。笨拙窗口综合症:一次接收/处理一字节,接收窗口以一字节前进的现象。(接收方通过不发送新的窗口尺寸来避免,除非窗口至少是一个MSS,或者是最大的接收窗口尺寸的一半;发送方通过发布的接收窗口尺寸至少达到MSS才发送来避免)

《网络协议分析及应用》第5章传输层协议83TCP高效与可靠的相关算法滑动窗口慢开始算法:一次增加一MSS(在每收到一个对新的报文段的确认后,将拥塞窗口增加至多一个MSS的数值)。(达到拥塞阀值后)拥塞避免算法:累次增加(+1,线性增加),倍次减少(乘1/2)。快重传算法:规定发送端只要一连收到三个重复的ACK即可断定有分组丢失了,就应立即重传丢失的报文段而不必继续等待为该报文段设置的重传计时器的超时。快恢复算法:累次增加《网络协议分析及应用》第5章传输层协议84往返时延的自适应算法

记录每一个报文段发出的时间,以及收到相应的确认报文段的时间。这两个时间之差就是报文段的往返时延。将各个报文段的往返时延样本加权平均,就得出报文段的平均往返时延

RTT。每测量到一个新的往返时延样本,就按下式重新计算一次平均往返时延RTT:平均往返时延RTT

(旧的RTT)(1

)(新的往返时延样本)(7-2)在上式中,0

1。《网络协议分析及应用》第5章传输层协议85慢开始算法的原理在主机刚刚开始发送报文段时可先将拥塞窗口cwnd设置为一个最大报文段MSS的数值。在每收到一个对新的报文段的确认后,将拥塞窗口增加至多一个MSS的数值。用这样的方法逐步增大发送端的拥塞窗口cwnd,可以使分组注入到网络的速率更加合理。《网络协议分析及应用》第5章传输层协议86TCP连接的状态TCP原理与技术一条TCP连接在其生命期内会经历一系列的状态。这些状态有:LISTEN:正在等待一个来自任何远程TCP和端口的连接请求。SYN-SENT:在已经发出一个连接请求后正在等待一个匹配的连接请求SYN-RECEIVED:在已经收到并发出了一个连接请求后等待 一个证实连接请 求的确认。ESTABLISHED:一个打开的连接。通过此连接接收到的数据能够被传递到用户。 该状态是此连接的数据传输阶段的正常状态。FIN-WAIT-1:或正在等待一个针对先前发送的连接终止请求的确认。FIN-WAIT-2:正在等待一个来自远程TCP的连接终止请求。CLOSE-WAIT:正在等待一个来自本地用户的连接终止请求CLOSING:正在等待一个来自远程TCP的连接终止请求的确认。LAST-ACK:正在等待一个先前发往远程TCP的连接终止请求的确认(包括对 其连接终止请求的确认)TIME-WAIT:等足够的时间以确保远程TCP接收到了其连接终止请求的确认CLOSED:根本不存在连接的状态。《网络协议分析及应用》第5章传输层协议87TCP连接的建立过程TCP原理与技术

TCPA

TCPB1.CLOSE LISTEN2.SYN-SENT→<SEQ=100><CTL=SYN> →SYN-RECEIVED3.ESTABLISHED←<SEQ=300><ACK=101><CTL=SYN,ACK> ←SYN-RECEIVED4.ESTABLISHED→<SEQ=101><ACK=301><CTL=ACK> →ESTABLISHED5.ESTABLISHED→<SEQ=101><ACK=301><CTL=ACK><DATA> →ESTABLSHED说明:

TCPA、B在初始时分别是处于CLOSED和LISTEN状态。A端首先发送一个SEQ=100的初始化序列,SYN置位,占用一个序列号;B端在收到该请求后,发送一个序列号为300,确认号为101的段,这个段的SYN、ACK均置位,说明B端的初始发送序列号为300,同时又确认了A的SEQ=100的段,A在收到了B的应答后,对其初始序列号确认,来响应B的初始化序列,然后A就可以发送事件了。其中第2、3、4行,称之为“三次握手”《网络协议分析及应用》第5章传输层协议88TCP连接的关闭过程TCP原理与技术

TCPA TCPB1.ESTABLISHED ESTABLISHED2.(关闭)

FIN-WAIT-1→<SEQ=100><ACK=300><CTL=FIN,ACK> …CLOSE-WAIT3.FIN-WAIT-2←<SEQ=300><ACK=101><CTL=ACK> ←CLOSE-WAIT4. (关闭)

TIME-WAIT←<SEQ=300><ACK=101><CTL=FIN,ACK> ←LAST-ACK5.TIME-WAIT→<SEQ=101><ACK=301><CTL=ACK> →CLOSED6.(2MSL)关闭TCPA启动TCP关闭某连接的,TCPB收到一个FIN段,进入CLOSEWAIT状态。在第3行中,如果TCPB还有数据要发送,在报头之后,会有数据,同时对TCPA发来的FIN确认(FIN占用一个序列号)。发送完数据后,在第4行,TCPB再发送一个FIN段,在没有收到确认之前是LAST-ACK(等待发往远程TCP的FIN的确认)状态。第5行中,TCPB在收到了它发出的FIN的确认后,进入CLOSED状态,TCPA在超时时间到后,自动关闭。下面是完整的状态变迁图《网络协议分析及应用》第5章传输层协议89《网络协议分析及应用》第5章传输层协议90TCP的有限状态机TCP有限状态机的图中每一个方框都是TCP可能具有的状态。每个方框中的大写英文字符串是TCP标准所使用的TCP连接状态名。状态之间的箭头表示可能发生的状态变迁。箭头旁边的字,表明引起这种变迁的原因,或表明发生状态变迁后又出现什么动作。图中有三种不同的箭头。粗实线箭头表示对客户进程的正常变迁。粗虚线箭头表示对服务器进程的正常变迁。另一种细线箭头表示异常变迁。

《网络协议分析及应用》第5章传输层协议91TCP

机CLOSEDESTABLISHEDLISTENCLOSE_WAITFIN_WAIT_1SYN_RCVDFIN_WAIT_2CLOSINGTIME_WAITSYN_SENTLAST_ACK主动打开被动打开被动关闭主动关闭起点被动打开主动打开发送SYN同时打开收到SYN,发送SYN,ACK收到ACK数据传送阶段关闭发送FIN关闭发送FIN关闭发送FIN收到RST收到SYN发送SYN,ACK关闭或超时收到ACK收到SYN,ACK发送ACK收到ACK收到ACK收到FIN发送ACK收到FIN,ACK

发送ACK收到FIN发送ACK同时关闭收到FIN发送ACK发送SYN定时经过两倍报文段寿命后关闭《网络协议分析及应用》第5章传输层协议925.4.5TCP流量与拥塞控制TCP的数据编码与确认

《网络协议分析及应用》第5章传输层协议93TCP协议是面向字节的。

TCP协议把所要传输的报文段看成是一个一个字节组成的数据流,并且要为每一个字节分配一个序号。TCP每次所发送的报文段的头部中的序号值表示的是该报文段数据部分的第一个字节的序号。全双工通信,捎带确认的方法。TCP有3种基本机制来控制报文段发送的方法:1)控制最大段长度(MSS)2)TCP支持的推送(PUSH)操作3)发送端维持一个计时器《网络协议分析及应用》第5章传输层协议94TCP窗口概念

《网络协议分析及应用》第5章传输层协议95窗口与TCP的流量控制《网络协议分析及应用》第5章传输层协议965.4.6TCP差错控制差错检测和纠正检验和确认超时针对的几种情况受损伤的报文段丢失的报文段重复的报文段乱序的报文段丢失的确认《网络协议分析及应用》第5章传输层协议97传输出错报文段的处理超时重传《网络协议分析及应用》第5章传输层协议98丢失的报文段

《网络协议分析及应用》第5章传输层协议99确认丢失《网络协议分析及应用》第5章传输层协议1005.4.7TCP的计时器为了实现TCP协议的功能,TCP使用了4种计时器:重传计时器、坚持计时器、保持计时器和时间等待计时器。重传计时器为了控制丢失的或丢弃的报文段,TCP使用了处理报文段的确认的等待重传时间的重传计时器。坚持计时器TCP为每一个连接使用一个坚持计时器;当发送方的TCP收到一个窗口大小为零的确认时,就需要启动坚持计时器;当坚持计时器期限到时,发送方的TCP就发送一个特殊的探测报文段。《网络协议分析及应用》第5章传输层协议101保持计时器保持计时器又叫做激活计时器,它是用来防止在两个TCP之间的连接处以长时期空闲。时间等待计时器时间等待计时器是在连接终止期间使用的;当TCP关闭一个连接时,它并不认为这个连接马上就真正地关闭了。在时间等待期间中,连接还处于一种过渡状态;时间等待计时器的值通常设置为一个报文段的寿命期待值的两倍。《网络协议分析及应用》第5章传输层协议1025.5存储区域网络SAN及其协议存储区域网络(SAN)是一种高速网络或子网络,提供在计算机与存储系统之间的数据传输。存储设备是指一张或多张用以存储计算机数据的磁盘设备。一个SAN网络由负责网络连接的通信结构、负责组织连接的管理层、存储部件以及计算机系统构成,从而保证数据传输的安全性和力度。典型的SAN是一个企业整个计算机网络资源的一部分。通常SAN与其它计算资源紧密集群来实现远程备份和档案存储过程。SAN支持磁盘镜像技术(diskmirroring)、备份与恢复(backupandrestore)、档案数据的存档和检索、存储设备间的数据迁移以及网络中不同服务器间的数据共享等功能。此外SAN还可以用于合并子网和网络附接存储(NAS:network-attachedstorage)系统。《网络协议分析及应用》第5章传输层协议103当前常见的可使用SAN技术,诸如IBM的光纤SCON,它是FICON的增强结构,或者说是一种更新的光纤信道技术。另外存储区域网络中也运用到高速以太网协议。SCSI和iSCSI是目前使用较为广泛的两种存储区域网络协议。《网络协议分析及应用》第5章传输层协议104

FC&FCP:光纤信道和光纤信道协议(FC&FCP:FibreChannelandFibreChannelProtocol)FCIP:在IP上传输的光纤信道数据帧(FCIP:EntireFibreChannelFrameOverIP)iFCP:Internet光纤信道协议(iFCP:InternetFibreChannelProtocol)iSCSI:Internet小型计算机系统接口(iSCSI:InternetSmallComputerSystemInterface)iSNS:Internet存储名称服务(iSNS:InternetStorageNameService)NDMP:网络数据管理协议(NDMP:NetworkDataManagementProtocol)SAS:串行SCSI(SAS:SerialAttachedSCSI)SCSI:小型计算机系统接口(SCSI:SmallComputerSystemInterface)主要协议《网络协议分析及应用》第5章传输层协议105小型计算机系统接口SCSI是一种ANSI标准,是AppleMac计算机、PCs以及众多UNIX系统用来连接计算机和外围设备的一种并行接口标准。与标准串行和并行端口相比,SCSI接口能够提供更快的数据传输率。另外,人们可以在单个SCSI端口连接多台设备。SCSI系列包括:SCSI-1、SCSI-2、SCSI-3以及最近经认可的标准串行连接方式的SCSI(SAS:standardSerialAttachedSCSI)。Internet小型计算机系统接口iSCSI是一种基于TCP/IP的协议,用来建立和管理IP存储设备、主机和客户机等之间的相互连接,并创建存储区域网络SAN。SAN使得SCSI协议应用于高速数据传输网络成为可能,并支持在多元数据存储网络上进行块级(block-level)处理的数据传输。《网络协议分析及应用》第5章传输层协议106SCSI结构基于客户/服务器模式,其实现环境是:设备之间连接紧密,并且这些设备与SCSI总线连接。iSCSI使标准的SCSI命令能够在TCP/IP网络上的主机系统(启动器initiators)和存储设备(目标器targets)之间进行封装和可靠传输过程。此外iSCSI为IP网络提供了SCSI封装命令,它运行在TCP上。如今我们所涉及的SAN(StorageAreaNetwork),其实现数据通信的主要要求是:1)数据存储系统的合并;2)数据备份;3)服务器群集;4)复制;5)紧急情况下的数据恢复。另外,采用各种技术,可以使得LANs和WANs中的SAN呈现地理分布格局。但必须确保所有操作安全进行并符合服务质量QoS要求。在安全并且正确的QoS前提下,iSCSI主要被设计来在TCP/IP网络上实现以上各种功能。《网络协议分析及应用》第5章传输层协议107iSCSI包含四个组成部分:iSCSI地址和命名规则:在网络实体中,iSCSI节点是SCSI设备的标识符,每个iSCSI节点都有一个独一无二的名称(其长度最多可以达255个字节),这种名称是根据Internet节点的命名规则进行组织的。iSCSI会话管理:iSCSI会话由登录阶段(LoginPhase)和工作阶段(FullFeaturePhase)两部分构成,由特殊命令完成。iSCSI差错处理:在IP网络,特别是在WAN中,数据传输的错误是经常出现的,iSCSI协议需要提供错误处理机制。iSCSI安全性:由于iSCSI能够适用于非法数据可以访问的网络,所以该协议考虑到了许多不同安全性途径。《网络协议分析及应用》第5章传输层协议108协议结构

iSCSIPDU结构:

8162432bitBasicHeaderStructure(BHS)AdditionalHeaderStructure1(AHS)(optional)…AdditionalHeaderStructuren(AHS)(optional)HeaderDigest(optional)DataSegment(optional)DataDigest(optional)《网络协议分析及应用》第5章传输层协议109iSCSIBHS格式:

8162432bit.IOpcodeFOpcode-specificfieldsTotalAHSLengthDataSegmentlengthOpcode-specificfieldsorLogicUnitNumber(LUN)(8bytes)Initi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论