next up previous contents
Next: UDP Up: Advanced Concepts Previous: Using multiple channels   Contents

Transport protocols

A transport protocol refers to the protocol at the bottom of the protocol stack which is responsible for sending and receiving messages to/from the network. There are a number of transport protocols in JavaGroups. They are discussed in the following sections.

A typical protocol stack configuration using UDP is5.3:

  "UDP(mcast_addr=224.0.0.35;mcast_port=45566;ip_ttl=32;" +
      "mcast_send_buf_size=150000;mcast_recv_buf_size=80000):" +
  "PING(timeout=2000;num_initial_members=3):" +
  "MERGE2(min_interval=5000;max_interval=10000):" +
  "FD_SOCK:" +
  "VERIFY_SUSPECT(timeout=1500):" +
  "pbcast.STABLE(desired_avg_gossip=20000):" +
  "pbcast.NAKACK(gc_lag=50;retransmit_timeout=300,600,1200,2400,4800):" +
  "UNICAST(timeout=5000;min_wait_time=2000):" +
  "FRAG(frag_size=4096;down_thread=false;up_thread=false):" +
  "pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;" +
              "shun=false;print_local_addr=true)"

In a nutshell the properties of the protocols are:

UDP
Uses IP multicast for group messages and UDP packets for messages to individual members
PING
Uses IP multicast (by default) to find initial members. Once found, the current coordinator can be determined and a unicast JOIN request will be sent to it
MERGE2
Will merge subgroups back into one group
FD_SOCK
Failure detection based on sockets (in a ring form between members). Generates notification if a member fails
VERIFY_SUSPECT
Double-checks whether suspected member is really dead, otherwise suspicion generated from protocol below is discarded
pbcast.STABLE
Deletes messages that have been seen by all members (distributed message garbage collection)
pbcast.NAKACK
Ensures (a) message reliability and (b) FIFO. Message reliability guarantees that a message will be received. If not, receiver will request retransmission. FIFO guarantees that all messages from sender P will be received in the order P sent them
UNICAST
Same as NAKACK for unicast messages: messages from sender P will not be lost (retransmission if necessary) and will be in FIFO order (essentially the same as TCP in TCP/IP, without the flow control)
FRAG
Fragments large messages into smaller ones and reassembles them back at the receiver side. For both multicast and unicast messages
pbcast.GMS
Membership protocol. Responsible for joining/leaving members and installing new views.



Subsections
next up previous contents
Next: UDP Up: Advanced Concepts Previous: Using multiple channels   Contents
Bela Ban 2002-11-16