TCP/IP协议—UDP

TCP/IP协议---UDP

UDP协议

用户数据传输协议 (UDP,User Datagram Protocol) 是一种无连接的协议,提供了简单的数据传输服务,不保证数据的顺序以及完整性。应用层很多通信协议都基于UDP进行传输,比如DNS、CoAP等。
UDP协议源文档

UDP通信特点

  • 无连接:数据传输不需要与对端建立连接,只需要知道对端IP地址以及端口号即可传输数据。
  • 不可靠:没有确认机制以及重传机制,不能保证数据传输的完整性。但也因此传输速度比TCP快,常用于直播、游戏等应用场景。
  • 可广播:可以直接对广播IP地址发送数据,实现一对多通讯。

UDP头部报文

UDP头部报文除去数据长度,一共有8个字节

  • Source Port:源端口号,长度为 16 比特,为本地应用端口号。
  • Destination Port:目的端口号,长度为 16 比特,为对端应用端口号。
  • Length:UDP报文长度,长度为 16 比特, Length=UDP头部(8字节)+UDP数据,因此Length最小值为8。
  • Checksum:UDP报文校验和,长度为 16 比特,Checksum的校验范围为UDP伪头部(12字节) + UDP头部(8字节) + UDP数据。Checksum使用二进制反码进行求和运算,最终结果为求和结果的反码。校验时如果数据位数不是偶数的话,会在最后补零。
  • data:UDP应用数据,最大为MTU-IP头部 - UDP头部 = 1500 - 20 - 8 = 1472字节。

UDP检验

UDP伪头部不会进行传输,只是用于校验。长度为12字节

  • source address:源IP地址,长度为32比特,为本地IP地址。
  • destination address:目的IP地址,长度为32比特,为对端IP地址。
  • zero:补零,长度为8比特,值为0。
  • protocol:UDP协议编号,长度为8比特,值为17。
  • UDP length:UDP报文长度,长度为16比特,不包括UDP伪头部的长度。

学习笔记,有问题欢迎指出

相关推荐
QT 小鲜肉1 小时前
【QT/C++】Qt网络编程进阶:TCP网络编程的基本原理和实际应用(超详细)
c语言·开发语言·网络·c++·qt·学习·tcp/ip
张人玉14 小时前
C# TCP 服务器和客户端
服务器·tcp/ip·c#
雯0609~14 小时前
宝塔配置:IP文件配置,根据端口配置多个项目文件(不配置域名的情况)
服务器·网络协议·tcp/ip
沧澜sincerely14 小时前
运输层协议概述及UDP
网络·udp·运输层
稚辉君.MCA_P8_Java18 小时前
深入理解 TCP;场景复现,掌握鲜为人知的细节
java·linux·网络·tcp/ip·kubernetes
小无名呀18 小时前
socket_udp
linux·网络·c++·网络协议·计算机网络·udp
_Johnny_18 小时前
Ubuntu 配置临时 IP 和 VLAN
tcp/ip·ubuntu·php
憧憬成为原神糕手18 小时前
传输层协议 TCP 三次握手/四次挥手 TIME_WAIT
网络·tcp/ip·安全
花阴偷移18 小时前
逆向基础--汇编基础(CS与IP) (05)
网络·汇编·网络协议·tcp/ip
天玺-vains19 小时前
借助Github Action实现通过 HTTP 请求触发邮件通知
网络协议·http·github