免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8799 | 回复: 13
打印 上一主题 下一主题

socket丢包问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-06-23 10:37 |只看该作者 |倒序浏览
设备与sco之间发送接收udp包。测试期间,设备不间断地发送长度约1330字节的udp包,sco不停地接收。接收60000个数据包约为100秒。
   现在发现若在sco接收包的过程中写文件,例如将某些调试信息写人文件,就有可能出现丢包。  包括本进程写、或在子进程写,甚至是另外编写一个文件来写,都会出现。
  用socket接收、发送数据是我另外编写的一个动态库,是否是我的程序写得有问题?但仅是调用sendto和recvfrom啊,最多加上select。

如果这样都不能承受的话,那很多服务器都是接收数据然后查询数据库再回复,不是更有问题?

还是因为那些大多使用的是tcp,有流控和重发机制,所以不显得有这样的问题?

论坛徽章:
0
2 [报告]
发表于 2003-06-23 10:45 |只看该作者

socket丢包问题

UDP?UDP是不保证不丢包的,TCP才保证。
但是如果你的处理速度慢了,导致TCP的缓冲区满了,那就丢了,在自己的程序中,要自己加入缓冲的一层,且要用多线层来控制,(线程池),在数据的读写方面做优化,要不然就不好说了。

论坛徽章:
0
3 [报告]
发表于 2003-06-23 10:54 |只看该作者

socket丢包问题

即使是多线程,线程调度是由系统来完成的,若系统去做别的工作时,都丢包了,那能怎么办?
   象我现在只起了两个线程,一个负责通讯,一个偶尔写写文件,这样都会丢包。我也将socket的接收缓冲加大了,还是不行

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2003-06-23 10:58 |只看该作者

socket丢包问题

备不间断地发送长度约1330字节的udp包,sco不停地接收。。。

这种情况丢包是正常的。

更改为tcp方式吧。

论坛徽章:
0
5 [报告]
发表于 2003-06-23 11:00 |只看该作者

socket丢包问题

我在windows上实验过,0.1s发一个请求(我说的是请求),好象要丢一半请求,我也不知道为什么?0.2s没有事,我也不知道为什么。

论坛徽章:
0
6 [报告]
发表于 2003-06-23 11:18 |只看该作者

socket丢包问题

我计算了一些,基本上是1.7ms发送一个包,但计算密度也就8M/s。现在不都是100M网卡了吗。

  而且不另外做文件读写,占用时间就不会漏包。

论坛徽章:
0
7 [报告]
发表于 2003-06-23 11:23 |只看该作者

socket丢包问题

我计算了一些,基本上是1.7ms发送一个包,但计算密度也就8M/s。现在不都是100M网卡了吗。

  而且不另外做文件读写,占用时间就不会漏包。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
8 [报告]
发表于 2003-06-23 11:29 |只看该作者

socket丢包问题

你如上的计算是基于你当前的配置的,如果硬件配置发生了变化,结果可能会变得更糟糕!

论坛徽章:
0
9 [报告]
发表于 2003-06-23 11:36 |只看该作者

socket丢包问题

我计算了一些,基本上是1.7ms发送一个包,但计算密度也就8M/s。现在不都是100M网卡了吗而且不另外做文件读写,占用时间就不会漏包。


那可能是你的自己的程序的问题,我强烈的建议你用进程池和自己的缓冲(不是Socket的缓冲,Socket的缓冲是不够的)。
数据来了---》自己的环行缓冲区---》进程池中的进程进行文件读写。
数据的接受用一个进程来将他们放入环行缓冲区中,当环行缓冲区中的一块缓冲满了的时候,用信号量通知进程池来进行读写。

论坛徽章:
0
10 [报告]
发表于 2003-06-23 11:42 |只看该作者

socket丢包问题

但我刚才说了,如果是另外一个程序的读写其他的文件,与这个通讯程序完全无关也会造成漏包的。
   可能是因为系统调度到另一个任务,使得通讯程序慢了,所以丢包了。即使使用进程池,当系统调度到其他与此进程池无关的任务,占用了系统时间也会丢包的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP