当前位置:  技术问答>linux和unix

UDP和TCP带宽竞争处理问题

    来源: 互联网  发布时间:2016-10-03

    本文导语:  两台PC,都跑fedora10。 服务器端一个进程,启用3个线程,一个收UDP(只收,大量数据),两个收发TCP(少量控制命令)。 客户端一个进程,启用3个线程,一个UDP线程发数据(只发,大量数据),两个TCP线程收发(收...

两台PC,都跑fedora10。
服务器端一个进程,启用3个线程,一个收UDP(只收,大量数据),两个收发TCP(少量控制命令)。
客户端一个进程,启用3个线程,一个UDP线程发数据(只发,大量数据),两个TCP线程收发(收命令并对应服务端命令作出反馈等)。

带宽有限,当客户端往上发的UDP数据把带宽占满时,发现服务器无法通过TCP链路往下发送数据,调用send返回OK但客户端一直收不到。如果带宽比较宽裕,则不存在这样的问题。此时当服务器把tcp链路关闭时,客户端会一瞬间收到所有累计的tcp数据,然后关闭连接。

两边tcp socket都设置了nodelay。

麻烦各位大侠指点一下,怎么避免或者处理这种TCP完全发不动的情况。

我现在让UDP发20K就停30ms,貌似没啥影响。

|
限制udp流量。这个跟网络上面的p2p传输很像。很多公司都想禁止p2p传输都禁止不了的。最好能在自己的源头上面控制最好。
其实你说的那种情况就是丢包。

|
在同一台机器上是不是可以考虑以带外数据传送控制消息

|
用iptable限制一下服务器端udp对应的那个端口的流量试试。

这种带宽都被占完了那还有什么办法呢。

|
那试着减小TCP的缓冲区看看呢,将缓冲区大小设置为0
SO_SNDBUF    Sets send buffer size.
SO_RCVBUF    Sets receive buffer size.

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 服务器监听处理100台客户端的大量UDP请求,请问用什么方法好点呢?
  • {求救}socket编程处理udp广播
  • Qt:UDP:如何划分接收到的UDP包的界限
  • 数据库 iis7站长之家
  • http走的是tcp还是udp?ssh是tcp还是udp?
  • tcp和udp套接字有何不同?在什么情况下用tcp什么情况下用udp????
  • 50求教一个菜鸟级别的UDP套接字问题,关于UDP server端只能接收一次数据的问题?在线等,一直等............
  • udp方式抓取网页
  • python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
  • udp socket客户端和udp服务端程序示例分享
  • TCP与UDP通信问题!
  • 请问下怎么关闭SUSE 9.1下UDP的checksum?
  • 如何判断udp端口可达
  • 关于epoll&udp的问题?
  • UDP包怎么生成啊?用什么函数??简单问题,帮个忙哈
  • 对于socket UDP传输,一个端口只能被一个进程绑定?
  • IP,UDP,TCP的校验和计算
  • UDP协议在实现时有没有在发送端或者接收端设置缓冲区?
  • 基于UDP的数据传输 UDT
  • 服务进程收到的第一个UDP包的远端地址不对?
  • udp问题
  • 关于udp sendto时候端口选定问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3