1.计算机网络基本概念
1.1 什么是计算机网络
- 计算机网络的产生背景
在计算机网络出现之前,计算机之间都是相互独立的,每台计算机只能访问自身存储的数据,无法与其他计算机进行数据交换和资源共享。这种独立的计算机系统存在诸多局限性:
资源利用率低:计算机的资源(如处理器、内存、硬盘等)只能被自身利用,无法被其他计算机共享,导致资源浪费
计算能力有限:单台计算机的处理能力有限,无法处理复杂的计算任务或者大规模的数据处理
数据共享困难:每台计算机都是独立的存储设备,无法被其他计算机访问,只能通过物理介质进行信息传递(如:利用U盘拷贝)
随着通信技术和计算机技术的不断发展推动了计算机网络的诞生,所以说:
计算机网络是通信技术与计算机技术紧密结合的产物
定义:计算机网络就是
互连
的、自治
的计算机集合
互连
:计算机之间互联互通
自治
:计算机之间无主从关系
在早期时,主机数量有限,因此主机之间可以使用物理介质进行直连
但随着主机数量的增减,物理直连的成本过高,交换网络的概念应运而生
1.2 什么是Internet
- 从组成细节角度来看:
Internet是全球最大的互联网络,由ISP(互联网服务提供商,Internet Service Provider)网络互连的网络之网络。换言之,Internet是由多个独立网络互联而成的一个庞大的网络系统,它主要有以下几个组成部分:
(1)成千上万的互连的计算设备
集合(PC、手机等)
(2)通信链路
(光纤、卫星等)
(3)交换网络
:实现数据的分组转发(路由器、交换机等)
- 从服务角度来看:能为用户提供什么服务
(1)为网络应用提供通信服务基础设施
:光纤、电缆、路由器等
(2)为网络应用提供应用编程接口(API)
:如网络协议API,DNS API,数据库API等
Question:如果仅有硬件连接,能否保证网络通信中的数据交换?
Answer:不能,还需要协议
1.3 协议
1.3.1 什么是协议
硬件是计算机网络的基础,但是计算机网络中的数据交换必须遵守实现约定好的规则
以交通系统为例:交通系统中有交通规则,规定了车辆和行人如何安全有序地移动。比如,红灯停绿灯行,车辆靠右行驶等。如果一个交通系统中仅有道路(物理条件),而没有交通规则,那么该交通系统是一定会瘫痪的
在计算机网络中也一样,数据之间的交换必须要遵守一定的规则,保证通信的安全性、有序性,这种规则就叫做协议。协议规定了通信实体之间数据交换的格式
、意义
、顺序
以及针对收到的消息所采取的“行为”
1.3.2 协议的三要素
(1)
语法
:定义了数据在网络上传输时的结构和格式
- 1.数据格式:规定了消息中各个字段的顺序、长度、数据类型等
- 2.编码方式:规定了数据在传输过程中如何编码和解码
- 3.信号电平:规定了信号的电压、电流等
(2)
语义
:定义了协议中消息的含义和目的
- 1.字段的解释方式:消息中各个字段代表什么含义
- 2.协议的功能:协议如何实现请求、响应、错误处理等功能
例如:HTTP协议中,GET请求是请求服务器提供指定资源;POST请求是向服务器提交数据
(3)
时序
:定义了消息交换的顺序和时间关系
- 1.事件顺序:规定了消息发送和接收的顺序
- 2.时间间隔:规定了消息发送和接收的时间间隔
- 3.超时和重传机制:规定了在特定时间内未收到响应时的处理方式 例如:TCP协议三次握手建立连接,这三次交互必须严格按照规定的顺序进行;HTTP协议中,服务器在收到请求后,必须在规定时间内返回响应
2.计算机网络结构
计算机网络结构分为三个部分:
- 1.网络边缘(Network Edge):处于计算机网络的边缘地带
- 2.接入网络:网络边缘和网络核心的中间部分
- 3.网络核心:位于计算机网络的核心地带
2.1 网络边缘
主要由计算设备和运行在计算设备上的应用程序组成,比如:我们的手机和手机上的应用(浏览器)就处于计算机网络边缘。这些计算设备有两种通信模型:
- 1.客户端-服务器(client-sever)应用模型:客户端发送请求,服务器返回响应
- 2.对等(peer-peer,P2P)应用模型:通信在对等设备之间直接进行
以QQ为例:当你在某群聊中发送消息时,你的消息会先到达维护该群聊的服务器,服务器接收到你的消息后利用广播机制再转发给群聊中的其他人,这就是客户端-服务器(client-sever)应用模型;当你给某好友发送消息时,该消息会直接到达对方手机上,而不会再经由服务器转发,这就是对等(peer-peer,P2P)应用模型
2.2 接入网络
负责将处于网络边缘的设备接入到网络核心,主要由两部分组成
- 1.物理介质:光纤、电缆等。这些物理介质提供了计算设备与网络核心之间连接的数据传输通道
- 2.接入技术:调制解调器、无线局域网(WLAN)等。这些接入技术决定了计算设备接入网络的方式(独占/共享)和速度
2.3 网络核心
主要由多个相互连接的路由器组成,负责消息的路由
和转发
。目的是:将消息从源主机传输给目的主机
3.网络核心
Question:如何实现数据通过网络核心从源主机到达目的主机?
Answer:数据交换
,一共有电路交换、报文交换和分组交换三种方式
3.1 电路交换
3.1.1 电路交换
- 概念:在通信开始前,发送方和接收方之间建立一条专用的物理或逻辑连接。这条连接在整个通信过程中保持不变,直到通信结束
- 最典型的电路交换网络:电话网络
- 电路交换的三个阶段:
-
建立连接(拨号->打通电话)
-
通信
-
释放连接(挂断电话)
- 最显著的特点:
独占资源
(当两个人打通电话之后,第三个人是打不进来的)
Question:以上图为例,电话A和电话B建立连接后是独占整个电话网络吗?
Answer:不是的,多个交换机互联组成的电话网络的承载能力,往往可以同时支撑多对电话进行通信。电路交换的独占性指的是:在通信期间,特定的物理线路被某个连接独占,并不代表整个电话网络都被该连接独占。
但是电路交换的独占性确实会导致资源利用率低的问题,所以多路复用技术应运而生
3.1.2 多路复用
多路复用:将链路/网络资源(如贷款)划分为“资源片”分配给各路呼叫(calls),每路呼叫独占分到的资源片。
分配方式可以分为四种,分别是:频分多路复用、时分多路复用、波分多路复用和码分多路复用
- 1.
频分多路复用(FDM)
:将通信信道按照频率分割为多个独立的子信道的技术,允许多路信号信号在同一介质中同时传输二互不干扰
- 2.
时分多路复用(TDM)
:将时间等分为一段段时间复用帧(TDM帧),每路信号在每个TDM帧中占用固定序号的时隙
- 3.
波分多路复用(WDM)
:光通信中的FDM,将通信信道按照波长分割为多个独立的子信道的技术
- 4.
码分多路复用(CDM)
:每路信号被一个唯一的码序列调制,彼此互不干扰
3.2 分组交换
- 概念:数据被分割成多个小的分组,每个分组独立传输,通过网络中的不同路径到达目的地。分组在传输过程中可能会经过多个中间节点(如路由器或交换机)
分组
:在源主机中将数据分割为若干个小的数据包(分片),每个分片都会有一个序号重组
:在目的主机中将分片按照序号进行组装
注意
- 每个分片都会添加额外的控制信息,来保证重组的顺利进行(比如:IP数据包进行分组时,每个分片都会有3位标志位和13位片偏移来控制重组)
- 分组和重组发生在源主机和目的主机,经由中间的路由器时不会发生
3.3 电路交换和分组交换区别
特性 | 分组交换 | 电路交换 |
---|---|---|
资源占用 | 动态分配 | 固定 |
资源利用率 | 高 | 低 |
使用场景 | 突发数据 | 实时流 |
4.计算机网络性能
4.1 速率
- 即
数据率(data rate)
或称数据传输速率
或比特率(bit rate)
:指数据在网络中的传输速率 - 单位:b/s、kb/s、Mb/s、Gb/s(k = 10 ^ 3,M = 10 ^ 6,G = 10 ^ 9)
- 日常生活中给出的速率指标(如百兆网络/千兆网络)一般指的是理想状态下的最大传输速率/额定速率(带宽)
4.2 带宽(bandwidth)
原本指信号具有的频带宽度,即最高频率与最低频率之差,单位是赫兹(Hz);网络中的“带宽”通常是数字信道所能传输的“最高数据传输速率”
,单位是b/s(bps)
4.3 延迟(delay)
Question:分组交换为什么会有丢包和延迟?
以上图为例,主机A/B要传输一组数据包到路由器Y,首先该组数据包会先到达路由器X,如果此时路由器Y正在传输其他数据,那么该组数据白会先在路由器上保存,当路由器X的缓存满时,后续到达的数据包就会被丢弃,这就叫做丢包
而分组交换的延迟一共分为四种:
- 1.
节点处理延迟(nodal processing delay):
数据到达某一网络设备(如路由器)时会对数据进行差错检测,根据数据中的地址信息判断转发到哪一个路由器或主机,这些操作所花费的时间就叫做节点处理延迟
- 2.
排队延迟(queueing delay):
以上图为例,数据到达路由器X后,等待路由器Y处理完其他数据的时间。一般来说等待时间不确定,取决于路由器的拥塞程度
- 3.
传输延迟(transmission delay):
一组数据包全部通过某网络设备(如路由器)所需的时间。例如:某组分片的大小为10000bit,路由器的带宽是1Mbps(1,000,000bit),传输延迟就是0.01秒
- 4.
传播延迟(propagation ddeelay):
数据在物理介质中从发送端到接收端所需的时间。光纤中的信号传播速度约为2×10^8米/秒,如果传输距离是1000公里,传播延迟就是0.005秒
为了更清楚的区分传输延时和传播延迟的区别:我这里以车队类比数据包
车->
分片;车队->
分组;收费站->
路由器
车速为100km/h->信号传播速度
一辆车通过收费站用时12秒
车队通过收费站用时120秒->传输延迟
一辆车从第一个收费站到达下一个收费站用时1小时->传播延迟
4.4 时延带宽积(Delay-Bandwidth Product,DBP)
时延带宽积(bit) = 传播延迟(s) × 带宽(bps)
表示网络链路中“正在传输”的数据量,即发送端和接收端之间“飞行”中的比特数。所以链路的时延带宽积又称为以比特为单位的链路长度
4.5 丢包率
指在网络传输过程中丢失的数据包数量与总发送数据包数量的比值
4.6 吞吐量
表示在发送端与接收端之间传送数据速率(bps)
即时吞吐量:
给定时刻的速率平均吞吐量:
一段时间的平均速率
吞吐量的大小取决于瓶颈链路的带宽
5.计算机网络体系结构
5.1 计算机网络体系结构概述
什么是计算机网络体系结构?
- 计算机网络体系结构是从功能的角度进行划分的
- 一般采用分层模型来描述,即网络分层
- 每层遵循某个/些网络协议完成本层功能
- 计算机网络体系结构是网络各层及其协议的集合
- 计算机网络体系结构定义了计算机网络的功能层次以及层次之间的关系
为什么是采用分层结构?
- 结构清晰:网络分层的参考模型(如OSI 7层模型)就严格区分了各层实现的功能和它们之间的关系
- 利于维护更新:任何一层功能的实现对外透明,只提供接口
- 利于标准化:各层之间的接口是标准化的,这可以让不同厂商之间的设备无缝衔接
5.2 OSI 7层模型
OSI 7层模型是国际标准化组织(ISO)在1984年提出的分层网络体系结构,目的是支持不同的网络结构之间互通互联
OSI 7层模型的通信过程
OSI 7层模型数据封装与分用过程
注意:OSI 7层模型只存在于理论中,主要是帮助我们理解网络分层,实际应用中基本上不会按照该模型的标准来分层
5.3 TCP/IP 5层模型
实际应用中一般采用TCP/IP 5层模型的标准,将会话层和表示层的功能集成到应用层里。既简化了整个协议栈的结构,又进一步提高了数据在网络中传输的效率
下面对TCP/IP模型通信过程中封装和分用的流程进行演示:
预设场景:张三给李四在2025年3月21日(只是演示,不精确到秒)这一天给李四发消息,消息内容是"Hello World"
接下来我们以发送方和接收方的视角来观察发送方
1.应用层
假设应用层协议的格式为:接收方QQ号+发送时间+发送方QQ号+内容
应用层将该数据包提交给传输层
2.传输层
传输层把来自应用层的数据包构造成传输层数据报,传输层常用的协议有两个,分别是UDP和TCP。这里以UDP协议为例,在应用层数据包前面添加UDP报头,然后提交给网络层
UDP报头主要包含源端口和目的端口
3.网络层
网络层基于IP协议在UDP数据报前面添加IP报头,然后提交给数据链路层
IP报头主要包含源IP和目的IP
4.数据链路层
数据链路层基于以太网协议在IP数据报的首/尾部添加以太网帧头/尾,打包成以太网数据帧然后提交给物理层
5.物理层
物理层将以太网数据帧中的二进制数据转换成光/电信号,然后数据就被发生出去了
以上就是封装的过程接收方
1.物理层
通过网卡接受到光/电信号,在物理层将光/电信号转换为二进制数据,该二进制数据的格式是以太网数据帧,然后提交给数据链路层进行解析
2.数据链路层
数据链路层把以太网数据帧的帧头和帧尾拆除,将剩下的部分提交给网络层
3.网络层
网络层解析出IP报头,将IP数据报的载荷部分提交给传输层
4.传输层
传输层解析出UDP报头,将UDP载荷部分提交给应用层
5.应用层
应用层将数据包进行解析,然后将内容显示到屏幕上
以上就是分用的过程