以太网通信之UDP

免责声明:

本文所提供的信息和内容仅供参考。作者对本文内容的准确性、完整性、及时性或适用性不作任何明示或暗示的保证。在任何情况下,作者不对因使用本文内容而导致的任何直接或间接损失承担责任,包括但不限于数据丢失、业务中断或其他经济损失。

读者在使用本文信息时,应自行验证其准确性和适用性,并对其使用结果负责。本文内容不构成专业技术咨询或建议,具体的技术实现和应用应根据实际情况和需要进行详细分析和验证。

本文所涉及的任何商标、版权或其他知识产权均属于其各自的所有者。若本文中引用了第三方的资料或信息,引用仅为学术交流目的,不构成对第三方内容的认可或保证。

若有任何疑问或需进一步信息,请联系本文作者或相关专业人士。

目录

前言

一、OSI

二、IP协议

IPv4 协议结构

IPv6 协议结构

三、UDP协议

UDP 数据报结构

UDP 数据部分

特点

四、理解UDP和ARP的关系及其在网络通信中的作用

1. 协议层次

2. 数据流动过程

五、参考的原文


前言

在本章中,我们将继续深入阅读正点原子的《达芬奇 Pro FPGA 开发指南》,探讨以太网通信的相关知识。这将为我后续讲解基于ZYNQ-UltraScale+的UDP使用奠定坚实的基础。


一、OSI

OSI(开放系统互联模型,Open Systems Interconnection Model)是一个网络通信模型,由国际标准化组织(ISO)于1984年提出。该模型用于促进不同计算机系统之间的通信,定义了网络通信的各个层次和标准。OSI模型分为七个层次,每个层次都有特定的功能和任务:

  1. 物理层(Physical Layer):负责传输原始比特流,包括电气、机械、光学和功能规范。它定义了硬件设备的电气特性和信号传输方式。

  2. 数据链路层(Data Link Layer):确保数据的可靠传输,处理错误检测和纠正,定义数据帧的格式,并控制流量。常见协议包括以太网和PPP(点对点协议)。

  3. 网络层(Network Layer):负责数据包的传输和路由选择,确保数据在不同网络之间有效传送。主要协议有IP(互联网协议)。

  4. 传输层(Transport Layer):提供端到端的通信服务,负责数据的分段、重组和流量控制,确保数据完整性和可靠性。常见协议包括TCP(传输控制协议)和UDP(用户数据报协议)。

  5. 会话层(Session Layer):管理用户会话和连接,提供建立、管理和终止会话的机制,确保在两个应用程序之间进行有效的通信。

  6. 表示层(Presentation Layer):处理数据格式的转换和加密解密,确保不同系统之间的数据能被理解。它负责数据的表示和语法。

  7. 应用层(Application Layer):为用户提供网络服务,直接与用户的应用程序交互。常见的协议包括HTTP、FTP、SMTP等。

OSI模型通过将网络通信划分为七个层次,使得网络协议的开发和实施更加系统化和模块化,有助于不同厂商的设备和系统之间的互操作性。虽然在实际应用中,许多协议并没有严格遵循OSI模型,但它仍然是网络通信的一个重要理论框架。

二、IP协议

IP协议有两个主要版本:IPv4 和 IPv6。以下是它们的结构概述。

IPv4 协议结构

IPv4 数据包的结构由一个头部和一个数据部分组成。头部的长度通常为20字节(不包括选项),最大可达60字节。其基本结构如下:

IPv6 协议结构

IPv6 是为了克服 IPv4 的限制而设计的,具有更大的地址空间和一些新的特性。IPv6 数据包的结构如下:

三、UDP协议

UDP(用户数据报协议,User Datagram Protocol)是一个无连接的传输层协议,提供简单的、面向数据报的服务。UDP适用于需要快速传输和较少开销的应用,比如视频流、游戏和语音通信。以下是UDP协议的结构:

UDP 数据报结构

UDP数据报由一个头部和数据部分组成。UDP头部的固定长度为8字节。其结构如下:

UDP 数据部分

UDP数据部分可以是可变长度的,包含了应用层要传输的实际数据。UDP并不对数据进行分段,因此如果数据超过了最大传输单元(MTU),需要在应用层进行处理。

特点

  • 无连接:UDP不建立连接,因此开销较小,适合快速传输。
  • 面向数据报:每个UDP数据报是独立的,不保证顺序、完整性和可靠性。
  • 简单性:UDP的头部非常简单,只有8个字节的固定长度,这使得UDP的处理速度非常快。

