计算机网络ISO七层网络模型及TCP
思维导图(通俗理解)
首先,先用最通俗的话来描述ISO七层模型,思维导图结构如下:

ISO七层网络模型概念
- 应用层(Application Layer):应用层是OSI模型的最高层,直接与用户交互。它提供网络服务的接口,使用户能够访问网络资源和应用程序。常见的协议有HTTP、FTP、SMTP等。应用层负责处理用户输入和网络服务之间的交互。
- 表示层(Presentation Layer):表示层负责数据的表示格式它将应用层数据转换成可以在网络上传输的格式,或者将接收到的数据转换成应用层可处理的格式。表示层处理数据的加密与解密、数据压缩、字符编码转换等。
- 会话层(Session Layer):会话层负责管理和控制应用程序之间的会话(Session),即建立、维护和终止会话。它确保两个应用之间的对话能被正确地建立和维护,即使在网络中断的情况下也能够恢复会话。会话层还负责同步会话数据的交换。
- 传输层(Transport Layer):传输层提供端到端的通信服务,确保数据在网络中可靠传输。它负责将数据分割成段(Segment),并在接收端进行重组。此外,传输层还提供流量控制、差错检测、数据恢复等功能,以保证数据的完整性和正确性。常见的协议有TCP(传输控制协议)和UDP(用户数据报协议),以及QUIC等。
- 网络层(Network Layer):网络层负责在不同网络之间传输数据包(Packet),并确定路径选择(路由)。它处理数据包的逻辑地址(如IP地址),确保数据能够通过多个网络从源设备传输到目标设备。路由器就是工作在这一层的设备。
- 数据链路层(Data Link Layer): 数据链路层负责在同一网络中的直接相连设备之间的可靠数据传输。它将物理层传输的比特流组织成帧(Frame),并进行差错检测与纠正。此外,数据链路层还管理网络访问权限,避免多个设备同时发送数据造成冲突。在局域网中,MAC地址(物理地址)就在这一层使用。
- 物理层(Physical Layer):物理层负责网络中数据的物理传输。它定义了网络设备之间的物理连接方式、传输介质(如铜线、光纤、无线电波)以及数据传输的方式(如电压、电流、信号调制等)。物理层确保比特流能够通过物理媒介从一个设备传送到另一个设备,透明传输@[TOC]。
专有名词扩展概念
- 封装成帧:封装成帧就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧,接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
- 透明传输:透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。
- 差错检测:收到正确的帧就要向发送端发送确认,发送端在一定的期限内若没有收到对方的确认,就认为出现了差错,因而就进行重传,直到收到对方的确认为止。
- IP地址:IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。由一个IP地址由4个字节,32位组成,一般用点分十进制的方式表现。
- IPv6:因为IPv4地址满足不了需求,出现匮乏的情况,所以诞生了IPv6地址继续使用。v6地址由128位,16个字节组成,一般表现形式为十六进制。
- 静态路由:由管理员手工配置、配置方便,对系统要求低,适用于拓扑结构简单稳定的小型网络。
- 缺省路由:是一种特殊的路由,当报文没有在路由表中找到匹配的具体表项时才能使用的路由。
- 动态路由:通过动态路由协议来实现不同网段的路由互通,动态路由协议由自己的路由算法,能够自动适应网络拓扑的变化,适用于具有一定数量的三层设备的网络。
- MAC地址:是网络设备的唯一标识符,通常由48位二进制数表示,如00:1A:2B:3C:4D:5E。它用于数据链路层标识设备,确保在局域网中数据包的正确发送。MAC地址的前24位标识制造商,后24位标识设备。
TCP和UDP
TCP三次握手:
第一次客户端发送SYN:客户端发送SYN包请求连接,并包含初始序列号。
第二次服务器回应SYN-ACK:服务器回复SYN-ACK包确认请求,并发送自己的SYN请求和序列号。
第三次客户端发送ACK:客户端发送ACK包确认服务器的SYN请求,连接建立完成。

