用户数据包协议基础(UDP)-----UDP系列1基础知识

用户数据包协议基础(UDP)

  • 不提供差错纠正,队列管理,重复消除,流量控制和拥塞控制,不保证能到达目的地

  • 提供差错控制

  • 使用UDP的应用程序必须自己实现保证数据可靠投递或正确排序

  • 比其他的传输协议开销小,面向无连接,广播和组播用的比较多,UDP头部开销仅需8个字节

  • UDP传输下的IP数据报格式

在这里插入图片描述

10.2 UDP头部

在这里插入图片描述

  • UDP源端口 :如果数据报的发送者不要求对方回复的话,源端口号可以被置为0
  • UDP目的端口 :IP协议的头部种的”下一个头部“字段的值将指明特定的传输协议,说明端口号在不同的传输协议之间是独立的,因此两个完全不同的服务器可以使用相同的端口号和IP地址,只要他们使用不同的传输协议,但是如果某个众所周知的服务既可以用TCP传输也可以用UDP传输,那么通常两个传输协议的端口号被分配成一样的
  • UDP的长度 :长度字段是UDP头部和UDP数据的总长度,以字节为单位

长度最小是头部长度为8个字节,发送长度为0字节数据的UDP数据包是允许的;

UDP长度字段是冗余的,因为在IPv4头部包含了数据报的总长度,IPv6头部也包含了负载长度

UDP/IPv4数据报长度 = IPv4数据报的总长度 - IPv4头部的长度

UDP/IPv6数据报长度 = 负载长度字段的值 - 所有扩展头部的长度

  • UDP校验和 :端到端的传输层校验和

校验和字段是端到端的,是对包含了源IP和目的IP字段的UDP伪头部计算得到的,因此只要经过NAT,就需要重新计算校验和

  • 以上针对的都是IPv4的数据报

10.3 UDP校验和

  • UDP校验和在IPv4是可选的,IPv6是强制的,其他协议则都是强制的需要检验和
  • 首先UDP数据报长度可以是奇数个字节,而**校验和算法(16位反码和的反码)**只相加16位字节(总是偶数个字节),UDP的处理过程是在奇数长度的数据报尾部追加一个值为0的填充虚字节
  • UDP计算校验和包含了衍生自IPv4头部的一个12字节的伪头部或者来自IPv6头部字段的一个40字节的伪头部,目的是:让UDP层验证数据是否已经到达正确的目的地(即:该IP没有接受地址错误的数据报,也没有给UDP一个本该是其他传输协议的数据报)
一个UDP头部校验差错被检测到时会发生什么?

计算出来的校验和一旦被接收,校验和为0x0000时,表示发送方没有计算校验和,如果刚好计算得到的是0x0000,那么就把校验和变成他的算术反码0xFFFF,如果接收方检测到一个校验差错,UDP数据报会被丢弃,会有一些统计计数,但不会产生任何差错消息

一个UDP/IPv4的数据报穿过一个NAT时,IP层头部的检验和需要修改,为什么UDP伪头部的检验和也必须被正确修改?

因为IP层的地址和UDP层的端口号可能会改变,UDP的校验和需要重新计算。

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

USTC暖暖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值