34. UDP协议

lwIP中的snmp 一、概述 lwIP官网介绍snmp lwip-SNMP移植 LwIP的SNMP学习笔记 阅读详情

接下来准备简单探讨一下关于UDP套接字编程.


UDP头部

UDP是面向报文.

在这里插入图片描述
UDP的头部是固定8字节, 分别是 : 源端口, 目的端口, 长度, 检验和.

校验和是用来保证数据的安全.


UDP协议

UDP是一种无连接的传输层协议, 提供面向事务的简单不可靠信息传送服务, 适合于一次传输少量数据; 在网络环境较差的情况下, UDP协议数据包丢失会比较严重.

不可靠 :

  • 不提供报文到达确认
  • 数据排序
  • 流量控制
  • 拥塞控制

UDP的优势 :

  • 它不属于连接型协议, 因而具有资源消耗小, 处理速度快.

  • UDP 数据传输过程中延迟小、数据传输效率高传输效率很快. 当然可以在应用层对UDP实现可靠传输.

  • 吞吐量不受拥挤控制算法的调节

  • UDP使用尽最大努力交付.

既然UDP并不可靠, 那什么时候会用这种不可靠协议呢? UDP在DNS, TFTP, SNMP中都用到过.

前面在分析TCP缓冲区的时候也提到过. UDP没有发送缓冲区只有接收缓冲区, 如果对端的接收缓冲区满了则其他数据也将被直接丢弃.


TCP与UDP

UDP和TCP协议的主要区别是两者在如何实现信息的可靠传递方面不同.

TCP协议中包含了专门的传递保证机制, 当数据接收方收到发送方传来的信息时, 会自动向发送方发出确认消息; 发送方只有在接收到该确认消息之后才继续传送其它信息, 否则将一直等待直到收到确认信息为止.

UDP协议并不提供数据传送的保证机制. 如果在从发送方到接收方的传递过程中出现数据报的丢失, 协议本身并不能做出任何检测或提示.


同样TCP是字节流, 通信的发送端的写次数和接收端的读次数是没有次数之间的联系的; 而UDP是面向报文的, 通信的发送端的写次数和接收端的读次数是必须相同的, 如果数据没有读完也必须丢弃.


小结

简单的罗列了UDP协议的重要知识点, 接下来就要开始从编程的角度来验证和实现UDP通信了.

  • UDP不可靠, 无连接
  • 只有接收缓冲区
freertos 基于lwip实现的snmp协议 1、snmp 应用层网络管理协议 2、基于udp实现 3、 阅读详情

相关推荐

PTPv2.1 Sync报文深度解析:从以太网帧到时间戳的52字节逐位拆解

本文深入解析PTPv2.1 Sync报文的52字节结构,从以太网帧到时间戳逐位拆解,揭示其在金融交易、5G基站同步等场景中实现微秒级时间同步的精密机制。通过报文解析,详细阐述IPv4头部、UDP传输层及PTP特有字段的设计原理,并分享硬件时间戳加速等性能优化实践。

weixin_33423874的博客 319

Lwip之SNMP协议与实现

SNMP介绍及在Lwip中的实现

wwwyuewww的专栏 4760

34、IP 传输协议:UDP 与 TCP 详解

本文详细解析了IP传输层的两大核心协议UDP与TCP。UDP作为无连接、低开销的协议,适用于实时性要求高、可容忍丢包的场景,如视频流、NTP等;而TCP提供面向连接、可靠的数据传输,通过序列号、确认机制、流量控制和拥塞控制确保数据准确送达,适用于文件传输、网页浏览等对可靠性要求高的应用。文章深入探讨了UDP校验和、UDP Lite、TCP三次握手、数据分段、确认机制、Push标志、四次挥手、窗口控制及窗口缩放选项等关键技术,并通过流程图和示例展示了连接建立与数据传输过程,全面对比了两种协议的特性与适用场景。

time3的博客 34

lwip --snmp概念篇

文章目录1、基础1.1、管理和代理1.2、操作命令1.3、消息构成2、MIB(管理信息库)3、OID(对象标识符)4、SMI(管理信息结构)4.1、简单类型(simple)4.2、简单结构类型(simple-constructed)4.3、应用类型(application-wide) 1、基础 1.1、管理和代理 SNMP***管理***(manager, 主机)常被称作为网络管理系统(NMS) SNMP***代理***(agent, 要操作的机器) 1.2、操作命令 Get:管理站读取代理者处对象的

