UDP可靠传输协议KCP的一些理解】的更多相关文章

有空来论坛走走,发现讨论udp可靠传输又热了起来,有人认为udp高效率,有人认为udp丢包重传机制容易控制,还有朋友搞极限测试,当然也有人推销自己的东西,这里写一点我个人的看法. udp可靠传输其实非常非常的简单,我最开始接触udp可靠传输大约是在2005年,因为那时候开发FtpAnywhere,由于路由的映射和网关nat处理方面,认为udp具有天生优势,因此开始编写自己的udp可靠传输协议,好象那个时候已经有了udt,我也下了源代码看了下,不过很快就看不下去了,因为它用了定时器,加上跨平台处理…
ude是一款基于udp的可靠传输协议,专门用于在数据传输方面对实时性要求较高的应用领域.    tcp协议虽然能保证数据的可靠传输,但它有以下几个缺点:1.tcp的数据确认机制会导致发送方重复发送一些已经被对方接收的数据,降低了带宽的有效利用率:2.tcp协议的超时重传机制严格遵守rtt公平性,即到了rtt时间才会重传丢失的数据,当rtt较大时,就会导致数据的实时性降低,这对于一些对实时性要求较高的应用(比如流媒体应用)是不能忍受的,并且这一特点会导致带宽得不到充分利用:3.在p2p传输领域,由…
在c#有关udp可靠传输(包传输数据包)我们讨论,UDP包的发送,可是上一个程序有一个问题.就是数据比較大.一个Message类序列化后都有2048B,而实际的数据量也就只是 50B罢了,这就说明当中数据有效的非常少.这样当传送的数据包过多后,效率会极大的降低. 因此我们仅仅有想办法降低冗余数据. 此项目中借用了飞鸽传书中的一个<FSLib.IPMessager>项目中的思想,并加以改善.感谢此项目作者,让我对此有了深刻的理解 我们须要自定义数据的传输结构    我们能够定义一个数据头  当中…
Raknet是一个基于UDP网络传输协议的C++网络库,允许程序员在他们自己的程序中实现高效的网络传输服务.通常情况下用于游戏,但也可以用于其它项目. Raknet有以下好处: 高性能 在同一台计算机上,Radnet可以实现在两个程序之间每秒传输25,000条信息: 容易使用 Raknet有在线用户手册,视频教程.每一个函数和类都有详细的讲解,每一个功能都有自己的例程 跨平台,当前Raknet支持Windows, Linux, Macs,可以建立在Visual Studio, GCC, Code…
原文转自:http://hi.baidu.com/doodlezone/item/74a203155efe26dbbf9042dd                  UDT文档阅读理解 一.  概述 UDT是一个高性能的基于UDP的数据传输协议,它是为支持高速广域网上海量数据传输而设计,为解决TCP的效率和公平问题,同时提供可靠的数据流和报文传输. UDT是C++库,几乎类同于BSD socket APIs. UDT是多线程安全的,但并不是多进程共享. 二.  原理 UDT有两种传输模式:数据流…
KCP 是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低30%-40%,且最大延迟降低三倍的传输效果.纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定义下层数据包的发送方式,以 callback的方式提供给 KCP.连时钟都需要外部传递进来,内部不会有任何一次系统调用. 整个协议只有 ikcp.h, ikcp.c两个源文件,可以方便的集成到用户自己的协议栈中.也许你实现了一个P2P,或者某个基于 UDP的协议,而缺乏一套完善的ARQ可靠协议实现,…
UDP,鉴于其丢包和乱序(后发先至)问题,为保证其可靠性设计如下报头协议,供大家参考 数据包设计 数据包总大小按照MTU设计设置,小于1500字节 数据包示意图 包头类型说明 1.类型(1字节) 数值 说明 0 文字类型 1 图片类型 2 文件类型 2.传输状态(1字节) 目前数值4未使用,可考虑后期使用 数值 说明 0 客户端发送给服务器提示要传大文件 1 服务器发送给客户端已准备好接受 2 客户端发送文件中 3 客户端发送完成,询问服务端接收情况 4 服务端发送客户端接收完成 5 要求客户端…
TCP的几大模块:分段与流,滑窗,连接,流量控制,重新发送,堵塞控制. 1.checksum:在发送TCP报文的时候,里面的信息可能会因为环境的问题,发送变化,这时,接收信号的时候就需要通过checksum,进行校验,一般处理:如果没问题的话,就接受,有问题的话就丢弃. 2.超时重传机制:接收端在接受一个到一个TCP包的时候会返回一个ack,如果发送端接收到了这个ack就知道接收端顺利接收到了原先的TCP包:反之在一段时间内(这个计时等待的时间叫做重新发送超时时间(RTO, retransmis…
作者:小林coding 计算机八股文刷题网站:https://xiaolincoding.com 大家好,我是小林. 我记得之前在群里看到,有位读者字节一面的时候被问到:「如何基于 UDP 协议实现可靠传输?」 很多同学第一反应就会说把 TCP 可靠传输的特性(序列号.确认应答.超时重传.流量控制.拥塞控制)在应用层实现一遍. 实现的思路确实这样没错,但是有没有想过,既然 TCP 天然支持可靠传输,为什么还需要基于 UDP 实现可靠传输呢?这不是重复造轮子吗? 所以,我们要先弄清楚 TCP 协议…
RTSP 编辑 RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学.网景和RealNetworks公司提交的IETF RFC标准.该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据.RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或UDP完成数据传输.HTTP与RTSP相比,HTTP请求由客户机发出,服务器作出响应:使用RTSP时,客户机和服务器都可以发出请求,即RT…