UDP报文格式详解

✏️✏️✏️各位看官好,今天给大家分享的是 传输层的另外一个重点协议——UDP。

清风的CSDN博客 

🛩️🛩️🛩️希望我的文章能对你有所帮助,有不足的地方还请各位看官多多指教,大家一起学习交流!

✈️✈️✈️动动你们发财的小手,点点关注点点赞!在此谢过啦!哈哈哈!😛😛😛

目录

一、UDP 协议段格式 

二、UDP 的特点 

2.1 无连接

2.2 不可靠

2.3 面向数据报 

 2.4 缓冲区

2.5 全双工

2.6 大小受限

三、 TCP 和 UDP 对比


 

一、UDP 协议段格式 

  • 16位UDP长度,表示整个数据报(UDP首部+UDP数据)的最大长度
  • 如果校验和出错,就会直接丢弃

UDP 协议的校验和,是使用了一种简单粗暴的 CRC 算法,把 UDP 数据报中的每个字节都依次进行累加,把累加结果放到两个字节的变量中,传输数据的时候会把原始数据和校验和一起传输。

  • 数据相同→校验和相同
  • 校验和不同→数据不同
  • 校验和相同,数据不一定相同。 

二、UDP 的特点 

UDP 传输的过程类似于寄信。

2.1 无连接

知道对端的 IP 和端口号就直接进行传输,不需要建立连接。

2.2 不可靠

没有任何安全机制,发送端发送数据报以后,如果因为网络故障该段无法发到对方, UDP 协议层也不会给应用层返回任何错误信息。

2.3 面向数据报 

应用层交给 UDP 多长的报文, UDP 原样发送,既不会拆分,也不会合并。
如果发送端一次发送100个字节,那么接收端也必须一次接收100个字节,而不能循环接收10次,每次接收10个字节。

 2.4 缓冲区

UDP 只有接收缓冲区,没有发送缓冲区:
  • UDP没有真正意义上的 发送缓冲区。发送的数据会直接交给内核,由内核将数据传给网络层协议进行后续的传输动作。
  • UDP具有接收缓冲区,但是这个接收缓冲区不能保证收到的UDP报的顺序和发送UDP报的顺序一致,如果缓冲区满了,再到达的UDP数据就会被丢弃。

2.5 全双工

UDPsocket既能读,也能写,这个概念叫做 全双工。(Socket套接字,是由系统提供用于网络通信的技术,是基于TCP/IP协议的网络通信的基本操作单元。基于Socket套接字的网络程序开发就是网络编程)。

2.6 大小受限

UDP 协议首部中有一个 16 位的最大长度。也就是说一个 UDP 能传输的数据最大长度是 64K (包含 UDP 首部)。

三、 TCP 和 UDP 对比

TCP 是可靠连接,那么是不是 TCP 一定就优于 UDP 呢? TCP UDP 之间的优点和缺点,不能简
单,绝对的进行比较
  • TCP用于可靠传输的情况,应用于文件传输,重要状态更新等场景。
  • UDP用于对高速传输和实时性要求较高的通信领域,例如,早期的QQ,视频传输等。另外UDP可以用于广播。

🌈🌈🌈好啦,今天的分享就到这里!

🌈🌈🌈希望各位看官读完文章后,能够有所提升!

🎉🎉🎉创作不易,还希望各位大佬支持一下!

✈️✈️✈️点赞,你的认可是我创作的动力!

⭐⭐⭐收藏,你的青睐是我努力的方向!

✏️✏️✏️评论:你的意见是我进步的财富!

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网页设计的灵感从哪来?试试这15个灵感网站

设计灵感网站是许多设计师必备的工具,因为它们提供了一个创造性的源泉,可以帮助设计师找到灵感和灵感,从而开发出惊人的设计。 推荐15个设计灵感网站,涵盖了平面设计、网页设计、UI设计等不同领域的设计。 即时设计资源广场 即…

私域爆款案例拆解-元气森林

一、背景调研 二、引流策略 三、私域运营策略

代码随想录27期|Python|Day9|字符串总结|双指针总结|KMP初探(28. 实现 strStr()、 459.重复的子字符串)

字符串总结 字符串类类型的题目,往往想法比较简单,但是实现起来并不容易,复杂的字符串题目非常考验对代码的掌控能力。 双指针法是字符串处理的常客。 题目类型的总结可以看代码随想录(很全面) 字符串题目总结&…

【lesson11】数据类型之string类型

文章目录 数据类型分类string类型set类型测试 enum类型测试 string类型的内容查找找所有女生(enum中)找爱好有游泳的人(set中)找到爱好中有足球和篮球的人 数据类型分类 string类型 set类型 说明: set:集…

排序算法:【插入排序】

一、插入排序:时间复杂度、原地排序 原理:可以想象成打扑克牌时候,发到手里的牌,我们一张一张拿起来插到手里牌的适当位置。 将待排序列表的第一个元素看作是一个有序序列(或叫有序区),然后从第…

ESP8266模块(CH340)零基础实战

USB数据线连接ESP8266模块到电脑 先按住FLASH键,再按一下RST键,然后松开 此时电脑可识别出CH340 COM接口 CH340芯片厂商网址: wch.cn 传输比特率9600 win11自带驱动 下载Arduino IDE

数据科学实践:探索数据驱动的决策

写在前面 你是否曾经困扰于如何从海量的数据中提取有价值的信息?你是否想过如何利用数据来指导你的决策,让你的决策更加科学和精确?如果你有这样的困扰和疑问,那么你来对了地方。这篇文章将引导你走进数据科学的世界,探索数据驱动的决策。 1.数据科学的基本原则 在我们…

现货黄金会面临哪些风险?

进行现货黄金投资,我们除了要了解怎么找到交易机会以外,也要知道我们交易会面临哪些风险,了解风险就是做到知己知彼,了解风险才能控制风险。控制住风险,才能为我们稳定盈利打好基础,那么下面我们就来看看在…

力扣108. 将有序数组转换为二叉搜索树(三种思路)

给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 > 示例 1: 输入:nums [-10,-3,0,5…

如何在Linux本地部署openGauss开源数据管理系统并结合内网穿透公网访问

文章目录 前言1. Linux 安装 openGauss2. Linux 安装cpolar3. 创建openGauss主节点端口号公网地址4. 远程连接openGauss5. 固定连接TCP公网地址6. 固定地址连接测试 前言 openGauss是一款开源关系型数据库管理系统,采用木兰宽松许可证v2发行。openGauss内核深度融合…

AI:94-基于深度学习的微小目标检测与定位

🚀 本文选自专栏:人工智能领域200例教程专栏 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的核心代码,详细讲解供大家学习,希望可以帮到大家。欢迎订阅支持,正在不断更新…

decomposition-based multi-objective algorithm4SPDPTW

关键词 文章概述 研究背景 多目标选择性接送和配送问题(PDPs):研究涉及多目标选择性接送和配送问题,这些问题传统上从单一目标角度进行探讨,以寻找最具盈利性的请求集合,同时遵守一系列限制条件。 经济和…