UDP的设计理念是以速度和效率为优先,适合对延迟敏感的应用。虽然UDP没有TCP提供的可靠性机制,但在某些场景中,其快速传输特性更为重要。

四、理解UDP和ARP的关系及其在网络通信中的作用

UDP并不封装在ARP中,ARP和UDP是两个不同层次的协议,分别位于网络协议栈的不同层。以下是对它们之间关系的详细解释:

1. 协议层次

  • ARP(地址解析协议)

    • 位于链路层(数据链路层),用于将IP地址转换为MAC地址。ARP负责在同一局域网内找到设备的物理地址(MAC地址),以便数据包能够正确发送到目标设备。
  • UDP(用户数据报协议)

    • 位于传输层,主要负责在网络上进行数据传输。UDP将应用层的数据封装为数据报,并通过网络进行发送。

2. 数据流动过程

UDP数据的发送

当应用层需要发送数据时,它将数据传递给UDP,UDP封装数据为UDP数据报。

构建IP包

UDP数据报随后被封装在IP包中,IP包包含了源和目标的IP地址。

链路层的处理

在链路层,IP包需要通过ARP找到目标设备的MAC地址。此时,源设备会检查其ARP缓存,如果没有找到目标MAC地址,则会发送ARP请求。

ARP的作用

ARP请求是以广播的形式发送,网络中的所有设备都会接收到该请求。拥有该IP地址的设备会发送ARP应答,提供其MAC地址。

发送以太网帧

一旦源设备获得了目标设备的MAC地址,它就可以将IP包(包含UDP数据报)封装在以太网帧中并发送出去。

五、参考的原文


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1524166.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

毒枸杞事件启示录:EasyCVR视频AI智能监管方案如何重塑食品卫生安全防线

一、方案背景 近年来,食品安全问题频发,引发了社会各界的广泛关注。其中,毒枸杞事件尤为引人关注。新闻报道,在青海格尔木、甘肃靖远等地,部分商户为了提升枸杞的品相,违规使用焦亚硫酸钠和工业硫磺进行“…

CentOS7单机环境安装k8s集群

