UDP协议详解

摘要:
UDP协议只在IP数据报服务商增加了很少一点的功能,就是复用和分用,以及差错检测的功能。长度UDP数据报的长度,最短为8个字节,只包含首部。检验和用于检验UDP数据报在传输过程中有没有出差错,有则丢弃。

一、UDP协议简介

UDP协议,即用户数据报协议(User Datagram Protocol),是一个简单的面向数据报的传输层协议。UDP协议只在IP数据报服务商增加了很少一点的功能,就是复用和分用,以及差错检测的功能。

二、UDP协议的主要特点

1)无连接的
发送数据之前不需要建立连接,减少了开销和发送数据之前的时延。
(2)尽最大努力交付
不保证可靠的交付,主机不需要维持复杂的链接状态表。
(3)面向报文的
发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。
(4)没有拥塞控制。
(5)支持一对一、多对一和多对多的交互通信。
(6)首部开销小,只有8个字节。

三、UDP数据报的首部结构

用户数据报UDP有两个字段:数据字段和首部字段。首部字段只有8个字节,如下图所示:

UDP协议详解第1张

首部部分很简单,只有8个字节,由四个字段组成,每个字段都是两个字节。各个字段意义分别是:

(1)源端口

在需要对方回信时使用,不需要时全为0

(2)目的端口

发送UDP数据报的目的地。

(3)长度

UDP数据报的长度,最短为8个字节,只包含首部。

(4)检验和

用于检验UDP数据报在传输过程中有没有出差错,有则丢弃。

伪首部:
a.伪首部是用来校验的,它必须和首部中的校验和结合起来使用。
b.在计算检验和时临时加上去的,伪首部既不向下传送也不向上提交,而仅仅时为了计算检验和
c.在计算检验和时,需要在UDP用户数据报之前增加12个字节的伪首部。这个伪首部并不是UDP真正的首部,这是在计算检验和时临时和UDP用户数据报连接在一起,得到一个过渡的UDP用户数据报,检验和就是按照这个过渡的UDP用户数据报来计算的。伪首部既不向下传送也不向上提交,而仅仅时为了计算检验和。UDP计算检验和的方法和计算IP数据报首部检验和的方法相似,不同的是,IP数据报的检验和只是检验IP数据报的首部,但是UDP的检验和是将首部和数据部分一起都检验。

免责声明:文章转载自《UDP协议详解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇jQuery----1c# 压缩 解压 7z下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

udp用户数据报协议

  UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17。   UDP协议全称是用户数据报协...

C/C++学习)22.QTcpServer、QTcpSocket、QUdpSocket使用

一、TCP/UDP通信在Qt中的实现过程: 废话不说,首先下面是Qt中TCP/UDP的实现图解: 1.Qt下TCP通信详解: 针对上图进行简单的说明: QTcpServer用来创建服务器对象,服务器对象创建以后,调用成员函数listen()进行监听某个IP和某个端口,其中listen()包含了IP和Port(即地址和端口)。其实服务器的监听操作是用来将该...

SOCKS 5协议详解(转)

笔者在实际学习中,由于在有些软件用到了socks5(如oicq,icq等),对其原理不甚了解,相信很多朋友对其也不是很了解,于是仔细研读了一下rfc1928,觉得有必要译出来供大家参考。 1.介绍:   防火墙的使用,有效的隔离了机构的内部网络和外部网络,这种类型的Internet架构变得越来越流行。这些防火墙系统大都充当着网络之间的应用层网关的角色,通常...

004.UDP--拼接UDP数据包,构造ip头和udp头通信(使用原始套接字)

一.大致流程: 建立一个client端,一个server端,自己构建IP头和UDP头,写入数据(hello,world!)后通过原始套接字(SOCK_RAW)将包发出去。 server端收到数据后,打印UDP数据并发送确认消息(yes),client收到yes后将其打印。 二.其中: client端IP:192.168.11.104 端口:8600 ser...

python网络/并发编程部分简单整理

软件开发架构C/S架构:Client与Server客户端与服务器端架构 .exeB/S架构:Browser与Server浏览器端与服务器端架构IP地址: IP地址是指互联网协议地址 IP地址通常用“点分十进制”表示,实际上是32位二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)port: 设备与外界通讯交流的出口...

ffmpeg文档24-协议

24 协议 FFmpeg协议配置元素,用于访问资源时要求特定的协议。 默认编译时会自动支持所有可用协议。你可以在编译脚本中添加 "–list-protocols"选项来了解有哪些协议被支持。 你也可以在编译时通过 "–disable-protocols"禁止所有的协议支持,然后通过 "–enable-protocol=PROTOCOL"来启用个别协议,或...