【计算机网络】传输层(二)—— UDP 协议

【计算机网络】传输层(二)—— UDP协议

一、UDP 概述

UDP仅在 IP 的数据报服务之上增加了两个最基本的服务:复用和分用以及差错检测

  1. UDP 是无连接的,减少开销和发送数据之前的时延。
  2. UDP 使用最大努力交付,即不保证可靠交付。
  3. UDP 是面向报文的,适合一次性传输少量数据的网络应用。
  4. UDP 无拥塞控制,适合很多实时应用。
  5. UDP 首部开销小,UDP仅有 8B的开销,TCP 20B。

在这里插入图片描述

应用层给UDP 多长的报文,UDP 就照样发送,即一次发一个完整报文。

UDP是面向报文的。发送方 UDP 对应用层交下来的报文,在添加首部后就向下交付给 IP层,一次发送一个报文,既不合并,也不拆分,而是保留这些报文的边界:接收方UDP 对IP层交上来UDP数据报,在去除首部后就原封不动地交付给上层应用进程,一次交付一个完整的报文。因此报文不可分割,是UDP数据报处理的最小单位。因此,应用程序必须选择合适大小的报文,若报文太长,UDP把它交给 IP 层后,可能会导致分片;若报文太短,UDP把它交给 IP层后,会使 IP数据报的首部的相对长度太大,两者都会降低 IP层的效率。

二、UDP 数据报

UDP数据报包含两部分:UDP首部和用户数据。UDP首部有8B,由4个字段组成,每个字段的长度都是 2B。各字段意义如下:

  1. 源端口。源端口号。在需要对方回信时选用,不需要时可用全0。
  2. 目的端口。目的端口号。这在终点交付报文时必须使用到。
  3. 长度。UDP 数据报的长度(包括首部和数据),其最小值是8(仅有首部)。
  4. 校验和。检测 UDP 数据报在传输中是否有错。有错就丢弃。该字段是可选的,当源主机不想计算校验和时,则直接令该字段为全0。

在这里插入图片描述

分用时,找不到对应的目的端口号,就丢弃报文,并给发送方发送 ICMP “端口不可达”差错报告报文。

在这里插入图片描述

三、UDP 校验

在计算校验和时,要在 UDP 数据报之前增加 12B 的伪首部,伪首部并不是UDP 的真正首部。只是在计算校验和时,临时添加在 UDP数据报的前面,得到一个临时的 UDP数据报。校验和就是按照这个临时的 UDP数据报来计算的。伪首部既不向下传送又不向上递交,而只是为了计算校验和。

UDP 校验和的计算方法和 IP数据报首部校验和的计算方法相似。但不同的是,IP 数据报的校验和只检验P数据报的首部,但 UDP的校验和则检查首部和数据部分

在这里插入图片描述
伪首部只有在计算检验和时才出现,不向下传送也不向上递交。

在发送端:

  1. 填上伪首部
  2. 全 0 填充检验和字段
  3. 全 0 填充数据部分(UDP数据报要看成许多 4B 的字串接起来)
  4. 伪首部 + 首部 + 数据部分采用二进制反码求和
  5. 把和求反码填入检验和字段
  6. 去掉伪首部,发送

在接收端:

  1. 填上伪首部
  2. 伪首部+首部+数据部分采用二进制反码求和
  3. 结果全为 1 则无差错,否则丢弃数据报/交给应用层附上出差错的警告。

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

何为xl

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

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

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

打赏作者

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

抵扣说明:

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

余额充值