一、计算机网络基本概念
1、计算机网络=通信技术+计算机技术
计算机网络就是一种特殊的通信网络,其特殊之处就在于它的信源和信宿就是计算机。
2、什么是计算机网络
在计算机网络中,我们把这些计算机统称为“主机”(上图中所有相连的电脑和服务器都是主机),连接这些主机的介质被称为“通信链路”。
问:如果主机数量大,而且互相之间距离很远,应该如何保证互连?
答:通过交换网络互连主机。
交换网络有一个非常重要的设备,被统称为交换节点(在计算机网络中常见的是路由器或交换机)。有了这样的交换网络连接,那么我们的主机之间就可以通过交换网络的交换节点实现数据的中继,实现把数据从其原主机送到目的主机。这就是我么一般意义上说的计算机网络。
3、什么是Internet?
(1)从组成细节角度看
(2)从服务角度看
(3)提问
4、网络协议
(1)协议是计算机网络有序运行的重要保证
协议就是规则。如果把计算机网络比作一个四通八达的交通网络,那么协议就是交通规则。
(2)任何通信或信息交换都需要规则
比如我们人类在日常沟通交流过程中,我们也要遵循一些规则。在沟通的过程中,我们会注意到,这些规则约定了你在交互的过程中,当你收到特定消息的时候,你要对这些特定消息做出响应(即采取一些行动)。同样地,在计算机网络中进行通信的时候,也一样要遵循一些规则,只不过这个时候我们的通信主体是机器而不是人了,交换的信息是电子化数字化的了,这些规则就是我们所说的网络协议。
(3)什么是网络协议
不同的协议功能是不同的,所要完成的任务是不同的,交换的信息也不同,信息的格式也不一样。作为一个网络协议,通常来说有三个最基本的要素:语法(Syntax)、语义(Semantics)、时序(Timing)
语法(Syntax):就是说,协议之间不是要交换信息嘛,那你交换的信息是什么样的格式,如果交换的信息格式不明确,那我给你的信息你是没办法成功解读的。所以语法定义了数据与控制信息的结构或格式。如果信息是底层信息,那语法定义的就是信号电平。
语义(Semantics):我们平时写信的时候,你写完信不能直接就把这封信扔给邮局然后邮局给你寄到收信人那里,你得把信装到信封里,按照邮局规定的格式去书写地址信息,封装好之后,邮局才可能把你的信送到目的地。这就涉及到在你信件的那张纸的基础上增加信封和其他信息的内容,这就是语义。因此,语义规定协议双方在传输信息的过程中,到底还要发出哪些控制信息,这些控制信息到底是什么含义,你对于这些信息到底要做什么响应。简单说,就是你得知道它的意义,否则你就不知道怎么做。
时序(Timing):既然是双方要交换信息,显然要按照一定的顺序进行。不能没有顺序的约定,你想什么时候发信息就什么时候发信息,你想什么时候回复信息就什么时候回复,这显然是不行的。时序定义了协议双方通信所要遵循的时间顺序,以及双方交换信息的速度匹配问题。
以上就是协议的三个要素。
计算机网络中,协议是一个非常重要的内容。协议规范了网络中所有信息发送和接收过程。我们发送和接受信息都会遵循一个或几个协议,比如:TCP、IP、HTTP、Skype、802.11等。
学习计算机网络的重要内容之一就是学习协议。
网络创新的重要形式之一就是设计各种协议。近些年来,在物联网、传感器网络等新兴网络领域都有一些新的协议被设计出来,当然也包括互联网。
作为Internet网络,大量的协议都是以RFC(Request For Comments 请求评价)文档的形式存在的,这些文档通常由互联网IETF(Internet Engineering Task Force 互联网工程任务组)来进行管理的。如果大家想去看一看互联网中某些协议最权威的描述,就看它的RFC文档。
二、计算机网络的结构
计算机网络的结构大致可分为这几个部分:网络边缘、接入网络或物理介质、网络核心(核心网络)
网络边缘:包括主机、网络应用。网络边缘的主机上,会运行各种网络应用。
接入网络或物理介质:包括有线或无线通信链路。接入网络或网络的物理介质将主机和网络的其他部分连接。
网络核心(核心网络):网络核心是由一些网络的中继路由设备(比如路由器、交换机、分组转发设备)构成的网络。这些路由器设备的主要任务就是完成分组的转发。事实上,我们的Internet网络也恰恰是因为有了核心网络,才可以实现更大范围的网络互连,构成网络之网络。
1、网络边缘
网络边缘由主机(端系统)构成。它位于网络的最边缘处,我们平时使用的计算机、智能手机等设备,只要它接入了互联网,这些设备就都处于网络边缘。这些网络边缘的设备会运行各种网络应用程序(如Web、Email等)。
作为这些主机上运行的网络应用,它们之间是按照什么方式进行通信的呢?
主要有两类,分别是:一类是客户/服务器(client/server)应用模型、对等(Peer to Peer,P2P)应用模型
客户/服务器(client/server)应用模型:就是客户端发送请求,服务器端接收请求并为客户做出响应。也就是说在这类网络应用里面有客户身份和服务器身份的区别,比如Web应用、文件传输应用(FTP)这些典型的网络应用都属于这一类。作为这一类应用,服务器端软件要事先运行在服务器计算机上,然后客户端运行客户端软件,主动与服务器进行通信。也就是说谁主动发起通信谁就是客户,谁被动接收服务请求,谁就是服务器。作为客户/服务器网络应用,还有一个特点就是所有的通信都是在客户和服务器之间进行的,而不会出现客户和客户之间进行通信的情况。
对等(Peer to Peer,P2P)应用模型:在这类应用模型里,通信双方之间没有绝对的客户和服务器的区分,大家都是对等的,即P2P是在两个对等实体之间进行的。并且在这类应用里面通常可以没有我们传统意义上的专用服务器,或者说它的通信或数据交换过程不再仅仅依赖专用服务器。现实中的QQ就是P2P。
2、接入网络
我们的网络边缘都是通过接入网络与网络核心进行连接的,这个接入网络可能是一个复杂的网络,也可能只是一个通信链路。
接入网络要解决的问题就是如何将网络边缘的这些主机接入核心网的边缘路由器上。
按照我们接入网络的类型或常用场合,我们可以将接入网大概分这几类:居民(家庭)接入网络、机构接入网络(学校、企业等)、移动接入网络。注意,这里的类别划分并不是严格意义上的,机构接入网络也可以用于家庭,反之同样。
不管我们选择什么接入网络,从用户角度来说,我们最关心的有:带宽(bandwidth)(bps)、接入方式(共享or独占)
带宽(bandwidth)(bps):在网络中,通常所说的带宽是指数据传输速率,即每秒能传输多少个比特的数据。这跟通信领域所说的带宽是有巨大差异的。
问:通信中所说的带宽是指什么?
答:通信所说的带宽是信号最高频率与最低频率之差,单位为赫兹Hz,是描述信号频率范围的一个重要指标,反映了信号所包含的频率成分的宽度,决定了信号能够传输的信息容量和传输速率,一般来说,带宽越大,信号能够传输的信息就越多,传输速率也就越快。在实际应用中,需要根据具体的通信需求和技术条件来选择合适的带宽,以保证信号的传输质量和效率。
接入方式(共享or独占):接入方式分为共享和独占两种方式。独占意味着这个带宽是为我一个人所用的,共享是大家要均分或者共同使用的。
我们来看一些比较有代表性的接入网络:
(1)家庭接入网络
(1.1)数字用户线路(DSL)
数字用户线路(DSL):我们平时会更多听到ADSL(非对称数字用户线路)。DSL最大特点是利用我们家庭已有的家庭到中心局的电话线实现的接入。我们通过电话线实现声音和数据的同时传输,把数据信号连接到互联网上,电话和语音信号连接到传统的电话网络上。这种技术其实采用了一种多路复用技术(后面会介绍,简单说就是多路信号共同使用一个物理介质来进行传输)。通过一个DSL接入多路复用器,实现将我们的话音信号和数据信号分离。
刚才说了,DSL中最典型的是ADSL(非对称数字用户线路),“非对称”就是指上行线路和下行线路的速率是不一样的,比如往外发数据和接收数据的速度(带宽)不同,通常上行(从家里往外发)速率比较低,下行(下载)速率(或贷款)会比较快。
DSL或ADSL采用的是典型的频分多路复用(FDM)技术(就是把信号调制到不同的频带上,利用不同频带的载波进行传输)。下行我们一般把信号调到50KHz-1MHz,下行一般调到4KHz-50KHz,传统电话一般调到0Khz-4KHz。
电缆网络(cable modem)
电缆网络用的就是有线电视网络,是一种非常典型的频分多路复用技术,比如我们看电视调频道,调的其实就是它的载频,频率不同传输的信号就不同。
这种接入网络就是利用这种频分多路复用的技术,把可用的其他其他的频率利用起来传输网络数据。
下图是电缆网络接入的基本示意图:
这种网络也被称为HFC(混合光线同轴电缆网)。这种接入方式也是非对称的,下行速度可达到30Mbps,上行为2Mbps。HFC的接入是共享式接入,即带宽不是独占的。而DSL的带宽是独占的,所以虽然有时候电缆网络接入的带宽比DSL或ADSL的带宽要高,但可能电缆网络的速度却没有DSL或ADSL块,因为电缆网络的带宽是共享的,用户越多,你平均获取的网络通信带宽就越低。
典型家庭网络的接入:
现代家庭网络比较典型的接入方式就是:我们用一个调制解调器(DSL的或cable modem的)通过电话线或有线电视电缆连接到头端或中心局。家庭这边通常会部署一些路由器或防火墙或NAT(实现一些地址转换)(这些内容会在后面详细介绍),然后通过有线以太网(局域网)连接家庭的计算机,再通过无线网络(WiFi)连接一些无线设备。这就是家庭接入网最常见的形式。
(2)机构(企业)接入网络
这类网络就是通过局域网(以太网)连接机构路由器,机构路由器再进一步连接到ISP的边缘路由器上,从而实现网络的接入。现在以太网的速率可以达到10Mbps、100Mbps、1Gbps、10Gbps
(3)无线接入网络
近几年,无线接入网络也比较盛行。无线接入网络是利用共享的无线链路实现端系统与路由器的连接。这里我们通常把无线主机连接到基站(有时也称为“接入点”)。
比较典型的无线接入网络目前有两类:无线局域网(最常见的就是WiFi)、
无线局域网:最常见的就是WiFi,现在WiFi的速度可以达到54Mbps。
广域无线接入:可以实现更大范围的接入,最具有代表性的就是利用手机网络、移动网、蜂窝网实现接入。广泛使用的就是3G、4G网络,带宽可以达到1Mbps、10Mbps、100Mbps。这种广域的无线接入也是现在移动互联网的一个重要基础。
3、网络核心
互联网的网络核心看似很简单,就是由一些路由器互联形成的一个网络,甚至网络再和网络互联,构成的网络的网络。事实上网络核心要实现的的关键功能就是两个方面:路由+转发。
我们以Internet网络为例,Internet网络的网络核心如果收到一个数据包或数据分组,那么这个数据分组就像一封信一样,会有地址信息。网络核心就需要根据这个地址信息来正确地把它送到某一个接口,送到下一个节点上去。比如下图中路由器需要把这个数据分组送到2号接口,到送到下一个路由器,下一个路由器以此类推送到下下个路由器,最终把它送到目的地。这个过程中就涉及到两个重要的功能:路由、转发。
问:那么路由器怎么知道应该从哪个接口把数据分组发出去呢?
答:路由器是通过本地转发表(路由表)(见下图)对数据分组进行转发的。本地转发表里包含的信息有:一个数据要想到达某个目的地,就应该在哪个接口的链路把它送出去。因此当路由器收到下图0111的分组时,它去查这个表就知道应该从哪个接口输出了。
问:路由器的这个本地转发表是怎么来的?
答:路由器需要运行相关的路由协议,路由协议去遵循某种路由算法,通过计算获得的。这个过程实际上就是路由的功能
路由+转发总结:
- 路由就是:先确定路径,确定好的路径信息放在转发表,这个过程是路由。
- 转发就是:然后路由器收到一个具体分组的时候去查这个表,最终把这个分组从输入端口交换到输出端口继续发送出去,这个过程就是转发。
回到一般情况,作为网络核心,解决的基本问题是如何实现数据从原主机通过网络核心送达目的主机。实现这一目的的方法就是数据交换。
问:什么是数据交换?有哪些典型的数据交换技术?不同的数据交换技术有什么特点?
答:
4、Internet网络结构
概括起来说,Internet网络是一个网络的网络。也就是说,Internet网络是由很多网络互联后构成的一个全球性的大的互联网。Internet网络这种结构其实是由最边缘的网络的端系统(主机)接入到一个接入ISP,然后最终接入到互联网。这个接入ISP可能是家庭网络,也可能是公司网络或学校的校园网。
接入ISP还必须进一步互相连接,因为只有这样才能保证任意两台主机之间可以相互发送数据分组。
作为全球性的网络,有很多这样的ISP网络连接了很多端系统或主机,它们互联在一起就势必会构成一个网络互联再互联的一个复杂网络。这个网络最终发展的规模、形态主要取决于经济和政策因素。
当前Internet网络结构什么样?没有人能够准确描述当前某一个时刻Internet网络的结构,因为Internet网络结构的动态性很强,随时有网络或主机接入和离开。所以我们只能给出一个大的结构性的描述。
方法一:从国家战略和商业角度看,不可能全球或者一个国家只构建一个全球ISP,一定会有很多竞争者。这些不同的ISP会连接不同的接入网络,不同的接入网络再去连接不同的主机,同时这些ISP之间也必须互联。典型的互联方式就是在ISP之间利用“对等链路(比如加一调光线把几个路由器互联在一起)”将其互联起来(如图1);另一种方式是引入第三方IXP(互联网交换节点)来进行连接,事实上这个IXP本身就是一个高速网络,通过它实现大的ISP之间的互联。
图1(通过对等链路将不同的ISP互联)
图2(通过IXP将不同的ISP互联)
在互联网的发展中,还出现了另一种网络,称为“区域网络”或“区域ISP”。这些区域ISP去连接这些就近的接入ISP,然后再进一步连接全球ISP。(如下图)
近几年,互联网还出现了一种新的网络,就是网络的内容提供商(如谷歌、微软等)在互联网上去构建自己的网络,并且保证这些网络能够就近为端用户提供服务。
因此,现在互联网的结构大致是这样的:最上层是一些一级ISP(全球ISP)和一些内容提供商的网络(这些网络是C域网络,可以跨过一些一级ISP去构建)。这些一级ISP之间会互联,在实际的网络里一级ISP之下可能会有二级甚至三级ISP,然后再去连接区域ISP,区域ISP再连接接入ISP,接入ISP再连接我们的主机。这就构成了我们现在的Internet网络的结构。
四、网络核心
1、数据交换
前面讲过,网络结构包括:网络边缘、接入网络、网络核心。其中网络核心主要解决的问题就是如何将原主机发送的数据成功通过网络核心送到正确的目的主机。为实现这个目的,现在网络主要采用的技术就是数据交换。
考虑到一主机数量庞大,距离很远,并且一台交换机的端口数量有限,所以我们采用的方式是将不同交换机之间互联形成一个交换机网络,然后这些交换机网络再连接主机,从而实现主机之间的数据交换。(如下图)
问:什么是交换呢?
答:这里的“交换”有两层含义:
一是作为交换设备具备动态转接的功能,就是能将数据从一个端口转移到另一个端口,并且这种连接在很多设备里可以并行进行。
另一层含义是在交换网络上,即交换网络如何动态地分配传输资源,实现数据从原主机穿越交换网络送到正确的目的主机的过程。
数据交换从技术分类上可大致分为三种:电路交换、报文交换、分组交换。
(1)电路交换
电路交换最典型的就是电话网络(就是我们每天打电话用的)