m0_60292931的博客 1410

34、网络通信协议:IP、TCP 与 UDP 详解

本文详细介绍了网络通信中的核心协议IP、TCP和UDP,包括IPv4和IPv6的工作原理及区别,TCP和UDP的可靠性机制及应用场景。文章还比较了不同协议的特点,分析了它们在网络分层架构中的位置和交互过程,并展望了协议的未来发展趋势,帮助读者更好地理解网络通信的基础和实际应用。

fanta的博客 70

34、深入理解传输层协议:从套接字到UDP通信

本文深入解析了传输层协议的基本概念,重点介绍了UDP协议的工作原理及其实现方式。内容涵盖套接字API的使用、内核中的套接字结构、UDP数据包的发送与接收流程,并通过代码示例和流程图详细展示了Linux内核中UDP通信的核心机制。适合对网络编程和内核开发感兴趣的读者学习参考。

omega的博客 91

Lwip的SNMP协议修改支持V2

(注:SNMP协议自行百度了解)

weixin_44498122的博客 1021

34、深入理解UDP与TCP协议:接收、发送及初始化机制解析

本文深入解析了UDP与TCP协议在数据包接收、发送及初始化等方面的工作原理与内核实现机制。详细介绍了UDP的无连接特性与高效传输,以及TCP的面向连接、可靠传输、头部结构、连接建立过程(三次握手)、数据接收流程和多种定时器机制。通过代码分析与流程图展示,帮助读者理解两种核心传输层协议的设计思想与应用场景,并提供了网络编程中的选型建议与未来协议发展趋势展望。

oauth7security的博客 47

python 全栈开发,Day34(基于UDP协议的socket)

python 全栈开发,Day34(基于UDP协议的socket) 昨日内容回顾 网络的基础概念arp协议 :通过ip地址找到mac地址五层模型 : 应用层 传输层 网络层 数据链路层 物理层tcp协议 : 可靠的 面向连接 全双工   三次握手   四次挥手udp协议 : 不可靠的 面向数据包的 高效的socket :   是...

shykevin的博客 149

WinTcpS7 V34网络通信库教程:TCP与UDP协议在C#和VB中的应用

西门子S7-1200/1500 PLC是自动化控制系统中的主力设备,以其高性能、高可靠性和易于编程的特点广受欢迎。本章节将概述S7-1200/1500 PLC的核心特性,为后续深入探讨其在现代工业自动化中的应用奠定基础。DOTNETFX4.0是.NET Framework的一个版本,由微软公司开发。它支持多种编程语言,并为开发者提供了丰富的库和API,以实现应用程序的开发。该框架主要由以下几个核心组件组成:公共语言运行时(CLR):负责程序的加载、编译、执行和资源管理。

weixin_35797963的博客 1205

Lwip之SNMP实现.pdf

Lwip之SNMP实现.pdf

Linux内核分析 - 网络[十二]:UDP模块 - 收发

内核版本:2.6.34 UDP报文接收        UDP报文的接收可以分为两个部分:协议栈收到udp报文,插入相应队列中;用户调用recvfrom()或recv()系统调用从队列中取出报文,这里的队列就是sk->sk_receive_queue,它是报文中转的纽带,两部分的联系如下图所示。 第一部分:协议栈如何收取udp报文的。       udp模块的注册在inet_init()

yoyo的专栏 1万+

Windows 11 IoT企业版LTSC 24H2/25H2中文版安装指南(含OEM激活教程)

本文详细介绍了Windows 11 IoT企业版LTSC 24H2/25H2中文版的安装与OEM激活全流程。从系统镜像准备、硬件兼容性检查到自动化安装配置,再到OEM激活方案(包括SLIC注入和数字许可证激活),为工业自动化、数字标牌等物联网设备提供稳定可靠的系统部署指南。

weixin_29198045的博客 8802

Linux内核分析 - 网络[十二]:UDP模块 - socket

