

The computer would need to run some software like linux as a firewall/proxy/router and define all ports to different subnets like 192.168.1.0/31 192.168.2.0/31 <- this /31 means 255.255.255.254 which allows exactly two hosts. A poorman's version would be n+1 ethernet ports in a computer acting as a router and network switch where "n" is the number of pcs and the "+1" is the port going out to the internet. The VLAN will virtualize the collision domain and thus VLAN2 does not see VLAN3 unless defined in a layer3 router connecting both VLAN2 and VLAN3. However you would still need layer3 routing abilities to talk between VLANs. This would require hardware capable of layer2 switching and VLAN support at least. What you are asking for is VLANs or PVLANs (virtual or private lans). The same caveats as for broadcast traffic still apply, but this allows uninterested hosts to quickly identify your packets, and it allows network managers to set up specific forwarding rules for your protocol.255.255.255.255 is a broadcast address same as 0.0.0.0 if you want two endpoints the subnet mask would be 255.255.255.254 (however this still won't do what you are asking. My other suggestion would be to use multicast, if that makes sense for your application. Selecting an interface explicitly is better, but needs to be done carefully.


In general, using 255.255.255.255 is a bad idea, as there are several setups where the interface with the default route is exactly the wrong choice. In both cases, these should be mapped to the network layer broadcast address (which would be FF:FF:FF:FF:FF:FF for Ethernet). The subnet broadcast address is used to select a specific interface.

In practice, there are almost no routers forwarding broadcasts, and a lot of stacks simply send one copy of the packet to the interface where the default route points to. In principle, 255.255.255.255 is the "global" broadcast address, which means that the IP stack is supposed to send the packet to all network interfaces, and routers that are configured to forward broadcasts are supposed to send them on. If your network is 192.168.0.0/16, then your network address will be 192.168.0.0 and your broadcast address will be 192.168.255.255.Ģ55.255.255.255 is a special broadcast address, which means "this network": it lets you send a broadcast packet to the network you're connected to, without actually caring about its address in this, is similar to 127.0.0.1, which is a virtual address meaning "local host". If your network is 192.168.1.0/24, then your network address will be 192.168.1.0 and your broadcast address will be 192.168.1.255. A broadcast address is always relative to a given network, there is no broadcast per se when you have a network, you can compute its broadcast address by replacing all the host bits with 1s simply put, the broadcast address is the highest numbered address you can have on the network, while the network address is the lowest one (with all host bits set to 0s) this is why you can't use either of them as actual host addresses: they are reserved for this use.
