【计算机网络】第一章——概述
=========================================================================
个人主页直达:小白不是程序媛
系列专栏:计算机网络基础
=========================================================================
目录
前言
计算机网络概述
概念
功能
组成
分类
标准化工作
性能指标
速率
带宽
吞吐量
时延
时延带宽积
往返时延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 是一种用于创建和管理…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...

C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...

day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...