目录 1、环境准备 2、安装依赖工具 3、配置 Kubernetes 的国内 Yum 源 4. 安装 Kubernetes 组件 5、初始化 Kubernetes 集群 1. 容器运行时没有正常运行 1.1. 可能的原因 1.2. 解决办法 2. 初始化拉取镜像卡住 2.1. 使用国内的镜像源(无法解决问题&#x…

JVM下篇:性能监控与调优篇-补充:浅堆深堆与内存泄露

文章目录 补充:浅堆深堆与内存泄露1. 浅堆(Shallow Heap)2. 保留集(Retained Set)3. 深堆(Retained Heap)4. 对象的实际大小5. 支配树(Dominator Tree)6. 内存泄漏&#…

Windows 11的新游戏手柄键盘现在可让玩家使用Xbox手柄打字

微软已开始测试 Windows 11 中专为 Xbox 控制器设计的全新游戏手柄键盘布局。游戏手柄键盘布局改进了 Windows 11 中的屏幕键盘,因此玩家可以使用 Xbox 控制器在操作系统中打字或导航。 作为 Windows 11 测试版的一部分,游戏手柄键盘目前正在测试中&…

Redis缓存预热方案详解:提升应用性能与用户体验

文章目录 引言1. 为什么需要缓存预热?2. 缓存预热的基本原理2.1 数据选择2.2 加载策略 3. Redis缓存预热方案设计3.1 方案概述3.2 数据选择3.3 加载策略3.4 实现方式 4. 测试与监控4.1 单元测试4.2 监控 5. 总结 引言 在现代Web应用中,缓存技术已经成为…

基因组学中的深度学习

----/ START /---- 基因组学其实是一门将数据驱动作为主要研究手段的学科,机器学习方法和统计学方法在基因组学中的应用一直都比较广泛。 不过现在多组学数据进一步激增——这个从目前逐渐增多的各类大规模人群基因组项目上可以看出来,这其实带来了新的挑…

JAVA基础:JVM中方法的执行过程和方法的重载,递归,可变参数的含义

1 JVM中方法的执行过程 1.1 JVM内存模型 jvm内存,存储java程序执行过程中产生的一些数据。 JVM将内存分成了不同的逻辑区域,存储不同含义(类别)的数据 JVM内存模型有5种 方法区 : 存储类信息 堆区 : 存…

flux 文生图大模型 自有数据集 lora微调训练案例

参考: https://github.com/ostris/ai-toolkit 目前 Flux 出现了 3 个训练工具 SimpleTuner https://github.com/bghira/SimpleTuner X-LABS 的https://github.com/XLabs-AI/x-flux ai-toolkit https://github.com/ostris/ai-toolkit 待支持:https://github.com/kohya-ss/sd-s…

k8s调度、污点、容忍、不可调度、排水、数据卷挂载

一、Kubernetes的list-watch机制 1、List-watch K8S集群中,通过List-watch机制进行每个组件的协作,保持数据同步。这种设计可以实现每个组件之间的解耦 kubectl配置文件,统一向集群内部apiserver发送命令——通过apiserver把命令发送到各个…

如何构建可靠云服务:亚马逊云科技的云端韧性之道

“控制面和数据面的隔离,类似于叫车软件和打车,两者其实是相对独立的。当你坐上车以后,如果一段时间叫车软件没有信号无法响应了,也不影响司机将你送到预定的目的地。很多故障失效的情况,关键在于没有把数据面和控制面…

JAVA毕业设计167—基于Java+Springboot+vue3+小程序的物业管理系统小程序(源代码+数据库+万字论文+文献综述)

毕设所有选题: https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootvue3小程序的物业管理系统小程序(源代码数据库万字论文文献综述)167 一、系统介绍 本项目前后端分离带小程序(可以改为ssm版本),分为用户、管理员两…

linux环境下升级nodejs版本

文章目录 简介清除缓存信息确保已安装Node.js和npm安装n模块使用n来升级Node.js查看可用的Node.js版本升级Node.js到最新版本注意事项版本兼容性考虑 简介 在Linux环境下,使用npm的n模块来升级Node.js版本是一种非常流行且便捷的方法。n是一个Node.js版本管理工具&…

如何选择SSD

如何选择SSD 如何选择SSDSSD外形规格2.5”M.2mSATAU.2 接口:SATA 与 NVMeSATANVMe在光纤介质上实现NVMe在互联网上实现NVMe 如何选择SSD 系统中存储连接的类型及其外形因素(SSD 的形状和大小)会影响您的决策。SSD具有 SATA 或 NVMe&#xff…

[UVM]4.phase机制 run_phase 12支phase UVM编译仿真顺序 raise_objection

1.phase机制 (1)SV中new()无法解决例化的先后关系以及例化后的连接,同时SV也无法再例化前对底层进行配置逻辑。这就引入了phase。 (2)执行机制 9个主要的phase机制,其中只有一个是…

影石相机tf内存卡数据格式化后恢复方法

在数字化时代,‌相机成为了我们记录生活、‌捕捉瞬间的重要设备。‌影石相机,‌以其出色的性能和便捷的操作,‌赢得了众多摄影爱好者的青睐。‌然而,‌在使用过程中,‌我们可能会遇到一些意外情况,‌如不小…

打包部署之---》Xshell使用不了如何部署

前端打包发布有很多种,常用 xshell 连接服务器打包发布,但是小编发现最近小编电脑上的Xshell7出现了一个问题,一直报50003错误,说是不是最新版本;让你升级 可是点击确定以后确提示小编已经是最新版本; 这个时候小编选择…

JVM方法区

JVM方法区 《Java虚拟机规范》中明确说明:“尽管所有的方法区在逻辑上是属于堆的一部分,但一些简单的实现可能不会选择去进行垃圾收集或者进行压缩。“但对于HotSpotJVM而言,方法区还有一个别名叫做Non-Heap(非堆),目的就是要和堆分开。方法区…

kali——wpscan的使用

目录 前言 查看帮助(-h) ​编辑 常规扫描(--url) 破解用户名和密码 插件枚举 扫描插件漏洞 扫描主题漏洞 前言 wpscan 是 Kali Linux 自带工具,主要用于扫描WordPress网站的各种安全漏洞,包括Word…

第一个golang项目

第一个golang项目 开发环境安装golangVisual Studio Code安装golang语言插件初始化项目创建目录初始化golang配置 开始开发安装所需依赖创建main.go创建配置文件创建命令版本命令查看指定目录指定后缀文件并将指定内容替换为新内容 打包并运行 前因后果:因为工作需要…

Sui Hacker House曼谷站报名开启:在Devcon 2024期间探索Sui区块链创新

Sui 曼谷 Hacker House 报名开启 Sui Bangkok Hacker House 将在曼谷于 2024 年 11 月 4 日至 17 日举办。诚邀开发者深入学习 Move 语言,在 Sui 网络上构建 MVP ,在充满活力的曼谷中度过难忘的两周。 诚挚地邀请开发者加入为期两周的 Sui Bangkok Hacker House。 你将与其他…