【计算机网络】第一章——概述
=========================================================================
个人主页直达:小白不是程序媛
系列专栏:计算机网络基础
=========================================================================
目录
前言
计算机网络概述
概念
功能
组成
分类
标准化工作
性能指标
速率
带宽
吞吐量
时延
时延带宽积
往返时延RTT
利用率
分层
为什么要分层?
分层的基本原则:
正式认识分层结构
ISO/OSI 7层参考模型(法定标准)
ISO/OSI参考模型通信过程
应用层
表示层
会话层
传输层
网络层
物理层
TCP/IP协议
OSI参考模型与TCP/IP参考模型相同点
OSI参考模型与TCP/IP参考模型不同点
由7层ISO参考模型和5层TCP/IP参考模型衍生出的5层参考模型
五层参考模型的数据封装和解封装
前言
上篇文章我们对计算机的发展历史对大家进行了简要的描述,通过上篇文章不知道大家对于计算机网络有没有一个初步的认识。今天这篇文章从计算机网络的概念、分类、组成、功能、体系结构等计算机网络的概进行相关的分享,让大家对计算机网络有更深入的了解。
计算机网络概述
概念
三网:计算机网络、电信网络、有线电视网络
计算机网络:将分散的具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。计算机网络时互连的、自治的计算机集合。
互连网:有多个网络通过一些路由器相互连接起来,构成了一个覆盖范围更大的计算机网络。
互联网(Internet):由数量及大的各种计算机网络互连起来的。
通过上面的概念我们初步建立了下面的基本概念:网络是把许多计算机连接在一起,而互连网则把许多网络通过一些路由器连接在一起。与网络相连的计算机常称为主机。
功能
其实在上面计算机网络的概念中我们已经提到了
- 信息传递
- 资源共享
- 分布式处理
- 提高可靠性
- 负载均衡
组成
- 计算机网络有软件、硬件、协议组成
- 工作方式
- 边缘部分:用户直接使用(又分为C/S(B/S)方式和P2P方式)
- 核心部分:为边缘部分提供服务
- 功能组成
- 通信子网(实现数据通信)
- 资源子网(实现资源共享)
根据ISO模型,上三层为资源子网、下三成为通信子网

分类
- 按分布范围分类
- 广域网(交换技术)
- 城域网
- 局域网(广播技术)
- 个人区域网
- 按使用者分
- 公用网
- 专用网
- 按交换方式分
- 电路交换
- 报文交换
- 分组交换
- 按拓朴结构分
- 总线型
- 星型
- 环型
- 网状型(广域网)
- 按传输技术分
- 广播式网络(共享公共信息通道)
- 点对点网络使用分组存储交换转发和路由选择机制
标准化工作
标准规定的分类
- 法定标准:有权威机构制定的正式的合法的标准(OSI)
- 实施标准:某些公司的产品在竞争过程中占据了主流时间长了,这些产品中的协议和技术成了标准。(TCP/IP)
性能指标
速率
也可称为数据率、数据传输率、比特率
连接在计算机网络上的主机在数字信道上传送数据位数的速率
单位:b/s Kd/s Mb/s Gb/s Td/s
1Kb/s=10^3b/s
带宽
表示网络的通信线路传送数据的能力。通常是值单位时间从网络中的某一点到另一点所能通过的“最高数据率”单位是“比特每秒”。也指网络设备所支持的最高速度。
吞吐量
表示在单位时间内通过某个网络、信道或接口的数据量。单位b/s, kb/s, Mb/s等。
时延
- 指数据(报文/分组/比特流)从网络(或链路)的一端传送到另一端所需的时间。也叫延迟或迟延。单位是s。
发送时延(传输时延):从发送分组的第一个比特算起,到该分组的最后一个比特发送完毕所需的时间。
发送时延 = 数据长度 / 信道带宽(发送速率)
传播时延:电磁波在信道上传播一定距离所花费的时间。
传播时延 = 信道长度 / 电磁波在信道上的传播速率
排队时延:等待输入/输出链路可用。
处理时延:主机或路由器在收到分组时要花费一定的时间进行处理,例如分析分组的首部、从分组中提取数据部分、进行差错检验或查找适当的路由等。
时延带宽积
时延带宽积又称为以比特为单位的链路长度,单位为bit。 即“某段链路现在有多少比特”
时延宽带积=传播时延*带宽
往返时延RTT
从发送方发送数据开始,到发送方收到接收方的确认(接收方收到数据后立即发送确认),总共经历的时延。
RTT = 往返传播时延(传播时延 * 2)+ 末端处理时间+(末端处理时间)(可省略)
利用率
分为两种
- 信道利用率 = 有数据通过时间 / (有+无)数据通过时间
- 网络利用率 = 信道利用率加权平均值
分层
为什么要分层?
- 发起通信的计算机必须将数据通信的通路进行激活。
- 要告诉网络如何识别目的主机。
- 发起通信的计算机要查明目的主机是否开机,并且与网络连接正常。
- 发起通信的计算机要弄清楚,对方计算机中文件管理程序是否已经做好准备工作。
- 确保差错和意外可以解决。
- ……
由此可见:问题过于庞大,需要细分处理
分层的基本原则:
- 各层之间相互独立,每层只实现一种相对独立的功能。
- 每层之间界面自然清晰,易于理解,相互交流尽可能少
- 结构上可分割开。每层都采用最合适的技术来实现。
- 保持下层对上层的独立性,上层单向使用下层提供的服务。
- 整个分层结构应该能促进标准化工作。
正式认识分层结构
- 实体:第n层中的活动元素称为n层实体。同一层的实体叫对等实体。
- 协议:为进行网络中的对等实体数据交换而建立的规则、标准或约定称为网络协议(水平方向)。协议三要素:
- 语法:即数据与控制信息的结构或格式。
- 语义:即需要发出何种控制信息,完成何种动作以及做出何种响应。
- 同步:即事件实现顺序的详细说明。
- 接口(访问服务点SAP):上层使用下层服务的入口,下层为上层提供服务的接口(垂直方向)。
- 服务:下层为相邻上层提供的功能调用。
- SDU服务数据单元:为完成用户所要求的功能而应传送的数据。
- PCI协议控制信息:控制协议操作的信息。
- PDU协议数据单元:对等层次之间传送的数据单位。
- 数据传输时,PDU不断成为下一层的SDU,一直向下传递。

