计算机网络(1)——概述
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.应用层
应用层将数据包进行解析,然后将内容显示到屏幕上
以上就是分用的过程
相关文章:

计算机网络(1)——概述
1.计算机网络基本概念 1.1 什么是计算机网络 计算机网络的产生背景 在计算机网络出现之前,计算机之间都是相互独立的,每台计算机只能访问自身存储的数据,无法与其他计算机进行数据交换和资源共享。这种独立的计算机系统存在诸多局限性&#…...

刘家祎双剧收官见证蜕变,诠释多面人生
近期,两部风格迥异的剧集迎来收官时刻,而青年演员刘家祎在《我家的医生》与《无尽的尽头》中的精彩演绎,无疑成为观众热议的焦点。从温暖治愈的医疗日常到冷峻深刻的少年救赎,他以极具张力的表演,展现出令人惊叹的可塑…...

Axure制作可视化大屏动态滚动列表教程
在可视化大屏设计中,动态滚动列表是一种常见且实用的展示方式,能够有效地展示大量信息。本文将详细介绍如何使用Axure制作一个动态滚动的列表展示模块。 一、准备工作 打开Axure软件:确保你已经安装并打开了Axure RP软件。创建新项目&#x…...

MATLAB实现振幅调制(AM调制信号)
AM调制是通信专业非常重要的一个知识点。今天我们使用MATLAB编程实现AM调制。 我们实现输入一个载波信号的频率与调制信号的频率后,再输入调幅度,得到已调信号的波形与包络信号的波形,再使用FFT算法分析出已调信号的频谱图。 源代码&#x…...
LLM-Based Agent综述及其框架学习(五)
文章目录 摘要Abstract1. 引言2. 文本输出3. 工具的使用3.1 理解工具3.2 学会使用工具3.3 制作自给自足的工具3.4 工具可以扩展LLM-Based Agent的行动空间3.5 总结 4. 具身动作5. 学习智能体框架5.1 CrewAI学习进度5.2 LangGraph学习进度5.3 MCP学习进度 参考总结 摘要 本文围绕…...

6.1.1图的基本概念
基本概念 图: 顶点集边集 顶点集:所有顶点的集合,不能为空(因为图是顶点集和边集组成,其中一个顶点集不能为空,则图肯定不为空) 边集:所有边的集合,边是由顶点集中的2…...

Linux面试题集合(6)
创建多级目录或者同级目录 mkdir -p 文件名/文件名/文件名 mkdir -p 文件名 文件名 文件名 Linux创建一个文件 touch 文件名 DOS命令创建文件 echo 内容>文件名(创建一个有内容的文件) echo >文件名(创建一个没有内容的文件)…...

时间筛掉了不够坚定的东西
2025年5月17日,16~25℃,还好 待办: 《高等数学1》重修考试 《高等数学2》备课 《物理[2]》备课 《高等数学2》取消考试资格学生名单 《物理[2]》取消考试资格名单 职称申报材料 2024年税务申报 5月24日、25日监考报名 遇见:敲了一…...
Python集合运算:从基础到进阶全解析
Python基础:集合运算进阶 文章目录 Python基础:集合运算进阶一、知识点详解1.1 集合运算(运算符 vs 方法)1.2 集合运算符优先级1.3 集合关系判断方法1.4 方法对比 二、说明示例2.1 权限管理系统2.2 数据去重与差异分析2.3 数学运算…...
jvm安全点(二)openjdk17 c++源码垃圾回收安全点信号函数处理线程阻塞
1. 信号处理与桩代码(Stub) 当线程访问安全点轮询页(Polling Page)时: 触发 SIGSEGV 信号:访问只读的轮询页会引发 SIGSEGV 异常。信号处理函数:pd_hotspot_signal_handl…...

YOLOv7训练时4个类别只出2个类别
正常是4个类别: 但是YOLOv7训练完后预测总是只有两个类别: 而且都是LFM和SFM 我一开始检查了下特征图大小,如果输入是640*640的话,三个尺度特征图是80*80,40*40,20*20;如果输入是416*416的话,三个尺度特征…...

【论文阅读】针对BEV感知的攻击
Understanding the Robustness of 3D Object Detection with Bird’s-Eye-View Representations in Autonomous Driving 这篇文章是发表在CVPR上的一篇文章,针对基于BEV的目标检测算法进行了两类可靠性分析,即恶劣自然条件以及敌对攻击。同时也提出了一…...
18.中介者模式:思考与解读
原文地址:中介者模式:思考与解读 更多内容请关注:深入思考与解读设计模式 引言 在软件开发中,尤其是处理多个对象交互时,你是否遇到过一个问题:当多个对象需要互相通信时,系统变得复杂,难以管…...

flutter 配置 安卓、Ios启动图
android 配置启动图 launch_background.xml <?xml version"1.0" encoding"utf-8"?> <!-- Modify this file to customize your launch splash screen --> <layer-list xmlns:android"http://schemas.android.com/apk/res/android&…...

基于朴素贝叶斯与 LSTM 的假新闻检测模型对比分析
一、引言 在信息爆炸的时代,假新闻的传播对社会产生了诸多负面影响。如何快速、准确地识别假新闻成为了重要的研究课题。本文将对比传统机器学习算法(朴素贝叶斯)与深度学习模型(LSTM)在假新闻检测任务中的性能表现&am…...

