0-0-计算机网络概述

  • 2021 年 10 月 17 日
  • 筆記

计算机网络在信息时代的作用

有三类大家都很熟悉的网路,即电信网络有线电视网络计算机网络

  • 电线网络用于向用户提供电话,电报和传真等服务。

  • 有线电视网络向用户提供各种电视节目服务。

  • 计算机网络则使用户能够在计算机之间传递数据文件。

    发展过程中,起发展速度最快且最核心的就是计算机网络,互联网之所以能够向用户提供很多服务,就是因为互联网有两个重要基本特点:连通性共享

  • 连通性:凡是能够上网的多个用户之间,不管相距多远,都可以方便的交换各种信息。

  • 共享:指的是资源共享,贡献的意思是多方面的,可以使信息共享,软件共享,硬件共享等等,

互联网概述

网络的网络

​ 什么叫计算机网络?其实是由若干结点和连接这些结点的链路组成,这些结点,可以是计算机,可以是集线器,可以是路由器等等。

​ 网络之间可以通过路由器互连起来,这样构成了一个范围更大的计算机网络,这样的网络称之为互联网,如图:

image

​ 因此呢互联网也就是网络的网络。习惯上,我们把与网络相连的计算机称之为主机。网络上把许多计算机连接在一起,而互联网则是许多网络通过路由器连接在一起。有一点值得注意的是,网络互联并不仅仅是简单的在物理上连接起来,因为这样做并不能达到计算机之间相互传递数据的目的,我们还需要在计算上安装能够交换信息的软件才行,因此当我们谈到网络互联时,就隐含的表示了计算机上已经安装了适当的软件,因而在计算机之间可以通过网络交换数据。

互联网基础结构发展的三大阶段

第一个阶段是从单个网络ARPANET向互联网发展的过程。成为了如今互联网的雏形

第二个阶段是拥有三级结构的互联网,分别是主干网区域网校园网(企业网)

第三个阶段是形成了多层次ISP结构的互联网。ISP指的是互联网服务提供商。例如中国移动,联通,电信等就是我国最有名的ISP。ISP可以从互联网管理机构申请到很多IP地址(互联网上的所有主机必须拥有IP地址才能上网),同时拥有通信线路和路由器等联网设备,

互联网的标准化工作

​ 互联网的标准化工作对互联网的发展起到了非常重要的作用,互联网在制定其标准上有很大特色,其中的一个很大特点就是面向公众。互联网所有的RFC文档都可以从互联网上免费下载,并且任何人都可以通过电子邮件发表对某个文档的意见或者建议,这种开放的方法对互联网的影响很大。所有的互联网标准都是以RFC(Request For Comments请求评论)的形式在互联网上发表的。

互联网的组成

互联网的拓扑结构虽然非常复杂,且在地理上覆盖全球,但是从工作方式上看可以划分为以下两大块:

  • 边缘部分:由所有连接在在互联网上的主机组成,这部分是用户直接使用的,用来进行通信(数据传输等)和资源共享。
  • 核心部分:有大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供交换(提供连通性和交换)

image

互联网的边缘部分

处在互联网的边缘部分就是连接在互联网上的所有主机。这些主机又称为端系统(即互联网的末端),这个端系统,可以是普通笔记本电脑,也可以是一个很小的网络摄像头等等。边缘部分利用核心部分所提供的的服务,使得众多主机能够相互通信并交换或者共享信息。在网络边缘的端系统之间的通信方式可以划分为两大类:客户服服务器(C/S)方式和对等方式(P2P)方式。

  • 客户-服务器(C/S)方式:这种方式是互联网上最常用的,也是传统的方式。客户(client)和服务器(server)指的是通信中所涉及的两个应用进程。客户-服务器方式所描述的是进程之间服务与被服务之间的关系,如下图:

image

主机A运行客户程序,而主机B 运行服务程序,在这中情况下,A是客户端而B是服务端,客户A向服务器B发送请求,而服务器B向客户A提供服务。这里最主要的特点是:客户是服务请求方,服务器是服务提供方。服务请求方和服务提供方都需要使用网络中的核心部分所提供的服务。在实际的应用中,客户端程序和服务端程序通常会有以下一些特点。

