计算机网络概述2
计算机网络的类别
计算机网络定义
关于计算机网络较好的定义是[PETE11]:计算机网络主要是由一些通用的,可编程的硬件(一定包含中央处理器)互连而成。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛和日益增长的应用。
几种不同类型的计算机网络
按照网络的作用范围进行分类
- 广域网(Wide Area Network):作用范围通常为几十到几千公里。
- 城域网MAN(Metropolitan Area Network):作用范围一般为一个城市。
- 局域网(Local Area Network):作用范围一般为1KM左右。例如校园网或者企业网。
- 个人区域网(Personal area Network):作用范围通常为10m左右。
按照网络的使用者进行分类
- 公用网(public network):指的是电信公司出资建造的大型网络。公用的意思是所有愿意按电信公司的规定所缴纳费用的人都可以使用这种网络,因此公用网也称之为公众网。
- 专用网(private network):某个部门为满足自己的特殊要求而建造的网络,这种网络不向本单位以外的人提供服务。例如军队,铁路,银行,电力等系统。
用来把用户连接到互联网的网络
- 这种网络是接入网AN(Access Network),又称之为本地接入网或居民接入网。由前面介绍,用户必须接入ISP才能接入到互联网。接入网一般指的是从某用户端系统到互联网的第一个路由器。
计算机网络的性能
计算机网络的性能一般指的是它的几个重要的性能指标,但除了这些重要的性能指标,还有一些非性能特征。
计算机网络的性能指标
-
速率:计算机发出的信号都是数字形式的,bit表示二进制数字,速录指的是数据的传输速率,也称之为数据率或者比特率。速率的单位是比特每秒(bit/s),当速率较高时,可以再bit/s前面加上K,M,G等,之间的关系依次是10^3。值得注意的是,当提及到网络的速率的时候,往往指定的是额定速率或标准速率,而并非网络上的实际运行的速率。
-
带宽:带宽有以下两个不同的意义:
- 带宽本来指的是某个信号具有的频带宽度,信号的带宽指的是该信号所包含的各种不同频率成分所占的频率范围。带宽的单位是赫兹(HZ),当然还有千赫,兆赫等等。在过去的很长时间里,通信的主干线路传送的主要是模拟信号(连续变化的信号),因此表示某信道允许通过的信号频带范围称之为该信道的带宽。
- 在计算机网络中,带宽用来表示网络中某通道中传送数据的能力,因此网络带宽表示单位时间内网络中的信道能够通过的最高速率,这种意义的的带宽的单位就是数据率的单位bit/s,一条通信链路的带宽越宽,其所能传输的最高数据率越高。
-
吞吐量:吞吐量表示单位时间内通过某个网络的实际的数据量。吞吐量经常用于对现实世界网络的一种测量。以便直到实际上有多少数据量能通过网络。。显然,吞吐量受网络的带宽或者实际速率影响。
-
时延:指的是数据从一端到另一端所需的时间,时延是一个很重要的性能指标,有时候也称之为延迟或者迟延。值得注意的是,时延是由以下及部分组成:
-
发送时延:发送时延是主机或者路由器发送数据帧所需的时间,特就是发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。因此发送时延也称之为传输时延。发送时延的计算公式是:
-
传播时延:传播时延是电磁波在信道中穿比一定的距离需要花费的时间。传播时延的计算公式是:
-
处理时延:主机或者路由器在收到分组的时候要花费一定的时间来处理,例如分析分组的首部,从分组中提取数据部分,进行差错检查等等,这就产生了处理时延。
-
排队时延:分组经过网络传输的时候,要经过许多路由器,但分组进入路由器后要先在输入列表中排队等待处理,在路由器确定了转发接口后,还要在输出队列中排队等待转发,这就产生了排队时延。排队时延的长短往往取决于网络当时的通信量,当网络的通信量很大的时候就会发生队列溢出,使分组丢失。
总时延=发送时延+传播时延+处理时延+排队时延。
-
-
时延带宽积:传播时延x带宽。
例如:设某链路的传播时延为20ms,带宽为10Mbit/s,算出时延带宽积=20x(10-3)x10x(106)=2×10^5bit。链路的时延带宽积单位为比特。 -
往返时间RTT(round-trip time):在许多情况下,互联网上的信息,不仅仅单方向传输而是双向交互的,因此我们需要知道双向交互一次所需的时间。
-
利用率:
-
信道利用率:信道利用率指的是某信道有百分之几的时间是被利用的。。完全空闲的信道利用率为0。
-
网络利用率:网络利用率则是全网络的信道利用率的加权平均值。信道利用率并非越高越好,这是因为,当某信道的利用率增加的时候,该信道引起的时延也迅速增加,类比于高速公路,当高速公路上的车流量很大的时候,就容易引起拥堵。如果另D0表示网络空闲时的时延,D表示当前网络的时延,,那么在适定的假设条件下,可以用下列公式表示D,D0,和利用率U之间的关系:
这里U指的是网络的利用率,数值在0-1之间。当网络的利用率达到其容量的1/2的时候,时延就要加倍。特别注意的是,当网络的利用率接近最大值1时,网络的时延就会趋近于无穷大。因为我们要知道:信道或者网络的利用率过高就会产生非常大的时延。
-
计算机网络的非性能特征
- 费用:网络的价格(包括设计和实现的费用必须是要考虑的,一般来说,网络的性能越高,其价格就越高。
- 质量:网络的质量取决于网络中所有构件的质量。网络的质量影响到许多方面,例如网络的可靠性,网络管理的简单性等等。
- 标准化:网络的硬件和软件的设计既可以按照通用的国际标准,也可以遵循特定的专用网络标准,最好是采用国际标准。
- 可靠性:可靠性与网络的质量与性能有着密切的关系。
- 可扩展性和可升级性:在构造网络时就应该考虑到今后可能会需要到的扩展和升级。网络的性能越高,其扩展费用往往也越高。难度也会相应增加。
- 易于管理和维护:网络如果没有良好的管理与维护,就很难达到和保持所设计的性能。
计算机网络体系结构
计算机网络体系结构的形成
计算机网络是一个非常复杂的系统,我们先设想一个最简单的情况:连接在网络上的两台计算机要相互传送文件。这两台计算机之间必须要有一条传送数据的通路,但远远不够,至少还有以下事情要做:
- 发起通信的计算机必须将数据通信的通路进行激活( activate)。所谓“激活”就是要发出一些信令,保证要传送的计算机数据能在这条通路上正确发送和接收。
- 要告诉网络如何识别接收数据的计算机。
- 发起通信的计算机必须査明对方计算机是否已开机,并且与网络连接正常。
- 发起通信的计算机中的应用程序必须弄清楚,在对方计算机中的文件管理程序是否已做好接收文件和存储文件的准备工作。
- 若计算机的文件格式不兼容,则至少其中一台计算机应完成格式转换功能。
- 对出现的各种差错和意外事故,如数据传送错误、重复或丢失,网络中某个结点交换机岀现故障等,应当有可靠的措施保证对方计算杋最终能够收到正确的文件。
协议的层次与划分
在计算机网络中要做到有条不紊地交换数据,就必须遵守一些事先约定好的规则。这上规则明确规定了所交换的数据的格式以及有关的同步问题。这里所说的同步不是狭义的即同频或同频同相)而是广义的,即在一定的条件下应当发生什么事件(例如,应当发送
个应答信息),因而同步含有时序的意思。这些为进行网络中的数据交换而建立的规则、标准或约定称为网络协议( network protocol)。网络协议也可简称为协议。更进一步讲,网络协议主更由以下三个要去组成:
-
语法:数据与控制信息的结构或格式。
-
语义:需要发出何种控制信息,完成何种动作以及做出何种响应
-
同步:即事件实现顺序的详细说明。
由此可见,网络协议是计算机网络不可缺少的组成部分。实际上,只要我们想让连接在网络上的另一台计算机做点什么事情(例如,从网络上的某台主机下载文件),我们都需要有协议。但是当我们经常在自己的个人电脑上进行文件存盘操作时,就不需要任何网络协议,除非这个用来存储文件的磁盘是网络上的某个文件服务器的磁盘。
我们假设现在有一个文件传输任务:主机1要向主机2通过网络传输文件,我们可以将任务分为三类:第一类工作工作与传送文件直接相关。例如发送端的文件传送应用程序应当确信接收端的文件管理程序已做好接收和存储文件的准备。若两台主机所用的文件格式不一样,则至少其中的一台主机应完成文件格式的转换。这两项工作可以用一个文件传送模块来完成,这样,两台主机可以将文件传送模块最为最高的一层(如下图)。
但是,我们并不想让文件传送模块完成全部工作的细节,这样会使文件传送模块过于复杂。可以再设立一个通信服务模块,用来保证文件和文件传送命令可靠地在两个系统之间交换。也就是说,让位于上面的文件传送模块利用下面的通信服务模块所提供的服务。我们还可以看出,如果将位于上面的文件传送模块换成电子邮件模块,那么电子邮件模块同样可以利用在它下面的通信服务模块所提供的可靠通信的服务。同样道理,我们再构造一个网络接入模块,让这个模块负责做与网络接口细节有关的
工作,并向上层提供服务,使上面的通信服务模块能够完成可靠通信的任务。同样道理,我们再构造一个网络接入模块,让这个模块负责做与网络接口细节有关的工作,并向上层提供服务,使上面的通信服务模块能够完成可靠通信的任务。
具有五层协议的体系结构
OSI的七层协议体系结构(图1-18(a))的概念清楚,理论也较完整,但它既复杂又不实用。TCPP体系结构则不同,但它现在却得到了非常广泛的应用。TCPP是一个四层的体系结构(图1-18(b)),它包含应用层、运输层、网际层和网络接口层(用网际层这个名字是强调这一层是为了解决不同网络的互连问题)。不过从实质上讲,TCPP只有最上面的三层,因为最下面的网络接口层并没有什么具体内容。因此在学习计算机网络的原理时往往采取折中的办法,即综合OSI和TCPP的优点,采用一种只有五层协议的体系结构(图1-18(c)),这样既简洁又能将概念阐述清楚°。有时为了方便,也可把最底下两层称为网络接口层。
- 应用层:应用层是体系结构中的最高层。应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。这里的进程就是指主机中正在运行的程序。对于不同的网络应用需要有不同的应用层协议。在互联网中的应用层协议很多,如域名系统DNS,支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,等等。我们把应用层交互的数据单元称为报文( message)
- 运输层:运输层的仼务就是负责向两台主机中进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。所谓“通用的”,是指并不针对某个特定网络应用,而是多种应用可以使用同一个运输层服务。由于一台主机可同时运行多个进程,因此运输层有复用和分用的功能。复用就是多个应用层进程可同时使用下面运输层的服务,分用和复用相反,是运输层把收到的信息分别交付上面应用层中的相应进程。运输层主要使用以下两种协议:
- 传输控制协议TCP( Transmission Control protocol)—提供面向连接的、可靠的数据传输服务,其数据传输的单位是报文段( segment)。
- 用户数据报协议UDP( User Datagram Protoco)提供无连接的、尽最大努力( best-effort)的数据传输服务(不保证数据传输的可靠性),其数据传输的单位是用户数据报。
- 网络层:网络层负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。在TCPP体系中,由于网络层使用IP协议,因此分组也叫做IP数据报,或简称为数据报。本书把“分组”和“数据报”作为同义词使用。请注意:不要将运输层的“用户数据报UDP”和网络层的“IP数据报”弄混。此外,无论在哪一层传送的数据单元,都可笼统地用“分组”来表示。网络层的另一个任务就是要选择合适的路由,使源主机运输层所传下来的分组,能够通过网络中的路由器找到目的主机。这里要强调指出,网络层中的“网络”二字,已不是我们通常谈到的具体网络,而是在计算机网络体系结构模型中的第3层的名称。互联网是由大量的异构( heterogeneous)网络通过路由器( (router)相互连接起来的。互联网使用的网络层协议是无连接的网际协议P( Internet Protocol)和许多种路由选择协议,因此互联网的网络层也叫做网际层或IP层。在本书中,网络层、网际层和IP层都是同义语。
- 数据链路层:数据链路层常简称为链路层。我们知道,两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧( raming),在两个相邻结点间的链路上传送帧(fτame)。每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)。在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。这样,数据链路层在收到一个帧后,就可从中提取出数据部分,上交给网络层。控制信息还使接收端能够检测到所收到的帧中有无差错。如发现有差错,数据链路层就简单地丢弃这个出了差错的帧,以免继续在网络中传送下去白白浪费网络资源。如果需要改正数据在数据链路层传输时出现的差错(这就是说,数据链路层不仅要检错,而且要纠错),那么就要采用可靠传输协议来纠正出现的差错。这种方法会使数据链路层的协议复杂些。
- 物理层:在物理层上所传数据的单位是比特。发送方发送1(或0)时,接收方应当收到1(或0)而不是0(或1)。因此物理层要考虑用多大的电压代表“1”或“0”,以及接收方如何识别出发送方所发送的比特。物理层还要确定连接电缆的插头应当有多少根引脚以及各引脚应如何连接。当然,解释比特代表的意思,就不是物理层的任务。请注意,传递信息所利用的些物理媒体,如双绞线、同轴电缆、光缆、无线信道等,并不在物理层协议之内而是在物理层协议的下面。因此也有人把物理层下面的物理媒体当作第0层。