MyException - 我的异常网
当前位置:我的异常网» VC/MFC » 技术比拼,udp的可靠传输!大家可以用udt或其他开源

技术比拼,udp的可靠传输!大家可以用udt或其他开源或自己的算法一起比较,包括飞鸽,该怎么解决

www.MyException.Cn  网友分享于:2013-04-27  浏览:599次
技术比拼,udp的可靠传输!大家可以用udt或其他开源或自己的算法一起比较,包括飞鸽

纯粹出于对技术的追求,希望有相同爱好的朋友,一起讨论切磋。

以前业余实现此算法,如今所在公司为流媒体公司,所以本算法有了更好的用武之地。

在原有基础上,增加了一些额外功能,比如,联接携带额外数据,及优先发送的命令数据报,支持流式,及包式传输,内置文件传输,支持断点续传。

为了让它更好,更适应现在中国各种网络环境,能充分有效的利用代宽,在考虑到,实时性,丢包率,cpu、内存占用,及代宽利用率的基础上研发出的此算法。

如果需要验证或交流的,可以与我联系,qq 24508609 msn wpllg@hotmail.com

当然热烈欢迎接分。

------解决方案--------------------
牛人
------解决方案--------------------
等你搞完了就是一个tcp了
------解决方案--------------------
很有意思。
------解决方案--------------------
看看,有无源码?
------解决方案--------------------
流媒体 有像pps一样的P2P系统吗
------解决方案--------------------
纯支持+纯接分
------解决方案--------------------
探讨
引用:
等你搞完了就是一个tcp了


tcp在很多情况下效率并不高。

------解决方案--------------------
你能保证udp质量吗
------解决方案--------------------
真的 如果可以成功 你就等于多研发一种协议了

祝你成功
------解决方案--------------------
探讨
引用:
等你搞完了就是一个tcp了


tcp在很多情况下效率并不高。

------解决方案--------------------
支持 不错
------解决方案--------------------
如果不作深入的了解初,初步的看法是:
 做这项工作挺无聊或没有实用价值。 如果需要改变这种看法,请楼主给出相应的理由。

我的论据如下:
 1. “世上没有万能药”,没有任何单一的方案能解决所有问题。也就是说,不存在某一个“算法”能适用于所有领域。每项算法都有适用和不适用的场合。 
  UDP, TCP, 共存内存(同一主机通讯)各有所长,也各有局限。
  UDP适用于网络硬件资源很可靠和很富足的地方,比如局域网。
  共存内存在同一台主机中不同进程之间通讯,肯定比socket强。
  
  假设有一个算法a,实现了一个rudp,可以这样认为
当适用于udp的场合中,a比不上udp,
当适用tcp的场合中,a比不上tcp

2. 不存在“效率”都高的算法。
先得请教楼主“效率”指的是什么?
  单一的吞吐量(throughtput),单一的延迟(delay, latency)并不能反应出通讯性能的好坏。
  吞吐量是否是越大越好?延迟是否为越小越好?
  throughtput和latency往往是竞争的,此消彼长。
  除了上述的指标外,延迟的抖动性(jitter) 也很重要。latency忽大忽小,也不是所期望的。
3. 结合2和1,在不同的时候选用不同的策略。
特定的应用有时想要低延迟和低抖动,比如命令和指挥系统;有时需要高吞吐量,比如大型数据备份。
有时应用程序不在乎丢掉几个包,比如游戏中角色位置的移动;有时应用程序需要很高的连接数,比如大型系统的用户管理服务;有时应用程序不要求长连接;等等。

 
  
  

------解决方案--------------------
新人接分
------解决方案--------------------
路过
------解决方案--------------------
如果没理解错的话就是
  当某种条件下,“算法”变成 udp;
  反之,
  当另一种条件下,“算法”变成 tcp
如果是这样,做这样的事情就更没有价值了。

另外,“算法”由
 1) 输入
 2) 输出
 3) 过程
组成。
  给定一个输入,经过过程,得到确定的输出。
评价“算法”好坏是看Big O.
 
倘若“算法”还由“参数”来配置并影响结果,那所做的工作就超出了“算法”关注的范围了。
何不做一个框架呢?

如果这个框架做大了,不就成了中间件了吗?
 

====================
 




------解决方案--------------------
强人,继续比拼!

------解决方案--------------------
1、关于udp和tcp的使用场合问题,很多人都没注意这个问题,说明这不是问题
2、关于udp和tcp的各种效率问题,很多人都有自己的选择,说明这也不是问题
:)
------解决方案--------------------
关注
------解决方案--------------------
貌似 有点矛盾的话题~“UDP的可靠传输”是真命题么? 怀疑并关注回帖
------解决方案--------------------
楼主要开源,就把源码上传到CSDN吧,给个链接。
否则,本贴要移往非技术区。谢谢。
------解决方案--------------------
很好
------解决方案--------------------
还是帮顶下吧
------解决方案--------------------
探讨
引用:
引用:
等你搞完了就是一个tcp了


tcp在很多情况下效率并不高。


可能实时性确实没有udp那些好吧。不过人家用来这么久了,也没看到有什么新的取代他的出来,自然有他到优点。
支持楼主,搞一个新的协议出来,像什么rtp那些一样,能够成为一个标准,也算是为国争光了^_^



------解决方案--------------------
纯支持+纯接分
------解决方案--------------------
支持,接分,学技术
------解决方案--------------------
支持+接分
------解决方案--------------------
Mark
------解决方案--------------------
jf
------解决方案--------------------
mark
------解决方案--------------------
个人感觉tcp就udp的安全模式.看你说的意思,有点像是给tcp 减肥.如果成功的话,希望能在发个通知.期待中.....
------解决方案--------------------
我现倒是有一个 还没有研究明白 明白了再来讨论
------解决方案--------------------
up
------解决方案--------------------
和我的UT比较下吧(类似BT协议的UDP版本改造,因为涉及到数据交互,因此比单纯的单向传输稍微要慢点
毕竟是PNP方式传输,但是在网络质量够好的10M LAN情况下,可以达到900KB-1MB/S )
我的FtpAnywhere里携带了UT SDK包