ps:
- 网络体系结构是从功能上描述计算机网络结构。
- 计算机网络体系结构简称网络体系结构是分层结构。
- 每层遵循某个/些网络协议以完成本层功能。
- 计算机网络体系结构是计算机网络的各层及其协议的集合。
- 第n层在向n+1层提供服务时,此服务不仅包含第n层本身的功能,还包含由下层服务提供的功能。
- 仅仅在相邻层间有接口,且所提供服务的具体实现细节对上一层完全屏蔽。
- 体系结构是抽象的,而实现是指能运行的一些软件和硬件。
ISO/OSI 7层参考模型(法定标准)
目的:支持异构网络系统的互连互通
国际化组织(ISO)于1984年提出开放系统互连OSI模型,但是因为一些原因被淘汰。

ISO/OSI参考模型通信过程

应用层
- 应用层距离主机最近,是用户与网络的界面。
- 所有能和用户交换产生网络流量的程序。
- 典型的应用层服务:
- 文件传输(FTP)
- 电子邮件(SMTP)
- 万维网(HTTP)
表示层
- 主要用于处理在两个通信系统中交换信息的表示方式(语法和语义)
- 主要功能:
- 数据的格式变换(编码和解码)
- 数据的加密解密
- 数据的压缩和恢复
- 主要协议:JPEG、ASCII
会话层
- 向表示层实体/用户进程提供建立连接并在连接上有序地传输数据。
- 这是会话,也是建立同步(SYN)。
- 主要功能:
- 建立、管理、终止会话。
- 使用校验点可使会话在通信失效时从校验点/同步点继续恢复通信,实现数据同步。
- 校验点:将一个大文件切分成几个部分,每部分插入一个校验点,当传输出现故障时,可继续从以传输的部分开始继续传输(断点续传)。
主要协议:ADSP、ASP
传输层
- 负责主机中两个进程的通信,即端到端的通信。传输单位是报文段或用户数据报。
- 主要功能:
- 可靠传输、不可靠传输:可靠传输将数据分成报文段发送,并拥有确认机制,不可靠传输则直接发送。
- 差错控制:检查错误
- 流量控制:协调发送端和接收端的速度。
- 复分复用
- 复用:多个应用层进程同时使用一个传输层协议传输数据。
- 分用:多个应用层进程同时使用一个传输层协议接收数据。
- 主要协议:TCP、UD
网络层
- 主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务,传输单位是数据报。
- 当数据报过长时,将数据报进行切割成小的分组,在进行传输。
- 主要功能:
- 路由选择:选择最佳路径
- 流量控制
- 差错控制
- 拥塞控制:若所有结点都来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定措施,缓解这种拥塞。
- 主要协议:IP、IPX、ICMP、IGMP、ARP.、RARP、OSPF
数据链路层
- 主要任务是把网络层传下来的数据报组装成帧,传输单位是帧。
- 主要功能:
- 成帧:定义帧的开始和结束
- 差错控制:帧错 + 位错
- 流量控制
- 访问(接入)控制:控制对信道的访问
- 主要协议:SDLC、HDLC、PPP、 STP
物理层
- 主要任务是在物理媒体上实现比特流的透明传输,传输单位是比特。
- 透明传输:指不管所传数据是什么样的比特组合都应当能够在链路上传送。
- 主要功能:
- 定义接口特性
- 定义传输模式:单工、半双工、双工
- 单工:数据传输只支持数据在一个方向上传输。
- 半双工:双方都可以作为发送方和接收方,但不能同时发送信息(对讲机)。
- 双工:双方都可以作为发送方和接收方,可以同时发送信息(打电话)。
- 定义传输速率
- 比特同步
- 比特编码
- 主要协议:Rj45、802.3
TCP/IP协议

