初识UDP协议
Posted 无赖H4
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初识UDP协议相关的知识,希望对你有一定的参考价值。
UDP是在传输层上工作的协议
传输层协议:是在主机已经可以和主机建立链接的前提下,实现进程和进程间的通信。
UDP格式
UDP协议:
16位UDP长度,表示整个数据报(UDP首部+UDP数据)的最大长度
如果校验和出错,就会直接被丢弃
校验和:CRC算法 ——>Hash算法
可以判断出数据是否被修改
UDP协议首部有一个16位的最大长度,也就是说,一个UDP能传输的最大长度是64K(包含UDP首部)
如果需要传输的数据大于64k,那么就需要在应用层手动分包,多次发送,并且在接收端手动拼装。
UDP特点
UDP的特点是相对于TCP协议来说的:
不可靠、无连接、面向数据报、性能相对高、可以广播
不可靠
基于网络环境中的一些因素——不可靠
1、任何数据在经过网络传输的过程中都可能丢包;UDP也会进行丢包(不会通知应用层)——UDP不可靠
2、IP包会走不同的路,所以无法保证先发的包一定先到达 (无序)——UDP不可靠
无连接
应用层让发送就立即发送,不用管对方准没准备好接收 —— 无连接
可以广播
UDP可以进行广播——类比为群发邮件
面向数据报
应用层发送的多大的数据,这份数据会完整的装到UDP中发送,不会分包 —— 面向数据报
性能相对高
相对而言,UDP相对性能高
UDP的缓冲区
UDP没有真正意义上的发送缓冲区,当调用send的时候,会直接交给内核,然后发送。
UDP有接收缓冲区,但是不能保证收到的UDP数据报的顺序和发送UDP的顺序一致,如果缓冲区满了,再到达的UDP数据就会被丢弃。
以上是关于初识UDP协议的主要内容,如果未能解决你的问题,请参考以下文章