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伪头部的长度。

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

相关推荐
深蓝海拓16 小时前
基于socket的 TCP上位机通信内容解析程序
网络·笔记·python·学习·tcp/ip·plc
啦啦啦啦啦zzzz19 小时前
TCP协议详解
网络·网络协议·tcp/ip
张小姐的猫19 小时前
【Linux】网络编程 —— 传输层协议 TCP(下)
linux·运维·服务器·网络·tcp/ip·http·php
Little Tian20 小时前
基于FPGA的UDP回环实验(二)----ARP模块
网络·网络协议·udp
K成长日志20 小时前
BLE链路层--比特流处理
网络·物联网·网络协议·蓝牙·iot·ble·无线
秋田君21 小时前
QT_实战TCP 聊天程序说明文档以及实现
数据库·qt·tcp/ip
不悔哥21 小时前
Tinyftp 源码学习笔记:3000 行 C 实现的 FTP 服务器
服务器·c语言·网络·tcp/ip
SoStraw1 天前
webrpc 常见问题 FAQ:无公网 IP、Token、传文件,以及和 frp / WebRTC 的差别
tcp/ip·webrtc·frp·token·faq·webrpc·无公网ip
zhao3266857511 天前
静态IP代理固定IP与动态IP的根本差异,账号操作安全性如何体现
网络·网络协议·tcp/ip
SendTomo2 天前
P2P文件传输工具对比:SendTomo vs send.wang
javascript·网络协议·webrtc·html5·p2p