UDP的可靠性传输

本文详细探讨了UDP与TCP的区别,强调了UDP的不可靠特性及其在特定场景下的优势。针对UDP的不可靠性,文章介绍了KCP协议,这是一种开源的UDP可靠性方案,提供了快速重传和选择性重传等机制,以提高传输速度并降低带宽浪费。KCP的主要特点、使用方式和配置模式也在文中进行了阐述。
摘要由CSDN通过智能技术生成

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有时被称为不可靠的数据报协议。如果需要传输可靠性,则必须在用户应用程序中实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值