- 主题:大量发送 UDP 包,怎么提高到达率?
我使用 forloop(256 * 256) 循环发送从 192.168.1.0 到 192.168.254.254 所有主机一台一个数据包,发现经常会丢掉几个包,导致有开机的 IP 没有接收到。是因为发送速度太快没有停顿吗?有没有什么办法提高到达率?比如确认 TCP/IP 层已经发送出去了,再发送另外一个包?
--
FROM 183.253.147.*
要保证不丢包,不就变成了TCP吗?
【 在 hgoldfish 的大作中提到: 】
: 我使用 forloop(256 * 256) 循环发送从 192.168.1.0 到 192.168.254.254 所有主机一台一个数据包,发现经常会丢掉几个包,导致有开机的 IP 没有接收到。是因为发送速度太快没有停顿吗?有没有什么办法提高到达率?比如确认 TCP/IP 层已经发送出去了,再发送另外一个包?
--
FROM 1.203.163.*
1,用什么工具发送的udp啊?
2,用什么工具抓包确认的?
3,抓包确认是本机没有发出还是对端某些机器收到没有回复?
【 在 hgoldfish 的大作中提到: 】
: 我使用 forloop(256 * 256) 循环发送从 192.168.1.0 到 192.168.254.254 所有主机一台一个数据包,发现经常会丢掉几个包,导致有开机的 IP 没有接收到。是因为发送速度太快没有停顿吗?有没有什么办法提高到达率?比如确认 TCP/IP 层已经发送出去了,再发送
: ..................
发自「今日水木 on iPhone 11」
--
FROM 39.144.40.*
参考TCP的实现,实现得越完整到达率越高。
【 在 hgoldfish 的大作中提到: 】
: 我使用 forloop(256 * 256) 循环发送从 192.168.1.0 到 192.168.254.254 所有主机一台一个数据包,发现经常会丢掉几个包,导致有开机的 IP 没有接收到。是因为发送速度太快没有停顿吗?有没有什么办法提高到达率?比如确认 TCP/IP 层已经发送出去了,再发送
: ..................
发自「今日水木 on Android」
--
FROM 123.118.2.*
用 UDP 广播或组播可以不?
程序确认了上一时刻 TCP 发送成功,不能保证后续的 UDP 数据报发送成功。不要用错误的思路来搞网络编程。相对可靠的方法是在协议层做重传和去重机制。
--
修改:wmjordan FROM 113.71.218.*
FROM 113.71.218.*
写一个重传机制出来
【 在 hgoldfish 的大作中提到: 】
: 我使用 forloop(256 * 256) 循环发送从 192.168.1.0 到 192.168.254.254 所有主机一台一个数据包,发现经常会丢掉几个包,导致有开机的 IP 没有接收到。是因为发送速度太快没有停顿吗?有没有什么办法提高到达率?比如确认 TCP/IP 层已经发送出去了,再发送
: ..................
发自「今日水木 on iPhone 12 mini」
--
FROM 223.104.41.*
其实我就是想模拟 UDP 广播。想做一个机器间的自动发现,只要我的节点一上线,我就朝着所有 IP 都发个包。它们接到包就来连接我这个节点。但是最近发现这个功能经常不成功。对方没有发到包。
以前就用 UDP 广播,但是跨不了网段。所以我干脆遍历网段把那个网段里面所有的 IP 地址都发一遍。结果发现效果也不怎么样。
【 在 wmjordan 的大作中提到: 】
: 用 UDP 广播或组播可以不?
: 程序确认了上一时刻 TCP 发送成功,不能保证后续的 UDP 数据报发送成功。不要用错误的思路来搞网络编程。相对可靠的方法是在协议层做重传和去重机制。
--
FROM 59.60.24.*
我的用法就是节点的自动发现,不需要 TCP 那样。
其实我还用了多播和广播。
【 在 wudashu 的大作中提到: 】
: 参考TCP的实现,实现得越完整到达率越高。
: 发自「今日水木 on Android」
--
FROM 59.60.24.*
你用组播呀
【 在 hgoldfish 的大作中提到: 】
: 其实我就是想模拟 UDP 广播。想做一个机器间的自动发现,只要我的节点一上线,我就朝着所有 IP 都发个包。它们接到包就来连接我这个节点。但是最近发现这个功能经常不成功。对方没有发到包。
: 以前就用 UDP 广播,但是跨不了网段。所以我干脆遍历网段把那个网段里面所有的 IP 地址都发一遍。结果发现效果也不怎么样。
:
--
FROM 1.119.194.*
凡是做通信要可靠,就不能假设任何事情能顺顺利利一次成功,每个环节都可能出问题。“每个环节”。
【 在 hgoldfish 的大作中提到: 】
: 其实我就是想模拟 UDP 广播。想做一个机器间的自动发现,只要我的节点一上线,我就朝着所有 IP 都发个包。它们接到包就来连接我这个节点。但是最近发现这个功能经常不成功。对方没有发到包。
: 以前就用 UDP 广播,但是跨不了网段。所以我干脆遍历网段把那个网段里面所有的 IP 地址都发一遍。结果发现效果也不怎么样。
:
--
FROM 113.71.216.*