Hello Everyone!
Today, we will briefly discuss about the broadcast algorithms in practice.
Broadcast protocols are used in practice at both the application and network layers.
Gnutella uses application-level broadcast in order to broadcast queries for content among Gnutella peers. Here, a link between two distributed application-level peer processes in the Gnutella network is actually a TCP connection.
Gnutella uses a form of sequence-number-controlled flooding in which a 16-bit identifier and a 16-bit payload descriptor (which identifies the Gnutella message type) are used to detect whether a received broadcast query has been previously received, duplicated, and forwarded. Gnutella also uses a time-to-live (TTL) field to limit the number of hops over which a flooded query will be forwarded.
When a Gnutella process receives and duplicates a query, it decrements the TTL field before forwarding the query. Thus, a flooded Gnutella query will only reach peers that are within a given number (the initial value of TTL) of application-level hops from the query initiator. Gnutella's flooding mechanism is thus sometimes referred to as limited-scope flooding.
A form of sequence-number-controlled flooding is also used to broadcast link-state advertisements (LSAs) in the OSPF routing algorithm, and in the Intermediate-System-to-Intermediate-System (IS-IS) routing algorithm.
OSPF uses a 32-bit sequence number, as well as a 16-bit age field to identify LSAs. A OSPF node broadcasts LSAs for its attached links periodically, when a link cost to a neighbor changes, or when a link goes up/down. LSA sequence numbers are used to detect duplicate LSAs, but also serve a second important function in OSPF.
With flooding, it is possible for an LSA generated by the source at time t to arrive after a newer LSA that was generated by the same source at time t + d. The sequence numbers used by the source node allow an older LSA to be distinguished from a newer LSA. The age field serves a purpose similar to that of a TTL value. The initial age field value is set to zero and is incremented at each hop as it is flooded, and is also incremented as it sits in a router’s memory waiting to be flooded.
Designing LSA broadcast protocols can be very tricky business indeed.
You're welcome to leave a message and exchange in the comment area!