【LeetCode 热题 100】搜索插入位置 / 搜索旋转排序数组 / 寻找旋转排序数组中的最小值
⭐️个人主页:小羊 ⭐️所属专栏:LeetCode 热题 100 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 搜索插入位置搜索二维矩阵在排序数组中查找元素的第一个和最后一个位置搜索旋转排序数组寻找旋转排序数组中的最小值…...

副业小程序YUERGS,从开发到变现
文章目录 我为什么写这个小程序网站转小程序有什么坑有什么推广渠道个人开发者如何变现简单介绍YUERGS小程序给独立开发者一点小建议 我为什么写这个小程序 关注我的粉丝应该知道,我在硕士阶段就已经掌握了小程序开发技能,并写了一个名为“约球online”…...
计算机视觉与深度学习 | Python实现EMD-VMD-LSTM时间序列预测(完整源码和数据)
EMD-VMD-LSTM 一、完整代码实现二、代码结构解析三、关键参数说明四、性能优化建议五、工业部署方案以下是用Python实现EMD-VMD-LSTM时间序列预测的完整代码,结合经验模态分解(EMD)、变分模态分解(VMD)与LSTM深度学习模型,适用于复杂非平稳信号的预测任务。代码包含数据生…...

基于LLM合成高质量情感数据,提升情感分类能力!!
摘要:大多数用于情感分析的数据集缺乏意见表达的上下文,而上下文对于理解情绪往往至关重要,并且这些数据集主要局限于几种情绪类别。像 GPT-4 这样的基础大型语言模型(Foundation Large Language Models,LLMsÿ…...

网络检测工具InternetTest v8.9.1.2504 单文件版,支持一键查询IP/DNS、WIFI密码信息
—————【下 载 地 址】——————— 【本章下载一】:https://drive.uc.cn/s/295e068b79314 【本章下载二】:https://pan.xunlei.com/s/VOQDXguH0DYPxrql5y2zlkhTA1?pwdg2nx# 【百款黑科技】:https://ucnygalh6wle.feishu.cn/wiki/…...
SpringBoot中使用Flux实现流式返回的技术总结
背景 近期在使用deepseek/openai等网页和APP时,发现大模型在思考和回复时,内容是一点点的显示出来的,于是好奇他们的实现方式。经调研和使用开发者工具抓取请求,每次聊天会向后台发送一个http请求,而这个接口跟普通接…...

【网络编程】十、详解 UDP 协议
文章目录 Ⅰ. 传输层概述1、进程之间的通信2、再谈端口号端口号的引出五元组标识一个通信端口号范围划分常见的知名端口号查看知名端口号协议号 VS 端口号 3、两个问题一个端口号是否可以被多个进程绑定?一个进程是否可以绑定多个端口号? 4、部分常见指令…...
从零开始理解Jetty:轻量级Java服务器的入门指南
目录 一、Jetty是什么?先看一个生活比喻 二、5分钟快速入门:搭建你的第一个Jetty服务 步骤1:Maven依赖配置 步骤2:编写简易Servlet(厨房厨师) 步骤3:组装服务器(餐厅开业准备&am…...
python05——循环结构
1、while循环 n0 #初始条件 while n<5: #判断print(hello python) #要重复执行的代码print(n) #注意同级代码缩进相同n1 #计数器结果: hello python 0 hello python 1 hello python 2 hello python 3 hello python 4 hello python 5 #求阶乘和 sum0 n1 whil…...
windows触摸板快捷指南
以下是结构化整理后的触控手势说明,采用清晰的层级划分和标准化表述: **触控手势操作规范****1. 单指操作****2. 双指操作****3. 三指操作****4. 四指操作** **优化说明:** 触控手势操作规范 1. 单指操作 手势功能描述等效操作单击滑动选择…...
STM32 ADC 模数转换器详解:原理、配置与应用
STM32 ADC 模数转换器详解:原理、配置与应用 在嵌入式系统中,模数转换(ADC)是实现传感器信号采集、信号处理等任务的关键环节。STM32 微控制器作为一款功能强大的 32 位微控制器,其内置的 ADC 模块为开发者提供了高效…...

[目标检测] YOLO系列算法讲解
前言 目标检测就是做到给模型输入一张图片或者视频,模型可以迅速判断出视频和图片里面感兴趣的目标所有的位置和它 的类别,而当前最热门的目标检测的模型也就是YOLO系列了。 YOLO系列的模型的提出,是为了解决当时目标检测的模型帧率太低而提…...
React 中,闭包陷阱
文章目录 前言1. 经典闭包陷阱示例过期状态问题 2. 解决方案2.1 正确声明依赖数组2.2 使用 useRef 捕获最新值**2.3 使用函数式更新(针对状态更新)****2.4 使用 useCallback 冻结闭包** **3. 异步操作中的闭包陷阱****事件监听示例** **4. 自定义 Hooks …...

.NET NativeAOT 指南
目录 1. 引言 2. 什么是 .NET NativeAOT? 2.1 NativeAOT 的定义 2.2 NativeAOT 与传统 JIT 的对比 2.3 NativeAOT 的适用场景 3. NativeAOT 的核心优势 3.1 性能提升 3.2 简化部署 3.3 更小的应用体积 3.4 知识产权保护 4. NativeAOT 的基本用法 4.1 环境…...

uniapp-商城-57-后台 新增商品(弹窗属性数据添加父级)
后台增加商品,需要添加相关的数据信息,这里还要添加属性,前面已经对相关的界面布局继续了编写。这里还要对页面添加的数据,置入到云数据库,继续永久保存,便于后期的使用。这里主要是讲属性数据 父级信息的添…...