计算机网络常见疑问
tcpip模型没有数据链路层,那课本学的五层模型数据链路层的流量控制可靠传输是事实还是理论?
在计算机网络中,TCP/IP模型与OSI五层模型的分层差异确实容易引发疑问,尤其是关于数据链路层(五层模型)的功能是否实际存在。以下是详细分析:
1. 模型差异的本质
-
TCP/IP模型:
分为应用层、传输层、网络层、网络接口层(合并数据链路层和物理层)。
设计目标:简化分层,贴近实际协议(如以太网、IP、TCP等)。
网络接口层:实际包含数据链路层(MAC、LLC)和物理层的功能。 -
五层模型(教学模型):
分为应用层、传输层、网络层、数据链路层、物理层。
设计目标:教学清晰,明确区分逻辑功能,便于理解各层职责。
2. 数据链路层的功能是否“真实存在”?
(1) 流量控制
- 实际存在:
- 以太网:通过暂停帧(IEEE 802.3x)实现链路级流量控制。
- Wi-Fi:使用基于竞争的机制(如CSMA/CA)避免冲突,间接控制流量。
- 广域网协议(如HDLC、PPP):可能包含滑动窗口等流量控制机制。
- 与传输层流量控制的区别:
- 数据链路层:控制相邻节点间的帧传输速率(如交换机与主机之间)。
- 传输层(如TCP):控制端到端的数据传输速率(如发送方与接收方之间)。
(2) 可靠传输
- 部分存在:
- 特定协议:如HDLC(高级数据链路控制)支持帧确认和重传,提供链路级可靠性。
- 常见场景:广域网(如卫星链路、高误码率环境)可能依赖数据链路层的可靠传输。
- 普遍情况:
- 以太网、Wi-Fi:不提供可靠传输,依赖上层(如TCP)处理丢包和错误。
- 设计权衡:现代局域网追求低延迟和高吞吐量,可靠性交给上层协议更高效。
3. 课本中的描述:理论还是事实?
- 理论模型:五层模型明确划分数据链路层的流量控制与可靠传输功能,是教学上的理想化抽象,帮助理解网络分层逻辑。
- 实际实现:
- 流量控制:广泛存在于数据链路层(如以太网暂停帧),但具体机制因技术而异。
- 可靠传输:仅在特定协议(如HDLC)或场景中实现,并非普遍要求。
4. 关键对比:模型 vs 现实
| 功能 | 五层模型(理论) | 实际网络(实践) |
|---|---|---|
| 流量控制 | 数据链路层必选功能 | 存在但非强制(如以太网支持,Wi-Fi不明确) |
| 可靠传输 | 数据链路层可选功能 | 仅特定协议支持(如HDLC),多数依赖TCP |
| 错误检测 | 数据链路层必选(如CRC) | 普遍实现(所有链路层协议均包含CRC) |
5. 为什么会有这种差异?
- 性能与复杂度权衡:
- 数据链路层的可靠传输(如逐跳重传)会增加延迟,适合高误码率环境(如卫星通信)。
- 在可靠物理介质(如光纤)中,链路层无需重复TCP的端到端可靠性,避免冗余。
- 协议分层原则:
- 上层(传输层)的可靠性(如TCP)更灵活,适应异构网络环境。
- 下层(数据链路层)专注局部效率(如低延迟帧转发)。
6. 实际案例
- 以太网(IEEE 802.3):
- 流量控制:支持暂停帧(通知对端暂停发送)。
- 可靠传输:不提供帧重传,依赖上层检测错误(如TCP重传数据)。
- HDLC(广域网协议):
- 流量控制:使用滑动窗口机制。
- 可靠传输:通过帧序号、确认和超时重传保证可靠性。
结论
- 数据链路层的流量控制和可靠传输是事实,但实际实现因协议和场景而异。
- 课本的五层模型是理论框架,用于系统化知识,实际网络协议可能跨层或选择性实现这些功能。
- 核心原则:
- 数据链路层关注局部通信(相邻节点),传输层关注全局通信(端到端)。
- 功能是否在数据链路层实现,取决于具体技术需求和设计取舍。
理解这一点,可以避免混淆模型的理论抽象与实际协议的工程实现。
相关文章:
计算机网络常见疑问
tcpip模型没有数据链路层,那课本学的五层模型数据链路层的流量控制可靠传输是事实还是理论? 在计算机网络中,TCP/IP模型与OSI五层模型的分层差异确实容易引发疑问,尤其是关于数据链路层(五层模型)的功能是…...
C++07(继承)
文章目录 面向对象之继承继承相关概念派⽣类声明派⽣类的成员访问属性派⽣类的构造函数与析构函数 面向对象编程编程思想面向对象编程涉及到两个重要的概念类类型的定义**类中数据成员的定义**构建对象成员访问成员访问修饰符——限制成员的可见性构造函数析构函数静态成员共用…...
文件上传漏洞:upload-labs靶场1-10
目录 文件上传漏洞介绍 定义 产生原因 常见危害 漏洞利用方式 upload-labs详解 pass-01 pass-02 pass-03 pass-04 pass-05 pass-06 pass-07 pass-08 pass-09 pass-10 文件上传漏洞介绍 定义 文件上传漏洞是指网络应用程序在处理用户上传文件时,没有…...
【Python/Pytorch】-- 创建3090Ti显卡所需环境
文章目录 文章目录 01 服务器上,存在三个anaconda,如何选择合适的,创建python环境?02 conda、anaconda、cuda、cudnn区别03 用到一些指令04 如何指定cuda的版本?05 conda跟pip的区别?06 pycharm控制台07 服…...
自然语言转SQL之Vanna.ai:AI集成数据库
自然语言转SQL之Vanna.ai:AI集成数据库 一、Vanna.ai是什么二、落地步骤:实现三层需求2.1 官方示例看效果2.2 对接自己的数据库2.3 完全本地化之路 三、构建自己的产品3.1 提问转SQL3.2 执行SQL查询实例2 要实现的功能就是:用中文语言同数据库…...
【零基础到精通Java合集】第二十二集:CMS收集器详解(低延迟的里程碑)
课程标题:CMS收集器详解——低延迟垃圾回收的经典实现(15分钟) 目标:掌握CMS核心工作原理、适用场景与调优策略,理解其在高并发场景下的价值与局限性 0-1分钟:课程引入与CMS设计目标 以“高速公路不停车收费”类比CMS核心思想:在用户线程运行的同时并发回收垃圾,最大…...
2025-03-04 学习记录--C/C++-PTA 习题5-5 使用函数统计指定数字的个数
合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻 一、题目描述 ⭐️ 二、代码(C语言)⭐️ #include <stdio.h>int CountDigit( int number, int di…...
SP导入模型设置
法线贴图格式 Blender,Unity选择OpenGL UE,3DMax选择DirectX...
计算机网络——IP地址
一、IP地址是什么? 定义 IP地址是互联网协议(Internet Protocol)为每台联网设备分配的唯一标识符,由一串数字(IPv4)或字母与数字组合(IPv6)构成。 核心作用:定位设备位置…...
openharmony 软总线-设备发现流程
6.1 设备发现流程 6.1.1 Wi-Fi设备发现 6.1.1.1 Wi-Fi设备发现流程 Wi-Fi设备在出厂状态或者恢复出厂状态下,设备上电默认开启SoftAP模式,SoftAP的工作信道在1,6,11中随机选择,SoftAP的Beacon消息中携带的SSID eleme…...
零信任架构和传统网络安全模式的
零信任到底是一个什么类型的模型?什么类型的思想或思路,它是如何实现的,我们要做零信任,需要考虑哪些问题? 零信任最早是约翰金德瓦格提出的安全模型。早期这个模型也是因为在安全研究上考虑的一个新的信任式模型。他最…...
TCP/IP四层模型:从入门到精通
第一部分:基础概念 1.1 什么是TCP/IP? - TCP/IP 是互联网的基础通信协议簇,定义了数据如何在网络中传输和路由。 - 与OSI七层模型的对比:TCP/IP更简化,分为四层,注重实际应用。 1.2 四层模型结构 1. 应…...
二、QT和驱动模块实现智能家居-----问题汇总1
1、文件地址改变后必须在QT下更改地址 2、指定了QT内Kits下的Sysroot头文件地址,但是还是找不到头文件: 3、提示无法执行QT程序:先干掉之前的QT程序 ps //查看程序PIDkill -9 PID 4、无法执行QT程序 1)未设置环境变量 …...
10、HTTP/3有了解过吗?【中高频】
HTTP/2 虽然具有多个流并发传输的能力,但是传输层是 TCP 协议,依然存在缺陷: 队头阻塞,HTTP/2 是基于 TCP 协议来传输数据的,TCP 是字节流协议,TCP 层必须保证收到的字节数据是完整、连续的,当「…...
基于https虚拟主机配置
一、https介绍 http 明文,80/tcp https 密文,443/tcp 二、安全性保障 1、数据安全性 数据加密 2、数据完整性 3、验证身份的真实性、有效性 三、数据安全性 手段:加密 发送方加密数据,接收方解密数据 对称加密算法 加密、解密数据…...
小白入坑向:Java 全栈系统性学习推荐路线之一
文章目录 一、 引言1.1 学习路径:1.2 技术栈全景概述1.3 前沿技术与趋势预判 二、 前端篇2.1 基础知识2.2 进阶技术2.3 前端框架与工具 三、 后端篇3.1 Java 基础3.2 进阶与新特性 四、 企业级框架与开发工具4.1 构建与项目管理4.2 核心框架4.3 数据持久层4.4 微服务…...
云原生存储架构:构建数据永续的新一代存储基础设施
引言:重新定义数据基础设施边界 蚂蚁集团基于Ceph构建的全闪存存储集群达到EB级规模,单集群IOPS突破1亿,延迟稳定在200μs内。Snowflake的存储计算分离架构使其数据湖查询速度提升14倍,存储成本降低82%。Gartner预测到2025年70%企…...
QTableWidget之表格列的隐藏与显示(折叠)
今天晚上花点时间研究一下表格列的显隐问题(类似与excel的隐藏列功能),在网络上搜罗了一通资料,没现成的例子作为借鉴,只能自己研究编写了。现在将过程记录下来,以便日后翻阅。 首先声明:因为时…...
Leetcode3146. 两个字符串的排列差
题目描述: 给你两个字符串 s 和 t,每个字符串中的字符都不重复,且 t 是 s 的一个排列。 排列差 定义为 s 和 t 中每个字符在两个字符串中位置的绝对差值之和。 返回 s 和 t 之间的 排列差 。 代码思路: 建立字符位置映射&…...
二百八十五、华为云PostgreSQL——建分区表并设置主键
一、目的 在PostgreSQL里建表,设置主键,三个字段确认数据的唯一性。设置分区字段,按月分区 二、PostgreSQL版本 三、PostgreSQL 9.2.4 版本缺点 在 PostgreSQL 9.2.4 中,虽然你可以创建分区表,但需要注意的是&#…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...
前端调试HTTP状态码
1xx(信息类状态码) 这类状态码表示临时响应,需要客户端继续处理请求。 100 Continue 服务器已收到请求的初始部分,客户端应继续发送剩余部分。 2xx(成功类状态码) 表示请求已成功被服务器接收、理解并处…...
CppCon 2015 学习:REFLECTION TECHNIQUES IN C++
关于 Reflection(反射) 这个概念,总结一下: Reflection(反射)是什么? 反射是对类型的自我检查能力(Introspection) 可以查看类的成员变量、成员函数等信息。反射允许枚…...
21-Oracle 23 ai-Automatic SQL Plan Management(SPM)
小伙伴们,有没有迁移数据库完毕后或是突然某一天在同一个实例上同样的SQL, 性能不一样了、业务反馈卡顿、业务超时等各种匪夷所思的现状。 于是SPM定位开始,OCM考试中SPM必考。 其他的AWR、ASH、SQLHC、SQLT、SQL profile等换作下一个话题…...
前端打包工具简单介绍
前端打包工具简单介绍 一、Webpack 架构与插件机制 1. Webpack 架构核心组成 Entry(入口) 指定应用的起点文件,比如 src/index.js。 Module(模块) Webpack 把项目当作模块图,模块可以是 JS、CSS、图片等…...
Linux信号保存与处理机制详解
Linux信号的保存与处理涉及多个关键机制,以下是详细的总结: 1. 信号的保存 进程描述符(task_struct):每个进程的PCB中包含信号相关信息。 pending信号集:记录已到达但未处理的信号(未决信号&a…...