OSI参考模型与TCP/IP参考模型相同点
- 都分层。
- 基于独立的协议栈的概。
- 可以实现异构网络互联
OSI参考模型与TCP/IP参考模型不同点
- OSI定义三点:服务、协议、接口。
- OSI先出现,参考模型先于协议发明,不偏向特定协议。
- TCP/IP设计之初就考虑到异构网互联问题,将IP作为重要层次

由7层ISO参考模型和5层TCP/IP参考模型衍生出的5层参考模型

五层参考模型的数据封装和解封装

- 数据传输就是一个“打包拆包”的过程。
- 数据链路层中需要添加头部信息和尾部信息。
- 物理层类似一个傻瓜层,只是将数据转换为比特流
今天的内容就分享完了,这篇文章对于初学者来说难度确实有点大,但是没关系后面的文章我们会对每一层讲解,今天只是让大家认识认识!!!希望大家读完文章有很大的收获,也希望大家留言指出我文章中出现的内容,同时也感谢各位看官的三连支持,你们的支持就是我更新的动力!!!
相关文章:
【计算机网络】第一章——概述
个人主页直达:小白不是程序媛 系列专栏:计算机网络基础 目录 前言 计算机网络概述 概念 功能 组成 分类 标准化工作 性能指标 速率 带宽 吞吐量 时延 时延带宽积 往返时延RTT 利用率 分层 为什么要分层? 分层的基本原则&am…...
vue实现在页面拖拽放大缩小div并显示鼠标在div的坐标
1、功能要求: 实现在一个指定区域拖拽div,并可以放大缩小,同时显示鼠标在该div里的坐标,如图可示 缩小并拖动 2、实现 <div class"div_content" ref"div_content"><div class"div_image" id"…...
LuatOS-SOC接口文档(air780E)-- io - io操作(扩展)
示例 -- io模块是lua原生模块,LuatOS增加了一些API -- 请配合os模块一起使用-- 只读模式, 打开文件 local fd io.open("/xxx.txt", "rb") -- 读写默认,打开文件 local fd io.open("/xxx.txt", "wb") -- 写入文件,且截断为0字节 loc…...
【数据结构】线性表(六)堆栈:顺序栈及其基本操作(初始化、判空、判满、入栈、出栈、存取栈顶元素、清空栈)
文章目录 一、堆栈1. 定义2. 基本操作 二、顺序栈0. 顺序表1. 头文件和常量2. 栈结构体3. 栈的初始化4. 判断栈是否为空5. 判断栈是否已满6. 入栈7. 出栈8. 查看栈顶元素9. 清空栈10. 主函数11. 代码整合 堆栈Stack 和 队列Queue是两种非常重要的数据结构,两者都是特…...
父组件可以监听到子组件的生命周期吗?
在 Vue 中,父组件是可以监听到子组件的生命周期的。Vue 提供了一些特殊的钩子函数,可以在父组件中监听子组件的生命周期事件。 以下是一些常用的方法来监听子组件的生命周期: 1:使用$emit: 在子组件的生命周期钩子函数中,使用 $emit 方法触发自定义事件,向父组件发送通…...
[开源]MIT开源协议,基于Vue3.x可视化拖拽编辑,页面生成工具
一、开源项目简介 AS-Editor 基于 Vue3.x 可视化拖拽编辑,页面生成工具。提升前端开发效率,可集成至移动端项目作为通过定义 JSON 直接生成 UI 界面。 二、开源协议 使用MIT开源协议 三、界面展示 四、功能概述 基于Vue可视化拖拽编辑,…...
【C++ Primer Plus学习记录】数组的替代品
目录 1.模板类vector 2.模板类array(C11) 3.比较数组、vector对象和array对象 模板类vector和array是数组的替代品。 1.模板类vector 模板类vector类似于string类,也是一种动态数组。您可以在运行阶段设置vector对象的长度,可…...
JSP免杀马
JSP免杀马 随着Java框架的进化和程序员的内卷,使用PHP编写的系统越来少,使用Java编写的系统越来越多。JSP马的使用越来越多,但是就目前来看,各大厂商对JSP马的查杀效果还是不尽人意。这里简单通过Java的反射机制和ClassLoader技术…...
2023-10-16 node.js-调用python-记录
NodeJS 作为后端,仅在需要时调用 Python 在某些特殊的场景下,比如复杂耗时的数据处理和运算时,我们可以用 Python 脚本编写,然后使用 Node 的子进程调用 Python 脚本即可,这样可以提升效率。如下代码,我们…...
Kotlin 设置和获取协程名称
1,设置写成名称 创建协程作用域是或者创建协程是有个上下文参数(context: CoroutineContext) 创建协程作用域 CoroutineScope(Dispatchers.IO CoroutineName("协程A"))//Dispatchers.IO根据实际情况设置可有可无 源码…...
awk命令的使用
1.概念: awk是Linux以及UNIX环境中现有的功能最强大的数据处理工具 awk是一种处理文本数据的编程语言。awk的设计使得它非常适合于处理由行和列组成的文本数据 awk程序可以读取文本文件,对数据进行排序,对其中的数值执行计算以及生成报表等…...
【面试系列】Vue
引言:下面是一些常见的 Vue 面试题和对应的答案 目录 1. Vue 是什么?它有哪些特点?2. Vue 的生命周期有哪些?请简要描述每个生命周期的作用。3. Vue 组件间通信的有哪些方式?4. Vue 的 computed 和 watch 的区别是什么…...
揭开MyBatis的神秘面纱:掌握动态代理在底层实现中的精髓
一日小区漫步,我问朋友:Mybatis中声明一个interface接口,没有编写任何实现类,Mybatis就能返回接口实例,并调用接口方法返回数据库数据,你知道为什么不? 朋友很是诧异:是啊ÿ…...
结合领域驱动设计,理解TOGAF之架构方法论
TOGAF(The Open Group Architecture Framework)是一个开放的架构方法论,旨在支持组织制定和实施企业架构。它提供了一种框架来创建和管理企业架构,并包含了一组最佳实践,帮助组织实现其业务目标。 TOGAF框架包括四个主…...
Vue-vue项目Element-UI 表单组件内容要求判断
整体添加判断 <el-formref"ruleFormRef":model"formModel"class"demo-ruleForm"label-position"top"status-icon:rules"rules"><el-form-item label"姓名" prop"applyUsers" class"form-…...
【试题027】C语言宏定义小例题
1.题目: #define MOD(a,b) a%b int main() { int x4,y16,z; zMOD(y,x); printf("%dn".z);} 则程序执行的结果是? 2.代码分析: #include <stdio.h> #define MOD(a,b) a%b int main() {int x 4, y 16, z;z MOD(y, …...
解决 sharp: Installation error: unable to verify the first certificate
使用 plasmo 时报错如下: E:\chromeplugins>pnpm create plasmo ../.pnpm-store/v3/tmp/dlx-46852 | 2 ../.pnpm-store/v3/tmp/dlx-46852 | Progress: resolved 2, reused 2, downloaded 0, added 2, done 🟣 Plasmo v0.83.0 &…...
【Java】Java实现100万+ 的高并发、高性能设计
Java实现100万 的高并发、高性能设计 1、简述 现百万级并发编是一项综合性的技术,同时,它与现实生活中 的场景有着紧密的联系。 搞懂并发编程有三大核心问题 分工问题 同步问题 互斥问题 本文就对这三大核心问题进行简单的介绍 2、分工问题 关于分工…...
linux系统下,在vscode的命令行中调试python文件
首先参考vscode官网文档Command line debugging 步骤 1(只需一次):安装debugpy 步骤 2:在命令行中运行 python -m debugpy --listen 5678 --wait-for-client -m dir1.dir2.your_script 以上命令使用了端口5678,也可…...
DFS(分布式文件系统)与 DFSR(分布式文件系统复制)的区别
DFS(分布式文件系统)和 DFSR(分布式文件系统复制)是两种不同的技术,尽管它们在名称上有一些相似之处,但它们的用途和功能有所不同。 DFS(分布式文件系统) DFS 是一种用于创建和管理…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障
关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...
Xela矩阵三轴触觉传感器的工作原理解析与应用场景
Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知,帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量,能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度,还为机器人、医疗设备和制造业的智…...
MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释
以Module Federation 插件详为例,Webpack.config.js它可能的配置和含义如下: 前言 Module Federation 的Webpack.config.js核心配置包括: name filename(定义应用标识) remotes(引用远程模块࿰…...
