第 1 章 网络体系结构
1、思维导图
2、计算机网络的概念和功能
2.1、计算机网络的定义
计算机网络需要干什么?然后实现什么功能?
计算机网络:是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。
-
各种电话设备、电视设备、计算机设备、电网设备组成的网络
-
每台设备之间通过通信线路,实现设备之间的互联
计算机网络是互连的、自治的计算机集合
- 互连:每台设备通过通信链路互联互通
- 自治:每台设备之间无主从关系
2.2、计算机网络的功能
数据通信 & 资源共享 & 分布式处理
-
数据通信:我们使用微信、QQ等聊天工具,不就是在进行数据通信嘛~
-
资源共享:在图书馆,我们只要登录任意一台电脑,就能共享图书馆打印机啦~~~
-
分布式处理:多台计算机各自承担同一工作任务的不同部分,比如 Hadoop 分布式系统
- 提高可靠性:不怕有一两台机器 down 掉,因为还有替代机
- 负载均衡:将任务平分给各个机器执行
2.3、计算机网络的发展
计算机网络发展的第一阶段
-
美国政府害怕苏联老大哥把他们的指挥部给炸了,于是美国国防部高级研究计划局(ARPA)设计一个分散的指挥系统,这就是最初的 ARPAnet(阿帕网)
-
为了实现不同网络之间的互联,外国大佬们又提出了 internet(interconnected network) 互联
-
1983 年阿帕网接受 TCP/IP,选定Internet为主要的计算机通信
-
internet 与 Internet 的区别:网络把许多计算机连接在一起,而互联网(Internet)则把许多网络连接在一起,因特网(internet)是世界上最大的互联网。
计算机网络发展的第二阶段
1985 年起,美国国家科学基金会 NSF 围绕 6 个大型计算机中心建设计算机网络, 即国家科学基金网 NSFNET,这个三层模型是是现今网络分层模型的前身
计算机网络发展的第三阶段
- 随着因特网的发展,主干网的规模越来越大,于是将主干网交由一些运营厂商管理和维护
- ISP:因特网服务提供者/因特网 服务提供商,是一个向广大用户 综合提供互联网接入业务、信息 业务、和增值业务的公司,如中 国电信、中国联动、中国移动等。 分为主干ISP、地区ISP和本地ISP
- 如果每次同级的设备通信都需要经由主干 ISP,显示通信效率不会很高,于是在某些地区 ISP 之间搭建了 因特网交换点(IXP)
2.4、本节课总结
3、计算机网络的组成和分类
3.1、计算机网络的组成
1、按组成部分分类:由硬件、软件、协议组成
软件部署在各个设备上,并通过一定的协议在各个设备之间传输数据
2、按工作方式分类:由边缘部分和核心部分组成
- 边缘部分由一系列的端系统组成,端系统之间的通信为进程之间的通信,边缘部分的进程通信主要 C/S 和 P2P 两种方式
- C/S(Client Server):我们常常使用的微信聊天就是这种方式,微信客户端安装在我们手机上。发送微信消息时会先将此消息发送到微信服务器上,再由微信服务器将消息转发到对方手机微信上。可以看出当聊天人数上来之后,微信服务器就可能会吃不消了,即客户端数量越少对服务器压力就越小。类似的方式有 B/S(Browser/Server)
- P2P(Peer to Peer):对等连接,参照迅雷下载,没有严格意义上的客户端和服务器,因为每一台机器既有可能是客户端,也有可能是服务器。比如我想下载一部小电影,恰好小红已经下载好了这个电影,我就可以从小红那儿下载,同样,小蓝也想下载这部电影,他可以从我这儿下,我的机器从小明那儿获得了服务,又为小蓝提供了服务
- 核心部分为边缘部分提供连接服务,这样边缘服务才能实现端系统与端系统之间的通信
3、按功能组成分类:由通信子网和资源子网组成
- 通信子网:实现数据通信
- 资源子网:实现资源共享(数据处理)
3.2、计算机网络的分类
1、按分布范围分类:广域网WAN、城域网MAN、局域网LAN、个人区域网PAN
- 广域网技术使用交换技术,局域网技术使用广播技术
- 世界上最遥远的距离不是我住在你隔壁,而是我们之间的微信聊天隔着一道广域网
2、按使用者分类:公用网、专用网
- 公用网:电信、移动、联通提供的网络服务
- 专用网:军队、政府专门搭建的网络
3、按交换技术分类:电路交换、报文交换、分组交换
电路交换需要独占一条线,所以经常听到:对不起,你拨打的用户正在通话中,请您稍后再拨
报文交换和分组交换采用存储转发的技术,将条长长的通信线路,切成好多小段,每一小段都有设备负责存储转发
4、按拓扑结构分类:总线型、星型、环型、网状型
-
总线型:常用于局域网(都在一条线上方便广播)
-
星型
-
环型
-
网状型:常用于广域网(分成小段方便数据转发)
5、按传输技术分类:广播式网络、点对点网络
- 广播式网络共享公共通信信道
- 点对点网络使用分组存储转发和路由选择机制
3.3、本节课总结
4、计算机网路的标准化
4.1、标准化的意义
实现异构网络互连呗
要实现不同厂商的硬、软件之间相互连通,必须遵从统一的标准。
4.2、计算机网络的标准
法定标准 & 事实标准
- 法定标准:由权威机构制定的正式的、合法的标准,比如 OSI 参考问题
- 事实标准:某些公司的产品在竞争中占据了主流,比如 TCP/IP 使用时间长了,这些产品中的协议和技术就成了标准
4.3、自定义计算机网络标准
跟小论文投稿一样的步骤。。。
RFC(Request For Comments): 因特网标准的形式,RFC要上升为因特网正式标准的四个阶段:
- 因特网草案(Internet Draft):给编辑发邮件([email protected]),你们可以试试哦,这个阶段还不是RFC文档。
- 建议标准(Proposed Standard):编辑同意你的草案,从这个阶段开始成为RFC文档。
- 请求评论(Request For Comments):将草案放到因特网上,接收大家的意见和评论
- 因特网标准(InternetStandard):论文录用通知发下来了。。。
4.4、标准化工作的相关组织
都是大佬组织。。。
- 国际标准化组织ISO:负责制定OSI模型、HDLC协议
- 国际电信联盟ITU:负责制定通信规则
- 电气和电子工程师协会IEEE:学术机构、IEEE802系列标准、5G
- Internet工程任务组IETF:负责因特网相关标准的制定,比如RFC xxx Version
4.5、本节课总结
5、计算机网络的性能指标
5.1、速率
速率的定义
速率(数据率、数据传输率、比特率)连接在计算机网络上的主机在数字信道上传送数据位数的速率,单位是 b/s,kb/s,Mb/s,Gb/s,Tb/s
假如说发送端在 1s 给接收端发送了 10b 的数据,则速率为 10b/s
解答一波多年的疑惑:关于电信办网 20M 带宽
- 一般在速率方面,Kb 代表 103 比特,Mb 代表 103 Kb,且为小写 b
- 一般在存储容量方面,KB 代表 210 比特,MB 代表 210 KB,且为小写 B
- 运营商说的下行流量 20M 指的是 20Mb,折算为存储容量约为 19M
5.2、带宽
带宽的定义
- “带宽”原本指某个信号具有的频带宽度,即最高频率与最低频率之差,单位是赫兹为 Hz
- 计算机网络中,带宽用来表示网络的通信线路传送数据的能力,通常是指单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。单位是“比特每秒”,b/s,kb/s,Mb/s,Gb/s
- 带宽一般指发送方向通信链路中注入比特流的最高速率,用于描述通信的物理极限能力
- 带宽是一个理想速率,实际通信中速率肯定达不到带宽这么高啦
举个栗子
一般电磁波在固体介质上传输速率为 2*108m/s ,即电磁波在 1us 可在通信介质内向前传播 200m,则:
链路带宽 = 1Mb/s,主机在 1us 内可向链路发 1bit 数据
-
第 1us 的传输情况
-
第 2us 的传输情况
-
第 3us 的传输情况
链路带宽 = 2Mb/s,主机在 1us 内可向链路发 2bit 数据
-
第 1us 的传输情况
-
第 2us 的传输情况
-
第 3us 的传输情况
5.3、吞吐量
吞吐量的定义
- 吞吐量表示在单位时间内通过某个网络(或信道、接口)的数据量。单位 b/s,kb/s,Mb/s 等
- 吞吐量受网络的带宽或网络的额定速率的限制,
主机通过交换机访问两台服务器,主机发送速率与交换机接收速率均为 100Mb/s,其链路带宽为 100Mb/s,但是服务器的速率只能达到 20Mb/s 和 10Mb/s,所以该条链路的吞吐量为 30Mb/s,可以看到实际的吞吐量一般小于链路带宽
5.4、时延
时延的定义
时延指数据(报文/分组/比特流)从网络(或链路)的一端传送到另一端所需的时间,也叫延迟或迟延,单位是 s,时延分为四类:
- 发送时延(传输时延):是指结点在发送数据时使数据块从结点进入到传输媒体所需的时间,也就是从数据块的第一个比特开始发送算起,到最后一个比特发送完毕所需的时间
- 传播时延:是指电磁信号或光信号在传输介质中传播一定的距离所花费的时间,即从发送端发送数据开始,到接收端收到数据(或者从接收端发送确认帧,到发送端收到确认帧),总共经历的时间
- 排队时延:分组在经过网络传输时,要经过许多的路由器。但分组在进入路由器后要现在输入队列中排队等待处理。在路由器确定了转发接口后,还要在输出队列中排队等待转发
- 处理时延:主机或路由器在收到分组时要花费一定的时间进行处理,例如分析分组的首部、从分组中提取数据部分、进行差错或查找适当的路由等等。
5.5、时延带宽积
时延带宽积的定义
- 时延带宽积(bit) = 传播时延(s) * 带宽 (bit/s)
- 时延带宽积又称为以比特为单位的链路长度,即“某段链路现在有多少比特”,即链路管道的比特容量
5.6、往返时间RTT
往返时间 RTT 的定义
- 从发送方发送数据开始,到发送方收到接收方的确认(接收方收到数据后立即发送确认),总共经历的时延
- 注意:从发送方第一个发送的比特位开始算起,以发送方接收到的第一个确认信号为结束
- RTT 越大,在收到确认之前,可以发送的数据越多。
- RTT 包括两个部分:
- 往返传播时延,= 传播时延 * 2,占 RTT 的大头
- 末端处理时间,在接收方接收到第一个比特位之后,处理后发出确认信号需要时间
ping
指令中 time 字段表示 RTT
5.7、利用率
利用率的定义
利用率分为:信道利用率和网络利用率
一般来说,当利用率接近 1 时,时延急剧上升,导致通信速率下降
5.8、本节课总结
6、计算机网络的分层结构
6.1、为什么要分层
一句话:大事化小,小事好办
发送文件前要完成的工作:
- 发起通信的计算机必须将数据通信的通路进行激活。
- 要告诉网络如何识别目的主机。
- 发起通信的计算机要查明目的主机是否开机,并且与网络连接正常。
- 发起通信的计算机要弄清楚,对方计算机中文件管理程序是否己经做好准备工作。
- 确保差错和意外可以解决。
- 。。。
说白了,还是将一个大问题分割为一系列的小问题,然后逐个击破各个小问题,就完事儿。。。
6.2、如何进行分层
分层的基本原则
- 各层之间相互独立,每层只实现一种相对独立的功能。
- 每层之间界线自然清晰,易于理解,相互交流尽可能少。
- 结构上可分割开。每层都采用最合适的技术来实现。
- 保持下层对上层的独立性,上层单向使用下层提供的服务。
- 整个分层结构应该能促进标准化工作。
6.3、正式认识分层结构
分层的术语
- 实体:第n层中的活动元素称为n层实体。同一层的实体叫对等实体。
- 协议:为进行网络中的对等实体数据交换而建立的规则、标准或约定称为网络协议。【水平方向】
- 语法:规定传输数据的格式
- 语义:规定所要完成的功能
- 同步:规定各种操作的顺序
- 接口(访问服务点SAP):上层使用下层服务的入口。
- 服务:下层为相邻上层提供的功能调用。【垂直】
SDU & PCI & PDU
- SDU服务数据单元:为完成用户所要求的功能而应传送的数据。
- PCI协议控制信息:控制协议操作的信息。
- PDU协议数据单元:对等层次之间传送的数据单位。
上一层的PDU会作为下一层的SDU,再加上下一层的PCI信息,构成下一层的PDU
6.4、分层概念总结
总结
- 网络体系结构是从功能上描述计算机网络结构。
- 计算机网络体系结构简称网络体系结构,是一种分层的结构。
- 每层遵循某个/些网络协议以完成本层功能。
- 计算机网络体系结构是计算机网络的各层及其协议的集合。
- 第n层在向n+l层提供服务时,此服务不仅包含第n层本身的功能,还包含由下层服务提供的功能。
- 仅仅在相邻层间有接口,且所提供服务的具体实现细节对上一层完全屏蔽。
- 体系结构是抽象的,而实现是指能运行的一些软件和硬件。
6.5、本节课总结
7、OSI 参考模型
7.1、为什么提出 OSI 参考模型
提出 OSI 参考模型的背景
- 为了解决计算机网络复杂的大问题,需要使用分层结构(按功能)来解决如此复杂的问题
- 背景:各个公司提出的网络架构不一致,导致不同公司的系统相互之间无法完成通信
- 目的:支持异构网络系统的互联互通。国际标准化组织(ISO)于1984年提出开放系统互连(OSI)参考模型。但是!理论成功,市场失败。
最终演变成了常用的 4 层或 5 层体系结构
7.2、OSI 七层参考模型
七层参考模型
7.3、OSI 参考模型通信过程
端系统与中间系统通信上的差异
各个端系统之间通过中间系统连接起来,端系统工作于上四层之中,中间系统工作于下三层之中,对于端系统来说,下三层的细节实现完成被隐藏
端系统之间是端到端通信,中间系统之间是点到点通信
举个栗子:以“你吃了吗?”为例,进行讲解
- 发送方
- 每一层打包(RUA)一下,加一个头部信息,每一层的 PDU 作为下一层的 SDU
- 数据链路层除了加头部信息,还加了尾部信息呦~
- 物理层就是来打黑工的,负责将数据链路层的数据转为比特流发送出去
- 接收方:
- 每一层脱一件衣服,脱到第七层得到了“你吃了吗?”
- 裤子都脱了,就给我看这个???
7.4、应用层
应用层的功能
提供与用户与网络的界面,即所有能和用户交互产生网络流量的程序,比如 QQ,邮箱等
应用层的协议
典型的应用层服务有:文件传输(FTP),电子邮件(SMTP),万维网(HTTP)
7.5、表示层
表示层的功能
表示层用于处理在两个通信系统中交换信息的表示方式(语法和语义)
- 功能一:数据格式变换(翻译官)
- 功能二:数据加密解密
- 功能三:数据压缩和恢复
表示层的协议
主要协议:JPEG、ASCII
7.6、会话层
会话层的功能
会话层向表示层实体/用户进程提供建立连接并在连接上有序地传输数据。这是会话,也是建立同步(SYN)
- 功能一:建立、管理、终止会话
- 功能二:使用校验点可使会话在通信失效时从校验点/同步点继续恢复通信,实现数据同步。
举个栗子
-
会话与会话之间不会相互影响,彼此之间各自独立,比如电脑开着百度又开着视频,两者之间并不会相互干扰
-
设置校验点/同步点适用于传输大文件,将大文件分段,用同步点切割为一段一段的小文件,当传输失败时,无需从头再来,只需从同步点续传即可
会话层的协议
主要协议:ADSP、 ASP
7.7、传输层
传输层的功能
传输层负责主机中两个进程的通信,即端到端的通信。传输单位是报文段或用户数据报。
- 功能一:可靠传输和不可靠传输
- 功能二:差错控制
- 功能三:流量控制(控制发送方速率)
- 功能四:复用分用
- 复用:多个应用层进程可同时使用下面运输层的服务
- 分用:运输层把收到的信息分别交付给上面应用层中相应的进程(通过端口号区分)
传输层的协议
主要协议:TCP、UDP
7.8、网络层
网络层的功能
主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。 网络层传输单位是数据报。
- 功能一:路由选择(选取最佳路径)
- 功能二:流量控制
- 功能三:差错控制
- 功能四:拥塞控制(相较于流量控制,拥塞控制侧重于全局控制:若所有结点都来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定措施缓解这种拥塞。)
数据包过大会分割为一个一个的分组
网络层的协议
主要协议:IP、IPX、ICMP、IGMP、ARP、RARP、OSPF
7.9、数据链路层
数据链路层的功能
主要任务是把网络层传下来的数据报组装成帧。 数据链路层/链路层的传输单位是帧。
- 功能一:成帧(定义帧的开始和结束)
- 功能二:差错控制(帧错+位错)
- 功能三:流量控制
- 功能四:访问(接入)控制控制对信道的访问
数据链路层的协议
主要协议:SDLC、HDLC、PPP、STP
7.10、物理层
物理层的功能
主要任务是在物理媒体上实现比特流的透明传输。物理层传输单位是比特。
- 功能一:定义接口特性
- 功能二:定义传输模式(单工、半双工、双工)
- 功能三:定义传输速率
- 功能四:比特同步(通信时钟)
- 功能五:比特编码
透明传输:指不管所传数据是什么样的比特组合,都应当能够在链路上传送。
这是一个傻瓜层,它只需要将比特流转换为电信号发送出去就行
物理层的协议
主要协议:Rj45、802.3
7.11、本节课总结
8、TCP/IP & 5层参考模型
8.1、TCP/IP 参考模型
TCP/IP 参考模型所做的改动
- 将应用层、表示层、会话层合并为表示层
- 将数据链路层和物理层合并为网络接口层
- 每一层都有自己对应的协议
OSI参考模型与TCP/IP参考模型相同点
- 都分层
- 基于独立的协议栈的概念
- 可以实现异构网络互联
OSI参考模型与TCP/IP参考模型不同点
-
OSI定义三点:服务、协议、接口
-
OSI先出现,参考模型先于协议发明,不偏向特定协议
-
TCP/IP设计之初就考虑到异构网互联问题,将IP作为重要层次
-
对于网络层和传输层的连接方式
面向连接与无连接
面向连接分为三个阶段,第一是建立连接,在此 阶段,发出一个建立连接的请求。只有在连接成 功建立之后,才能开始数据传输,这是第二阶段。 接着,当数据传输完毕,必须释放连接。而面向 无连接没有这么多阶段,它直接进行数据传输。
8.2、5 层参考模型
综合了 OSI参考模型和 TCP/IP 参考模型的优缺点
5 层参考模型的数据封装与解封装
- 应用层封装成报文
- 传输层封装成报文段
- 网络层封装成数据报
- 数据链路层封装成帧
- 物理层转换为比特流