客户程序:被用户调用后运行,在通信时主动向远程服务器发起通信(请求服务),因此,客户程序必须要知道服务器程序的地址。不需要特殊的硬件和很复杂的操作系统。

服务器程序:是一种专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求。系统启动后即自动调用并一直不断地运行着,被动地等待并接受来自各地的客户的通信请求,,因此,服务器程序不需要知道客户程序的地址。一般需要有强大的硬件和高级操作系统支持。

客户与服务器的通信关系建立后,通信可以是双向的,客户和服务器都可发送和接收数据。顺便要说一下,上面所说的客户和服务器本来都指的是计算机进程(软件)。使用计算机的人是计算机的“用户”(user)而不是“客户”( client)。但在许多国外文献中,经常也把运行客户程序的机器称为 client(在这种情况下也可把 client译为“客户机”),把运行服务器程序的机器称为 server。因此我们应当根据上下文来判断 client或 server是指软件还是硬件。在本书中,在表示机器时,我们也使用“客户端”(或“客户机”)或“服务器端”(或服务器)来表示“运行客户程序的机器”或“运行服务器程序的机器”。

  • 对等连接(P2P)方式

    对等连接( peer-to-peer,简写为P2P。这里使用数字2是因为英文的2是two,其读音与to同,因此英文的to常缩写为数字2)是指两台主机在通信时并不区分哪一个是服务请求方哪一个是服务提供方。只要两台主机都运行了对等连接软件(P2P软件),它们就可以进行平等的、对等连接通信。这时,双方都可以下载对方已经存储在硬盘中的共享文档。因此这种工作方式也称为P2P方式。在图1-8中,主机C,D,E和F都运行了P2P软件,因此这几台主机都可进行对等通信(如C和D,E和F,以及C和F)。实际上,对等连接方式从本质上看仍然是使用客户-服务器方式,只是对等连接中的每一台主机既是客户又同时是服务器。例如主机C,当C请求D的服务时,C是客户,D是服务器。但如果C又同时向F提供服务,那么C又同时起着服务器的作用。

    image

    对等连接工作方式可以支持大量对等用户同时工作,关于这种工作模式以后会讲到。

互联网的核心部分

网络核心部分是互联网中最复杂的部分,因为网络中的核心部分要向网络边缘中的大量主机提供连通性,使边缘部分中的任何一台主机都能够向其他主机通信。在网络核心部分起特殊作用的是路由器 (router),它是一种专用计算机(但不叫做主机)。路由器是实现分组交换 packet switching)的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。为了弄清分组交换,下面先介绍电路交换的基本概念。

电路交换的主要特点

