- 主题:大量发送 UDP 包,怎么提高到达率?
我使用 forloop(256 * 256) 循环发送从 192.168.1.0 到 192.168.254.254 所有主机一台一个数据包,发现经常会丢掉几个包,导致有开机的 IP 没有接收到。是因为发送速度太快没有停顿吗?有没有什么办法提高到达率?比如确认 TCP/IP 层已经发送出去了,再发送另外一个包?
--
FROM 183.253.147.*
其实我就是想模拟 UDP 广播。想做一个机器间的自动发现,只要我的节点一上线,我就朝着所有 IP 都发个包。它们接到包就来连接我这个节点。但是最近发现这个功能经常不成功。对方没有发到包。
以前就用 UDP 广播,但是跨不了网段。所以我干脆遍历网段把那个网段里面所有的 IP 地址都发一遍。结果发现效果也不怎么样。
【 在 wmjordan 的大作中提到: 】
: 用 UDP 广播或组播可以不?
: 程序确认了上一时刻 TCP 发送成功,不能保证后续的 UDP 数据报发送成功。不要用错误的思路来搞网络编程。相对可靠的方法是在协议层做重传和去重机制。
--
FROM 59.60.24.*
我的用法就是节点的自动发现,不需要 TCP 那样。
其实我还用了多播和广播。
【 在 wudashu 的大作中提到: 】
: 参考TCP的实现,实现得越完整到达率越高。
: 发自「今日水木 on Android」
--
FROM 59.60.24.*
我在做 UDP 广播服务发现。不是普通的传输。
【 在 freyoneby 的大作中提到: 】
: 用tcp就行,不要低估tcp的性能,如果你mtu支持jumbo包更好,像你這種局域網,發生重傳的概率很低,還可以用fastretransmission
--
修改:hgoldfish FROM 120.33.8.*
FROM 120.33.8.*