内核版本:2.6.34 这部分内容在于说明socket创建后如何被内核协议栈访问到,只关注两个问题:sock何时插入内核表的,sock如何被内核访问的。对于核心的sock的插入、查找函数都给出了流程图。 sock如何插入内核表       socket创建后就可以用来与外部网络通信,用户可以通过文件描述符fd来找到要操作的socket,内核则通过查表来找到要操作的socket。这意味着soc

yoyo的专栏 1万+

【STM32-DSP库的使用】基于Keil5 + STM32CubeMX + CMSIS-DSP 手动添加、库添加方式

CMSIS-DSP库在工程中应用遇到的所有问题进行归纳终结

洋洋的博客 1万+

Synares病毒实战:如何手动清除C盘隐藏的Synaptics.exe(附资源修复脚本)

本文详细介绍了Synares感染型病毒的手动清除方法,该病毒伪装成Synaptics触摸板驱动,感染EXE和XLSX文件。文章提供了从病毒行为分析、母体清除到被感染文件修复的全流程指南,并附有实用的资源修复脚本和防御加固方案,帮助用户彻底清除这一顽固病毒。

lg888的博客 2330

计算机网络协议栈实战速记:从物理层到应用层的34个核心协议与功能

本文详细解析了计算机网络协议栈从物理层到应用层的34个核心协议与功能,特别针对保研、考研及企业技术面试中的高频考点进行深度剖析。通过分层解构和关联对比,帮助读者系统掌握协议栈体系,提升面试应答能力,涵盖物理层调制技术、数据链路层帧传输、网络层路由寻址等关键内容。

weixin_30617695的博客 433

深入解析Unity3D中PostLateUpdate突然占用大量时间的原因

在Unity3D的生命周期中,是一个在LateUpdate之后被调用的方法。它通常用于处理一些需要在所有更新(包括物理更新和动画更新)之后进行的逻辑。由于它在游戏循环的后期阶段被调用,因此它通常用于处理与渲染直接相关的任务,如相机调整、UI更新等。突然占用大量时间的问题可能由多种原因引起,包括复杂的逻辑处理、频繁的资源加载、不恰当的渲染优化、插件或第三方库的副作用以及内存泄漏或垃圾回收等。为了解决这个问题,开发者需要仔细审查和优化中的代码,同时利用Unity提供的工具来监控和分析游戏性能。

Yori_22的博客 979

从零开始:使用Wireshark构建汽车诊断DoIP协议分析环境

本文详细介绍了如何使用Wireshark构建汽车诊断DoIP协议分析环境,涵盖从基础设置到高级过滤技巧的全流程。通过ISO13400标准协议解析,帮助工程师高效分析UDS诊断服务,提升智能汽车诊断效率。特别适用于汽车电子开发与维修技术人员。

echo99的专栏 898

完整IC设计流程解析&Makefile学习

本文介绍了decorder38项目的文件结构、自动化综合流程和Makefile使用方法。项目包含RTL到GDSII全流程文件,重点关注syn目录中的综合脚本。通过make dc命令运行综合流程,生成网表、约束和时序文件。关键报告如qor.rpt、area.rpt和min_vio.rpt用于分析综合质量、面积和时序。Makefile部分解释了其基本语法、IC设计中的典型结构,包括目标定义、命令执行和特殊声明,强调了其在自动化构建和依赖管理中的重要性。

m0_63352623的博客 855

内存学习(3):DRAM的基础存储结构(存储层级、读写过程,刷新与暂存)

DRAM,全称为 Dynamic Random Access Memory ,中文名是“动态随机存取存储器”。所谓“动态”是和“静态”相对应的,芯片世界里还有一种 SRAM 静态随机存取存储器的存在。笼统地说,DRAM 的结构比 SRAM 更简单,面积占用更小,适合制作大容量的存储芯片;而 SRAM 结构复杂一些,一般使用六个晶体管,面积消耗大,但是读写速度快,而且因为 SRAM 只用到晶体管,所以在工艺上和逻辑芯片相兼容,我们可以在逻辑芯片上直接集成 SRAM。

呆呆象呆呆的博客 2万+
上一篇: 30.TCP协议之TCP缓冲区
下一篇: 35. UDP套接字之无连接通信
Function_18
博客等级 码龄10年 193粉丝 239原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值