UDP的报文结构

UDP 报文结构

在这里插入图片描述
基本上所有的教科书上都是这样画的图, 但实际上 UDP 报文结构不是这样的, 这样显示应该是容易排版.
正确应该如下图 :

在这里插入图片描述

  1. 端口号 :
    每个端口号在 UDP 报文里占两个字节, 取值范围就是: 0 ~ 65535
    源 ip 和源端口描述了数据从哪里来, 目的 ip 和目的端口描述了数据去哪里.

补充 : 小于 1024 的端口称为 “知名端口”, 是给一些名气比较大的服务器预留的端口, 这部分端口在我们写代码时, 不应该使用. (如果某个知名端口没有被使用, 那么使用这个端口也没关系)

  1. 报文长度 :
    就是整个报文(报头加载荷)多大, 两字节也就是 64kb 大小, 也就是说一个 UDP 报文最大长度就是 64kb.

那如果要传输一个比较大的数据咋办呢?

  1. 可以对大的数据进行拆分, 使用多个数据报来传输. (涉及到数据的拆分,比较复杂)
  2. 不用 UDP 了, 直接用 TCP, TCP 没有限制.

总结 : 使用 UDP 编程的时候, 要注意 UDP 的数据报不能太长, 否则会出问题.

  1. 校验和 :
    网络传输其实并非是很稳定的, 经常会出错的. 在数据传输过程中, UDP 报头和载荷都可能出错. 校验和就是用来检查当前传输的载荷是否出错的.

校验和其实就是用载荷内容进行某种算术运算后得到的数据, 在 UDP 报文发出前计算一次校验和, 然后接收方收到后也根据载荷内容计算一次, 根据是否相同来判断数据是否出错了.

如果校验和不对, 那么数据一定出错了; 如果校验和对了, 数据也是有一定的概率出错的.
为了让校验和能够识别率高一点, 计算的时候通常会以数据的内容作为参数进行计算, 数据内容发生变化, 校验和也就发生变化.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

随风的浪

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

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

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

打赏作者

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

抵扣说明:

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

余额充值