UDP协议介绍

       UDP协议,全名为用户数据包协议,它是一个简单的传输层协议。在使用UDP协议进行数据传输时,应用程序先将自己的将要传输的数据通过某种应用协议封装好,然后将这些数据写入UDP套接字中,数据在经过传输层的时候,会被封装到一个UDP数据报,该数据报继续往下传输经过网络层时又被封装到一个IP数据报,然后发送到目的地。UDP协议不保证UDP数据报会到达其目的地,不保证各个数据报的先后顺序跨网之后是否保持不变,也不保证每个数据报只到达一次。

       UDP提供无连接的服务,因为UDP客户与服务器之间不必存在长期的连接关系。一个UDP客户可以创建一个套接字并向一个指定的服务器发送一个数据报,然后立即使用同一个套接字向另一个服务器发送数据报。同样的,一个UDP服务器也可以用同一个UDP套接字从多个不同的客户接收数据报,每个客户一个数据报。

       UDP在发送数据报时,每个数据报中都包含长度信息。如果一个数据报能正确地到达目的地,那么该数据报的长度将随数据一道被传递给接收端进程,这与TCP数据传输不一样,TCP是一种字节流传递的,它没有任何记录边界。

       在使用UDP进行数据传输的时候,常常会遇到一个重要的问题,那就是它缺乏可靠性。如果一个数据报到达了目的地,但是校验和检测发现数据报有错误,或是在传输过程中丢失掉,那么它将无法被传递给接收套接字,也不会被源端自动重传。如果想要确保一个数据报到达目的地,可以使用应用程序增加一大堆的特性,比如来自对端的确认,本端的响应接收超时与重传等。UDP之所以不提供可靠传递,主要是因为UDP本身不提供确认、序列号、RTP估算、超时和重传机制,这也是UDP与TCP比较明显的区别。如果一个UDP报在网络中被复制成两份,那么这两个数据报都将被传递给目的地。同样的如果UDP客户发送两个数据报到同一个目的地,他们可能被网络重新排序,颠倒顺序后到达目的地,这也就是使用UDP进行大型数据传输的时,通常要使用一些应用协议来打包、解包和数据传输控制等,以确保数据的有序和可靠传递。

       正式由于UDP协议的无连接、包头开销小等因素,常常被应用在实时数据的传输当中,比如音视频流的传输等。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值