第一章 计算机网络体系结构
一 计算机网络概述
1.1 概念及功能
1.1.1 计算机网络的概念
计算机网络就是互连的、自治的计算机系统的集合
互连:通过通信链路互联互通
自治:各个节点之间无主从关系,高度自治的
1.1.2 计算机网络的功能
功能1、数据通信(最基本的功能)
两台主机之间可以进行相互传输数据文件
功能2、资源共享
同一个计算机网络上的其他计算机可使用某台计算机的计算机资源的行为,可共享硬件、软件、数据。
- 硬件共享:例如网络式打印机,将打印机连在一个网络里,同时给打印机设置一个固定的静态IP地址,接着我们的手机可以通过网络和这个打印机连在一起。即可实现所有人对这台打印机的共享。
- 软件共享:例如电脑上远程访问另一台电脑,然后使用这个电脑上面远程访问另一台电脑,接着使用另一台电脑上面的办公软件,或者是画图,此时就实现了软件的资源共享。
- 数据共享:例如在百度文库上上传或者下载文件,这些都是数据的共享,这个网络资源的共享并不一定是免费的,它还会有收费的情况。
功能3、分布式处理
场景:一台计算机它的负载过大,那么此时可以使用多台计算机可以各自承担统一工作任务的不同部分,此时工作效率就会变高。
举例:非常典型的应用则是hadoop这样的一个分布式平台,可以进行高速的运行以及分布式的存储。
功能4、提高可靠性(分布式处理引申功能)
若是分布式处理网络中一台主机宕机了,那么此时可以让另一台机器作为替代机实现。
功能5、负载均衡(也是分布式处理引申功能)
使用了分布式处理后,可以使多台计算机各自承担一部分的工作任务,相对比较均衡。
1.1.3、因特网发展阶段
第一阶段:阿帕网
美苏冷战时期,美国国防部有一个单一,十分集中的点,这个中心是否被害怕被核武器给摧毁,一旦中心被摧毁,那么全国的局势系统就会瘫痪,因为所有的节点都依附在这一个只会中心上,此时就想着是不是能够设计一个比较分散的指挥系统?
- 预想的一个指挥系统:在指挥系统中有一个个分散的指挥点组成,一旦其中的指挥点被炸掉了,那么还会有其他节点可以接替工作,并且还可以实现彼此之间的通信。
该组织就是美国国防部高级研究计划局(ARPA),设计了一个网络叫做阿帕网。是互联网的前身
网络把所有计算机连接在一起,而互联网则把许多网络连接在一起,因特网(Internet)是世界上最大的互联网。
第二阶段:三级结构
1985年,美国国家科学基金会NSF围绕6个大型计算机中心建设计算机网络,即国家科学基金网NSFNET。
这样的网络是由三层结构构成,最底层就是校园网或者企业网,对于最底层用户若是想要连接到互联网,就需要连接到第二层的地区网,并且第二层地区网再去连接到第一层的主干网,此时就形成了逻辑比较清晰的三层网络结构。
(主干网->地区网->校园网(企业网))
对于这种三级的计算机网络结构,实际已经覆盖了当时美国大部分的学校以及研究所,并且成为了因特网当中的主要组成部分。
第三阶段:多层次ISP结构(认识IXP)
随着技术的发展,越来越多用户、公司连接到互联网中,此时就会导致网络的信息量急剧增大,而美国当时所掌握的这个因特网已经满足不了大量的要求了,此时美国政府则将因特网的主干网交给一些私人公司来经营,并且开始对介入因特网的单位来进行收费。这些第三方的公司则被称为ISP。
ISP(因特网服务提供者/因特网服务提供商):是一个向广大用户综合提供互联网接入业务、信息业务和增值业务的公司,如中国电信、中国联通、中国移动等。并且分为主干ISP、地区ISP和本地ISP。
学习回顾与重要总结
1.2 组成和分类
1.2.1 计算机网络的组成部分
1.2.1.1 组成部分(硬件、软件、协议)
组成:硬件、软件、协议(一系列规则和约定的集合)。
- 硬件:端系统(边缘末端的系统)以及中间的路由器,交换机等等中间设备。
- 软件:附在端系统上,甚至是包括这个中间设备上也有一定软件,将软件来布到硬件上。
- 协议:协议穿梭在各个硬件当中,构成了计算机网络,计算机网络的每一个层次,都是有很多协议的,根据这个协议来规定数据如何封装、打包、传输。
1.2.1.2 工作方式(边缘部分、核心部分)
工作方式:边缘部分、核心部分
边缘部分:就是一系列的端系统组成,这些端系统,不仅仅包含一些计算机,也可以包括非常大的一些服务器、大型计算机,
还可以是一些非常小的网络摄像头,实时的捕获到一些信息,并将这些信息实时发布出去。
- 端系统:边缘末端的系统。
- 端和端的通信:指的是两个端系统之间的进程通信。举例:主机A某个进程如QQ与主机B某个进程如QQ直接进行发送、接收消息,这就是两个端系统之间的进程通信。
两个端之间通信(用户直接使用)包括两种方式:C/S方式【或B/S方式】、P2P方式。
- C/S方式:client/server通信。例如微信(client)之间聊天发送消息都是通过的服务器(server)来进行转发。【B/S则是浏览器与服务器】
- P2P方式(peer-to-peer):对等连接。所有的主机都有两个身份,一面提供服务的服务者,另一面就是使用服务的享受者,既可以充当客户也可以充当服务器。
核心部分:计算机网络只有边缘部分不够,还需要使用核心部分的一些服务,通过核心部分提供服务,边缘部分才能够实现端系统与端系统之间的通信。
简述:主要是给边缘部分提供服务的,包括路由器以及一些中间设备,还有一些网络连接起来,此时构成了计算机网络。
1.2.1.3 功能组成(通信子网、资源子网)
计算机网络主要两个功能为数据通信、资源共享,根据这两个功能可以对计算机网络来进行划分:通信子网、资源子网。
- 通信子网:实现数据通信。(物理层,数据链路层,网络层)
- 资源子网:实现资源共享/数据处理。(应用层,表现层,会话层)
上三层主要是对数据进行封装处理,下三层主要是将这个数据送上路,对于中间的传输层,起到一个非常重要的融会贯通的作用。
- 传输层:主要是为了弥补上面三层要求的服务和网络层提供服务之间的差距,并且向高层用户屏蔽通信子网当中的一些细节。
- 实际举例子:你在网上商城上下了订单,此时商家就会根据订单中的宝贝进行打包包裹,那么对于封装好了宝贝之后就需要送上去,而对于具体下一站送到哪里,如何送上车,是空运还是邮寄,我们都无需管。这个中间传输的过程就是传输层要做的事情。
1.2.2 计算机网络的分类
1.2.2.1 按照分布范围分(含局域网与广域网区别)
按照分布范围分:广域网WAN、城域网MAN、局域网LAN、个人区域网PAN
- 广域网WAN:范围十分广,几十到几千公里,广域网算是因特网的核心了,任务就是通过比较长的距离可以跨国家的距离来运行主机之间要发送的一些数据。
- 城域网MAN:可以覆盖一个城市的网络。
- 局域网LAN:地理上比较小,例如一个学校、一个办公楼都是局域网范围。
- 个人区域网PAN:个人工作的地方,将自己的一些电子设备,如电脑、智能手表、手环等,通过无线技术连接起来的网络称为无线个人局域网,范围在10米左右。
对于局域网与广域网的区别:
①不能够仅仅只是凭借物理距离来判定,而是要根据实际使用的技术来决定。
举例:我和邻居相隔很近,但是由于各自使用自己的wifi,那么我们直接发短信通信,这个实际上是在网络中进行一个交换和传递,
这个网络就是互联网,虽然说我们物理距离离得很近,但是实际上使用的广域网的技术来进行通信的。
②局域网使用的是广播技术;广域网使用的是交换技术。
如何巧记?
- 局域网广播技术例子:例如在一个村子里,我们只需要打开广播,吼一声,那么全村人都可以听见了。
- 广域网交换技术例子:你在一个县,接着你要和另一个省的人说哈,此时就不是吼一声的事情了,此时需要使用的就是交换技术,通过路由器等等一些中间设备,将数据一点一点的转发存储并交换出去。
1.2.2.2 按照使用者来分(公用网、专用网)
-
公用网:一般是国有或者私有出资建造的一些大型网络,包括电信、联通、移动。
-
专用网:某个部分或者某个行业,为了自己的一些特殊工作需要构建的网络。比如说军队、政府或者说是我们现在很多互联网公司一个办公室,整个办公间使用的都是专用网,是内网。
1.2.2.3 按照交换技术来分(电路、报文、分组)
按照交换技术来分:电路交换、报文交换、分组交换
①电路交换:特点就是在通话的时间内通过的双方会完全占着中间的资源,不能够被其他人所使用。
- 电路交换原理:①建立连接,占用一个通信资源。②传输数据,双方一直占用资源。③断开连接,把电话挂了之后即可断开连接。
- 举例:打电话就是电路交换,包含几个步骤,首先拨号若是对方接听了,那么此时建立号一个链接,其他人若是给你打电话就会出现正在通话中无法插入,此时就表示已经占线了。
②报文交换、分组交换:两者之间都是采用的存储转发方式,仅仅只是对于主体并不相同。
存储转发介绍:若是此时将一个数据(报文或者是分组)放在网络上进行传输,这个数据可能会交由一个路由器,接着这个路由器会存储下来这个报文或者分组,检查一下要往哪里发,此时若是有好几条路,此时就会选择一个更近的路由器来进行转发给它。
**报文交换与分组交换的不同点:**主要是主体不一样,报文是一个大的一整个文件,而分组则是将一整块报文拆分成一个个分组。
**报文交换与分组交换的共通点:**都是采用的存储转发,并且占用线路是一段一段的,并不是向电路交换一样独享占用。若是有其他数据也是在同一条链路上发送也是可以的。
1.2.2.4 按照拓扑结构分类(总线、星、环、网)
**拓扑结构:**将网络中的节点(可以是路由器、交换机、或者段系统的主机),将这些节点变为一个个小质点,小圆圈,接着将通信链路抽象成一条线,将这个圆圈儿和线组合在一起称为拓扑结构。
①总线型:所有的端系统或者说节点都连接在这个总线上面。
②星型:由中间这个节点四散开来链接每一个节点。
关于星型这一块主要考察节点的个数以及中间链路数的关系。如果说是有6个节点,那么需要的是五条链路。
③环型:将所有的节点连接在一起构成环。
④网状型:可在广域网中常用的拓扑结构,多对多的关系。
1.2.2.5 按照传输技术分类(广播式、点对点)
按照传输技术分为:广播式网络、点对点网络
广播式网络:共享公共通信信道
- 具体介绍:是在局域网当中一种网络,是共享公共通信信道的,通常使用的是这个总线型拓扑结构,共享中间的这样一条公共的信道,所有的这个联网的计算机都可以享用这个信道,并且当一条计算机向这个共享信道发送报文分组的时候,所有计算机都会收到这个分组。
点对点网络:使用分组存储转发和路由选择机制。
- 具体介绍:通常是对应广域网,广域网基本都是点对点的网络,指的是若是网络当中两台主机想要实现通信,但是没有直接连接的话,它就需要很多中间节点来实现分组的存储,转发和路由选择。
- 与广播区别:发的信息并不是所有计算机都能够收到,只有目标的计算机才能够收到。
知识回顾脑图
1.3 标准化工作及相关组织
1.3.1 标准化工作
若是要实现不同厂商的硬、软件之间相互连通,必须遵循统一的标准。
1.3.2 标准化分类(法定、事实标准)
标准分类分为:法定标准、事实标准
- 法定标准:由权威机构制定的正式的、合法的标准。可以是国内也可以是国际上的法定标准,比较常见的是书中提到的OSI标准。
- 事实标准:某些公司的产品在竞争中占据了主流,TCP/IP时间长了,这些产品中的协议和技术就成了标准。
1.3.3 RFC及其发展为因特网标准的四个阶段
RFC(Request For Comments,请求评论):因特网标准的形式。
RFC要上升为因特网正式标准的四个阶段:
1)因特网草案(Internet Draft)这个阶段还不是RFC文档。
- 首先在这个阶段并不能够算是一个rfc的文档,只能说是一个构思,假如说目前想要制定一个标准,此时就可以先拟出一个因特网草案出来,实际就是一个我个人觉得可以成立的标准。
2)建议标准(Proposed Standard)从这个阶段开始称为了RFC文档。
- 构建出来之后此时可以发邮件给:rfc-editor@rfc-editor.org,若是他们回复你觉得很棒,那么此时就会进入到下一个阶段;若是回复欢迎下次再来,就表示没有通过。
3)草案标准(Draft Standard)
- 可以开始请求评论,将rfc文档放到因特网上,等着很多人给你进行修改意见,来对RFC文档进一步进行完善,完善之后此时就会形成了一个草案标准。
4)因特网标准(Internet Standard)
- 此时进入最终阶段,会将这个草案标准拿给IETF、IAB组织来进行审核,若是最后一关也通过了,那么因特网草案就成为了一个因特网的标准。
注意:在2011年之后,第三个阶段就取消了。
1.3.4 标准化工作的相关组织
国际标准化组织(ISO):OSI模型、HDLC协议。
国际电信联盟(ITU):制定通信规则。(负责电信电话这一方面)。
电器和电子工程师协会(IEEE):学术机构、IEEE802系列标准、5G。
Internet工程任务组(IETF):负责因特网相关标准的制定、RFC xxxx。
其中最重要的则是这个国际标准化组织ISO。
脑图时刻
1.4 性能指标
1.4.1 速率
速率:数据率或称数据传输率或比特率。连接在计算机网络上的主机在数字信道上传输数据位数的速率。
- 比特:表示1或者0,最小单位。
其中的单位是b/s,kb/s,Mb/s、Gb/s、Tb/s
接下来是速率的换算单位及存储容量比较:
注意:数据传输速率(通信领域)是103(1000)为换算单位,对于存储容量(形容大小)是210(1024)作为换算单位,1024。
1.4.2 带宽
带宽:原本指某个信号具有的频带宽度,即最高频率与最低频率之差,单位是赫兹(Hz)。
- 计算机网路中,带宽用来表示网络的通信线路传送数据的能力,通常是指单位时间内从网络中的某一点另一点所能通过的"最高数据率"。单位是比特/s,例如:b/s、kb/s、Mb/s、Gb/s。
带宽举例:网络设备中所能支持的最高速度,例如有一台交换机,有一个口是100M的口,也就是说交换机这个100M的口最多极限的传输速率就是100M比特每秒,如果说这个交换机这边连一个百兆的网卡,那么两个就可以实现一起通信,在通信的过程中,一秒最多这个交换机能往信道或者链路上面传输的比特数为100M比特。
注意:带宽指的是在这个入口位置发送数据的速率,而不是指在链路上传播的速率。实际在链路上都是以电磁波的形式来传播的。带宽就是发送端最高能发送的数据率,也就是理想当中极限的传输数据率。
下面使用图示来理解速率与带宽的区别:
情况1:我们这里的有一条链路:①首先链路带宽=1Mb/s,换算下来主机在1us可向链路发送1bit数据。②传播速率为2x108m/s,电磁波1us可向前传播200m。
下面是表示在1us、2us、3us的时候在链路中bit的位数以及传输情况:
- 在第1us的时候发送出来一个bit,在第2us的时候第一个bit传输了200米,并且此时再次发出1个bit;在第3us的时候再次发送了一个bit,并且前2us发送的bit同时传输了100米。
情况2:接下来是链路带宽为2Mb/s的情况:
- 对比上一个1Mb/s差别就是一个是每1对比上一个1Mb/s差别就是一个是每1秒发送1个bit,当前这个则是1秒发送两个bit,图是在3us时链路中的情况。
结论:若是带宽变大,那么就表示单位时间内往链路中注入的数据或者数据量比特数变多了,但是不会影响这个比特在链路上传播的速度,只能说发送的变快了。
1.4.3 吞吐量
举例:例如一个景区的门口,在十分钟之内,进出了多少人,这就是景区门口的吞吐量。
吞吐量:表示在单位时间内通过某个网络(或信道、接口)的数据量。单位b/s、kb/s、Mb/s等。
首先我们有一台主机和交换机,我们自己的计算机与交换机都有百兆口,那么对于链路带宽就是100Mb/s。
- 百兆口:我们这台计算机往外发送速率最快是100Mb每秒,交换机同时往外发送的速率也是100Mb/s。
- 那主机和交换机的接收速率是多少?接收的速率是看相对应的缓存多少来决定。
此时主机开始访问两个服务器里的网页,对于服务器1也就是上面这一个速率为20Mb/s,对于服务器2下面一个速率为10Mb/s,对于这个速率实际上是受这个服务器自身的发送速率限制的。
- 此时我们可以看到的带宽(理想的状态,一般情况下服务器、主机的传输速率比带宽小的),此时我们可以计算一下当前链路上吞吐量为20Mb/s+10Mb/s = 30Mb/s,也就是将两个服务器的传输速率加起来。
简单理解带宽、速率、吞吐率区别:链路带宽实际就是带宽标准的最高数据量(理想的),吞吐量(实际的,所有链路相加),速率(指的是单个服务器、单个主机能够发出的速率)。
通俗易懂例子:如吃方便面,我个人胃口最大可以吃100碗(带宽),对于这个碗数可以不分厂家,此时一个厂家1s给了20包(速率),另一个厂家1s给我30包(速率),那么我这1s只能够吃50包(吞吐量)。
1.4.4 时延
指数据(报文/分组/比特流)从网络(或链路)的一端传送到另一端所需的时间,也叫延迟或迟延。单位是s。
时延包含四大类:
- 发送时延(传输时延)。
- 传播时延。
- 排队时延。
- 处理时延。
①发送时延
发送时延(传输时延):指的是从发送分组的第一个比特算起,到该分组的最后一个比特发送完所需的时间。
发送时延受两个因素影响:①多长的数据。②发送的快慢。
公式:发送时延 = 数据长度/信道带宽
其中信道带宽指的就是发送速率。在实际生活当中传输速率或发送速率是达不到信道的带宽的,而在做题时我们一般都是使用带宽来作为发送速率!
举例:我们有10bit数据,带宽为10b/s,此时我们的发送时延为10bit / (10b/s) = 1s,此时我们的发送时延就是1s。实际就是我们将所有的数据推送到信道的时间。
②传播时延
传播时延:是在信道上传播一定距离所花费的时间,取决于电磁波传播速度和链路。
- 信道长度,链路长度可以理解为一端介质,链路信道可以是光纤、同轴电缆等。
- 电磁波的传输速度一般为3x108bit/s,不过在实际应用中是在固体介质上进行传输,那么会有一定的损耗最终速度一般是2x108bit/s。
为什么电磁波在信道上传输呢,不应该是比特流或者信号在传输吗?
- 我们的信号会经过一定的调制手法,把信道的这个电磁波作为载体进行传输。
- 通俗理解:电磁波就像是一个工人,这个电磁波可以背着比特流向前跑,所以这个比特流在信道上面传输的速率显示效果就是电磁波在上传传播的速率。
公式:传播时延 = 信道长度 / 电磁波在信道上的传输速率
例子:如下图我们数据在信道上传输到达路由器为止刚好等候的这一段时间就是传播时延。
对比发送时延:发送时延一般发生在主机内部,发生在网络适配器当中也就是机器内部的发送器里;传播时延则是发生在机器外的,发生在这个信道上面的。
③排队时延
排队时延:等待输出或者输入链路可用所需要的等待时间。
例子:我们主机传输的信息到达路由器,但是还没有被处理此时在外面待得时间就可以称为是排队时延。
④处理时延
处理时延:若是数据排队结束此时可以进行一些转发的工作了,对于这个转发过程也是需要时间,主要包含有检错、找出口。
对于排队时延与处理时延的举例:拿机场过安检作为例子,我们人已经在安检后的队伍里了,此时我们前面还有很多人,此时就需要等待,这个时间就是【排队时延】;终于过了很久以后,排到我们了,此时上安检台,这个在安检台上检测处理的过程就是【处理时延】。
发送速率与传播时延是否有无关系?
若是我们将发送速率增加换为100bit/s(原先10bit/s),此时发送速率或信道带宽就提高了,在数据长度不变的情况下,发送时延肯定会变小。
- 衍生:高速链路中发送速率的提高,只会影响信道带宽、发送速率变高以及发送时延减小,并不会影响电磁波的传输速率以及传播时延。
1.4.5 时延带宽积
时延带宽积:时延和带宽的乘积。用来描述数据量或者信息量的一个性能属性。
- 这里的时延指的是传播时延,是发送端在发送数据时可以达到最高数据量率。指的是电磁波在信道上传输所花费的时间单位是s。
- 带宽:则是b/s。
公式:时延带宽积 = 传播时延 x 带宽。
传播时延以秒为单位,带宽则是以b/s为单位(几比特每秒为单位),那么时延带宽积的单位就是bit。
更加生动理解时延带宽积:就是从链路开始-链路借位的所有数据容量。
![时延带宽积](images/时延带宽积.jpg)
时延带宽积又称为以比特为单位的链路长度,通俗易懂说就是"某段链路现在有多少比特",指的是此刻链路当中的数据容量性能指标。
1.4.6 往返时间RTT
一般打游戏时会出现这个RTT,若是数字比较大,那么打起来就非常卡,若是数字很小,打起来就十分流畅。
RTT定义:指从发送方发送数据开始,到发送方收到接收方的确认(接收方收到数据后立即发送确认),总共经历的时延。
- RTT越大,在收到确认之前,可以发送的数据越多。
RTT组成:①往返传播时延 = 传播时延 * 2。②末端处理时间。
- 其中传播时延指的就是在信道上传输的时间,与电磁波速率以及信道长度有关,往返的话就是两倍的传播时延。
- 末端处理时间指的就是接收方可能会对这个数据进行处理到发出一个确认帧的处理时间。【一般的话题目会直接计算两倍的传播时延,对于末端处理时间会直接忽略】
注意:RTT是不包含传输时延的(指的是将所有的数据从主机放到信道上的时间),仅仅只是传输数据是在信道上的时间。
实际例子:在MAC电脑上进行ping百度的域名,此时就会有相应的RTT往返时延时间。
1.4.7 利用率
利用率定义:利用的效率,主要就是看这个链路上有多少时间是由数据的,若是链路上一直有数据在进行传输,那么就说明链路的利用率核稿,若是没有数据传输,那么利用率比较低即为0。
利用率分类:信道利用率、网络利用率。
- 信道利用率公式:有数据通过时间 / (有+无)数据通过时间。
- 网络利用率公式:信道利用率加权平均值。
相关联的性能指标:若是时延越大,那么就表明此时在信道上传输的数据很多,利用率也会无限靠近1,相对应的速率实际上会降低。
举例:
场景一:在同样长的信道上,仅仅只有几个数据在进行同行,那么就表示利用率比较低。
场景二:在同样长的信道上,有大量的数据在进行传输,数据更多,那么利用率更高。
脑图时刻
二 计算机网络体系结构与参考模型
2.1 分层结构、协议、接口、服务
2.1.1 引出分层,为什么要分层?
发送一个文件之间需要完成的工作:
- 发起通信的计算机必须将数据通信的通路进行激活。
- 要告诉网络如何识别目的主机。
- 发起通信的计算机要查明目的主机是否开机,并且与网络连接正常。
- 发起通信的计算机要弄清楚,对方计算机中文件管理程序是否已经做好准备。
- 确保差错和意外可以解决。
- …还有其他一系列的工作
可以看到仅仅是发送一个文件就涉及到一系列的大问题,那么这么多的问题放在一起肯定无法直接一连串解决,那么此时可以进行分解成小问题来实现。
解决方案:分层结构。
2.1.2 如何进行分层?(实际举例以及理解名词)
实际生活中寄快递的例子:
理解多个名词:实体、对等实体、协议、接口、服务。
- 实体:要寄送的物品,也就是对方实际要接收到的数据。
- 对等实体:两个活动对象很类似的物品,两个统称叫做对等实体。
- 协议:固定每一层要如何包装,如何解包装,只有对等实体才有协议。
- 举例不符合协议的案例:例如软包装以及拆木箱,本身并不是对等实体,那么两层不对等的实体之间是没有协议的。
- 接口:逻辑接口,规范定义。
- 服务:每两个层之间所提供的东西,叫做服务。上层是使用下层的服务的,下级要为上级提供服务。
分层的基本原则:
-
各层之间相互独立,每层只实现一种相对独立的功能。
-
每层之间界面自然清晰,易于理解,相互交流尽可能少。
-
结构上可分割开,每层都采用最合适的技术来实现。
-
保持下层对上层的独立性,上层单向使用下层提供的服务。
-
整个分层结构应该促进标准化工作。
2.1.3 正式认识分层结构(名词真实含义,协议三大要素)
下面来重新正式认识多个名词在上图中的表示说明:
1、实体:第n层中的活动元素称为n成实体。同一层的实体叫做对等实体。
2、协议:为进行网络中的对等实体数据交换而建立的规则、标准或约定称为网络协议。【水平】
例如4层协议无法与3层协议对等。
协议的三大要素:语法、语义、同步。
- 语法:规定传输数据的格式。
- 语义:规定所要完成的功能。
- 同步:规定各种操作的顺序。
下面例子采用一个二进制数来举例各个要素在其中表示的含义:001000100111001
- 语法举例:按照0或1数字形式来阐述或从哪里开始分割。
- 语义举例:之前语法说会进行分段,那么对于每段的含义也是要进行规定规范的,实现什么功能。
- 同步举例:规定各种操作的顺序,如规定哪个部分数据先发及后发,这是顺序的规定。
3、接口(访问服务点SAP):上层使用下层服务的入口。
对于相邻之间都会有接口,通过这个接口来作为一个桥梁,这种联系是需要使用服务。
4、服务:下层为相邻上层提供的功能调用。【垂直】
2.1.4 分层之间的数据关系(SDU、PCI、PDU)
对第五层、第四层、第三层分别抽出来看下对应三层之间存在一种什么样的数据包含关系,分别为:SDU、PCI、PDU。
①SDU服务数据单元(Service Data Unit):为完成用户所要求的功能而应传输的数据。
- 简单来说:就是每一层要传送的数据,有用的部分。
②PCI协议控制信息(Protocol Control Information):控制协议操作信息。
- 简单描述:指的是控制协议操作的信息,简单理解为一些控制信息。
③PDU协议数据单元(Protocol Data Unit):SDU加上PCI控制协议,实际对等层之间传送的数据单位。
叙述每层之间数据关系:每一层的PDU会作为下一层的SDU,再加上相对应层的PCI协议信息即可再次构成PDU。
PDU = SDU + PCI
概念总结
-
网络体系结构是从功能上描述计算机网络结构。
-
计算机网络体系结构简称网络体系结构是分层结构。
-
每层遵循某个/些网络协议以完成本层功能。
-
计算机网络体系结构是计算机网络的各层及其协议的集合。
-
第n层在向n+1层提供服务时,此服务不仅包含第n层本身的功能,还包含由下层服务提供的功能。
-
仅仅在相邻间有接口,且所提供服务的具体实现细节对上一层完全屏蔽。
-
体系结构是抽象的,而实现是指能运行的一些软件和硬件。
脑图时刻
2.2 OSI参考模型
2.2.1 认识计算机分层标准
计算机分层结有多种标准:7层OSI参考模型、4层TCP/IP参考模型。
7层OSI参考模型:法定标准。
- 法定标准指的是发来规定的计算机网络参考模型标准。
4层TCP/IP参考模型:事实标准。
- 事实标准指的是目前现实生活中通用的一个参考模型,用户体验好。
通过总结优缺点,接着得到一个新的五层体系结构,主要是为了学习更方便、思路更清晰所产生的。
2.2.2 认识ISO/OSI参考模型以及怎么来的?
为了解决计算机网络复杂的大问题,按照功能来进行分层结构。
2.2.3 认识ISO/OSI参考模型七层
OSI包含七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
上三层属于资源子网主要进行数据处理,下三层则是通信子网主要用来进行数据传输。
2.2.4 ISO/OSI参考模型解释通信过程
2.2.4.1 简单理解数据传输的过程
传输一个数据的过程如下图的1-6步骤:
- ①首先主机A会经过7层,每一层都会添加相应的控制信息,只有物理层仅仅只是转换为二进制来进行传输;
- ②通过传输介质传输比特流数据。
- ③经过一些中间系统(例如路由器、交换机)【整个传输过程中可能会碰到多个】,对于中间系统仅仅只有三层,会进行从物理层-数据链路层-网络层会将比特流还原到数据链路层接着还原到网络层。接着再依次一层层包裹到物理层再次发送出去。
- ④在中间系统中封装数据包,最终在物理层转为比特流继续传输给目标主机。
- ⑤通过传输介质传输比特流数据。
- ⑥目标主机也是有七个层,从物理层开始不断进行拆解。
- 其中两个端系统都需要经过七层,中间系统如路由器这些只需要经过三层(物理层、数据链路层、网络层)。
注意:物理层并不会添加一些附属控制信息,在物理层中将数据转换成二进制0、1形式。
2.2.4.2 理解各层是属于端到端还是点到点?
主要目的是看一下之前对数据都进行了哪些操作,如接下来要往哪里送。
- 对于上四层,由于中间系统并不涉及,那么实际对于主机A与主机B的上四层实际是端到端的。
- 对于下三层,由于中间系统也涉及到了这三层,并且中间经过的中间系统可能是多个路由器或者其他转发设备,那么称下三层为点到点的。(每一次只是管下一步走到哪里)
2.2.4.3 各层之间数据以及协议的增、拆过程(数据封装流程)
每一个层次对于数据具体是怎么样操作的?
如下图主机A从7-1接着在物理层转换为比特流后传输数据到主机B,之后依次从1-7进行拆解:
这里使用主机A来打包过程描述:首先在应用层时,数据会增加PCI控制信息,那么对应的H7中的7表示第七层的头部,此时DATA、H7就组成了一个7-PDU,接着进入到表示层,同样也会加上第六层表示层的头部H6。下面第5、4、3都是如此。
- 那么拆包过程实际每层做的动作都是相对应的,一个是加控制信息,在拆包这里就是拆解掉控制信息,然后依次不断拆直到取得最后的DATA数据。
额外注意点:
- 打包过程中对于第2层不仅仅是加了一个首部,还加了一个尾部信息字段。
- 打包过程中对于第1层不会添加什么控制信息,只会将第二层的PDU来转换二进制比特流发送出去!
2.2.5 ISO/OSI参考模型七层功能介绍
①应用层
应用层:所有能和用户交互,产生网络流量的程序才会涉及到应用层。反例如记事本仅仅只是文本编辑不会涉及到产生网络流量。
典型应用层服务:文件传输(FTP)、电子邮件(SMTP)、万维网(HTTP)。
②表示层
表示层:与应用层紧邻的一层,用于处理两个通信系统中交换信息的表示方式。
- 简单说:主要负责最后呈现在我们设备或者屏幕上的一些东西。通常是对语法、语义的一个处理。
两个通信系统指的是:任何两台设备、手机。
表示层协议:JPEG、ASCII。
- 实际在TCP/IP五层结构中实际表示层会纳入到应用层会话层中,表示层并没有什么单独的协议,若非要说那么就是上面的几个,用于表示图像显示的编码之类的。
下面是表示层的多种功能:
功能一:数据格式变换
数据格式变换原因:不同的主机,编码以及表示方式都不太一样,为了使不同的主机能够进行一个数据或者信息的交换,就需要这个表示层,它实现数据格式变换的功能。
实际举例1:例如中国人和泰国人聊天,那么若是各自只懂母语,此时就需要一个翻译官来进行翻译,表示层就是起到翻译的作用。
实际举例2:在数据链路上传输的比特流形式最终在屏幕上会转为一个jpg图片,可以打开预览。
功能二:数据加密解密
加密解密原有:若是我们发送给对方主机是一串密码,若是直接对密码进行转换二进制传输,那么就是明文传输可能会被别人从链路上窃取,此时我们可以在发送端对要传输的数据进行加密,之后再接收端进行解密即可。
实际案例:我发送给对象一串密码,实际中间过程是加密的,对象手机在显示查看的时候则是明文。
功能三:数据压缩和恢复
实际案例:视频聊天的图像在发送时压缩,对方收到时解压,减小数据传输的数据量多大问题。
③会话层
会话层:向表示层实体/用户进程提供建立连接并在连接上有序地传输数据。
- 只有当建立好一个连接的时候,数据才能够传过去。
负责功能:这是会话,也是建立同步(SYN)。
主要协议:ADSP、ASP。
举例子:例如在浏览器上打开两个窗口,一个是百度,另一个是电影,那么此时打开对应的网址时实际已经建立好连接了,接着我们对任意一个网页进行操作并不会影响其他的窗口网页。
包含功能如下:
功能一:建立、管理、终止会话
举例子:浏览器打开一个网页相当于建立一个会话,关闭一个网页相当于终止一个会话。
功能二:使用校验点可使会话在通信失效时从校验点/同步点恢复通信,实现数据同步。
举例子:例如传输一个非常大的文件,实际会将这个数据流拆分为多个部分,每个部分都会插入一个校验点或者说是同步点,一旦若是异常终止,或者说是通信失效,那么此时就会终止会话,有了这个同步/校验点的话,那么我们等待重新连接后直接重新从中断的位置开始重传。
- 如果说没有这个同步/校验点的话,那么就会从最初始的时候才可以进行重新传送。
④传输层
传输层:负责主机中两个进程的通信,即端到端的通信。
- 上面四层都是端到端的通信,下面三层则是点到点,因为在传输的过程中可能会经过多个中间系统(路由器、交换机等),对于中间系统也只有最下面的三层,所以说下面三层是点到点。
- 端到端通信指的是运行在不同主机内两个进程之间的通信,每个进程都会使用一个编号来标识它,即端口号。
传输单位:报文段或者用户数据报。
主要协议:TCP、UDP。
包含四个功能有如下:
功能一:可靠传输、不可靠传输
- 可靠传输基于确认机制的过程:发送一个大文件时,实际会切成多个报文接着一个个放到链路上面进行传输,传输到接收端之后,对于每一个收到的报文,接收端都会返回一个确认告诉你表示我收到了,接着发送端收到了这个确认消息后才能够继续往下发送。若是有一个发送端发送的报文没有收到确认消息,此时发送端会再次发送一遍直到收到确认为止才会继续发送新的报文。
- 不可靠传输的方式:对于一些十分小的数据,我们实际无需采用可靠传输方式,我们没有必要先建立连接之后发,因为先建立连接会十分耗时,我们直接直接一个数据包发送过去。
功能二:差错控制
解释:对于发生的任何差错进行控制,如我们传送的一些报文段丢失了,顺序错了,那么传输层就会来纠正这些错误,来修正错误。
功能三:流量控制
解释:控制这个发送端发送数据的速度,若是接收方来不及接收或者说链路拥挤一些原因,此时接收方会告知接着发送方就会缓解自己的发送速率,因此这个就叫做流量控制。
功能四:复用分用
- 复用:多个应用层进程可同时使用下面运输层的服务。
- 分用:运输层把收到的信息分别交付给上面应用层中相应的进程。
举个例子理解复用与分用:手机A中有两个应用一个是QQ占用进程1,另一个是微信占用进程2(手机B的QQ与微信进程也是一致端口),此时QQ与微信都向手机B发送一条信息,【复用】此时会将发送的两个信息以报文段的形式,QQ的信息则会带上进程号,微信的也是会放到传输层上进行下一步的传输。【分用】接收端实际上会将发送过来的报文拆开接着根据相对应的进程号来去复制到指定进程的用户区当中。
巧记四个功能:可查流用(可差的也能留用)。
⑤网络层
网络层:主要任务是将分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。
网络层传输单位:数据报。
理解数据报与分组的关系:数据报过长的时候可以对数据报进行切割,切割成一个又一个小的分组,接着放到链路上传递。这样可以让我们在传输的时候变得更加灵活,消耗也会更小。
主要协议:IP、IPX、ICMP、IGMP、RARP、OSPF。
四大功能:
功能一:路由选择。
用途:选择合适的路由。 此时若是有一个发送端要发送一个数据,此时可能会有多个方向都可以走,可以根据当时的网络情况以及相应的路由算法来计算选出一个最佳路径,也就是最合适的路由方式,让这个分组从发送端正确或者说顺利的到达这个接收端。
功能二:流量控制。
用途:用来协调发送端和接收端的一个速度问题,若是发送端发送的速度太快,接收端来不及接收此时可以告知发送端,这样的话就可以对发送的速度进行控制。
功能三:差错控制。
用途:通信两节点之间约定一些特定规则,如奇偶校验码等,接收方会根据这个规则检查收到的分组有没有错误,若是有错误会进行纠错,此时就可以将这个分组扔掉,可以确保上面传输层所提交的数据都是没有问题的。
功能四:拥塞控制。
用途:对比流量控制主要是限制发送方的速度,若是拥塞控制则是针对于全局的,宏观上的来看整体控制一下速度。
- 若是所有节点都来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状态,因此要采取一定措施缓解这种阻塞。
⑥数据链路层
数据链路层:将网络层传输下来的数据报组装成帧。
数据链路层/链路层的传输单位:帧。
主要协议:SDLC、HDLC、PPP、STP。
包含的功能如下:
功能一:成帧(定义帧的开始和结束)
例如:…100000010110010101
数据包组装成帧之后,会形成一个比较长的比特流序列,我们对于这样的一个比特流序列要定义帧的开始、结束在哪里。定义几种帧的开始和帧的结束0、1组合,这样子定义好之后,接收端会收到一个帧的时候提取出帧的部分数据,进而交给网络层,实现下一步的解封装。
功能二:差错控制(帧错 + 位错)
对于这两种错误,数据链路层都会有相应的检错或者说纠错的方法,若是发现有差错,那么会简单的丢弃差错的帧,以免继续传输下去浪费资源,如果说需要改正数据纠错可以次啊用一些可靠传输协议来纠正出现的错误。
在这里差错控制可以检错,也可以纠错。
功能三:流量控制
用途:发送方与接收方的协调问题。若是接收方缓存不够,那么此时发送过来的数据都会丢弃,此时会告诉发送方慢点发,等有缓存空间再发,再加快速度。
功能四:访问(接入)控制
核心:控制对信道的访问。
用途:此时有四个主机,采用的是这种总线型方式连接,如果在广播式网络中,数据内容层就要处理这种访问接入控制的问题,指定控制哪台主机,现在可以占用一个信道,因为在广播式网络中同一时间只能有一个人发送消息,其他人都是监听状态,所以数据内容层可以控制这样一个对于共享信道的访问,是由特殊子层也就是介质访问子层来专门处理控制这个问题。
⑦物理层
物理层:主要任务是在物理媒体上实现比特流的透明传输。
- 物理媒体包含有:同轴电缆、双绞线、无线电波。
物理层传输单位是:比特。
物理层主要协议:RJ45、802.3。
透明传输:指的是所传数据是什么样的组合,都应该能够在链路上传输。(你给我什么,我就发什么),若是收来了一系列的比特流,那么物理层只是单纯的把它们转换成电信号的形式,接着放到链路上传播。
功能包含如下:
功能一:定义接口特性。
例如:要确定连接电缆的插头应该有多少根引脚,或者说每条引脚应该如何连接,都属于接口特性的部分。
功能二:定义传输模式
三种:单工、半双工、双工。
单工:只可以单方向,同一时间只能够一个人说话。
半双工:两个人都可以作为接收方或者发送方,但是同一时间也只能够一个人说话。
双工:发送端两个人都可以作为接收方或者发送方,同一时间两个人都可以说话。
功能三:定义传输速率。
例如十兆,百兆,都是物理层进行定义的。
功能四:比特同步。
同步指的是发送端发送一个1,接收端可以收到一个1,保证比特的同步,需要一个适中的速度。
功能五:比特编码。
例如曼彻斯特编码等,主要就是对0、1进行规定,什么样的电压表示1,什么样的电压表示0。
脑图时刻
2.3 TCP/IP参考模型与五层参考模型
2.3.1 比较OSI与TCP/IP模型
OSI是一个法定标准;TCP/IP则是现实标准。
首先是诞生于TCP/IP的协议栈,接着根据这个协议来进行一个分层,分分层出这样的一个参考模型。
- OSI是先理论,但是没有实践;TCP/IP是先有实践,接着才有一个参考模型的理论。
- 网络接口层:仅仅说是相当于一个接口,并没有规定其中的一些细节。
- 网际层:功能与OSI相似的,将数据报拆分成的分组发给任何的网络,并进行一个路由选择。
- 传输层:实现端到端或者进程与进程之间的通信。
- 应用层:将表示、会话、应用层合并一起,将三层所用到的协议综合到了一起。
TCP/IP协议名字的由来:首先是一个栈的结构,一层又一层,是先出现的协议栈后出的参考模型。并且自上而下中对于TCP协议以及IP协议是非常常用的两个协议,所以取名为TCP/IP协议,当然这个协议栈不止包括这两个协议。
2.3.2 OSI参考模型与TCP/IP参考模型的相同点与不同点
OSI参考模型与TCP/IP参考模型相同点:
1、都采用了分层。
2、基于独立的协议栈的概念。
3、可以实现异构网络互联。
OSI参考模型与TCP/IP参考模型不同点:
1、OSI定义三点;:服务、协议、接口
2、OSI先出现参考模型,接着出现协议,不偏向特定协议;而TCP/IP则是先出现协议后来进行设计参考模型。
3、TCP/IP设计之初就考虑到异构网互联问题,将IP作为重要层次。
4、OSI参考模型与TCP/IP模型在网络层、传输层上的区别
- 传输层应当是为了实现可靠传输而存在的,所以在两个参考模型中都有面向连接。
- 面向连接:①建立连接,在当前阶段发出一个建立连接的请求。②只有在连接成功建立之后,才能开始数据传输。③当数据传输完毕,必须释放连接。
- 面向无连接:没有连接建立、关闭阶段,直接进行数据传输。
2.3.3 五层参考模型
**5层参考模型:**综合了OSI和TCP/IP的优点
应用层:支持各种网络应用。
- 协议:FTP、SMTP、HTTP。
传输层:进程-进程的数据传输。
- 协议:TCP、UDP。
网络层:源主机到目的主机的数据分组路由与转发。
- 协议:IP、ICMP、OSPF。
数据链路层:把网络层传下来的数据报组装成帧。
- 协议:Ethernet(以太网)、PPP。
物理层:比特传输。
- 协议:RJ45、802.3。
2.3.4 5层参考模型的数据封装与解封装
举例:主机A向主机B发送消息。
主机A发送过程:①首先数据进入到应用层,此时会加上相应的PCI协议组成报文。②进入到传输层时,会将报文切成一个个报文段并且再次加上传输层的控制信息。③进入到网络层会将报文段封装为数据报。④进入到数据链路层则是要进行成帧。⑤直接将帧转为比特流形式发送出去。
主机B接收过程:首先时物理层接收到比特流,接着到每一层依次来进行还原,最终得到主机A发送的数据。
脑图时刻
三 第一章知识总结
四 习题
01.计算机网络可被理解为()
A.执行计算机数据处理的软件模块
B.由自治的计算机互连起来的集合体
C.多个处理器通过共享内存实现的紧耦合系统
D.用于共同完成一项任务的分布式系统
02.计算机网络最基本的功能是()
A.数据通信 B.资源共享
C.分布式处理 D.信息综合处理
03.下列不属于计算机网络功能的是 ()
A.提高系统可靠性
B.提高工作效率
D.信息综合处理
D.使各计算机相对独立
04.计算机网络系统的基本组成是 ()
A.局域网和广域网
B.本机计算机和通信网
C.通信子网和资源子网
D.服务站和工作站
05.在计算机网络中可以没有的是 ()
A.客户机
B.服务器
C.操作系统
D.数据库管理系统
06.计算机网络的资源主要是指 ()
A,服务器、路由器、通信线路与用户计算机
B.计算机操作系统、数据库与应用软件
C.计算机硬件、软件与数据
D,Web服务器、数据库服务器与文件服务器
07.计算机网络可分为通信子网和资源子网。下列属于通信子网的是 ()
I.网桥 II.交换机 III,计算机软件 IV.路由器
A.I、II、IV
B.II、III、IV
C.I、III、IV
D.I、II、III
08.下列设备属于资源子网的是 ()
A.计算机软件
B.网桥
C.交换机
D.路由器
09.计算机网络分为广域网、城域网和局域网,其划分的主要依据是()
A.网络的作用范围
B.网络的拓扑结构
C.网络的通信方式
D.网络的传输介质
10.局域网和广城网的差异不仅在于它们所覆盖的范围不同,还主要在于它们()
A.所使用的介质不同
B.所使用的协议不同
C.所能支持的通信量不同
D.所提供的服务不同
11.下列说法中正确的是()
A.在较小范围内布置的一定是局域网,而在较大范围内布置的一定是广城网
B.城域网是连接广域网而覆盖园区的网络
C.城域网是为淘汰局域网和广域网而提出的一种新技术
D.局域网是基于广播技术发展起来的网络,广域网是基于交换技术发展起来的网络
12现在大量的计算机是通过诸如以太网这样的局域网连入广域网的,而局域网与广域网的互连是通过()实现的。
A.路由器
B.资源子网
C.桥接器
D.中继器
13.计算机网络拓扑结构主要取决于它的 ()
A.资源子网
B.路由器
C.通信子网
D.交换机
14.广域网的拓扑结构通常采用 ()
A.星形
B.总线形
C.网状
D.环状
15.在n个结点的星形拓扑结构中,有()条物理链路
A.n-1
B.n
C.n(n-1)
D.n(n+1)/2
16.下列关于广播式网络的说法中,错误的是()
A.共享广播信道
C.可以不要网络层
B.不存在路由选择问题
D.不需要服务访问点
17.下列()是分组交换网络的缺点。
A.信道利用率低
B.附加信息开销大
C.传播时延大
D.不同规格的终端很难相互通信
18.1968年6月,世界上出现的最早计算机网络是 ()
A.Internet
B.ARPAnet
C.以太网
D.令牌环网
答案:1-5 BADCD 6-10 CAAAB 11-15DACCA 16-18 DBB