计算机网络往往由许多种不同类型的网络互连连接而成。如果几个计算机网络只是在物理上连接在一起,它们之间并不能进行通信,那么这种“互连”并没有什么实际意义。因此通常在谈到“互连”时,就已经暗示这些相互连接的计算机是可以进行通信的,也就是说,从功能上和逻辑上看,这些计算机网络已经组成了一个大型的计算机网络,或称为互联网络,也可简称为互联网、互连网。 将网络互相连接起来要使用一些中间设备(或中间系统),ISO的术语称之为中继(relay)系统。
网络层次结构
网络参考模型的定义给出了清晰的功能层次划分。最常被提及的是ISO OSI参考模型和TCP/IP协议簇。
国际标准化组织定义的OSI参考模型将计算机网络按功能划分为七个层次,这就是我们常说的七层模型或七层结构。一个层次的设备更新或软件重写也不会影响到其它层次。TCP/IP协议体系中的各个层次和ISO的参考模型有大致的对应关系。如下图所示:
OSI是OpenSystemInterconnect的缩写,意为开放式系统互联。国际标准组织(国际标准化组织)制定了OSI模型。这个模型把网络通信的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
OSI中间一层,即第四层执行传输功能,它负责提供从一台计算机到另外一台计算机之间的可靠数据传输。传输层(Transport Layer)是承上启下的一层,在它的下面有三层,都是与数据传输相关的功能;上面也有三层,提供与网络应用相关的功能。
OSI下三层中。物理层(Physical Layer)负责实际的传送数据信号,数据链路层(DataLinkLayer)负责网络内部的帧传输,而网络层(Network Layer)负责网络间的计算机寻址和数据传输。
OSI上三层中。应用层(Application Layer)是最高的层次,它负责提供用户操作的界面,因特网中常用的电子邮件服务,会话层(Session Layer)负责建立和终止网络的数据传输,计算机名字转换成地址的工作也在这层完成。
传统意义上的交换是第二层的概念。数据链路层的功能是在网络内部传输帧。所谓"网络内部"是指这一层的传输不涉及网间的设备和网间寻址。所谓"帧"是指所传输的数据的结构,通常帧有帧头和帧尾,头中有源目二层地址,而帧尾中通常包含校验信息,头尾之间的内容即是用户的数据。
数据链路层涵盖的功能很多,所以又将它划分为两个子层, MAC(Media AccessControl,介质访问控制)层和LLC(Logical Link Control,逻辑链路控制)层。常见的局域网和城域网的二层标准是IEEE的802协议。而在广域网中,HDLC(High-level Data Link Control,高级链路控制)、PPP(Point-to-Point Protocol,点对点协议)和Frame Relay(帧中继)等协议都有广泛的使用。
路由是第三层的概念。网络层在Internet中是最重要的,它的功能是端到端的传输,这里端到端的含义是无论两台计算机相距多远,中间相隔多少个网络,这一层保障它们可以互相通信。例如我们常用的PING命令就是一个网络层的命令,PING通了,就是指网络层的功能正常了。通常,网络层不保障通讯的可靠性,也就是说,虽然正常情况下数据可以到达目的地,但即便出现异常,网络层也不作任何更正和恢复的工作。
网络层常用的协议有IP、IPX、APPLETALK等等,其中IP协议更是Internet的基石。在TCP/IP协议体系中,第三层的其他辅助协议还包括ARP(地址解析) 、RARP(反向地址解析)、 ICMP(网际报文控制)和IGMP(组管理协议)等等。由于网络互连设备都具有路径选择功能,所以我们经常将 RIP、OSPF等路选协议也放在这一层讨论。
交换
谈到交换的问题,从广义上讲,任何数据的转发都可以称作交换。当然,现在我们指的是狭义上的交换,仅包括数据链路层的转发。做网络的人理解交换大多是从交换机开始的,电路交换机在通信网中已经使用了几十年了,做帧交换的设备,尤其是以太网交换机的大规模使用则是近几年的事情。
理解以太网交换机的作用还要从网桥的原理讲起。传统以太网是共享型的,如果网段上有四台计算机A、B 、C和D,那么A与B通信的同时,A、B在一段上,C、D在另一段上,那么A和B通信的同时,C和D也可以通信,这样原有10M的带宽从理论上讲就变成20M了。同时,为了确保这两个网段可以互相通信,需要用桥将它们连接起来,桥是有两块网卡的计算机,如下图所示:
在整个网络刚刚启动时,桥对网络的拓朴一无所知。这时,假设A发送数据给B,因为网络是广播式的,所以桥也收到了,但桥不知到B在自己的左边还是右边,它就进行缺省的转发,即在另外一块网卡上发送这个信息。当网络上的每一台计算机都发送过数据之后,桥就是智能的了,它了解每一台计算机在哪一个网段上。当A再发送数据给B时,桥就不进行数据转发了,与此同时,C可以发送数据给D。
从上面的例子可以看出,桥可以减少网络冲突发生的几率,这就是我们使用桥的主要目的,称作减小冲突域。但桥并不能阻止广播,广播信息的隔绝要靠三层的连接设备,路由器。
按照缆段微化的思想,缆段越多,可用带宽就越高。极限情况是每一台计算机处在一个独立的缆段上,如果网络上有十台计算机,就需要一个十端口的桥将它们连接起来。但实现这样一个桥不太现实,软件转发的速度也跟不上,于是有了交换机,交换机就是将上述多端口的桥硬件或固件化,以达到更低的成本和更高的性能。
交换机的一个重要的功能是避免交换循环,这就涉及到了STP(Spanning Tree Protocol,分支树协议)。分支树协议的功能是避免数据帧在交换机构成的网络中循环传送。如下图所示,如果网络中有冗余链路的话,STP协议现选出根交换机(Route Bridge),然后确定每一台非根交换机到根交换机之间的路径,最后,将此路径上的所有链路置成转发(Forward)状态,其余的交换机之间的连接就是冗余链路,置为阻塞(Block)状态。
工作在数据链路层。交换机拥有一条很高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条背部总线上,控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC(网卡的硬件地址)的NIC(网卡)挂接在哪个端口上,通过内部交换矩阵迅速将数据包传送到目的端口,目的MAC若不存在,广播到所有的端口,接收端口回应后交换机会“学习”新的地址,并把它添加入内部MAC地址表中。使用交换机也可以把网络“分段”,通过对照MAC地址表,交换机只允许必要的网络流量通过交换机。通过交换机的过滤和转发,可以有效的减少冲突域,但它不能划分网络层广播,即广播域。交换机在同一时刻可进行多个端口对之间的数据传输。每一端口都可视为独立的网段,连接在其上的网络设备独自享有全部的带宽,无须同其他设备竞争使用。当节点A向节点D发送数据时,节点B可同时向节点C发送数据,而且这两个传输都享有网络的全部带宽,都有着自己的虚拟连接。
交换机的另外一个重要功能是VLAN(Virtual LAN,虚拟局域网)。VLAN的好处主要有三个:
端口的分隔。即便在同一个交换机上,处于不同VLAN的端口也是不能通信的。这样一个物理的交换机可以当作多个逻辑的交换机使用。
网络的安全。不同VLAN不能直接通信,杜绝了广播信息的不安全性。
灵活的管理。更改用户所属的网络不必换端口和联线,只该软件配置就可以了。
VLAN可以按端口或MAC地址来划分。
交换技术的发展,也加快了新的交换技术(VLAN)的应用速度。通过将企业网络划分为虚拟网络VLAN网段,可以强化网络管理和网络安全,控制不必要的数据广播。在共享网络中,一个物理的网段就是一个广播域。而在交换网络中,广播域可以是有一组任意选定的第二层网络地址(MAC地址)组成的虚拟网段。这样,网络中工作组的划分可以突破共享网络中的地理位置限制,而完全根据管理功能来划分。这种基于工作流的分组模式,大大提高了网络规划和重组的管理功能。