链路层和局域网
6.1链路层概述
本章中,将运行链路层协议的任何设备称为节点。节点包括主机、路由器、交换机和WiFi接入点。将沿着通信路径连接相邻节点的通信信道称为链路。为了将数据报从源主机传输到目的主机,数据报必须通过端到端路径上的各段链路传输。在通过给定的链路时,传输阶段将数据报封装在链路层帧中,并将该帧传输到链路中。
6.1.1链路层提供的服务
链路层可提供的服务包括:
成帧。每个网络层数据报经链路传送之前,几乎所有的链路层协议都需要将其用链路层帧封装起来。一个帧由一个数据字段和若干首部字段组成,网络层数据报就插在数据字段中,帧的格式由链路层协议规定。
链路接入。介质访问控制(MAC)协议规定了帧在链路上传输的规则。对于点对点的传输,MAC协议只是无论何时链路空闲,发送方都能发送帧。如果是多个节点共享单个广播链路时(多路访问)MAC协议用于协同多个节点的帧传输。
可靠交付。当链路层协议提供可靠交付服务时,它保证无差错地经链路层移动每个网络层数据报。与运输层类似,链路层的可靠交付服务主要是靠确认和重传实现的。链路层可靠交付服务常用于易于产生高差错率的链路,其目的往往是在本地纠正一个差错,而不是通过传输层或应用层协议实现端到端重传。而对于低差错率的链路,链路层可靠交付往往被认为是不必要的开销。
差错检测和纠正。帧在传输时可能出现比特位差错,许多链路层协议会检测这种比特差错。通过让发送方在帧中包含差错检测比特,让接收节点进行差错检测,即因特网校验和。链路层的差错检测往往更复杂,用硬件实现。差错纠正类似差错检测,与差错检测的区别在于不仅能检测差错,而且能定位到差错的位置。
6.2差错检测和纠正技术
在发送节点,为了保护比特免受差错,使用差错检测和纠正比特(EDC)来增强数据D。通常要保护的数据不仅包括从网络层传递下来需要通过链路传输的数据报,还有链路帧首部中的链路级的寻址信息、序号和其他字段。链路级帧中的D和EDC都被发送到接收节点,由于比特翻转,接收节点收到的D`,EDC`可能与D和EDC不一致。
接收方需要在只收到D`和EDC`的情况下判断出D`与D是否相同。差错检测和纠正技术虽然可以检测到差错但仍然会有未检出比特差错。因此我们需要设计一个方案使得这种情况发生的概率极小。一般差错检测机制月复杂,此概率越小,但开销会越大。下面是传输数据中检验差错的3种技术:奇偶校验(用来描述差错检测和纠正背后的基本思想)检验和方法(通常更多应用于运输层)和循环冗余检测(更多应用于在适配器中的链路层)
6.2.1奇偶校验
差错检测最简单的方式就是用单个奇偶校验位,如果在下图中要发送的信息D中有d比特。在偶校验方案中,发送方只需呀加一个附带的比特,选择它的值,使得这d+1比特中1的总数是偶数,奇方案中则使其为奇数。

如果接收方在偶方案中发现了奇数个值为1的比特,接收方知道出现了奇数个比特差错,但是如果出现了偶数个差错,很有可能会无法检出,但是这种同时出现多个比特差错的概率其实较小。不过显然我们需要一个更健壮的方案。
下图是单比特奇偶检验方案的二位一般化方案,也叫二维奇偶校验方案。D中的d个比特被划分为i行j列,对每行每列计算奇偶值,产生i+j+1个奇偶比特。现在接收方不仅可以检测到比特差错,而且可以定位到比特差错的位置并进行纠正,此时校验比特的差错也是可检测和纠正的,而且对于多个比特差错也可以进行检测,但是不一定能进行纠正。接收方检测和纠正差错的能力叫做前向纠错(FEC)

6.2.2检验和方法
因特网校验和基于校验比特的方法,将数据的字节作为16比特的整数对待并求和。这个和的反码就形成了携带在报文首部的因特网检验和。接收方通过对接收到的数据的和取反码,并且检测其结果是否为全1比特来检验检验和。如果这些比特有任何一位是0,就会指示出差错。检验和的分组开销较小。
6.2.3循环冗余检测
循环冗余检测(CRC)编码,也叫多项式编码,该编码可以将要发送的比特串看成系数为0和1的一个多项式,对比特串的操作被解释为多项式算术。
CRC编码的操作是:首先由发送方和接收方进行协商生成一个r+1bit的比特模式G,称为生成多项式。G的最高位是1,对于长度为d的数据段D,发送方需要选择r个附加位比特R附加到数据段D上,使得这d+r比特的比特模式(其实是一个二进制数)可以被G整除,计算公式是D·2^r XOR(异或) R。如果在接收方不能被整除就认为出现了差错。
6.3多路访问链路和协议
之前说过,有两种类型的网络链路,点对点链路和广播链路。点对点链路由单一的发送方和接收方组成;而广播链路中,多个发送节点和接收节点连接到相同的单一的共享的广播信道上,任何一个节点传输一个帧时,其他节点都会收到一个这个帧的副本。
如何协调多个发送节点和接收节点同时访问一个共享信道的问题就是多路访问问题。用于处理这种问题的协议就是多路访问协议。节点通过这些协议来规范它们在共享的广播信道上的行为。
因为多个节点可能同时传输帧,如果所有节点同时收到多个帧,就会导致传输的帧在所有的接收方发生碰撞。通常,此时没有一个接收节点能够有效的获取任何帧,因此涉及此次纠缠的帧就丢失了,如果频繁的发生碰撞显然会浪费传输资源。因此为了确保广播信道执行有用的工作,需要使用多路访问协议协调活跃节点的传输。
多路访问协议主要分为:信道划分协议、随机接入协议、轮流协议
理想情况下,对于速率位R bps的广播信道,多路访问协议应该实现:
当仅有一个节点发生数据时,此节点具有R bps的吞吐量;当有M个节点发生数据时,每个节点具有R/M bps的平均吞吐量;协议是去中心化的,不会因为某个主节点的故障而崩溃;协议是简单的,使得实现不昂贵。
6.3.1信道划分协议
时分多路复用(TDM)和频分多路复用(FDM)是两种在共享信道节点之间划分带宽的技术。TDM将时间划分位时间帧,并将时间帧划分为多个时隙(TDM时间帧和链路层的单位分组(帧)不同)任何把每个时隙分给一个节点,用于给这个节点传输分组。
TDM能消除碰撞而且公平,但是有两个缺点,一个是每个分组的带宽都被限制了,可能会造成带宽的浪费。而且节点总是在等待它在传输序列中的轮次,即使其他节点没有分组需要传输,也会造成带宽的浪费。
FDM将信道划分为多个频段,每个频段分配给一个节点,FDM也能避免碰撞且具有公平性。但是它也会限制带宽,每个频段的带宽都是均分且固定的(与TDM的缺点类似)
第三种的信道划分是码分多址(CDMA)CDMA对每个节点分配一种不同的编码,每个节点用其唯一的编码方法来发送数据。理想状态下,CDMA可以不同节点可以同时传输数据并且避免碰撞。
6.3.2随机接入协议
在随机接入协议中,一个传输节点总是以信道的全部速率(R bps)进行发送。当发生碰撞时,涉及碰撞的每个节点都会反复重发它的分组,直到不发生碰撞为止。但是重发时会设定一个随机的时延,避免再次发生碰撞。
一些比较常用的随机接入协议有ALOHA协议和载波侦听多路访问(CSMA)协议。以太网就是一种CSMA协议。
1.时隙ALOHA
假设所有帧由L比特组成
假设时间被划分成长度为L/R秒的时隙,即一个时隙等于传输一帧的时间;
假设节点只在时隙起点开始传输帧;
假设节点是同步的,每个节点都知道时隙何时开始;
如果一个时隙中由两个或者多个帧碰撞,则所有节点在该时隙结束之前都能检测到该碰撞
在每个节点中,时隙ALOHA的操作包括:
①当节点有一个新帧要发送时,需要等到下一个时隙开始并在该时隙中传输整个帧
②如果没有碰撞,则该节点成功的传输,不需要考虑重传
③如果有碰撞,该节点以概率p在后续的时隙中重传,直至该帧被无碰撞的传输出去
这个概率p是一个0-1分布模型,即要么以p的概率重传,要么以1-p的概率跳过这个时隙
当节点是唯一活跃的节点时,时隙ALOHA允许该节点以全速R连续传输。而且是高度分散的,每个节点独立的检测碰撞并决定什么时候进行重传。
当有多个活跃节点时,一部分时隙将会产生碰撞,因此被浪费;所有活跃节点由于概率传输策略会节制传输,所有有一部分时隙处于空闲状态。定义刚好有一个节点传输的时隙被称为成功时隙
时隙多路访问协议的效率被定义为:当有大量活跃节点且每个节点都有大量的帧要发送时,长期允许中成功时隙的份额。
2.ALOHA
第一个ALOHA实际上时一个非时隙、完全分散的协议。在纯ALOHA中,当一帧首次到达发送节点,节点就会立刻将该帧传输进广播信道。如果发生了碰撞,该帧就会以概率p重传,否则等待一帧,在下一帧以p重传
3.载波侦听多路访问(CSMA)
在CSMA和具有碰撞检测的CSMA中,具有两个规则:载波侦听。一个节点在传输之前需要先听信道,如果来自另一个节点的帧正在向信道中发生,就等待到有一小段时间没有传输后再进行传输;碰撞检测。当一个传输节点在传输时一直在侦听此信道,如果检测到另一个节点正在传输干扰帧,就停止传输。
但是因为广播信道具有信道传播时延,一个节点传输之后,另一个节点需要等到该节点传输的比特到达后才能监听到,如果此时另一个节点进行传输,就还会产生碰撞。
4.具有碰撞检测的载波侦听多路访问协议(CSMA/CD)
当节点执行碰撞检测时,一旦检测到碰撞会立刻停止传输。在多路访问协议中加入碰撞检测,通过不传输无用的损坏的帧,可以改善协议性能。
从与广播信道相连接的适配器角度分析CSMA/CD协议的运行:
①适配器从网络层获取一条数据包,准备链路层帧,将数据报存入帧适配器的缓存中
②如果适配器侦测到信道空闲,则开始传输帧。如果侦测到信道正忙(有信号能量从信道进入适配器),则执行等待
③传输过程中,适配器实时监视其他使用该广播信道的适配器的信号能量
④如果适配器传输整个帧而没有检测到其他适配器的能量,则适配器成功传输该帧;若检测到其他适配器的能量,则终止传输该帧
⑤终止传输后,等待一个随机时间量,然后执行步骤二
随机时间量的确定应当满足:当碰撞节点数量少时,时间间隔短;当碰撞节点数量大时,时间间隔长,以太网和DOCSIS电缆网络多路访问协议使用二进制指数后退算法选择这个时间间隔。(具体介绍见p309)
6.3.3轮流协议
轮流协议有很多种,比较重要的包括轮询协议和令牌传递协议.
轮询协议要求一个节点作为主节点,以循环的方式轮询每个节点。主节点会先向子节点发送一个报文,告诉子节点最多能传输的帧的数量。主节点能够通过观察信道上是否缺乏信号,来决定一个节点何时完成了帧的发送。
轮询协议消除了困扰随机接入协议的碰撞和空时隙,使得轮询取得更高的效率。打死你也有问题,一是轮询引入了轮询时延,即主节点通知子节点传输所需要的时间。例如只有一个子节点活跃时,主节点在每次子节点发送了超过主节点允许发送的最多分组时,主节点就会轮询所有子节点(包括不活跃节点)。第二个缺点是如果主节点故障,整个信道都会不可操作。
第二个是令牌传输协议。此协议中没有主节点,一个被称为令牌的小的特殊帧被在节点之间以固定的次序进行交换。当一个节点收到令牌时,只有当它有帧需要发送时,它才持有整个令牌;否则就将令牌转发给下一个节点。或者当整个节点传输率最大数目的帧数后,也会转发令牌。缺点是如果有一个节点故障就会导致信道崩溃。
6.3.4DOCSIS:用于电缆因特网接入的链路层协议
一个电缆接入网通常在电缆网头端将几千个住宅电缆调制解调器与一个电缆调制解调器端接系统(CMTS)连接。数据经电缆服务接口规范(DOCSIS)定义了电缆数据网络体系结构及其协议。
DOCSIS使用FDM将下行(CMTS到调制解调器)和上行(调制解调器到CMTS)信道区分开。每个上行和下行信道都是一个广播信道。由于在下行信道上仅存在单一CMTS传输,所以不存在多路访问问题。但是上行方向将有多个调制解调器共享上行信道,因此可能存在碰撞

如上图所示,每个上行信道被划分为时间间隔,每个时间间隔包含一个微时隙序列,电缆调制解调器可在该微时隙中向CMTS传输。CMTS在下行信道上通过发送MAP报文指定电缆调制解调器,使其能够在微时隙中传输有控制报文指定的时间间隔,微时隙被明确分配给电缆调制解调器,所以CMTS可以保障微时隙中没有碰撞传输
电缆调制解调器在一些特殊的微时隙内向CMTS发送请求帧,使得CMTS获取电缆调制解调器的发送需求。这些微时隙请求帧以随机接入的方式传输,因此可能发生相互碰撞
由于电缆调制解调器不具备信道侦听和碰撞检测功能,所以只能通过下一个下行控制信报中是否有相应来判断。如果没有响应,则说明请求帧发生碰撞,电缆调制解调器使用二进制回退将其请求帧延缓到之后的微时隙中发送。如果上行信道上流量很少,电缆调制解调器可能在名义上分配给微时隙请求帧的时隙内传输数据帧(避免等待微时隙分配)。
6.4交换局域网
6.4.1链路层寻址和ARP
1.MAC地址
具有地址的不是主机和路由器,而是其网络接口,因此具有多个网络接口的主机或路由器可能会有多个地址。但是链路层交换机并不具有与这些接口相关联的链路层地址。因为链路层的任务是在主机和路由器之间承载数据报,交换机透明的执行这项任务,因此主机和路由器不必要明确的将帧寻址到交换机。链路层地址具有多个称呼:MAC地址、物理地址、LAN地址。
对于大多数局域网,MAC地址长度是6字节。这些6字节地址通常用16进制表示。尽管适配器的MAC地址是永久的,但用软件改变MAC地址是可能的。
IP地址具有层次结构,如果主机移动,IP往往也会动态变化。但是MAC地址是永远不会改变的,它具有扁平结构。当适配器需要发送一个帧时,发送适配器会将目的适配器的MAC地址插入到该帧中,并将该帧发送到局域网上。交换机会将帧广播到所有接口,当适配器接收到一个帧时,会检测帧中的MAC地址和自己的是否匹配,如果匹配就取出帧中的数据,否则就丢弃帧。
然而,有时某发送适配器的确要让局域网上的所有其他适配器来接受并处理它打算发送的帧。此时需要在帧中插入一段特殊的MAC广播地址
2.地址解析协议(ARP)
ARP用于将IP地址转换为相应的MAC地址。网络上的设备通过ARP请求来获取与特定IP地址相关联的物理地址,ARP只会为在同一个子网中的路由器接口和主机接口解析IP。
在每台路由器和主机中都会有一个ARP表,包含IP到MAC的映射关系,同时还有该映射的TTL值(指示该映射从表中删除的时间)。

如果一个主机要通过IP寻址到子网下的一个MAC地址,如果在该主机中存在该IP的映射,就能直接找到。如果没有,发送方会先构建一个ARP分组,该分组包括发送和接收方的IP和MAC地址。ARP查询和响应分组都有相同的格式。ARP查询分组的目的是询问子网上的其他路由器和主机以确定该IP对应的MAC地址。该主机会通过MAC广播地址发送ARP请求分组封装形成的帧。子网中的其他所有适配器都能收到这个帧,并将里面的请求分组上传到ARP模块,在ARP模块中检测分组中请求的IP和自己的IP是否匹配。与之匹配的就会返回一个带有所请求映射的响应ARP分组,然后请求该映射的主机就能更新其ARP映射表。
3.发送数据报到子网之外
子网1向子网2发送数据报,必须先经过路由器接口。发送主机通过ARP获取路由器的MAC地址,并创建一个帧(帧中包含寻址到目的IP的数据报),将该帧发送到子网1中,子网1中的路由器适配器获取该帧,得知该帧是用于寻址的,就将该帧传递给路由器的网络层。路由器通过查询路由器中的转发表,得知要从了源IP转发。该接口把数据报传递给适配器,适配器将数据报封装到一个新的帧中,并将帧转发到子网2中
6.4.2以太网
1.以太网帧结构

数据字段(46-1500字节):承载IP数据报,最大长度为1500字节,超过该大小需要进行分片,最小长度为46字节,小于该长度需要进行填充。网络层会使用IP数据报首部中的长度字段来去除填充部分。
目的地址(6字节):目的适配器的MAC地址。如果接收节点接收到的帧中的目的地址和字节的MAC地址不同就丢弃该帧。
源地址(6字节):源MAC地址
类型(2字节):该字段允许以太网复用多种不同的网络层协议。该字段与网络层数据报中的协议字段、运输层报文段中的端口号字段类似;都是为了将一层中的协议和上一层的协议结合起来。
CRC(4字节):CRC(循环冗余检测)字段是为了使得接收适配器检测帧中是否出现了差错。
前同步码(8字节):以太网帧以8字节的前同步码开始,前7个字节都是10101010,用于唤醒接收适配器,并且将它们的时钟与发送方的时钟同步;第8个字节为10101011,第8个字节的最后两个比特位(11)是为了告知适配器重要的内容将要到达了。
以太网技术都是无连接的、不可靠的传输服务。特别的,即使一个帧通过了接收适配器的CRC检测,接收适配器也不会反馈确认;但是如果没有通过,接收适配器就会直接丢弃该帧,也不会进行反馈。
丢弃以太网帧可能会产生间隙,在接收方,如果是使用UDP,就能看到数据中的间隙。如果是TCP,就不会确认,发送方会进行重传。
6.4.3链路层交换机
1.转发和过滤

过滤就是链路层交换机中决定是否丢弃一个帧;转发就是将帧转移到链路层交换机对应的接口并转发。
在链路层交换机中有一个交换机表,表中包括MAC地址,对应接口,表项加入表中的时间三个字段。交换机表中会包含局域网上部分路由器和主机的表项(不一定是全部)
假如交换机需要索引一个DD-DD-DD-DD的目的MAC地址,该帧从接口x到达交换机,交换机会有三种方法进行索引:
如果交换机中索引不到该MAC地址,就从除x接口外的所有接口进行广播该帧。(实际中会采用一些方法控制广播,避免发送网络洪流)
如果交换机表中存在该MAC地址对应的表项,对应接口为x,说明该帧已经被广播到其目的MAC地址所在局域网,进行过滤(丢弃)。
如果索引到对应接口为y,就从y接口转发该帧。
2.自学习
所谓自学习就是指交换机的表是动态的、自动的、自治的建立的。
首先每个交换机的表都会初始为空;如果交换机收到了一个帧,就会记录它的目的MAC地址、帧到达的接口、到达的时间,并加入转发表中(相当于记录源MAC地址到交换机的路径);如果一段时间内(也叫老化期)交换机没有使用该条路径转发帧,就会删除这条路径。
交换机是即插即用的设备,不需要手动的配置。而且交换机还是全双工的,任何接口都能同时接收和发送。
3.链路层交换机的性质
消除碰撞。在使用交换机构建的局域网中,没有因为碰撞而浪费的带宽。交换机缓存帧并且不会在网段上同时传输多余一个帧。交换机的最大聚合带宽是该交换机所有接口速率之和
异质的链路。交换机将链路彼此隔离,因此局域网中不同链路能够以不同的速率运行并且能够在不同的媒体上运行
管理。除了提供强化的安全性,交换机也易于进行网络管理。
4.交换机和路由器的比较
路由器是使用网络层地址转发分组的存储转发分组交换机。交换机也是一个存储转发分组交换机,与路由器不同的是,他用MAC地址转发分组。交换机是第二层的分组交换机,路由器是第三层的分组交换机
链路层交换机和路由器在根本上是不同的,但是网络管理员在安装互联设备是需要根据情况选择不同的设备
|
交换机 |
路由器 | |
|
优点 |
①交换机是即插即用的 ②交换机能够居于相对高的分组过滤和转发效率 |
①网络寻址是分层次的,因此即使存在冗余路径,分组一般也不会通过路由器循环,因此分组不会被限制在一颗生成树上 ②可以使用源和目的地之间的最佳路径 ③路由器对第二层的广播风暴提供了防火墙保护 |
|
缺点 |
①为了防止广播帧的循环,交换网络的活跃拓扑限制为一颗生成树 ②一个大型交换网络将要求主机和路由器中有大的ARP表,这将产生可观的ARP流量和处理量 ③交换机对广播风暴不提供任何保护措施。如果故障主机持续发送以太网广播帧,交换机将会转发所有帧,导致以太网崩溃 |
①路由器并不是即插即用的,路由器和连接到他们上的主机需要人为的配置IP地址 ②路由器对每个分组的处理时间比交换机更长,因为需要处理包括第三层的字段 |


通常,几百台主机组成的小网络有几个局域网网段,因此交换机就足够,因为不要求IP地址的任何配置就能使流量局部化并增加总计吞吐量。在几千台主机组成的更大网络中,通常除了交换机还需要路由器。路由器提供了更加强大的流量隔离方式和对广播风暴的控制,并使得网络中的主机更加智能的路由。
6.4.4虚拟局域网
现代机构的局域网通常是配置为等级结构的,每个工作组都有自己的交换局域网,经过一个交换机等级结构与其他工作组的交换局域网互联。但存在三个缺点
缺乏流量隔离。尽管该等级结构把组流量局域化到一个单一交换机中,但广播流量仍然需要跨越整个机构网络。限制这些广播流量的范围将会改善局域网的性能,并且有助于安全或隐私目的。通过使用路由器替代中心交换机可以实现流量隔离
交换机的无效使用。如果一个机构有十个组而不是三个组,那么就需要十个第一级交换机。如果每个组中的人数都很少,那么可能单台交换机就足够每个人使用,但是单一的交换机不能实现流量隔离
管理用户。如果一个员工在不同组之间移动,那么就必须改变物理线路,从而将员工连接到不同的交换机上
现今通过支持虚拟局域网(VLAN)的交换机来处理
VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。每个VLAN是一个广播域,VLAN内的主机间可以直接通信,而VLAN间则不能直接互通,在一个VLAN中通信,就仿佛这些主机与交换机连接且没有其他主机与该交换机连接。这样,广播报文就被限制在一个VLAN内
在一个基于端口的VLAN中,交换机的端口由网络管理员划分为组。每个组构成一个VLAN,在每个VLAN中的端口形成一个广播域,即来自一个端口的广播流量仅能够到达该组中的其他端口。
如下图,一个具有16个端口的交换机,其中1、16端口未分配,2-8端口被划分至电气工程系(EE)的VLAN,9-15端口被划分为计算机科学系(CS)的VLAN。

但是隔绝两个VLAN会导致VLAN之间的通信变的困难,一种解决方法是将VLAN中的一个端口连接到外部的路由器,将该端口配置为同时属于两个VLAN,此时两个VLAN可以通过这个端口跨越路由器进行通信。
如果是两台交换机上的两个VLAN的互联,如下图

一种方法是如图a,采用两条电缆分别连接相同的VLAN,但是这样的扩展性低,如果有多台交换机上的多个VLAN,就需要多个端口。另一种方法是如图b,在两条交换机中分别选择一个端口(通常是最左侧和最右侧的端口)配置为干线端口,以互联交换机,该端口被设置为属于所有的VLAN,这种方法是VLAN干线连接。IEEE定义了一种用于跨越VLAN干线的帧--802.1Q,使得交换机可以得知跨越干线的帧属于哪个VLAN。帧的格式如下图

该帧由标准的以太网帧加入首部的4字节的VLAN标签组成,VLAN标签承载这该帧所属的VLAN的标识符,解析后会被VLAN干线的接收端交换机删除。VLAN标签包含一个2字节的标签协议标识符(TPID)字段和一个2进制的标签控制信息字段和一个3比特的优先权字段。
6.5链路层虚拟化:网络作为链路层
多协议标签交换(MPLS)
多协议标签交换(MPLS)采用来自虚电路网络领域的关键概念:固定长度标签。目标是:对于基于固定长度标签和虚电路的技术,在不放弃基于目的地IP数据报转发的基础设施的前提下,在可能是通过选择性地标识数据报并允许路由器基于固定长度的标签(而不是基于目的地IP地址转发)转发数据报来强化功能
相对于传统的IP路由方式,MPLS提供了一种新的网络交换方式,它将IP地址映射为简短且长度固定、只具有本地意义的标签,以标签交换替代IP查表,从而显著提升转发效率。同时,MPLS的标签机制可以在IP网络中构筑一条逻辑上的隧道,而且MPLS兼容不同的网络层和链路层协议
MPLS首部增加在第二层(如以太网)首部和第三层(如IP)首部之间。MPLS首部中的字段是:标签、预留的3比特实验字段、1比特S字段、寿命字段

与传统的IP路由方式相比,一个MPLS加强的帧仅能在两个均为MPLS使能的路由器之间发送。一个MPLS使能的路由器通常为被称为标签交换路由器。①它通过在转发表中查找MPLS标签,然后立即将数据报传递给适合的输出接口来转发MPLS帧。②当报文进入MPLS区域后,只需要在位于边缘的入、出节点解析IP报文头部,封装或者解封装标签。而在中间的所有节点上都无需解析IP报文首部,只需要进行标签交换,进一步减少转发报文的处理时间。因此MPLS使能的路由器不需要提取目的IP地址和在转发表中执行最长前缀匹配的查找
下图中有六个路由器,其中R5,R6为普通的IP使能路由器。R1-R4为MPLS使能的路由器,它们各自的标签交换表如下。通过出入标签实现报文的路由

对于上图中的外围设备(R5、R6、A、D),它们可以通过一个MPLS基础设施连接在一起,这与交换局域网与ATM网络能够将IP设备连接到一起的方式十分相似。并且与交换局域网或ATM网络相似,MPLS使能路由器在完成转发的工作时,并不直接接触分组的IP首部,只使用MPLS首部
在本书中并不学习MPLS的具体实现方式。关注的重点在于①MPLS基于标签执行交换,而不考虑分组的IP地址 ②MPLS使能具有新的流量管理功能,IP路由选择协议只能指定单一最小费用路径,而MPLS提供了沿着多条路由转发分组的能力③MPLS可以用于实现虚拟专用网(VPN),使得用户利用VPN跨ISP访问资源
6.6数据中心网络
6.6.1数据中心体系结构
数据中心中的主机称为刀片,主机被堆叠在机架上。在每个机架顶部有一台交换机,这台交换机被称为机架顶部(TOR)交换机,他们与机架上的主机互联,并于数据中心中的其他交换机互联。机架上每台主机都有一块与TOR交换机连接的网卡,每台TOR交换机有额外的端口能够与其他TOR交换机连接
数据中心网络支持两种类型的流量:在外部客户与内部主机之间流动的流量、内部主机之间流动的流量。为了处理外部客户与内部主机之间的流量,数据中心网络包括一台或多台边界路由器,他们将数据中心网络与公共因特网相连。数据中心网络因此需要将所有机架彼此互联,并将机架与边界路由器连接。

1.负载均衡
一个云数据中心,为了支持来自外部客户的请求,每一个应用都与一个公开可见的IP地址关联,外部用户向该地址发送其请求并从该地址接收响应。在数据中心内部,外部请求先被定向到一个负载均衡器,负载均衡器将请求分发到处理该应用的某一台主机上。当主机处理完该请求之后,向负载均衡器回送响应,再由负载均衡器中继发回给外部客户
负载均衡器可以向主机分发请求,以主机当前的负载作为函数来在主机之间均衡负载;同时负载均衡器不仅平衡主机间的工作负载,而且还提供类似NAT功能,将外部IP地址转换为内部适当主机的IP地址,然后将反方向流向客户的分组按照相反的转换进行处理。防止客户直接接触主机,从而具有隐藏网络内部结构和防止客户直接与主机交互等安全性益处
2.等级体系结构
对于仅有数千台主机的小型数据中心:只需要一台边界路由器、一台负载均衡器和几十个机架组成,这些机架由单一以太网交换机进行互联
对于几万或几十万主机:数据中心通常由应用路由器和交换机等级结构(hierarchy of router and switch)。在该等级结构的顶端,边界路由器与接入路由器相连,每台接入路由器与一台第一层交换机相连,每台第一层交换机与多台第二层交换机以及一台负载均衡器相连。每台第二层交换机又通过机架的TOR交换机(第三层交换机)与多个机架相连。所有链路通常使用以太网作为链路层和物理层协议,并混合使用铜缆和光缆
这种等级结构很好的解决了扩展性问题,从图中可以看出每个接入路由器下的主机形成了单一子网,每个子网都可以划分为更小的VLAN子网
主机到主机容量受限问题
假设每台主机用1Gbps链路连接到它的TOR交换机,交换机之间的链路是10Gbps
假设上图中,机架1上10台主机向机架5上对应主机发送一条流;机架2向5发送总共10条流……依次类推。如果每一条流和其他流经同一条链路的流平均的共享链路容量,则经过10Gbps的A到B链路和10Gbps的B到C链路上的40条流中,每条流获得的速率为10Gbps/40=250Mbps,显著小于1Gbps的网络接口卡速率
如果主机间的流量需要穿过该等级结构的更高层,则该问题会更加严重。解决方式是部署更高速率的交换机和路由器,但这会增加数据中心的费用;第二种解决方法是将相关的服务和数据放在尽可能近的位置;最后一种方法是增强TOR交换机和第二层交换机之间以及第二层交换机和第一层交换机之间的连接。如下图,TOR交换机和第二层交换机分别可以连接多个第二层交换机和第一层交换机。

如上图第1台第二层交换机和第2台第二层交换机间存在4条不相交的路径,可以一起为前两台第二层交换机之间提供总和为40Gbps的聚合容量。这样减轻了主机到主机的容量限制,同时创建了更加灵活的计算和服务环境。这种环境下,任何未连接到同一台交换机的两个机架之间的通信在逻辑上是等价的,不论其在数据中心的位置如何

1646

被折叠的 条评论
为什么被折叠?



