Abstract:
Techniques are described for redundantly forwarding encapsulated multicast traffic of a multicast distribution tree, using reliable overlay connections established between adjacent nodes of the multicast distribution tree. An example router of this disclosure is configured to receive first multicast packets of a multicast flow via a multicast distribution tree, to receive second multicast packets of the multicast flow via a transmission control protocol (TCP) connection of a connection-oriented distribution tree implemented in parallel to the multicast distribution tree, and in response to determining that the LHR has received a multicast packet of the first multicast packets via the multicast distribution tree out of order to create a gap of one or more of the first multicast packets for the multicast flow, forward, to at least one interested receiver positioned downstream of the router, the second multicast packets.
Abstract:
This application describes techniques for replicating data at a primary routing engine of a network device before processing the data at a transport layer of the primary routing engine, wherein the data is to be sent to a routing peer via a routing communication session, and sending the replicated data to a secondary routing engine of the network device to be processed at a transport layer of the secondary routing engine. The secondary routing engine, in response to detecting that a socket buffer for buffering the replicated data has reached a predefined high occupancy threshold, outputs a notification to the primary routing engine. In response to receiving the notification, an application-layer routing process of the primary routing engine refrains from sending at least some of a plurality of routing updates to the routing peer, and continues to send keepalive messages for the routing communication session to the routing peer.
Abstract:
An example network device includes a primary node and a standby node. The primary node engages in a routing session with a peer network device via a connected socket. The standby node includes one or more processors implemented in circuitry and configured to execute a backup replication module to receive, from the primary node, data to be written to a backup socket for the connected socket, and, in response to a switchover, to send a representation of the data to the peer network device via the backup socket.
Abstract:
In one example, a system comprises a plurality of non-last-hop routers (non-LHRs) of a network, the non-LHRs configured with a multicast distribution tree for a multicast group to transport first multicast packets of a multicast flow toward one or more LHRs, wherein a router of the non-LHR routers is configured to receive unicast packets for an application session associated with the multicast group, encapsulate the unicast packets in a multicast header to generate the first multicast packets for distribution using the multicast distribution tree, and output the first multicast packets; and the one or more LHRs, wherein the one or more LHRs are interested receivers of the multicast group, and wherein the one or more LHRs are configured to receive the first multicast packets of the multicast flow, extract the unicast packets for the application session, and send the unicast packets to one or more clients of the application session.
Abstract:
The techniques include communicating a plurality of TCP data segments from different TCP connections as a single TCP data segment via a TCP gateway connection. For example, network host devices of autonomous systems may ordinarily transfer TCP data segments across dedicated TCP connections. An Autonomous System Boundary Router (ASBR) on one end of the TCP gateway connection may intercept TCP data segments from different TCP connections and may append the TCP data segments as a single appended TCP data segment and communicated via the TCP gateway connection. An ASBR on the other end of the TCP gateway connection may separate TCP data segments from the appended TCP data segment and determine, based on connection flow information, the TCP connections associated with each of the separated TCP data segments. The ASBR may then forward the separated TCP data segments to their original destinations.
Abstract:
System and method for processing heartbeat messages. A first network device receives heartbeat response messages from two or more of a plurality of network devices. Each heartbeat response message respectively corresponds to one network device of the plurality of network devices. The first network device processes the received heartbeat response messages in kernel space and determines, for each of the plurality of heartbeat response messages, an index value identifying the network device that sent the respective heartbeat response message. The first network device updates heartbeat response message fields in a health check data structure in kernel space based on the generated index values and subsequently processes, in a user space, information received from at least one of the heartbeat response message fields of the health check data structure to obtain health status associated with one or more of the plurality of network devices.
Abstract:
Techniques are described for redundantly forwarding encapsulated multicast traffic of a multicast distribution tree, using reliable overlay connections established between adjacent nodes of the multicast distribution tree. An example router of this disclosure is configured to receive first multicast packets of a multicast flow via a multicast distribution tree, to receive second multicast packets of the multicast flow via a transmission control protocol (TCP) connection of a connection-oriented distribution tree implemented in parallel to the multicast distribution tree, and in response to determining that the LHR has received a multicast packet of the first multicast packets via the multicast distribution tree out of order to create a gap of one or more of the first multicast packets for the multicast flow, forward, to at least one interested receiver positioned downstream of the router, the second multicast packets.
Abstract:
In one example, a network device includes a plurality of interface cards to send and receive packets over a network, a primary control unit of the network device, and a secondary control unit of the network device configured to detect a failover event that causes the network device to failover from the primary control unit to the secondary control unit. An operating system of the secondary control unit may be configured to send, in response to detecting the failover event, a session maintenance message on each of a plurality of application-level communication sessions in accordance with a prioritized data structure having a plurality of hierarchically arranged nodes, each of the nodes associated with a different subset of the communication sessions having a common session timeout value.
Abstract:
A secondary routing device is configured as a backup routing device for a primary routing device. The primary routing device performs asynchronous socket replication with the secondary routing device. The secondary routing device includes a transmission buffer, in memory, for storing replicated socket data transmitted between the primary routing device and the standby routing device and one or more processors implemented in circuitry and configured to execute a replication driver to: determine a threshold value; determine that an amount of data equaling or exceeding the threshold value has been read from the transmission buffer; in response to determining that the amount of data equaling or exceeding the threshold value has been read from the transmission buffer, schedule a window update for the transmission buffer at a scheduled time; and send the window update at the scheduled time.
Abstract:
An example network device includes a primary node and a standby node. The primary node includes one or more processors implemented in circuitry and configured to execute an operating system providing an application space and a kernel space, execute a replication application in the application space to receive a write function call including data to be written to a socket of the operating system and to send a representation of the data to a replication driver executed in the kernel space, execute the replication driver to send the representation of the data to a replication module executed in the kernel space, and execute the replication module to send the representation of the data to the standby node and, after receiving an acknowledgement from the standby node, to send the data to the socket.