UDP报文结构

UDP报文结构

在这里插入图片描述

如图,UDP报文结构分为

  • 16位源端口:用于记录发送端的端口号(占用两个字节)
  • 16位目的端口:用于记录接收端的端口号(占用两个字节)
  • 16位UDP校验和:接收端会首先知道即将发送来的数据的报文总长度,等数据来了之后,将数据的UPD校验和和已经知道的正确的报文总长度对比,如果不相同,直接丢掉UDP数据。(占用两个字节)
  • 16位UDP长度:确定UDP报文总长度,(占用两个字节)

UDP协议的特点

  • 无连接:接收方与发送方无需建立连接,发送方知道接收方的IP地址和端口号直接发送
  • 不可靠:假如发送方传输的数据因为某种原因被中断了,接收方也完全不知道,也不会返回异常,就跟陌生人寄给你个快递,快递丢了你也不知道。
  • 面向数据报:传输的形式都是以数据报,不可分割也不可合并,发送端发送什么样的数据报,接收端就原样拿过来,加入发送端一次发了100个字节的数据报,接收端就要一次性拿完,不能分几次拿
  • 全双工:可以同时双向发送数据,在A向B传输时,B也可以同时向A传输数据。

并且UDP数据报一次最大只能穿64KB数据
但是随着互联网发展,数据越来越大,64K显然太小于是有了以下方案(过于麻烦,被否决了,但是作为一个了解):

将一个大数据分开传输,一次传64K然后拼接起来。(注意:这里指的数据分开传输是将一个数据分为多个数据报传输,并不是将一个数据报分开传,不要混淆了)
但是网络传输具有一个特点:先发后至
例如:
在这里插入图片描述
1比2先发送,但是2先到了,1后到。这样一来,拼接上的数据就是错误的
所以,可以给数据引入序列号,在接收方收到全部数据后,根据序列号进行整理,保证数据正确。
但这样显然太麻烦了,于是这个方案就给否决了

现实中应用的解决这个问题的方案就是:换用TCP传输协议。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值