【计算机网络】第一章——概述
=========================================================================
个人主页直达:小白不是程序媛
系列专栏:计算机网络基础
=========================================================================
目录
前言
计算机网络概述
概念
功能
组成
分类
标准化工作
性能指标
速率
带宽
吞吐量
时延
时延带宽积
往返时延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 是一种用于创建和管理…...

丈母娘说:有编制的不如搞编程的
10月17日百度世界大会召开,据说文心大模型又牛X了,综合水平相比GPT4毫不逊色,真是个让人激动的消息,国产大模型的进展可以说是日新月异,我这耳朵边一直响彻四个字:遥遥领先。 不过今天我关注的重点不是什么…...

vue 部署后 405 not allowed
关于部署vue项目dist包,在nginx配置遇到的坑: 1.vue项目中vue.config.js的配置:devServer.proxy 可以是一个指向开发环境 API 服务器的字符串: evServer: {proxy: {/prod-api: {target: http://192.168.0.68:38090;,changeOrigi…...

【限时免费】20天拿下华为OD笔试之【回溯】2023Q1-硬件产品销售方案【欧弟算法】全网注释最详细分类最全的华为OD真题题解
【回溯】2023Q1-硬件产品销售方案 题目描述与示例 题目描述 某公司目前推出了 AI 开发者套件、AI 加速卡、AI 加速模块、AI 服务器、智能边缘多种硬件产品,每种产品包含若干个型号。现某合作厂商要采购金额为 amount 元的硬件产品搭建自己的 AI 基座。假设当前库…...

蜻蜓c影视追剧系统-多个小程序添加说明
多小程序添加设置 蜻蜓c影视追剧 支持多小程序添加,也就是可以管理不同前端的小程序。 此处id 对应前端小程序的mp值 关于添加小程序: 此处有所有填写内容的参考方式,要注意是必须开通了微信支付才可以添加,这里需要添加证书信息…...

linux 测试存储介质.emmc.nand.ufs.硬盘的读写速度方法
一、测试写速度 创建一个test.sh脚本 #!bin/bashcnt1 while [ $cnt -lt 50 ] // 循环50次 doecho "dd cnt $cnt" > /dev/consoledd if/dev/zero of/rawdata/test_${cnt}.txt bs1024 count102400//往储存介质分配的一个rawdata分区,写文件࿰…...

基于 KubeSphere 部署 KubeBlocks 实现数据库自由
作者:尹珉, KubeSphere Contributor & Ambassador,KubeSphere 社区用户委员会杭州站站长。 KubeSphere 是什么? KubeSphere 是在 Kubernetes 之上构建的面向云原生应用的分布式操作系统,完全开源,支持…...

图像识别-人脸识别与疲劳检测 - python opencv 计算机竞赛
文章目录 0 前言1 课题背景2 Dlib人脸识别2.1 简介2.2 Dlib优点2.3 相关代码2.4 人脸数据库2.5 人脸录入加识别效果 3 疲劳检测算法3.1 眼睛检测算法3.3 点头检测算法 4 PyQt54.1 简介4.2相关界面代码 5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是…...

高性能计算与多模态处理的探索之旅:英伟达GH200性能优化与GPT-4V的算力加速未来
★多模态大模型;GPU算力;LLMS;LLM;LMM;GPT-4V;GH200;图像识别;目标定位;图像描述;视觉问答;视觉对话;英伟达;Nvidia&#…...

代码随想录算法训练营Day59|动态规划17
代码随想录算法训练营Day59|动态规划17 文章目录 代码随想录算法训练营Day59|动态规划17一、647. 回文子串二、516.最长回文子序列 一、647. 回文子串 class Solution {public int countSubstrings(String s) {boolean[][] dp new boolean[s.length()][s.length()];int res …...

软考 系统架构设计师系列知识点之软件构件(2)
接前一篇文章:软考 系统架构设计师系列知识点之软件构件(1) 所属章节: 第2章. 计算机系统基础知识 第3节. 计算机软件 2.3.7 软件构件 3. 商用构件的标准规范 当前,主流的商用构件标准规范包括对象管理组织ÿ…...