计算机网络就是通过各个节点,这个节点包括终端的电脑,手机以及集线器、中介器、交换机、路由器等一些中间设备。通过有线或者无线的方式,把所有刚刚说的节点连接起来,就构成了这样一个计算机网络。
计算机系统包括各种系统的手机端及电脑端,通过的通信设备包括“路由器、集线器。中继器”等等,这都是我们以后要学习的。
接下来再通过线路把它们连接起来,这里面的线路可以说是逻辑线路,因为有的地方是无线的。比如说我们的安卓手机可以连wifi,连到我们所在的局域网网关中,这就是实现了一管逻辑上的连接。
再由功能完善的软件来实现数据通信和资源共享。
首先非常重要的功能就是数据通信,假如我们现在有两台主机,数据通信也很简单,就是把我这个文件发给你,或者发邮件给你,再或者我们之间互发消息等等,这都是数据通信的功能。
然后一个非常重要的功能就是资源共享。资源共享就是指同一个计算机网络上,其它计算机可以使用某台计算机资源的行为。
这里面的资源包括硬件、软件、数据
硬件资源中最常用的是我们的网络式打印机,只要我们的主机还有打印机连在同样一个网络内,同时给打印机配一个固定的静态ip地址,那这样我们的手机就可以通过网络和这个打印机连在一起。实现所有人对这台打印机的共享。
软件共享就是我在我的一个电脑上远程访问了我的另一个电脑,然后使用了我另一个电脑上的一些软件。
数据资源共享是我们最常用的,比如说我们的下载文件。
计算机网络还有几个功能就是分布式处理、提高可靠性、负载均衡
分布式处理就是一个计算机它承受的负荷过大了,它只能把自己的任务分给其他几个计算机。多台计算机各自承担同一工作的不同部分。
一个非常典型的应用就是Hadoop这个分布式平台,它可以进行高速的运算以及分布式的存储。
第四个功能就是提高网络的可靠性,由于使用分布式处理,如果网络中一台机器死机了,我们可以用另一条机器(替代机)来接班。
最后一个功能就是负载均衡,这也是分布式处理所引申处理的一个功能特点,因为使用了分布式处理,所以可以使多台计算机各自承担一部分工作任务,这样也可以使计算机之间更加的亲密,工作效率也会更高。
考试中有时会出计算机网络的发展,我们这里做一个补充说明。
美苏冷战时期,美国当时有一个非常单一且集中的指挥点。为了防止苏联破坏他们的网络系统,导致这个指挥点瘫痪。
所以他们就想设计一个比较分散的指挥系统,这个指挥系统就可以有一个个分散的指挥点组成,当其中一个指挥点被破坏,还有其他指挥点接替被破坏指挥点的工作并且还能实现彼此之间的通信。
而提出这一方案的就是美国国防部高级研究计划局ARPR研究出来的一个网络称为阿帕网APPAnet
后来,接入了很多其他的终端、电脑等从而扩大了阿帕网的规模,但是有一个弊端就是阿帕网只可以连接同一类型的网络。
而随着信息量的增长,为了实现不同网络的互连,也就诞生了我们常说的互联网Internet
而在这个实现过程中,也出现了一个协议叫作TCP/IP协议,通过这个协议可以实现不同网络的连接。
其中IP协议是基本的一个通信协议,TCP协议则是帮助IP协议实现可靠传输的一个协议。
再到第二阶段,美国国家科学基金会NSF围绕六个大型计算机中心建设了一个计算机网络。并称之为国家科学基金网。
这种网络是三层结构:
第三层,也就是最底层是校园网(或者企业网)。这一层的用户如果想连到互联网上,需要连接第二层的地区网。并且第二层的地区网再连到第一层的主干网。
这样就形成了一个逻辑清晰的三层网络结构。
这种三级的计算机网络结构,其实就覆盖了当时美国大部分学校及研究所,成为了当时因特网中的重要组成部分。
但是随着技术的发展,越来越多的用户、公司都可以连接到这个互联网中。就会导致这个网络的信息量急剧增大,而当时的互联网已经满足不了这个需求了。后来美国政府就把这个因特网的主干网交给了一些私人公司来经营,然后开始对接入因特网的单位进行收费。
而刚才说了,美国在第二阶段逐步把控制权交给了一些公司,这些公司在第三阶段就称为ISP,即因特网服务提供者。并且分为主干ISP、地区ISP、本地ISP。
现在这个时代就比如说中国移动、中国电信等。
其实这一阶段还是沿用了第二阶段的三层结构,只不过是把网络的管理权分散,由它们来进行网络的分配,以及服务的提供等等。
而无论我们在校园还是在家里,我们都会交网费,这个网费就是提供给ISP的服务费,通过给ISP支付服务费的方式,才能使用ISP的服务,以申请到一个IP地址来畅游网络。
具体来说,全世界有这样一个非常大的IP池,这是由一个叫作因特网管理机构来管理的。
如果ISP供应商想要给用户提供服务,给它们分配IP,它就首先要从这个IP池里要一个IP地址,把这个IP地址分给用户,这样每个用户就有一个IP地址就可以正常上网了。
举个例子,我们的小区是由江苏移动分配的IP地址,那我们就可以享受到江苏移动分配的服务。
如果你想享受北京移动提供的服务也可以,只不过路途遥远,这个北京移动不是直接管理你的ISP,所以我们在下载一些游戏时,会有很多选项,什么江苏移动、浙江移动等等。
只要每个本地ISP都安装了路由器连接到了地区的ISP,而地区的ISP又连接到了主干ISP,就可以完成因特网中的所有数据分组转发的任务,也就可以让我们访问各个网站的资源了。
但是随着我们流量的激增,以及人们对于网络的要求越来越高,就开始研究怎么更快的转发数据,转发分组。
因此就诞生了一个概念因特网交换点IXP,原本A和B要通信,需要经过一层又一层的ISP结构(本地ISP——>地区ISP——>主干ISP,再一路下来)。而有了这个因特网交换点,我们就可以允许这两个网络直接相连,不再需要第三个网络来转发分组了。
这个IXP的出现也大大的提高了信息传递和资源共享的速度。
计算机网络组成部分::硬件、软件、协议(一系列规则和约定的集合)
硬件就是我们的端系统,以及中间的路由器,交换机等等的中间设备。
软件就是附在端系统上,甚至是包括这个中间设备上面也有一定的软件,把这些软件布到这些硬件上
再通过这个协议,协议穿梭于各个硬件中。这样就构成了一个计算机网络。
计算机网络每个层次是有很多协议的,根据这些协议,我们就可以规定这个数据如何封装,如何打包,如何传输等等。
计算机网络工作方式:
从工作方式上,可以把计算机网络分成边缘部分和核心部分
边缘部分就是由一系列的端系统组成
这些边缘部分,包括一些非常庞大的服务器,还有大型计算机,甚至是非常小的网络摄像头。它们可以实时的捕获到一些信息,并且把这些信息实时的发布出去,这就是边缘部分。
而只有边缘部分并不够,还需要有核心部分的一些服务。也就是通过核心部分提供服务,才能实现端系统和端系统之间的通信。(端系统就是在边缘的这个末端系统)
端系统之间的通信,主要包括两种方式:C/S方式及P2P方式
C/S:即Client/Server方式,即客户/服务器方式,该种方式是最常用也是最古老的。
它描述的是这两个端系统之间的进程呈现出一种服务与被服务的关系。
由于资源是有限的,当访问服务的人越多,速度就越慢。
ps:除了C/S方式,还有一个B/S方式,就是browse/server浏览器/服务器模式。B/S和C/S非常类似,只不过是把客户端换成浏览器。
P2P:即Peer-to-Peer,对等连接。
该种情况下,大家都是对等的,没有一台主机说我一定,或者我一直是一个服务器;也没有一台主机说我一直是一个客户机。
即,P2P中,每个端系统即是客户机,又是服务器。
如上图举个例子,现在A下载了500M的资源,它分发给B、C、D。
而B、C又把得到的资源可以分发给D
就是P2P模式中,每个端系统既可以做客户机也可以做服务机。
计算机网络功能组成方面:
计算机网络主要有两个重要功能:数据通信和资源共享。
根据这两个功能,就可以把计算机网络分成通信子网及资源子网。
通信子网,就是实现资源通信的。
资源子网,就是实现资源共享或者数据处理的。
而我们OSI参考模型中,计算机网络划分成了七层。下面三层是通信子网,上面三层是资源子网
计算机网络的分类:
广域网:广域网的范围非常广:几十到几千公里,广域网算是因特网的核心部分了。它的任务就是通过比较长的距离,可以是跨国家的距离,然后来运送主机之间所要发送的一些数据。
城域网:城域网顾名思义就是覆盖一个城市的网络。
局域网:局域网在地理上是一个比较小的范围,比如说学校或者办公楼,都可以是局域网的范围。
个人区域网:个人区域网就是在个人工作的地方吧自己的一些电子设备,比如说电脑或者智能手表,智能手环等等通过无线技术连接起来的网络。
局域网和广域网的区别:不仅仅是地理范围的差别,如果使用广域网技术就是广域网,同理如果使用的是局域网的技术就是局域网。
举个例子:我和我的邻居通信是通过拨号上网,我们的数据在网络中进行一个交换与传递,这个网络是互联网。所以,虽然我们的距离很近,但是我们实际使用的是广域网的技术,所以这里是广域网。
另外,广域网一般应用交换技术,局域网则是广播技术
公用网:公用网就是国有/私有出资建造的一些大型网络,包括电信、移动、联通等
专用网:专用网就是某个部门或者某个行业为了自己的一些特殊的工作需要构建的网络。比如军队或者政府。
电路交换:打电话就是电路交换,并且一旦这个打电话打通了,连接建立起来就不容易被别人插入了(别人在你打电话的时候再给你打电话就打不通)。
报文交换和分组交换:这两种交换方式不会像电路交换一样,一旦建立连接就一直占线。它们两个所用的技术叫存储转发。
报文交换和分组交换的主要区别是主体不一样。
数据可以是报文或者分组的形式,简单来讲,分组就是把报文切开了,切成一小个,一小个的叫分组。而如果是一整个完整的文件就称之为报文。
报文交换和分组交换的存储转发:如果现在要发一个数据,不论是报文或者分组,首先要放到这个网络上进行传输,可能我先给了一个路由器R1
然后这个路由器R1会存下来我这个报文或者分组,来检查一些它要往哪里发,比如说这里有两条路R2或者R3可供选择
如果它发现走R2更快,它就会把数据转发到R2这条路上。
所以,存储转发的存储,就是指这个路由器对于收回来的数据先存储,查看一下这个数据的目的地址,还有很多其他相关的信息,接下来再转发出去,转发给一个正确的路由方向。
由此我们也可看出报文交换和分组交换的一个特点,它是一段一段的占用链路,而不是像电路交换一样一直占用整个链路资源
拓扑结构其实就是把网络中的节点(路由器、交换机等中间设备,也可以是端系统中的主机),把这些节点变成一个个的小圆圈,然后把通信链路变成一条线。
圆圈和线的组合就是拓扑结构。
广播式网络:其实就是应用在局域网中的一种网络,它是共享公共通信信道的,通常使用的是总线型的拓扑结构,共享中间的一条公共信道,所有连这个网的计算机都可以共享这个信道。并且一台计算机向这个共享信道发送报文分组时,其他的所有计算机都能听到。
点对点网络:它的特点是使用分组存储转发和路由选择机制
该种网络通常对应广域网,这个广域网基本都是属于点对点的网络,它指的是在这个网络中,如果两台主机之间需要通信,但是没有直接连接的话,就需要很多中间节点来实现分组的存储转发和路由选择,也就是我们前面讲的报文交换和分组交换的存储转发机制。
点对点和广播式区别是:点对点不是所有人都可以听到,只有你可以听到。
速率:即数据率或称数据传输率或比特率
比特是数据传输的单位:1/0位
带宽:指网络网络的通信线路传送数据的能力,通常指单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。单位是比特/秒
如果带宽变大,只能说它单位时间内,向链路中注入的数据量(比特数)变多了,而不会影响这个比特在链路上的传播速度,只能说它发送的更快了。
吞吐量:表示在单位时间内,通过某个网络(或信道、接口)的数据量
上图中链路带宽是100MB/S,但是两个服务器总共传过来的也就20+10=30Mb/s,所以这里吞吐量是30Mb/s
链路带宽算是一个理想的数据,但是能不能达到就是另外一说。
就像我可以吃10碗饭,但是你只给我3碗饭,那这里的吞吐量就只有3了。
时延:指的是数据(报文/分组/比特流)从网络(或链路)的一端传送到另一端所需的时间。也叫延迟或迟延
假设现在有AB两个主机,它们通过链路(光纤或者同轴电缆)进行连接,然后再安上一个路由器。
假设A主机有10位比特
A现在要把这些数据发送给B,首先它要经过的就是这个
发送时延,把所有的数据从它自己身上发到信道上这段时间就是发送时延。
发送时延受两个因素影响:一个是我们有多长的数据,另一个就是我发送的快慢。
ps:我们前面讲过“带宽”,带宽是指最高传输的数据的速率,也就是我们这个主机可以发送的最高数据率。但是我们在实际生活中,这个传输速率或者发送速率是达不到我们信道的带宽的。但是做题的时候,给的基本都是带宽,做题还是以题目为准。
假设我们现在带宽是10b/s,也就是A主机1S可以把10个比特完全推倒信道上面来。
而对于传播时延:相当于是数据从起始位置到路由器的位置,这段时间就是传播时延。
传播时延是指电磁波在信道上传播一定距离所花费的时间。它取决于电磁波传播速度以及链路的长度。
ps:我们的信号会经过一定的调制,信号会以电磁波为载体进行传输。
假设AB之间距离是100m,那它们之间的电磁波在信道上的传播速率是10m/s,那这里的传播时延=100/10=10s
排队时延:它是等待输出或者输入链路可用所需要等待的时间。
我们现在数据已经到路由器这里了,但是路由器可能当时正在处理别的事情,所以会让这些数据先等待。等待的时候其实是在缓存路由器的每一个口,这里会有一个缓存空间。
处理时延:数据等待结束,路由器还要进行一些处理(检查一下要发送到哪里,检查一下序列有没有出错。。。)
所以在检错和找出口也需要一段时间,这就是处理时延
ps:我们常说的“高速”,是指提高了带宽,减小了发送时延,但是传播时延以及传播速率都是不变的。
时延带宽积:指的是时延和带宽的乘积,注意,这里的时延是指传播时延,带宽则是指发送端在发送数据时可以达到的最高数据率。
往返时延RTT:指的是发送方发送数据开始,到发送方接收到接收方的确认总共接收到的时延。
利用率
但是利用率增大也会导致时延增大,就像高速公路上,如果这条路车很多说明利用率很高,但是一旦利用率过高,就容易堵车,反而要经过时间更多了。
举个送酒杯的例子:
第一:实体的概念:实体就是每一层的活动元素。
比如下图的两个酒杯就是实体,如果还是同一层的,就是对等实体
第二:协议,协议是指一系列的规则或者约定,比如我们在第二层,我们对于规定包住酒杯的棉花怎么拿,怎么取,这是我们对于该层的要求,这就是该层的协议
每层都有自己的协议,协议是指水平方向的对应层,对应实体之间才有协议。
第三:接口,就是每两层之间这个位置叫接口。
分层的基本原则:
下图是把我们网络第3、4 、5层的数据单元进一步的抽离出来。
我们来看一下它们存在什么样的数据包含关系。
SDU服务数据单元:指的就是为完成用户所要求的功能而应传送的数据。简而言之就是有含金量的那一部分。
PCI协议控制信息:就是控制协议操作的信息。
PDU协议数据单元:对等层次之间传送的数据单位。
比如说下图这个数据,我们每层加一个PCI控制协议信息,再加一个SDU服务数据单元,形成了一个PDU,然后往下一层传,下一层新的PCI和SDU又形成了新的PDU往下传。。。一直传到物理层。
早些年代,不同公司都有不同的网络体系结构。为了支持不同的网络体系结构就产生了OSI参考模型,但是理论是好的,实际操作却失败了。
OSI不适合市场需要,TCP/IP更符合市场。但OSI理论也仍具有我们学习的价值、
从下到上,你可以记一个口诀“物联网淑慧试用”(分别对应没一层网络)
现在我们有两个主机A和B要进行通信:
而要进行通信,就需要有中间系统的介入,比如说路由器、网桥交换机。。。
而进行通信过程中,信息需要经过我们的OSI七层参考模型
A和B这两个主机在发送和接收信息都需要经过七层
而中间的路由器只需要经过三层
首先,物理层有传输介质(可以是光纤、电缆),因为我们知道,如果要进行通信,信息必须要放到某种传输介质上才能使我们的信息传输过去。
每个(对等)层次之间是对等的,实体之间会有相应的协议。比如说应用层,主机A和B会有协议规定应用层应该实现哪些功能。
中间系统是不会有上面四层的(上面四层的功能中间系统用不到),所以我们可以把上面四层看成主机A和B相对应的层次,相当于之间连在一起了。
就像我给你寄一封信,虽然信中途会经过邮局什么的我不管,我只要知道信最终到你那了就行。
上面四层也是类似的,就好像由A直接传到了B,直接形成了端与端之间的联通。
而下面三层就要进入中间系统了。假如说中间系统比较多,一个中间系统还要再传给下一个中间系统。。。这就是点到点(只是管我下一块要走到哪里,不问最终终点)。
端到端:上四层——只看起点和终点
点到点:下三层——只看中途经过的地方,不问起点终点
我们在每一层都加上控制信息,在应用层首先对数据加了头部(也叫首部)H7,7表示第7层。而数据加上应用层的首部控制信息之后,就形成了第七层的PDU,就是协议数据单元。
然后往下,加上第六层的头部,形成了第六层的PDU
。。。
相同的操作到数据链路层,这里需要注意,不仅加了头还加了尾
就这一个特殊的地方,你简单记忆:数据链路层本身六个字字就比别的层三个字多,所以这里它要多加一个尾
然后物理层不会进行其他处理了,它形成一个比特流序列,然后进入传输介质。
然后到B这里,一步一步往上走。。。