【基础计算机网络1】认识计算机网络体系结构,了解计算机网络的大致模型(下)
前言
在上一篇我们主要介绍了有关计算机网络概述的内容,下面这一篇我们将来介绍有关计算机网络体系结构与参考模型的内容。这一篇博客紧紧联系上一篇博客。
这一篇博客主要内容是:计算机网络体系结构与参考模型,主要是计算机网络分层结构、协议、接口、服务的概念、ISO/OSI参考模型和TCP/IP模型。
【考纲内容】
计算机网络体系结构与参考模型
- 计算机网络分层结构;计算机网络协议、接口、服务的概念
- ISO/OSI参考模型和TCP/IP模型
【特别注意】
本章主要介绍计算机网络体系结构的基本概念,读者可以在理解的基础上适当地记忆。重点掌握网络的分层结构(包括5层和7层结构),尤其是ISO/OSI参考模型各层的功能及相关协议、接口和服务等概念。掌握有关网络的各项性能指标。特别是时延、带宽、速率和吞吐量等的计算。
一、计算机网络分层结构
1.1 体系结构
先来认识一下体系结构:计算机网络中的层次、各层的协议及层间接口的集合。层次结构以垂直分层模型来表示。除了在物理媒体上进行的是实通信之外,其余各对等实体间进行的都是虚通信。对等层的虚通信必须遵循该层的协议。
什么是实通信、什么又是虚通信呢?
- 举个生动的例子,我要送一支笔送给某个人,当某个人拿到笔的时候,这样就是虚通信,因为不是我拿着笔送给某个人,而是通过快递的方式进行的。
- 我将笔给快递员,快递员给分拣员,然后再通过高铁或飞机送到某个人的地方去,这就是实通信。
1.2 分层的意义和基本原则(但目前位置未涉及题目)
1.2.1 分层的意义
两个系统中实体间的通信是一个很复杂的过程,为了降低协议设计和调试过程的复杂性,也为了便于对网络进行研究、实现和维护,促进标准化工作,通常对计算机网络的体系结构进行分层的方式进行建模。
1.2.2 层次结构划分的原则
- 每层的功能应是明确的,并且是相互独立的。当某一层的具体实现方法更新时,只要保持上、下层的接口不变,便不会对邻居产生影响,可以采用最合适的技术来实现;
- 层间接口必须清晰,跨域接口的信息量应尽可能少;
- 层数应该适中。若层数太少,则造成每一层法协议太复杂;若层数太多,则体系结构过于复杂,使描述和实现各层功能变得困难;
- 各层之间界面自然清晰,易于理解,相互交流尽可能少;
- 保持下层对上层的独立性,上层单向使用下层提供的服务;
- 整个分层结构应能促进标准化工作。
1.3 体系结构的特点
- 以功能作为划分层次的基础;
- 第n层实体在实现自身定义的功能时,只能使用第n-1层提供的服务;
- 第n层在向第n+1层提供服务时,此服务不仅包含第n层本身的功能,还包含由下层服务提供的功能;
- 仅在相邻层间有接口,且所提供服务的具体实现细节对上一层完全屏蔽。
1.4 概念理解
- 网络协议是按层次结构来组织的;
- 网络层次结构模型与各层协议的集合称为网络体系结构;
- 网络体系结构对计算机网络应该实现的功能进行了精确的定义;
- 体系结构是抽象的,而实现是指能够运行的一些硬件和软件。
二、计算机网络协议、接口、服务的概念
2.1 协议
协议的概念:
- 网络协议是为网络数据交换而制定的规则、约定与标准。(就像是,快递公司发快递要在快递上面贴快递单号的作用一样,协议其实就是一种语言。)
协议的三要素:语义、语法与同步(时序)。
- 语义:用于解释比特流的每一部分的意义
- 语法:语法是用户数据域控制信息的结构与格式,以及数据出现的顺序的意义;(相当于快递单上写有姓名,地址,联系方式固定的位置以及顺序。)
- 同步(时序):事件实现顺序的详细说明
下面就来看一道关于时序的考试题目:

实体的概念:
- 表示任何可发送或接收信息的硬件或软件进程。
协议的功能:
- 协议是控制两个对等实体进行通信的规则的集合。
- 在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。
- 要实现本层协议,还需要使用下层所提供的服务。
2.2 服务
服务的概念:
- 为保证上层对等体之间能相互通信,下层向上层提供的功能。(记住是单向的)
2.3 接口(服务访问点)
接口的概念:
- 接口是同一结点内相邻层之间交换信息的连接点。
接口的功能:
- 同一结点的相邻层之间存在着明确规定的接口,底层向高层通过接口提供服务;
- 只要接口条件不变,低层功能不变,低层功能的具体实现方法与技术的变化不会影响整个系统的工作。
服务访问点的概念:
- 同一系统相邻两层的实体进行交互的地方,称为服务访问点SAP。服务访问点SAP是一个抽象的概念,它实际上就是一个逻辑接口。
服务数据单元SDU的概念:
- 层与层之间交换的数据的单位。
协议数据单元PDU的概念:
- 对等层次之间传送的数据单位称为该层的协议数据单元PDU。
- SDU可以与PDU不一样,例如,可以是多个SDU合成一个PDU,也可以是一个SDU划分为几个PDU.
2.4 协议与服务的概念是不一样的
- 协议的实现保证了能够向上一层提供服务。
- 本层的服务用户只能看见服务而无法看见下面的协议。
- 协议是“水平的”,即协议是控制对等实体之间通信的规则。
- 服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。
- 上层使用服务原语获得下层所提供的服务。
服务原语是什么?
服务原语的概念:
- 上层使用下层所提供的服务时必须与下层交换一些命令,这些命令在OSI参考模型中称为服务原语。
OSI参考模型将原语划分为4类:
- 请求。由服务用户发往服务提供者,请求完成某项工作。
- 指示。由服务提供者发往服务用户,指示用户做某件事情。
- 响应。由服务用户发往服务提供者,作为对指示的响应。
- 证实。由服务提供者发往服务用户,作为对请求的证实。
可能上面的解释会有一些懵,下面我们来用图形解释一下:
三、ISO/OSI参考模型(七层)

OSI的体系结构定义了一个七层模型,用以进行进程之间的通信,并作为一个框架来协调各层标准的制定;OSI的服务定义描述了各层所提供的服务,以及层与层之间的抽象接口和交互用的服务原语。下面我们来认识一下各层之间的功能:
3.1 物理层的主要功能
- 利用传输介质为通信的网络结点之间建立、管理和释放物理连接;
- 实现比特流的透明传输,为数据链路层提供数据传输服务;
- 物理层的数据传输单元是比特。
3.2 数据链路层的主要功能
- 在物理层提供的服务基础上,数据链路层在通信的实体之间建立数据链路的连接;
- 传输以“帧”为单位的数据包;
- 采用差错控制与流量控制方法,使有差错的物理线路变成无差错的数据链路。
3.3 网络层的主要功能
- 通过路由选择算法(控制平面)为分组通过通信子网选择做适当的路径;
- 为数据在结点之间传输(转发,数据平面)创建逻辑链路;
- 实现拥塞控制、网络互连等功能。
3.4 传输层的主要功能
- 向用户提供可靠的端到端服务;
- 处理数据包错误、数据包次序,以及其他一些关键传输问题;
- 传输层向高层屏蔽了下层数据通信的细节,是计算机通信体系结构中关键的一层。
3.5 会话层的主要功能
- 负责两个结点之间的传输链接,以便确保点到点传输不中断;
- 管理数据交换。
3.6 表示层的主要功能
- 用于处理在两个通信系统中交换信息的表示方式;
- 数据格式交换;
- 数据加密与解密;
- 数据压缩与恢复。
3.7 应用层的主要功能
- 为应用程序提供了网络服务;
- 应用层需要识别并保证通信对方的可用性,使得协同工作的应用程序之间的同步;
- 建立传输错误纠正与保证数据完整性的控制机制。
四、TCP/IP参考模型(4层)

4.1 TCP/IP参考模型的发展
- 目前使用的版本4,它的网络层协议一般记为IPv4;
- 版本6的网络层IP协议一般记为IPv6(或IPng、IP next generation);
- IPv6被称为下一代的IP协议。
4.2 TCP/IP协议的特点
- 开放的协议标准;
- 独立于特定的计算机硬件与操作系统;
- 独立于特定的网络硬件,可以运行在局域网、广域网,更适用于互联网上;
- 统一的网络地址分配方案,使得整个TCP/IP设备在网上都具有唯一的地址;
- 标准化的高层协议,可以提供多种可靠的用户服务。
4.3 网络接口层
- 参考模型的最低层,负责通过网络发送和接收IP数据报;
- 允许主机连入网络时使用多种现成的与流行的协议;
- 充分体现出TCP/IP协议的兼容性与适应性,它也为TCP/IP的成功奠定了基础。
4.4 网际层
- 相当于OSI参考模型网络层无连接网络服务;
- 处理互联的路由选择、流控与拥塞问题;
- IP协议是无连接的、提供“尽力而为”服务的网络层协议。
4.5 传输层
- 在互联网中源主机与目的主机的对等实体间建立用于会话的端到端连接;
- 传输控制协议TCP是一种可靠的面向连接协议;
- 用户数据报协议UDP是一种不可靠的无连接协议。
4.6 应用层
应用层协议主要有:
- 文件传输协议 FTP
- 简单邮件传输协议 SMTP
- 域名系统 DNS
- 超文本传输协议 HTTP
- 地址动态获取协议 DHCP
五、五层结构

