1.1 网络的网络
计算机网络是由若干结点和连接这些结点的链路所组成,网络中的结点可以是计算机,集线器,交换器或者是路由器等。
网络之间还可以通过路由器互连起来,这样就构成了一个覆盖范围更大的计算机网络,而这样的网络称为互连网,我们将互连网称为“网络中的网络”。所以综合起来,我们可以说:网络把许多计算机连接在一起,而互连网则把许多网络通过路由器连接在一起。与网络相连的计算机常称为主机。*
1.2 互联网发展阶段
互联网的基础结构大体上是经历了三个阶段的演进:
第一阶段是从单个网络ARPANET向互连网发展的过程。发展的过程在这里不多论述,但是我们要注意区别一下两个意思相差很大的名词internet和Internet:
internet是指互连网,只一个通用名词,它泛指由多个计算机网络互连而成的计算机网络,在这些网络之间的通信协议可以1任意选择。
Internet是指互联网,是一个专用名词,它指的是当前全球最大的、开放的、由众多网络相互连接而成的特定互连网,它采用TCP/IP协议族作为通信的规则,且其前身是美国的ARPANET。
第二阶段的特点是建成了三级结构的互联网。在这个阶段中是将计算机网络细分为了一个三级网络,即主干网,地区网和校园网(企业网)。
第三阶段的特点是逐渐形成了多层次的ISP结构的互联网。ISP是指互联网服务的提供者,在许多情况下,ISP就是一个进行商业活动的公司,因此ISP又常称为互联网服务提供商。在中国例如中国电信、中国联通、中国移动等等都是ISP。ISP可以从互联网管理机构申请到许多的IP地址,用时拥有通信线路以及路由器等连网设备,因此任何机构和个人只要向某个ISP缴纳规定的费用,就可以通过该ISP提供的IP地址连入互联网中。
根据提供的服务的覆盖面积的大小以及所拥有的IP地址数目的不同,ISP主要分为三种:主干ISP,地区ISP和本地ISP。
主干ISP是由几个专门的公司创建和维持的,服务面积最大并且还拥有高速主干网。
地区ISP是一些较小的ISP,这些地区ISP通过一个或者多个主干ISP连接起来。
本地ISP给用户提供直接的服务。本地ISP可以连接到地区ISP,也可以直接连接到主干ISP。绝大多数用户都是连接到本地ISP的。
这里我们也要知道互联网交换点IXP。IXP的作用是允许两个网络直接相连并且交换分组,而不需要再通过第三个网络来转发分组,这样就使互联网上的数据流量分布更加合理,降低了分组转发的费用。
1.3 互联网标准化工作
制定互联网的正式标准要经过一下三个阶段:
(1)互联网草案(Internet Draft)。互联网草案的有效期只有六个月,在这个阶段还不能算是RFC文档(所有互联网标准都是以RFC的形式在互联网上发布的)。
(2)建议标准(Proposed Standard)。从这个阶段开始就称为RFC文档。
(3)互联网标准(Internet Standard)。达到正式标准后,每个标准就分配到一个编号STD xx。
从2011年10月取消了“草案标准”,即互联网草案这个阶段,现在的制作过程只有“建议标准-----互联网标准”
1.4 互联网的组成
互联网按照其工作方式上看,可以划分为以下两大块:
(1)边缘部分。由所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信和资源共享的。
(2)核心部分。由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的。
1.5 互联网的边缘部分
处在互联网的边缘的部分就是连接在互联网上的所有的主机。这些主机又称为端系统。端系统之间的通信方式通常可以划分为两大类:客户-服务器方式(C/S方式)和对等方式(P2P方式)。
1.5.1 客户-服务器方式
这种方式在互联网是是最常用的,也是传统的方式。我们在上网发送邮件或者是查找资料时,都是使用的这种方式。
客户(client)和服务器(server)都是指通信中涉及的两个应用进程。客户-服务器方式所描述的是进程之间服务和被服务的关系。这里最主要的特征是:
客户是服务请求方,服务器是服务提供方。
服务请求方和服务方都要使用网络核心部分所提供的服务。
在实际的应用中,客户程序和服务器程序通常还具有以下一些主要特点。
客户程序
(1)在用户调用之后运行,在通信时向服务器请求服务。因此客户程序必须要知道服务器程序的地址。
(2)不需要特殊的硬件的很复杂的操作系统。
服务器程序
(1)是一种专门用来提供某种服务的程序,可以同时处理多个远地或者本地客户的请求。
(2)系统启动后即自动调用并一直不断的运行着,被动的等待并接受来自各地的用户的通信请求,因此服务器程序不需要知道客户程序的地址。
(3)一般需要有强大的硬件和高级的操作系统支持。
当客户程序与服务器程序的通信关系建立以后,通信就可以是双向的,即客户和服务器都可以发送和接受数据。
1.5.2 对等连接方式
对等连接(peer-to-peer)简写为P2P,是指两个主机在通信时并不区分哪一个是服务请求方还是服务提供方。只要两个主机都运行了对等连接软件(P2P软件),它们就可以进行平等的,对等连接通信。这时双方都可以下载对方硬盘中的共享文档,所以也称为P2P文件共享。其实P2P的本质仍然是客户-服务器方式,只是P2P中的每一个主机既是客户又是服务器。
1.6 互联网的核心部分
在网络的核心部分中起到特殊作用的是路由器,它是一种专用计算机。路由器是实现分组交换的关键构件,它的任务就是转发收到的分组,这是网络核心部分最重要的功能。所以我们先弄清楚分组交换和电路交换的基本概念。
1.6.1电路交换的主要特点
电路交换的步骤是:建立连接(占用通信资源)——通话(一直占用通信资源)——释放连接(归还通信资源)。这里的交换从通信资源的角度来看就是按照某种方式动态的分配传输线路的资源。而电路交换的一个重要的特点就是在通话的全部时间内,通话的两个用户始终占用端到端的通信资源。但是电路交换的传输效率往往是很低的。
1.6.2 分组交换的主要特点
分组交换则采用存储转发技术。我们先将要发送的整块数据称为一个报文。在发送报文之前,先把较长的报文划分成为一个个更小的等长数据段,在每一个数据段前面加上一些必要的控制信息组成的首部后,就构成了一个分组。分组中的首部是非常重要的,它包含了诸如目的地址和源地址等重要控制信息,正是由于这些首部,每一个分组才能够正确的交付到分组传输的终点。
为了提高分组交换的效率,互联网的核心部分常常采用的是网状拓扑结构,这样就使得当发生网络拥堵或者是少数的结点、链路出现故障时,路由器可以灵活地改变转发路由而不至于引起通信的中断或者是网络的瘫痪。此外,通信网络的主干路线往往是由一些高速链路组成,这样就可以以较高的速率迅速的传送计算机数据。
#1.3.1计算机网络的定义
计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的(例如传送数据或视频信号),这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛和日益增长的应用。
所以根据这个定义,我们能够得出入下的说明:
(1)计算机网络所连接的硬件,并不限于一般的计算机,而是包括了智能手机。
(2)计算机网络并非专门用来传送数据,而是能够支持多种的应用。
(3)上述的“可编程硬件”表明这种硬件一定包含有中央处理机:CPU。
1.7 几种不同类别的计算机网络
计算机网络有多种类别,下面来进行具体的介绍:
1.按照网络的作用范围分类
(1)广域网WAN:广域网的作用范围通常为几十到几千公里,所以也称为远程网,广域网是互联网的核心部分。
(2)城域网MAN:城域网的作用范围一般是一个城市,起作用距离约为5-50公里。城域网可以作为一个或者几个单位所拥有,但也可以是一种公用的设施,用来将多个局域网进行互连。目前很多城域网采用以太网的技术。
(3)局域网LAN:局域网一般通过微型计算机或者工作站通过高速通信线路相连,但是在地理上则局限于很小的范围内。现在学校或者是企业大都拥有许多个互连的局域网。
2.按照网络使用者进行分类
(1)公用网:就是这电信公司出资建造的大型网络。
(2)专用网:指的是某个部门为满足本单位的特殊业务工作的需要而建造的网络。但是这种网络一般不向本单位以外的人使用。
3.用来把用户接到互联网的网络
这种网络就是接入网,它又称为本地接入网或者是居民接入网,这是一类比较特殊的计算机网络。因为接入网本身既不属于互联网的核心部分,也不属于互联网的核心部分,它只是起到让用户能够与互联网连接的桥梁作用。
当然分组交换也带来了一些新的问题,比如分组在各路由器存储转发时需要排队,这就会造成一定的时延。同时各个分组必须携带的控制信息也造成了一定的开销。
1.8 计算机网络的性能
计算机网络的性能一般是指它的几个重要的指标。但是除了这些重要的性能指标外,还有一些非性能特征也对计算机网络的性能有着很大的影响。
1.8.1 计算机网络的性能指标
1.速率
在网络技术中的速率指的是数据的传送速率,它也称为数据率或者是比特率。速率是计算机网络中重要的一个性能指标。速率的单位是bit/s,但速率较高时,常在其前面加上一个字母(例如:k=10^3=千, M=10^6=兆, G=10^9=吉, T=10^12=太,等等)。值得注意的是,当提到网络的的速率时,往往指的是额定速率或者是标称速率,而并非网络实际运行的速率。
2.带宽
带宽有着以下两种不同的意义:
(1)带宽本来是指某个信号具有的频带宽度。信号的带宽是指该信号所包含的各种不同频率成分所占据的频率范围。而这种意义的带宽的单位是赫兹。
(2)在计算机网络中,带宽是用来表示网络中某通道传送数据的能力,因此带宽表示在单位时间内网络中的某信道所能通过的最高数据率。这个意义的带宽的单位是bit/s。
3.吞吐量
吞吐量是表示在单位时间内通过某个网络的实际数据量。吞吐量更经常的用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。所以显然,吞吐量是受网络的带宽或者是网络的额定速率的限制的。
4.时延
时延是指数据从网络的一端传送到另一端所需要的时间,时延是个很重要的性能指标,它有时也称为延迟或迟延。时延主要是由以下几个不同的部分组成的:
(1)发送时延:发送时延是主机或路由器发送数据帧所需要的时间,它的计算公式是:
发送时延=数据帧长度/发送速率
(2)传播时延:传播时延是电磁波在信道中传播一定的距离需要花费的时间。它的计算公式是:
传播时延=信道长度/电磁波在信道上传播的速率
(3)处理时延:主机或者路由器在收到分组时要花费一定的时间进行处理,这就产生了处理时延。
(4)排队时延:分组在经过网络传输时,要经过许多的路由器。但是分组在进入路由器后要先在输入队列中排队等待处理,在路由器确定了转发接口之后,还要在输出队列中排队等待转发,这就产生了排队时延。
所以综上,数据在网络中经历的总时延就是以上四种时延之和,即:
总时延=发送时延+传播时延+处理时延+排队时延
(5)时延带宽积:将传播时延和带宽相乘,就得到了传播时延宽积,即:
时延带宽积=传播时延 x 带宽
(6)往返时间RTT:因为在互联网中的信息不仅仅是单方向的传输而是双向交互的。因此我们有时很需要知道双向交互一次所需要的时间。
(7)利用率:利用率分为信道利用率和网络利用率两种。信道利用率指出某信道有百分之几的时间是被利用的。而网络利用率则是全网络的信道利用率的加权平均值。但是要注意的是,信道利用率并非越高越好,这是因为根据排队论的理论,当某信道的利用率增大时,该信道引起的时延就迅速增加。如果用D0表示网络空闲时的时延,D表示网络当前的时延,那么在适当的假定条件下,可以用下面的公式来表示D,D0,与利用率U之间的关系:
D=D0/(1-U)
1.9 计算机文网络体系结构
1.9.1 协议与划分层次
在计算机网络中要做到有条不紊的交换数据,就必须遵守一些实现约定的规则。这些规则明确规定了所交换的数据的格式以及有关的同步问题。这些为进行网络中的数据交换而建立的规则、标准或约定就称为网络协议。现今规模最大的、覆盖最广的网络协议是TCP/IP协议。
一般而言,网络协议主要由以下三个要素组成:
(1)语法:即数据与控制信息的结构或格式。
(2)语义:即需要发出何种控制信息,完成何种动作以及做出何种响应。
(3)同步:即事件实现顺序的详细说明。
网络协议是计算机网络不可缺少的部分。实际上,只要我们想让连接在网络上的另一台计算机做点什么事情,我们都需要有协议。而当我们经常在自己的个人电脑进行文件存盘操作时,就不需要任何的网络协议。
协议通常有两种不同的形式。一种是使用便于人来阅读和理解的文字描述,另一种是使用让计算机能够理解的代码。这两种不同形式的协议都能够对过程做出精确的解释。
对于非常复杂的计算机网络协议,其结构应该是层次式的,具体的表现如下图:
采用分层的优点有:
(1)各层之间是独立的:某一层并不知道下一层是如何实现的,每一层只是实现一个相对独立的功能,
(2)灵活性好:当任何一层发生变化时,只要是层间接口关系保持不变,则在这层以上或以下各层都是不受影响的。
(3)结构上可以分割开:各层都可以采用最合适的技术来实现。
(4)易于实现和维护:这种分层的结构对于管理与维护是十分方便的。
(5)能促进标准化的工作:因为每一层的功能及其所提供的服务都已经有了精确的说明,所以标准化工作能够易于进行。
综上,我们可以得出定义:计算机网络的各层次及其协议就是网络的体系结构。
1.9.2 具有五层协议的体系结构
TCP/IP是一个四层的体系结构,它包含有应用层,运输层,网际层和网络接口层。但是在学习计算机网络的时候我们一般是采取折中的方法(即将OSI的七层协议与TCP/IP的四层协议中的优点综合起来),采用一种只有五层协议的体系结构:
下面是各层的主要介绍:
(1)应用层
(2)运输层
(3)网络层
(4)数据链路层
(5)物理层
现在简单描述一下两台主机的应用进程(AP1,AP2)之间发送数据的过程(假设两台主机通过一台路由器连接起来):
首先AP1先将数据交给本主机的第5层,然后第5层加上必要的信息H5之后就变成了下一层的数据单元。截止第4层收到了这个数据单元后,加上本层的控制信息H4,在交给第3层,以及类推。但是当到了第2层之后,控制信息被分成了两部分,分别加到本层数据单元的首部H2和尾部T2。而到了第1层的时候就不再加上控制信息了,而是通过比特流的方式开始传送。
各层次之间传送的数据单位称为该层的协议数据单元PDU。
当这一串比特流离开主机1经过网络媒体传送到路由器时,就从路由器的第1层依次上升到了第3层。每一层根据控制信息进行必要的操作,然后将控制信息剥去。当到达第3层时,就根据首部中的目的地址查找路由器中的转发表,找到转发分组的接口,然后再往下传,最后到达第1层时在物理媒体上把每一个比特发送出去。
之后这一串比特流会到达主机2,于是就从主机2中从第1层继续依次上升到第5层。最终数据就会到达AP2中。
1.9.3 实体,协议,服务和服务访问点
在研究开放系统中的信息交换时,往往使用实体这一较为抽象的名词表示任何可以发生或者接收信息的硬件或者软件进程。在许多的情况下,实体就是一个特定的软件模块。
协议是控制了两个对等实体(多个)进行通信的规则的集合。协议的语法方面的规则定义了所要交换的信息的格式,而协议的语义方面的规则就定义了发送者或接收者所要完成的操作,例如在何种条件下,数据必须重传或丢弃。
所以在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下面一层所提供的服务。
要注意的是,服务和协议在概念上是很不一样的,首先,协议的实现保证了能够向上一层提供服务。而使用本层服务的实体只能看见服务无法看见下面的协议。其次,协议是“水平”的,即协议是控制对等实体之间的通信规则,但服务是“垂直”的,,即服务是由下层向上层通过层间接口提供的。同时,并非在一个层内完成的全部功能都称为服务,只有那些能够被高一层实体“看得见”的功能才能称为“服务”。
服务访问点SAP是指在同一系统中相邻两层的实体进行交互的地方,它是一个抽象的概念,实际上它就是一个逻辑接口,就类似于邮政信箱一样(将邮件放入信箱,从信箱中将邮件拿出)。
1.9.4 TCP/IP的体系结构
TCP/IP的体系结构比较简单,只有四层。它们的表示方法如下图所示:
除此以外,它还有另外一种方法,就是分层次画出具体的协议来表示TCP/IP协议族,如图:
通过这一种很像沙漏计时器形状的TCP/IP协议族表明:TCP/IP协议可以为各式各样的应用提供服务,同时也允许IP协议在各式各样的网络构成的互联网上运行。