The present invention falls within the communications sector, as well as the electronic device and/or computer applications sector, which establish communications between transparent network bridges.
Protocols are known that establish paths known as Fast-Path and ARP-Path [G. Ibanez, J. A. Carral, A. Garcia-Martinez, J. M. Arco, D. Rivera, and A. Azcorra, “Fast Path Ethernet Switching: On-demand, Efficient Transparent Bridges for Data Center and Campus Networks”, 17° IEEE Workshop on Local and Metropolitan Area Networks (LANMAN), New Jersey, USA, May 2010.] [G. Ibáñez, J. A. Carral, J. M. Arco, D. Rivera, and A. Montalvo. “ARP Path: ARP-Based, Shortest Path Bridges”. IEEE Communications Letters, 2011, pg. 770-772], which establish paths by means of the simultaneous exploration of the entire network by means of a broadcast frame such as the ARP Request and learn in the bridges crossed the source MAC addresses and their links to the port through which the first transmitted frame is received.
The aforementioned method for establishing paths operates in the following manner: In an ARP-Path bridge network, two terminals A and C establish two paths from A to C and C to A in order to communicate. These paths are learnt in the network bridges by means of transmission by all the links of a frame such as ARP Request or by means of its response, a unicast frame such as ARP Reply. The bridges link the port through which the frame is first received to the source MAC address and lock this connection, thus preventing it from being modified during a sufficient time such that the copies received in other ports of each bridge are discarded due to the fact that their source MAC address is not linked to the port through which they are received.
These paths may also be established in a known manner such as Flow-Path when an ARP Request is sent (from which the source MAC and source IP and destination in the source edge bridge are recorded) and an ARP Reply response that confirms the bidirectional and symmetrical path linked to the source and destination MAC addresses. [Elisa Rojas, Guillermo Ibanez, Diego Rivera, Juan A. Carral, “Flow-Path: An AllPath flow-based protocol”, Proceedings of the 2012 IEEE 37th Conference on Local Computer Networks (October 2012) pg. 244-247].
Likewise, protocols are known that link the source MAC address of unicast frames to an input port under certain conditions and check when they receive a unicast or multicast frame whether the port is linked or not to said frame [Minkenberg et al. US2011/0032825A1. Multipath discovery in switched Ethernet networks. Publication date, 10 Feb. 2011.] [Tanaka et al. First arrival port learning method, relay apparatus, and Computer product. U.S. Pat. No. 7,760,667 B2] [Mack-Crane et al. Media access control bridging in a mesh network. US 2010/0272108 A1]. These protocols only learn the MAC addresses, which means they cannot transmit traffic flows or user applications or processes within a single machine.
The above protocols have, among others, the drawback that all the applications being communicated between two machines, and therefore sending and receiving frames with the same destination MAC address or pair of source and destination addresses, probably share the same paths and cannot distribute the flow loads between two terminals through different paths with a fine granularity, diversifying the paths according to said flows.
It is for this reason that protocols and mechanisms that enable paths to be established in the network by means of the direct exploration thereof with multicast frames copied in the network, but more specifically, linking each path to a data flow, taking into account additional fields transported in the frames, such as transport frames (TCP, UDP or others), used in the connection between two terminals in order to identify each flow are of use.
The present invention describes mechanisms that search for, establish, use and clear a specific path for each TCP connection established between two terminals and a network bridge that implements said mechanisms. The diversity of the paths is parametrizable. The invention includes a method for establishing paths in the network connected to each new flow of the TCP transport layer to establish a new TCP connection between two terminals, a method for forwarding frames through said paths and a method for clearing them when the TCP connections are closed. These methods are applied by the TCP-Path bridges that have said functionality activated, which may be configured according to the requirements of the network.
When, as described above in the state of the art, the ARP-Path having been created between two terminals A and C, a TCP SYN segment is received in the edge bridge of the emitting (A) terminal, the segment is encapsulated in a special PathRequest frame with the source address being the MAC address of the emitting terminal A and protocol identifier (Ethertype) being the specific one assigned to TCP-Path and the source MAC address and source TCP port as well as the TCP-Path connection identifier, are linked, in a table, for the purposes of forwarding, to an expiry indicator and to the arrival time of the frame; and it is forwarded through broadcasting by all the ports except the receiving port.
In each network bridge crossed, the link is carried out in the same way and, if the receiving port of the frame from A is different to the one linked to the existing path towards A, an alternative path is registered linking said port to the tuple formed by the source MAC address A, destination MAC address C, TCP transport port used by A and TCP transport port used by C {A,C,pA,pC} (abbreviated, tuple AC), to an expiry identifier and to the arrival time of the frame. A check is carried out in each bridge as to whether the destination MAC address of the frame encapsulated within the PathRequest frame is that of a terminal connected directly to the crossed bridge. The duplicated PathRequest frames that arrive afterwards through other ports are discarded due to the fact that their source MAC address is not linked to the receiving port. Lastly, only one PathRequest packet containing the SYN segment reaches the edge bridge, connected directly to terminal C. The bridge de-encapsulates the frame and forwards it to terminal C, similarly linking an expiry identifier to the source MAC and TCP addresses and to the arrival time of the frame. Terminal C responds with a SYN+ACK segment confirming the establishment of the TCP connection. The destination edge bridge (connected to C) encapsulates the SYN+ACK segment in a Path Reply packet with source MAC address C, source MAC address A and protocol identifier (Ethertype) being that which is assigned to the TCP-Path protocol, and it is forwarded by unicast by the port linked to the tuple AC, previously linked to said port when the PathRequest packet was received. In turn, the bridge links (learns) the MAC address of C, the MAC address of A, the transport port of C and the transport port of A to the port through which it has been received, identified as the tuple [C,A,pC,pA} (abbreviated, tuple CA), linking them to the previously created expiry identifier of the tuple AC, updating the arrival time, confirming and forwarding the validity of the link. In each bridge crossed, the receiving ports are similarly linked to said tuple CA and forwarded by the linked port to the tuple AC, linked to the connection from C to terminal A, confirming and forwarding the path in the direction towards A, linking them to the previously created expiry identifier of the tuple AC, updating the arrival time, confirming and forwarding the validity of the link.
In order to increase the diversity of paths, when a bridge receives the PathRequest packet through the same port that is already linked to the generic ARP-Path for A, said bridge may link the transport path to a different port as long as it receives the duplicated PathRequest with a decreased and limited time difference with regards to the port that received it first.
The PathReply packet finally reaches, in unicast, the destination edge bridge, to which the destination terminal A is directly connected. The bridge de-encapsulates the frame containing the source SYN+ACK segment and forwards it to terminal A. Terminal A responds with a frame containing a transport segment with the ACK indicator activated, which will be forwarded as a normal segment, without being encapsulated, by the path linked to this pair of MAC addresses and to the pair of TCP ports of the connection. The successive data segments sent from terminal A to C shall be similarly routed.
The TCP-Path protocol encapsulates the transport segments that contain the activated SYN indicator (only the SYN indicator or the activated SYN and ACK indicators), and uses them to establish and confirm alternative paths to those that already exist, which were previously established by means of some of the known protocols: ARP-Path or Flow-Path. The path from A to C may previously exist or not, both the ARP-Path linked only to the MAC address A and the bidirectional Flow-Path linked to the addresses A and C, the difference lies in that TCP-Path only establishes a new path linked to the connection if there is no previous path between A and C or, if it does exist, it is different to that which is being created (i.e. the port linked to the tuple is different to the pre-existing one). As a result, the transport path TCP-Path established between A and C may partially, completely or in no way coincide with the pre-existing paths. There is only one path between A and C which is established by ARP-Path and Flow-Path, whilst TCP-Path may create as many additional paths as there are existing transport connection at any moment.
The paths are automatically refreshed, extending their validity, when flow frames linked to the path are received. This refresh may be forwards and, optionally, bidirectional depending on the configuration thereof. In the forwards refresh, the frames received renew the link of the destination MAC of the frame forwarded to the output port. In the bidirectional refresh, the link of the source MAC address to the input port is also renewed.
If the paths are not used by the frames linked to them (with tuples of transport ports and MAC addresses in the forwarding table) during a period of time greater than the persistence timer (cache) of the bridges, they automatically expire, clearing the memory of the ports linked to the path.
Likewise, when an established path is interrupted, due to a link or bridge failing, the addresses learnt in the bridges, which are linked in the forwarding table to the port connected to the failed link or bridge, are automatically cleared.
Similarly to the establishment, the TCP-Paths may be explicitly cleared by the terminals when they send a FIN segment in each direction to close the TCP connection. A terminal sends a FIN segment that is responded to by the destination terminal with an ACK segment. This FIN segment closes the TCP-Path connection in the direction of the sent FIN segment. Likewise, it takes place from the remote end when a FIN segment is emitted, responding with an ACK segment towards the remote end in order to close the connection in the remote-close direction. Alternatively, the receiving end may respond with a combined FIN+ACK segment (the so-called three-way TCP handshake), which is responded to with an ACK segment to confirm the close in the remote-close
direction. This ACK segment is not encapsulated. More specifically, when the edge bridge receives a TCP segment with the activated FIN indicator, it encapsulates the segment in a PathFlush packet with the same source and destination addresses as the segment received, which is forwarded in unicast towards the destination following the path established by CA, in order to thus clear the A towards C path linked to this TCP connection. The next bridge crossed, when it receives said unicast PathFlush frame with the protocol-type field, containing the value assigned to the “TCP-Path” protocol, it clears from the table, for the purposes of forwarding, the link of the destination MAC address and destination transport port to the port of the bridge and the content of the linked expiration timer, without modifying other links of said MAC address to other bridge ports; it likewise checks if the destination MAC address of the frame encapsulated within the PathFlush frame corresponds to a terminal connected directly to the bridge that receives the frame and, if this is the case, it de-encapsulates the frame and it is forwarded to the destination terminal by the port of the bridge linked to said terminal. If the destination MAC address of the encapsulated frame is not linked to a terminal connected directly to the bridge that receives the frame, the bridge forwards the PathFlush frame in unicast by the port linked to the recently cleared “TCP connection fields”.
When a data frame is received in a TCP-Path bridge, the TCP connection fields are consulted: source and destination MAC addresses, source and destination transport ports, and it is verified whether there is an existing port linked to said connection as a destination; if it exists, the frame is forwarded by the port linked to said connection towards the destination terminal and the timer linked to the destination MAC address and linked TCP-Path connection renewed for an additional period of time; if it does not exist, it is verified, in a less restrictive manner, whether there is a bridge port linked to the destination MAC address of the frame or to the destination MAC address and source MAC of the frame pair; in the other cases, the path repair process is initiated by sending a multicast frame. That is, when a specific TCP-path does not exist, the received frames may use another specific TCP-Path with the same destination MAC address as the destination or a generic path only linked to said MAC address (created by means of ARP-Path or Flow-Path). If there is no active generic path, one of the specific TCP-Paths shall become generic, linking it to the destination MAC address in order to be used by all the frames with this destination.
If there is no generic path, the generic path is repaired with the common ARP-Path or Flow-Path repair as described in [Elise Rojas, Guillermo Ibanez, Diego Rivera, Juan A. Carral, “Flow-path: An AllPath flow-based protocol”, Proceedings of the 2012 IEEE 37th Conference on Local Computer Networks (October 2012) pg. 244-247].
The described mechanisms for establishing paths, clearing paths and forwarding frames may be implemented in a network bridge that is provided with the corresponding tables to link the ports to tuples formed by pairs of MAC addresses and source and destination transport ports.
An embodiment of the invention is described.
Lastly, the last part of the initiation of the TCP connection, which is a transport segment with the active ACK flag may be seen in
Therefore, as well as the base path, additional paths are created with more specific keys, whilst the rest of the inputs of the table are analogue.
Furthermore, when a data frame with destination A arrives, two searches will now be carried out, one specific key search and another generic search if is not the first. But in turn, if the specific path did exist and it was cleared due to a connection failure, this guarantees that it will still be possible to use the base or generic path for routing.
Number | Date | Country | Kind |
---|---|---|---|
P201301133 | Dec 2013 | ES | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/ES2014/070905 | 12/10/2014 | WO | 00 |