在电话问世后不久,人们就发现,要让所有的电话机都两两相连接是不现实的。图1%(a)表示两部电话只需要用一对电线就能够互相连接起来。但若有5部电话要两两相连,则需要10对电线,见图1-9(b)所示。显然,若N部电话要两两相连,就需要N(N-1)2对电线。当电话机的数量很大时,这种连接方法需要的电线数量就太大了(与电话机的数量的平方成正比)。于是人们认识到,要使得每一部电话能够很方便地和另一部电话进行通信,就应当使用电话交换机将这些电话连接起来,如图19(c)所示。每一部电话都连接到交换机上,而交换机使用交换的方法,让电话用户彼此之间可以很方便地通信。电话发明后的一百多年来,电话交换机虽然经过多次更新换代,但交换的方式一直都是电路交换( (circuit switching)

image

当电话机的数量增多时,就要使用很多彼此连接起来的交换机来完成全网的交换任务。用这样的方法,就构成了覆盖全世界的电信网。从通信资源的分配角度来看,交换( switching)就是按照某种方式动态地分配传输线路的资源。在使用电路交换通话之前,必须先拨号请求建立连接。当被叫用户听到交换机送来的振铃音并摘机后,从主叫端到被叫端就建立了一条连接,也就是一条专用的物理通路。这条连接保证了双方通话时所需的通信资源,而这些资源在双方通信时不会被其他用户占用。此后主叫和被叫双方就能互相通电话。通话完毕挂机后,交换机释放刚才使用的这条专用的物理通路(即把刚才占用的所有通信资源归还给电信网)。这种必须经过“建立连接(占用通信资源)→通话(一直占用通信资源)→释放连接(归还通信资源)”三个步骤的交换方式称为电路交换°。如果用户在拨号呼叫时电信网的资源已不足以支持这次的呼叫,则主叫用户会听到忙音,表示电信网不接受用户的呼叫,用户必须挂机,等待一段时间后再重新拨号。

下图为电路交换的示意图。为简单起见,图中没有区分市话交换机和长途电话交换机。应当注意的是,用户线是电话用户到所连接的市话交换机的连接线路,是用户独占的传送模拟信号的专用线路,而交换机之间拥有大量话路的中继线(这些传输线路早已都数字化了)则是许多用户共享的,正在通话的用户只占用了中继线里面的一个话路。电路交换的个重要特点就是在通话的全部时间内,通话的两个用户始终占用端到端的通信资源。

image

当使用电路交换来传送计算机数据时,其线路的传输效率往往很低。这是因为计算机数据是突发式地出现在传输线路上的,因此线路上真正用来传送数据的时间往往不到10%甚至1%。已被用户占用的通信线路资源在绝大部分时间里都是空闲的。例如,当用户阅读终端屏幕上的信息或用键盘输入和编辑一份文件时,或计算机正在进行处理而结果尚未返回时,宝贵的通信线路资源并未被利用而是白白被浪费了。

分组交换的特点

分组交换则采用存储转发技术。图1-11表示把一个报文划分为几个分组后再进行传送。通常我们把要发送的整块数据称为一个报文( message)。在发送报文之前,先把较长的报文划分成为一个个更小的等长数据段,例如,每个数据段为1024bit。在每一个数据段前面,加上一些由必要的控制信息组成的首部 Header)后,就构成了一个分组( packet)。分组又称为“包”,而分组的首部也可称为“包头”。分组是在互联网中传送的数据单元。分组中的“首部”是非常重要的,正是由于分组的首部包含了诸如目的地址和源地址等重要控制信息,每一个分组才能在互联网中独立地选择传输路径,并被正确地交付到分组传输的终点。

image

图1-12(a)强调互联网的核部分是由许多网络和把它们相互连接起来的路由器组成。而主机处于互联网的边缘部分。在互联网核心部分的路由器部分一般采用告高速链路相连接,而在网络边缘的主机接入到核心部分则通常以相对较低速率的链路相连。

位于网络边缘的主机和位于网络核心部分的路由器都是计算机,但它们的作用却很不一样。主机是为用户进行信息处理的,并且可以和其他主机通过网络交换信息。路由器则是用来转发分组的,即进行分组交换的。路由器收到一个分组,先暂时存储一下,检查其首部,查找转发表,按照首部中的目的地址,找到合适的接口转发出去,把分组交给下一个路由器。这样一步一步地(有时会经过几十个不同的路由器)以存储转发的方式,把分组交付最终的目的主机。各路由器之间必须经常交换彼此掌握的路由信息,以便创建和动态维护路由器中的转发表,使得转发表能够在整个网络拓扑发生变化时及时更新。当我们讨论互联网的核心部分中的路由器转发分组的过程时,往往把单个的网络简化成一条链路,而路由器成为核心部分的结点,如图1-12(b)所示。这种简化图看起来可以更加突出重点,因为在转发分组时最重要的就是要知道路由器之间是怎样连接起来的。现在假定图1-12(b)中的主机H1向主机H发送数据。主机H1先将分组逐个地发往与它直接相连的路由器A。此时,除链路H1-A外,其他通信链路并不被目前通信的双方所占用。需要注意的是,即使是链路H1-A,也只是当分组正在此链路上传送时才被占用。在各分组传送之间的空闲时间,链路H1-A仍可为其他主机发送的分组使用。路由器A把主机H1发来的分组放入缓存。假定从路由器A的转发表中查出应把该分组转发到链路A-C。于是分组就传送到路由器C。当分组正在链路AC传送时,该分组并不占用网络其他部分的资源。路由器C继续按上述方式查找转发表,假定査出应转发到路由器E。当分组到达路由器E后,路由器E就最后把分组直接交给主机H假定在某一个分组的传送过程中,链路AC的通信量太大,那么路由器A可以把分组沿另一个路由传送,即先转发到路由器B,再转发到路由器E,最后把分组送到主机H5。在网络中可同时有多台主机进行通信,如主机H2也可以经过路由器B和E与主机H6通信。