此外还有一个TUDP协议,单纯的可靠UDP传输,可以达到TCP的效率,也包括在FAW中了

------解决方案--------------------
接分和顶。
另外,流媒体对实时性要求高,但能容忍一定程度丢包率,这看这些媒体采用什么编码。可靠UDP会比TCP快一些。
------解决方案--------------------
不错
------解决方案--------------------
jf
------解决方案--------------------
用UDP模拟tcp,好

------解决方案--------------------
过来学习一下。
------解决方案--------------------
UP
------解决方案--------------------
up
------解决方案--------------------
关注牛人讨论...
------解决方案--------------------
自主协议……
------解决方案--------------------
jf
------解决方案--------------------
没源码搞个屁啊,大伙不如去上sourceforge
------解决方案--------------------
没有源码只好纯接分+支持了
------解决方案--------------------
没有源码只好也纯接分+支持了
------解决方案--------------------
udt协议在某些流媒体和游戏中 用起来应该是比较好的。

推荐LZ看下Raknet,Raknet已经在udp的基础上实现了丢包重传、简单的流量控制、保活等功能,不过整体上做的还比较粗糙(当然是跟比较好的代码比较),据说作者已经在重新开发新的版本。

流媒体中的重传好像已经有协议规定了的,并且如果数据源是组播的,基于传输层的协议是没有办法解决的,只能采用冗余编码。


------解决方案--------------------
探讨
如果不作深入的了解初,初步的看法是:
 做这项工作挺无聊或没有实用价值。 如果需要改变这种看法,请楼主给出相应的理由。

我的论据如下:
1. “世上没有万能药”,没有任何单一的方案能解决所有问题。也就是说,不存在某一个“算法”能适用于所有领域。每项算法都有适用和不适用的场合。
  UDP, TCP, 共存内存(同一主机通讯)各有所长,也各有局限。
  UDP适用于网络硬件资源很可靠和很富足的地方,比如局域网。
  共存内存在同一台主机中不同进程之间通讯,肯定比socket强。

  假设有一个算法a,实现了一个rudp,可以这样认为
    当适用于udp的场合中,a比不上udp,
  当适用tcp的场合中,a比不上tcp

2. 不存在“效率”都高的算法-
  先得请教楼主“效率”指的是什么?
  单一的吞吐量(throughtput),单一的延迟(delay, latency)并不能反应出通讯性能的好坏。
  吞吐量是否是越大越好?延迟是否为越小越好?
  throughtput和latency往往是竞争的,此消彼长。
  除了上述的指标外,延迟的抖动性(jitter) 也很重要。latency忽大忽小,也不是所期望的。
3. 结合2和1,在不同的时候选用不同的策略。
    特定的应用有时想要低延迟和低抖动,比如命令和指挥系统;有时需要高吞吐量,比如大型数据备份。
    有时应用程序不在乎丢掉几个包,比如游戏中角色位置的移动;有时应用程序需要很高的连接数,比如大型系统的用户管理服务;有时应用程序不要求长连接;等等。

------解决方案--------------------
探讨
等你搞完了就是一个tcp了

------解决方案--------------------
RUDP是有价值的。
在P2P网络中,在无线网络的优化中,都需要。

不过,在多媒体数据中也可以使用前向纠错等冗余技术,保证实时性和正确性。

------解决方案--------------------
看到这个结构

struct IUdxCfg
{
BOOL bPI; //for diff,动态计整阀值因子
double dbpi;

BOOL bCareLost; //带宽抢占的一个因子

BOOL bLimitSpeed; //事限制上传速度
DWORD limitspeed; //具体的限速

BOOL bSpeedThreshold;//是否临界速度
DWORD thresholdspeed;//我们比较关心的阀值 ,比如500kbps,当超过这个值 的时候,我们不必去争夺带宽
double dbLostRat;

}; 

我即使有兴趣也没兴趣了
还是应该多看点基础性的代码,练好基本功
这东西我自己实现了2个了,并没有什么高深的理论或者算法,直接模拟TCP算法,在时间调度上改正下就可以,没必要多耗费时间

文章评论

程序员应该关注的一些事儿
程序员应该关注的一些事儿
程序员都该阅读的书
程序员都该阅读的书
总结2014中国互联网十大段子
总结2014中国互联网十大段子
10个调试和排错的小建议
10个调试和排错的小建议
漫画:程序员的工作
漫画:程序员的工作
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
为什么程序员都是夜猫子
为什么程序员都是夜猫子
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
代码女神横空出世
代码女神横空出世
程序员和编码员之间的区别
程序员和编码员之间的区别
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
旅行,写作,编程
旅行,写作,编程
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
程序员必看的十大电影
程序员必看的十大电影
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
我的丈夫是个程序员
我的丈夫是个程序员
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
中美印日四国程序员比较
中美印日四国程序员比较
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
程序员的鄙视链
程序员的鄙视链
 程序员的样子
程序员的样子
我是如何打败拖延症的
我是如何打败拖延症的
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
那些争议最大的编程观点
那些争议最大的编程观点
每天工作4小时的程序员
每天工作4小时的程序员
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
如何成为一名黑客
如何成为一名黑客
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
老程序员的下场
老程序员的下场
编程语言是女人
编程语言是女人
一个程序员的时间管理
一个程序员的时间管理
鲜为人知的编程真相
鲜为人知的编程真相
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有