?、目录脑图
1.计网体系结构
1.1、计算机网络
1.2、计算机网络的功能
-
数据通信 -
资源共享:同一个计算机网络上的其他计算机可使用某台计算机的计算机资源的行为,可共享硬件、软件、数据。 -
分布式处理:多台计算机各自承担同一工作任务的不同部分(Hadoop平台) -
提高可靠性 -
负载均衡
1.3、计算机网络的发展
1.3.1、第一阶段
网络把许多计算机连接在一起,而互联网则把许多网络连接在一起,因特网是世界上最大的互联网。
1.3.2、第二阶段
1.3.3、第三阶段
1.3.4、小结
1.4、标准化工作
标准分为:
- 法定标准:由权威机构指定的正式的、合法的标准 OSI
- 事实标准:某些公司的产品在这些竞争中占据了主流,时间长了,这些产品中的协议和技术就成了标准 TCP/IP
1.4.1、RFC
RFC:Request For Comments ,因特网标准的形式
RFC要上升为因特网正式标准的四个阶段:
- 因特网草案(Internet Draft):这个阶段还不是RFC文档
- 建议标准(Proposed Standard):从这个阶段开始称为RFC文档
- 草案标准(Draft Standard):2011年之后此标准就被取消了
- 因特网标准(Internet Standard)
1.4.2、标准化工作的相关组织
- 国际标准化组织ISO OSI模型、HDLC协议
- 国际电信联盟ITU 制定通信规则
- 电气和电子工程师协会IEEE 学术机构、IEEE802系列标准、5G
- Internet工程任务组IETF 负责因特网相关标准的制定
1.5、组成和分类
1.5.1、计网的组成
1.5.2、计网的分类
- 按分布范围分:广域网WAN、城域网MAN、局域网LAN、个人区域网PAN
- 按使用者分:公用网、专用网
- 按交换技术分:电路交换、报文交换、分组交换
- 按拓扑结构分:总线型、星型、环型、网状型(常用于广域网)
- 按传输技术分:广播式网络(共享公共通信信道)、点对点网络(使用分组存储转发和路由选择机制)
1.5.3、脑图时刻
1.6、性能指标
性能指标之速率、带宽、吞吐量、时延、时延带宽积、往返时间RTT、利用率
1.6.1、速率
速率:速率即数据率或称数据传输率或比特率
-
什么是比特? 计算机当中发送的信号都是以数字形式发送的,比特就是计算机当中数据量的一个单位。就好像我们去游乐园排队的时候,我们是一个人一个人进游乐园,在计算机数据传输的过程中,也是一个比特一个比特的进入信道。数据传输的单位就是比特。比特就是数字1或者0,单位是位。
连接在计算机网络上的主机在数字信道上传送数据位数的速率。单位是 b/s、kb/s、Mb/s、Gb/s、Tb/s。如下图,在1s内将10位数据发送完毕,说明其速率就是 10b/s。
速率 | 存储容量 1Byte(字节)=8bit(比特) |
---|
千 1kb/s=103b/s | 1KB=210B=1024B=1024*8b | 兆 1Mb/s=103kb/s=106b/s | 1MB=210KB=1024KB | 吉 1GB=103Mb/s=106kb/s=109b/s | 1GB=210MB=1024MB | 太 1TB=103GB=106Mb/s=109kb/s=1012b/s | 1TB=210GB=1024GB |
1.6.2、带宽
- "带宽"原本指某个信号具有的频带宽度,即最高频率与最低频率之差,单位是赫兹(Hz)
- 计算机网络中,带宽用来表示网络的通信线路传送数据的能力,通常是指单位时间内从网络中的某一点到另一点所能通过的"最高数据率"。单位是"比特每秒",b/s,kb/s,Mb/s,Gb/s。
带宽可以理解为网络设备所支持的最高速度。
链路带宽=1MB/S:1s可以向链路上发送1MB,也就是1us内可向链路发送1bit数据。
经过1us之后,主机向链路发送1bit数据,再经过1us,第一个比特在链路上向前传播200m,第二个比特从主机发送到链路上,再经过1us,第一个比特继续向前传播200m,第二个比特向前传播200m,第三个比特从主机发送到链路上。
链路带宽指的是在入口发送数据的速率,而不是在链路上传播的速率。链路上传播的速率是以电磁波的形式传播。
1.5.3、吞吐量
表示在单位时间内通过某个网络(或信道、接口)的数据量。单位b/s,kb/s,Mb/s等
吞吐量受网络的带宽或网络的额定速率的限制。
链路带宽100MB/S,这是发送的速率,服务器1接收的速率为20MB/S,服务器2接收的速率为10MB/S。吞吐量是30MB/s。
举个例子:"我"是一个大胃王,我一秒能吃100桶方便面,白象厂家给了我20桶方便面,康师傅厂家给了我10桶方便面,那么我这一秒只能吃30桶了。因为只有30桶,我自身是可以吃100桶的。
1.5.4、时延
时延指数据(报文/分组/比特流)从网络(或链路)的一端传送到另一端所需的时间。也叫延迟或迟延,单位是s
- 发送时延(传输时延):从发送分组的第一个比特算起,到该分组的最后一个比特发送完毕所需的时间。
- 传播时延:取决于电磁波传播速度和链路长度
- 传播时延 = 信道长度 / 电磁波在信道上的传播速率
- 排队时延:等待输出 (入链路可用)
- 处理时延:检错找出口
例如A、B两个主机通信,通过链路进行连接,中间放置一个路由器。
发送时延:A主机有10位比特,A主机将所有数据从自身发送到链路信道上,直到最后一个比特到信道上为止,这样的一段时间就叫做发送时延。
假如说A主机口的带宽是10b/s,也就是说A主机1s可以将10个比特发送到信道上,则发送时延如下:
发
送
时
延
=
数
据
长
度
信
道
带
宽
=
10
b
10
b
/
s
=
1
s
发送时延 = \frac{数据长度}{信道带宽}=\frac{10b}{10b/s}=1s
发送时延=信道带宽数据长度?=10b/s10b?=1s
传播时延:电磁波在信道上传播一定距离所花费的时间。取决于电磁波传播速度和链路长度。
假设电磁波传播速度在这条线路上的速度是10m/s,先不考虑路由器,就只看A和B之间的通信,假如AB之间的距离是100m,则传播时延:
传
播
时
延
=
信
道
长
度
电
磁
波
在
信
道
上
的
传
播
速
率
=
100
m
10
m
/
s
=
10
s
传播时延 = \frac{信道长度}{电磁波在信道上的传播速率} = \frac{100m}{10m/s}=10s
传播时延=电磁波在信道上的传播速率信道长度?=10m/s100m?=10s
如图,10个比特已经到路由器了,但是路由器比较忙,所以需要这10个比特等待,等待的时间就是排队时延。
在10个比特上路由器之前,路由器还会对比特进行检查是否有错并看这10个比特要发送到哪里去,这一段时间就叫做处理时延。
高速链路:我们这里的信道带宽是10b/s,如果我们将带宽改为100b/s,那么我们的发送时延就会大大减少,所以高速链路指的是发送速率提高,而并不会影响到电磁波的传播速率。
1.5.5、时延带宽积
时延带宽积(bit) = 传播时延(s) × 带宽(b/s)
时延带宽积又称为以比特为单位的链路长度,即"某段链路现在有多少比特"[容量]
带宽指的是发送速率,就是A端一直发送速率,1个比特经过1个传播时延会从A走向B,当第一个比特碰到B为止,发送停止,此时时延带宽积就是链路里面所有的比特。
1.5.6、往返时延RTT
往返时延RTT:从发送方发送数据开始,到发送方收到接收方的确认(接收方收到数据后立即发送确认),总共经历的时延
- RTT越大,在收到确认之前,可以发送的数据越多
- RTT包括
我们可以打开cmd窗口,使用 ping www.baidu.com 命令就可以测出往返时延。
1.5.7、利用率
来个形象的例子:
如果主机A和主机B进行通信,它们之间的这条链路,如果链路上一直都有数据传输,那么利用率就高,如果偶尔有数据传输,那么利用率就低。
利用率分为:
- 信道利用率🔥
- 信道利用率 = 有数据通过的时间 / 总(有+无)数据通过的时间
- 网络利用率
时延与利用率的关系
随着利用率趋近于1的时候,时延是急剧增大的。因为如果车道利用率很高,说明上面都是车,那么每辆车移动起来就会很缓慢,时延就会增大。
1.5.8、脑图时刻
速率就是实际传输的速率,带宽主要指的是理想条件下能达到的最高的速率,吞吐量就是所有信道加一块1s内可以接收到多少比特。
1.6、分层结构
发送文件前要完成的工作:
- 发起通信的计算机必须将数据通信的通路进行激活
- 要告诉网络如何识别目的主机
- 发起通信的计算机要查明目的主机是否开机,并且与网络连接正常
- 发起通信的计算机要弄清楚,对方计算机中文件管理程序是否已经做好准备工作
- 确保差错和意外可以解决
分层的基本原则:
-
各层之间相互独立,每层只实现一种相对独立的功能。 -
每层之间界面自然清晰,易于理解,相互交流尽可能少 -
结构上可分隔开。每层都采用最合适的技术来实现。 -
保持下层对上层的独立性,上层单向使用下层提供的服务。(犹如下级给上级领导敬酒) -
整个分层结构应该能促进标准化工作
1.6.1、正确认识分层结构
-
实体:第n层中的活动元素称为n层实体。同一层的实体叫对等实体。
- 例如主机A的第5层和主机B的第5层实体就叫对等实体
-
协议:为进行网络中的对等实体数据交换而建立的规则、标准或约定称为网络协议。协议是水平的,因为只能在对等实体之间进行。协议有三大要素:
- 语法:规定传输数据的格式
- 语义:规定所要完成的功能
- 同步:规定各种操作的顺序
-
接口(访问服务点SAP):上层使用下层服务的入口。
- 每两个相邻层之间都会有接口,这个接口如同桥梁,使得下层可以为上层提供服务。
-
服务:下层为相邻上层提供的功能调用。服务是单向的,只有下层为上层提供服务,服务也是垂直的。
- 例如第4层使用第3层的服务,同时它为第5层提供服务。也就是说每一个中间层次都为上层提供服务,同时使用下层及下面所有层次服务的总和。
-
SDU服务数据单元:为完成用户所要求的功能而应传送的数据。
- 也就是每一层要传输的数据,也就是有用的数据,就叫做SDU。
-
PCI协议控制信息:控制协议操作的信息 -
PDU协议数据单元:对等层次之间传送的数据单位
- PCI + SDU = PDU,第4层的PDU作为下一层的SDU,又加上PCI,得到第3层的PDU。
1.6.2、概念总结
- 网络体系结构是从功能上描述计算机网络结构。
- 计算机网络体系结构简称网络体系结构是分层结构。
- 每层遵循某个/些网络协议以完成本层功能。
- 计算机网络体系结构是计算机网络的各层及其协议的集合。
- 第n层在向n+1层提供服务时,此服务不仅包含第n层本身的功能,还包含由下层服务提供的功能。
- 仅仅在相邻层间有接口,且所提供服务的具体实现细节对上一层完全屏蔽。
- 体系结构是抽象的,而实现是指能运行的一些软件和硬件。
1.7、OSI参考模型
国际标准化组织(ISO)于1984年提出开放系统互连(OSI)参考模型,但是理论成功,市场失败
将每一层的第一个字提取出来,由第一层到第7层,得到一个记忆口诀:物联网淑慧试用
7层模型上面3层负责数据处理,下面3层负责数据通信
1.7.1、OSI参考模型解释通信过程
比如我们有两个主机A、B进行通信,中间有中间系统(路由器,网桥交换机等)。数据在主机要经过7层,在中间系统要经过下3层。所以上面4层我们称为端到端传输,下面3层我们称为点到点传输。
物理层之间有传输介质,对等实体(层次)之间都会有协议。
数据信息从A应用层传输到最下层物理层,在中间每一层都会对数据进行加工处理,之后物理层传输至中间系统物理层,中间系统将数据向上层传输对数据信息进行还原,还原之后继续向下层传输对数据进行加工,之后将数据传送至B物理层,B物理层向上层传输对数据信息进行还原,这样数据就由A传输到B了。
我们来看一下每层对数据的加工:
- A应用层对数据加了首部PCI协议控制信息,因为 PCI + SDU = PDU,第7层的PDU作为下一层的SDU,又加上PCI,得到第6层的PDU
- 数据链路层不仅加了首部,而且加了尾部。
- 物理层不会进行处理,只是会形成比特流,将比特流放到传输介质上传输。
- 然后比特流传输到B,由于A、B对等实体之间协议的存在,可以使得B每一层对数据进行去掉头部还原数据,最终可以得到原始的A传输的数据。
1.7.2、应用层
应用层:所有能和用户交互产生网络流量的程序,用户与网络的界面。
例如我们平常电脑连上网之后才能试用的软件,如果不连网也能使用的那就不叫作应用层。
典型应用层服务:
- 文件传输(FTP)
- 电子邮件(SMTP)
- 万维网(HTTP)
1.7.3、表示层
表示层:用于处理在两个通信系统中交换信息的表示方式(语法和语义)
功能:
-
数据格式变换(翻译官) 由于不同系统的计算机的编码和表示方式不太一样,所以为了使不同的主机能够进行数据和信息的交换,就需要表示层实现数据格式变换的功能。 -
数据加密解密 -
数据压缩和恢复
1.7.4、会话层
会话层:向表示层实体/用户进程提供建立连接并在连接上有序地传输数据。这是会话,也是建立同步(SYN)
例如我们在网页中打开百度和一个视频,这时网页就与百度窗口和视频窗口建立了会话,此时对视频进行快进不会影响百度窗口会话,因为会话之间是彼此独立的。
会话层的功能:
- 建立、管理、终止会话
- 使用校验点可使会话在通信失效时从
校验点/同步点 继续恢复通信,实现数据同步。(适用于传输大文件)
1.7.5、传输层
传输层:负责主机中两个进程的通信,即端到端的通信。传输单位是报文段或用户数据报。
传输层功能:
- 可靠传输、不可靠传输
- 差错控制
- 流量控制
- 复用分用
记忆口诀:可查的也能留用?我们来看一下这几个功能的应用场景:
-
例如我们两台电脑之间要传输文件,如果此文件比较大,那么文件会被分成好几个报文段,首先确认建立连接,然后发送报文段,只有另一台主机确认接收到第一个报文段,第二个报文段才能发送,这种确认机制就是可靠传输。可靠传输适用于大文件传输。 -
如果我们仅仅发送一个"在吗"给另一台电脑,那么我们不用确认是否建立连接,不用确认另一台电脑是否已经接收,这种就是不可靠传输。不可靠传输适用于小文件传输 -
差错控制就是对传输过程中的一些差错进行控制,例如报文段丢失、失序等,传输层就负责纠正这些错误。 -
流量控制就是控制发送方的速度,因为有时候接收方来不及接收很多报文段,此时传输层就会控制使得发送方发的慢一点。 -
复用:多个应用层进程可同时使用下面运输层的服务 分用:运输层把收到的信息分别交付给上面应用层中相应的进程。
例如两个手机,都开了两个进程,分别是QQ、微信,每个进程都会被独立分配一个端口号,QQ的端口号是1,微信的端口号是2。此时QQ、微信都要发送信息给另一台手机,信息出了被分成报文段外,还会添加相应的端口号,这样到了另一台手机接收到报文段可以根据端口号来将信息发给不同的进程。这就是复用分用的体现。
1.7.6、网络层
网络层:主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。数据报过长的时候,就会将数据报切割分成分组。
网络层功能:
- 路由选择
- 流量控制
- 差错控制
- 拥塞控制
我们来看一下这几个功能:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p5B41GU7-1643555942595)(王道计网(一)].assets/28.png)
-
例如两台主机进行信息交互,中间要经过中间系统(路由器),选择哪几个路由器来传输就是路由选择 -
协调接收端和发送端的速度就是流量控制 -
通信两结点之间约定一些特定的规则,接收方就会根据规则来检验接收到的数据是否有错,若有错就会修改 -
若所有结点都来不及接收分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定措施,缓解这种拥塞。
1.7.7、数据链路层
数据链路层:主要任务是把网络层传下来的数据报组装成帧。数据链路层/链路层的传输单位是帧。
数据链路层功能:
-
成帧(定义帧的开始和结束) -
差错控制 帧错+位错 -
流量控制 -
访问(接入)控制-控制对信道的访问
例如在广播式网络当中,数据链路层就要处理访问控制问题,控制哪台主机现在可以占用信道,因为在广播式网络当中,同一时刻只能有一个主机在发送信息。
1.7.8、物理层
物理层:主要任务是在物理媒体(同轴电缆、双绞线等)上实现比特流的透明传输。物理层的传输单位是比特。物理层主要就是把比特流转化为电信号,然后放到链路上进行传送。
透明传输:不管所传数据是什么样的比特组合,都应当能在链路上传送。
"透明"在计算机里面指的是看不见摸不着的,现实生活中指的是清晰明了
物理层功能:
-
定义接口特性 -
定义传输模式(单工、半双工、双工) 单工:同一时刻只能有一个人在发送或者接收 半双工:两个人都可以作为发送方和接收方,但是同一时刻还是只能有一个人发送信息(对讲机) 双工:两个人可以双向同时的接收和发送(打电话) -
定义传输速率 -
比特同步(发送方发一个1,接收端就可以准确无误接收一个1) -
比特编码
1.8、TCP/IP参考模型
1.8.1、OSI与TCP/IP参考模型
相同点:
- 都分层
- 基于独立的协议栈的概念
- 可以实现异构网络互联(可以实现不同厂家生产的设备进行通信)
不同点:
- OSI定义三点:服务、协议、接口
- OSI先出现,参考模型先于协议发明,但是不偏向特定协议。TCP/IP是先发明协议,再出现参考模型
- TCP/IP设计之初就考虑到异构网互联问题,将IP作为重要层次。
| ISO/OSI参考模型 | TCP/IP模型 |
---|
网络层 | 无连接+面向连接 | 无连接 | 传输层 | 面向连接 | 无连接+面向连接 |
面向连接分为三个阶段:
- 第一是建立连接,在此阶段,发出一个建立连接的请求。
- 只有在连接成功建立之后,才能开始数据传输,这是第二阶段
- 接着,当数据传输完毕,必须释放连接。
而面向无连接没有这么多阶段,它直接进行数据传输。
1.9、5层参考模型
1.9.1、5层参考模型的数据封装与解封装
-
首先对于数据,应用层会加一定的控制信息(头部),这样就组成了报文 -
接下来把这个报文切分成段,切分成段之后放到传输层上,传输层加上控制协议(头部),这样就形成了报文段。 -
接下来将报文段放到网络层,网络层加上控制信息(头部),这样就形成了数据报。 -
接下来将数据报放到数据链路层,加上头部和尾部,这样就形成了帧 -
接下来将帧放到物理层,物理层将其转成比特流,传输单元就是比特,将比特流放在链路上进行传输。 -
之后传输到主机B进行解封装。
|