C 使用套接字将数据包发送到另一个子网/网络
我试图找出网络中的机器是否运行某个应用程序。更像是,我试图解析网络中节点的地址 我构建了一个基于ARP的小代码,但它只在本地网络(同一子网)上工作。我要做的是解析子网之外的地址,即所有其他节点 我读了这些答案: 及 但他们都在谈论改变路由器设置或创建多播网络C 使用套接字将数据包发送到另一个子网/网络,c,sockets,networking,C,Sockets,Networking,我试图找出网络中的机器是否运行某个应用程序。更像是,我试图解析网络中节点的地址 我构建了一个基于ARP的小代码,但它只在本地网络(同一子网)上工作。我要做的是解析子网之外的地址,即所有其他节点 我读了这些答案: 及 但他们都在谈论改变路由器设置或创建多播网络 从我读到的关于多播的内容来看,我需要事先创建一个多任务网络。真的有必要吗 对于更改路由器设置,它真的必须是“特殊”路由器吗 这是一个大学作业的全部,可能会在一个特别的网络或类似的东西上演示。 我愿意接受解决原始问题的想法 附言: 1.我是一
我做了一些研究,决定使用P2P架构。现在我一直想知道A是如何发现B的地址的。如果我知道B的子网,我可以强行找到B,但既然我没有这样的信息,我该怎么办 ARP不打算路由到本地网络之外,在IPv4中,“本地网络”通常对应于一个子网。您不应该期望ARP流量将路由器从内部传输到外部,反之亦然 类似地,UDP广播通常不会在本地网络之外传播,出于与安全性和通信量相关的原因,它们不会传播是件好事
如果您的意思是更改路由器设置以便在网络之间路由UDP广播,那么您确实需要一个公开此功能的路由器。但我敦促你们不要这样做,因为它会让来自所有其他来源的广播,出于所有其他原因,也通过路由器传输。至少,这将显著增加所有相关网络的噪音,但它可能会导致应用程序和服务的真正错误行为,而不是您的应用程序和服务。ARP不打算路由到本地网络之外,在IPv4中,“本地网络”通常对应于子网。您不应该期望ARP流量将路由器从内部传输到外部,反之亦然 类似地,UDP广播通常不会在本地网络之外传播,出于与安全性和通信量相关的原因,它们不会传播是件好事
255.255.255
,ARP请求将其用作目标地址,而ARP仅适用于本地LAN上的IPv4)无法跨越路由器,并且网络广播(最后一个网络地址,其中主机为所有网络地址)默认情况下无法跨越路由器(定向广播),因为这存在安全风险(请参阅)
一些路由器可以配置为转发定向广播,但这可能是危险的
多播是广播的一种形式。多播路由与单播路由非常不同,路径中的每个路由器都必须配置为多播路由。此外,主机必须先订阅多播组,然后才能侦听来自多播组的数据包。此外,还有一些所有主机都会侦听的多播组,但这些是无法从本地LAN转发的链路本地多播。有限的广播(255.255.255.255
,ARP请求将其用作目标地址,ARP仅在本地LAN上对IPv4有效)无法通过路由器,默认情况下,网络广播(最后一个网络地址,其中主机为所有网络地址)无法通过路由器(定向广播),因为这存在安全风险(请参阅)
可以配置一些路由器