我正在实现UDP数据传输。我有几个关于UDP缓冲区的问题。
我正在使用UDPClient进行UDP发送/接收。我的宽带带宽是150KB / s(字节/秒,而不是 bps )。
我向27个主机发送500B数据报
如果收到的话,27台主机会发回10KB数据报。
所以,我应该收到27条回复,对吗?但是,我平均只得到了8 - 12.
然后我尝试将响应的大小减少到500B,是的,我收到了所有。
我的想法是,如果所有27个主机几乎同时发回10KB响应,则传入流量将为270KB / s(可能),超过我的传入带宽,因此发生丢失。我是对的吗?
但我认为即使传入的流量超过带宽,Windows是否应该将数据报放入缓冲区并等待接收?
然后我怀疑我的UdpClient的ReceiveBufferSize可能太小了?默认情况下,它是8092B ??
我不知道在这些方面我是否可以。请给我一些帮助。
答案 0 :(得分:0)
UDP协议没有guaratnee传送,如果需要guaratnee数据包传送,则应切换到TCP。
UDP更适合丢失数据包的应用程序,而不是等待数据包找到它的方式。即流媒体或类似的流媒体。
有关详情,请参阅wikipedia。