Say, for example, that I'm part of a multicast group on 239.255.10.10. I'm also connected to two separate networks, one that has a 192.168.0.* and the other 192.168.1.* addressing. Both networks have a clients that is listening for incoming connections and are part of the above mentioned multicast group (because my client has it hardcoded).
When My computer sends out some data to that multicast group, will it be sent out on both networks or will there be some sort of error?
As long as those clients have registered interest in the group via IGMP, they should both receive the data. However, if there is a router between those networks that the multicast data must traverse, it needs to be configured to pass the data. If your computer is the one connected to both networks, it should just work.
Related
Network disconnect issue happens in a system of my company.
Here is the network topolgy:
PC1: two NICs, both static IP address. Data: 10.10.22.11, Control: 10.10.22.10
PC2: two NICs, both static IP address. Data: 10.10.22.101, Control: 10.10.22.100
Default Gateway 10.10.22.11 is set on both side. However I don't think this is necessary, as there is no router or gateway between the two PCs, there directly linked.
A consultant point out, since all the IPs are set in same segment 10.10.22, there could be broadcast storm, which might be the cause of network disconnect.
Is this true? Can broadcast storm happen in directly linked two PCs?
No it shouldn't be.
Broadcast storms happen when there is a loop in a network.
A packet is forwarded to all ports in a switch and if there is a loop the packets are again sent to the same switch on all ports, amplifying the storm, if there is no network loop there shouldn't be any storm.
I don't see any loop in your configuration so this shouldn't be any broadcast storm.
Identifying broadcast storm is not so hard, just sniff on an interface on the network, and if you see millions of times the same broadcast packet, it should be a broadcast storm.
I understand that it's different than a hub in that instead of packets being broadcasted to all devices connected to the device, it knows exactly who requested the packet by looking at the MAC layer.
However, is it still possible to use a packet sniffer like Wireshark to intercept packets meant for other users of the switch? Or is this only a problem with ethernet hubs that doesn't affect switches due to the nature of how a switch works?
On a slightly off topic side note, what exactly is classified as a LAN? For example, imagine two separate ethernet switches are hooked up to a router. Would each switch be considered a separate LAN? What is the significance of having multiple LAN's within the same network?
it knows exactly who requested the packet by looking at the MAC layer.
More exactly, the switch uses the MAC destination address to forward a frame to the port associated with that address. Addresses are automatically learned by looking at the MAC source address on received frames.
A switch is stateless, ie. is has no memory who requested which data. A layer-2 switch also has no understanding of IP packets, addresses or protocols. All a basic switch does is learn source addresses and forward by destination address.
is it still possible to use a packet sniffer like Wireshark to intercept packets meant for other users of the switch?
Yes. You'll need a managed switch supporting port mirroring or SPANning. This doesn't intercept frames, it just copies them to the mirror port. If you need to actually intercept frames you have to put your interceptor in between the nodes (physically or logically).
With a repeater hub, every bit is repeated to every node in the collision domain, making monitoring effortless.
what exactly is classified as a LAN?
This depends on who you ask and on the context. A LAN can be a layer-1 segment/bus aka collision domain (obsolete), a layer-2 segment (broadcast domain), a layer-3 subnet (mostly identical with an L2 segment) or a complete local network installation (when contrasted with SAN or WAN).
Adding to #Zac67:
Regarding this question:
is it still possible to use a packet sniffer like Wireshark to
intercept packets meant for other users of the switch?
There are also active ways in which you can trick the Switch into sending you data that is meant for other machines. By exploiting the Switch's mechanism, one can send a frame with a spoofed source MAC, and then the Switch will transfer frames destined to this MAC - to the sender's port (until someone else sends a frame with that MAC address).
This video discusses this in detail:
https://www.youtube.com/watch?v=YVcBShtWFmo&list=PL9lx0DXCC4BMS7dB7vsrKI5wzFyVIk2Kg&index=18
In general, I recommend the following video that explains this in detail and in a visual way:
https://www.youtube.com/watch?v=Youk8eUjkgQ&list=PL9lx0DXCC4BMS7dB7vsrKI5wzFyVIk2Kg&index=17
what exactly is classified as a LAN?
So indeed this is one of the least-well-defined terms in Computer Networks. With regards to the Data Link Layer, a LAN can be defined as a segment, that is - a broadcast domain. In this case, two devices are regarded as part of the same segment iff they are one hop away from one another - that is, they can switch frames in the second layer.
I want to know if there's a downside of architecting a multicast pub-sub like system in the way described below:
Problem
There are about 30 applications that need to listen to certain events
There is 1 server that is receiving events from across the network [let's call it PRODUCER]
The 30 applications may be interested in one or more of the 30 events
Solution
we can assign each topic to a multicast group (defined by an IP in the multicast ip range)
For each event received by the PRODUCER it multicasts on the relevant channel/group
The subscribers subscribe to each multicast group/channel that they are interested in
My questions are
Is there any overhead in this design as opposed to having each subscriber listening to ALL events and having the PRODUCER send to a single channel - in other words, does sending on multiple channels have a downside?
For UDP Multicast, my understanding is that a group is defined by an IP address (and not the port). Then what is the relevance of a port in specifying a group/endpoint?
I'm having trouble understanding how multicast addresses work.
First off, is it true that if I have N clients or peers working on separate networks, they all subscribe to the same multicast group, and this group allows any source to send messages, these peers/hosts can all communicate to each other through this group? (sounds like black magic!)
Second, I've heard hints that the IANA controls/regulates the multicast addresses. So do you have to request / ask IANA for a specific multicast address for your project / company? How does this work? Am I mistaken? Can you clarify multicast networking for me?
Thanks much!
Firstly, multicast only works if the routers in the network support it. The IGMP protocol is used for this purpose: http://en.wikipedia.org/wiki/Internet_Group_Management_Protocol. Assuming you have N clients on separate networks connected by multicast capable routers, then they could send messages to a multicast address and other peers that have subscribed to that multicast address will then receive those messages. You can read up further on multicast on Wikipedia.
I think you're confusing IEEE with IANA, the Internet Assigned Numbers Authority (IANA). Have a look at http://www.iana.org/assignments/multicast-addresses/multicast-addresses.xml for multicast address assignments.
Hi i am on creating streaming application. in that i am using IP Multicasting.
Tell me how to validate the client before adding it in the group.
is that anything i have to do with IGMP?
You don't do it with your application.
IGMP is an internet layer protocol, it may not even reach your application.
Whenever a unit wants to receive multicast to a certain address, it sends an IGMP request to join a group. A router receives the request and remembers that this user wants to belong to this group.
Whenever the router receives a multicast packed destined for that address, it routes it to all the group members, possibly taking some access control restrictions into account.
All group manupulation is performed by routers. You just send your UDP packets to a multicast address (that is 224/4), and the routers decide whether to route it to a subscriber.
If you want to limit destinations where your multicast packets go, you do it on routers.
You should understand though, that the word "routes" above means that the router emits the packet into appripriate interface with a multicast destination address in Ethernet header and multicast destination address in IP header. An Ethernet switch attached to the interface, if any, will distribute the packet over all active ports. Since it knows nothing about internet routing, it will just see the broadcast/multicast bit set in the Ethernet header and act accordingly.
There are, though, some link layer devices (Ethernet switches) who peek into network layer headers and limit multicast to the subscribed units. That is called IGMP snooping. Some of them can also be capable to control access.
OK, there is a legitimate need to control who can join a multicast group. The only way I can see that being done is by filtering IGMP packets inbound on the router interfaces. This would work if the list of "allowed subscribers" is sufficiently static, but if there's a lot of changes, it would rapidly become untenable.
If (and only if) there's administrative control all the way down to a "customer-placed" router, I suspect something could be done there, to limit the groups that device has visibility of, but that is heavily dependent of environment (in a "broadband and multicast video from a single provider" scenario, a contractual requirement for using a provider-managed DSL router would be possible).
In addition to Quassnoi's comments on how multicast works, I have to wonder... Why do you want to restrict multicast membership and/or validate the recipient before having it added to the group?