目录
- 互联网边缘部分和核心部分的作用,其中包含分组交换的概念。
- 计算机网络的性能指标。
- 计算机网络分层次的体系结构,包含协议和服务的概念。
一、计算机网络在信息时代的作用
有三大类很熟悉的网络:电信网络、有线电视网络、计算机网络。
Internet的中文译名有两种:(1)因特网(2)互联网。
对于仅在局部范围互连起来的计算机网络,只能称之为互连网。
互联网的两个重要基本特点:连通性、共享。
连通性。就是互联网上的用户不管距离多远,都可以方便,快捷地交换各种信息,好像这些用户终端彼此直接连通一样。
共享。就是指资源共享。
二、互联网概述
1.网络的网络
网络、互连网、因特网。
计算机网络由若干节点的链路组成。网络中的节点可以是计算机、集线器、交换机或路由器等。
下图(a)是一个具有四个节点和三条链路的网络,三条计算机通过三条链路连接到一个集线器上。这是一个简单的计算机网络。
下图(b),有多个网络通过一些路由器互连接起来,构成一个覆盖范围更大的计算机网络。这种网络称为互连网。因此互连网是“网络的网络”。
注意,用一朵云表示网络时,有两种不同情况。一种是1-1(a),用云表示网络已经包含了网络的计算机。一种是,为了讨论问题方便,把有关计算机画在云的外面,如下图所示。
习惯上,与网络相连的计算机称为主机。在互连网中不可缺少的路由器,是一种特殊的计算机(有中央处理器、存储器、操作系统等),但不能称为主机。
网络把许多计算机连接在一起。互连网则是把许多网络通过一些路由器连接在一起。
与网络相连的计算机常称为主机。
2. 互连网基础结构发展的三个阶段
这三个阶段不是截然分开的,而是有部分重叠。
第一阶段是,从单个网络ARPANET向互连网发展的过程。
- internet(互连网),是一个通用名词,泛指多个计算机网络互连而成的计算机网络。
- Internet(互联网),是一个专用名词,之当前全球最大的、开放的、由众多网络相互连接而成的特定互连网,采用TCP/IP协议族作为通信的规则,其前身是美国的ARPANET。
任意把几个计算机网络连起来,不管采用什么协议,并能相互通信。这样构成的是一个互连网,而不是互联网。
第二阶段的特点是,三级结构的互连网。1985年开始,美国NSF基金会就围绕六个大型计算机中心建设计算机网络,即国家科学基金网NSFNET。它是一个三级计算机网络,分为主干网、地区网和校园网(或企业网)。这种网络仅限于主要的大学和研究所,后来不断扩大。
为什么使用这种三级结构,因为互连网必须能够让连接到互连网的所有用户都可以相互通信。但一个普通的校园网或企业网单靠本身不可能做到这一点,投资太大。于是就有了上面两层的地区网和主干网。地区网可以完成本地区管辖范围内各校园网或企业网之间的相互通信,而主干网可以使不同地区之间的用户互相通信。
第三阶段的特点是,逐渐形成了全球范围的多层次ISP结构的互连网。美国资助的NSFNET逐渐被若干个商用的互联网主干网替代,而政府不再负责互联网的运营。就出现了一个新名词:互联网服务提供者ISP(Internet Service Provider),通常就是一个进行商业活动的公司,也常称为互联网服务提供商。例如中国电信,联通,移动都是ISP。
互联网服务提供者ISP可以从互联网管理机构申请很多IP地址,同时有通信线路以及路由器等连网设备。因此机构和个人只要向某个ISP缴纳费用,就可以从该ISP获取所需IP地址的租用权,接入互联网(“上网”)。IP地址的管理机构不会把单个的IP地址零星地分配给单个用户,而是把整块地IP地址租凭给ISP。现在的互联网是无数大大小小的ISP所共同拥有的,互联网也成为“网络的网络”。
根据提供的服务大小和拥有的IP地址数目的不同,ISP也分为不同层次的ISP:主干ISP、地区ISP和本地ISP。如下图所示。
随着互联网上的数据流量增长,人们开始研究如何更快地转发分组,以及如何有效的经济的利用网络资源。于是,互联网交换点IXP就应运而生了。
互联网交换点IXP的主要作用是,允许两个网络直接相连并交换分组,而不需要再通过第三个网络来转发分组。
例如,上图右方的两个地区ISP通过一个IXP连接起来了。这样,主机A和主机B交换分组时,不必再经过最上层的主干ISP,而是直接在两个地区ISP之间用高速链路对等地交换分组。节省了时间,降低了费用。
IXP结构复杂。典型的IXP由一个或多个网络交换机组成,许多ISP再连接到这些网络交换机的相关端口上。IXP常采用工作在数据链路层的网络交换机,这些网络交换机都用局域网互连起来。
当前互联网上最主要的流量就是视频文件的传送。上图左上角的内容提供者是在互联网上向所有用户提供视频文件的公司。这种公司和前面的ISP不同,他们并不向用户提供互联网的转接服务,而是提供视频内容的服务。由于视频文件大,这些公司都由独立于互联网的专门网络,并能够和各级ISP和IXP相连。ISP和会提供一些信息服务和增值服务。
由欧洲原子核研究组织CERN开发的万维网WWW被广泛使用在互联网上。
3. 互联网的标准化工作
互联网不再归美国管辖,因此成立了一个国际性组织叫互联网协会(Internet Society,W-ISOC)ISOC下面还有一个技术组织叫互联网体系结构委员会IAB,负责管理互联网有关协议的开发。IAB下面有两个工程部:
(1)互联网工程部IETF (2)互联网研究部IRTF
互联网在指定其标准上,一个很大特点是面向公众。所有的互联网标准都是以RFC的形式在互联网撒谎给你发表的。RFC(Request For Comments)意思是“请求评论”。所有的RFC文档都可以从互联网免费下载,可用电子邮件发表对文档的意见。但只有很少部分的RFC文档最后才能变成互联网的标准。RFC按发表的时间的先后编上序号。一个RFC会更新,旧的RFC不会删除,会永远保存。
制定互联网的正式标准要经过以下三个阶段:
1.互联网草案。这个阶段还不是RFC文档。
2.建议标准。这个阶段开始称为RFC文档。
3.互联网标准。一个互联网标准可以和多个RFC文档关联。
三、互联网的组成
互联网可划分为以下两大块:
- 边缘部分,由所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享。
- 核心部分,由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)。
1. 互联网的边缘部分
处在互联网边缘的部分就是连接在互联网上的所有的主机。这些主机又称为端系统。
端系统在功能上有很大差别,小的端系统可以是一台个人电脑,一部手机,一个网络摄像头。大的端系统可以是大型计算机(通常称为服务器)。
端系统的拥有者可以是个人,单位,也可以是某个ISP。边缘部分利用核心部分提供的服务,使众多主机之间能够相互通信并交换或共享信息。现在大部分服务武器已不是一个孤立的服务器,而是一个大型数据中心。
如果说“主机A和主机B进行通信“,实际上是指:“运行在主机A上的某个程序和运行在主机B上的另一个程序进行通信”。由于“进程”就是“运行着的程序",因此也就是指”主机A的某个进程和主机B上的另一个进程进行通信“。通常简称为”计算机之间通信“。
网络边缘的端系统之间的通信方式通常可以划分为两大类:
- 客户-服务器方式(C/S方式)
- 对等方式(P2P方式)。
客户-服务器方式
客户和服务器都是指通信中所涉及的两个应用进程。客户是服务请求方,服务器是服务提供方。
服务请求方和服务提供方都要使用网络核心部分所提供的服务。
客戶程序:
- 被用户调用后运行,通信时主动向远地服务器发起通信(请求服务)。因此,客户程序必须知道服务器程序的地址。
- 不需要特殊的硬件和很复杂的操作系统。
服务器程序
- 一种专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求。
- 系统启动后一直不断运行着,被动的等待并接受来自各地的客户的通信请求。因此服务器程序不需要知道客户程序的地址。
- 一般需要强大的硬件和高级的操作系统支持。
客户与服务器的通信关系建立后,通信可以是双向的,客户和服务器都可发送和接受数据。
注意,上述说的客户和服务器本来都指的是计算机进程(软件)。
对等连接方式
对等连接(P2P,peer-to-peer)是指两台主机在通信时,并不区分哪一个是服务请求方和哪一个是服务提供方。只要两台主机都运行了对等连接软件(P2P软件),它们就可以进行平等的对等连接通信。对等连接从本质上看仍然使用客户-服务器方式,只是对等连接中的每一台主机即使客户同时又是服务器。
2. 互联网的核心部分
网络的核心部分向网络边缘部分中的大量主机提供连通性,是边缘部分的任何一台主机都能够与其他主机通信。
在网络核心部分其特殊作用的是路由器,它是一种专用计算机。路由器是实现分组交换的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。
电路交换的主要特点
两部电话相连要1跟线,N部电话相连要N(N-1)/2对电线。为了方便,使用电话交换机将这些电话连接起来。电话交换机的交换方式一直是电路交换。
当电话机增多时,就要使用很多彼此连接起来的交换机来完成全网的交换任务。用这样的方法,就构成了覆盖全世界的电信网。
从通信资源的分配角度来看,交换就是按照某种方法动态地分配传输线路的资源。使用电路交换之前,先拨号请求建立连接。当被叫用户听到交换机送来的振铃声并摘机后,从主机端到被叫端就建立了一条连接,也就是一条专用的物理线路。这条连接保证了双方通话时所需的通信资源,而这些资源在双方通信时不会被其他用户占用。通话完毕后,交换机才释放使用的这条专用的物理通路。这种必须经过”建立连接“,"通话","释放连接"三个步骤的交换方式称为电路交换。
用户线是电话用户到所连接的市话交换机的连接线路,使用户独占的传送模拟信号的专用线路。而交换机之间拥有大量话路的中继线(这些传输线路早已都被数字化了)则是许多用户共享的,正在通话的用户只占用了中继线里的一个话路。电路交换的重要特点是,在通话的全部时间内,通话的两个用户始终占用端到端的通信资源。
当使用电路交换来传送计算机数据时,其线路的传输效率往往很低。这是因为计算机数据是突发式地出现在传输线路上的,因此线路上真正用来传送数据的时间往往不到10%甚至1%。已被用户占用的通信线路资源在绝大部分时间里都是空闲的。例如,当用户阅读终端屏幕上的信息或编辑一份文件时,宝贵的通信线路资源并未被利用而是白白浪费了。
分组交换的主要特点
分组交换采用存储转发技术。
下图表示把一个报文划分为几个分组后在进行传送。通常把要发送的整块数据称为一个报文。在发送报文之前,先把较长的报文划分为一个个更小的等长数据段。
例如,每个数据段为1024bit。在每一个数据段前面,加上一些必要的控制信息组成的首部后,就构成了一个分组。分组又称为”包“,而分组的首部也可称为”包头“。分组是在互联网中传送的数据单元。分组中的”首部“是非常重要的,正是由于分组的首部包含了诸如目的地址和源地址等重要控制信息,每一个分组才能在互联网中独立地选择传输路径,并被正确地交付到分组传输的终点。
下图强调互联网的核心部分是由许多网络和把它们互连起来的路由器组成的,而主机处在互联网的边缘部分。在互联网核心部分的路由器之间一般都用高速链路相连接,而在网络边缘部分的主机接入到核心部分则通常以相对较低速率的链路相连接。
主机是为用户进行信息处理的;路由器用来转发分组,即进行分组交换。路由器收到一个分组,先暂时存储一下,检查其首部,查找转发表,按照首部中的目的地址,找到合适的接口转发出去,把分组交给下一个路由器。这样一步一步地以存储转发的方式,把分组交付最终的目的主机。各路由器之间必须经常交换彼此掌握的路由信息,以便创建和动态维护路由器中的转发表,使得转发表能够在整个网络拓扑发生变化时及时更新。
当讨论互联网的核心部分中的路由器转发分组的过程时,往往把单个的网络简化成一条链路,而路由器称为核心部分的节点,如上图b。
加入主机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。在网络中可同时有堕胎主机进行通信,如主机H2也可以经过路由器B和E与主机H6通信。
注意,路由器暂时存储的是一个个短分组,而不是整个的长报文。短分组时暂存在路由器的存储器(即内存)中而不是存储在磁盘中的。这就保证了较高的交换效率。
图中只花了H1和H5进行通信。实际上,互联网可以容许非常多的主机同时进行通信,而一台主机中的多个进程也可以各自和不同主机中的不同进程进行通信。
注意,分组交换在传送数据之前不必先占用一条端到端的通信资源。分组在哪段链路上传送才占用那段链路的通信资源。分组到达一个路由器后,先暂时存储下来,查找转发表,然后从另一条合适的链路转发出去。分组在传输时就这样逐段地断续占用通信资源,且省去了建立连接和释放连接的开销,因而数据的传输效率更高。
互联网采用了专门的措施,保证了数据到传送具有非常高的可靠性。当网络中的某些节点或链路突然出故障时,在各路由器中运行得路由选择协议能够自动找到转发分组最合适的路径。
以上可知,采用存储转发的分组交换,实质上是采用了在数据通信的过程中断续(或动态)分配传输宽带的策略。这对传送突发式的计算机数据非常合适,使得通信线路的利用率大大提高了。
为了提高分组交换网的可靠性,互联网的核心部分常采用网状拓扑结构,使得当发生网络拥塞或少数节点、链路出现故障时,路由器可灵活地改变转发路由而不致引起通信的终端或全网的瘫痪。此外,通信网络的主干线路往往由一些高速链路构成,这样就可以较高的数据率迅速地传送计算机数据。
分组交换的优点:
分组交换也带来了一些新问题。例如,分组在各路由器存储转发时需要排队,这就会造成一定时延。此外,由于分组交换不像电路交换那样通过建立连接来保证通信时所需的各种资源,因而无法确保通信时端到端所需的带宽。
分组交换带来的另一个问题是各分组必须携带的控制信息也造成了一定的开销。整个分组交换网还需要专门的管理和控制机制。
电报通信也采用了基于存储转发原理的报文交换。下图演示了电路交换、报文交换和分组交换的主要区别。途中A和D是源点和终点,B、C是中间点。
- 电路交换-整个报文的比特流连续地从源点直达终点。
- 报文交换-整个报文先传送到相邻节点,全部存储下来后查找转发表,转发到下一个节点。
- 分组交换-单个分组(这只是整个报文的一部分)传送到相邻节点。存储下来后查找转发表,转发到下一个节点。
过去认为:电路交换适合于话音通信,分组交换适合于数据通信。但随着蜂窝移动通信的发展,这总概念发生了变化。第四代蜂窝移动通信开始,无论是话音通信还是数据通信,都要采用分组交换。
四、计算机网路的类别
1. 计算机网络的定义
计算机网络的精确定义并未统一。
计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一个特定目的(如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的和数据,并能支持广泛的和日益增长的应用。
2. 几种不同类别的计算机网络
按照网络的作用范围进行分类
1. 广域网WAN
有时称为远程网,广域网是互联网的核心部分,任务是长距离运送主机所发送的数据。连接广域网各节点交换机的链路一般都是高速链路,具有较大的通信容量。
2. 城域网MAN
目前很多城域网采用的是以太网技术。有时也常并入局域网范围进行讨论。
3. 局域网LAN
局域网一般用微型计算机或工作站通过高速通信线相连,但地理范围较小。
4. 个人区域网PAN
个人区域网就是个人工作的地方把属于个人使用的电子设备用无线技术连接起来的网络,也常称为无限个人区域网。若中央处理机之间的距离非常近,则一般就称之为多处理机系统不称它为计算机网络。
按照网络的使用者进行分类
1. 公用网
这是指电信公司出资建造的大型网络,所以按规定缴费的人都可以使用这种网络。公用网也可称为公众网。
2. 专用网
这是某个部门为满足单位的工作需求建造的网络。
用来把用户接入到互联网的网络
这种网路就是接入网,又称为本地接入网或居民接入网。这是一种特殊的计算机网络,用户必须通过ISP才能接入互联网。用户必须通过本地ISP才能接入互联网。本地ISP可以使用多种接入网技术把用户的端系统连接到互联网。接入网实际上就是本地ISP所拥有的网络,既不是互联网的核心部分,也不是边缘部分。接入网由某个端系统连接到本地ISP的第一个路由器之间的一些物理链路所组成。作用于上看,接入网只是起到让用户能够与互联网连接的“桥梁”作用。现在出现了多种的宽带接入技术。
五、计算机网络的性能
计算机网络的性能一般指它的几个重要的性能指标。但除了这些重要的性能指标,还有一些非性能特征对计算机性能也有很大影响。
1. 计算机网络的性能指标
从7个性能指标来度量计算机网络的性能。
速率
计算机发送的信号都是数字形式的。比特的意思是一个“二进制数字”,就是一个1或0。比特是信息论中使用的信息量的单位。网络技术中的速率指的是数据的传送速率,它也称为数据率或比特率。速率的单位是bit/s(也称为bps,pbit per second)。数据率较高时,就常常在bit/s前加上一个字母。例如,k=千,M=兆,G=,T=
。这样,4*
bit/s的数据率就记为40Gbit/s。注意,提到网络的速率,往往指的是额定速率或标称速率,而并非网络实际运行的速率。
带宽
“带宽”有以下两种不同的意义:
- 带宽本来是指某个信号具有的频带宽度。信号的带宽是指该信号所包含的各种不同的频率成分所占据的频率范围。例如,在传统的通信线路上传送的电话信号的标准带宽是3.1kHz。这种意义的带宽的单位是赫。过去很长一段时间,通信的主干线路传送的是模拟信号(连续变化的信号)。因此,表示某信道允许通过的信号频带范围就称为该信道的带宽(或通频带).
- 在计算机网络中,带宽用来表示网络中某通道传送数据的能力,因此网络带宽表示在单位时间内网络中的某通道所能通过的“最高数据率”。这种意义的带宽的单位就是数据率的单位bit/s.
上述两个表述中,前者为频域称为,后者为时域称谓,本质上是相同的。也就是说,一条通信链路的“带宽”越宽,其所能传输的“最高数据率”也越高。
吞吐量
吞吐量表示在单位时间内通过某个网络(或信道、接口)的实际数据量。吞吐量经常用于对现实世界的网络二额一种测量,以便知道实际上到底有多少数据量能够通过网络。显然,吞吐量受网络带宽或网络额定速率的限制。例如,对于一个1Gbit/s的以太网,就是说其额定速率是1Gbit/s,那么这个数值也是该以太网的吞吐量的绝对上限值。因此,对1Gbit/s的以太网,其实际的吞吐量可能只有100Mbit/s,甚至更低,并没有打到其额定速率。注意,有时吞吐量还可用每秒传送的字节数或帧数来表示。
接入到互联网的主机的实际吞吐量,取决于互联网的具体情况。加入主机A和服务器B接入到互联网的链路速率分别是100Mbit/s和1Gbit/s。如果互联网的各链路的容量都足够大,那么当A和B交换数据时,其吞吐量显然是100Mbit/s。这是因为,尽管服务器B能够以超过100Mbit/s的速率发送数据,但主机A最高只能以100Mbit/s的速率接受数据。现假定有100个用户同时连接到服务器B。这种情况下,服务器B连接到互联网的链路被100个用户平分,每个用户平均只能分到100Mbit/s的带宽。这是,主机A连接到服务器B的吞吐量就只有100Mbit/s了。
最糟糕的情况是,如果互联网某处发生了堵塞,则可能导致主机A暂时收不到服务器发来的数据,因而主机A的吞吐量下降到零。主机A的用户会想,向运营商ISP交了速率为100Mbit/s的宽带接入费用,但没有保证这个速率,因为交的宽带费用,只是保证了从家里到运营商ISP的某个路由器之间的数据传输速率。再往后的速率取决于整个互联网的流量分布了。
时延
时延是指数据从网络的一端传送到另一端所需的时间。有时也成为延迟或迟延。
网络中的时延有以下及部分组成:
(1)发送时延
发送时延是主机或路由器发送数据帧所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。因此发送时延也叫作传输时延。发送时延的计算公式是:
(2)传播时延
传播时延是电磁波在信道中传播一定的距离需要花费的时间。传播时延的计算公式是:
电磁波在自由空间的传播速率是光速,在网络传输媒体中的传播速率比在自由空间略低一些。
以上两种时延又被之上的不同(两种时延发生的地方不一样)。发送时延发生在机器内部的发送器中(一般就是发生在网络适配器中),与传输信道的长度(或信号传送的距离)没有任何关系。但传播时延则发生在机器外部的传输信道媒体上,而与信号的发送速率无关。信号传送的距离越远,传播时延就越大。
(3)处理时延
主机或路由器在收到分组时要花费一定的时间进行处理,例如分析分组的首部、从分组中提取数据部分、进行差错检验或查找转发表等。这就产生了处理时延。
(4)排队时延
分组在经过网络传输时,要经过许多路由器。但分组在进入路由器后要先在输入队列中排队等待处理。在路由器确定了转发接口后,还要在队列中排队等待转发。这就产生了排队时延。排队时延的长短往往取决于网络当时的通信量。当网络的通信量很大时会发生队列溢出,使分组丢失,这相当于排队时延为无穷大。
这样,数据在网络中经历的总时延就是以上四种之和:
一般小时延的网络优于大时延的网络。某些情况下,一个低速率、小时延的网络可能优于一个高速率但大时延的网络。下图是几种时延产生的地方:
在总时延中,那种时延占主导地位,必须具体分析。例如,现在暂时忽略处理时延和排队时延。有一个长度为100MB的数据块。在带宽为1Mbit/s的信道上连续发送,其发送时延是
现在把这个数据块用光纤传送到1000km远的计算机。由于在1000km的光纤上的传播时延为5ms,因此这种情况下,发送100MB的数据块的总时延 = 838.9 + 0.005 ≈ 8.394s,缩小到原有数值的1/100.
但是,并非任何情况下,提高发送速率就能减小总时延。例如,要发送的数据仅有1个字节。当发送速率为1Mbit/s时,发送时延是:
若传播时延仍为5ms,则总时延为5.008ms。这种情况下,传播时延决定了总时延。如果把数据率提高到1000被,总时延仍是5ms,没有减小。
错误概念:在高速链路上,比特会传送的更快些。这是错误的,对于高速网络链路,提高的仅仅是数据的发送速率而不是比特在链路上的传播速率。荷载信息的电磁波在通信线路上的传播速率取决通信线路的介质材料,而与数据的发送速率并无关系。提高数据的发送速率只是减小了数据的发送时延。还有就是,数据的发送速率的单位是每秒发送多少个比特,这是指在某个点或某个接口上的发送速率。而传播速率的单位是每秒传播多少公里,是指在某一段传输线路上比特的传播速率。因此,通常说的“光纤通道的传输速率高”是指可以用很高的速率向光纤信道发送数据,而光纤信道的传播速率实际上还要比铜线的传输速率略低一些。
时延带宽积
把以上讨论的网络性能的两个度量-传播时延和带宽-相乘,就得到另一个度量:传播时延带宽积,即:
可以用下图来表示时延带宽积。这是一个代表链路的圆柱形管道,管道的长度是链路的传播时延(注意,现在以时间作为单位表示链路长度),而管道的截面积是链路的带宽。因此时延带宽积就表示这个管道的体积,表示这样的链路可容纳多少个比特。例如,设传播时延为20ms,带宽为10Mbit/s,算出:
这就表明,若发送端连续发送数据,则在发送的第一个比特即将到达终点时,发送端就已经发送了20万个比特,而这20万个比特都正在链路上向前移动。因此,链路的时延带宽积又称为以比特为单位的链路长度。
往返时间RTT
计算机网络中,往返时间RTT(Round-Trip Time)也是重要性能指标。因为许多情况下,互联网上的信息不仅仅单方向传输而是双向交互的。因此,有时需要知道双向交互一次所需的时间。例如,A向B发送数据。如果数据长度是100MB,发送数据是100Mbit/s,那么
假定B真确收完100MB的数据后,就立即向A发送确认。再假定A只有再收到B的确认信息后,才能继续向B发送数据。显然,这就要等待一个往返时间RTT。如果RTT = 2s,可算出A向B发送数据的而有效数据率。
比原来的数据率100Mbit/s小不少。
在互联网中,往返时间还包括各中间节点的处理时延、排队时延以及转发数据时的发送时延。当使用卫星通信时,往返时间RTT相对较长。
在计算机网络文献中,也有把RTT的往返时延的,强调发送方至少要经过这样多的时间,才能知道自己所发送的数据是否被对方接受了。还有的文献把带宽时延积定义为带宽与RTT的乘积。这样定义的数值就比前面定义的数值打了一倍。这样定义的带宽时延积表示,如果发送方以最高发送速率连续发送数据,而接收方一收到数据就立即发送对收到数据的确认,那么发送方收到这个确认时,已经发送出的数据量就是按这种定义的带宽时延积。
利用率
利用率有信道利用率和网络利用率两种。信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道利用率为零。网络利用率则是网络的信道利用率的加权平均值。信道利用率并非越高越好。因为,根据排队理论,当某信道的利用率增大时,该信道引起的时延也就迅速增加。这和高速公路情况类似。当网络的通信量很少时,网络产生的时延并不大。但在网络通信量不断增大的情况下,由于分组在网络节点(路由器或节点交换机)进行处理时需要排队等候,因此网络引起的时延就会增大。如果令表示网络空闲时的时延,D表示网络当前的时延(利用率为U),那么在适当的假定条件下,可以用下面公式表示D和
和利用率U之间的关系:
U是网络利用率,数值在0到1之间。网络利用率达到其容量的1/2时,时延就要加倍。注意:当网络利用率接近最大值1时,网络产生的时延就趋于无穷大。信道利用率或网络利用率过高就会产生非常大的时延。如下图。因此,一些拥有较大主干网的ISP通常控制信道利用率不超过50%。如果超过了就准备扩容,增大线路的带宽。
2. 计算机网络的非性能特征
1)费用
网络费用越高,价格越高。
2)质量
网络性能与网络质量不是一回事。例如一些性能一般的网络,过一会就故障,无法工作,质量不好
3)标准化
4)可靠性
5)可扩展性和可升级性
6)易于管理和维护
六、计算机网络体系结构
1. 计算机网络体系结构的形成
计算机网络是个复杂的系统。设想一种简单情况:连接在网络上的两台计算机要互相传送文件。
显然,这两台计算机之间需要一条传送数据的通路。但这远远不够,至少有以下几项工作:
- 发起通信的计算机必须将数据通信的通路激活。所谓“激活”就是要发出一些信令,保证要传送的计算机数据能在这条通路上正确发送和接收。
- 告诉网络如何识别接受数据的计算机。
- 发起通信的计算机必须查明对方计算机是否已开机,并且与网络连接正常。
- 发起通信的计算机中的引用程序必须清楚,在对方计算机中的文件管理程序是否已做好接受文件和存储文件的准备工作。
- 若计算机的格式不兼容,则至少其中一台计算机应完成格式转换功能。
- 对出现的各种差错和意外事故,如数据传送错误、重复或丢失,网格中某个节点交换机出现故障等,应当有可靠的措施保证对方计算机最终能够收到正确的文件。
为了设计这样复杂的计算机网络,最初的ARPANET设计时即提出了分层的方法。“分层”可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。
1974年,美国IBM公司宣布了系统网络体系结构SNA。这个网络标准是按分层方法指制定的。之后一些其他公司也推出了自己的网络体系结构,但由于网络体系结构不同,不同公司的设备很难互通
为了使不同体系架构的计算机网络互连,国际标准化组织ISO提出了一个试图使各种计算机在世界范围内互连成网的标准框架。即开放系统互连基本参考模型OSI/RM,简称OSI。“开放”是指非独家垄断的。因此只要遵循OSI标准,一个系统就可以和位于世界上任何地方的、也遵循这统一标准的其他任何系统进行通信。“系统”是指在现实世界的系统中与互连有关的各部分。OSI/RM是个抽象概念。在1983年形成了开放系统互连基本参考模型的正式文件,就是七层协议的体系结构。
当时许多国家支持OSI,并在将来似乎全世界要按照OSI指定的标准来构建自己的计算机网络。然而到了20世纪90年代初期,虽然整套OSI国际标准已经制定出来了,但由于基于TCP/IP的互联网已抢先在全球相当大的范围内成功运行了,而与此同时找不到厂家产出复合OSI标准的商用产品。因此,OSI只获得了一些理论研究成功,没有市场化。基于TCP/IP的互联网并未使用OSI标准。
按一般概念,网络技术和设备只有符合有关的国际标准才能大范围地获得工程上的应用。但现在情况却反过来。得到最广泛引用的不是法律上的国际标准OSI,而是非国际标准TCP/IP。这样,TCP/IP就常被称为是事实上的国际标准。能占领市场的就是标准。
2. 协议与划分层次
在计算机网络中要做到有条不紊的交换数据,就必须遵守一些事先定好的规则。这些规则明确规定了所交换的数据的格式以及有关的同步问题。这里说的同步不是狭义的而是广义的,即在一定的条件下应当发生什么时间,因而同步含有时序的意思。这些为进行网络中的数据交换而建立的规则、标准或约定称为网络协议。网络协议也简称为协议。网络协议有以下三个要素组成:
- 语法,即数据与控制信息的结构或格式;
- 语义,即需要发出何种控制信息,完成何种动作以及做出何总相应;
- 同步,即事件实现顺序的详细说明。
实际上,只要想让连接在网络上的另一台计算机做点什么事,都需要协议。协议通常有两种形式。一种是使用便于人来阅读和理解的文字描述。另一种是使用让计算机能够理解的程序代码。对于计算机网络协议,结构应该是层次式的。
例如,假定在主机1和主机2之间通过一个通信网络传送文件。可以将工作划分为三类。第一类工作与传送文件直接有关。例如,发送端的文件传送应用程序应当确信接收端的文件管理程序已做好接受和存储文件的准备。若两台主机所用的文件格式不一样,则至少其中一台主机应完成文件的格式转换。这两项工作用一个文件传送模块来完成。这样,两台主机可将文件传送模块作为最高的一层。在这两个模块之间的虚线表示两台主机系统换文件和一些有关文件交换的命令。
但是,我们并不想让文件传送模块完成全部细节工作,否则太过复杂。可再设立一个通信服务模块,用来保证文件和文件传送命令可靠地在两个系统之间交换。这就是第二类工作。也就是说 ,位于上面的文件的传送模块利用下面的通信服务模块所提供的服务。
要做的第三类工作可以是再构造一个网络接入模块,让这个模块负责做与网络接口细节有关的工作,并向上层提供服务,是上面的通信服务模块可靠地完成工作。
计算机网络的各层及其协议的集合就是网络的体系结构。换句说法,计算机网络的体系结构就是这个计算机网络及其构建所应完成的功能的精确定义。需要强调的是,这些功能究竟使用何种硬件或软件完成的,则是一个遵循这种体系结构的实现的问题。
3. 具有五层协议的体系结构
OSI的七层协议体系结构概念清楚,不复杂。TCP/IP体系结构则不同,它现在得到了非常广泛的引用。TCP/IP是一个四层的体系结构,如下图b所示,它包含应用层、运输层、网际层和链路层(网络接口层)。用网际层这个名字是强调本层解决不同网络的互联问题。再互联网的标准文档[RFC]中,体系结构中的底层叫做链路层,但接着又说明了链路层就是媒体接入层。但也有把链路层称为网络接口层或子网层。从实质上讲,TCP/IP只有最上面的三层,因为最下面的链路层并没有属于TCP/IP体系的具体协议。链路层所使用的各种局域网标准,并非由IETF而是由IEEE的802委员会下属的各工作组负责指定的。再讲授计算机网络原理时往往采取另外的方法,即综合OSI和TCP/IP的优点,采用c图所示的五层协议的体系结构,这对阐述计算机网络的原理很方便。
(1)应用层
应用层是体系结构的最高层。应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。这里的进程是指主机中正在运行的程序。对于不同的网络应用需要有不同的应用层协议。互联网的应用层协议很多,如域名系统DNS、支持万维网应用的HTTP协议、支持电子邮件的SMTP协议,等等。应用层交互的数据单元称为报文。
(2)运输层
运输层的任务是负责向两台主机中进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。所谓“通用的”,是指并不针对某个特定网络应用,而是多种应用可以使用同一个运输层服务。由于一台主机可同时运行多个进程,因此运输层有复用和分用的功能。复用就是多个应用层进程可同时使用下面运输层的服务,分用则相反,是运输层把收到的信息分别交付上面应用层中的相应进程。
运输层主要使用以下两种协议:
- 数据控制协议TCP(Transmissoin Control Protocol)-提供面向连接的、可靠地数据传输服务,其数据传输的单位是报文段。
- 用户数据报协议UDP(User Datagram Protocol)-提供无连接的尽最大努力的数据传输服务(不保证数据传输的可靠性),其数据传输的单位是用户数据报。
(3)网络层
网络层负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。在TCP/IP体系中,由于网络层使用IP协议,因此分组也叫作IP数据报,或简称为数据报。本书把“分组”和“数据报“作为同义词使用。
无论在哪一层传送的数据的单元,都可笼统地用”分组“来表示。
网络层地具体任务有两个。第一个任务,是通过一定的算法,在互联网中的每一个路由器上生成一个用来转发分组的转发表。第二个任务,是把每一个路由器在接收到一个分组时,依据转发表中指明的路径把分组转发到下一个路由器。这样就可以使源主机运输层传下来的分组,能够通过合适的路由到达目的主机。
网络层中的”网络“二字,已不是通常谈到的具体网络,而是在计算机网络体系结构模型中的第3层的名称。
互联网是由大量的异构网络通过路由器相互连接起来的。互联网使用的网络层协议是无连接的网际协议IP和许多路由选择协议,因此互联网的网络层也叫作网际层或IP层。
(4)数据链路层
数据链路层常简称为链路层。两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。两个相邻节点之间传送数据时,数据链路层讲网络层交下来的IP数据报组装成帧,在两个相邻节点间的链路上传送帧。每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)。
在接受数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。这样,数据链路层在收到一个帧后,就可以从中提取出数据部分,上交给网络层。
控制信息还使接收端能够检测到所受到的帧中有无差错。如发现差错,数据链路层就简单丢弃这个出差错的帧,以免继续在网络中传送下去浪费资源。如果需要改正数据在数据链路层传输时的差错,那么就要采用可靠传输协议来纠正。
(5)物理层
物理层上所传数据的单位是比特。因此物理层要考虑用多大的电压表示”1“或”0“,以及接收方如何识别出发送方所发送的比特。物理层还要确定连接电缆的插头应当有多少根引脚以及各引脚应如何连接。当然,解释比特代表的意思不是物理层的任务。注意,传递信息所利用的一些物理传输媒体,如双绞线、同轴电缆、光缆、无线通道等,并不在物理层协议之内,而是在物理层协议的下面。因此也有人把物理层下面的传输媒体当作第0层。
在互联网所使用的各种协议中,最重要的是TCP和IP两个协议。经常提到的TCP/IP并不一定是指TCP和IP这两个具体的协议,而往往是表示互联网所使用的整个TCP/IP协议族。
下图说明的是应用进程的数据在各层之间的传递过程中所经历的变化。这里简单起见,假定两台主机通过一台路由器连接起来。
假定主机1的应用进程AP1向主机2的应用进程AP2传送数据。AP1先将其数据交给本主机的第5层(应用层)。第5层加上必要的控制信息H5就变成了下一层的数据单元。第4层(运输层)收到这个数据单元后,加上本层的控制信息H4,再交给第3层(网络层),成为第3层的数据单元。依次类推。不过到了第2层(数据链路层)后,控制信息被分成两部分,分别加到本层数据单元的首部(H2)和尾部(T2);而第1层(物理层)由于是比特流的传送,所以不再加上控制信息。请注意,传送比特流时应从首部开始传送。
OSI参考模型把对等层次之间传送的数据单位称为该层的协议数据单元PDU(Protocal Data Unit)。
当这一串的比特流离开主机1经网络的物理传输媒体传送到路由器时,就从路由器的第1层依次上升到第3层。每一层都根据控制信息进行必要的操作,然后将控制信息剥去,将该层剩下的数据单元上交给更高的一层。当分组上升到了第3层网络层时,根据首部中的目的地址找到路由器的转发表,找出转发分组的接口,然后往下传送到第2层,加上新的首部和尾部后,再到最下面的第1层,然后在物理传输媒体上把每一个比特发送出去。
当这一串的比特流离开路由器到达目的站主机2时,就从主机2的第1层按照上面的放上,依次上升到第5层。最后,把应用进程AP1发送的数据交给目的站的应用进程AP2。
任何两个同样的层次之间,好像上图的虚线所示那样,把数据通过水平线传给对方。这就是所谓的“对等层”之间的通信。文献中也可见到“协议栈”术语,因为几个层次画在仪器很像一个栈。
4. 实体、协议、服务和服务访问点
当研究开放系统中的信息交换时,往往使用实体这一较抽象的名词表示任何可发送或接受信息的硬件或软件进程。许多情况下,实体就是一个特定的软件模块。
协议是控制两个对等实体(或多个实体)进行通信的规则的集合。协议的语法方面的规则定义了所交换的信息的格式,而协议的语义方面的规则就定义了发送者或接收者所要完成的操作,例如,在何种条件下,数据必须重传或丢弃。
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下一层所提供的服务。
协议和服务的概念不一样。协议的实现保证了能够向上一层提供服务。使用本层服务的实体只能看见服务而无法看见下面的协议。也就是说,下面的协议对上面的实体是透明的。
其次,协议是“水平的”。即协议是控制对等实体之间通信的规则。但服务是“垂直”的,即服务是由下层通过层间接口提供的。另外,并非在一个层内完成的全部功能都称为服务。只有那些能够被高一层实体“看得见”的功能才能称为“服务”。上层使用下层所提供的服务必须通过与下层交换一些命令。这些命令在OSI中称为服务原语。
同一系统中相邻两层的实体进行交互(即交换信息)的地方,通常称为服务访问点SAP。服务访问点SAP是一个抽象概念,它实际上就是一个逻辑接口,有点像邮政邮箱(可以把邮件放入信箱或取走),但这种层间接口和两个设备之间的硬件接口(并行的或串行的)并不一样。OSI把层与层之间交换的数据的单位称为服务数据单元SDU,它可以与PDU不一样。例如,可以是多个SDU合成一个PDU,也可以是一个SDU划分为几个PDU。
这样,在任何相邻两层之间的关系均可概括为下图所示。注意,第n层的两个“实体(n)”之间通过“协议(n)”进行通信,而第n+1层的两个“实体(n+1)”之间则通过另外的“协议(n+1)”进行通信(每一层都是用不同的协议)。第n层向上面的第n+1层所提供的服务实际上已包括了在它下各层所提供的服务。第n层的实体对第n+1层的实体就相当于一个服务提供者。在服务提供者的上一层的实体又称为“服务用户”。
计算机网络的协议有个重要特点,就是协议必须把所有不利的条件事先都估计到,而不能假定一切都是正常和非常理想的。
5. TCP/IP的体系结构
TCP/IP的体系结构较简单,只有四层。举例:
技术的发展并不遵循严格的OSI分层概念。实际上现在的互联网使用的TCP/IP体系结构有时已经演变成为下图所示的那样,即某些应用程序可以直接使用IP层,或直接使用最下面的链路层[PETE12]。虽然TCP/IP协议族得到了非常广泛的应用,但对TCP/IP协议体系的批评也不少。例如,这个体系结构没有清晰阐明区分开服务、接口和协议之间的关系,而链路层并非真正的一个层次,而仅仅是强调了IP层需要这样一个与网络的接口。这个体系结构没有把重要的物理层和链路层的内容包含进来。
还有另一种方法表示TCP/IP协议族,它的特点是上下两头大而中间小:应用层和网络接口层都由多种协议,而中间的IP层很小,上层的各种协议都向下汇聚到一个IP协议中。这种很像沙漏计时器形状的TCP/IP协议族表明:IP层可以支持多种运输协议(虽然这里只画了最主要的两种),而不同的运输层协议上面又可以有多种应用层协议(所谓的everything over IP),同时IP协议也可以在多种类型的网络上运行(所谓的IP over everything)。正因如此,互联网才会发展到今天的全球规模。下图可看出IP协议在互联网中的核心作用。
上图反映了一个重要设计理念,就是网络的核心部分越简单越好,把一切复杂的部分让网络的边缘部分去实现。
下图画了3台主机的协议栈。主机C的应用层中同时有两个服务器进程在通信。服务器1在和主机A中的客户1通信,而服务器2在和主机B中的客户2通信。有的服务器进程可以同时向几百个或更多的客户进程提供服务。