Recently I developed a packet sniffer in python using socket module. In order to do that, I created a socket of type raw. Then I started receiving and parsing packets.
My assumption was, by default, there is a raw socket on the operating system, which takes a packet and gives it to other modules to parse the packet. When I create a raw socket, it will be the second raw socket in the operating system.
My question is, are packets broadcasted to all of the raw sockets available in OS?? Because while using my packet sniffer I can see packets that are related to other applications (e.g browser). That means those packets are going through at least two sockets. One of them is my packet sniffer, and the other is the real application. Is that right?