初识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协议的主要内容,如果未能解决你的问题,请参考以下文章

初识UDP协议

初识UDP协议

初识网络协议:UDP和TCP

初识TCP/UDP(传输层)

初识Socket通信:基于TCP和UDP协议学习网络编程

OSI七层模型与TCP/UDP初识(代码待补充,7.31补充)