计算机网络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 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏&…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...

通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...

【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...

初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...