虽然说是详解,但是UDP确实没啥讲的,就当水了一篇文章

一. UDP介绍

1. 简介

UDP(User Datagram Protocol)传输与IP传输非常类似。

你可以将UDP协议看作IP协议暴露在传输层的一个接口。

UDP协议同样以数据包(datagram)的方式传输,它的传输方式也是”Best Effort”的,所以UDP协议也是不可靠的(unreliable)。

那么,我们为什么不直接使用IP协议而要额外增加一个UDP协议呢?

一个重要的原因是IP协议中并没有端口(port)的概念。

IP协议进行的是IP地址到IP地址的传输,这意味者两台计算机之间的对话。但每台计算机中需要有多个通信通道,并将多个通信通道分配给不同的进程使用。一个端口就代表了这样的一个通信通道。正如我们在邮局和邮差中提到的收信人的概念一样。

UDP协议实现了端口,从而让数据包可以在送到IP地址的基础上,进一步可以送到某个端口。

2. UDP特点

  • 工作在传输层
  • 提供不可靠的网络访问
  • 非面向连接协议
  • 有限的错误报错
  • 传输性能高
  • 无数据恢复特性

二. UDP报文

UDP的报文比TCP简单多了

16位的源端口和目标端口;16位的UDP数据包长度,16位的UDP校验值

下面就是数据data

这里没有TCP的六个flag,也没有序号,序列号,也就意味着有些功能没有

比如序号和序列号用于标记包的顺序和判断包是否收到,UDP没有这东西,也就意味着逆数据包收到没收到他就不管了

没有flag标记位,也就意味着没有握手分手,导致它的运行会更快,但是也是因为没有TCP的确认过程,所以可靠性差,不靠谱。

所以市面上还是TCP用的多。