完成udp可靠传输算法,散分!!!!!!!!!
本人是电信1m adsl用户,所在公司也是1.5M adsl,共12人上网,有电信一台100M独享,和一台1000M独享外网服务器。
测试数据如下。
在公司大家工作时,我做上传测试可以达到49k BYTE/s,因为,是共享上网,不好做下载测试,在两台服务器之间做测试可以达到5m byte/s.,在本地局域网7m/s.
在家,上传可以达到46k/s,下载达到112.5k/s。
虽然不是最佳的算法,但是,在应用中,已经比较满意。
特,散分!!!
大伙来接啊。赫赫
过二天,自己转为非技术。
问题点数:200、回复次数:106Top
1 楼wwwllg(野蛮人)回复于 2005-12-08 23:49:03 得分 0
从有此打算到现在已经有一月有余!!!Top
2 楼pomelowu(羽战士)回复于 2005-12-08 23:50:33 得分 50
恭喜恭喜~发表些心得啊~呵呵~Top
3 楼wwwllg(野蛮人)回复于 2005-12-08 23:55:23 得分 0
写这个算法的过程是一个痛苦的过程,有时测试到深夜,却没有一个满意的结果。重复着相同的动作,却得不到一个相同的结果。冥思苦想得不到结果,却在骑双轮车的时候,找到关建算法。快要放弃的时候,却突然成功。Top
4 楼WangLuDongcai(王璐)回复于 2005-12-08 23:59:22 得分 10
写程序真的很累,最可怕就是作了没有结果,打击信心啊。如果可以像楼主这么庆祝十分欣慰!!!Top
5 楼playar0709(ClassyK)回复于 2005-12-09 00:07:34 得分 10
接分的来啦!
恭喜兄弟了!!
---
: Chance is a gift for those who tryTop
6 楼artmouse(艺术老鼠)回复于 2005-12-09 00:08:37 得分 10
恭喜啊!Top
7 楼67140170()回复于 2005-12-09 00:42:02 得分 10
恭喜,恭喜.这个问题我还没有解决呢.Top
8 楼netgm(问题多多)回复于 2005-12-09 04:13:19 得分 10
恭喜恭喜Top
9 楼xrye0395(Terry)回复于 2005-12-09 07:21:36 得分 10
坚持就是胜利!!Top
10 楼syghjsyghj()回复于 2005-12-09 07:36:36 得分 10
算法在哪里?Top
11 楼vc_asm(哥俩好)回复于 2005-12-09 08:16:41 得分 10
大哥,可以了,帮你顶啊,小弟仰慕你啊,发一份原代码到这儿:nrt3303@sohu.com
Top
12 楼freemme(路在脚下)回复于 2005-12-09 08:24:20 得分 1
jfTop
13 楼gohappy_1999(碧水蓝天)回复于 2005-12-09 08:33:17 得分 1
楼主执着啊Top
14 楼fisker0303(天塌了,地陷了,小花狗不见了.)回复于 2005-12-09 09:01:11 得分 10
恭喜~Top
15 楼wwwllg(野蛮人)回复于 2005-12-09 09:10:46 得分 0
想慢慢再写个udp文件服务器,用上这个算法,并包装成dll,或组件,以后可以直接重用,现在还在完善周边的功能,希望能成功。Top
16 楼liuxinzhi1982(大头)回复于 2005-12-09 09:30:52 得分 2
祝你成功啊Top
17 楼ttjacky(豆豆糖)回复于 2005-12-09 09:30:58 得分 2
好啊Top
18 楼mynamelj(风动,帆动,仁者心动)回复于 2005-12-09 09:33:19 得分 2
支持Top
19 楼kelinwang19(kelin)回复于 2005-12-09 09:45:19 得分 2
楼主强人啊,羡慕,希望偶哪天也能这样,恭喜,恭喜!接分Top
20 楼cyon(cyon)回复于 2005-12-09 09:53:31 得分 2
恭喜恭喜 楼主算是很成功的了Top
21 楼lemontreefun(flying)回复于 2005-12-09 10:04:01 得分 2
哈哈,楼主能不能把代码给我发一份啊!
pengmingfun@sina.comTop
22 楼cbeginner2000()回复于 2005-12-09 10:14:59 得分 2
给个伪码?Top
23 楼wwwllg(野蛮人)回复于 2005-12-09 10:22:01 得分 0
主要要实现,滑动窗口算法,重传机制,确认机制,超时机制,参靠tcp/ip的实现。Top
24 楼wwwllg(野蛮人)回复于 2005-12-09 10:23:21 得分 0
其中推见,选择性重传,累积式确认,指数退避算法。Top
25 楼guosx(玄远)回复于 2005-12-09 10:26:15 得分 2
恭喜,接分,呵呵,楼高了点Top
26 楼wwwllg(野蛮人)回复于 2005-12-09 10:27:49 得分 0
注意:序号回传问题,测量rtt时间问题,rto计算中何时更新问题,什么时候需要回传时间撮问题,最后就是校验问题。Top
27 楼lzzqqq(Jonersen)回复于 2005-12-09 10:30:56 得分 1
udp本身就是不能确定数据的到达.......Top
28 楼Yousjj(喵喵猫)回复于 2005-12-09 11:12:12 得分 1
可不可以共享呀,想要,yousjj@163.com,我对你的景仰之情犹如长江之水涛涛不绝Top
29 楼cbeginner2000()回复于 2005-12-09 11:26:32 得分 1
那 LZ 有没有参考 UNP 中的算法啊?Top
30 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-12-09 11:27:27 得分 1
赞,jfTop
31 楼vc_asm(哥俩好)回复于 2005-12-09 13:04:32 得分 1
大哥,我的QQ是46544151,想找你谈一下,切磋切磋
Top
32 楼best_threewood( Do it !)回复于 2005-12-09 13:12:58 得分 1
祝你成功Top
33 楼aa3000(杀手K)回复于 2005-12-09 13:24:04 得分 1
恭喜楼主,可以共享一下吗?发一份原码到 kill_li@tom.com ,谢谢Top
34 楼WhyArrow()回复于 2005-12-09 15:23:32 得分 1
恭喜啊,可以共享吗?发一份给我吗?arrowpan1@163.comTop
35 楼nntg(糖果)回复于 2005-12-09 16:12:40 得分 1
恭喜啊,lz真是强啊,实乃吾备之楷模!
能否给份代码给小弟研究下
tangun@sohu.comTop
36 楼xfreedom(因为乱给分没了信誉分)回复于 2005-12-09 17:06:27 得分 1
是用什么校验算法的?
Top
37 楼noneone(noneone)回复于 2005-12-09 17:40:30 得分 1
祝贺Top
38 楼elssann(睡睡裤)回复于 2005-12-09 22:20:58 得分 1
很难么?
只是传文件,,
对实时性要求又不高。。。
Top
39 楼aoosang(智慧的鱼)回复于 2005-12-09 22:34:17 得分 1
可惜,我看不到,Top
40 楼Mr_Yang(初级程序员)回复于 2005-12-09 23:07:26 得分 1
upTop
41 楼wwwllg(野蛮人)回复于 2005-12-10 00:53:39 得分 0
to elssann(睡睡裤)
很难么?
只是传文件,,
对实时性要求又不高。。。
------------------
只能说你根本没有考虑过!
Top
42 楼dch4890164(巴拉克)回复于 2005-12-10 08:22:16 得分 1
强人啊!!!Top
43 楼etre(林荃)回复于 2005-12-10 11:01:48 得分 1
UPTop
44 楼elssann(睡睡裤)回复于 2005-12-10 11:13:02 得分 1
回复人: wwwllg(wwwllg) ( ) 信誉:99 2005-12-10 00:53:00 得分: 0
to elssann(睡睡裤)
很难么?
只是传文件,,
对实时性要求又不高。。。
------------------
只能说你根本没有考虑过!
---------------------------------------------
算了吧,UDP可靠文件传输无非就两点:
1、重传的算法
2、数据校验。
如果同时对实时性要求高的话,倒不是很好做。而你这个是传文件,看不出有什么高深的东西。
《UNIX网络编程》里专门有一章讲做UDP重传算法的。
去年专门研究过2个月UDP做实时媒体流可靠传输。Top
45 楼cbeginner2000()回复于 2005-12-10 11:55:33 得分 1
那最好贴出来算法,我们学学啊。Top
46 楼khyang(天佑)回复于 2005-12-10 13:43:01 得分 1
呵呵,高兴高兴Top
47 楼fengge8ylf(秀视工作室,承接P2P项目)回复于 2005-12-10 16:42:47 得分 1
序号回传问题,测量rtt时间问题,rto计算中何时更新问题,什么时候需要回传时间撮问题,最后就是校验问题。
-------------------------------------
能具体讲讲吗 或者在那里能找到相关资料Top
48 楼fengge8ylf(秀视工作室,承接P2P项目)回复于 2005-12-10 16:43:08 得分 1
序号回传问题,测量rtt时间问题,rto计算中何时更新问题,什么时候需要回传时间撮问题,最后就是校验问题。
-------------------------------------
能具体讲讲吗 或者在那里能找到相关资料Top
49 楼shicheng521()回复于 2005-12-10 17:04:53 得分 1
恭喜、恭喜,
接分来了
Top
50 楼wwwllg(野蛮人)回复于 2005-12-10 23:49:50 得分 0
序号回转问题,---------》打错了一字。
就是一个序号值 用完了的情况,例如一个字节,只有0~255,那么序号就是0~255~0~255的数。
rtt,rto,只是和时间相关的名词,可以从tcp/ip上看到详细定义,我也说不好。
其他的,不是tcp协议相求的。Top
51 楼wotur(熊)回复于 2005-12-12 09:35:38 得分 1
恭喜!
我来接分Top
52 楼cxu123(cxu)回复于 2005-12-12 11:07:05 得分 1
楼主自己重新造轮子,实在是没有任何必要. SCTP(Stream Control Transmission Protocol)就可以做同样的事情,Solaris 10里面有支持. 网上源代码也找的到.这是专业设计的协议,比楼主粗糙的设计肯定要完善.Top
53 楼AntonlioX(做人要厚道)回复于 2005-12-12 11:10:58 得分 1
markTop
54 楼czylj(夭夭)回复于 2005-12-12 11:22:53 得分 1
如果是学习练习用,不错呀.如果讲具体的,不如从TCP中看一些,UDP的可靠传输,还是一个一模一样的TCP,只是在UDP上,不是在IP上.基本的所有算法全部一样.Top
55 楼SeekTruth(鹤舞白沙)回复于 2005-12-12 11:27:31 得分 1
楼主强人,佩服一个Top
56 楼lzzqqq(Jonersen)回复于 2005-12-12 11:43:39 得分 1
不知所云,拿分来!Top
57 楼9731boy(叉叉TV - 班头爷)回复于 2005-12-12 12:09:33 得分 1
有没有搞错?这种消息也放在首页?
不过是一个简单的udp重传罢了。Top
58 楼wangjemmy(杰)回复于 2005-12-12 12:37:50 得分 1
不错,接分Top
59 楼thisisll(学习王高李,有个好身体)回复于 2005-12-12 12:40:29 得分 1
JFTop
60 楼ouyh12345(五岭散人)回复于 2005-12-12 12:42:30 得分 1
牛啊,恭喜Top
61 楼MrMoment(小三)回复于 2005-12-12 13:25:22 得分 1
接分的来了
不知道楼主的udp socket是否是阻塞式的
我只试成功过非阻塞的……惭愧……Top
62 楼speech()回复于 2005-12-12 13:27:05 得分 1
阿~,感谢搂主,
给学习一下吧,yxm_oh@sohu.com 谢谢。Top
63 楼wwwllg(野蛮人)回复于 2005-12-12 14:02:04 得分 0
楼主自己重新造轮子,实在是没有任何必要. SCTP(Stream Control Transmission Protocol)就可以做同样的事情,Solaris 10里面有支持. 网上源代码也找的到.这是专业设计的协议,比楼主粗糙的设计肯定要完善
-----------------
问题是,如何在windows上用?如何应用到流媒体中去?如何打包到自己的应用中去?你说的Solaris也有所闻,最主要的是不熟悉。
-----------------
不过是一个简单的udp重传罢了。
-----------------------------
确实是一个重传的算法,但是,如何高效的利用网络带宽才最重要。如果看到tcp/ip详解的人都知道,停止等待协议是最可靠的,但不是有效的方法,效率较低,在一般的网络(internet)上,估计只会有10k左右不到。
Top
64 楼starlee(StarLee)回复于 2005-12-12 14:22:19 得分 1
我来接分!Top
65 楼SInoyew(天行杨)回复于 2005-12-12 14:30:10 得分 1
祝贺!!!
顺便请转发学习一下,Sinoyew@163.com
谢谢!Top
66 楼hunter_32(曠野裡奔嘯的狼)回复于 2005-12-12 14:46:56 得分 1
祝賀接分來了Top
67 楼asilas(asilas)回复于 2005-12-12 16:06:44 得分 1
CodeProject中有一篇讲CTP的
实际是一个比较成熟的可靠UDP传输例子
有兴趣的朋友可以参考一下
CTP是面向SMALL BUFFER的,但实际上在做文件传输时
文件切割后实际就是SMALL BUFFER
CTP给出那个例子在传输文件时需要改进一下Top
68 楼idAnts(此广告位招租)回复于 2005-12-12 16:17:19 得分 1
markTop
69 楼clane(clane)回复于 2005-12-12 16:24:37 得分 1
如果只是可靠。。
那去参看TFTP的源码吧。呵呵
如果还要做到像TCP一样。。那确实是有点工作量的,不过我记得有一个开源的库可以实现这个目的。google一下就可以找到.Top
70 楼xthunter()回复于 2005-12-12 16:49:37 得分 1
接Top
71 楼shockely(梦想的天空)回复于 2005-12-12 17:19:35 得分 0
接分Top
72 楼wwwllg(野蛮人)回复于 2005-12-12 17:28:14 得分 0
花了二个小时把codeproject上的例子看了一遍,思想和我的有80%是相同的,只不过,他是用的固定的超时时间100ms。
另一个,他是以包为固定单位的,分为大包和小包,对于流来说,好象也不适用。因为,他是把一个包收完全了,再去处理。这就是序号回转问题,他没有考虑。
我虽然没有测试在internet上的情况,本地很快,但是,我目前猜测在internet上,ctp,在adsl用户的上传下载速度不一定高。Top
73 楼clingsii()回复于 2005-12-12 17:46:49 得分 0
恭喜,接分Top
74 楼nilliu(liuxy)回复于 2005-12-12 17:52:26 得分 0
恭喜Top
75 楼wangxian()回复于 2005-12-12 18:10:22 得分 0
是FEC吧Top
76 楼gu1dai(异域苍穹.百年飞行)回复于 2005-12-12 19:10:20 得分 0
TFTP
-------
是基于tcp的吧。
-------
不知道楼主的会比用tcp快多少?Top
77 楼sen9ob(蜡笔小森)回复于 2005-12-12 20:49:06 得分 0
恭喜恭喜,可否发份代码让小弟研究研究? sen9ob@yahoo.com.cnTop
78 楼Stefine(CSDN最菜滴猩猩)回复于 2005-12-12 22:51:10 得分 0
没时间了
先标记下
回头再来Top
79 楼duotemplar(达拉马)回复于 2005-12-13 08:27:31 得分 0
楼主是用什么保证的?强啊,我们公司一直都有这个问题,恭喜了Top
80 楼vc_asm(哥俩好)回复于 2005-12-13 08:46:31 得分 0
哥们,请问你内存分配是如何进行的呢?是用VirtualAlloc吗?还是LocalAlloc,new? 对内存的释放又是怎样的呢?释放是有缓存功能吗?Top
81 楼asilas(asilas)回复于 2005-12-13 09:23:04 得分 0
TFTP应该是基于UDP的Top
82 楼www9158com(www.9158.com)回复于 2005-12-13 09:32:34 得分 0
这里,呵呵,xszqy@126.comTop
83 楼zzw_happy(蒹葭苍苍)回复于 2005-12-13 09:54:13 得分 0
确实不是什么很高深的技术,与其花一个月自己拍脑袋研究,
不如拿个现成的过来移植,可靠性要好的多。Top
84 楼lurenfu(具有中国特色的社会主义初级阶段,一百年不变)回复于 2005-12-13 12:50:44 得分 0
同意楼上的
Top
85 楼jenycheng(听,雪的声音)回复于 2005-12-13 13:12:31 得分 0
大家用过 "飞鸽传书" 没,
我用他在对等网传输 电影 也就是几十秒钟
好像 是个 日本鬼子 写的
不知道用了什么算法,
Top
86 楼someone(阿风)回复于 2005-12-13 14:20:34 得分 0
哥们,请问你内存分配是如何进行的呢?是用VirtualAlloc吗?还是LocalAlloc,new? 对内存的释放又是怎样的呢?释放是有缓存功能吗?
---------------------------
我也比较关心内存管理Top
87 楼vicky_jam(★天使亲蛙☆)回复于 2005-12-13 15:26:31 得分 0
好东西啊~:)呵呵~Top
88 楼AVest(俺就是一马甲)回复于 2005-12-13 16:00:57 得分 0
concernTop
89 楼rageliu(天气好了就去长白山看水怪去了,嘿嘿...)回复于 2005-12-13 16:11:48 得分 0
强!!
我是来分享楼主心得的Top
90 楼mimome(mimome)回复于 2005-12-13 16:24:28 得分 0
MimomeCN思维导图可以帮助你 获得一个大课题的全景图 计划你的前进路径和作选择,知道你要去哪里和你现在在哪里 获得和掌握大量信息 创造性地解决问题 享受阅读,分析和沉思的乐趣 同时把握全局和细节 思维导图的优势 思维导图和传统的记笔记方法相比有较大的优势。首先,它具有极大的可伸缩性。它顺应了我们大脑的自然思维模式。从而,可以让我们的主意自然地在图上表达出来。其次,思维导图增进我们的记忆。通过使用关键字强迫我们在做笔记的时候就要思考句子的要点到底是什么,这使我们可以积极地倾听讲课者。而且思维导图还激发我们的右脑,因为我们在创作导图的时候还使用颜色、形状和想象力。根据科学研究发现人的大脑是由两部分组成的。左大脑负责逻辑、词汇、数字,而右大脑负责抽象思维、直觉、创造力和想象力。巴赞说:“传统的记笔记方法是使用了大脑的一小部分,因为它主要使用的是逻辑和直线型的模式。” 所以,图像的使用加深了我们的记忆,因为使用者可以把关键字和颜色、图案联系起来,这样就使用了我们的视觉感官。 下载地址:http://www.mimome.cn/MimomeCN/MimomeCN-Mindmap.exeTop
91 楼yousite1(国雾)回复于 2005-12-13 16:33:19 得分 0
接分了。。。Top
92 楼wopos(上D也风狂)回复于 2005-12-13 17:10:00 得分 0
凑个热闹Top
93 楼Stefine(CSDN最菜滴猩猩)回复于 2005-12-13 17:17:54 得分 0
回过头来再瞧瞧
呵呵,只能是看看Top
94 楼burningfire_wqf(FreshBird)回复于 2005-12-13 18:01:30 得分 0
gx,jfTop
95 楼light_sun(将编程进行到底)回复于 2005-12-13 18:06:59 得分 0
You are very good engineerTop
96 楼vipxch(雨天)回复于 2005-12-13 20:59:06 得分 0
mark 一下Top
97 楼ColderRain(一切尽在不言中)回复于 2005-12-13 23:46:28 得分 1
恭喜,接分!Top
98 楼wwwllg(野蛮人)回复于 2005-12-14 00:20:51 得分 0
这两天,对每个包头减小了8个字节,并增加了快速重传,速度下载和上传提高了5k/s。Top
99 楼vc_asm(哥俩好)回复于 2005-12-14 08:04:34 得分 0
哥们,我有个想法,可以把头部缩小为4字节哦
Top
100 楼benjiam(今晚打老虎)回复于 2005-12-14 10:19:59 得分 0
赞
不过我认为 楼主的水平不可能比steven 高
所以你的问题 在圣经2里面都有实现的Top
101 楼wwwllg(野蛮人)回复于 2005-12-14 10:22:17 得分 0
最少需要10个字节,但我用了12字节.
UDP_LONG sum;//crc校验和
UDP_SHORT len;//数据长度,不包括头
UDP_BYTE ver;//板本
UDP_BYTE type;//类型
UDP_LONG index;//序号
其中ver和type可以合并成一个字节的。
Top
102 楼raygts(朱仔)回复于 2005-12-14 10:22:47 得分 0
怎么没有代码贴出???郁闷,失望Top
103 楼vc_asm(哥俩好)回复于 2005-12-15 09:54:48 得分 0
哈哈,你还没明白我的意思,你先把头部信息在开始的时候传过去,以后就不用传了啊,这样可以弄的弄小吧Top
104 楼vc_asm(哥俩好)回复于 2005-12-15 09:56:13 得分 0
还有啊,可不可以弄成双工的啊,就是说双向同时传送啊,TCP好像是这样的啊Top
105 楼luolovegui(骆归)回复于 2005-12-15 11:45:15 得分 0
markTop
106 楼sjcxlp()回复于 2006-03-10 14:16:12 得分 0
sunjincao@163.com,我对你的景仰之情犹如长江之水涛涛不绝Top




