计算机网络原理:计算机网络概述
todo
一、计算机网络基本概念
1.1、计算机网络的定义
计算机网络是利用通信设备与通信链路(或通信网络),互连位置不同、功能自洽的计算机系统,并遵循一定的规则实现计算机系统之间信息交换。简单来说,计算机网络是互连的、自洽的计算机的集合。
“自洽”是指互连的计算机系统彼此独立,不存在主从或者控制与被控制的关系。
“互连”是指利用通信链路连接相互独立的计算机系统。
1.2、协议的定义
协议是计算机网络中的实体在进行数据交换的过程中必须遵循的一些规则或约定。
协议约定了实体之间交换的信息类型、信息各部分的含义、信息交换顺序以及收到特定信息或出现异常时应采取的行为。
任何一个协议都包含了三个要素:语法、语义、时序。
- 语法:定义实体之间交换信息的格式与结构,或者定义实体之间传输信号的电平等。
- 语义:定义实体之间交换的信息中需要发送(或包含)哪些控制信息,这些信息的具体含义,以及针对不同含义的控制信息,接收端应如何响应。此外,还需要定义彼此采用何种差错编码、以及采取何种差错处理机制等。
- 时序:也称为同步,定义实体之间交换信息的顺序以及如何匹配或适应彼此的速度。
1.3、计算机网络的功能
计算机网络的主要功能是资源共享,包括硬件资源共享、软件资源共享和信息资源共享。
1.4、计算机网络的分类
目前最大的计算机网络就是Internet(或称因特网),按不同的分类标准可以将网络划分不同的类型。
1.4.1、按覆盖范围
-
个域网(PAN)。个域网通常是由个人设备通过无线通信技术构成小范围的网络,实现个人设备间的数据传输。个域网通常覆盖范围在1~10m。
-
局域网(LAN)。局域网通常部署在办公室、办公楼、厂区、校园等局部区域内,采用高速有线或无线链路连接主机,实现局部范围内高速数据传输。局域网通常覆盖范围在10m ~ 1km。
-
城域网(MAN)。城域网是指覆盖一个城市范围的网络,覆盖范围通常在5~50km。
-
广域网(WAN)。广域网覆盖范围在几十到几千千米,通常跨越更大的地理空间,可以实现异地局域网或城域网的互联。
1.4.2、按拓扑结构
网络拓扑是指网络中的主机、网络设备间的物理连接关系与布局。
按拓扑结构,计算机网络可以分为总线型拓扑结构、星形拓扑结构、环形拓扑结构、树形拓扑结构、网状拓扑结构和混合拓扑结构。
(1)总线型拓扑结构
总线型扑结构网络采用一条广播信道作为公共传输介质,称为总线,所有结点均与总线连接,结点间的通信均通过共享的总线进行。由于总线是一条广播信道,所以任一结点通过总线发送数据时,其他结点都会接收到承载这些数据的信号。
总线型拓扑结构的优点是:
-
所需要的电缆数量少。
-
结构简单。
-
易于扩展。
总线型拓扑结构的缺点是:
- 通信范围受限。
- 故障诊断与隔离较困难。
- 容易产生冲突。
(2)星形拓扑结构
星形拓扑结构网络包括一个中央结点,网络中的主机通过点对点通信链路与中央结点连接。中央结点通常是集线器、交换机等设备,主机之间的通信都需要通过中央结点进行。
星线型拓扑结构的优点是:
- 易于监控与管理
- 故障诊断与隔离容易
星线型拓扑结构的缺点是:
- 中央结点是网络的瓶颈,一旦故障,全网瘫痪。
- 网络规模受限于中央结点的端口数量。
(3)环形拓扑结构
环形拓扑结构网络利用通信链路将所有结点连接成一个闭合的环。环中的数据传输通常是单向(也可以双向)传输,每个结点可以从环中接收数据,并向环中进一步转发数据。
环形拓扑结构的优点是:
- 所需电缆长度短。
- 可以使用光纤。
- 易于避免冲突。
环形拓扑结构的缺点是:
- 某结点的故障容易引起全网瘫痪。
- 新结点的加入或撤出过程比较麻烦。
- 存在等待时间问题。
(4)树形拓扑结构
树形拓扑结构网络以看作是总线型拓扑或星形拓扑网络的扩展。目前,很多局域网都采用这种拓扑结构。
树形拓扑结构的优点是:
- 易于扩展
- 故障隔离容易
树形拓扑结构的缺点是:
- 对根结点的可靠性要求高,一旦根结点故障,则可能导致网络大范围无法通信。
(5)网状拓扑结构
网状拓扑结构中的结点通过多条链路与不同的结点直接连接。
网状拓扑结构网络的优点是:
- 网络可靠性高。
- 一条或多条链路故障时,网络仍然可联通。
网状拓扑结构网络的缺点是:
- 网络结构复杂。
- 造价成本高。
- 选路协议复杂。
(6)混合拓扑结构
混合拓扑结构网络是由两种以上简单拓扑结构网络混合连接而成的网络。绝大多数实际网络的拓扑都属于混合拓扑结构。
混合拓扑结构网络的优点是:
- 易于扩展,可以构建不同规模网络。
- 可根据需要优选网络结构。
混合拓扑结构网络的缺点是:
- 网络结构复杂。
- 管理与维护复杂。
1.4.3、按数据交换方式
数据交换是指网络通过彼此互连结点间的数据转接,实现将数据从发送结点送达目的结点的过程和技术。按网络所采用的数据交换技术,计算机网络可以分为电路交换网络、报文交换网络和分组交换网络。
1.4.4、按网络用户属性
-
公用网。公用网是指由国家或企业出资建设,面向公众提供收费或免费服务的网络,用户只要按规定缴纳费用都可以接入网络,使用网络设施与服务。
-
私有网。私有网是指由某个组织出资建设,专门面向该组织内部业务提供网络传输服务,不向公众开放的网络。
1.5、计算机网络与因特网发展简史
ARPAnet是第一个分组交换计算机网络,也是当今因特网的祖先。
1972年,ARPAnet 开发了第一个主机到主机的协议,网络控制协议(NCP)。Ray Tomlinson为ARPAnet编写了第一个电子邮件程序。
20世纪70年代早期与中期,除了ARPAnet之外,还陆续诞生了许多其他分组交换网络,例如ALOHAnet、Telenet 等。Norman Abramson在研制分组无线电网络ALOHAnet 时,设计了第一个多路访问控制协议 ALOHA。Met-calle与Boggs研制了基于有线共享广播链路的以太网,奠定了当今局域网技术的基础。到20世纪70年代末期ARPAnet已连接大约200台主机,公共因特网已现雏形。
到20世纪80年代,公共因特网上连接的主机数量达到100000台。1986年,创建了 NSFNET。在此期间,TCP/IP 协议簇逐渐成熟,并于1983年1月1日正式部署,替代了NCP。
20世纪90年代,万维网应用诞生。
从2000年开始,因特网进入爆发式发展时期。
二、计算机网络结构
2.1、网络边缘
连接到网络上的计算机、服务器、智能手机、智能传感器、智能家电等称为主机或端系。这些端系统位于网络的最边缘,因此,连接到网络上的所有端系统构成了网络边缘。网络边缘上的端系统运行分布式网络应用,在端系统之间进行数据交换,实现应用目的。
2.2、接入网络
接入网络是实现网络边缘的端系统与网络核心连接与接入的网络。常见的接人网络技术句括电话拨号接入、非对称数字用户线路ADSL、混合光纤同轴电缆HFC接入网络、局域网和移动接入网络。
2.3、网络核心
网络核心是由通信链路互连的分组交换设备构成的网络,作用是实现网络边缘中主机之间的数据中继与转发。
三、数据交换技术
计算机网络的目的是实现多台主机间的数据交换。最简单的计算机网络只有两台计算机和连接它们的一条链路,即两个结点和一条链路,这时不需要交换。如果有多台计算机需要通信,就需要利用交换技术实现它们之间一对一的通信。
常见的数据交换技术有三种:电路交换(circuit switching)、报文交换(message switching)和分组交换(packet switching)。基于这三种交换技术构建的网络分别称之为电路交换网络、报文交换网络和分组交换网络。
3.1、电路交换
电路交换源于电话网。如下图所示:
图(a)表示两部电话只需要用一对电线就能够互相连接。图(b)表示若有五部电话要两两相连,则需要10对电线。显然, 当电话数量很大时,这种连接方法需要的电线数量会很大(与电话数量的平方成正比)。为了解决这个问题,可以使用一个中间设备将这些电话连接起来,如图(c)所示。这个中间设备就是电话交换机。每一部电话都连接到交换机上,交换机就像一个有多个开关的开关器(当然,实际的工作原理是非常复杂的),可以将需要通信的任意两部电话的电话线路按需接通,从而大大减少了电线数量。当电话的数量进一步增多时,就要使用很多彼此连接起来的交换机来完成全网的交换任务。用这样的方法,就构成了覆盖全世界的电话网。
交换机接通电话线路的方式是一种称为电路交换 (Circuit Switching)的方式。其特点是,在使用电路交换打电话之前,必须先拨号请求建立连接。在被叫用户听到交换机送来的拨号音并摘机后,从主叫端到被叫端就建立了连接,也就是一条专用的物理通路 。该连接保证了双方通话所需的通信资源在双方通话时不会被其他用户占用,这样双方就能互相通电话了。通话完毕挂机后,交换机释放刚才使用的这条专用的物理通路(即把刚才占用的所有通信资源归还给电信网)。这种必须经过“建立连接 (分配通信资源)→通话 (一直占用通信资源)→释放连接 (归还通信资源)”三个步骤的交换方式称为电路交换 。用户拨号呼叫时,如果电信网的资源已不足以支持这次呼叫,则主叫用户会听到忙音,表示电信网不接受用户的呼叫,用户必须挂机,等待一段时间后再重新拨号。如下图,是电路交换的示意图。为简单起见,图中没有区分市话交换机和长途电话交换机。
这里应当注意的是,用户线归电话用户专用,而交换机之间拥有大量话路的中继线则是许多用户共享的,正在通话的用户只占用了其中的一个话路。在通话的全部时间内,通话的两个用户始终占用端到端的通信资源 。例如,上图中电话A和电话B之间的通路共经过了4个交换机,而电话C和电话D在同一个交换机的地理覆盖范围中,因此这两部电话之间建立的连接不需要经过其他的交换机。这也就是说,在电话A和电话B的通话过程中,它们始终占用这条已建立的物理通路,就像把电话A和电话B直接用一对电话线连接起来一样。通话完毕(挂机)后,电话A和电话B的连接断开,原来被占用的交换机之间的话路又可以为其他用户使用。
当使用电路交换来传送计算机数据时,其线路的传输效率往往很低。这是因为计算机数据是突发式地出现在传输线路上的,线路真正用来传送数据的时间往往不到10%甚至1%。即,已被用户占用的通信线路在绝大部分时间里都是空闲的。例如,当用户阅读终端屏幕上的信息或用键盘输入和编辑一份文件时,或计算机正在进行处理而结果尚未返回时,宝贵的通信线路资源并未被利用而是白白被浪费了。
3.2、报文交换
在20世纪40年代,电报通信采用了基于存储转发原理的报文交换(Message Switching)。在报文交换中心,一份份电报被接收,并穿成纸带。操作员以每份报文为单位,撕下纸带,根据报文的目的站地址,拿到相应的发报机转发出去。这种报文交换的时延较长,从几分钟到几小时不等。
报文交换也称为消息交换,其工作过程是:发送方把要发送的信息附加上发送、接收主机的地址及其他控制信息,构成一个完整的报文(Message),然后以报文为单位在交换网络的各结点之间以存储——转发的方式传送,直至送达目的主机。如下图,展示了有2台分组交换机和3个链路构成的某条路径上的报文交换,在整个传输过程中,每个报文在穿越网络时都不被分割。图中的交换机是存储——转发报文交换机,它们必须接收一个完整的报文,然后才能把报文转发到某个输出链路上。
报文交换不需要事先建立连接,发送方组装好报文之后即可将其发给相邻的交换结点,交换结点收到整个报文并且检查无误后,暂时存储报文,然后利用路由选择找出下一个接收结点的地址,再把整个报文转发给下一个结点。交换结点的这种接收、暂存、转发的工作方式,就称为“存储——转发”交换方式。只有当报文被转发时才占用相应的信道,不存在电路交换中通信双方空闲时信道也要被占用的情况。因此,相对电路交换信道而言,报文交换线路利用率高。
在报文交换网络中,交换结点需要缓冲存储,报文需要排队,因此会导致报文的延迟时间变长并且不固定,对于实时通信而言容易出现不能满足速度要求的情况。当结点收到的报文过多而存储空间不够或者输出链路被占用不能及时转发时,就不得不丢弃报文,这也是报文交换的缺点。
3.3、分组交换
计算机网络采用的是分组交换技术。通常,我们把要发送的整块数据称为一个报文 (Message)。分组交换的工作过程是,发送报文前先把一个较长的报文划分成多个较小的等长数据段,同时在每一个数据段的前面加上由必要的控制信息组成的首部 (Header),构成多个分组 (Packet),然后将分组通过通信链路直接发送给分组交换机 (Packet Switch),分组交换机收到一个分组,先将分组暂时存储下来,再检查其首部,按照首部中的目的地址查找转发表 ,找到合适的接口转发出去,把分组交给下一个分组交换机。这样,一步一步经过多个分组交换机把分组转发到最终的目的计算机。
接下来,我们以下图为例,说明分组交换机转发分组的过程。
现在假定,主机H1向主机H5发送数据,其过程如下
-
主机H1先将分组逐个地发往与它直接相连的分组交换机A。此时,除链路H1——A外,其他通信链路并不被目前通信的双方所占用。需要注意的是,即使是链路H1——A,也只是当分组正在此链路上传送时才被占用。在传送各分组的空闲时间,链路H1——A仍可为其他主机发送的分组使用。
-
分组交换机A把主机H1发来的分组放入缓存。假定从A的转发表中查出应把该分组转发到链路A——C。则分组就传送到分组交换机C。当分组正在链路A——C上传送时,该分组并不占用网络其他部分的资源。(注:分组交换机暂时存储的是一个个短分组,而不是整个的长报文。短分组暂存在分组交换机的存储器(即内存)中而不是存储在磁盘中,这就保证了较高的交换速率)
-
分组交换机C继续按上述方式查找转发表,假定查出应转发到分组交换机E。分组到达E后,E把分组直接交给主机H5。
假定在某一个分组的传送过程中,链路A——C的通信量太大,那么分组交换机A可以把分组沿另一个链路转发到分组交换机B,再转发到分组交换机E,最后把分组送到主机H5。上图只画了一对主机H1和H5在进行通信。实际上,在网络中可同时有多台主机经过同一条链路进行通信,例如,在主机H1与H5通信的同时,主机H3也可以经过分组交换机C和E与主机H6通信,主机H1发送给H5的分组与主机H3 发送给H6 的分组会交替在链路C——E上传送。总之,分组交换机在传送数据之前不必先占用一条端到端的通信线路。分组在哪段链路上传送才占用这段链路的通信资源。分组在传输时就这样一段接着一段地断续占用通信资源,而且省去了建立连接和释放连接的开销,因而数据的传输效率更高。
从上述过程可知,采用存储转发方式的分组交换,实质上是采用了在数据通信的过程中断续(或动态)分配传输带宽的策略,这对传送突发式的计算机数据非常合适,使得通信线路的利用率大大提高了。为了提高分组交换网的可靠性,常采用具有冗余链路的网状拓扑结构,使得当发生网络拥塞或少数结点、链路出现故障时,分组交换机可灵活地改变转发路由而不致引起通信的中断或全网的瘫痪。此外,通信网络的主干线路往往由一些高速链路构成,这样就能以较高的数据率迅速地传送计算机数据。
综上所述,分组交换的主要优点如下表所示。
优点 | 采用的手段 |
---|---|
高效 | 在传输分组的过程中动态分配传输带宽,对通信链路是逐段占用的 |
灵活 | 为每一个分组独立地选择转发路由 |
迅速 | 以分组作为传送单位,不必建立连接就能向其他主机发送分组 |
可靠 | 分布式多路由的分组交换网,使网络有很好的生存性 |
分组交换也带来一些新的问题。例如,分组交换机在转发分组时需要花费一定的时间,这就会造成时延,各分组必须携带的控制信息也造成了一定的开销(Overhead)。此外,由于分组交换不像电路交换那样通过建立连接来保证通信时所需的各种资源,因而无法确保通信时端到端的带宽,在通信量较大时可能造成网络拥塞。
如上图所示,每个分组交换机有多条链路与之相连。对于每条相连的链路,该分组交换机有一个输出缓存(也称为输出队列),用于存储分组交换机准备发往那条链路的分组。该输出缓存在分组交换中起着重要的作用。如果到达的分组需要从某条链路转发出去,但该链路正忙于传输其他分组,则分组必须在该输出缓存中等待(即排队)。当一个分组到达时发现输出缓存已满,将发生分组丢失,即到达的分组或已经排队的分组将被丢弃。当网络中有大量分组需要从某条链路转发时就可能出现这种分组丢失的情况,这时我们说网络发生了拥塞。
3.4、小结
下图,是电路交换、报文交换和分组交换的主要区别。
图中的A和D分别是源点和终点,B和C是在A和D之间的中间结点,P1~P4表示4个分组。图的下方归纳了三种交换方式在数据传送阶段的主要特点。
- 电路交换。整个报文的比特流连续地从源点直达终点,好像一条物理的线路直接将源点和终点连接起来一样。
- 报文交换。整个报文先传送到相邻结点,全部存储下来后查找转发表,转发到下一个结点。
- 分组交换。单个分组(这只是整个报文的一部分)传送到相邻结点,存储下来后查找转发表,转发到下一个结点。(注:分组交换机的输出接口和输入接口能够并行工作,当输出接口在发送一个分组时,其输入接口可以接收下一个分组)
从上图可以看出,若要连续传送大量的数据,且其传送时间远大于连接建立时间,则电路交换的传输速率较高。报文交换和分组交换不需要预先分配传输带宽,在传送突发数据时可提高整个网络的信道利用率。由于一个分组的长度往往远小于整个报文的长度,因此分组交换比报文交换的时延小。将发送的报文划分成小的分组,除了有减小转发时延的好处外,还可以避免过长的报文长时间占用链路,同时也有利于进行差错控制。
四、计算机网络性能
性能指标从不同的角度来度量计算机网络的性能。下面介绍最常用的7个性能指标。
4.1、速率
速率就是数据的传送速率,也称为数据率(Data Rate)或比特率(Bit Rate)。如下图所示,计算机将待发送的信息转换成二进制数(一个二进制数称为一个“比特”),二进制数最终被转换成数字信号在线路上传输。
在网络技术中,速率的单位是bit/s(比特每秒,有时也写为bps,即bit per second,每秒传输的比特数量)。当速率较高时,就可以用kbit/s(k==千)、Mbit/s(M==兆)、Gbit/s(G==吉)或Tbit/s(T==太)。在日常生活中,人们习惯用更简洁但不严谨的说法来描述速率,如100M以太网,省略了单位中的bit/s,它的意思是速率为100Mbit/s的以太网。
计算机中的数据量往往用字节作为度量的单位,1个字节(Byte,B)代表8个比特(bit)。这里需要注意的是,“千”、“兆”和“吉”等英文缩写所代表的数值。在存储领域,“千字节”的“千”用大写K表示,它等于,即1024,而不是。这也就说是,在表示计算机中的数据量时,1MB或1GB也并非表示或个字节,而是表示(1048576)或(1073741824)个字节。而在通信领域,“千字节”的“千”用小写k表示,它等于,即1000,而不是1024。
4.2、带宽
“带宽”(Bandwidth)有以下两种不同的含义。
-
带宽本来是指某个信号具有的频带宽度。信号的带宽是指该信号所包含的各种不同频率成分所占据的频率范围。例如,在传统的通信线路上传送的电话信号的标准带宽是3.1kHz(从300 Hz到3.4kHz即话音的主要成分的频率范围),其单位是赫兹(或千赫兹、兆赫兹、吉赫兹等),表示通信线路允许通过的信号频带范围。
-
在计算机网络中,带宽是指网络中某通道传送数据的能力,即网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”,其单位是“比特每秒”,记为bit/s,前面也常常加上千(k)、兆(M)、吉(G)或太(T)这样的倍数。
“带宽”的这两种含义之间有着密切的关系。一条通信线路,其“频带宽度”越宽,那它传输数据的“最高数据率”也就越高。
目前主流的便携式计算机,其网卡能够支持10Mbit/s、100Mbit/s、1000Mbit/s这3个速率。如下图所示,当计算机网卡连接交换机后,从“本地连接 状态”对话框可以看到,其速率为100Mbps,说明该网卡的最高数据率是每秒传输100M比特。
4.3、吞吐量
吞吐量(Throughput)也称为吞吐率,表示在单位时间内通过某个网络(或接口)的数据量。
吞吐量包括全部上传和下载的流量。经常用于对现实世界中的网络进行测量,以便人们了解到底有多少数据量能够通过网络。如下图所示,计算机A同时浏览网页、在线看电影、向FTP服务器上传文件。其访问网页的下载速率为30kbit/s,播放视频的下载速率为40kbit/s,向FTP服务器上传文件的速率为20kbit/s,计算机A的吞吐量就是全部上传和下载速率的总和,即30+40+20=90(kbit/s)。
吞吐量受网络带宽或网络额定速率限制。如果计算机的网卡连接的是交换机,网卡就可以工作在全双工模式下,即能够同时接收和发送数据。网卡工作在100Mbit/s的全双工模式下,其最大吞吐量为200Mbit/s。如果计算机的网卡连接的是集线器,网卡就只能工作在半双工模式下,即不能同时发送和接收数据。网卡工作在100Mbit/s的半双工模式下,其最大吞吐量为100Mbit/s。
注:吞吐量有时还可用每秒传送的字节数或帧数来表示。
4.4、时延
时延(Delay或Latency)也称为延迟或迟延,是指数据(一个报文或分组,甚至比特)从网络的一端传送到另一端所需要的时间。网络中的时延是由四个不同的部分组成的:
接下来,以下图中的计算机A给计算机B发送数据为例,来说明网络中的每个部分的时延。
4.4.1、发送时延
发送时延(Transmission Delay),是指主机或路由器将一个分组的所有比特发送到通信线路上所需要的时间,也就是从待发送分组的第一个比特算起,到该分组的最后一个比特发送到线路上所需要的时间。
发送时延的计算公式为:
可以看出,发送时延与分组长度和发送速率有关。由于在分组交换中计算机总是以信道最高数据率发送数据,因此公式中的发送速率也可以替换成信道带宽,即发送速率就是网卡的带宽,100Mbit/s的网卡就意味着1s能够发送个比特。
以太网数据帧最大为1518字节,再加上8字节前导字符,共计1526字节,即分组长度为1526×8=12208比特。如果网卡带宽是10Mbit/s,发送一个最大以太网数据帧,其发送时延==1.2ms。其中,ms为毫秒,1s=1000ms。
这里,我们需要知道的是,数据包越大,发送时延也就越大。那么如何验证呢?
如果计算机能够访问Internet,可以使用ping命令测试到Internet上某个网站的数据包往返时延。如下图所示,ping 9.9.9.9,参数l(英文L的小写)用来指定数据包的大小。可以看到数据包为64字节的往返时延比1400字节的往返时延少1ms,这个差距就是因为发送时延不同产生的。
4.4.2、传播时延
传播时延(Propagation Delay),是指电磁波在信道中传播一定距离所花费的时间,也就是从从待发送分组的最后一个比特发送到线路上算起,到该分组的最后一比特到达路由器接口所需要的时间。
传播时延的计算公式为:
电磁波在自由空间的传播速率是光速,即。电磁波在网络传输媒体中的传播速率比在自由空间要略低一些:在铜线电缆中的传播速率约为,在光纤中的传播速率约为。例如,在1000km长的光纤线路上,产生的传播时延大约为5ms。
注:电磁波在指定介质中的传播速率是固定的,从公式可以看出,信道长度固定了,传播时延也就固定了。
4.4.3、排队时延
排队时延,是指分组在路由器的输入队列和输出队列中排队所花费的时间。分组在网络中传输时,要经过许多的路由器。分组在进入路由器后,要先在输入队列中排队等待处理。在路由器确定了转发接口后,还要在输出队列中排队等待转发,这就产生了排队时延。
排队时延的长短往往取决于网络当时的通信量。当网络的通信量很大时,会发生队列溢出,使分组丢失,这相当于排队时延为无穷大。
4.4.4、处理时延
处理时延,是指主机或路由器处理分组所花费的时间。主机或路由器在收到数据包时,要花费一定时间进行处理,如分析数据包的首部、进行首部差错检验,查找路由表为数据包选定转发出口等,这就产生了处理时延。
4.5、时延带宽积
时延带宽积,指的是链路的传播时延与链路带宽的乘积,也即:
我们可以使用如下示意图,来理解时延带宽积。
将链路看成是一个圆柱形的管道,管道的长度表示链路的传播时延(注,这里以时间作为单位来表示链路长度),而管道的截面积表示链路的带宽。因此,这个管道的体积就是时延带宽积,表示链路能容纳多少个比特。例如,假设某段链路的传播时延为20ms,带宽为10Mb/s,可以算出
这表示,若发送端连续发送数据,则在发送的第一个比特即将达到终点时,发送端就已经发送了20万个比特,而这20万个比特都正在链路上向前移动。因此,链路的时延带宽积又称为以比特为单位的链路长度。
不难看出,管道中的比特数表示从发送端发出的但尚未达到接收端的比特。对于一条正在传送数据的链路,只有在代表链路的管道都充满比特时,链路才得到了充分的利用。
4.6、往返时间
往返时间(Round-Trip Time,RTT),表示发送端从发送数据开始,到发送端接收到来自接收端的确认(接收端收到数据后立即发送确认),总共经历的时间。显然,在互联网中,往返时间包括了各中间结点转发数据时的发送时延、排队时延、处理时延以及数据的传播时延。
使用ping命令可以显示往返时间。如下图所示,分别ping网关、国内的网站和美国的网站,能看到每一个数据包的往返时间和统计的平均往返时间。从图中可以看出,途经的路由器越多距离越远,往返时间也会越长。(注:通常情况下,内网中的计算机互ping,往返时间小于10ms,如果大于10ms,就要安装抓包工具分析网络中的数据包是否有恶意的广播包,以找到发广播包的计算机)
往返时间带宽积可以用来计算当发送端连续发送数据时,接收端如发现有错误,立即向发送端发送通知使发送端停止,发送端在这段时间发送的比特量。例如,假设某段链路的往返时间为40ms,带宽为10Mb/s,假定数据的接收方及时发现了差错,并告知发送方,使发送方立即停止发送,但这时发送方也已经发送了40万个比特。
4.7、利用率
利用率有信道利用率和网络利用率两种。信道利用率指某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零。网络利用率则是全网络的信道利用率的加权平均值。
信道利用率并非越高越好。这是因为,根据排队论,当某信道的利用率增大时,该信道引起的时延也就迅速增加。这和高速公路的情况有些相似。当高速公路上的车流量很大时,由于某些地方会出现堵塞,因此行车所需的时间就会增大。网络也有类似的情况。当网络的通信量很少时,网络产生的时延并不大;但在网络通信量不断增大的情况下,由于分组在网络结点(路由器或结点交换机)进行处理时需要排队等候,因此网络引起的时延就会增大。如果令表示网络空闲时的时延,D表示网络当前的时延,那么在适当的假定条件下,可以用下面的简单公式来表示D、和利用率U之间的关系:
这里U的数值在0到1之间。当网络利用率达到其容量的1/2时,时延就要加倍。特别值得注意的就是,当网络利用率接近最大值1时,网络的时延就趋于无穷大。因此我们必须有这样的概念:信道利用率或网络利用率过高会产生非常大的时延。也就是说,一定不要让信道或网络的利用率接近于1。下图所示为时延与利用率的关系。因此,一些拥有较大主干网的ISP通常会把信道利用率控制在50%以下,一旦超过就要准备扩容,增大线路的带宽。
注:信道利用率也不能太低,这会使宝贵的通信资源被白白浪费。
4.8、丢包率
丢包率,也称分组丢失率,是指在一定的时间范围内,分组在传输过程中丢失的分组数量与总的分组数量的比率。即
丢包率具体可分为接口丢包率、结点丢包率、链路丢包率、路径丢包率、网络丢包率等。
在计算机网络中,分组丢失主要有两种情况。一种情况是分组在传输过程出现了比特级差错,被结点丢弃。另一种情况就是当分组到达一台队列已满的分组交换机时,由于没有空间来存储这些分组,分组交换机就会将到达的分组或已经排队的分组丢弃。由于分组交换不像电路交换那样,通过建立连接来保证通信时所需的各种资源,因而无法确保通信时端到端所需的带宽,在通信量较大时就可能造成网络拥塞,导致分组交换机的队列溢出和分组丢失。这是现代计算机网络中分组丢失最主要的原因。
丢包率反映了网络的拥塞情况。一般无拥塞时路径丢包率为0,轻度拥塞时丢包率为1%~4%,严重拥塞时丢包率为5%~15%。具有较高丢包率的网络通常无法使网络应用正常工作。丢包率是网络运维人员非常关心的一个网络性能指标,但普通用户往往并不关心这个指标,因为他们通常感觉不到网络丢包。大多数网络应用底层所使用的通信软件会为用户提供可靠的传输服务,它们会自动重传丢失的分组并自动调整发送速率进行网络拥塞控制。在网络发生拥塞,丢包率较高时,用户感觉到的往往是网络时延变大,“网速”变慢,而不是信息的丢失。
五、计算机网络体系结构
计算机网络体系结构(Architecture)是计算机网络的层次结构模型与各层协议的集合。简单来说,计算机网络的体系结构就是计算机网络及其部件所应完成的功能的精确定义。这些功能究竟是用何种硬件或软件实现的,则是一个遵循这种体系结构的实现(Implementation)问题。体系结构是抽象的,实现则是具体的,是真正在运行的计算机硬件和软件。
5.1、计算机网络分层体系结构
1974年,美国的IBM公司宣布了它研制的系统网络体系结构(System Network Architecture,SNA),这是世界上第一个网络体系结构。此后,许多公司纷纷提出各自的网络体系结构。这些网络体系结构的共同点是都采用层次结构模型,但层次划分和功能分配均不相同。
为了使不同体系结构的计算机网络都能互连,国际标准化组织(International Standard Organization,ISO)于1977年成立了专门机构研究该问题。不久,他们就提出一个试图使各种计算机在世界范围内互连成网的标准框架,即著名的开放系统互连参考模型
(Open Systems Interconnection ReferenceModel,OSI/RM),简称为OSI。“开放”是指只要遵循OSI标准,一个系统就可以和位于世界上任何地方的、也遵循这一标准的其他任何系统进行通信。该模型是一个七层协议的体系结构,如下图(a)所示。
在OSI模型之前,TCP/IP协议簇就已经在运行,并逐步演变成TCP/IP参考模型,如下图(b)所示。到了20世纪90年代初期,虽然整套的OSI国际标准都已经制定出来了,但这时互联网已抢先在全世界覆盖了相当大的范围,因此得到最广泛应用的不是法律上的国际标准
OSI,而是非国际标准TCP/IP。于是,TCP/IP就被称为事实上的国际标准。
OSI的七层协议体系结构概念清楚,理论也较完整,但它既复杂又不实用。TCP/IP是一个四层协议体系结构,它包含应用层、运输层、网际层和网络接口层。不过从实质上讲,TCP/IP只有上面的三层,因为最下面的网络接口层并没有什么具体内容。TCP/IP体系结构虽然简单,却得到了非常广泛的应用。因此我们在学习计算机网络原理时往往采取折中的办法,即综合OSI和TCP/IP的优点,采用一种只有五层协议的原理体系结构,如下图(c)所示。
5.2、OSI参考模型
负责制定国际标准的国际标准化组织 ISO参考了IBM的SNA和其他计算机厂商的网络体系结构,提出了开放系统互连(Open System Interconnection)参考模型,简称 OSI参考模型,按照这个标准设计建成的计算机网络中的设备都可以互相通信。
OSI 参考模型将整个计算机网络的通信功能分为7 层,由低层至高层分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。每一层都有特定的功能,并且上一层会使用下一层所提供的服务,完成本层的功能。
在OSI参考模型中,各层的数据并不是从一端的第N层直接送到另一端的对等层,第N层接收第 N+1 层的协议数据单元(PDU),按第N层协议进行封装,构成第N层 PDU,再通过层间接口传递给第 N-1层,依此类推,最后,数据链路层 PDU(通常称为数据帧)传递给最底的物理层。数据在垂直的层次中自上而下地逐层传递直至物理层,在物理层的两个端点进行物理通信,这种通信称为实通信。由于对等层通信并不是直接进行,因而称为虚拟通信。端系统(比如PC主机)实现的是OSI参考模型的全部7个层次的功能,中间系统(比如路由器)通常只实现物理层、数据链路层和网络层功能。因此,OSI 参考模型的物理层、数据链路层和网络层为结点到结点层,传输层、会话层、表示层和应用层称为端到端层。
在OSI参考模型的 7 层中,1~3 层主要是完成数据交换和数据传输,称之为网络低层;5~7层主要是完成信息处理服务的功能,称之为网络高层;低层与高层之间由第4层衔接。接下来,自下而上地简要介绍一下,OSI参考模型中各层的主要功能。
物理层
物理层的主要功能是在传输介质上实现无结构比特流传输。所谓无结构比特流是指不关心比特流实际代表的信息内容,只关心如何将0和1这些比特以合适的信号传送到目的地,因此,物理层要实现信号编码功能。
物理层的另一项主要任务就是规定数据终端设备(DTE)与数据通信设备(DCE)之间接口的相关特性,主要包括机械、电气、功能和规程4个方面的特性。
- 机械特性也叫物理特性,说明硬件连接接口的机械特点,如接口的形状、尺寸、插脚的数量和排列方式等;
- 电气特性规定了在物理连接上,导线的电气连接及有关电路的特性,如信号的电平大小、接收器和发送器电路特性的说明、信号的识别、最大传输速率的说明等;
- 功能特性说明物理接口各条信号线的用途,如接口信号线的功能分类等;
- 规程特性指明利用接口传输比特流的全过程及各项用于传输的事件发生的合法顺序,包括事件的执行顺序和数据传输方式,即在物理连接建立、维持和交换信息时,收发双方在各自电路上的动作序列。
典型的物理层协议包括 RS-232c、RS-449以及其他网络通信标准中有关物理层的协议等。
数据链路层
数据链路层的主要功能是实现在相邻结点之间数据可靠而有效的传输。数据在物理介质内传输过程,不能保证没有任何错误发生。为了能实现有效的差错控制,就采用了一种“帧”为单位的数据块传输方式。要采用帧格式传输,就必须有相应的帧同步技术,这就是数据链路层的“成帧”(也称为“帧同步”)功能,包括定义帧的格式、类型、成帧的方等。有了“帧”的存在,就可以将差错控制技术应用在数据帧中,例如,将数据码后面附加一定位数的循环码,从而实现数据链路层的差错控制功能。
数据链路层还可以实现相邻结点通信的流量控制。某些数据通信网络的数据链路层还提供连接管理功能,即通信前建立数据链路,通信结束后释放数据链路,这种数据链路的建立、维持和释放过程称为链路管理。
数据链路层的另一个重要功能是寻址,即用来确保每一帧都能准确地传送到正确的接收方,接收方也应该知道发送方的地址,这在使用广播介质的网络中尤为重要,比如计算机局域网中广泛采用 MAC地址。多路访问技术也是数据链路层实现的功能,例如,采用广播信道的数据通信网络的ALOHA协议、CSMA/CD等。
网络层
网络层解决的核心问题是如何将分组通过交换网络传送至目的主机,因此,网络层的主要功能是数据转发与路由。
在交换网络中,信息从源结点出发要经过若干个中继结点的存储转发后,才能到达目的结点。这样一个包括源结点、中继结点、目的结点的集合称为从源结点到目的结点的路径。一般在两个结点之间都会有多条路径选择,这种路由选择是网络要完成的主要功能之一。
当网络设备,比如路由器,从一个接口收到数据分组时,需要根据已掌握的路由信息将其转发到合适的接口并向下一个结点发送,直至送达目的结点。
此外,网络层还要对进入交换网络的通信量加以控制,以避免通信量过大造成交换网络性能下降。
当然,和数据链路层类似,网络层也要具备寻址功能,确保分组可以被正确传输到目的主机。比如Internet 网络中的IP地址。
传输层
传输层是第一个端到端的层次,也是进程到进程的层次。
数据的通信表面上看是在两台主机之间进行,但实质上是发生在两个主机的进程之间。OSI 参考模型的前三层(自下而上)可组成公共网络,被很多设备共享,并且计算机——交换结点(典型的交换结点是路由器、交换机等)、交换结点——交换结点是按照“接力”方式传送的。为了防止传送途中报文的丢失,两个主机的进程之间需要实现端到端控制。
因此,传输层的功能主要包括复用/分解(区分发送和接收主机上的进程)、端到端的可靠数据传输、连接控制、流量控制和拥塞控制机制等。
会话层
会话层是指用户的连接,通过在两台计算机间建立、管理和终止通信来完成对话。会话层的主要功能:
-
在建立会话时核实双方身份是否有权参加会话;
-
确定双方支付通信费用;
-
双方在各种选择功能方面(如全双工还是半双工通信)取得一致;
-
在会话建立以后,需要对进程间的对话进行管理与控制。例如,对话过程中某个环节出了故障,会话层在可能条件下必须保存这个对话的数据,使数据不丢失,如不能保留,那么终止这个对话,并重新开始。
在实际的网络中,会话层的功能已经被应用层所覆盖,很少单独存在。
表示层
表示层主要用于处理应用实体间交换数据的语法,其目的是解决格式和数据表示的差别,从而为应用层提供一个一致的数据格式,使字符、格式等有差异的设备之间相互通信。
除此之外,表示层还可以实现文本压缩/解压缩、数据加密/解密、字符编码的转换等功能。
这一层的功能在某些实际数据通信网络中是由应用层来实现的,而且表示层不独立存在。
应用层
应用层与提供给用户的网络服务相关,这些服务非常丰富,包括文件传送、电子邮件、P2P应用等。应用层为用户提供了一个使用网络应用的“接口”。
5.3、TCP/IP参考模型
在实际应用的网络中,几乎没有严格按照OSI参考模型构建的。OSI参考模型的重要意义在于它是一种计算机网络的理论体系结构,是目前学习、讨论计算机网络的一种工具,能够从理论上很好地解释网络概念、层次与通信过程,是学习计算机网络必须学习和掌握的内容。
作为最大、最重要的计算机网络——因特网的体系结构则可以用TCP/IP参考模型进行描述。TCP/IP参考模型包括4层,通常每—层封装的数据包采用不同的名称,如下图所示。
下面介绍 TCP/IP参考模型各层的主要功能及主要协议。
(1)应用层
TCP/IP参考模型将 OSI 参考模型中会话层和表示层的功能合并到了应用层来实现。在Internet上常见的一些网络应用大多在这一层,用户通过应用层来使用 Internet 提供的各种服务,例如,WWW服务、文件传输、电子邮件等。每一种应用都使用了相应的协议来将用户的数据(网页、文件、电子邮件等)按照协议定义的格式进行封装,以便达到对应的控制功能,然后再利用下一层即传输层的协议进行传输,例如,WWW 服务的应用层协议是HTTP、文件传输的应用层协议是FTP、电子邮件应用层协议包括 SMTP和POP3 等。每一个应用层协议一般都会使用到两个传输层协议进行数据传输:面向连接的传输控制协议TCP和无连接的用户数据报协议UDP。
(2)传输层
当应用层的程序将用户数据按照特定应用层协议封装好后,接下来就由传输层的协议负责把这些数据传输到接收方主机上对等的应用层程序。传输层协议为运行在不同主机上的进程提供了一种逻辑通信机制,之所以叫作逻辑通信,是因为两个进程之间的通信就像所在的两个主机存在直接连接一样。其实,两个主机可能相距很远,两者的物理连接可能经过了多个交换机/路由器,传输路径可能由不同类型的物理链路组成。利用这种逻辑通信机制,两个进程可以不用考虑两者之间的物理连接方式而实现发送/接收消息。传输层协议可以解决(如果需要)诸如端到端可靠性,保证数据按照正确的顺序到达等问题。实际上,传输层负责在网络层和应用层之间传递消息,丝毫不会涉及消息如何在网络中传输,这个任务交给下面的网络互联层去解决。TCP/IP参考模型的传输层主要包括面向连接、提供可靠数据流传输的传输控制协议TCP和无连接不提供可靠数据传输的用户数据报协议 UDP。
(3)网络互联层
网络互联层是整个TCP/IP参考模型的核心,主要解决把数据分组发往目的网络或主机的问题。在这个过程中,要为分组的传输选择相应的路径(路由选择),完成分组的转发,提供网络层寻址——IP地址。网络互联层除了需要完成路由的功能外,也可以完成将不同类型的网络(异构网)互连的任务。在 TCP/IP参考模型中,网络互联层的核心协议是IP,负责定义分组的格式和传输。IP是无连接不可靠网络协议,因此,IP分组到达的顺序和发送的顺序可能不同,并且可能存在分组丢失现象。网络互联层还包括互联网控制报文协议ICMP、互联网多播组管理协议IGMP以及路由协议,如BGP、OSPF和RIP等。
(4)网络接口层
实际上,TCP/IP 参考模型没有真正描述这一层的实现,只是要求能够提供给其上层——网络互联层一个访问接口,以便在其上传递IP分组。由于这一层未被定义,所以其具体的实现方法将随着网络类型的不同而不同。实际上,这一层对应OSI参考模型中的数据链路层和物理层,网络层 IP分组在这一层被封装到底层网络的链路层数据帧中,并最终以比特流形式在物理介质上进行传输。
5.4、五层参考模型
对比TCP/IP参考模型与OSI参考模型,TCP/IP参考模型缺少OSI参考模型中功能比较少的表示层和会话层,而 TCP/IP 参考模型的网络接口层则相当于合并了 OSI 参考模型的数据链路层和物理层。结合这两个参考模型,可以提出综合理论需求与实际网络的五层参考模型,包括物理层、数据链路层、网络层、传输层与应用层,各层功能基本与 OSI 参考模型对应。这是近年来,在描述计算机网络中最常用、最接近实际网络的参考模型。
接下来,我们通过下图,说明应用进程的数据在各层之间传递过程中所经历的变化。
这里假定两台主机通过一台路由器连接起来,主机1的应用进程AP1向主机2的应用进程AP2传送数据,其过程如下:
-
AP1先将其数据交给本主机的第5层(应用层)。数据在第5层被加上必要的控制信息H5就变成了这一层的数据单元,并被交给下层。第4层(运输层)收到这个数据单元后,加上本层的控制信息H4构成本层的数据单元,再交给第3层(网络层)。依此类推。不过到了第2层(数据链路层)后,控制信息被分成两部分,分别加到本层数据单元的首部(H2)和尾部(T2),而第1层(物理层)利用传输媒体最终将数据链路层数据单元的所有比特以比特流的形式进行传送。
-
这一串比特流离开主机1经网络的物理传输媒体传送到路由器后,就从路由器的第1层依次上升到第3层。每一层都根据控制信息进行必要的操作,然后将控制信息剥去,将剩下的数据单元上交给更高的一层。当分组上升到第3层时,该层根据首部中的目的地址查找路由器中的路由表,找出转发分组的接口,然后将分组往下传送到第2层,加上新的首部和尾部后,再传送到最下面的第1层,然后在物理传输媒体上把每一个比特发送出去。
-
这一串比特流离开路由器到达目的站主机2后,就从主机2的第1层按照上面讲过的方式,依次上升到第5层。最后,应用进程AP1
发送的数据被交给目的站的应用进程AP2。
可以用一个简单例子来比喻上述过程。有一封信从最高层向下传,每经过一层就包上一个新的信封,写上必要的地址信息。包有多个信封的信件传送到目的站后,从第1层起,每层拆开一个信封后把信封中的信交给它的上一层。传到最高层后,发信人所发的信被交给收信人。
虽然应用进程数据要经过上图所示的复杂过程才能送到目的站的应用进程,但这些过程对用户来说都被屏蔽掉了,以致看上去就好像是。应用进程AP1直接把数据交给了应用进程AP2。同理,任何两个同样的层次(如两个系统的第4层)之间,看上去也如同上图中的水平虚线所示的那样,将数据(即数据单元加上控制信息)直接传递给了对方。这就是所谓的“对等层(Peer Layers)”之间的通信。
5.5、相关术语
OSI 参考模型中每一层的真正功能是为其上一层提供服务。例如,N层的实体为(N+1)层的实体提供服务,N 层的服务则需要使用(N-1)层以及更低层提供的功能服务。下面介绍OSI参考模型中常用的几个术语。
数据单元
在层的实体之间传送的比特组称为数据单元。在对等层之间传送数据单元是按照本层协议进行的,因此,这时的数据单元称为协议数据单元(PDU)。
图1.14显示出了层间数据单元的传送过程,其中 PDU 是协议数据单元,SDU 是服务数据单元,PCI 是协议控制信息,通常作为PDU的首部。 (N+1)-PDU 在越过N+1和N层的边界之后,变换为N-SDU (N层把(N+1)-PDU看成为N-SDU)。N层在N-SDU上加上N-PCI,则成为N-PDU。在N-PDU和(N+1)-PDU 之间并非是一对应的关系。如果N层认为有必要,可以把(N+1)-PDU 拆成几个单位,加上PCI 后成为多个N-PDU,或者可以把多个(N+1)-PDU 合并起来,形成一个N-PDU。
到达目的站的 N-PDU,在送往(N+1)层之前要把 N-PCI去掉。在层间通信中 PCI 相当于报头,即首部,如图1.14所示。在源点逐层增加新的 PCI,到达目的地之后则逐层去掉,使得原来的信息结构得以恢复。
值得指出的是,PDU 在不同层往往有不同的叫法,如在物理层称为位流或比特流,在数据链路层称为帧,在网络层中称为分组或包,在传输层中称为数据段或报文段,在应用层中称为报文等。
服务访问点
相邻层间的服务是通过其接口面上的服务访问点(Service Access Point, SAP)进行的,N层SAP就是(N+1)层可以访问N层的地方。每个SAP都有一个唯一的地址号码。
服务原语
第N层向(N+1)层提供服务,或第(N+1)层请求N层提供服务,都是用一组原语(Primitive)描述的。OSI参考模型的原语有4类,分别如下。
-
请求(Request) :用户实体请求服务做某种工作。
-
指示(Indication) :用户实体被告知某件事发生。
-
响应(Response:用户实体表示对某件事的响应。
-
证实(Confirm) :用户实体收到关于它的请求的答复。
这4类原语的图解形式如图1.15所示。在通信过程的3个阶段中,每个阶段都可能到一些或全部原语。
图1.15说明系统A中N+1 层用户和系统B中N+1 层用户之间建立通信联系时4种类型原语的应用。首先,系统A中N+1用户发出请求原语,调用本系统 N服务提供者的一些程序,于是N服务提供者向对方发送一个或一组N-PDU。当系统B的N服务提供者收到N-PDU之后,向本系统的 N+1 用户发出指示原语,说明系统B的N+1用户需要调用一些程序,或者N服务提供者已经在同级服务访问点调用了一个程序。
响应原语是由系统 B的N+1用户发出的,这个响应原语是对N层协议的一个指令,以完成原来由指示原语调用的程序。N层协议产生一个 PDU,传送至系统A的N层。系统A的N服务提供者发出证实原语,表示在服务访问点已经完成了由请求原语调用的程序。证实和响应可以是确认也可以否认,这取决于具体情况。
面向连接的服务和无连接的服务
在分层的体系结构中,层向上层提供服务通常有两种形式:面向连接的服务和无连的服务。
面向连接的服务以电话系统最为典型,要和某人通话,拿起电话——拨号码——接通——通话——挂断。某一方欲传送数据,首先给出对方的全称地址,并请求建立连接,当双方同意后,双方之间的通信链路就建立起来。第二步是传送数据,通常以分组为单位,按序传送,不再标称地址,只标称所建立的链路号,并由收方对收到的分组予以确认,称为可靠传送方式;不确认则称为不可靠传送方式。第三步当数据传送结束后,拆除链路。
无连接的服务没有建立和拆除链路的过程,例如,邮政系统的用户在发送信件之前并不需要与收信方进行任何消息交换。无连接的服务又称为数据报(Datagram)服务,要求每一分组信息带有全称地址,独立选择路径,其到达目的地的顺序也是不定的,到达目的地后还要重新对分组进行排序。