UDP协议

UDP协议

概括
  • 名称: 用户数据保协议(User Datagram Protocol)。
  • 类别: 传输层协议。
  • 特点: 无连接、不可靠、快速传输。
  • 数据包最大长度: 理论长度65507 byte、内网传输1472 byte、Internet传输548 byte,具体场景。1
  • 适用场合: 多媒体通信(QQ,视频),DNS域名解析等。
详解
数据包组成

首部占12个字节:源IP地址、目的IP地址、填充位(0)、协议号(UDP为17)、UDP长度。

UDP首部占8个字节:源端口、目的端口、UDP长度(首部+数据)、校验和。

数据:理论上最大长度:22*8-1=65535,65535-8(UDP首部)-20(IP首部)=65507 byte;内网传输UDP最大长度:1518(标准帧大小)-14-4(帧的头尾)-8-20=1472 byte;Internet传输;576(标准帧大小)-8-20=548 byte。

UDP数据包组成

UDP首部
  1. 伪首部2 一个虚拟的数据结构,其中的信息是从数据报所在IP分组头的分组头中提取的,既不向下传送也不向上递交,而仅仅是为计算校验和。

    源IP地址:发送方的IP地址。4 byte,32 bit。

    目的IP地址:接收方的IP地址。4 byte,32 bit。

    填充位:全0填充。1 byte,8 bit。

    协议号:UDP协议是17,TCP协议是6。2 byte,16 bit。

    UDP长度:首部长度8 byte,加上UDP数据所占的长度。

  2. 首部: 指明通信进程的端口号、UDP数据包的长度、以及校验和验证数据的准确性。

    源端口:源IP确定发送方主机,源端口确定主机的某一进程。2 byte,16 bit。范围0-65535。

    目的端口:目的IP确定接收方主机,目的端口确定主机上的某进程。2 byte,16 bit,范围0-65535。

    长度:UDP数据包的长度。即首部长度+数据长度。

    检验和:利用伪首部、首部、数据部分经由某种算法而得,可验证数据准确性。

  3. 主要特点:

    1. UDP是一个无连接协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。

    2. 由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息。

    3. UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包而言UDP的额外开销很小。

    4. 吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。

    5. UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。

    6. 虽然UDP是一个不可靠的协议,但它是分发信息的一个理想协议。例如,在屏幕上报告股票市场、显示航空信息等等。UDP也用在路由信息协议RIP(Routing Information Protocol)中修改路由表。在这些应用场合下,如果有一个消息丢失,在几秒之后另一个新的消息就会替换它。UDP广泛用在多媒体应用中。

参考资料

  1. 浅谈UDP(数据包长度,收包能力,丢包及进程结构选择) ↩︎

  2. TCP&UDP伪首部详解 ↩︎

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值