UDP 协议

UDP协议

1.UDP的基本特点

  1. 无连接:知道源端口号和目的端口号就可以进行传输,不需要进行连接
  2. 不可靠:没有任何的安全机制,发送端发送完数据后,接收端是否会因为网络故障等其原因而没有接收到数据,UDP协议不会返回任何信息给应用层.
  3. 面向数据报:应用层交给UDP多长的报文,UDP会原样返回,不会拆分和合并.
  4. 全双工:两个通信实体之间可以互相通信,可以同时发送和接收数据

2.UDP协议格式

UDP数据报分为报头和载荷,报头包含了数据传输的相关的控制信息和元数据,而载荷就是一个完整的应用层协议数据.

报头报头包含以下字段:1.源端口号2.目标端口号3.长度4.校验和.4个字段占用的8个字节.

源端口和目的端口 :各有两个字节,也就是16个比特位,合法的端口也就是0-65535,端口是不会使用的,而1-1024这个范围的端口,系统赋予了特定的含义.
UDP报文长度 :UDP报文的总长度,包括报头和UDP载荷的部分.占用2个字节,换算单位的能表示数据也就是64kb.
如果传输的数据大于64kb,该如何处理?

  1. 分片处理:将大文件分割成小块:将大文件分割成多个小块,每个小块大小不超过65535字节,并且需要重新组装数据.在中途很可能会出现某个小块传输数据失败的情况,容易导致bug.
  2. 使用TCP代替UDP,TCP没有要求报文长度,所以传输多长都可以,并且提供了可靠的数据传输机制.

校验和 :检查数据是否在网络传输中是否出错,网络传输本质上是光信号/电磁波,如果有磁场等外界因素干扰就会导致数据传输失败.

校验和的方式就是在接收方接收到数据的时候,先确认一下,查看这个数据是否是一个错误的数据.

UDP校验和的实现(CRC校验算法)

1.将UDP头部和数据视为16位块.

2.对所有的16位块进行二进制求和,最终得到校验和

数据传输的时候,会把数据和校验和一起发过去,接收方在收到数据的时候,接收到了发送端发送的数据和校验(旧的校验和)和,接受方再按照相同的方式再算一遍,最终得到了一个新的校验和.

如果新的校验和与旧的校验和不相同,那么就视为传输出错,那么数据就会被丢弃(TCP传输),如果相同那么数据就正确的.

相关推荐
喵叔哟7 小时前
9. 【Blazor全栈开发实战指南】--Blazor调用JavaScript
开发语言·javascript·udp
MaximusCoder9 小时前
等保测评命令——Anolis Linux
linux·运维·服务器·网络·经验分享·安全·php
线束线缆组件品替网9 小时前
Adam Tech NPC-6-007-BU网线组件详解
服务器·网络·数码相机·智能路由器·电脑·51单片机·电视盒子
Striver-Diligent9 小时前
您的解决方案准确吗?一种用于增强通信网络可靠性的、面向故障的性能预测方法
网络·深度学习·机器学习·网络性能估计·数字孪生网络·网络预测
cheems95279 小时前
[网络原理]http协议理论基础以及wireshark抓包分析(二)
网络·http·wireshark
双星系统9 小时前
ABB机器人DSQC 679示教器电缆选型与故障排查(附原装型号对照表)
网络·数据库·机器人·工业4.0·工业机器人
炸炸鱼.9 小时前
Nginx 代理与缓存实战:正向、反向及网络层级详解
网络·nginx·缓存
5G行业应用10 小时前
6G未来网络架构ATHENA愿景——《2026韩国SK电讯6G白皮书》
网络·架构
一去不复返的通信er10 小时前
5G系统级仿真
网络·5g
北京耐用通信11 小时前
耐达讯自动化CC-Link IE转DeviceNet网关:破解三菱与欧姆龙PLC协同壁垒的工业实践
人工智能·科技·物联网·网络协议·自动化