【发布时间】:2010-03-08 15:30:13
【问题描述】:
我正在实现一个 UDP 数据传输的东西。我有几个关于 UDP 缓冲区的问题。
我正在使用 UDPClient 进行 UDP 发送/接收。而我的宽带带宽是 150KB/s(bytes/s,不是 bps)。
我向 27 台主机发送了一个 500B 的数据报
27 台主机在收到 10KB 数据报后发回。
所以,我应该收到 27 条回复,对吧?但是,我平均只得到 8 - 12 个。
然后我尝试将响应的大小减小到 500B,是的,我收到了所有内容。
我的一个想法是,如果所有 27 台主机几乎同时发回 10KB 响应,则传入流量将是 270KB/s(可能),这超出了我的传入带宽,因此会发生丢失。我说的对吗?
但我认为即使传入的流量超过带宽,Windows 是否应该将数据报放入缓冲区并等待接收?
然后我怀疑我的 UdpClient 的 ReceiveBufferSize 可能太小了?默认是8092B??
我不知道我在这些方面是否还好。请给我一些帮助。
【问题讨论】:
-
500GB 数据报?你可能会发送什么,你的硬盘?
标签: c# sockets buffer udpclient