首页 文章

无法接收UDP广播包

提问于
浏览
0

我有2个盒子: - 一个嵌入式设备(带有linux的ARM Omap),我称之为“ Omap ” . - a PC (可以是Windows或Linux) .

场景1

两个盒子都在同一个网络中(例如:我的办公室) .
Omap从DHCP服务器获取其地址(例如:192.168.10.110) . PC始终具有相同的地址(例如192.168.10.104) .
我可以在任何端口上成功交换UDP广播包 .
成功 .

情景2

这2个框位于网络 withOUT DHCP服务器中 .
PC具有静态IP地址(例如:10.10.10.20) .
Omap启动,查找DHCP服务器,找不到它,并且处于我称之为"bad IP address"状态的状态 .
现在......从Omap广播UDP数据包起作用:PC可以看到它们 .
相反的方法不起作用:Omap看不到PC广播的UDP数据包 . 我在另一台PC上使用Wireshark来验证数据包是否正在发送 .
失败 .

我试图改变Omap的ip地址(使用ifconfig)......没有运气 .

我错过了什么?

为了完成图片,当Omap在场景2中时,如果我运行udhcpc ...它可以与DHCP服务器通信并获得IP地址 . 我也看到了Wireshark的数据包 . 这意味着DHCP客户端能够广播UDP数据包 . (是的,我尝试使用DHCP端口67/68,但它不起作用) .

我正在使用Boost C Asio UDP套接字 . 具体来说,我拿了多播示例并将其更改为进行广播 .

任何帮助表示赞赏 .

谢谢,Benedetto

PS:一些澄清 .

Omap设备是一个嵌入式设备,我的目标是客户不必在现场设置其IP地址 . 这就是我与PC交换广播数据包的原因,以便从我在PC上运行的其他软件中获取"good" IP地址(即使在具有静态IP地址且没有DHCP服务器的网络中,也知道当前子网是什么) .

我实际上实现了一个非常简单的DHCP协议 . PC可以监听Omap广播的数据包,但反之亦然 .

2 回答

  • 0

    一些想法......

    1)ifconfig eth0 - 接口是否正常,是否有IP地址,合适的网络掩码等?

    2)路由 - 配置是否正确? (Netstat -r或route)(如果IP地址位于不同的未路由子网上,这可能是一个问题,具体取决于网络掩码 . )

    3)防火墙 - 我无法告诉你有多少时间我遇到了防火墙问题 . 确认它没有在那里停止 .

    4)直接在各自的系统上尝试tcpdump - 它显示了什么?什么是通过?

    5)你能从一个系统ping到另一个系统吗? (ICMP可能有不同于UDP的规则 . )

    (我打赌在下行界面,不同的子网被网络掩码阻止,或者没有路由来解决主机问题 . )

  • 0

    如果您使用 ifconfig 设置IP地址,则可能不够 . 通常,您还必须配置路由表,通常包括添加两个路由:一个说“此网络附加在 eth0 " and one saying "这是默认网关” . (后者不是严格要求的 . )

    "Network is unreachable" - 我假设您试图从OMap ping PC?如果你的电脑是 192.something.something.something ,你的"OMap"有路由表你的评论:

    Destination  Gateway  Genmask    Flags  MSS  Window  irtt  Iface
    10.0.0.0     *        255.0.0.0  U      0    0       0     eth0
    

    ...那么它将无法发送 . 只有当你尝试将事情发送到 10.something 时,该路由表才有效:那个's the only route it knows. If you'没有运行 10.0.0.0/8 网络,那么该路由是错误的 .

    如果要执行此操作,请在路由表,IP地址等上查找一些材料 . 虽然,如果你想拥有普通人"plug it in" - 他们这么错了吗?你可以't just pick an IP address on a network without some form of mediation: Either a human mediates, and sets it manually, or you use something like a DHCP server. Otherwise, you could be picking somebody else'的地址 . 此外,你需要知道你是在一个 10.0.0.0/8 网络,一个网络,一些其他局域网,还是互联网... DHCP为你做的......

相关问题