2.2 OSI参考模型的各层
OSI参考模型包含如图2.1所示的7层:应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。应用层、表示层和会话层的功能通常由用户使用的应用程序(如Web浏览器Firefox和Internet Explorer以及e-mail应用程序Microsoft Outlook)提供。传输层、网络层、数据链路层和物理层负责在这些高层之间传输数据和信息。
实践经验
排除网络组件之间的连接故障时,明白OSI参考模型各层的功能至关重要。明白各层的功能后,使用针对各层的工具排除故障时将轻松得多。
每层都负责特定的流程或扮演特定的角色。别忘了,这7层旨在帮助理解数据前往远程网络组件的传输过程。并非每种网络协议都与这种模型完全一致,例如,TCP/IP包含4层。有些层被合并为一层,例如,TCP/IP模型的应用层包含OSI参考模型应用层、表示层和会话层的功能。接下来的几小节将更深入地介绍OSI参考模型的7层。
考试要点
一个非常适合帮助记住OSI参考模型各层的短语是All people seem to need data processing(应用层、表示层、会话层、传输层、网络层、数据链路层和物理层)。
2.2.1 第7层:应用层
OSI参考模型的第7层(顶层)为应用层,提供了用户用来与应用程序交互的界面。这种界面可以是基于命令行的,也可以是基于图形的。思科互联网络操作系统(IOS)路由器和交换机使用命令行界面(CLI),而Web浏览器使用图形界面。思科路由器也提供了图形用户界面——Cisco Configuration Professional(CCP),但这不在本书的范围之内。
请注意,在OSI参考模型中,应用层中的应用指的是网络应用。市面上的应用程序数以千计,它们并非都能够通过网络传输信息;然而,这种情况正在快速改变。20世纪90年代,有网络功能和没有网络功能的应用程序之间界限分明。一个典型的例子是Microsoft Word等字处理程序,开发它们的唯一目的是用于字处理。然而,现在包括Microsoft Word在内的很多应用程序都内嵌了不一定位于当前计算机中的对象。应用层程序的例子有很多,其中最常见的包括Telnet和Secure Shell(SSH)、文件传输协议(FTP)、Web浏览器和e-mail。您必须明白,OSI参考模型的应用层并未涵盖应用程序:应用层只是让应用程序能够知道有网络存在,进而能够利用网络。换句话说,应用层包含一些协议和服务,供应用程序用来访问网络资源、判断是否有接收程序存在以及是否有足够的资源来支持双方通信。
考试要点
OSI参考模型的第7层(顶层)为应用层,提供的协议和服务让应用程序能够使用网络、判断是否有接收程序存在以及是否有足够的资源来支持通信。TCP/IP应用层协议包括Telnet、FTP、超文本传输协议(HTTP,用于Web浏览)、邮局协议第3版(POP3)和简单邮件传输协议(SMTP)。
2.2.2 第6层:表示层
OSI参考模型的第6层为表示层,它负责定义如何传输信息以及如何在用户使用的界面中呈现出来。这层定义了如何传输各种形式的信息(文本、图形、视频和音频)以及应用层如何正确地使用它们。例如,主要的文本表示方式有两种:ASCII和EBCDIC。当前大多数设备采用的ASCII(美国标准信息交换码)使用7位来表示字符;IBM开发的EBCDIC(广义二进制编码的十进制交换码)依然被大型机用来表示字符。还可设置文本的格式,如字体、下划线、斜体和粗体。
用于表示图形信息的标准有很多:BMP、GIF、JPEG、TIFF等;用于表示音频和视频的标准也有很多,例如,音频标准包括WAV和MIDI,视频标准包括WMV、AVI、MOV和MPEG。对于用户在应用程序中看到的信息,用于表示它们的标准有数百种。Web浏览器可能是最能说明表示层功能的应用程序,因为它使用了很多特殊的标记代码(标签),这些标签指定了应如何向用户呈现数据。表示层还可提供加密,对来自应用层的数据进行保护;然而,这并非当今常见的安全方法,因为这种加密是在软件中进行的,需要占用大量的CPU周期。
考试要点
表示层决定了如何对数据进行传输并呈现给用户。表示层协议和标准包括ASCII、BMP、GIF、JPEG、WAV、AVI和MPEG。
2.2.3 第5层:会话层
OSI参考模型的第5层是会话层,它负责发起连接的建立和拆除工作。为执行这些功能,会话层必须确定数据将留在本地还是要发送到远程网络组件。如果是后一种情况,会话层将发起建立连接。会话层还负责区分多条网络连接、确保通过正确的连接发送数据以及从连接获取数据并将其转发给正确的本地应用程序。然而,这个过程的实际机制是在传输层实现的。要建立或拆除连接,会话层需要与传输层通信。远程过程调用(RPC)就是一种TCP/IP会话层协议;网络文件系统(NFS)使用RPC,也是一种会话层协议。会话层还负责如下工作:报告应用层、表示层和会话层发生的错误;实现服务类别(CoS)以优先处理某些类型的流量或连接。
考试要点
会话层负责建立、维护和拆除网络连接;会话层协议包括RPC和NFS。
2.2.4 第4层:传输层
OSI参考模型的第4层为传输层,它负责提供建立、维护和拆除连接的机制,其中的连接可以是可靠的,也可以是不可靠的。对于可靠的连接,传输层负责检测和修复错误:检测到错误时,传输层将重传数据,从而修复错误;对于不可靠的连接,传输层只提供错误检测,而将错误修复工作留给高层(通常是应用层)去完成。从这种意义上说,不可靠连接提供尽力而为的传输:如果数据到达了目标设备,那很好;如果没有到达,就听天由命吧!在TCP/IP协议栈中,传输控制协议(TCP)是一种可靠的传输协议,而用户数据报协议(UDP)是一种使用不可靠连接的传输协议。
对于刚接触OSI参考模型机制的人来说,可能看不清会话层和传输层的分界线。会话层处理超时、通知、Hello数据包以发现连接问题等,而传输层提供在网络组件之间移动数据的传输机制。
考试要点
传输层(第4层)提供了有保证的数据传输和无保证的数据传输。有保证的传输是通过序列号、确认和流量控制实现的。流量控制方法包括缓冲、窗口技术和拥塞避免。在TCP/IP协议栈中,传输层协议包括TCP和UDP。
传输层的主要功能有5个。
在组件之间建立、维护和拆除会话连接。
通过连接可靠或不可靠地传输数据。
将数据分割成易于管理的数据段。
对连接进行多路复用,让网络设备上的多个应用程序能够同时发送和接收数据。
使用就绪/未就绪信号或窗口技术控制流量,避免一方通过连接发送的数据量超过另一方的处理能力。这两种流量控制方法都通常使用缓冲,并被用于避免拥塞。
接下来的几小节将更深入地介绍这些功能。
考试要点
请牢记传输层的5个主要功能:连接管理、可靠和不可靠地传输数据、流量控制、多路复用和分段。
1.可靠的连接
传输层可在网络组件之间可靠或不可靠地传输数据。TCP是一种提供可靠连接的传输层协议。实现可靠连接时,通常使用序列号和确认(ACK)。例如,向目标设备发送信息时,目标设备将向信源确认它收到了哪些信息;目标设备可查看收到的数据段的序列号,从而判断是否有遗漏(在传输过程中被丢弃)的信息,并将数据按正确的顺序排列,进而将其交给上层应用程序。如果有遗漏的数据段,目标设备可请求信源重传它们。在有些协议栈中,目标设备可能让信源重传全部或部分信息(保留遗漏的部分)。
有些可靠的连接协议还可能在建立连接时经历一个握手过程。这个握手过程判断两台网络设备能否建立连接,并协商提供可靠连接时应使用的参考。在TCP中,这被称为三次握手。TCP和三次握手将在第8章更详细地讨论。
2.不可靠的连接
TCP等面向连接的服务存在的一个问题是,传输数据前需要经过握手过程,还需确认发送的所有数据都已收到。在有些情况下(如传输文件时),这是合理的,因为您要确保成功地传输了文件的所有数据。然而,在只想发送信息并获得最终应答的情况下,握手过程增加了不必要的开销和延迟。
在TCP/IP中,域名服务(DNS)查询就是不适合使用面向连接服务的典范。在DNS查询中,设备试图将全限定域名(FQDN)解析为IP地址,为此它向DNS服务器发送查询,并等待服务器响应。在这个过程中,生成的消息只有两条:客户端的查询和服务器的响应。由于在这两台设备之间共享的信息很少,因此在发送查询前建立可靠的连接不合理。相反,设备应直接发送信息并等待响应。如果没有响应,应用程序可再次发送信息或让用户介入。在操作系统的DNS实现中,可在TCP/IP适配器的设置中配置两个DNS服务器。这样,如果第一个服务器没有应答,应用程序可尝试使用配置的第二个服务器。
由于没有预先建立连接,这种服务被称为无连接服务。TCP/IP协议栈使用UDP来提供不可靠的连接(无连接服务)。UDP将在第8章更详细地讨论。
3.分段
传输层的另一项功能是,为会话层建立、维护和拆除连接,即处理实际的连接机制。在传输层,在网络设备之间传输的信息被称为数据段。为将大量数据划分为网络支持的小块数据,必须进行分段。对于这个过程,一种很好的类比是,小石头比大石头更容易通过管道运送。
考试要点
在传输层,使用数据段来传输信息。
4.连接的多路复用
一个组件可能建立多条到另一个组件或多个组件的连接,为区分通过不同连接传输的数据,需要使用多路复用功能。这确保传输层能够将来自特定应用程序的数据发送到正确的目标设备和应用程序,并能够将收到的数据交给正确的本地应用程序。
为此,传输层通常给每条连接分配一组独一无二的编号。这些编号通常被称为端口号或套接字号。对于每条连接,都分配一个源端口号和一个目标端口号。源设备分配的目标端口号有时被称为著名端口号或保留端口号。在目标端口号字段中,源设备使用合适的端口号向目标设备指出它要访问哪个应用程序。例如,TCP/IP协议栈给每个应用程序都分配了独一无二的端口号。
下面是一些TCP/IP应用程序使用的著名端口号:FTP(20和21)、Telnet(23)、SMTP(25)、DNS(53)、TFTP(69)、WWW(80)和POP(110)。在TCP/IP协议栈中,0-1023为著名端口号。然而,有些应用程序使用更大的端口号。实际上,TCP/IP使用16位的端口号字段,可支持65536个不同的端口号。源设备给连接指定大于1023的源端口号。源设备的每条连接都有独一无二的源端口号,这让源设备能够区分自己的连接。这个过程将在第8章更详细地讨论。
考试要点
传输层使用源端口号、目标端口号和第3层逻辑地址来执行连接的多路复用。
5.流量控制
传输层的另一项功能是提供可选的流量控制。流量控制用于避免网络组件向目标设备发送过多的信息,导致目标设备的接收缓冲区溢出,进而丢弃一些信息。溢出有害无益,因为源设备必须重传所有被丢弃的信息。传输层可使用两种基本的流量控制方法:
就绪/未就绪信号;
窗口技术。
考试要点
流量控制旨在避免源设备发送的信息超过目标设备的处理能力。
就绪/未就绪信号
使用就绪/未就绪信号时,目标设备在收到的流量超过了其处理能力时向源设备发送未就绪信号,让源设备停止传输数据。目标设备能够处理源设备发送的数据时,就向源设备发送就绪信号。收到就绪信号后,源设备就可继续发送数据了。
使用就绪/未就绪信号实现流量控制存在两个问题。首先,缓冲区已满后,目标设备将向源设备发送未就绪信号。在该消息前往源设备期间,源设备会继续向目标设备发送信息,而目标设备将因为缓冲区已满而不得不丢弃这些信息。其次,目标设备准备好接收更多信息后,必须先向源设备发送就绪信号,而源设备要等待收到这个信号后才会继续发送信息。这增加了信息传输的延迟。鉴于就绪/未就绪信号的这两个低效问题,通常不使用它来实现流量控制。这个过程有时被称为停止/开始,即停止传输一段时间,再重新开始传输。
窗口技术
相比于就绪/未就绪信号,窗口技术是一种复杂得多的流量控制方法。使用窗口技术时,定义了窗口大小,它指定源设备发送多少数据(在传输层通常称为数据段)后必须等待目标设备确认(ACK)。收到ACK后,源设备可接着发送下一批数据(最多为窗口大小定义的值)。
窗口技术实现了两项功能。一是基于窗口大小的流量控制。在很多协议实现中,窗口大小是预先动态协商的,并可在连接的生命周期内重新协商。这确保能够使用在不让目标设备丢弃任何信息的情况下的最佳窗口大小。二是通过窗口技术,目标设备能够向源设备指出它收到了哪些信息。这让源设备知道是否有数据在前往目标设备时丢失了,进而重传丢失的消息。这给连接提供了可靠性,同时效率比使用就绪/未就绪信号时高。鉴于这些优点,大多数面向连接的传输协议(如TCP/IP协议栈中的TCP)都使用窗口技术来实现流量控制。
为连接选择的窗口大小决定了源设备发送多少个数据段(或字节)后必须等待ACK,这将影响连接的效率和吞吐量。图2.2说明了窗口大小的重要性。在该图的上半部分,连接使用的窗口大小为1。在这种情况下,源设备发送一个包含序列号(这里为1)的数据段后,等待目标设备确认。目标设备发送ACK的方式随传输协议而异:它可能发送一个序列号列表,指出收到了哪些数据段;也可能发回一个序列号,指出期望接下来收到哪个数据段。在这里,目标设备发送的ACK包含数字2,这告诉源设备可接着发送数据段2。同样,由于窗口大小为1,目标设备收到这个数据段后将立即使用确认进行应答,指出收到了这个数据段。在这个示例中,目标设备发回的确认包含数字3,指出可接着发送数据段3了。依此类推。
正如您看到的,窗口大小为1时,流量控制过程的效率不高。下面来看一个窗口大小为3的示例,如图2.2的下半部分所示。窗口大小为3时,源设备可一次性发送3个数据段,再等待ACK。发送这些数据段(每个数据段都有独一无二的序列号:1、2和3)后,源设备必须等待确认。在这里,目标设备发回一个包含数字4的ACK,指出它期望接下来收到第4个数据段。接下来,源设备发送数据段4、5和6,并等待目标设备确认。在这个示例中,使用的窗口更大,因此效率更高:每发送3个数据段后才需要一个确认。因此,窗口越大,信息传输效率越高。
然而,情况并非总是如此。例如,假设有一个数据段在前往目标设备的途中丢失了,如图2.3所示。在这个示例中,使用的窗口大小为3。PC-A发送前3个数据段,且都被PC-B收到了。PC-B通过确认指出它期望收到的下一个数据段——数据段4。PC-A收到确认后,发送数据段4、5和6。
不知什么原因,数据段4丢失了,未能到达目标设备,但数据段5和6到达了目标设备。前面说过,目标设备记录它收到了哪些数据段,这里为1、2、3、5和6,因此目标设备发回一个包含数字4的ACK,指出它期望接下来收到数据段4。
此时PC-A将如何反应呢?这取决于使用的传输协议。下面是PC-A可能做出的一些反应。
PC-A知道丢失的只有数据段4,因此重传该数据段,并接着发送数据段7和8(因为窗口大小为3)。
PC-A不知道对方收到了哪些数据段,因此根据PC-B的指示重传从数据段4开始的3个数据段。
当然,如果丢失了两个数据段,除非目标设备发送丢失的数据段清单,否则第一种方案不可行。有鉴于此,使用窗口技术的大多数协议栈都实现了第二种方案。有鉴于这种行为,窗口大小可能影响性能。您可能认为,窗口大小为100时效率将非常高,但如果第一个数据段丢失后,有些协议将必须重传全部100个数据段!前面说过,大多数协议栈都预先协商窗口大小,并能够随时重新协商。因此,如果连接出现了大量错误,可降低窗口大小以提高效率。等到错误消失或较少时,可增大窗口大小,以最大限度地提高连接的吞吐量。
在源设备和目标设备上,窗口大小可以不同,这使得情况更加复杂。例如,PC-A的窗口大小可能为3,而PC-B的窗口大小为10。在这种情况下,PC-A可向PC-B发送10个数据段,再等待确认;而PC-B向PC-A发送3个数据段后就必须等待确认。
第8章讨论TCP时,将更深入地讨论如何使用序列号和确认来控制流量。
考试要点
就绪/未就绪信号和窗口技术用于在传输层实现流量控制。就绪/未就绪信号效率低下,会导致不必要的流量丢弃和流量传输延迟。窗口技术解决了这些问题。使用窗口技术时,将确定窗口大小,它指定了传输多少个数据段后,必须等待目标设备确认。
2.2.5 第3层:网络层
OSI参考模型的第3层为网络层,它提供了很多功能。首先,它使用逻辑(第3层)地址给网络提供了逻辑拓扑。这些地址用于将网络组件编组;您在第6章将看到,这些地址由两部分组成:网络部分和主机部分,其中网络部分用于将设备编组。第3层地址让位于相同或不同第2层介质(协议)中的设备能够彼此通信。
网络层的主要功能有4个:
定义供第3层使用的逻辑地址;
根据逻辑地址的网络号找出前往目标设备的路径;
将不同类型的数据链路层(如以太网、光纤分布式数据接口(FDDI)、串行链路和令牌环)连接起来;
通过在网络层使用数据包来传输信息以定义分段。
要在网络号不同的设备之间传输信息,需要使用路由器。路由器根据逻辑地址中的信息就如何前往目的地做出明智的决策。路由选择将在第四部分更深入地讨论。接下来的几小节将更深入地介绍网络层。
考试要点
网络层提供逻辑拓扑、定义第3层地址以及确定前往逻辑地址标识的目的地的最佳路径。在网络层,使用数据包来传输信息。路由器运行在网络层,负责交换数据包以及选择前往目的地的路径。第3层协议包括TCP/IP、IPX和AppleTalk。
1.第3层编址
很多协议都运行在网络层,如AppleTalk、DECnet、TCP/ IPv4、TCP/ IPv6、IPX、Vines、 XNS等。这些协议都有自己的逻辑地址定义方法。通过正确地给网络中的设备分配逻辑地址,可构建能扩展到很大规模的层次型设计。这是逻辑地址优于第2层地址的地方,第2层地址使用平面设计,不可扩展。
所有第3层编址方案都包含两部分:网络部分和主机(节点)部分。在网络中,每个网段(物理网段或逻辑网段)都必须有独一无二的网络号;在这些网段中,每台主机都必须有独一无二的主机号,它们属于相应的网络号。分配给设备的网络号和主机号一起组成了在整个网络中独一无二的第3层地址。例如,如果网络中有500台运行TCP/IP的设备,这些设备都必须有独一无二的TCP/IP第3层地址。
这不同于第2层使用的介质访问控制(MAC)地址。MAC地址只需在当前物理(或逻辑)网段中独一无二。换句话说,在同一个广播域内,所有MAC地址都必须是独一无二的;然而,在两个不同的广播域内,可以包含相同的MAC地址。
这种地址唯一性很像邮政系统。例如,在同一条街上,两家的门牌号不能相同(如都是1597 Berry Street),否则邮递员将不知道该将邮件投递到哪家。然而,如果两家的街道地址相同,但邮政编码不同,邮递员将能够区分这两个地址,即便它们的街道名和门牌号相同。MAC地址与此类似:每个网段都是“邮政编码”(网络号)不同的“小区”;在同一个“小区”内,MAC地址必须是独一无二的。MAC地址和广播将在本章后面的“第2层:数据链路层”一节更深入地讨论。
为帮助理解第3层地址的组成部分,咱们来看几个例子。TCP/IP IPv4地址长32位;为让这些地址更容易理解,将它们分成了4个字节,并使用句点将相邻的字节分开。这被称为点分十进制表示法。下面是一个简单的IP地址:10.1.1.1。还有一个被称为子网掩码的值,它决定了地址的网络部分和主机部分的边界。与其他协议的编址方案相比,TCP/IP编址方案好像是最复杂的。IP编址将在第6章详细地介绍。
其他协议的地址格式大都简单得多。例如,IPX地址长80位,其中前32位为网络号,而后48位为主机地址。IPX地址用十六进制表示,如下例所示:ABBA.0000.0000.0001,其中ABBA为网络号,而0000.0000.0001为主机号。在IPX地址中,主机部分默认为网络接口卡(NIC)的MAC地址,但用户和管理员可进行修改。每种协议都有自己的编址方案,但每种方案的开头都是网络部分,然后为主机部分。
2.路由选择表
路由器是运行在网络层的设备,它们根据逻辑网络号来做出路由选择决策:如何将信息(通常被称为数据包)发送到目的地。路由器创建包含路径信息的路由选择表,路径信息包括网络号、前往指定网络号时应使用的接口、路径的度量值(前往相应目的地的开销)、指定网络号是如何获悉的以及信息的新老程度。度量值用于衡量前往同一个目的地的不同路径的优劣。如果前往目的地的路径有多条,将根据度量值对这些路径排名,以确定哪条路径是最佳的。根据度量值选出前往目标网络的最佳路由后,路由器将其加入路由选择表。使用的度量值类型众多,如带宽、延迟、跳数等。每种路由选择协议都有自己的度量值结构;例如,TCP/IP路由选择信息协议(RIP)使用跳数,而思科增强内部网关路由选择协议(EIGRP)使用带宽、延迟、可靠性、负载和最大传输单元(MTU)。路由选择和度量值将在第4部分讨论。
收到入站数据包后,路由器查看数据包报头中的第3层地址、确定其中的网络号并将其与自己的路由选择条目进行比较。如果找到匹配的路由选择条目,路由器就将数据包从相应的接口转发出去;如果没有找到匹配的路由选择条目,就将数据包丢弃。
考试要点
路由器根据第3层地址(如IP地址)中的网络号来做出路由选择决策。网络的位置存储在路由选择表中。
3.路由器的优点
路由器运行在数据链路层的上一层并使用逻辑地址,因此相比于网桥和交换机等数据链路层设备有很多优点,其中包括下面这些。
第3层的逻辑编址让您能够组建可扩展到极大规模的层次型网络。这将在第7、19和20章讨论。
路由器可阻止广播和组播的传播。在一个接口上收到广播或组播后,路由器默认不会将其转发到另一个接口。路由器常用于解决广播风暴问题(实际上,路由器还增加了带宽和冲突域,但网桥和交换机提供了更廉价的解决方案)。这些将在本章后面的“第2层:数据链路层”一节以及第3和4章讨论。
路由器能更好地将不同的第2层技术(如以太网、令牌环、FDDI和串行链路)连接起来,而不存在任何转换问题。
路由器可使用虚拟局域网(VLAN)在同一个接口上交换数据包,这将在第12章讨论。
路由器提供了一些高级功能,让您能够使用排队或流量整形实现服务质量(QoS)、使用访问控制列表(ACL)过滤流量以及使用加密保护流量。ACL将在第21章讨论。
考试要点
请牢记路由器相对于交换机的上述优点,其中最重要的是,路由器能够限制广播的传播:路由器的每个接口都是一个独立的广播域和冲突域。
通过使用逻辑地址,路由器可创建支持数千台网络设备的层次型网络。另一方面,网桥和交换机等第2层设备不支持层次型编址:第2层MAC地址支持的是平面编址空间。换句话说,通常不能修改MAC地址以适合特定的网络拓扑或布局。另外,由于路由器使用逻辑地址,因此实现策略决策(如流量过滤或QoS)容易得多,因为这些决策是根据逻辑地址做出的,而逻辑地址比网桥和交换机使用的物理地址更容易处理。例如,由于逻辑地址包含网络部分,因此可根据网络号进行过滤。要使用网桥或交换机实现这种功能,必须将网段内每台设备的MAC地址都过滤掉。
第2层设备的另一个问题是,它们不能很好地连接不同的第2层技术或协议(如以太网和令牌环)。在第2层,这被称为转换桥接。第2层设备必须在不同的技术/协议之间进行转换的原因很多,但主要原因是两个拓扑都是第2层的,网桥必须对不同协议的第2层信息进行转换。这是一项处理密集型任务,可能带来很多问题。
例如,以太网支持的帧最长为1500字节,而令牌环支持的帧最长可达16KB。因此,将大型令牌环帧发送到以太网网段时,网桥或交换机必须将它划分成多个以太网帧。另外,不同介质类型的速度也可能不同:以太网支持的速度为10 Mbit/s、100 Mbit/s、1 Gbit/s和10 Gbit/s,而令牌环支持的速度为4 Mbit/s、16 Mbit/s和100 Mbit/s,这种差异可能导致网桥或交换机出现拥塞问题。
另外,在不同类型的帧之间进行转换并非总是轻而易举。例如,有些协议按从低到高的顺序排列位,而有些按从高到低的顺序排列,这可能带来转换问题。所幸的是,路由器为这种转换过程提供了干净利索的解决方案。实际上,路由器不在不同的帧(第2层协议)类型之间进行转换,而将第2层帧头剥除,根据第3层数据包做出路由选择决策,再将根据出站接口将第3层数据包封装到相应的第2层帧类型中。这个过程将在本章后面的“封装和拆封”一节以及第9章更详细地介绍。
相比于第2层设备,路由器的另一个优点是能够限制广播的传播。收到广播后,路由器对其进行处理,但默认不会将其从任何端口转发出去。这与将广播流量泛洪的网桥和交换机不同。如果广播影响到了网络的带宽和性能,应考虑将网络划分为多个广播域,并使用路由器来连接不同的广播域。网络中的每个广播域都必须有独一无二的第3层网络号。广播将在下一节讨论。
实践经验
排除第3层故障时,常用的工具包括ping、traceroute和地址解析协议(ARP)。这些工具将在第5章更深入地讨论。
2.2.6 第2层:数据链路层
OSI参考模型的第2层为数据链路层。网络层给设备提供了逻辑地址,而数据链路层给设备提供了物理(硬件)地址。这些硬件地址通常被称为介质访问控制(MAC)地址。数据链路层定义了网络设备如何访问它连接的介质,还定义了介质的帧类型和传输方法。帧包含数据链路层用来与当前电缆或第2层拓扑中的设备通信的字段;这种通信只能在同一个网段内相同的数据链路层介质(或电缆)上的设备间进行。例如,为在不同的第2层协议(如以太网和令牌环)之间通信,通常需要使用路由器。
考试要点
大多数广域网(WAN)协议都主要运行在数据链路层和物理层。
数据链路层还负责将来自物理层的位(二进制值1和0)重组为数据链路层帧。数据链路层执行错误检测,并将受损的帧丢弃;它通常不执行错误校正,因为有些传输层会这样做;但有些数据链路层协议确实提供了错误校正功能。
用于LAN的数据链路层协议和标准包括:IEEE802.2、802.3和802.5;Ethernet II;美国国家标准协议(ANSI)指定的FDDI标准。用于WAN的数据链路层协议包括异步传输模式(ATM)、帧中继、高级数据链路控制(HDLC)、点对点协议(PPP)、同步数据链路控制(SDLC)、串行线Internet协议(SLIP)和X.25。运行在数据链路层的主要网络组件包括网桥、交换机和网络接口卡(NIC),这将在第4章更深入地讨论。
考试要点
数据链路层定义了硬件(MAC)地址以及同一种介质内的通信过程。交换机和网桥运行在数据链路层。数据链路层协议和标准包括IEEE 802.2和802.3、Ethernet II、HDLC、PPP和帧中继。数据链路层会检测错误,但不校正错误(不重传,而只是丢弃受损的帧)。
数据链路层还负责定义第2层帧的格式以及设备通过物理层进行通信的机制。数据链路层负责如下工作:
定义MAC(硬件)地址;
定义连接的物理(硬件)拓扑;
定义如何在数据链路层帧中封装网络层协议;
提供无连接和面向连接的服务;
检查收到的帧的校验和,确保帧是有效的(如果无效,就将其丢弃)。
数据链路层通常不提供面向连接(即可靠)的服务(执行错误检测和校正的服务)。然而,在将系统网络体系结构(Systems Network Architecture,SNA)用作数据链路层协议的环境中,SNA可提供排序和流量控制,为数据链路层帧的传输提供保证。SNA是由IBM开发的,旨在帮助LAN(主要是令牌环)中的设备在数据链路层相互通信。在大多数情况下,都由传输层提供可靠的连接。
考试要点
别忘了,数据链路层的主要功能是规范使用相同第2层协议的网络设备如何相互通信。它还对收到的帧的校验和进行检查,确保帧是有效的。在数据链路层,使用帧来传输信息。如果设备使用的第2层协议不同(即位于不同的网段内),这些设备进行通信时,通常将涉及网络层(第3层)。
数据链路层编址
数据链路层使用MAC(硬件)地址来进行通信。要在LAN内通信,同一个网段或拓扑内的每台主机都必须有独一无二的MAC地址。MAC地址长48位,用十六进制数字表示。使用十六进制表示时,这种地址长12个字符。为方便阅读,MAC地址用点分十六进制格式表示,类似于下面这样:FFFF.FFFF.FFFF;MAC地址也常用下面的格式表示:FF:FF:FF:FF:FF:FF。由于MAC地址用十六进制数字表示,因此每位的可能取值为16个:0-9和A-F。例如,十六进制值A对应的十进制值为10。十六进制将在第6章更详细地讨论。除MAC地址外,还有其他类型的数据链路层编址;例如,帧中继使用数据链路连接标识符(DLCI),这将在第25章更深入地讨论。
考试要点
MAC地址在第2层唯一地标识设备。MAC地址仅在同一个广播域内必须是独一无二的,而广播域包含第2层连接的所有冲突域。MAC地址让位于同一个物理网络(第2层)的设备能够彼此通信。
MAC地址的前6个数字指出了厂商(NIC制造商)。这6个数字通常被称为组织唯一标识符(OUI),每家厂商都有一个或多个独一无二的OUI。例如,思科的一个OUI值为0000.0C。最后6个数字用于唯一地标识特定厂商制造的NIC。从理论上说,每个NIC的MAC地址都是独一无二的;但实际情况可能并非如此。对您来说重要的是,在同一个物理或逻辑网段内,每台设备的NIC的MAC地址都必须是独一无二的。逻辑网段是一个VLAN,并被称为广播域,这将在第12章讨论。有些设备允许修改这种硬件地址,而有些设备不允许。
考试要点
MAC地址的前6个十六进制数字为OUI。不同的广播域(虚拟LAN)可包含相同的MAC地址。
每个数据链路层帧都包含两个MAC地址:源MAC地址(表示创建帧的设备)和目标MAC地址(表示接收帧的设备)。数据链路层使用的地址分3大类,如表2.1所示。源MAC地址为单播地址——同一个帧只能由一台设备创建;但目标MAC地址可以是表2.1列出的任何地址类型。数据链路层帧中的目标MAC地址让连接到当前网段的其他NIC能够做出如下判断:需要对帧进行处理,还是忽略它。接下来的几小节将更深入地讨论这些地址类型。
单播地址
目标MAC地址为单播地址的帧只发送到网段中的一台设备。图2.4的顶部说明了单播。在这个示例中,PC-A创建一个以太网帧,其目标MAC地址为PC-C的地址。PC-A将这个数据链路层帧放到电缆上后,该网段中的所有设备都将收到它。PC-B、PC-C和PC-D的NIC都查看这个帧的目标MAC地址,但在这里只有PC-C的NIC会对这个帧进行处理,因为这个帧的目标MAC地址与其NIC的MAC地址相同。PC-B和PC-D将忽略这个帧。
组播
不同于单播地址,组播地址表示网段中的一组设备。组播组可包含任意数量的设备,从网段内的一台设备到全部设备。组播有趣的地方之一是,组播组成员资格是动态的——设备可随心所欲地加入和退出。然而,详细介绍组播超出了本书的范围。
图2.4的中部是一个组播示例。在这个示例中,PC-A向当前网段内的一个组播组发送一个数据链路层帧。当前,只有PC-A、PC-C和PC-D是这个组播组的成员。每台PC收到这个帧时,其NIC都查看其中的目标MAC地址。在这个示例中,PC-B忽略这个帧,因为它不是这个组播组的成员;但PC-C和PC-D将对这个帧进行处理。
广播
广播是发送给当前网段中每台网络设备的数据链路层帧。图2.4底部是一个广播示例。在这个示例中,PC-A将数据链路层帧的目标地址字段设置成了一个广播地址。MAC广播地址的所有位都为1,因此其十六进制表示为FF:FF:FF:FF:FF:FF。接下来,PC-A将这个帧放到电缆上。注意到在这个示例中,PC-B、PC-C和PC-D收到这个帧后都对其进行处理。
广播主要用于两种情形。首先,需要将信息发送给所有设备时,广播的效率高于单播。如果使用单播,必须为网段内的每台设备创建一个帧;而使用广播时,只需创建一个帧。其次,广播被用于发现设备的单播地址。例如,当您启动PC时,它并不知道网络中任何设备的MAC地址。为获悉这些设备的MAC地址,可使用广播,因为它们都会处理广播帧。在TCP/IP中,地址解析协议(ARP)就使用这种方式来获悉其他设备的MAC地址。ARP将在第5章讨论。其他使用广播的协议包括动态主机配置协议(DHCP)和NetBIOS。
实践经验
常用的第2层故障排除工具包括ARP(第5章讨论)、思科发现协议(CDP,第16章讨论)、交换机端口地址表(第4和11章讨论)和协议分析器(不在本书的范围内)。
2.2.7 第1层:物理层
OSI参考模型的第1层(最底层)是物理层。物理层负责网络连接的物理机制,包括:
网络设备使用的接口类型;
用于连接设备的电缆类型;
端接电缆的接头;
电缆的针脚布局;
对消息进行信号编码,即根据介质类型将二进制位转换为物理表示,如铜质电缆中的电信号、光纤中的光信号或无线通信中的无线电波。
接口(通常称为NIC)可以是插入计算机中的插卡,如10BaseT以太网网卡,也可以是路由器上固定的接口,如Cisco 1921路由器上的吉比特以太网端口。
物理层还定义了如何在二进制信息和物理层信号之间进行转换。例如,将铜质电缆用作传输介质时,物理层定义了如何使用不同的电平将二进制数字1和0转换为电信号;而将光缆用作传输介质时,物理层定义了发光二极管或激光发射器如何使用不同的光频率来表示1和0。二进制将在第6章讨论。
数据通信设备(DCE)端接物理WAN连接、为两个场点之间的连接提供时钟和同步并连接到数据终端设备(DTE)。第1章介绍的CSU/DSU、NT1和调制解调器都属于DCE。DTE是最终用户设备,如路由器和PC,它们通过DCE连接到WAN。在有些情况下,DCE功能可能内置在DTE的物理接口中。例如,有些思科路由器的WAN接口内置了NT1或CSU/DSU。术语DTE和DCE通常用于描述WAN组件,但有时也用于描述LAN连接。例如,在LAN中,PC、文件服务器和路由器有时被称为DTE,而交换机、网桥和集线器被称为DCE。
物理层标准包括如下电缆类型(以及众多其他的电缆类型):3类、5类和5E类;EIA/TIA 232、449和530;多模光纤(MMF)和单模光纤(SMF);1类(Type 1)。接口接头包括附接单元接口(AUI)、BNC(Bayonet Nut Coupling)、DB-9、DB-25、DB-60、RJ-11、RJ-45等。以太网集线器和转发器都是运行在物理层的设备。
考试要点
物理层定义了连接和通信的物理特性,包括线缆(UTP和光缆)和接头(RJ-45和DB-9)。集线器和转发器都是运行在物理层的设备。转发器用于增大网段的覆盖范围,而集线器(也叫多端口转发器)将多个网段连接起来。
2.2.8 设备
表2.2指出了运行在OSI参考模型各层的设备。
考试要点
请牢记表2.2列出的设备以及这些设备运行在哪一层。