第六章 计算机网络
6.1 计算机网络概述
6.1.1 计算机网络的类别、性能
路由器router:路由器是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。路由器和交换机的主要区别是交换机工作在数据链路层,路由器工作在网络层。路由器又称网关设备。
交换就是按照某种方式动态地分配传输线路的资源。交换的方式包括电路交换、报文交换和分组交换。其中分组交换主要采取存储转发技术,把一个报文划分为几个分组后再进行传送,要发送的整块数据称为一个报文,划分以后称为数据段,在每一个数据段前面加上一个首部(包含控制信息),就成为了一个分组。每一个分组可以在互联网中独立地选择传输路径,并正确地交付到分组传输的终点。
分组交换的优点有4个:一是高效,在分组传输的过程中动态分配传输带宽,对通信链路是逐段占用;二是灵活,其可以为每一个分组独立地选择最合适的转发路由。三是迅速,以分组作为传送单位可以不建立链接就向其他主机发送分组。最后是可靠,分组交换有多种保证可靠性的网络协议。
按照网络作用范围分类:广域网WAN,城域网MAN,局域网LAN和个人区域网PAN。按照网络的使用者可以分为:公用网和专用网。
计算机网络的性能有以下几个重要指标:速率(数据的传送速率)、带宽(单位时间内网络中的某种信道所能通过的最高数据速率)、吞吐量(单位时间内通过某个网络的实际的数据速率)、时延(包括发送时延、传播时延、处理时延和排队时延)、往返时间、信道利用率和网络利用率。
6.1.2 计算机网络的体系结构
开放系统互联基本参考模型OSI(Open system interconnection reference model)
为网络中数据交换而建立的、标准和约定称为网络协议,网络协议也可简称为协议。协议主要由三个要素组成:语法(数据与控制信息的结构或格式)、语义和同步。
网络协议分层的优点:1、各层间独立地实现功能降低了整个问题的复杂度;2、灵活性好;3、结构上可分割开;4、易于实现和维护;5、能促进标准化工作。
各层需要完成的主要功能有:差错控制、流量控制、分段和重装、复用和分用、连接建立和释放。
计算机网络体系架构如下:
图 6.1 计算机网络体系架构
网络层级 | 作用 |
应用层 | 应用层的主要任务是通过应用进程间的交互来完成特定的网络应用。应用层协议定义的是应用进程间通信和交互的规则 |
运输层 (传输层) | 运输层的主要任务是负责向两台主机中进程之间的通信提供通用的数据传输服务。 由于一台主机可同时运行多个进程,因此运输层有复用和分用的功能。复用就是多个应用层进程可同时使用下面运输层的服务,分用就是运输层把收到的信息分别交付上面应用层中的相应进程。 运输层主要包含2种协议:TCP和UDP。 传输控制协议TCP:提供面向链接的、可靠的数据传输服务,其数据传输的单位是报文段。 用户数据报协议UDP:提供无连接的、尽最大努力的数据传输服务,其传输的单位是用户数据包。 |
网络层 | 网络层为分组交换网上不同的主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或数据包封装成分组或包进行传送。在TCP/IP体系中,分组也称为IP数据报,但是要区别于用户数据报UDP。 |
数据链路层 | 在两个相邻节点传送数据时,数据链路层将网络层传下来的IP数据报组装成帧,在两个相邻节点的链路上传送帧。每一个帧包括数据和必要的控制信息。 |
物理层 | 物理层的主要任务是确定与传输媒体的接口有关的一些特性,如电气特性,机械特性等。 |
图 6.2 数据在各层之间的传递过程
实体表示任何可发送或接受信息的硬件或软件工程。协议是两个对等实体进行通信的规则的集合。
6.1.3 物理层
最基本的信道复用技术包括频分复用FDM、时分复用TDM。
波分复用WDM就是光的频分复用。
码分复用CDM:是另一种共享新到的方法,每一个用户可以在同样的时间内使用同样的频带进行通信,由于用户使用经过特殊挑选的不同码型,因此各用户之间不会造成干扰。
6.2 数据链路层
数据链路层属于计算机网络的底层,使用的信道主要有2种类型:点对点信道以及广播信道。两种信道分别使用PPP协议和CSMA/CD协议。数据链路层的三个问题包括封装成帧、透明传输和差错检测。此外包括一些诸如适配器、集线器、以太网交换机之类的设备。下图是两台主机通过互联网进行通信时数据链路层的地位:
图 6.3 数据链路层的地位
主机H1和主机H2都有完整的五层协议栈,但路由器在转发分组时只有下面的3层,这一点我们到后面再说。数据进入路由器后要先从物理层上到网络层,在转发表中找到下一跳的地址,再下到物理层转发出去。
6.2.1 点对点信道
一、数据链路和帧
链路是一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。数据链路指的是除了需要在物理线路上传输数据,还必须有一些必要的通信协议来控制数据的传输。综合二者到链路上,就是数据链路。
数据链路层把网络层发下来的数据构造成帧发送到链路上,并且把接收到的帧中的数据取出并交给网络层。
在点对点信道的数据链路层协议上,其信道模型可以简化为一个三层模型,如下所示。不管在哪一段链路上的通信都可以看做是结点和结点的通信,且每个结点只有下面三层。
图 6.4 数据链路层点对点信道三层简化模型
点对点信道的数据链路层在进行通信时的主要步骤如下:(1)结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧。(2)结点A把封装好的帧发送给结点B的数据链路层。(3)若结点B收到的帧无差错,则从收到的帧中取出IP数据报交给网络层,否则丢弃。
二、三个基本问题
数据链路层协议有很多,但是都需要考虑这三个问题:封装成帧、透明传输和差错检测。
封装成帧 | 封装成帧就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。网络层的IP数据报传到数据链路层就成为了帧的数据部分,帧就是数据链路层的数据传输单元。一个帧的长度等于数据部分长度加上帧首部和帧尾部。首部和尾部的作用是进行帧定界。帧所能传送的数据部分的上限称为最大传送单元MTU。控制字符SOH放在帧的最前面,表示帧首部的开始,EOT表示帧的结束。,它们的16进制编码分别是01和04。 |
透明传输 | 透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。 透明传输就是在传输过程中,对外界透明,就是说你看不见他是传送网络不管传输的业务如何,我只负责将需要传送的业务传送到目的节点,同时保证传输的质量即可,而不对传输的业务进行处理。 |
差错检测 | 数据链路层广泛使用循环冗余检验CRC作为该层比特差错的检测技术。若在数据链路层仅仅使用CRC,则只能做到对帧的无差错接收,即凡是接收端数据链路层接受的帧均无差错。 传输差错包括:帧丢失,帧重复和帧失序。 |
6.2.2 点对点协议
点对点协议PPP是目前是用的最广泛的数据链路层协议。PPP协议由3个部分组成:一是一个将IP数据报封装到串行链路的方法;二是一个用来建立、配置和测试数据链路连接的链路控制协议LCP;三是一套网络控制协议NCP。
一、PPP协议的帧格式
PPP帧的首部和尾部分别为4个字段和2个字段。十六进制0x7E表示一个帧的开始或结束,称为标志字段F,连续两个帧之间只有一个标志字段,若出现两个连续的标志字段,则表示这是一个空帧。地址字段A在起始F之后,为0xFF,控制字段C在A之后,为0x03。信息字段的长度是可变的,不超过1500字节。
当信息字段中出现与标志字段一样的比特块时,使用字符填充来区别处理。
PPP协议在SONET/SDH链路同步传输时,采用零比特填充法来实现透明传输。在发送端先扫描整个信息字段。只要发现连续5个1,就立即填入一个0。接收端在收到一个帧时,先通过标志字段F确定帧边界,然后扫描,若出现连续5个1,就把第6个0删除。这样的还原就保证了透明传输。
二、PPP协议的工作状态
PPP链路的起始和中止状态永远是链路静止状态,物理层连接建立后进入链路建立状态,建立链路层的LCP连接,LCP配置协商结束后即建立了连接,进入鉴别状态。若鉴别失败则到链路终止状态,成功则进入网络层协议状态。当网络层配置完毕后,链路就可进入链路打开状态。数据传输结束后,可由链路任一端发送终止请求LCP分组,在收到对方发来的终止确认LCP分组后,转移到链路终止状态。
6.2.3 使用广播信道的数据链路层
一、局域网(以太网)的数据链路层
局域网的特点:网络为一个单位所拥有,且地理范围和站点数目均有限。
局域网的优点:1、具有广播功能,从一个站点可以方便的访问全网,局域网上的主机可以共享连接在局域网上的各种硬件和软件资源;2、便于系统的扩展和逐渐演变,各设备的位置可以灵活地调整和改变;3、提高了系统的可靠性、可用性和生存性。
局域网按照拓扑分类可以分为以下3种:星形网、环形网和总线网。
图 6.5 局域网拓扑
最早的以太网是一种基带总线局域网,现在的以太网(Ethernet)指的是由Xerox公司创建并由Xerox、Intel和DEC公司联合开发的基带局域网规范,是当今现有局域网采用的最通用的通信协议标准。以太网络使用CSMA/CD(载波监听多路访问及冲突检测)技术,并以10M/S的速率运行在多种类型的电缆上。
IEEE 802将局域网的数据链路层拆分成2个之层:逻辑链路控制层LLC和媒体接入控制层MAC。与传输媒体有关的内容都放在MAC层,LLC层与传输媒体无关,不管采用何种传输媒体和MAC层的局域网对LLC层来说都是透明的。
二、适配器
计算机与外界局域网的连接是通过通信适配器进行的,适配器上面装有处理器和存储器(ROM和RAM)。适配器的一个重要功能是进行数据串行传输和并行传输的转换。适配器在收发帧时不使用计算机的CPU,当适配器收到由差错的帧时直接丢弃,不用通知计算机。当受到正确的帧,使用中断来通知计算机,并交付协议栈中的网络层。当计算机要发送IP数据报时,就由协议栈把IP数据报向下交给适配器,组装成帧后发送到局域网。
三、CSMA/CD协议
总线的特点是:当一台计算机发送数据时,总线上的所有计算机都能检测到这个数据。这就是广播通信方式。
以太网采用较为灵活的无连接的工作方式,不必建立连接就可以发送数据。适配器对发送的数据帧不进行编号,也不要求对方发回确认。因此以太网提供的服务是尽最最大努力的交付,即不可靠的交付。
在总线上,同一时间内只能允许一台计算机发送数据,否则计算机之间会互相干扰。以太网采用简单地随机接入,并使用载波监听多点接入/碰撞检测(CSMA/CD)协议来减少发生冲突的概率。
多点接入说明使用的是总线型网络。载波监听就是用电子技术检测总线上是否有其他计算机在发送数据,不管在发送前还是发送中,每个站都必须不停地监测信道。如果检测出有其他站在发送,就暂时不发数据,当信道为空闲时再发送数据。在发送中检测信道是为了及时发现有没有其他站的发送与本站的发送碰撞。因此碰撞检测也就是边发送边监听。当总线上有多个站同时发数据时,电压会增大,适配器检测到电压变化超过一定阈值时就认为有至少2个站在发数据,发生了碰撞。一旦碰撞,适配器就要立刻停止发送。
为何已经做了载波监听,还要做碰撞检测呢?由于站与站之间消息的传播是有时延的,有可能还未检测到数据就判定信道为空。所以这里需要考虑线上的单程端到端时延。A在发送数据后,最迟要经过两倍的总线端到端时延才知道是否发生碰撞。一般需要考虑最坏情况,总线的端到端时延一般取距离最远的2个站的端到端时延。因此以太网端到端往返时延称为争用期。争用期又称碰撞窗口,如果争用期内没有检测到碰撞,才能肯定这次发送不会碰撞。
以太网使用二进制指数退避算法来确定碰撞后重传的时机。
使用CSMA/CD协议的以太网的站不能同时发送和接收,因此只能进行半双工通信。
信号在以太网上传播1km需要5μs。凡长度小于64字节的帧都是由于冲突而异常终止的无效帧。帧的最小间隔为9.6μs。
强化碰撞:当发送数据的站一旦发现发生了碰撞时,除了立即停止发送数据外,还要再发送32或64比特的人为干扰信号。以便让所有用户都知道发生了碰撞。
四、CSMA/CD协议的要点
1、准备发送
适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中。但是在发送之前,必须先检测信道。
2、检测信道
若检测到信道忙,则不停检测,一直等待信道转为空闲。若信道空闲且在96比特时间内保持空闲,就发送这个帧。
3、网络适配器要边发边监听,这里有2种情况
① 发送成功:发送完毕后回到步骤1。
② 发送失败:在争用期内检测到碰撞,停止发送数据,发送人为干扰信号。适配器执行干扰退避算法。等待r倍512比特时间后,返回步骤2。
五、使用集线器的星形拓扑
在星形的中心有一种设备用于连接各个站点,这就是集线器。集线器(Hub)是指将多条以太网双绞线或光纤集合连接在同一段物理介质下的设备。集线器是运作在OSI模型中的物理层。它可以视作多端口的中继器,若它侦测到碰撞,它会提交阻塞信号。
集线器的一些特点:1、使用集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,使用的还是CSMA/CD协议。网络中的各站必须竞争对传输媒体的控制,并且在同一时刻至多只允许一个站发送数据。2、一个集线器有许多接口。3、集线器工作在物理层,每个接口仅简单转发比特,不进行碰撞检测。
六、以太网的MAC层
在局域网中,硬件地址又称物理地址或MAC地址。IEEE 802为局域网规定了48位的全球地址。MAC地址实际上就是适配器地址,或适配器标识符EUI-48。当这块适配器嵌入到某台计算机后,适配器上的标识符EUI-48就成为这台计算机的MAC地址了。
当路由器通过适配器连接到局域网时,适配器上的硬件地址用于标识路由器的某个接口,且适配器具有过滤功能,会用硬件检查从网络上收到的每一个MAC帧中的MAC地址。
6.2.4 扩展的以太网
在物理层扩展以太网主要使用光纤和光纤解调器。如果使用多个集线器,就可以连接成覆盖更大范围的多级星形结构的以太网
扩展以太网的常用方法是在数据链路层进行。常用的设备是以太网交换机。
一、以太网交换机
以太网交换机实际上就是一个多接口的网桥,和工作在物理层的转发器、集线器差别很大。以太网交换机处于数据链路层,其数据传输原理与集线器不同,它采用矩阵交换通道的方式传输数据,每个数据通道都有独立的带宽。虽然每个时刻一个端口只能有一个通道,但整体上看交换机却是多个交换通道同时开通的,因此以太网交换机的数据传输性能优于集线器。
以太网交换机的每个接口都直接与一台计算机或者另一个以太网交换机相连,且一般工作在全双工模式。相互通信的主机都是独占传输媒体,无碰撞地传输数据。以太网交换机是一种即插即用的设备,内部的帧交换表(地址表)是通过自学习算法逐渐建立起来的。通过在以太网交换机中更新各个站点的位置接口,记录相应站点的MAC地址。
二、虚拟局域网VLAN
虚拟局域网是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。每一个VALN的帧都有一个明确的标识符,指明发送这个帧的计算机属于哪个VLAN。虚拟局域网只是局域网给用户提供的一种服务,而不是一种新型局域网。
图 6.6 三个虚拟局域网VLAN1,VLAN2和VLAN3的构成
图6.6中画出了使用4个以太网交换机的网络拓扑,每一层代表一个相同的物理位置,构成了3个局域网:LAN1(A1,A2,B1,B2),LAN2(A3,B2,C2),LAN3(A4,B3,C3)。但是这10个用户划分为3个工作组,即划分为3个VLAN,VLAN1(A1,A2,A3,A4),VLAN2(B1,B2,B3)和VLAN3(C1,C2,C3)。
在虚拟局域网上的每个站都可以收到同一个虚拟局域网上其他成员所发出的广播。例如,当B1向工作组内成员发送数据时,B2B3都会收到消息,即便它们没有和B1连在同一个以太网交换机上。同时,A1A2和C1都不会收到消息,即便它们与B1连在同一个以太网交换机上。以太网交换机不向虚拟局域网以外的计算机发送B1的消息,可以抑制广播风暴。