免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: scutan
打印 上一主题 下一主题

关于UDP广播中如何提高可靠性 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-22 19:56 |显示全部楼层 |倒序浏览
20可用积分
请教一下,在进行广播的时候,网络环境较好,即内部网中,如果某一台机器广播数据包,它发送的速度较快,传送的内容较大,在接收数据的主机中,有的主机可能运行较慢,以致于不能够接收完整个数据,我已经调整了接收端的SO_RCVBUF,使其最大,但还是会出现丢包的情况。那么该怎样来解决这个问题呢?

我目前是这样想的:
1. 在发送端每次发送时调用 usleep(100)进行流量控制,目前的测试效果来看,运行较慢的主机基本上不会掉包。但是感觉这种方法不太可靠。
2. 若在UDP中采用超时,重传的机制的话,由于是广播的方式,我不知道某个主机A是否正在监听该端口,所以不好采用请求-应答的方式。

我个人更倾向于流量控制的方式,毕竟原因在于接收机处理不过来。不过怎样在广播中进行流量控制?

还请各位指教一下,谢谢!

论坛徽章:
0
2 [报告]
发表于 2008-08-22 20:03 |显示全部楼层

回复 #2 amxiaomao 的帖子

其实之前是TCP的方式,一台机器向多台发送相同的内容,但是又说这样效率不高,如果用UDP广播的话就要快一些。
你说的先TCP,后UDP是不是说先用TCP和对方建立连接,然后再用UDP进行传输?相当于FTP那种一个控制,一个传输的方式

论坛徽章:
0
3 [报告]
发表于 2008-08-22 20:10 |显示全部楼层

回复 #4 amxiaomao 的帖子

UDP确实不能够很好地提供可靠性,不过现在还只是在论证看是否可行。

[ 本帖最后由 scutan 于 2008-8-22 20:16 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2008-08-22 20:19 |显示全部楼层
原帖由 system888net 于 2008-8-22 20:17 发表


当然可行,只不过麻烦点罢了!


嗯,是的。
主要是看与TCP传输相比,能否明显提高性能。

论坛徽章:
0
5 [报告]
发表于 2008-08-22 20:30 |显示全部楼层

回复 #8 system888net 的帖子

广播的内容是在变化,不过每次发送之间的时间间隔还是有的,足够让数据都发送完。

嗯,是的,接收端必须保证每一个包都不能丢失。(所以我感觉必须自己进行某种检验)

所以的机器都是已经开机了,在内部网中的。

论坛徽章:
0
6 [报告]
发表于 2008-08-22 20:32 |显示全部楼层
原帖由 bobozhang 于 2008-8-22 20:29 发表
你要传送的电脑越多,你的数据量越大,用udp广播比起tcp越高效吧
当然麻烦的是你要自己实现重传机制如果数据包不可以丢失的话


嗯,点对点的UDP和重传倒还好办,不过一对多的方式感觉有点吃力。

论坛徽章:
0
7 [报告]
发表于 2008-08-22 20:49 |显示全部楼层

回复 #12 H264 的帖子

先谢谢,不过这两个协议感觉太复杂了一点,RTP还在RCTP层之上。因为本身就是为了提高效率,所以如果有更简单一点的流量控制方面的方法就更好了。
Thanks again.

论坛徽章:
0
8 [报告]
发表于 2008-08-22 20:57 |显示全部楼层
原帖由 system888net 于 2008-8-22 20:52 发表


那建议考虑这样:
  1. 发送方用广播的方式,而且包中有发送序号SNsend,并且打开一个UDP端口 Psr 进行接收反馈信号.
  2. 接收方在收到数据包后,向发送方的psr端口发送确认信号,确认信号里有SNsend和本机的 ...


嗯,谢谢。这是一个好方法,我觉得每次发送的数据包的大小应该小于UDP的SO_RCVBUF。是吧?
其实我觉得不用发送序号SNsend吧?因为是每一个包一次反馈。你觉得呢?

论坛徽章:
0
9 [报告]
发表于 2008-08-22 21:23 |显示全部楼层
原帖由 system888net 于 2008-8-22 20:52 发表


那建议考虑这样:
  1. 发送方用广播的方式,而且包中有发送序号SNsend,并且打开一个UDP端口 Psr 进行接收反馈信号.
  2. 接收方在收到数据包后,向发送方的psr端口发送确认信号,确认信号里有SNsend和本机的 ...


谢谢,学习了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP