IEEE网络规范
3.6 IEEE网络规范
IEEE(美国电子电器工程协会)于1980年2月发的规范,简称为IEEE 802规范。此网络规范,不仅应用于帧类型,还用于连接、网络介质、错误校验算法、加密、融合技术等等。所有这些规范都是在IEEE“项目802”小组领导下制定的,该小组致力于标准化网络的物理部件。在OSI模型由ISO标准化之前,IEEE即已开发了这些标准。但IEEE 802标准仍被应用于OSI模型的各层。如表3-2描述了IEEE 802规范。你应该熟悉每个标准所覆盖的主题。
为允许多个网络节点共享接入(与简单的点对点通信相对),IEEE将OSI模型的数据链路层分割为两个子层: LLC(逻辑链路控制子层)和MAC(介质访问控制)子层,其作用分别如下:
1.位于数据链路层上部的子层LLC
LLC提供了一个通用接口主要用于和上层(网各层进行通信),并支持可靠性和流控制服务。还提供循环冗余检验校验、给帧加上传输序号等。
2.下部子层MAC
通常将目标计算机的物理地址添加到数据帧上。负责物理寻址和对介质访问控制方法,对高层数据进行封帧、解帧比特bit差错控制等。
IEEE关于Ethernet 和Token Ring技术的规范(见表3-2)应用于数据链路层的MAC子层。图 3-11示出了IEEE是如何分割数据链路层的。
图3-11 数据链路层的分层 |
从以上体系结构来看,如图3-9所示, TCP/IP是OSI七层模型的简化,共分为4层:应用层,传输层,IP层和物理网络接口层。 TCP/IP模型将与物理网络打交道的物理网络部分称为网络接口,它相当于OSI的物理层和数据链路层。
图 3-9 TCP/IP是OSI七层模型的简化 |
表3-1 |
下面以使用TCP协议传送文件(如FTP应用程序)为例说明了TCP/IP的工作原理。
(1) 在源主机上应用层将一串字节流传给传输层;
(2) 传输层将字节流分成TCP段,加上TCP包头交给互联网络(IP)层;
(3) IP层生成一个包,将TCP段放人其数据域,并加上源和目的主机的IPIP包交给数据链路层;
(4) 数据链路层在其帧的数据部分装IP包,发往目的主机或IP路由器;
(5) 在目的主机,数据链路层将数据链路层帧头去掉,将IP包交给互联网层;
(6) IP层检查IP包头,如果包头中的校验和与计算出来的不一致,则丢弃该包;
(7) 如果校验和一致,IP层去掉IP头,将TCP段交给TCP层,TCP层检查顺序号来判断是否为正确的TCP段;
(8) TCP层为TCP包头计算TCP头和数据。如果不对,TCP层丢弃这个包,若对,则向源主机发送确认;
(9) 在目的主机,TCP层去掉TCP头,将字节流传给应用程序;
(10) 于是目的主机收到了源主机发来的字节流,就像直接从源主机发来的一样。
实际上每往下一层,便多加了一个报头,而这个头对上层来说是透明的,上层根本感觉不到下面报头的存在。如下图3-10所示,假设物理网络是以太网,上述基于TCP/IP的文件传输(FTP)应用打包过程便是一个逐层封装的过程,当到达目的主机时,则从下而上去掉包头。
图3-10 TCP/IP封装 |
6.4 网桥
网桥这种设备看上去有点像中继器。它具有单个???的输入端口和输出端口。如图6-13所示。它与中继器的不同之处就在于它能够解析它收发的数据。网桥属于OSI模型的数据链路层;数据链路层能够进行流控制、纠错处理以及地址分配。网桥能够解析它所接受的帧,并能指导如何把数据传送到目的地。特别是它能够读取目标地址信息(MAC),并决定是否向网络的其他段转发(重发)数据包,而且,如果数据包的目标地址与源地址位于同一段,就可以把它过滤掉。当节点通过网桥传输数据时,网桥就会根据已知的MAC地址和它们在网络中的位置建立过滤数据库(也就是人们熟知的转发表)。网桥利用过滤数据库来决定是转发数据包还是把它过滤掉,如图6-14所示。
图6-13 网桥 |
图6-14 网桥过滤数据库 |
以图6-14的情况为例子来描述网桥的工作原理,以下几点需要注意:
(1)桥连接了多个不同的LAN网段(图6-14中,为简单起见只画了两个LAN,但在结构上一个网桥连接的LAN的数量并没有限制)。
(2)每个站有一个全局唯一的48位单播地址。这是很重要的;网桥的正常运行依赖于链路层全局唯一地址。
(3)网桥与每个相连的LAN的连接处都有一个端口或接口。
(4)网桥内部有一个网桥端口与所有站相对应的地址映射表;即网桥知道到达每个站要经过的端口。
(5)网桥工作于混杂模式(Promiscuous mode)。即它接收其每个端口到来的每一个帧,而不管帧的目的地址(目标站)。典型的端站只接收那些目的地址与自己的地址相同的帧。相反,网桥不管目的地址指向何方,接收所有的帧。
当一个端口接收到帧后,网桥检查该帧的目的地址,然后查找地址表,确定与该地址对应的端口。如果收到帧的端口正是帧目的地址所在的端口,那么网桥就会丢弃这个帧。如果是另一个不同的端口,网桥就会把该帧转发到该端口所在的网络LAN中去。因为可以认定通过正常的LAN传输机制,目标机已经接收过这个帧。例如,网桥在1号端口收到了一个从08-00-60-00-00-46站发往08-00-60-00-00-09的帧。由于地址表显示08-00-60-00-00-09这个站在端口1上,并且这一帧正是端口1接收的,所以网桥会把这个帧丢弃。如果站08-00-60-00-00-46接着向08-00-60-00-00-17发送一帧,网桥会从端口1接收这一帧(因为网桥处于混杂模式,它接收所有帧),并在地址表中查看站
08-00-60-00-00-17。地址表说明目的地址是在端口2上。为了使目标站正确地收到该帧,网桥必须把这一帧转发到端口2。
在帧的转发过程中注意以下几点:
(1)当通过某个端口向所LAN上其他有关的站发送帧时,网桥没有任何特权。它必须按照端口正常的介质访问控制(MAC)规定来工作。这就意味着网桥在以太网端口上必须延迟发送、检测冲突、后退等,就像其他以太网设备一样。
(2)在输出端口转发帧时,可能出现长时间的延迟。这称为网桥传送延迟。如果一个输出端口阻塞了,帧有可能在网桥内部队列中等待发送。在最坏的情况下,网桥输出队列可能饱和,那么就会导致网桥由于缺少缓冲区而丢弃帧
(3)当网桥转发帧时,转发帧的源地址是该帧最初发送者的地址(在这个例子中是08-00-60 -00-00-46),而不是网桥自己的地址。实际上对于转发工作,网桥没有也不需要自己的地址。无论帧的目的地址是什么,网桥都接收下来并把它们以最初发送者的地址转发出去,它从不把自己的地址加入到转发的帧中。
(4)端站(即两边的客户端)意识不到网桥的存在。发送者不知道也不需要知道某个网桥在为它转发帧。接收站把所有的帧都看作是如同发送者和接收者在同一个LAN网段上的帧一样(同样的地址,同样的数据)。因此,网桥是透明的。端站不需要修改设备驱动程序或增加特殊软件就可以使用网桥。
注:网桥的正常工作依赖于使用全局唯一地址。如果在同一个网段上有两个或更多的站使用了相同的地址,那么地址表就可能会有二义性,网桥也就不能作出正确的转发决定。
如果网桥当前还不知道站发送帧的目的地址(例如,08-00-60-00-00-46向08-00-60-00-00-2c发送帧),网桥在地址表中找不到该目的地址与端口,它便会向除接收该帧之外的所有端口转发此帧。这称为扩散( flooding )或泛洪。扩散使网桥可以与未知的(即在地址表中不存在的)站通信。除了不必要地占用了输出端口的LAN带宽以外,帧扩散并没有坏处。如果站真的存在(但此时尚不知道),扩散保证通信能正常进行。与此类似,如果一个站向组播地址发送帧,网桥会向除接收此帧的端口以外的所有端口转发它。这是因为网桥不能确定哪些站正在监听某个组播地址,所以它不应该把帧的转发限制到一个特定的输出端口上。
通过记录接收帧的源地址,可以动态地建立地址表。当网桥接收到一个帧后,它在表中查找与发送站对应的项(由帧的源地址指明)。如果找到了,就会更新地址表中与该站相对应的端口,以反映在该端口上接收到了最新的帧。这使得网桥可以正确地映射从一个LAN网段转移到另一个网段的站。如果没有找到登记项,网桥会根据新发现的地址和接收它的端口地址新建一个新地址表项。经过一段时间,随着站不断地发送帧,网桥就会知道所有活动站的地址-端口对应关系。
因此,网桥有如下特点:
(1) 在混杂模式下工作。
(2) 有一个将全局唯一地址映射到网桥端口的地址表。
(3) 根据所接收帧的目的地址作出转发决定。
(4) 根据所接收帧的源地址建立和更新地址表。
(5) 当遇到未知的目的地址时,向每个端口(除接收此帧的端口外)转发该帧。
注:网桥也使用一个时间计数器(aging timer)来清除在一定时间内没有发出帧的项,当遇到到组播目的地址时,向各个端口发送该帧(除接收此帧的端口外)。而且对端站是透明的(透明的意思是目的端并不知道也不需知道网桥的存在)。
网桥并未与网络直接连接,但它可能已经知道了不同的端口都连接了那些工作站。这是因为,网桥在安装后,就促使网络对它所处理的每一个数据包进行解析,以发现其目标地址。一旦获得这些信息,它就会把目标节点的MAC地址和与其相关联的端口录入过滤数据库中。时间一长,它就会发现网络中的所有节点,并为每个节点在数据库中建立记录。因为网桥不能解析高层数据,如网络层数据,所以它们不能分辨不同的协议。它们以同样的速率和精确度转发AppleTalk、TCP/IP、IPX/SPX以及NetBIOS的帧。这样做也有很大的好处。由于并不关心数据所采用的协议,网桥的传输速率比传统的路由器更快,例如路由器关心所采用协议的信息(这将在后面的部分讲述)。但另一方面,由于网桥实际上还是解析了每个数据包,所以它所花费的数据传输时间比中继器和集线器的更长。网桥转发和过滤数据包的方法有几种。虽然讨论这些方法超出了本书的范围,你还是应该知道最常见的几种。大多数以太网采用的方法是所谓的透明网桥方式。大多数令牌环网采用的方法是源路由网桥方式。能够连接以太网和令牌环网的方法被称为中介网桥方式。
20世纪80年代早期,开发网桥是为了转发同类网络间传递的数据包。此后,网桥已经进化到了可以处理不同类型网络间传递的数据包。尽管更高级的路由器和交换机取代了很多网桥,但它们仍然非常适合某些场合。这包括:有些网络需要利用网桥过滤传向各种不同节点的数据以提高网络性能。这些节点因此而能用更少的时间和资源侦听数据,并且指不指定这些资源都无所谓。另外,网桥还可以检测出并丢弃出现问题的数据包,这些数据包可能会造成网络拥塞。也许,最重要的是网桥能够突破原来的最大传输距离的限制从而可以方便地扩充网络。
注1:独立式网桥流行于2 0世纪8 0年代和9 0年代早期,但随着先进的交换技术和路由技术的发展,网桥技术已经远远地落伍了。一般来说,现在很难再见到把网桥作为一种独立设备了。然而,理解网桥的概念对于我们理解交换机的工作原理是非常必要的。下一节里将会学习关于交换机的更多的知识
注2:网桥是可以隔离冲突域,但不能隔离广播域,也就是广播包信息可以直接跨越网桥进行传输到另一个物理网段的。
网桥的基本特征
1.网桥在数据链路层上实现局域网互连;
2.网桥能够互连两个采用不同数据链路层协议、不同传输介质与不同传输速率的网络;
3.网桥以接收、存储、地址过滤与转发的方式实现互连的网络之间的通信;
4.网桥需要互连的网络在数据链路层以上采用相同的协议;
5.网桥可以分隔两个网络之间的广播通信量,有利于改善互连网络的性能与安全性。
路由协议(RIP、OSPF、EIGRP和BGP)
6.7.3 路由协议(RIP、OSPF、EIGRP和BGP)
对于路由器而言,要找出最优的数据传输路径是一件比较有意义却很复杂的工作。最优路径有可能会有赖于节点间的转发次数、当前的网络运行状态、不可用的连接、数据传输速率和拓扑结构。为了找出最优路径,各个路由器间要通过路由协议来相互通信。需要区别的一点是:路由协议与可路由的协议是不是等同的。如TCP/IP和IPX/SPX,尽管它们可能处于可路由的协议的顶端。路由协议只用于收集关于网络当前状态的数据并负责寻找最优传输路径。根据这些数据,路由器就可以创建路由表来用于以后的数据包转发。除了寻找最优路径的能力之外,路由协议还可以用收敛时间—路由器在网络发生变化或断线时寻找出最优传输路径所耗费的时间来表征。带宽开销—运行中的网络为支持路由
协议所需要的带宽,也是一个较显著的特征。尽管并不需要精确地知道路由协议的工作原理,你还是应该对最常见的路由协议有所了解:RIP、OSPF、EIGRP和BGP(还有更多的其他路由协议,但它们使用得并不广泛)此外还IGRP路由选择协议,它是Cisco公司设备专用协议,其它非Cisco设备不能使用这样协议。对这四种常见的路由协议描述如下。
(1) 为IP和IPX设计的RIP(路由信息协议):RIP是一种最早先的路由协议,但现在仍然被广泛使用,这是由于它在选择两点间的最优路径时只考虑节点间的中继次数这个原因的缘故。例如,它不考虑网络的拥塞状况和连接速率这些因素。使用RIP的路由器每30秒钟向其他路由器广播一次自己的路由表。这种广播会造成极大的数据传输量,特别是网络中存在有大量的路由器时。如果路由表改变了,新的信息要传输到网络中较远的地方,可能就会花费几分钟的时间;所以RIP的收敛时间是非常长的。而且, RIP还限制中继次数不能超过16跳(经过16台路由器设备)。所以,在一个大型网络中,如果数据要被中继16跳以上,它就不能再传输了。而且,与其他类型的路由协议相比, RIP还要慢一些,而安全性却差一些。
(2)为IP设计的OSPF(开放的最短路径优先):这种路由协议弥补了RIP的一些缺陷,并能与RIP在同一网络中共存。OSPF在选择最优路径时使用了一种更灵活的算法。最优路径这个术语是指从一个节点到另一个节点效率最高的路径。在理想的网络环境中,两点间的最优路径就是直接连接两点的路径。如果要传输的数据量过大,或数据在传输过程中损耗过大,数据不能沿最直接的路径传输,路由器就要另外选择出一条还要通过其他路由器但效率最高的路径。这种方案就要求路由器带有更多的内存和功能更强大的中央处理器。这样,用户就不会感觉到占用的带宽降到了最低,而收敛时间却很短。OSPF是继RIP之后第二种使用得最多的协议。
(3)为IP、IPX和Apple Talk而设计的EIGRP (增强内部网关路由协议):此路由协议由Cisco公司在20 世纪80年代中期开发。它具有快速收敛时间和低网络开销。由于它比OSPF. EIGRP容易配置和需要较少的CPU,也支持多协议且限制路由器之间多余的网络流量。
(4)为IP、IPX和Apple Talk而设计的BGP(边界网关协议):BGP是为因特网主干网设计的一种路由协议。因特网的飞速发展对路由器需求的增长推动了对BGP这种最复杂的路由协议的开发工作。BGP的开发人员面对的不仅是它能够连接十万台路由器的美好前景,他们还要面对解决如何才能通过成千上万的因特网主干网合理有效地路由的问题。