UDP的可靠性传输详解

文章目录

UDP和TCP的区别

TCP

UDP

为什么要使用UDP传输可靠性数据

如何使用UDP传输可靠性数据

KCP的使用方式

kcp配置模式

kcp的协议头

UDP和TCP的区别

Tcp和udp都是属于TCP/IP协议(传输层协议)。

TCP

TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。 一个TCP连接必须要经过三次握手,断开连接时需要四次挥手。

TCP的可靠性主要体现在什么方面呢?

1. 应用数据被分割成TCP认为最合适发送的数据块。

这个和UDP完全不同,应用程序将产生的数据报长度将保持不变。由TCP传递给IP的信息单位称为报文段或段。最大报文段(MSS)表示TCP传往另一端的最大块数据的长度。连接建立时,双方都需要通告自己的MSS。默认情况下MSS的值为536字节(可以加上20字节的IP首部和20字节的TCP首部)。对于一个以太网,最大的MSS可达到1460字节(1500(MTU) - 20(IP) - 20(TCP))。

2. 当TCP发出一个段之后,它启动一个定时器,等待目的端确认收到这个报文段,如果不能及时收到一个确认,将重发这个报文段。

3. 当TCP收到另一端的数据,他将发送一个确认。这个确认不是立即发送,而是延迟几分之一秒。

4. TCP将保持它首部和数据的校验和。这个是一个端到端的检测,目的是检测数据在传输时的任何变化,如果有收到段的检验和有差错,tcp将丢弃这个报文段和不确认收到此报文段。

5. 既然tcp报文段作为ip数据报来传输,而ip数据报的到达可能会失序,因此tcp报文段的到达可能会失序。如果必要,tcp将对收到的数据进行重新排序。

6. ip数据报会发生重复,tcp的接收端必须丢弃重复的数据。

7. TCP提供流量控制。

UDP

UDP(UserDatagramProtocol)是一个简单的面向消息的传输层协议,尽管UDP提供标头和有效负载的完整性验证(通过校验和),但它不保证向上层协议提供消息传递,并且UDP层在发送后不会保留UDP 消息的状态。因此,UDP有时被称为不可靠的数据报协议。如果需要传输可靠性,则必须在用户应用程序中实现。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值