# Package org.jgroups.protocols

Provides implementations of transport protocols which are responsible for sending and receiving messages to/from the network.

See: Description

Interface Summary
Interface | Description
--- | ---
TP.Bundler |
TP.ProbeHandler |
TUNNEL.TUNNELPolicy |

Class Summary
Class | Description
--- | ---
AUTH | The AUTH protocol adds a layer of authentication to JGroups
AuthHeader | AuthHeader is a holder object for the token that is passed from the joiner to the coordinator
BARRIER | All messages up the stack have to go through a barrier (read lock, RL).
BasicTCP | Shared base class for tcpip protocols
BPING | Broadcast PING.
BSH | Beanshell (www.beanshell.org) interpreter class.
CENTRAL_EXECUTOR | This is a central executor service where each request is sent to the coordinator for either a task or a current waiting thread.
CENTRAL_LOCK | Implementation of a locking protocol which acquires locks by contacting the coordinator.
COMPRESS | Compresses the payload of a message.
COMPRESS.CompressHeader |
DAISYCHAIN | Implementation of daisy chaining.
DAISYCHAIN.DaisyHeader |
DELAY | Delays incoming/outgoing messages by a random number of milliseconds (range between 0 and n where n is determined by the user).
DELAY_JOIN_REQ | Discards 2 JOIN-REQs then accepts 1, then discards 2 more and so on
DISCARD | Discards up or down messages based on a percentage; e.g., setting property 'up' to 0.1 causes 10% of all up messages to be discarded.
DISCARD_PAYLOAD | Discards a message whose sequence number (in the payload, as a Long) matches seqno 2 times, before passing it down.
DISCARD.DiscardHeader |
Discovery | The Discovery protocol layer retrieves the initial membership (used by the GMS when started by sending event FIND_INITIAL_MBRS down the stack).
Discovery.Responses |
DUPL | Duplicates outgoing or incoming messages by copying them
ENCRYPT | ENCRYPT layer.
ENCRYPT.EncryptHeader |
EXAMPLE | Example of a protocol layer.
Executing | This is the base protocol used for executions.
Executing.ExecutorHeader |
Executing.Owner |
Executing.Request |
FC | Simple flow control protocol based on a credit system.
FcHeader | Header used by various flow control protocols
FD | Failure detection based on simple heartbeat protocol.
FD_ALL | Failure detection based on simple heartbeat protocol.
FD_ALL.HeartbeatHeader |
FD_ICMP | Protocol which uses InetAddress.isReachable() to check whether a given host is up or not, taking 1 argument; the host name of the host to be pinged.
FD_PING | Protocol which uses an executable (e.g.
FD_PING.Pinger |
FD_SIMPLE | Simple failure detection protocol.
FD_SIMPLE.FdHeader |
FD_SOCK | Failure detection protocol based on sockets.
FD_SOCK.FdHeader |
FD.FdHeader |
FILE_PING | Simple discovery protocol which uses a file on shared storage such as an SMB share, NFS mount or S3.
FlowControl | Simple flow control protocol based on a credit system.
FRAG | Fragmentation layer.
FRAG2 | Fragmentation layer.
FragHeader |
HDRS | Example of a protocol layer.
HTOTAL | Implementation of UTO-TCP as designed by EPFL.
HTOTAL.HTotalHeader |
JDBC_PING | Discovery protocol using a JDBC connection to a shared database.
Locking | Base locking protocol, handling most of the protocol communication with other instances.
Locking.LockingHeader |
Locking.Request |
LOOPBACK | Makes copies of outgoing messages, swaps sender and receiver and sends the message back up the stack.
MERGE2 | Protocol to discover subgroups; e.g., existing due to a network partition (that healed).
MERGE3 | Protocol to discover subgroups; e.g., existing due to a network partition (that healed).
MERGE3.CoordAnnouncement |
MERGEFAST | The coordinator attaches a small header with its view to each (or every nth) message.
MERGEFAST.MergefastHeader |
MFC | Simple flow control protocol based on a credit system.
MPING | Uses its own IP multicast socket to send and receive discovery requests/responses.
PEER_LOCK | Implementation of a locking protocol which acquires locks by contacting all of the nodes of a cluster.
PERF_TP | Measures the time for a message to travel from the channel to the transport
PING | The PING protocol layer retrieves the initial membership (used by the GMS when started by sending event FIND_INITIAL_MBRS down the stack).
PingData | Encapsulates information about a cluster node, e.g.
PingHeader |
PRIO | This protocol will provide message sending and receiving prioritization.

PrioHeader

This Header class is used in conjunction with the PRIO protocol to prioritize message sending/receiving Priority values are from 0 to 255 where 0 is the highest priority Example of setting a message priority: `// Create a message to send to everyone Message message = new Message( null, null, messagePayload ); // Add the priority protocol header PrioHeader header = new PrioHeader( 1 ); short protocolId = ClassConfigurator.getProtocolId(PRIO.class); message.putHeader( protocolId, header);`

RATE_LIMITER | Protocol which sends at most max_bytes in time_period milliseconds.
RELAY | Simple relaying protocol: RELAY is added to the top of the stack, creates a channel to a bridge cluster, and - if coordinator - relays all multicast messages via the bridge cluster to the remote cluster. This is not a big virtual cluster, e.g.
RELAY.RelayHeader |
RELAY.ViewData | Contains local and remote views, and UUID information
S3_PING | Discovery protocol using Amazon's S3 storage.
SCOPE | Implements https://jira.jboss.org/jira/browse/JGRP-822, which allows for concurrent delivery of messages from the same sender based on scopes.
SCOPE.MessageQueue |
SCOPE.ScopeHeader |
SEQUENCER | Implementation of total order protocol using a sequencer.
SEQUENCER.SequencerHeader |
SFC | Deprecated
SFC.Header |
SHARED_LOOPBACK | Loopback transport shared by all channels within the same VM.
SHUFFLE | Reorders messages by buffering them and shuffling the result after TIMEOUT ms.
SIZE | Protocol which prints out the real size of a message.
SMACK | Simple Multicast ACK protocol.
SMACK.SmackHeader |
STATS | Provides various stats
STOMP | Protocol which provides STOMP (http://stomp.codehaus.org/) support.
STOMP.Frame |
STOMP.StompHeader |
TCP | TCP based protocol.
TCP_NIO | Transport using NIO
TCPGOSSIP | The TCPGOSSIP protocol layer retrieves the initial membership (used by the GMS when started by sending event FIND_INITIAL_MBRS down the stack).
TCPPING | The TCPPING protocol layer retrieves the initial membership in answer to the GMS's FIND_INITIAL_MBRS event.
TP | Generic transport - specific implementations should extend this abstract class.
TP.ProtocolAdapter | Used when the transport is shared (singleton_name is not null).
TpHeader | Generic transport header, used by TP.
TRACE |
TransportedVectorTime | Lighweight representation of the VectorTime clock suitable for network transport
TUNNEL | Replacement for UDP.
UDP | IP multicast transport based on UDP.
UFC | Simple flow control protocol based on a credit system.
UNICAST | Reliable unicast layer.
UNICAST.UnicastHeader | The following types and fields are serialized:
UNICAST2 | Reliable unicast layer.
UNICAST2.Unicast2Header | The following types and fields are serialized:
VERIFY_SUSPECT | Catches SUSPECT events traveling up the stack.
VERIFY_SUSPECT.VerifyHeader |
VIEW_SYNC | Periodically sends the view to the group.
VIEW_SYNC.ViewSyncHeader |

Enum Summary
Enum | Description
--- | ---
Executing.Type |
Locking.Type |
RELAY.RelayHeader.Type |
STOMP.ClientVerb |
STOMP.ServerVerb |
STOMP.StompHeader.Type |

## Package org.jgroups.protocols Description

Provides implementations of transport protocols which are responsible for sending and receiving messages to/from the network.