关于UDP的不可靠还是不太理解

来源:3-1 UDP是什么

woy

2020-01-06

老师, 关于你讲的UDP不可靠的几个点, 我还是不太理解, 能否详细描述一下?
1.它一旦将应用程序发给网络层的数据发送出去, 就不保留数据备份
//数据不就是用来发送的么, 发送出去, 发送者的任务就完了了啊, 怎么就不可靠呢?
2.UDP在IP数据报的头部仅仅加入了复用和数据校验(字段)
//加入这两个字段和可靠性有什么关系呢?
3.发送端生产数据, 接收端从网络中抓取数据
//你在视频中说: 发送和接收的时机不对,可能接收不到数据. 什么样的情况是发送时间不对呢? 服务端不是一直监听端口么,怎么会接不到数据呢?
4.结构简单, 无校验, 速度快, 容易丢包, 可广播
//无校验是无什么样的校验呢, 容易丢包, 为什么容易丢包呢?

写回答

1回答

Qiujuer

2020-01-26

  1. UDP负责发送数据,并不负责可达性校对数据。也就是说你把数据丢出去到客户端,此时要经过很长的链路,各个运营商等。。。说不定中间某个过程就丢了一个字节,或者某批数据干脆就没送达。所以对于客户端来说可能会没有收到数据,或数据不全。

  2. 这个点其实也跟第一点一样的,综合起来会出现不可靠的情况。

  3. 对于服务器来说一直处于监听状态则没有这个考量,对于客户端来说,往往开发是线性思维,发送-然后接收。此时接收监听在发送之后,此时说不定服务器返回的数据已经被路由链路丢弃了。

  4. 无校验,简单来说就是客户端收到啥就用啥,服务器收到啥就用啥,其中的数据可能存在传输中丢失或粘包的情况。

0
0

Socket网络编程进阶与实战 系统掌握Socket核心技术

理论+实践,系统且深入掌握Socket核心技术,从容应对各种Socket应用场景的不二之选

2316 学习 · 476 问题

查看课程