这里需要注意,路由器暂时存储的是一个短分组,而不是整个的长报文。段分组是暂存在路由器的存储器上的(即内存),并不是存储在磁盘中,互联网可以容忍很多主机同时进行通信,而一台主机上的多个进程(即正在运行中的多个程序)也可以各自和不同的主机中的不同进程进行通信。

应当注意,分组交换在传送数据之前不必先占用一条端到端的链路的通信资源。分组在哪段链路上传送才占用这段链路的通信资源。分组到达一个路由器后,先暂时存储下来,査找转发表,然后从一条合适的链路转发出去。分组在传输时就这样一段一段地断续占用通信资源,而且还省去了建立连接和释放连接的开销,因而数据的传输效率更高。互联网采取了专门的措施,保证了数据的传送具有非常高的可靠性(在第5章54节介绍运输层协议时要着重讨论这个问题)。当网络中的某些结点或链路突然出现故障时,在各路由器中运行的路由选择协议( protocol)能够自动找到转发分组最合适的路径。这些将在后面详细讨论。从以上所述可知,采用存储转发的分组交换,实质上是采用了在数据通信的过程中断续(或动态)分配传输带宽的策略(关于带宽的进一步讨论见后面的1.61节)。这对传送突发式的计算机数据非常合适,使得通信线路的利用率大大提高了。

为了提高分组交换网的可靠性,互联网的核心部分常采用网状拓扑结构,使得当发生网络拥塞或少数结点、链路出现故障时,路由器可灵活地改变转发路由而不致引起通信的中断或全网的瘫痪。此外,通信网络的主干线路往往由一些高速链路构成,这样就可以较高的数据率迅速地传送计算机数据。
综上所述,分组交换的主要优点可归纳如表1-2所示。

image

分组交换也带来一些新的问题。例如,分组在各路由器存储转发时需要排队,这就会造成一定的时延。因此,必须尽量设法减少这种时延。此外,由于分组交换不像电路交换那样通过建立连接来保证通信时所需的各种资源,因而无法确保通信时端到端所需的带宽。分组交换带来的另一个问题是各分组必须携带的控制信息也造成了一定的开销( overhead)。整个分组交换网还需要专门的管理和控制机制。应当指出,从本质上讲,这种断续分配传输带宽的存储转发原理并非是完全新的概念。自古代就有的邮政通信,就其本质来说也属于存储转发方式。而在20世纪40年代,电报通信也采用了基于存储转发原理的报文交换( message switching)。在报文交换中心,一份份电报被接收下来,并穿成纸带。操作员以每份报文为单位,撕下纸带,根据报文的目的站地址,拿到相应的发报机转发出去。这种报文交换的时延较长,从几分钟到几小时不等。现在报文交换已不使用了。分组交换虽然也采用存储转发原理,但由于使用了计算机进行处理,就使分组的转发非常迅速。例如 ARPANET建网初期的经验表明,在正常的网络负荷下,当时横跨美国东西海岸的端到端平均时延小于0.1秒。这样,分组交换虽然采用了某些古老的交换原理,但实际上已变成了一种崭新的交换技术。

图1-13表示电路交换,报文交换和分组交换的区别。图中的A和D分别是源点和终点,而B和C是在A和D之间的中间结点。

image

三种交换方式的主要特点:

  • 电路交换:整个报文的比特流连续地从源点直达终点,好像在一个管道中进行。
  • 报文交换:整个报文先传送到相邻的结点,全部存储下来后查找转发表,转发到下一个结点。
  • 分组交换:单个分组(整个报文的一部分)传送到相邻的结点,存储下来后查找转发表,转发到下一个结点。