【计算机网络】第一章——概述
=========================================================================
个人主页直达:小白不是程序媛
系列专栏:计算机网络基础
=========================================================================
目录
前言
计算机网络概述
概念
功能
组成
分类
标准化工作
性能指标
速率
带宽
吞吐量
时延
时延带宽积
往返时延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 是一种用于创建和管理…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...

前端开发者常用网站
Can I use网站:一个查询网页技术兼容性的网站 一个查询网页技术兼容性的网站Can I use:Can I use... Support tables for HTML5, CSS3, etc (查询浏览器对HTML5的支持情况) 权威网站:MDN JavaScript权威网站:JavaScript | MDN...

路由基础-路由表
本篇将会向读者介绍路由的基本概念。 前言 在一个典型的数据通信网络中,往往存在多个不同的IP网段,数据在不同的IP网段之间交互是需要借助三层设备的,这些设备具备路由能力,能够实现数据的跨网段转发。 路由是数据通信网络中最基…...