UDP报文格式详解

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

清风的CSDN博客

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

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

目录

[一、UDP 协议段格式](#一、UDP 协议段格式)

[二、UDP 的特点](#二、UDP 的特点)

[2.1 无连接](#2.1 无连接)

[2.2 不可靠](#2.2 不可靠)

[2.3 面向数据报](#2.3 面向数据报)

[2.4 缓冲区](#2.4 缓冲区)

[2.5 全双工](#2.5 全双工)

[2.6 大小受限](#2.6 大小受限)

[三、 TCP 和 UDP 对比](#三、 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 全双工

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

2.6 大小受限

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

三、 TCP 和 UDP 对比

TCP 是可靠连接,那么是不是 TCP 一定就优于 UDP 呢? TCP 和 UDP 之间的优点和缺点,不能简
单,绝对的进行比较 。

  • TCP用于可靠传输的情况,应用于文件传输,重要状态更新等场景。
  • UDP用于对高速传输和实时性要求较高的通信领域,例如,早期的QQ,视频传输等。另外UDP可以用于广播。

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

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

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

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

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

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

相关推荐
suifen_2 小时前
RK3229_Android9.0_Box 4G模块EC200A调试
网络
铁松溜达py2 小时前
编译器/工具链环境:GCC vs LLVM/Clang,MSVCRT vs UCRT
开发语言·网络
衍生星球7 小时前
【网络安全】对称密码体制
网络·安全·网络安全·密码学·对称密码
掘根7 小时前
【网络】高级IO——poll版本TCP服务器
网络·数据库·sql·网络协议·tcp/ip·mysql·网络安全
友友马8 小时前
『 Linux 』HTTP(一)
linux·运维·服务器·网络·c++·tcp/ip·http
2401_872514978 小时前
深入探究HTTP网络协议栈:互联网通信的基石
网络·网络协议·http
chenjingming6669 小时前
windows使用tcpdump.exe工具进行抓包教程
网络·测试工具·tcpdump
初黑子zzz9 小时前
rsync
网络
蜗牛学苑_武汉9 小时前
设计模式之代理模式
java·网络·java-ee·代理模式