Linux下使用KCP协议传输数据的UDP编程优点以及使用细节
2017-03-18 00:00
495 查看
摘要: KCP
是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定义下层数据包的发送方式,并以 callback的方式提供给 KCP。连时钟都需要外部传递进来,内部不会有任何一次系统调用。
整个协议只有 ikcp.h, ikcp.c两个源文件,可以方便的集成到用户自己的协议栈中。也许你实现了一个P2P,或者某个基于 UDP的协议,而缺乏一套完善的 ARQ可靠协议实现,那么简单的拷贝这两个文件到现有项目中,稍微编写两行代码,即可使用。的一个好东西,我在网上也搜了很多说的很简单,没有细节,下面这个是我本人打的一个简单的例子,比较清晰可以快速掌握并且集成到项目中。https://git.oschina.net/lamYu/KCPdemo.git
是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定义下层数据包的发送方式,并以 callback的方式提供给 KCP。连时钟都需要外部传递进来,内部不会有任何一次系统调用。
整个协议只有 ikcp.h, ikcp.c两个源文件,可以方便的集成到用户自己的协议栈中。也许你实现了一个P2P,或者某个基于 UDP的协议,而缺乏一套完善的 ARQ可靠协议实现,那么简单的拷贝这两个文件到现有项目中,稍微编写两行代码,即可使用。的一个好东西,我在网上也搜了很多说的很简单,没有细节,下面这个是我本人打的一个简单的例子,比较清晰可以快速掌握并且集成到项目中。https://git.oschina.net/lamYu/KCPdemo.git
相关文章推荐
- Linux Socket网络编程 分别使用TCP协议 和 UDP协议
- 基于UDP协议的网络编程(使用DatagramSocket发送接收数据)
- Linux网络编程5——使用UDP协议实现群聊
- 使用ByteArray实现数据的传输,以及协议的分解.
- Java_网络编程_使用UDP协议发送及接收数据
- socket编程(三)---- UDP协议与传输数据报文
- java使用UDP协议传输数据
- linux网络编程之IP协议首部格式与其配套使用的四个协议(ARP,RARP,ICMP,IGMP)和TCP、UDP协议头结构总结
- Linux网络编程之使用UDP传输文件
- Android使用Socket(Tcp/Udp)协议进行数据传输(传输大文件)
- 网络编程—UDP协议传输接受与发送数据
- java使用UDP协议传输数据
- Linux网络编程之使用UDP传输文件
- [Linux网络编程笔记]传输协议TCP和UDP简介
- Linux网络编程基础_5_传输层(中)--UDP协议
- [gcc编程] socket编程——TCP/UDP数据传输
- UDT协议-基于UDP的可靠数据传输协议
- linux协议栈之链路层上的数据传输之网卡驱动
- UDT协议-基于UDP的可靠数据传输协议
- UDT协议-基于UDP的可靠数据传输协议