TCP四次挥手
第一次客户端发送FIN:客户端发送FIN包请求断开连接。
第二次服务器回应ACK:服务器确认FIN包,准备关闭连接,但可能继续发送数据。
第三次服务器发送FIN:服务器处理完数据后,发送FIN包请求断开连接。
第四次客户端回应ACK:客户端确认服务器的FIN包,连接完全断开。

UDP:直接发送数据包,无状态
TCP和UDP区别:
连接方式:TCP需要进行三次握手,而UDP则不需要建立连接,直接发送数据包。
可靠性:TCP提供可靠的数据传输机制,能够保证数据的完整性和顺序性;而UDP不提供可靠性保证,数据传输可能出现丢包或乱序的情况。
数据量:TCP对数据量的限制较小(最大传输单元为64KB),而UDP对数据量的限制较大(最大传输单元为65535字节)。
速度:UDP传输效率较高,因为它没有TCP那样复杂的握手、确认等过程。
流量控制:TCP有流量控制机制,可以根据网络情况调整传输速度,避免网络拥塞;而UDP没有流量控制机制,可能会导致网络拥塞。
头部开销:tcp头部开销较大,通常为20字节,因为需要携带各种控制信息(如序列号、确认号等)。udp头部开销较小,仅8字节,因为只包含了最基本的传输信息(如源端口、目的端口等)。
相关文章:
计算机网络ISO七层网络模型及TCP
思维导图(通俗理解) 首先,先用最通俗的话来描述ISO七层模型,思维导图结构如下: ISO七层网络模型概念 应用层(Application Layer):应用层是OSI模型的最高层,直接与用户交…...
机器学习知识点全面总结
一、机器学习基础概念 1、什么是机器学习 机器学习是一种人工智能技术,通过对数据的学习和分析,让计算机系统自动提高其性能。简而言之,机器学习是一种从数据中学习规律和模式的方法,通过数据来预测、分类或者决策。 机器学习的本…...
【研发日记】嵌入式处理器技能解锁(三)——TI C2000 DSP的C28x内核
文章目录 前言 背景介绍 C28x内核 浮点单元(FPU) 快速整数除法单元(FINTDIV) 三角数学单元(TMU) VCRC单元 CPU总线 指令流水线 总结 参考资料 前言 见《【研发日记】嵌入式处理器技能解锁(一)——多任务异步执行调度的三种方法》 见《【研发日记】嵌入式处理器技能解…...
LeetCode.27.移除元素
题目描述: 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。 假设 nums 中不等于 val 的元素数量为 k,要通过此题,您需要执行以…...
redis面试(十二)可重入锁总结
可重入锁总结 从实现原理以及源码的层面,真正剖析和了解到了redis分布式锁的企业级的实现,这个分布式锁实现的还是非常漂亮的,麻雀虽小,五脏俱全,分布式的可重入锁,总结一下流程 (1࿰…...
软件测试知识点3
063、一份测试计划应该包括哪些内容? 背景、项目简介、目的、测试范围、测试策略、人员分工、资源要求、进度计划、参考文档、常用术语、提交文档、风险分析。 065、如何定位测试用例的作用? 组织性:编写、组织性、功能覆盖、重复性、跟踪、测试确认 066、什么…...
WPF Treeview开启虚拟化后如何找到TreeViewItem
用VirtualizingStackPanel的BringIndexIntoViewPublic方法就好,没必要像微软给的例子那样还要继承一个VirtualizingStackPanel /// <summary> /// Recursively search for an item in this subtree. /// </summary> /// <param name"container…...
给python初学者的一些建议
写在开篇 关于Python,可以这么说,这几年借着数据科学、机器学习与人工智能的东风,Python 老树开新花,在风口浪尖上居高不下。 Python 之所以这么受大家的青睐,是因为它语言简洁,上手容易,让非…...
【Python学习手册(第四版)】学习笔记17-作用域
个人总结难免疏漏,请多包涵。更多内容请查看原文。本文以及学习笔记系列仅用于个人学习、研究交流。 本文介绍Python作用域,介绍了变量名解析的LEGB原则,以及内置作用域,全局作用域global语句,嵌套作用域及nonlocal语…...
大语言模型(LLM)文本预处理实战
大语言模型(LLM)文本预处理实战 文章目录 大语言模型(LLM)文本预处理实战2.1 理解词嵌入2.2 文本分词2.3 将 token 转换为 token ID2.4 添加特殊上下文 token2.5 字节对编码 (BytePair Encoding, BPE)2.6 使用滑动窗口进行数据采样…...
宠物健康新守护:智能听诊器的家庭应用
宠物已成为我们情感的寄托和生活的一部分,为宠物的健康守护带来了科技的温度。 科技与关怀结合 这款智能听诊器,以其科技感和关怀精神,为宠物的健康监测提供了全新的视角。 家庭友好设计:考虑到家庭使用环境,智能听…...
六、go函数
函数在任何语言中并不难理解,但是不论是有几年开发经验的人,真正想要写好一个函数并不是那么容易的 1、go语言中函数结构 func main() {fmt.Println(isEven(2)) } func isEven(x int) bool {return x%2 0 }(这里我写了一个简单的判断是否是…...
高原型垂直起降高速无人机技术详解
1. 技术概述 高原型垂直起降高速无人机(High-Altitude Vertical Take-off and Landing High-Speed Unmanned Aerial Vehicle, HAVTHS UAV)是针对高原复杂环境设计的一种先进无人机系统。它结合了垂直起降的灵活性与高速飞行的能力,能够克服高…...
Selenium + Python 自动化测试10(unittest概念)
我们的目标是:按照这一套资料学习下来,大家可以独立完成自动化测试的任务。 上几篇我们讨论了元素的定位方法、操作方法以及一些特殊元素的操作。 在实际的测试项目组中每个模块会写多条案例,如第一条用例那里我们的登录。登录的话就可以有多…...
大数据-67 Kafka 高级特性 分区 分配策略 Ranger、RoundRobin、Sticky、自定义分区器
点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…...
深度学习与图像修复:ADetailer插件在Stable Diffusion中的应用
文章目录 引言ADetailer插件介绍插件安装常用模型控制提示词参数配置参数详解 实践建议 示例插件的对比:1. ADetailer插件2. Photoshop插件(如Nik Collection)3. GIMP插件(如GMIC)4. Affinity Photo插件 结语 引言 无…...
【Pytorch】topk函数
topk 是 PyTorch 中的一个函数,用于从张量中选取最大(或最小)的 k 个元素及其对应的索引。其定义如下: values, indices torch.topk(input, k, dimNone, largestTrue, sortedTrue, *, outNone)参数说明 input (Tensor): 输入张…...
使用mybatis注解和xml映射执行javaWeb中增删改查等操作
Mapper接口 使用注解执行SQL语句操作和相应的Java抽象类(对于简单的增删改查使用注解) Mapper public interface EmpMapper {// 根据id删除员工信息Delete("delete from mybatis.emp where id#{id}")public int EmpDelete(Integer id);// 查…...
SpringBoot3 响应式编程
Spring Boot 3 中的响应式编程是一个重要的特性,它允许开发者构建非阻塞、异步和基于事件的应用程序,这对于处理高并发和实时数据流的应用场景尤为重要。以下是对Spring Boot 3响应式编程的详细解析: 一、响应式编程概述 响应式编程是一种编…...
【C++ 面试 - 基础题】每日 3 题(二)
✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/fYaBd 📚专栏简介:在这个专栏中,我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏&…...
JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...
用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章
用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章 摘要: 操作系统内核的安全性、稳定性至关重要。传统 Linux 内核模块开发长期依赖于 C 语言,受限于 C 语言本身的内存安全和并发安全问题,开发复杂模块极易引入难以…...
6.9本日总结
一、英语 复习默写list11list18,订正07年第3篇阅读 二、数学 学习线代第一讲,写15讲课后题 三、408 学习计组第二章,写计组习题 四、总结 明天结束线代第一章和计组第二章 五、明日计划 英语:复习l默写sit12list17&#…...
VUE3 ref 和 useTemplateRef
使用ref来绑定和获取 页面 <headerNav ref"headerNavRef"></headerNav><div click"showRef" ref"buttonRef">refbutton</div>使用ref方法const后面的命名需要跟页面的ref值一样 const buttonRef ref(buttonRef) cons…...
