首页 > 编程知识 正文

数据报传输协议,udp多线程并发服务器

时间:2023-05-06 14:08:04 阅读:119775 作者:414

概念kcp-afastandreliablearqprotocol、kcp高速可靠的网络传输协议

KCP的目标是在确保可靠性的同时提高传输速度。 kcp采取一系列措施尽量提高网络的传输速度。 在网络实时性和可靠性要求比较高的情况下,可以考虑kcp协议代替tcp协议。

KCP是一种快速可靠的协议,以KCP比TCP浪费10%-20%的带宽为代价,与平均延迟降低30%-40%的效果相反,获得了最大延迟降低3倍的传输效果。

整个协议只有两个源文件: ikcp.h和ikcp.c,可以轻松集成到您自己的协议栈中。 如果您实现的是P2P或基于UDP的协议,但缺少ARQ信任协议的完整实现,则只需将这两个文件轻松复制到现有项目中并编写两行代码即可。

KCP优势KCP受到越来越多的旅游开发项目的关注,最主要的原因是KCP协议能够克服UDP丢包的问题。 如果比TCP浪费10%~20%的带宽,则可以得到平均延迟降低30%~40%、最大延迟降低3倍的效果。

KCP特征KCP特征明显,比UDP可靠,比TCP流速快。

与TCP的区别1、TCP专为流量而设计,要求每秒传输多少KB的数据,充分利用带宽。

2、KCP被设计用于流速,用比TCP快30%-40%的传输速率来代替浪费带宽(单个分组从一端传递到一端需要多长时间)。

KCP用途KCP数据可靠、流速快的特性适用于使用帧同步的MOBA类游戏,视频也有一定的市场。

如果网络没有发生过丢包,直接使用TCP即可,直接裸UDP也没关系。 但是,网络会因丢包而引发纸箱,尤其是在高峰时段,丢包可能会上升到10%,而在移动设备上,这种情况会更加恶化。

KCP算法

旨在解决网络拥塞情况下tcp协议网络速度慢的问题。 kcp协议的热点主要是控制数据可靠性和提高传输速度,因此kcp没有规定下级的传输协议,一般使用udp作为下级的传输协议,kcp层协议的数据包在udp数据消息的基础上增加报头如果用户数据大于一个udp数据包所能负担的范围,kcp会将用户数据分片存储在多个kcp数据包中。 因此,每个kcp包都称为片。

KCP传输原理

KCP是可靠的传输协议,UDP不可靠,因此需要额外的信息来确保传输数据的可靠性。 因此,必须在KCP传输的数据中添加标头。 用于确保数据的可靠性和秩序。

数据接收过程KCP的接收过程对UDP收到的数据进行解压缩,然后重新组装顺序中的可靠数据并传递给用户。

对于TCP丢包,来自丢失数据包的所有数据都将被重新发送。 KCP被选择性地重发,只有丢失的数据包被重发。

高速重发发送端发送1、2、3、4、5个数据包后,接收到远程的ACK:1、3、4、5。 当接收到ack3时,KCP知道2被跳过了一次,并且当接收到ACK4时,KCP知道2被跳过了两次。 此时,虽然认为第2个丢失了,但是通过不等待超时就这样重新发送第2个分组,得到了大幅改善

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。