版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第12章IP网络控制技术本章提纲12.1差错控制12.1.1检错编码12.1.2IP的差错控制12.2通信量控制12.2.1流量控制12.2.2拥塞控制12.3IP安全体系结构和安全算法12.3.1网络信息安全概念12.3.2IPSec12.3.2IPSec使用的安全算法续12.4QOS技术和体系结构12.4.1什么是QoS技术12.4.2集成服务12.4.3区分服务12.4.4子网带宽管理SBM12.4.5MPLS的QoS12.4.6QoS体系结构本章提要本书讨论的控制技术包括差错控制、通信量控制、安全技术和服务质量技术。严格来讲,前面章节介绍的域名解析、路由选择、地址解析、逻辑连接管理等内容也可以看作是有关控制的技术,但是由于它们与数据传输关系紧密,不便于独立介绍,因此在前面结合着数据传输先行介绍了。IP网络的控制技术内容非常丰富。由于本书篇幅和目的所限,我们不展开讨论,而只是介绍问题的由来、解决问题的方法以及技术的发展趋势等基本内容,使读者对上述技术有个基本的认识。12.1差错控制编码信号在传输过程中受到干扰时,就有可能使某个或某几个“1”变成“0”,或使“0”变成“1”,这时就发生了差错。显然,接收方在接受数据之前,必须判断数据是否有差错。判断是否存在差错叫检错。检纠错方法当接收方检测出差错以后,为了得到正确的数据,它可以采取2种作法以得到正确的数据,即:(1)通知发送方重发数据:把错误数据的特征信息(例如数据帧编号)反馈给发送方,要求发送方重新发送该数据,直至接收到无差错的数据为止。这种方式的典型方法是自动请求重发ARQ(AutomaticRepeatreQuest)。(2)自己纠正数据中的差错(纠错):通过一定的算法确定差错的具体位置(检错不能做到这点),并自动加以纠正。这种方式的典型方法是FEC(ForwardErrorCorrection)。当差错超出纠错范围时,FEC就无能为力了。12.1.1检错编码为了能对数据检纠错,需要对数据进行编码。编码的作法是把k比特的原始数据转换为n比特的编码数据(n>k)。新增加的n-k比特称为监督位。编码的关键是如何产生监督位。监督位必须满足的条件(1)n比特数据与k比特数据要一一对应。(2)编码数据之间的差异要尽可能的大。汉明距离n-k比特的监督位与k比特的数据在n比特的编码数据中一起发送给接收方。汉明距离是指一种编码的全部码字两两之间距离的最小值,2个码字之间的距离是指对应位置上二进制值不同数字的个数。例如,码字10010110001和11001010101的第2,4,5,6和9位(从左至右)的值不同,因此,它们之间的距离是5。如图12-1所示。图12-1汉明距离常用的检错码(1)恒比码:在n比特的恒比码中,恒定有k比特的值为“1”,另外有n-k比特值为“0”。当接收方收到不符合此规则的编码时,就判断有差错。我国采用的恒比码中n=5,组成代表0~9十个数字的编码,如表12-1所示。表12-1恒比码数字电码数字电码012340110101011110011011011010567890011110101111000111010011(2)垂直水平奇偶校验码垂直水平奇偶校验码也称纵横奇偶校验或方阵码。在这种校验码中,每一字符占据一列,低位比特在上,高位比特在下。每个字符的第8位比特(b8)作为垂直奇偶校验位。若干字符纵向排列形成一个方阵,各字符的同一行比特形成水平奇偶校验位,放在在每一行的最右边一位。一个字符中1的个数是奇数时垂直校验位=1,否则为0;一行中1的个数是奇数时水平校验位=1,否则为0。表12-2所示为垂直水平奇偶
校验码结构b110101010101010b201100110011001
b300011110000111b400000001111111
b500000000000000
b610100110010010
b7010110011011011111000b8001011001101000(3)循环冗余校验码在n比特的循环冗余校验码(CyclicRedundancyCheck,CRC)中,有k比特的信息比特和n-k比特的监督比特。监督比特由信息比特按照一定的算法产生。这种编码的码字循环移位后得到码字也是CRC编码的一个码字,换句话说,如果用Ci表示码字的第i比特,则Cn-1Cn-2…C1C0、Cn-2Cn-3…C0Cn-1、…、C0Cn-1…C2C1都是CRC码字,这就是循环的含义。监督比特由以下算法计算把k比特信息比特表示成M(x)=Mk-1xk-1+Mk-2xk-2+…+M1x+M0
其中Mi(i=0,…,k-1)就是k比特的值(0或1)。例如,如果信息比特是10011,则对应的M(x)=x4+x+1。称M(x)为报文多项式。常用的G(x)有以下3个G(x)=x12+x11+x3+x2+x+1(CRC-12)G(x)=x16+x15+x2+1(CRC-16)G(x)=x16+x12+x5+1(CRC-CCITT)还有一种检错能力更强的G(x),即:
G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1CRC定义设M(x)的编码对应的多项式为T(x),则CRC定义为:
T(x)=Xn-kM(x)-C(x)
其中C(x)是Xn-kM(x)除以G(x)的余式。显然T(x)能被G(x)除尽。检错原则发送方发送的是T(x)系数对应的比特序列Tn-1Tn-2…To。接收方收到n比特编码后,用它们对应的多项式除以G(x),如果能除尽,则认为接收的比特没有错,否则,认为有错误。读者可能会问在T(x)的比特序列Tn-1Tn-2…To中哪些比特是M(x)的呢?换句话说,接收方判定没有差错之后,如何从T(x)中分离出M(x)呢?实际上,存在以下对应关系:Tn-1=MK-1,Tn-2=MK-2,…,Tn-k=M0。因此,接收方提取Tn-1Tn-2…To的左边k比特即可。为什么存在上述对应关系呢?原因在于G(x)是经过精心定义的特殊多项式,它具有使上述关系成立的特性。CRC应用在802.3以太网MAC帧中的FCS字段放入的就是32比特的CRC监督比特值。HDLC帧中FCS字段值是由CRC-CCITT生成多项式计算的监督比特值。在IP头部的检验和字段没有使用CRC编码,原因是该检验字段只控制头部的差错,没有包括数据字段,因而没有使用功能强,但计算量大的CRC编码。IP头部检验和的计算方法将IP头部看作以16比特为单位的比特段序列,先将检验和字段值置零,然后将所有的16比特段相加,再求和的二进制反码作为检验和的值。接收方收到IP分组后,将头部的所有16比特相加(包括检验和),如果头部没有发生错误,则和必全为1。否则即认为出错,并将IP分组丢弃。12.1.2IP的差错控制首先我们先回顾一下IP协议的特点。IP协议是一个无连接的协议,它在发送IP分组之前并不建立到接收方的连接,它只是通过路由选择知道下一跳路由器,然后把IP分组发送给它。另外,源IP协议不知道它发送出去的IP分组在去往目的主机的路上会出现哪些问题,以及网络工作的一些细节,甚至不知道IP分组是否被目的主机接收。总之,IP协议缺乏差错控制、流量控制、管理查询功能以及完善的辅助机制,导致IP分组传输的可靠性不高。为了弥补IP协议存在的上述问题,在不改动IP协议的前提下,定义了ICMP。1.ICMP的差错报告IP分组在传输过程中会出现以下异常情况,它们的出现会触发ICMP报文的发送。这些异常情况包括:(1)目的站不可达:当路由器不能通过路由选择为IP分组找到下一跳路由器或目的主机时,称这种情况是目的站不可达。此时,路由器会发送ICMP目的站不可达报文给主机,通知造成目的站不可达的原因,例如是网络不可达、主机不可达、协议不可达、端口不可达,还是其他管理上的原因(如人为设置的过滤器)。(2)拥塞当路由器或目的主机接收到过多的IP分组而来不及转发或处理时,称这种情况是拥塞。此时,路由器或目的主机会发送ICMP源站抑制报文给源站,通知拥塞的发生。源站收到源站抑制报文之后会降低发送速率直至不再收到源站抑制报文。(3)超时当IP分组的TTL字段值等于0时,或者当一个报文的分片没有在一定时间内到达目的主机时,称这种情况是超时。此时,路由器或目的主机会向源站发送ICMP超时报文通知发生超时。(4)参数出错当IP分组头部的参数出现二义性或某个字段中缺少某个值时,称这种情况是参数问题。此时,路由器或目的主机会向源站发送ICMP参数问题报文通知参数出错。(5)路由过时因为主机是不参与路由更新的,因此,主机上的路由表会过时,为了保证主机路由表的时效性,主机的默认路由器会发送ICMP改变路由报文给主机,通知最新的路由信息。读者可能会问IP分组被丢弃了,相应的数据如何再得到呢?这就需要IP分组重传。重传IP分组所需要的必要信息由ICMP差错报文反馈给源主机。ICMP差错报文与被丢弃IP分组的关系如图12-2所示。图12-2ICMP差错报文的数据由被丢弃的IP分组而来ICMP差错报告报文的一般格式如图12-3所示。图12-3ICMP报文字端含义(1)类型:占8比特,指明差错的种类。(2)代码:占8比特,指明引起错误的原因。(3)校验和:占16比特,其值的计算与IP分组中校验和的计算一致。校验的范围包括整个报文。(4)头部的其余部分与类型字段有关,当类型是目的站不可达、源站抑制、超时时,该字段值为0。当类型是参数问题报文时,该字段由2部分组成,如图9-10所示。其中指针指向有问题的字节(代码=0时。当代码=1时,指针=0)。当类型是改变路由报文时,该字段是目标路由器的IP地址,即IP分组的下一跳路由器地址。2.ICMP查询除了报告IP分组在转发和处理上存在的问题之外,ICMP还具有诊断和查询功能,用于了解掌握网络的运行情况。这项功能通过ICMP查询报文(图12-4)实现。图12-4ICMP查询报文ICMP报文封装的过程如图12-5所示。图12-5ICMP的封装12.2通信量控制在计算机网络中有一种普遍存在的问题,即接收方因不能及时处理到来的数据而不得不把部分数据丢弃,严重时甚至导致接收方不能正常工作。例如,当发送方在一个相对较快或负载较轻而接收方在一个相对较慢或负载较重的机器上运行时,就会出现上述问题。我们称这个问题为通信量控制问题。本节要介绍的就是解决这个问题的方法。读者可能会问发送方和接收方是指主机/路由器吗?我们说,发送方和接收方准确的含义是参考模型中的层实体,例如层协议软件。换句话说,当源机器中的第n层实体是发送方时,目的机器的对等层就是接收方。当然,用户关心的是应用层数据是否能够被全部接收,也就是说,源主机应用程序的数据能否被目的主机接收。例如一个WWW服务器的页面是否完整地被下载到浏览器窗口中。原因但是,源主机应用层数据不能被目的主机应用层接收的原因不一定只存在于应用层实体(例如服务器软件或浏览器故障),也有可能是运输层、网络层、数据链路层,甚至是物理层引起的。例如:(1)目的主机运输层TCP端口的缓冲区溢出,造成TCP报文段被丢弃。(2)路由器CPU速度较慢,使得IP层来不及完成路由表刷新、路由选择、IP分组的分片封装以及转发工作,导致IP分组积压(3)相邻WAN交换机的数据链路层之间由于一方发送帧的数量超过了对方的处理能力,造成帧被丢弃。结论可见,造成通信量控制问题的原因有主机的,有路由器的,有WAN交换机的。主机的原因主要在于运输层,路由器的原因主要在于网际层,WAN交换机的原因主要在于数据链路层。流量控制的含义由于运输层和数据链路层在发送数据之前一般先要建立数据通路,然后数据以流的形式在其上传播。因此,这2层的通信量控制被称为流量控制。拥塞的含义网际层以存储转发方式发送数据,数据以分组形式独立被路由(第三层交换除外)。当过量的分组在路由器积压时,称为拥塞。因此,网际层的通信量控制被称为拥塞控制。通信量控制方法(1)滑动窗口法:它是主要的流量控制方法。TCP使用了该方法。数据链路层也使用该方法。有意思的是,TCP也用它控制拥塞。(2)拥塞预警法:IP层ICMP使用的就是该方法。另外,帧中继也使用类似的方法。(3)通信量整形法:ATM的拥塞控制使用该方法。常用的通信量整形法包括漏桶法和令牌桶法。(4)加权公平队列法:它用于增强拥塞预警法的效力。IP路由器使用该方法。12.2.1流量控制流量控制(flowcontrol)又可以称为流控制,因为这种通信量控制的对象是数据流而不是单个数据(例如分组)。数据流是在一个连接上发送的数据,如第2层点到点数据链路上的帧序列,或是第4层TCP连接上的TCP报文段串的字节流。流量控制的基本思想根据接收方的可用缓存空间大小和处理数据能力来发送数据。其典型的方法就是滑动窗口法。TCP就采用这种方法。1.滑动窗口窗口是指运输层软件使用的缓存的一部分,而且这部分空间是空闲的。当缓存中有数据进入或被应用程序取走时,空闲空间的位置在缓存中会变动。因此,称之为滑动窗口。发送方和接收方在一个连接上定义一个滑动窗口,它是接收方空闲缓存的全部或部分。在连接建立过程中,接收方把滑动窗口的大小告诉给发送方。发送方按照接收方窗口的大小发送数据。显然,这样的发送不会导致接收方缓存溢出。2.TCP滑动窗口图12-6TCP滑动窗口的一个例子。图12-6TCP滑动窗口窗口的大小窗口大小可增可减,如图12-7所示。图12-7窗口增减3.糊涂窗口综合症当发送方应用程序产生数据(向TCP提交)或者接收方应用程序从TCP提取数据的速率很慢时,滑动窗口中的字节数量会很少,比如只有1个字节。显然,为发送1个字节而发送1个TCP报文段(头部就占20个字节)是不合算的。这个问题称为糊涂窗口综合症。解决糊涂窗口综合症的方法对滑动窗口方法进行改进。在发送方,改进的基本思路是强迫TCP收集数据,当窗口中的字节数达到一定数量时再一起发送。Nagle算法它的步骤包括:
第1步:发送方TCP发送窗口中的第1块字节,哪怕只有1个。
第2步:然后在输出缓存中积累数据并等待。当收到接收端的TCP确认或者数据可以装成一个最大报文段时,发送数据。
第3步:重复第2步。接收端改进滑动窗口的作法(1)Clark法:只要有数据到达就发送确认,但宣布窗口大小为0,直至缓冲空间可以放入最大长度报文段,或者缓存的一半空闲。(2)延迟确认:当一个报文段到达时并不立即发送确认,直到输入缓存有足够的空闲空间为止。延迟确认法比Clark法好在减少了确认报文,但延迟时间过长会导致发送方的重传。为此,目前规定延迟时间不能超过500毫秒。12.2.2拥塞控制当主机发送给网络的分组在其传输容量范围内时,分组会全部被转发到目的地(除因其他问题的少数分组之外),而且被成功转发的数目与主机发送的数量成正比。当网络被“注入”的分组数量迅速增加时,会使大量的分组在网络中积聚,进而导致网络传输能力的进一步下降。这时网络就发生了拥塞(congestion)。路由器由于不堪重负开始丢弃分组,使被成功转发的分组数量急剧下降。拥塞对网络性能的影响如图12-8所示。图12-8当通信量太大时,会发生拥塞,网络性能显著下降造成网络拥塞的原因(1)存储空间不足:当n个分组从几个方向到达路由器并都从一个方向输出时,若输出缓冲区的空间只能存储n-1个分组,那么就会有一个分组被丢弃。(2)处理器速度慢:如果路由器CPU的处理速度太慢,即使到来的分组数量不太大,也可能导致存储空间溢出。(3)链路带宽低:尽管存储空间和CPU的指标很高,但如果输出链路的带宽相对过低,也会导致部分分组不能被及时转发。值得指出的是增加存储空间可以避免分组在该路由器被丢弃,但可能导致分组因排队时间过长而超时(但仍被该路由器转发)。超时会引起该分组的重发,从而使网络的通信量额外地增加。1.拥塞预警法为了避免被大量到来的分组淹没,路由器可以建立一种拥塞预警机制,当轻度拥塞发生时,通知源主机减少发送分组的数量,这样会减轻拥塞加剧。发现拥塞发生的途径(1)输出线路利用率。如果利用率过高,则认为拥塞发生。(2)输出队列长度。如果队列长度接近满员,则认为拥塞发生。(3)分组丢弃率。如果被丢弃的分组占接收分组的比率达到一定的门限值,则认为拥塞发生。抑制分组当路由器发生拥塞时,它发送一种特殊的分组(称为抑制分组,chockpacket)给所有的源主机。源主机收到抑制分组后按一定的比率减少发送给特定目的地的通信量。经过一定的时间,如果再收到抑制分组,主机再减少通信量。当一定时间后,主机再没收到抑制分组时,认为拥塞解除,再逐步恢复发送速率。问题是主机收到抑制分组后是否降低其速率是自愿的,而且降低速率的主机可能对拥塞不负主要责任。为了克服上述问题,需要使真正造成拥塞的源主机降低发送速率。下面,我们介绍这样一种方法——加权公平队列法(WeightedFairQueuing,WFQ)。该方法已经广泛地应用于ATM交换机和IP路由器中。做法如图12-9所示。路由器的每条输出线路有多个队列,每个源主机对应一个。每当线路空闲时,路由器便循环扫描各队列。扫描是按字节进行的,即先扫描第1个队列的第1个字节,再扫描第2个队列的第1个字节。直至每个队列的分组都扫描完(如(a)所示)。同时记录下每个队列扫描用时,如图(b)所示。然后按照队列扫描用时少在前、多在后的顺序发送分组。这样做就鼓励源主机降低发送通信量。图12-9(a)5个队列中5个分组;(b)发送顺序和扫描用时2.通信量整形所谓通信量整形是指把主机向网络输出分组的速率调整到一个固定的平均速率,以使路由器能够以现有资源平稳地处理它。漏桶法(leakybucketalgorithm)其原理如图12-10所示。图12-10漏桶算法算法主机每隔一个时钟节拍向网络发送一个分组(这可以通过接口卡或操作系统强制做到),这样主机中用户进程的变速的分组流以均速向网络发送,从而使突发的数据流变得“平滑”。令牌桶算法如图12-11所示每ΔT秒生成一个令牌,主机每发送一个分组就消耗一个令牌。当没有令牌时(令牌桶为空),不能发送分组。在图12-11(b)中,由于令牌桶中没有令牌,剩下的2个分组只有等待新令牌才能发送。图12-11令牌桶算法令牌桶算法对漏桶算法改进(1)令牌桶没有限定分组的发送频率,它规定的是令牌的生成速率,因而主机可以选择发送分组的时机:是每隔一定时间发一个,还是一下子把令牌都用完。因此,令牌桶算法支持突发通信。(2)漏桶法会丢失分组,而令牌桶法不会。当桶满时,溢出的是令牌而不是分组。算法的综合应用上述通信量整形的算法不但适用于主机到网络的通信整形,也同样可用于路由器之间的通信量整形。另外,2个算法也可以结合使用,即在令牌桶的下面加上一个漏桶(漏桶的速率要比令牌桶的大,但比网络的最高速率小),如图12-12所示,这样既可以支持突发通信,又可以降低拥塞发生的概率。图12-12令牌桶+漏桶算法TCP对拥塞控制的贡献TCP是如何控制拥塞呢?要回答这个问题就要分析一下TCP与拥塞的关系。我们知道,TCP报文段是封装到IP分组中发送的,TCP向IP发送数据的速率越快,IP产生的分组就越多,主机发送到网络中的分组就越多。因此,TCP的发送速率会影响拥塞的发生。滑动窗口用于拥塞控制的
窗口大小窗口大小=min(接收端通知的窗口大小,拥塞窗口大小)说明拥塞窗口大小由网络拥塞程度决定。显然,新窗口的定义同时满足了流量控制和拥塞控制的需要。问题是拥塞窗口的大小如何获得。由于网络中存在多个路由器,拥塞可能发生在部分路由器上,因此,不能由网络提供拥塞窗口的大小。实际上,拥塞窗口的大小由发送方TCP确定。下面,我们分析具体的作法。做法首先,TCP通过TCP报文段丢失现象(在记时内没有收到确认)判断发生了拥塞。在没有拥塞时,拥塞窗口的大小设为最大报文段长度MSS。其后每收到一个确认,拥塞窗口大小就增加一个最大报文段长度,直到某个允许门限值。这个过程称为慢启动(其实窗口大小的增长一点也不慢,因为窗口大小是MSS×2n,n是确认报文数)。当拥塞发生时,令拥塞窗口大小等于一个MSS,而门限值为上次发送时的拥塞窗口的一半。12.3IP安全体系结构和
安全算法12.3.1网络信息安全概念破译(interception)。当Alice通过网络与Bob通信时,Jack采取办法了解他们通信的内容。中断(interruption)。Alice与Bob的通信被Jack中断。篡改(modification)。Alice给Bob发信说:“给John加薪”。信经过Jack时,他把信改成:请给Jack加薪。假冒(personation)。Jack告诉Bob:“我是Alice”。然后,Jack伪造信息发给Bob;或者要求Bob给他发信。攻击分类攻击分为被动攻击和主动攻击。在被动攻击中,攻击者(也称为入侵者)只是观察某个协议数据单元PDU(第2层的帧、第3层的分组或是第4层的TCP报文段、第5层的HTTP报文)而不破坏它们,这些PDU还能正常被处理。例如,攻击者通过观察PDU的头部控制信息了解正在通信的协议实体的地址和身份,研究PDU的长度和传输的频度,以便了解所变换的数据的性质(这种被动攻击又称为通信量分析)。主动攻击攻击者要对PDU进行更深入的分析,以获得PDU中数据的真实含义,或者有选择地更改、删除、延迟这些PDU,或者把PDU复制下来,稍后再发到原来的数据通道上去(重放攻击的作法),甚至伪造一些PDU。Jack的上述行为都属于主动攻击。加密与解密加密是指将明文变换成密文的过程。解密是指从密文还原明文的过程。加密过程使用的方法称为加密算法,解密过程使用的算法称为解密算法。有时,加密和解密使用同一个算法。加密用于隐藏数据的真实含义。密钥是一个随机生成的数据,与加密算法一起对明文进行加密,或与解密算法一起对密文进行解密。身份认证它是一种用来鉴别通信参与者是否真的是他所声称的身份的方法。身份认证用于发现那些假冒的入侵者。完整性校验它是一种用来检查数据在通信过程中是否被修改过的方法。完整性校验可以检查出被篡改过的数据,或者发生了通信错误的数据。不可否认性确认它是一种证明发送者的确发送过某个信息的方法。该方法可以防止发送者的抵赖行为。12.3.2IPSec从总体来看,当前IP网络的安全主要由一种称为IPSec的功能集提供。它是IETF的IPSec工作组为Internet制订的安全体系结构。由于TCP/IP是Internet的通信协议,因此Internet的许多安全问题都与IP协议有关。TCP/IP协议在制定之初没有充分考虑网络将会面临的安全威胁,因此,协议中缺乏完善的安全机制(有些协议甚至一点也没有)。为此制定了IP网络的安全体系结构IPSec以加强IP网络的安全性。IPSec安全体系组成部分(1)IP认证头部(AuthenticationHeader,AH):AH提供数据源身份认证、数据完整性和重放攻击保护等功能。(2)IP封装安全负荷(EncapsulatingSecurityPayload,ESP):ESP提供数据保密、数据源身份认证、数据完整性和重放攻击保护等功能。(3)因特网密钥交换(InternetKeyExchange,IKE):IKE负责安全关联管理和密钥管理。IKE由Internet安全关联和密钥管理协议(InternetSecurityAssociationandKeyManagementProtocol,ISAKMP)和Oakley协议等协议实现。
IPSec为IP网络提供的安全功能(1)数据源身份认证:证实数据是所声称的发送者发送的。(2)数据完整性:证实数据的内容在传输过程中没被修改过,无论是出于人为故意的原因还是随机的传输错误。(3)数据保密:通过加密隐藏数据的的真实含义。(4)重放攻击保护:防止攻击者获得数据,过一段时间后再把该数据放回信道。(5)密钥管理和安全关联管理:保证只需少量或根本不需要手工配置来管理密钥和安全关联。安全关联SASA是2个IPSec系统之间的单工逻辑连接,它由一个三元组结构<SPI,目的IP地址,安全协议>定义。SPI(SecurityParameterIndex)是一个32比特数,用于区别具有相同目的IP地址和安全协议的安全关联。SPI在SA建立过程中由目的系统选择(0~255除外)。目的IP地址是建立安全关联发起方的响应方的IP地址。安全协议指AH或ESP。安全关联数据库SADSAD包括每一个SA的参数信息,例如AH或ESP加密算法/密钥、顺序号、协议模式以及SA生命周期SAD决定了一个给定的分组究竟使用哪一个SA。安全策略数据库SPD它包括一个排序的策略列表,针对流入数据和流出数据有不同的数据项。这些数据项指定某些数据流必须绕过IPSec处理,而某些数据流必须被丢弃,其余的则必须经过IPSec模块的处理。1.认证头部AHAH的作用是为IP分组提供完整性校验和身份认证。AH通过对IP分组头部中的不变字段实施保护来实现完整性校验(可变字段包括服务类型TOS、标志位、段偏移、生存期TTL、头部校验和)。AH只处理没被分段的IP分组,AH通过丢弃被分段分组防止假冒,提供身份认证。AH头部在IP分组的位置及其包含的字段如图12-13所示。图12-13AH头部格式字段含义(1)下一头部:8比特。用于标识认证头部后面数据是哪个协议的,其值是Internet编号管理机构IANA(InternetAssignedNumbersAuthority)发布的“数字分配RFC”中定义的IP协议号。(2)长度:8比特。认证数据的长度,单位是字节。(3)保留字段:16比特。当前默认值为0。(4)安全参数索引SPI:32比特。用于标识具有相同IP地址和相同安全协议的不同安全关联。SPI=0作为本地特殊使用,1~255由IANA保留。续(5)序列号:32比特。它是个单向递增的计数器。发送方在分组中加入该字段。在一个SA建立时,序列号初始值为0,在该SA上每发送一个分组,序列号就加1。由于序列号不允许重复,因此能够防止重放攻击。(6)认证数据:变长,但其长度要是32比特的整数倍。认证数据用于验证所收到的分组是完整的,它由SA初始化时指定的认证算法计算。AH传输模式在传模模式中,AH头部被插入到IP分组头部的后面,如图12-14所示。图12-14AH传输模式AH隧道模式需要保护的IP分组被封装在新的IP分组中(原来的IP分组作为新IP分组的负荷),然后对新IP分组按传输模式处理。如图12-15所示。图12-15AH隧道模式注当安全关联的一方是网关时,就要使用隧道模式。如果安全关联的两端都是防火墙,那么就必须使用隧道模式。在隧道模式下,外层头部中的IP地址可以与内部头部中的IP地址不一样,例如,内层头部中的地址是主机地址,外层地址是网关地址,这样两个网关可以通过AH隧道保护它们所连接的网络主机之间的全部通信。隧道模式的主要优点可以对被封装的分组提供完全的保护(所有字段都被保护),同时使私有地址的使用成为可能(只需将它们放在内层头部中)。缺点是增加了额外的开销(多了一层IP头部)。2.负荷安全封装ESP负荷安全封装ESP的功能是给IP分组提供以下安全服务:
(1)完整性校验
(2)身份认证
(3)加密
(4)重放攻击保护(可选)上述安全服务在安全关联SA建立时,按照以下规则约定:(1)完整性校验与身份认证必须同时使用。(2)要使用重放攻击保护功能时必须同时使用完整性校验和身份认证。(3)重放攻击保护功能只能由接收方选择。ESP报文格式如图12-16所示。图12-16ESP报文格式ESP报文组成部分(1)ESP头部:包括安全参数索引和序列号。(2)ESP尾部:包括填充、填充长度和下一头部等字段。其中下一头部字段给出原始IP分组数据区中的数据是哪个协议的。(3)负荷数据:经过加密的IP分组数据。加密算法由SA建立过程协商选择,如DES(DataEncryptionStandard)(4)认证数据:该字段包含由前面ESP头部、负荷数据和ESP尾部计算出的ICV值。只有当SA初始化选择了完整性校验和身份认证时,报文中才会有该字段。ESP要求支持至少2种算法,如MD5(MessageDigest5)和SHA-1。ESP的认证范围包括ESP头部、负荷数据和ESP尾部。ESP的加密范围是整个原始IP分组。ESP传输模式ESP头部被插入到IP头部后面,如图12-17所示。图12-17ESP传输模式特点分析传输模式下的ESP不为IP头部提供身份认证和加密,误传的IP分组也会被交给ESP处理。这是ESP的一个缺点,ESP的优点是开销较小。和AH一样,传输模式下的ESP通常由主机使用。网关甚至可以不支持传输模式。ESP隧道模式ESP首先创建一个新的IP分组,将原始的IP分组封装在其中,然后对新IP分组按ESP传输模式处理。如图12-18所示。图12-18ESP隧道模式注只要安全关联的一个端点是网关,就要使用隧道模式,而2个防火墙之间通常要使隧道模式。虽然网关可以只支持隧道模式,但它们也经常工作在传输模式下,此时,网关以普通主机身份参与通信。在隧道模式下,外层头部中的IP地址可以跟内层头部中的IP地址不一样,这一点与AH是一致的。隧道模式的优缺点可以对被封装的分组提供完全的保护,同时提供了使用私有地址的可能其缺点是增加了额外的开销。读者可能会问为什么AH和ESP会同时存在呢?原因有以下方面:(1)ESP要求使用高强度的加密算法,而无论实际上是否需要。由于高强度加密算法被许多国家严格管制,因此,在实施ESP时会有很多意外的限制,而AH可以在全球自由使用。(2)很多情况下只需要认证服务即可,而此时AH比ESP的效率高,因为它格式简单,额外开销小。(3)另外,AH与ESP的同时存在使安全方案更加灵活,尤其在同时使用AH与ESP时,利用二者的优点会增加安全方案的针对性和适用性。3.IPSec在VPN中的应用虚拟专用网(VirtualPrivateNetwork,VPN)是一种在公共网络或共享网络(如公司网、Intranet、Extranet)上通过隧道等技术为私有数据建立一个受保护通道,用户可以通过它传输自己的数据,通道对其他人来说是保密的。VPN示意图如图12-19所示。图12-19VPN示意图VPN应用分支机构网络与公司内部网互联第3方网络与公司内部网互联远程访问用户访问公司内部网等场合。IPSec的AH和ESP可以用于形成VPN中的通道。AH隧道模式+ESP传输模式VPN如图12-20所示。图12-20AH传输+ESP隧道
构建VPNAH与ESP对IP分组的保护过程(1)当主机H1要向H2发送一个IP分组时,主机H1先创建IP分组,对其做ESP处理,然后将IP分组发给网关G1,IP分组中的目的地址是H2。(2)网关G1经过识别发现该IP分组应当先发给G2。经过对IPSec数据库(SPD和SAD)的查询,G1进一步得知转发IP分组之前先要使用隧道模式对IP分组做AH处理。然后G1对IP分组做必要的封装,外层的IP分组的目的地址是网关G2,真正的目的地址H2此时已经被封装了。续(3)网关G2接收到AH隧道封装的IP分组后,对IP分组做身份认证,然后将外部包头去掉,于是G2发现IP分组的真正目的地址是H2,然后将该IP分组转发给给H2。(4)H2收到了H1发出的IP分组,H2对IP分组做传输模式的ESP处理,即去掉ESP头部、ESP尾部和ESP认证数据,取出负荷。上述过程中IP分组的格式变化情形如图12-21所示。图12-21AH传输+ESP隧道
中的IP分组3.因特网密钥交换协议从前面的介绍中读者可以看到,安全关联是AH和ESP实施的基础,AH和ESP都是在某个安全关联连接上进行的。安全关联定义了AH和ESP使用的加密算法、密钥和认证算法以及其他安全参数。安全关联是为安全通信而动态建立的,因此它存在一个协商、修改和删除的管理问题。
由于加密算法是国际通用,换句话说,是公开的。因此,加密数据的保密性就取决于加密算法使用的密钥的保密性。在IPSec使用的加密算法中,有的算法(如DES)的密钥是私有的,只能供发送方(加密者)和接收者(真实的)使用,因此,还存在一个密钥的产生、分发、销毁等管理问题。ISAKMP和Oakley密钥交换的
2个阶段第1阶段,双方协商创建一个主密钥,以后用于保护用户数据流的所有密钥都根据主密钥产生。该阶段主要工作是建立对ISAKMP报文自身的保护措施,它并不创建用于保护用户数据的安全关联或密钥。该阶段用于协商主密钥而创建的安全关联称为ISAKMP安全关联。续第2阶段双方协商用于加密用户数据的密钥。该阶段的ISAKMP报文仍在第1阶段建立的ISAKMP安全关联上交换。第2阶段协商密钥的频率要比第1阶段的高。ISAKMP安全关联创建的
基本过程假设主机A是发起方,而主机B是响应方。在ISAKMP安全关联创建的过程中,双方要交换以下6个ISAKMP报文:(1)报文1和报文2用于协商安全关联的特征。它们以明文方式传输,且没有身份认证。(2)报文3和报文4用于交换一个随机数nonce。同时使用Diffie-Hellman算法创建一个主密钥(SKEYID)。它们也以明文方式传输,不做身份认证。(3)报文5和报文6用于交换通信双方相互认证所需的信息。这2个报文由前4个报文建立的加密算法和密钥保护。续主机A在初始化时,创建报文1(如图12-22所示)。在该报文中A向B提出n个建议供B选择。报文1被封装在UDP报文中(端口号=500,ISAKMP专用)经IP层发送。IP头部的源地址是A的地址,目的地址是B的地址。图12-22为创建ISAKMP关联而发送的报文1字段含义ISAKMP头部中交换类型是主模式(在创建ISAKMP关联过程总是这样的)。报文标识符是0。响应方式Cookie字段设为0,发起方Cookie字段添入一个随机选择的数。安全关联字段用于标识在安全关联上传输的数把是哪个协议的。此处值是IP。建议字段值为PROTO-ISAKMP。变换字段值为KEY-OAKLEY。当变换字段值为KEY-OAKLEY时,主机A必须指定相关的属性,即使用身份认证方法、伪随机函数和加密算法。续主机B收到发来的报文1后,如果支持报文1中的某些建议,则向A发送报文2,告诉它所选择的建议。此时,A与B的第1次协商成功结束。续在报文2中,B要选择一个随机数作为它的Cookie字段值,该值与A在报文1中使用的随机数构成<Cookie-A,Cookie-B>数对作为ISAKMP安全关联的SPI。第1次协商的结果是双方确定了SPI、认证方法、加密方法。但是双方还没有进行相互认证。第2次协商双方交换报文3和报文4。协商的结果双方得到了用于保护ISAKMP报文的认证密钥和加密密钥,还得到了用于产生(保护用户数据的)密钥的(与具体算法有关的)数据。不过此时通信双方还没有相互认证。续为了进行身份认证,双方在第3次协商时交换报文5和报文6,用于携带标识、鉴名和证书(可选),其结构如图12-23所示。图12-23第3次协商中报文结构注意在ISAKMPSA建立过程中,没有使用IPSec的ESP或AH。ISAKMP报文交换由高层,如运输层和应用层安全机制来保护。例如,在运输层有一个称为安全套接字层(SecuritySocketLayer,SSL)的安全机制提供运输层的保护。在应用层除了各种专用的安全系统外,有一个用于WWW服务安全的S-HTTP(SecureHTTP)协议提供基于浏览器应用的安全保护。它们与IPSec的关系如图12-24所示。图12-24网络信息的安全要由多层安全机制共同保证建立安全关联建立了ISAKMPSA之后,接下来就要建立用于传输IP分组的安全关联(在IETF草案中,这种安全关联称为非ISAKMPSA)。非ISAKMPSA建立的机制与ISAKMP建立的机制相似,由于篇幅所限,本书不再介绍。12.3.2IPSec使用的安全算法从AH和ESP以及ISAKMP/Oakley的介绍中读者可以看到,IPSec的核心操作是围绕加密和认证算法的协商以及应用展开的。AH和ESP可以看成是一种综合应用。安全算法比IPSec具有更基础性的作用,它们不仅在IPSec安全框架中,而且还在网络的各个层次中都有应用。因此,本小节再简要对它们进行介绍。1.IPSec的加密算法IPSec在ESP中使用的加密算法是DES,用于给IP分组加密。另外,三重DES和IBM的CDMF(CommercialDataMaskingFacility)也有所使用。尽管协议也支持IDEA(InternationalDataEncryptionAlgorithm)和其他一些算法,但实际应用较少。DES算法背景DES由IBM提出,并于1977年1月被美国定为联邦信息标准。DES算法概述加密前,先对整个明文进行分组(因此,DES属于分组密码算法)。每个分组长64比特。然后,对每个64比特二进制数据进行加密处理,产生一个64比特的密文分组。最后将各密文分组串接起来,就得到了整个明文的密文。64比特密文分组生成的过程如图12-25所示。图12-25DES加密过程函数f运算过程(1)根据一个固定的变位和复制规则把32比特的Ri-1扩展成48比特的数,记为E(Ri-1)。(2)把E(Ri-1)与ki进行异或运算(#),把结果分为8组,每组6比特,记为B1,B2,…B8。即E(Ri-1)#ki=B1B2…B8。(3)把Bi经过特定的变换(称为S变换)得到4比特的一组数据,记为Si(Bi)。每个Bi经过的变换过程不一样,因此要使用8个不同的S函数。续(4)将8个Si(Bi)按Bi的顺序排好,再进行一次变序(称为P变换)得到f(Ri-1,ki)。P变换的作用是改变数据的输出顺序,其原理如图12-26(a)所示。该P变换把01234567的输入变序成36071245。一个3对3的S变换如图12-26(b)所示。3比特的输入使第1个方框的某根输出线置1(输出线的顺序等于输入的值),其他线上的值为0。图12-26P变换和S变换DES解密过程和加密相似,但16个密钥的使用顺序正好相反。每次迭代使用密钥ki都不同。ki的实际长度是48比特,它是从原始64比特密钥变换后的56比特中抽取的。电子密码本模式ECM明文的各个分组经加密后仍按原分组所在位置发送电子密码本DES算法实质上只起到了替换的作用,即用一个密文块替换了一个明文块,由于当DES的输入相同时,其输出也相同,因此,ECM模式安全程度不高。密码分组链接CBC模式可以解决ECM存在的密文被替换问题,提高DES的安全性。CBC的原理每个明文分组在加密之前先与一个密文分组进行异或运算,第1个密文分组与一个初始向量(InitializationVetor,IV)进行异或。为了保证解密正确,该IV要与密文一起发送。CBC的原理如图12-27所示。图12-27CBC原理三重DES三重DES是为了增加DES的安全性,尽管在1979年尚没有DES被破译的报道,IBM就制定了三重DES方法,其原理很简单,如图12-28所示。图12-28三重DES国际数据加密算法IDEA它是DES之后最著名的密钥密码算法。IDEA由瑞士的LaiX.和MasseyJ.于1990年设计。IDEA的基本运算流程如图12-29所示。图12-29IDEA算法概述IDEA与DES相似,也是先将明文分块成一个个64比特长的分组,每个分组经过8次迭代和一次变换,得出64比特的密文。对于每一次迭代,每个输出比特都与每个输入比特有关。每一次迭代的具体运算如图12-30(b)所示。64比特的分组被分成4个16比特的块参与运算,运算过程使用6个子密钥,这6个密钥是16比特长。在最后的变换运算中使用4个子密钥。这52个子密钥是由IDEA128比特的密钥生成的。2.共享密钥产生算法下面,我们分析在DES中使用的密钥是如何产生和交换的。读者从对DES算法的介绍中可以看到,DES加密和解密使用相同的密钥(这种算法称为对称密钥算法),这就需要做2个工作:第一,加密者要和解密者互通密钥信息;第二,密钥要保密。显然,第1个工作增加了第2个工作的难度,密钥在通信双方之间交换时容易被窃取。这是对称密钥算法不可克服的缺点。Diffie-Hellman算法DES中使用的共享秘密密钥就由Diffie-Hellman密钥交换算法产生。算法的基本步骤(1)Alice和Bob事先约定2个共同使用的数:g和n,其中n是一个非常大的质数,并且(n-1)/2和(g-1)/2都是质数。(2)Alice随机挑选一个很大的数x,然后计算:
a=gxmodn(3)Bob随机挑选一个很大的数y,然后计算:
b=gymodn
(4)Alice把a发送给Bob。
(5)Bob收到a后做计算:
k1=aymodn
(6)Bob将b发送给Alice。
(7)Alice收到b后做计算:
k2=bxmodn上述过程如图12-30所示。图12-30Diffie-Hellman
密钥交换3.IPSec的认证算法IPSec使用RSA算法进行身份认证。RSA算法是由美国MIT的Rivest、Shamir和Adleman于1976年提出。RSA算法是应用最广泛的公开密钥算法。RSA算法的步骤(1)秘密地选择2个很大的质数p和q(典型地应大于10100)。
(2)计算p和q的积n。
(3)选择一个数e,e<n且要求e与(p-1)(q-1)互质(也就是说,e与(p-1)(q-1)的最大公因子是1)。
(4)计算d,要求ed=1mod(p-1)(q-1)。
e称为公开指数,d称为私有指数。举例说明如何使用e和d进行
安全通信(1)假设Alice要给Bob发送信息m,她使用RSA算法加密m,得到密文c=memodn。此处,Alice使用的e和n是Bob事先告诉她的,<e,n>称为公开密钥。因为Bob无需使用秘密的通道传递e和n,它们可以公开地被想给Bob发信的人得到。(2)Alice把c发给Bob。(3)Bob用如下方式解密:m=cdmodn。d是Bob私有的,<d,n>称为私有密钥。RSA加密通信模型如图12-31所示。图12-31RSA加密通信RSA与DES比较RSA与DES的一个显著不同之处是RSA使用2个不同的密钥,其中一个用于加密(公开密钥),另一个用于解密(私有密钥)。而DES加密和解密都使用同一个密钥,因此要保管好密钥,而且要保证密钥从产生处安全地交给使用者。两个密钥不一样的算法称为非对称算法。如果使用的密钥部分是公开的,则算法称为公开密钥算法。读者可能问了RSA如何进行身份认证呢?我们仍然通过一个例子来说明。举例(1)假定Bob要求给他发信的人要签上发信人的名字。(2)为此,Alice用自己的私有密钥<d,n>对明文m加密,得:
s=mdmodn
s称为Alice对m的数字签名。因为s中包含了Alice不能抵赖的私有信息d和n。(3)Alice将s和m一起发给Bob。(4)Bob在接受m之前,先要确认m是Alice发给他的。换句话说,他要验证s的确是Alice对m的签名。为此,他用Alice的公钥对s解密,得:
m*=semodn(5)Bob比较m*是否与m一致。如果一致,则认为m是Alice发的,否则,认为m和s不是Alice发送的。上述身份认证的过程如图12-32所示。图12-32RSA产生数字签名用于身份认证既要保密又要签名的算法(1)假定Bob要求以密文给他发信,且要发信的人签上自己的名字。(2)Alice用自己的私有密钥<dA,nA>对明文m进行签名,得:
s=mdAmodnA(3)Alice使用Bob的公开密钥eB和nB对s进行加密,得密文:
c=seBmodnB(4)Alice把c发送给Bob。(5)Bob用私有密钥对收到的密文解密,得:
s=cdBmodnB(6)然后,Bob用Alice的公开密钥对s解密:
m=seAmodnA
得到明文m。上述过程如图12-33所示。图12-33RSA签名+加密通信4.IPSec的证书证书是由以下部分组成的数字文件:
(1)证书持有者的身份标识:它可以是IP地址、IP地址范围、子网地址、域名、文本字符串。换句话说,证书可以证明这些信息是合法的。以这些信息为标识的通信实体是合法的。
(2)签发证书的认证权威(CertificationAuthority,CA)机构的公钥:该公钥用于验证证书的合法性。
(3)签发证书的日期。
(4)证书的有效期。
(5)证书的其他信息,如序列号。证书的实质内容是它声明的通信实体以及该通信实体使用的公开密钥。它对通信实体的证明是通过对其公开的密钥的验证实现的。证书的作用在Alice和Bob通信时,Jack插了进来。他把自己的公钥发给Bob,慌称是Alice的,再把自己的公钥发给Alice,慌称是Bob的。这样,Jack用自己的私钥就可以轻易地解密Alice和Bob之间的通信。而且还可以进一步实施更多的攻击,例如伪造(栽赃)。显然,如果Bob和Alice能够在发信前验证一下对方公钥的真实性,就会避免上述攻击的发生。证书就是对通信方及其公钥的认证方式。如何产生证书首先,我们来看一看证书产生的一般过程:
(1)申请证书:用户A生成一对密钥,然后把公开密钥(连同该用户A的标识)等信息提交给CA。
(2)受理申请:如果用户A的申请符合CA的规定,则CA从申请中提取公开密钥,然后用Hash函数制作公开密钥的MAC(摘要)。再用CA的私钥加密MAC,得到用户A公开密钥的CA签名SCA。最后,把用户A的公开密钥(以及用户A的标识等信息)和SCA组合在一起做成证书。
(3)发放证书:CA把生成的证书发给申请者。证书的产生过程如图12-34所示。图12-34CA产生证书的过程如何验证证书当用户A和B之间需要确认对方身份时,一方把对方出示的证书中的CA签名用CA的公钥解密,应该得到对方公钥的摘要,然后用CA使用的Hash函数制作对方公钥的摘要。把2个摘要进行比较。如果一致,则认为对方身份真实,否则拒绝对方。上述证书验证过程需要用户知道2个事实:
(1)CA的公钥:用于得到摘要。
(2)CA的Hash算法:用于计算签名。另外,也可以采用向CA查询的办法来验证证书。其原理如图12-35所示。图12-35证书查询DSA算法的步骤(1)选择一个质数p,一般512<p<1024。(2)找出一个p-1的质因子q。(3)计算:
g=h(p-1)/qmodp
其中h是一个小于p-1的数,且h(p-1)/q>1。(4)另选一个数x,要求x<q,将x作为发送者的私钥。(5)计算:
y=gxmodp
将y作为发送者的公钥。(x,y)称为长期密钥对。续(6)发送者按如下方式对消息做签名:
·产生一个比q小的随机数k。
·计算:
r=(gkmodp)modq
s=(k-1(SHA(m)+xr))modq
(k,r)称为会话密钥对。(r,s)称为m的签名。(7)发送者发送(m,r,s)。续(8)接收者用如下方式做身份认证计算:
w=s-1modq
u1=(SHA(m)*w)modq
u2=(rw)modq
v=(gu1yu2modp)modq如果v等于r,则认为身份合法。其他产生证书的方法另外,除了DSA算法外,IPSec还使用RSA加密和RSA签名2个方法产生证书。Hash函数具有以下特征:
(1)Hash函数必须能以任意长度的数据作为输入,而输出是定长的。
(2)对任何给定的报文m,计算其Hash函数值是很容易的。
(3)对任何给定的Hash函数值h,要找出m,使h=Hash(m)在计算上是不可行的。
(4)对任意给定的m,要找到m*≠m且Hash(m)=Hash(m*)在计算上是不可行的。Hash函数产生MAC的方式如图12-36所示。图12-36Hash函数产生MACMD5MD5是Rivest提出的MD算法的第5个版本(RFC1321,1992年)。此算法以任意长的报文作为输入,然后输出128比特的MAC。该MAC称为摘要。MD5算法的大致过程(1)Alice计算m的余数:r=mmod264,然后把r加在m的后面。(2)在m和r之间填充1~512比特,使填充后的总长度是512比特的整数倍。填充比特的第1位是1,后面都是0。记新报文为M。(3)把M分割成长度为512比特的数据块,然后进行如图12-37所示的MAC计算。图12-37MDMAC的生成SHA由美国NSA(NationalSecurityAgency)开发并得到美国NIST(NationalInstituteofStandardsTechnology)支持。SHA-1是其新版本,作为美国政府标准。SHA的思想与MD5类似,以变长的数据作为输入,经复杂的计算后得到160比特的MAC。SHA-1比MD5更安全,但计算MAC的速度慢。
IPSec使用MD5和SHA-1作为Hash函数计算MAC的用法(1)加密MD5。(2)加密SHA-1。(3)HMAC-MD5-96。(4)HMAC-SHA-1-96加密MD5用于AH认证的作法如图12-38所示。图12-38加密MD5在AH的应用HMAC-MD5-96IBM公司提出的一种更强大的方法,HMAC(HashMAC)-MD5-96的作法如图12-39所示。图12-39HMAC-MD5-9612.4QOS技术和体系结构12.4.1什么是QoS技术1.服务的含义
计算机网络服务是指通信网络对主机间数据传输所需的效率和可靠性所提供的保证机制。通信网络提供的服务分为2大类:面向连接服务(connect-orientedservice)和无连接服务(connectlessservice)。面向连接服务在面向连接的通信中,每一次完整的数据传输都必须经过建立连接、使用连接、释放连接三个过程。在数据传输过程中,各分组不携带信宿地址,而使用连接号(connectId)。服务类型中的连接类似一个管道,发送者在一端放入数据,接收者从另一端取出数据。面向连接的特点是:收发数据不但顺序一致,而且内容相同,所以其可靠性好,但效率不高。电话系统服务提供的就是面向连接的服务。无连接服务在无连接的通信中,每个分组都携带完整的信宿地址,各分组在系统中独立传送。无连接服务的特点是不能保证分组的先后顺序(由于先后发送的分组可能经历不同路径去往信宿,所以先发的不一定先到)。另外,无连接服务也不能保证丢失分组的恢复或重传,换言之,分组不能保证一定被收到或一定能正确接收。无连接服务的可靠性不好,但因其省去了许多保证机制,使其获得了较高的效率。邮政系统提供的就是无连接的服务。提示效率和可靠性是统一在服务中的一对矛盾,对二者不同的要求,决定了服务类型的不同。正是它们的对立统一,推动了计算机网络技术的发展。尽力而为服务IP协议转发数据的服务被称为尽力而为(besteffort)的服务,它所做的工作就是把IP分组按照路由表的指示转发到下一跳路由器,不做任何与保证数据的服务质量(如防止分组丢失)有关的网络资源控制工作。传统IP网络的服务质量主要是通过TCP的确认和重传机制保证的。2.服务质量的含义服务质量是通信网络传输用户数据的质量。当用户数据总能能被及时传给接收者时,我们说网络的服务质量好,反之就说网络的服务质量不好。说到服务质量QoS,往往给人的感觉是物理地增加带宽,增加存储空间等网络资源。实质上,QoS保证是指采取某种策略,在现有资源基础上,提高资源利用率,从而改善服务质量。3.QoS技术含义QoS技术是Internet迅速发展的产物。QoS技术通过资源预留、预测、分类、优先级区分等综合控制手段,提高网络基础设施资源的利用率,保证数据以某种服务级别在网络中一致地传输,提供主机间端到端的服务质量。4.QoS技术类型-分类一(1)以资源预留协议RSVP为代表的集成服务(IntegratedServices,IntServ):在这类QoS技术中,网络资源根据网络用户的请求而分配。IntServ在BobBraden和DaveClark于1994年6月提交的RFC1633中规范。(2)以优先级技术为代表的区分服务(DifferentiatedServices,DiffServ):在这类QoS技术中,网络元素依据网络带宽管理策略准则对网络通信量(traffic)进行优先级分类并为之指定资源。DiffServ在StevenBlake和DavidL.Black于1998年12月提交的RFC2475中规范。这2类技术的含义如图12-42所示。图12-40IntServ和DiffServ的
含义QoS技术类型-分类二(1)按每个流(perflow)处理:流是两个应用之间一个独立的、方向单一的数据包序列。流用以下5指标唯一标识:
·传输协议
·源地址
·源端口号
·目的地址
·目的端口号(2)按每个聚合处理每个聚合由2个或多个流组成。聚合中的流一般具有相同的标识信息,如地址、端口、标签、优先级或某些认证信息。集成服务和区分服务技术可以根据用户QoS需求的不同而采用数据流或聚合处理方法。RSVP通过控制信令支持网络资源预留,RSVP通常被视为按每个流的QoS技术,同时也支持按每个聚合处理。区分服务可以对流和聚合提供分类和区分优先级。其他技术除了IntServ和DiffServ方法外,目前,提供QoS保证的重要技术还包括以下2个:(1)MPLS流量工程:MPLS通过实施流量工程提供QoS保证。(2)子网带宽管理SBM:SBM(SubnetBandwidthManagement)在共享式和交换式的IEEE802网络的第2层支持分类和优先级区分。上述QoS技术提供的服务级别以及实现的位置如表12-3所示。表12-3QoS服务级别及其实现的位置QoS级别实现的位置服务最高
最低网络和应用RSVP服务(给应用提供反馈)网络和应用RSVP加载服务(loadservice)(给应用提供反馈)网络MPLS网络和应用区分服务DiffServ在网络核心的入口为数据流(flow)实施,与RSVP预留服务级别相对应。优先级使用LAN的SBM。网络和应用基于源应用流的DiffServ或SBM网络网络核心入口的DiffServ
尽力而为(besteffort)服务12.4.2集成服务RSVP是一个信令协议。它提供资源预留的建立与控制机制。RSVP在IP网络上提供集成服务。在QoS技术中,RSVP是最复杂的,同时,RSVP提供了最高级别的服务质量保证。1.IntServ实现参考框架IntServ集成模型标准RFC1633提出了实现集成服务的参考框架。该框架由以下几部分组成。(1)Setup协议:Setup协议用于主机或路由器动态地分配和保留资源,以满足特殊数据流的服务需求。RSVP就是一个Setup协议(2)流说明:说明流所具有的QoS指标参数。续(3)流量控制:它由以下3个组件实现:·分组调度器(scheduler):其基本功能是对输出队列重排序,它处于典型操作系统的输出驱动器级别,并与数据链路层协议保持一致。具体的调度算法根据输出媒体访问控制和网络接口技术而定。例如,经典IP网络的FIFO(先进先出)就是一种尽力而为服务模型的调度算法。·分类器(classifier):以分组头部中特定字段的内容为依据鉴别或把数据进行分类。为了进行流量控制,每个输入的分组必须划分成某些类,属于同一类的所有分组得到分组调度器的相同对待。分类工作由分组分类器负责。类是一种由路由器定义的本地属性,换句话说,同一分组可以被不同的路由器分成不同的类。续·接纳控制(admissioncontrol):确定一个机器(主机、路由器或交换机)是否能够支持某特定数据流所需的QoS。它产生一个本地的接受或拒绝决定。IntServe服务实现参考框架的组成如图12-41所示。图12-41IntServ服务实现
参考框架2.IntServ的服务类型通信的双方要约定需要服务的类型。集成服务类型包括以下2种:(1)保证服务(guaranteedservice):该类型的服务为数据提供专用的带宽和限定的端到端延时。保证服务是为具有极严格的延时和带宽要求的应用设计的,如高保真电话会议。(2)受控负荷服务(controlled-loadservice):该类型应用于延时和带宽要求不是很严格的场合。它的延时上限可以不必限定。在没有负荷的条件下,这种类型等效于尽力而为(besteffort)服务。它比尽力而为服务要好,但不能象保证类型那样提供严格的有界的服务(boundedservice)。当网络发生拥塞时,受控负荷服务的性能只是轻微下降,它能保证数据流的延时和丢失率在一个可控的范围内。3.RSVP资源预留原理资源预留建立的大致过程包括以下4步:
(1)源主机定义通信量带宽、延迟和抖动等参数的范围,然后发送RSVPPATH报文,该报文包含通信量声明信息(TrafficSpecification,TSpec)。PATH报文被封装在IP分组或UDP数据报中转发。在转发过程中,中间路由器把必要的信息(称为通路状态)填入PATH报文。这样,PATH到达目的主机时,PATH就记录了从源到目的主机的完整的通路信息,如路由器的地址和路由器QoS特性。续(2)目的主机产生RSVPRESV报文。与TSpec对应,RESV报文包含请求声明(RequestSpecification,RSpec),它指明需要的集成服务类型。RESV报文还包含过滤声明(FilterSpecification,FilterSpec),它指明需要预留资源的数据的运输协议及端口号。RSpec和FilterSpec构成了流描述符(flow-descriptor),它与数据流一一对应,路由器可以用它来标识预留资源。该描述符被传递给通路上每个支持RSVP的路由器的流量控制组件。接纳控制和策略控制功能判断该QoS请求能否被支持,如果可以,则分类器和调度器被刷新。续(3)当RESV报文到达PATH报文经过的路由器时,路由器检查RSpec的请求是否能被满足,如果可以,则路由器记录RESV的消息,分配资源,并把RESV向源主机转发。如果请求被拒绝,则路由器返回一个错误消息。(4)当RESV沿着PATH报文经过的通路返回源主机时,一条由源到目的主机的具有资源保证的通路就建立起来。上述过程如图12-42所示。图12-42RSVPQoS原理:RSVPPATH和RESV报文12.4.3区分服务从RSVP集成服务原理的介绍中读者可以看到,RSVP要在源主机和目的主机之间通过PATH和RESV报文的交换,在数据流要经过的路由的沿途节点为每个数据流预留资源。同时,在所有节点要维护相应的数据流说明、分类、接纳和调度的规则。因此,RSVP资源预留可以提供端到端的QoS保证(主机-主机间的,需要全部中间节点支持RSVP)。与区分服务相比,集成服务的成本要高,实现比较复杂。区分服务特点(1)区分服务通过优先处理QoS需求高的数据实现QoS保证,而不是在路由沿途预留资源。(2)区分服务也对数据进行分类,但分类的目的是定义数据的优先级,而不仅仅是归类。(3)数据分类和处理所依据的标识在网络的边缘被定义,网络的核心路由器(第3层设备)根据标识的属性对分组进行处理。标识的定义可以借助现有协议PDU中的某个字段,这样,对数据的区分处理和现有的协议机制可以结合在一起,而不象集成服务那样,由Setup协议去预留资源,再由TCP/IP运输数据。续(4)区分服务可以看成是每跳行为(Per-HopBehavior,PHB),每个数据流或用户转发状态不必在网络内核保存,只需在服务提供的流量聚集处保存。而集成服务的作用范围是源主机到目的主机的路由上的所有节点。1.区分服务的分类(1)加速转发(ExpeditedForwarding,EF):EF服务具有一个单一的区分服务编码(DiffServCodePiont,DSCP。RFC2474)。EF将延迟和抖动最小化,提供了聚合的最高级别的服务质量。任何超过通信量约定(profile)的通信量会被丢弃。通信量约定由本地策略制定。(2)保证转发(AssuredForwarding,AF):AF服务包含4个类别(class)每个类别有3个优先级,因此共有4×3个服务级别。2.服务编码区分服务使用DS字段定义服务编码。iffServ使用IPv4头部的TOS(TypeofService)字段作为DS字段(IPv6中的TC字段被作为DS字段),因为TOS字段在公用IP实现中并没有使用(尽管它用来标识优先级和支持TOS路由)。DS字段的结构如图12-43所示。图12-43IPv4TOS字段用于
定义区分服务编码3.DiffServ模型的实现机制
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度虚拟现实设备研发、生产与采购合同
- 2024年度国际环保技术与应用合同
- 2024年度虚拟现实技术开发与应用合同的标的及应用领域2篇
- 2024年度在线教育平台运营合作合同2篇
- 2024年度创业项目退出机制协议
- 2024年度融资租赁合同租金计算方式
- 2024年度汽车座套广告位租赁合同书(印度繁体中文版)3篇
- 2024年度借款担保合同
- 《食品营养价值分析》课件
- 2024年度租赁服务与维修保养合同
- 工程量自动计算结果表格(新增文字注释上标功能)
- 项目管理岗位竞聘
- 新课标视域下的小学数学大单元教学
- 幼儿园保教工作管理
- 产后乳房肿胀的护理课件
- 基本不等式说课-高一上学期数学人教A版(2019)必修第一册
- 物理学(高职)全套教学课件
- 人工智能在软件测试中的应用
- 学校食堂会议记录表
- 2023版设备管理体系标准
- 高标准农田输配电工程施工方案与技术措施
评论
0/150
提交评论