六、OSI参考模型与TCP/IP参考模型的比较
对OSI参考模型的评价:
- 层次数量与内容选择不是很好,会话层很少用到,表示层几乎是空的,数据链路层与网络层有很多的子层插入;
- 寻址、流控与差错控制在每一层里都重复出现,降低系统效率;
- 数据安全性、加密与网络管理在参考模型的设计初期被忽略了;
- 参考模型的设计更多是被通信的思想所支配,不适合与计算机与软件的工作方式;
- 严格按照层次模型编程的软件效率很低。
对TCP/IP参考模型评价:
- 在服务、接口与协议的区别上不很清楚,一个好的软件工程应该将功能与实现方法区分开,参考模型不适合与其他非TCP/IP协议族;
- TCP/IP参考模型的主机——网络层本身并不是实际的一层;
- 物理层与数据链路层的划分是必要和合理的,而TCP/IP参考模型没有做到这一点。
总结
这篇文章主要讲述了计算机网络的概述,认识了计算机网络的分层结构,计算机网络的协议、接口、服务的内容,以及两个重要模型:OSI/ISO模型和TCP/IP模型,感谢大佬们的点赞和关注,我会更加努力地简化我的笔记。
相关文章:
【基础计算机网络1】认识计算机网络体系结构,了解计算机网络的大致模型(下)
前言 在上一篇我们主要介绍了有关计算机网络概述的内容,下面这一篇我们将来介绍有关计算机网络体系结构与参考模型的内容。这一篇博客紧紧联系上一篇博客。 这一篇博客主要内容是:计算机网络体系结构与参考模型,主要是计算机网络分层结构、协…...
vscode 画流程图
文章目录 1、安装插件 draw2、新建文件3、开始画图4、另存为图片 vscode可以画流程图了,只需要安装插件就可以了。 1、安装插件 draw 2、新建文件 3、开始画图 4、另存为图片...
uniapp-一些实用的api接口
唤起导航 调用后可以跳转到地图页 uni.openLocation({latitude: res.data.data.latitude, //到达的纬度longitude: res.data.data.longitude, //到达的经度name: res.data.data.address, // 到达的名字scale: 12, // 缩放倍数success() { // 成功回调console.log(success) }…...
合宙Air724UG LuatOS-Air LVGL API控件-表格(Table)
表格(Table) 示例代码 --创建表格Table1 lvgl.table_create(lvgl.scr_act(),nil)--设置表格为4行5列lvgl.table_set_row_cnt(Table1,4)lvgl.table_set_col_cnt(Table1,5)--给每个单元格赋值lvgl.table_set_cell_value(Table1, 0, 0, "选手")l…...
前缀和思想
何为前缀和 有一个数组a, 为 ...... 前缀和 ...... 有两个问题: 1.如何求? 只需要从前往后遍历,令 就可以了,最开始是 ,定义 0 2. 有什么用? 能够快速地求出原数组中某一段的和,预处理的…...
Llama2-Chinese项目:1-项目介绍和模型推理
Atom-7B与Llama2间的关系:Atom-7B是基于Llama2进行中文预训练的开源大模型。为什么叫原子呢?因为原子生万物,Llama中文社区希望原子大模型未来可以成为构建AI世界的基础单位。目前社区发布了6个模型,如下所示: FlagAl…...
论文于祥读及复现——《VDO-SLAM: A Visual Dynamic Object-aware SLAM System》
论文详读之------《一个视觉动态对象感知SLAM系统》 0. 出发点(暨摘要)1.引言2. 相关工作2.1 探索针对动态环境的健壮SLAM2.2 分别执行SLAM和运动对象跟踪(MOT),作为传统SLAM的扩展,用于动态场景理解。2.3 对象SLAM(通…...
nuxt3项目使用pdfjs-dist预览pdf
使用的包的源代码是 pdfjs - npm 但是我们实际上项目中使用的是pdfjs打包后的dist文件,也就是pdfjs-dist - npm 所以我们需要使用这个命令 npm i pdfjs-dist 我们可以克隆pdfjs这个包来看源代码,里面有使用的例子,也可以根据源代码自己打…...
mybatis-generator-maven-plugin使用
前提说明 数据库:MYSQL57Mybatis : http://mybatis.org/generator/index.html 操作说明 引入插件 <plugins><!-- MyBatis 逆向工程 插件 --><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generat…...
基于SpringBoot开发的停车位管理系统(调用百度地图api)
文章目录 项目介绍主要功能截图:前台:后台部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot开发的停车位管…...
STC8单片机PWM定时器+EC11编码器实现计数
STC8单片机PWM定时器+EC11编码器实现计数 📌相关篇《STC单片机+EC11编码器实现调节PWM输出占空比》📍《stc单片机外部中断+EC11编码器实现计数功能》🔖STC8系列支持此功能的型号: ✨从上面的相关篇中有通过通用定时器加外部中断以及常规方法实现驱动EC11编码器的方法。本…...
MediaBox助力企业一站式获取音视频能力
以一只音视频百宝箱,应对「千行千面」。 洪炳峰、楚佩斯|作者 大家好,今天我分享的主题是MediaBox——行业音视频数字化再加速。 根据权威数据表明,65%的行业数字化信息来自视频,基于此,音视频技术对于行…...
仅做笔记用:Stable Diffusion 通过 ControlNet 扩展图片 / 扩图
发觉之前的 Outpainting 脚本效果仍旧不是很理想。这里又找了一下有没有效果更好的途径来扩图。于是就找到了通过 ControlNet 的方式来实现效果更好的扩图。这里临时记录一下在 Stable Diffusion 怎么使用 ControlNet 来扩展图片。 下载 control_v11p_sd15_inpaint_fp16.safet…...
代码随想录算法训练营19期第49天
121. 买卖股票的最佳时机 视频讲解:动态规划之 LeetCode:121.买卖股票的最佳时机1_哔哩哔哩_bilibili 代码随想录 初步思路:贪心。 总结: 分别考虑2种情况: 【1】dp[i][0] 表示第i天持有股票所得最多现金 【2】…...
用shell脚本实现一个对数组求和的函数,数组通过实参传递给函数,写一个函数,输出当前用户的uid和gid,并使用变量接收结果
目录 1.实现一个对数组求和的函数,数组通过实参传递给函数 结果为: 2.写一个函数,输出当前用户的uid和id,并使用变量接收结果 结果为: shell脚本指令前七个网页链接: 八、shell中的分支语句 【1】ife…...
运算符,switch
目录 算术运算符 逻辑运算符 强制类型转换 自增自减运算符 编辑 三目运算符 A?B:C 逗号表达式 switch 算术运算符 除法的运算结果和运算对象的数据类型有关,两个都是int商就是int,被除数或者除数只要有一个是浮点型数据,…...
运行java命令出现 Error: Invalid or corrupt jarfile XXX.jar
朋友 我当你一秒朋友 朋友 我当你一世朋友 奇怪 过去再不堪回首 怀缅 时时其实还有 运行java命令出现 Error: Invalid or corrupt jarfile XXX.jar 基本可以断定,是jar不完整导致的。不完整!!!记住关键字 检查1: …...
在找工作时的准备工作:结合现状,针对意向企业做好充分准备
在寻找工作时,充分准备是非常重要的。不仅要了解自己的现状和能力,还需要对意向企业进行深入了解,并提前准备好与该企业相关的技能和知识。尤其对于程序员来说,在面试IT技术岗位时,以下技巧可能会对你有所帮助…...
微服务·数据一致-事务与分布式事务
微服务数据一致-事务与分布式事务 概述 事务是计算机科学和数据库管理中的一个关键概念,用于确保数据的一致性和可靠想。事务管理是大多数应用程序和数据库系统中不可或缺的一部分。分布式事务扩展了事务的概念,用于多个分布式系统和服务的数据一致性管…...
GO语言篇之CGO
GO语言篇之CGO 文章目录 GO语言篇之CGO前言C代码嵌入GO代码C文件嵌入GO代码缺点 前言 Go语言可以通过内置的CGO调用C语言接口,从而实现C语言代码的交互,CGO提供了一种将Go代码嵌入到C代码中,或者从Go代码中调用C函数的方法 C代码嵌入GO代码…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
华为OD机试-最短木板长度-二分法(A卷,100分)
此题是一个最大化最小值的典型例题, 因为搜索范围是有界的,上界最大木板长度补充的全部木料长度,下界最小木板长度; 即left0,right10^6; 我们可以设置一个候选值x(mid),将木板的长度全部都补充到x,如果成功…...
AI语音助手的Python实现
引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...
数据结构:递归的种类(Types of Recursion)
目录 尾递归(Tail Recursion) 什么是 Loop(循环)? 复杂度分析 头递归(Head Recursion) 树形递归(Tree Recursion) 线性递归(Linear Recursion)…...
基于江科大stm32屏幕驱动,实现OLED多级菜单(动画效果),结构体链表实现(独创源码)
引言 在嵌入式系统中,用户界面的设计往往直接影响到用户体验。本文将以STM32微控制器和OLED显示屏为例,介绍如何实现一个多级菜单系统。该系统支持用户通过按键导航菜单,执行相应操作,并提供平滑的滚动动画效果。 本文设计了一个…...
车载诊断架构 --- ZEVonUDS(J1979-3)简介第一篇
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…...

