Duplicate packet removal for reliable communication

The system dynamically adjusts packet flow assignments based on delay thresholds to efficiently eliminate duplicates, ensuring reliable delivery and optimal resource use in networks with diverse transmission delays.

DE102025129014A1Pending Publication Date: 2026-02-05SIEMENS CANADA LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
DE102025129014
Authority / Receiving Office
DE · DE
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-08-01
Filing Date
2025-07-23
Publication Date
2026-02-05

AI Technical Summary

Technical Problem

Conventional packet duplication removal systems fail to account for significant delays in packet duplications, leading to inefficient resource utilization and out-of-order delivery, especially in networks with diverse transmission delays, and lack standardized algorithms for load capacity and reliability.

Method used

A resilient packet duplication elimination system that dynamically adjusts to transmission delays by using duplicate member flows and a packet removal module that discards packets not associated with the first flow, reallocating flows based on a drop count threshold to ensure efficient load capacity and minimize resource usage.

Benefits of technology

Ensures reliable and efficient packet delivery by eliminating duplicates without reconfiguration, maximizing load capacity and minimizing processing power requirements, even in networks with varying transmission delays.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Systems, methods, and media for a resilient packet removal system are disclosed. Duplicate member flows are established, comprising a first flow and a second flow. A drop count of the duplicate member flows is set to zero. In a packet removal module, a packet is detected. The packet is passed to a target terminal, and the drop count is set to zero if it is determined that the packet is assigned to the first flow. The packet is dropped, and the drop count is incremented after it is determined that the packet is not assigned to the first flow. The second flow is designated as the first flow; the first flow is reassigned, and the drop count is set to zero if it is determined that the drop count is greater than a threshold drop count.
Need to check novelty before this filing date? Find Prior Art

Description

Technical FieldThe present application relates to the field of data packet communication networks having packet duplication removal capabilities, and more particularly to systems for load carrying out packet duplication removal functions.BackgroundFor packet data networks, packet duplications may be sent over different paths through a communication network and experience different transmission delays. Conventional packet duplication disposal systems use packet sequence numbers or packet disposal based on receiving only a configured member flow. These conventional systems may have technical problems because they do not take into account situations where duplicate packets may experience significant delays. Load carrying performance and functional requirements or specific methods and algorithms thereof are not accurately defined by a standards body or similar organization.The existing packet duplication removal methods are not designed for load capacity, but for reliability, or statically configured to receive a member flow. Examples are IEEE Std 802.1SR-2017 Frame Replication and Removal for Reliability (FRER), Packet Removal according to IEC 62439-3 2021 for PRP and HSR (Parallel Redundancy Protocol and High Availability Seamless Redundancy), Frame Removal Explanations with respect to 5G in 3GPP TS 29.244 V18.6.0 (2024-06), Frame Removal Meeting for Multicast Architecture in IETF draft-xiong Beer Resiliency-02.txt, and DetNet PROOF (Packet Replication, Removal and Placement Functions) discussed in IETF RFC 8655, RFC 8938 and RFC 9566. Some dual homed IEC 61850 end devices receiving two member flows are statically preconfigured so that the packet removal module only passes one member flow and the other member flow is not used. No duplicate elimination algorithm is specified in IEC 61850 and is also not available in the public domain.Generally, the delays of packet duplications may be significantly different. This is the case, for example, when using various types of networks such as terrestrial packet-switched Internet Protocol or IP networks, non-terrestrial networks (NTNs), all optical circuit-switched networks, etc. It is also the case if, for whatever reason, great distances are crossed over, for example if one communicates with the other side of the earth.The two packet duplications may arrive at the disposal module with a significant time difference, although they began at the duplication module approximately simultaneously. The difference between the delays from duplication to the packet duplication removal module is referred to in RFC 8938 as differential delay. In RFC 8938 it is confirmed that a large differential delay may occur and that it may be too large for the packet removal and rearrangement function.The existing packet duplication eliminating methods eliminate the duplication in the eliminating module and provide a packet that has arrived on one of the flows. Of course, no packet is delivered when none of the packet duplications have arrived at the removal module. In some cases, the existing packet duplication elimination algorithms can keep a record of the sequence numbers of the received packets to determine whether the newly received packet is a duplicate and needs to be dropped or not such packet has yet been received and needs to be delivered.After duplication disposal, packets are typically delivered out of order, i.e., the order of their delivery is not the same as the order of their transmission in the duplication module. A packet shuffling function, see e.g., RFC 9550 for an example of a packet shuffling function, typically follows duplication shuffling, see e.g., RFC 9550. It rearranges and forwards the packets. The packet shuffling function requires that all packets that the shuffling function has received and not yet delivered are stored. This requires buffer and processing resources. The greater the difference between the delays from duplication to the packet duplication elimination module, the more resources are required. The resources required for such packet disposal may be too large, and the resources required may also be too large for the rearrangement function.Summary of the InventionAccording to an embodiment of the disclosure, a resilient approach for packet duplication elimination of a data packet network is provided. The approach provides systems and methods for eliminating packet duplications that function well regardless of the delay, packet loss rate, and other QoS experienced by the packet duplications. The systems and methods enable resilient communication, e.g., resilient control application communication, and may be applied at any layer in the communication. Aspects do not include a request to use packet sequence numbers and use packets from multiple member flows.One aspect is a load capacity packet removal system that includes duplicate member flows and a packet removal module. The duplicate member flows include a first flow and a second flow, and the duplicate member flows also include a drop count that is initially set to a null value in the packet removal module. In a packet removing module of the packet removing system, a packet is detected. The packet removal module passes the packet to a destination terminal device and sets the drop count in response to determining that the packet is associated with the first flow. The packet removal module discards the packet and increments the discard count upon determining that the packet is not associated with the first flow. The packet removal module designates the second flow as the first flow, reallocates the first flow, and sets the discard count to the zero value when it is determined that the discard count is greater than a threshold discard count.Another aspect is a method of a load capacity packet removal system. Duplicate member flows are established and the duplicate member flows include a first flow and a second flow. A drop count of the duplicate member flows is initially set to a zero value in the packet removal module. In a packet removing module of the packet removing system, a packet is detected. The packet is passed to a destination terminal, and the drop count is set to the zero value when it is determined that the packet is associated with the first flow. The packet is dropped and the drop count is incremented upon determining that the packet is not associated with the first flow. The second flow is referred to as the first flow, the first flow is reassigned, and the drop count is set to the zero value when it is determined that the drop count is greater than a threshold drop count.Yet another aspect is a non-transitory computer readable medium comprising executable instructions that, when executed, cause at least one processor to provide load capacity for a packet removal system by the above method.The above-described features and advantages, as well as others, will be more readily apparent to those skilled in the art by reference to the following detailed description and the accompanying drawings. While it would be desirable to provide one or more of these or other advantageous features, the teachings disclosed herein extend to the embodiments falling within the scope of the appended claims whether they achieve one or more of the above-mentioned advantages.Brief Description of the DrawingsFor a more complete understanding of the present disclosure and its advantages, reference will now be made to the following descriptions taken in conjunction with the accompanying drawings, wherein like numerals designate like objects. FIG. 1 is a system diagram in example implementations operable to use techniques described herein. FIG. 2 is a system diagram in other example implementations operable to use techniques described herein. FIG. 3 is a system diagram of yet another example implementation operable to use the techniques described herein. FIG. 4 is a block diagram of an example implementation of the packet removal module of FIGS. 1, 2, and 3. FIG. 5 illustrates an example encapsulation for packet duplications of the duplicate flows of FIGS. 1, 2, and 3. FIG. 6 is a flow diagram representing an example implementation of operation of the packet removal module of FIGS. 1, 2, and 3. FIG. 7 is a flow diagram representing another example implementation of operation of the packet removal module of FIGS. 1, 2, and 3. FIG. 8 is a flow diagram representing yet another example implementation of operation of the packet removal module of FIGS. 1, 2, and 3.DETAILED DESCRIPTIONVarious technologies related to systems and methods that enable the resilient systems and methods for packet duplication elimination of a data packet network will now be described with reference to the drawings, in which like reference numerals represent like elements throughout. The drawings discussed below and the various embodiments used to describe the principles of the present disclosure in this specification are for illustration purposes only and should in no way be construed to limit the scope of the disclosure. It will be appreciated by those skilled in the art that the principles of the present disclosure may be implemented in any appropriately arranged device. It should be appreciated that functions described as being performed by certain system elements may be performed by multiple elements. Similarly, for example, one element may be configured to perform functions described as being performed by multiple elements. The numerous inventive teachings of the present application are described with reference to exemplary non-limiting embodiments.Load capacity is the ability to continue to operate after severe failures of more than one element in a communication network. Such severe failures can be due to any cause, whether it is naturally or humanly caused. Examples of natural causes would be earthquakes, forest fires, hurricans, tsunami, vulcan outbreaks, meteorite stroke, etc. Examples of causes caused by humans would include warfare, non-functioning software, cyber attack, etc. In general, possible results after such severe failures include only some portions of the network being operable, some services may not be possible, the previous QoS may not be reached, and the like. In addition, after such severe failures, network operation can only be restored after a significant delay. The delay may be much greater than any failover or recovery delays for a single component failure, e.g. 50 ms for IEC 61850.The resilient approach ensures that one or more duplicates are eliminated without attempting to deliver the duplicates of lost packets, i.e., packets that do not arrive at the elimination module. In the event of a major failure in the network involving one of the member flows, communication continues without requiring reconfiguration, allowing some packet loss, since this packet duplication removal approach is primarily directed to loadability. Accordingly, the load capacity of the package delivery is maximized. Additionally, unlike conventional approaches, the need for additional processing power is minimized for situations where communication delays of data packet duplications between the packet duplication and packet removal modules are significantly different.The importance of load capacity can be illustrated by way of example. In the case of a large catastrophe, a part of a power network and its associated communication network infrastructure can be destroyed. More than one element in the control communication network may be subject to severe failure, resulting in a power loss in a large area. It is important to restore as much energy as possible for the remaining infrastructure within a relatively short period of time. The communication network must be resilient so that devices and their control applications function well enough and have sufficient time to allow the power network to start up again.Referring to FIG. 1, a first system 100 is shown that is operable, for example, to employ techniques described herein. Communication between end devices, including a source end device 110 and a destination end device 120, is over multiple paths for redundancy and load capability. The source terminal 110 forms a plurality of member flows (also referred to as duplicate flows) from a single composite flow. Each terminal device 110, 120 includes a control application, and the control application of the source terminal device 110 adds control data to data packets directed to the destination terminal devices 120.The systems and methods described herein require a control application that requires high-strength communication. Control applications requiring packet duplication disposal systems can be used for power, transport, resource care and health systems. Examples include the protection of the power grid and control application and its communication IEC 61850, trackside latch control, a water supply control system, remote surgery robot control, and the like. Such systems may experience significant differences in transmission delays of multiple data packets.The control applications may also apply to communication for terrestrial networks and non-terrestrial networks ("NTN"). A packet may be sent over a terrestrial path, while a copy may be sent over a non-terrestrial path. Data may be transmitted between terrestrial stations by one or more nodes of an NTN. Each terrestrial station may be located on the ground, in an aircraft, in a train, or in other locations that benefit from communication with an orbital satellite. Examples of NTN are satellite networks based on LEO (Low Earth Orbit), MEO (Medium Earth Orbit), GEO (Geostationary Earth Orbit), VLEO (Very Low Earth Orbit), UAS (Unmanned Aerial System) and other satellites, including use of drones or similar objects in the atmosphere. The NTN packet transmission delays are significantly different from the delays in terrestrial networks due to signal propagation delay over significantly different distances.The control applications may also apply to optical switching networks in which a packet may be sent over a conventional packet switching network, while a copy may be sent over a path that partially or completely comprises an optical switching telecommunications network. An example of an optical switching telecommunications network would be a fixed fifth generation optical transport network (F5G) that uses wave division multiplexing (WDM) and / or time division multiplexing (TDM) to provide services with small end-to-end delays (e.g., ETSI GS F5G 014 V1.1.1 (2023-05)). Packet duplications of these different applications can experience significantly different transmission delays.With continued reference to FIG. 1, for some embodiments, each packet of communication is duplicated in a duplication module 130. The duplication module 130 forms packet duplications to be carried by the duplicated flows from an original packet of the composite flow received from the source terminal 110. For such embodiments, a removal module 140 at the receiving end of the duplicate flows removes any packet duplications so that only at most one such copy is provided to the destination terminal device 120. Although two member flows are shown in FIG. 1, it should be understood that the system may apply to multiple member flows, i.e., more than two member flows. The locations of the duplication module 130 and the removal module 140 may be different based on different deployment methods. For example, the modules may be located in a router or a switch. Member streams may take disjunctive paths through the communication networks, although they are not required by the system. Disjunctive paths can be established in various ways, such as by MPLS TE (Multiprotocol Label Switching).The first system 100 includes one or more intermediary devices 150, 160 along each of the plurality of member flows. The intermediary devices 150, 160 form part of networks for various communication systems such as power grid protection, control applications (transportation systems, water supply systems, robotic systems, etc.), terrestrial networks, NTNs (such as satellites), optical switching networks, and the like. For example, the first flow includes one or more intermediary devices 150 along its path and the second flow includes one or more intermediary devices 160 along its path. A composite flow results in duplicate member flows in duplication module 130. Data packets 170 originating from the duplication module 130 may arrive at the removal module 130 via the first flow and / or the second flow, and the one or more duplicated member flows result in a composite flow in the removal module 140.For duplication module 130, a first copy of a data packet is considered to belong to the first member flow and associated with the packet flow identification (ID) of the first flow. A second copy of the data packet is considered to belong to the second flow and associated with the packet flow identification (ID) for the second flow. The flow identifications are distinct and distinct for each member flow carrying a copy of the data packet between the duplication and removal modules 130, 140. The packet flow identification may be explicit such as an ID included in an MPLS label, a virtual local area network (VLAN) tag, or other network communication technology, or the packet flow identification may be associated with a path such as an ID included in a PRP, HSR, or other network communication protocol.No packet sequence numbers are required for packet duplication elimination. Nevertheless, each packet duplication may also be added a sequence number identical to the multiple packet duplications to enable compatibility with existing packet duplication systems. If the sequence numbers exist in the packet duplications, the system ignores them.For the duplication module 130, the first packet duplication of the first member flow is sent over the first path of the first member flow, and the second packet duplication of the second member flow is sent over the path of the second member flow. The member flows may traverse different networks and use various services and paths within these networks. The two member flows come together and the duplicate is deleted in deletion module 140. The control application in the destination terminal device 120 does not receive the packet duplications, i.e., it receives only the composite flow.Specific examples of the implementations of the duplication and elimination modules 130, 140 may be as follows, without excluding other examples. For example, packet duplication in the DetNet service sublayer occurs in a DetNet enabled router, see RFC 8655. Each packet duplicate is further encapsulated into an MPLS packet according to IETF RFC 8964. Packet disposal is done at the DetNet service sublayer in a DetNet enabled router, see RFC 8655. In another example, packet duplication or deletion occurs in a PRP or HSR of IEC 62439-3 as the origin and recipient of red boxes. Note that PRP as well as HSR are Layer 2 technologies. Note that they can be used across IP networks and span long distances. This is frequently used over IP networks.Referring to FIG. 2, a second system 200 is shown, operable, for example, to employ techniques described herein. Similar to the first system 100 shown in FIG. 1, the second system 200 includes a source terminal device that forms multiple member flows, a duplication module that forms packet duplications to be carried by the duplicate flows, and one or more intermediary devices along each member flow. The components and manner of performing package disposal and delivery to the target terminal device 222 are different from the first system 100.For the second system 200, the removal module 280 is coupled to and separate from a routing module 242. Routing module 242 receives duplicate data packets via member flows 290, 292 and provides them to removal module 280 for processing. The removal module 280 shown in FIG. 2 includes a control application for managing packet removal, including removing any duplicate packets so that only one copy 272 is delivered to the target terminal device 222. From there, the data packet 272 of a single composite flow 294 is forwarded to the destination terminal device 222.Referring to FIG. 3, a third system 300 is shown that is operable, for example, to employ techniques described herein. For the third system 300, message duplication occurs in an originating dual-homed terminal 310 and message elimination occurs in a receiving dual-homed terminal 320. The originating dual-homed terminal 310 includes the source terminal and the duplication module, and the receiving dual-homed terminal 320 includes the destination terminal and the deletion module. The originating dual-homed terminal 310 forms multiple member flows and packet duplications to be carried by the duplicate flows. The third system 300 also includes one or more intermediary devices 350, 360 along each member flow. The receiving dual-homed terminal 320 eliminates any duplicate packets so that only one copy 370 is recognized in the terminal 320.Referring to FIG. 4, system components of a system module 400 are shown in an example implementation. Examples of the system device 400 include an end device 110, 120, 222, 310, 320, a duplication or elimination module 140, 280, 320, or another device / module 242. The system components include one or more communication lines 402 for directly or indirectly connecting other system components to one another. The other system components include one or more communication components 404 that communicate with other entities over a wired or wireless network, one or more processors 406, and one or more memory components 408. The communication component 404 communicates (i.e., receives and / or sends) data associated with one or more devices of the system device 400 and their associated components. The communication component 404 may use wired or wireless technology for communication.The processor or processors 406 may send data to and process commands received from other components of the system components, such as information of the communication component 404 or the storage component 408. Each application includes executable code to provide specific functionality to the processor 406 and / or remaining components of the system device 400.Examples of applications executable by the communication component 404 and / or the processor 406 include, but are not limited to, an operation submodule 410 and a removal submodule 412. The operation submodule 410 may be included in the processor 406 and performs general operations to manage the system device 400. The removal submodule 412 may be included in the communication component 404 (as 412A), the processor 406 (as 412B), or both. The clearing submodule 412 may track the drop count and determine whether the drop count is greater than the threshold drop count. The removal submodule 412 may also designate the second flow as the first flow, reallocate the first flow, and set the drop count to the zero value.Data stored in the storage component 408 is information that a module of the processor 406 can reference and / or be manipulated by to perform functions of the system device 400. Examples of data associated with the system device 400 and stored by the storage component 408 include, for example, the identification data 414 and cast count data 416. The identification data 414 stores a packet flow identification corresponding to each data packet, including a first flow identification associated with the first flow and a second flow identification associated with the second flow. The drop count data 416 may store the drop count of the packet removal module and the threshold drop count.The system components may include input components 418 and output components 420, thereby managing one or more input components and / or an output component. The input and output components 418, 420 of the system components may also include one or more visual, audio, mechanical, or other components that receive information and / or provide it to a user / operator of the system device 400.It should be understood that FIG. 4 is provided for illustrative purposes only to represent an example implementation of the system device 400, and is not intended to be a complete representation of the various components that may be used by the device. The system device 400 may include various other components not shown in FIG. 4, may include a combination of two or more components, or may include a division of a particular component into two or more separate components, and still be within the scope of the present invention. In addition, the components 400 may be directly or indirectly coupled to each other to perform the operations of the system device 400. For example, processor 406 may be directly or indirectly coupled to input / output component 418.Referring to FIG. 5, an example encapsulation 500 for packet duplications of the duplicated flows is shown, see RFC 8964. For this example, deterministic networking (DetNet) is an extension of the IP layer. A DetNet data plane 502 operates over a multi-protocol label switching (MPLS) packet switched network to implement encapsulation. The example MPLS-based encapsulation 500 includes payload packet data 504, control word data 506, S-label data 508, data link data 510, and physical data 512. The MPLS-based encapsulation 500 may also include data 514 associated with one or more F labels. The control word data 506 and S-label data 508 as well as any F-label data 514 correspond to the DetNet data plane 502 of the MPLS-based encapsulation 500. The control word or d-CW data 506 includes sequence numbers needed for packet duplication elimination. The S-label data 508 identifies a DetNet flow at the receiving DetNet service sublayer processing node.Packet replication, removal, and placement (PROOF) functions on the DetNet data plane 502 identify tasks specific to the service sublayer. When PROOF is configured, the same flow data is sent over multiple outgoing DetNet member flows using forwarding sublayer MPLS label switched paths. The S-label data 508 is configured per outgoing member flow. For each replicated MPLS packet, the same control word data 506 is used on all outgoing link flows. Duplication disposal at the receiver is subject to specific implementations and can be combined with a jitter buffer, e.g. ensuring almost no jitter, and with packet loss detection.Referring to FIG. 6, a flowchart of a first example operation 600 for processing packet duplications by the packet removal module is shown. The packet duplications include a first flow and a second flow that can be dynamically swapped or changed during operation of the system. In some embodiments, the packet removal module discards all packets of a currently designated second flow and no other packets. Passing other packets, in addition to a currently designated first flow, may be desirable, such as when the packet removal module is running on a virtual interface designed to support the duplicated flows and other data, such as operation and maintenance of the flows, including performance measurement data transfer.The example operation 600 of the load capacity packet removal system performed by the packet removal module creates (602) duplicate member flows including a first flow and a second flow. Prior to processing the data packets, the initial values are configured in the packet removal module. For example, one or more initial settings of the packet removal module may be configured by the network management system (NMS) or by another entity. The packet removal module includes a first flow identification and a second flow identification that are set or otherwise configured (602). For example, a first member flow is a first flow and a second member flow is a second flow. For example, the first stream may have expected or measured delays that are less than the expected or measured delays of the second stream.In some embodiments, the first flow may be selected based on quality of service (QoS) or enterprise parameters such as packet delays. These parameters may be expected values, actual values, or a combination of these values, such as their weighted sum. Examples of the parameters include packet delay variance, packet loss rate, preferred network providers, cost, and the like. The QoS or enterprise parameters may be applicable to a flow, path, node, or the like.Generally, the first flow identification and the second flow identification are dynamically selected. A drop count parameter (also called a spare drop count parameter) includes the number of packets received on the second flow in the packet duplication removing module after the current last packet has passed the packet duplication removing module. When the packet duplication eliminating module has received a packet amount exceeding a threshold discard count (also called maximum reserve discard count) from the second flow, it sets the previously second flow as the first flow.In response to setting (602) a duplicated member flow as the first flow and setting (602) a duplicated member flow other than the second flow, operation 600 sets (604) the shedding count of the duplicated member flow to a zero value, such as zero. In some embodiments, setting (604) the threshold drop count to a predetermined value greater than the zero value. In addition, operation 600 sets (604) the threshold drop count to a particular value. In some embodiments, the threshold drop count may be changed during operation of the packet removal module. If the threshold drop count is set to a very high value, only when the packet delivery of the first flow is greatly interrupted will the second flow become the first flow before. For example, the threshold drop count may be set to the approximate average number of packets expected to be transmitted in any 5 minute interval of the duplicated flow. At 4000 packages / sec, the threshold drop count may be set to 5 min * 4000 packages / sec = 5 min * 4000 * 60 packages / min = 120,000 packages. The selection of the threshold drop count supports the loadability of the package delivery by allowing the delivery of the packages when there is an interruption to the first flow service.After setting (604) the drop count and the threshold drop count, operation 600 detects (606) a data packet in a packet removal module of the packet removal system. In response to detection (606) of the packet, operation 600 determines (608, 610) whether the packet is associated with the first flow. In some embodiments, operation 600 determines (608) a packet flow identification corresponding to the detected packet, i.e., a packet flow ID, and determines (610) whether the packet flow identification corresponding to the packet is equivalent to a first flow identification, i.e., a first flow ID associated with the first flow. The packet removal module compares (610) the packet flow identification with the first flow identification and examines whether these two identifications logically identify the same flow, for example if these two identifications are mathematically identical. If so, the packet belongs to the first flow. If no, the packet does not belong to the first flow. Operation 600 passes the packet to the destination terminal device (612) and sets (614) the drop count to the zero value when it is determined (608, 610) that the packet is associated with the first flow.The detected data packet may be dropped upon a determination that the packet is not associated with the first flow. In some embodiments, the detected data packet may be dropped at least in part in response to a determination that the packet is not associated with the first flow. For example, the decision to discard may be based on the mapping to the first flow, the mapping to the second flow, or both. In some embodiments, operation 600 may determine (616) whether the packet is associated with the second flow if it is determined (608, 610) that the detected packet is not associated with the first flow. The packet removal module compares (616) the packet flow identification with the second flow identification and examines whether these two identifications logically identify the same flow, for example if these two identifications are mathematically identical. If so, the packet belongs to the second flow. If no, the packet does not belong to the second flow, and additionally, operation 600 of the packet removal module passes (628) the packet to wait (606) for arrival of the next data packet because the packet does not belong to the first flow or the second flow.In response to dropping (618) the detected data packet and / or incrementing (618) the dropping count, operation 600 determines (620) whether the dropping count is greater than the threshold dropping count. It should be appreciated that this is the same as determining whether the drop count reaches the threshold drop count as long as the threshold drop count is greater than the zero value by more than a single counter. If the drop count does not meet this criterion (e.g., exceeds the threshold drop count), operation 600 continues to wait until the next data packet arrives (606).If it is determined (620) that the drop count is greater than a threshold drop count or equivalent comparison, the first operation 600 changes (622) the flows and updates (624) the counts. Meanwhile, operation 600 of the removal module changes (622) the flows as a result of multiple instances exceeding the threshold (i.e., not just a single instance) upon determining (616, 610) that the packet is associated with the second flow and not associated with the first flow. Operation 600 designates (620) the second flow as the first flow and re-allocates the first flow (622). In situations where there are only two sub-currents, the first and second currents are effectively reversed. In other words, the previous second flow becomes the first flow and the previous first flow becomes the second flow. In addition, (624) operation 600 sets the drop count to the zero value. In addition to setting (624) the drop count to the zero value, operation 600 may set (624) the threshold drop count. In some embodiments, the drop count is set (624) in response to designating (622) the second flow and re-assigning the first flow.Referring to FIG. 7, a flowchart of a second example operation 700 for processing packet duplications by the packet removal module is shown. The second operation 700 is similar to the first example operation 600, but does not include a determination as to whether a detected data packet is associated with the second flow. By this variant, the packet removal module ejects all packets that do not belong to the first flow. This variant may be useful, for example, when the module is running on a virtual interface intended to support only the duplicate flows.The second operation 700 sets (702, 704) a duplicated member flow as the first flow, sets a duplicated member flow other than the second flow, and the drop count to a zero value. In some embodiments, the second operation 700 sets (704) the threshold drop count to a predetermined value greater than the zero value. Additionally, the second operation 700 sets (704) the threshold drop count to a certain value. The second operation 700 detects (706) a data packet in a packet removal module of the packet removal system and determines (708, 710) whether the packet is associated with the first flow. In some embodiments, the second operation 700 determines (708) a packet flow identification corresponding to the detected packet and determines (710) whether the packet flow identification corresponding to the packet is equivalent to a first flow identification associated with the first flow. The second operation 700 passes the packet to the destination terminal device (712) and sets (714) the drop count to the zero value when it is determined (708, 710) that the packet is associated with the first flow. The detected data packet is dropped and the drop count is incremented little by little in response to determining that the packet is not associated with the first flow.In response to dropping (718) the detected data packet and / or incrementing (718) the dropping count, the second operation 700 determines (720) whether the dropping count is greater than the threshold dropping count. It will again be appreciated that this is the same as determining whether the drop count reaches the threshold drop count as long as the threshold drop count is greater than the zero value by more than one counter. If the drop count does not meet this criterion (e.g., exceeds the threshold drop count), the second operation 700 continues to wait for the arrival of the next data packet (706).If it is determined (720) that the drop count is greater than a threshold drop count or equivalent comparison, the second operation 700 changes (722) the flows and updates (724) the counts. The second operation 700 of the removal module changes (722) the flows as a result of the multiple consecutive instances (i.e., not just a single instance) exceeding the threshold upon determining (710) that the packet is not associated with the first flow. The second operation 700 designates (720) the second flow as the first flow and re-allocates the first flow (722). The second operation 700 sets (724) the drop count to the zero value. In addition to setting (724) the drop count to the zero value, the second operation 700 may set (724) the threshold drop count. In some embodiments, the drop count is set (724) in response to designating (722) the second flow and re-assigning the first flow.Referring to FIG. 8, a flowchart of a third example operation 800 for processing packet duplications by the packet removal module is shown. The third operation 800 is similar to the first example operation 600, but the detected data packet is dropped if it is determined that the packet is not associated with the second flow. By this variant, the packet removal module ejects all packets that do not belong to the first flow. This variant may be useful, for example, when the module is running on a virtual interface intended to support only the duplicated flows and not protocol control frames.The third operation 800 sets (802, 804) a duplicate member flow as the first flow, sets a duplicate member flow other than the second flow, and the drop count to a zero value. In some embodiments, the third operation 800 sets (804) the threshold drop count to a predetermined value that is greater than the zero value. In addition, the third operation 800 sets (804) the threshold drop count to a certain value. The third operation 800 detects (806) a data packet in a packet removal module of the packet removal system and determines (808, 810) whether the packet is associated with the first flow. In some embodiments, the third operation 800 determines (808) a packet flow identification corresponding to the detected packet and determines (810) whether the packet flow identification corresponding to the packet is equivalent to a first flow identification associated with the first flow. The third operation 800 passes the packet to the destination terminal device (812) and sets (814) the drop count to the zero value when it is determined (808, 810) that the packet is associated with the first flow. If the packet is not associated with the first flow (808, 810), the third operation 800 determines (816) whether the packet is associated with the second flow.The detected data packet may be dropped upon a determination that the packet is not associated with the first flow. In some embodiments, the detected data packet may be dropped at least in part in response to a determination that the packet is not associated with the first flow. Specifically, the detected data packet is dropped (818, 828) in response to determining whether or not the packet is associated with the second flow. Additionally, the third operation 800 increments (818) the drop count.In response to determining (816) that the packet is associated with the second flow or its operation thereafter (818), the third operation 800 determines (820) whether the drop count is greater than the threshold drop count. It will again be appreciated that this is the same as determining whether the drop count reaches the threshold drop count as long as the threshold drop count is greater than the zero value by more than one counter. If the drop count does not meet this criterion (e.g., exceeds the threshold drop count), the third operation 800 continues to wait for the arrival of the next data packet (806).If it is determined (820) that the drop count is greater than a threshold drop count or equivalent comparison, the third operation 800 changes (822) the flows and updates (824) the counts. Meanwhile, the third operation 800 of the removal module changes (822) the flows as a result of multiple instances exceeding the threshold (i.e., not just a single instance) upon determining (816, 810) that the packet is associated with the second flow and not associated with the first flow. The third operation 800 designates (820) the second flow as the first flow and re-allocates the first flow (822). In addition, (824) the third operation 800 sets the drop count to the zero value. In addition to setting (824) the drop count to the zero value, the third operation 800 may set (824) the threshold drop count. In some embodiments, the drop count is set (824) in response to designating (822) the second flow and re-assigning the first flow.The terminal device may be configured to route the packets to two packet replication modules, and two packet removal modules may be used for load capability. Packet duplication and removal modules may be further upgraded in various ways. In addition, the duplicate packet removal module for reliability load capability may be implemented in routers, switches, red boxes, etc. simultaneously with the existing duplicate packet removal modules, so that the same packet duplication methods may be used. The network management system may configure the use of each module per flow or per interface, or the like.It will be appreciated by those skilled in the art that for simplicity and clarity, the complete construction and operation of all data processing systems suitable for use with the present disclosure will not be illustrated or described herein. Moreover, none of the various features or methods described herein should be considered essential to any or all embodiments, except as described herein. Various features may be omitted or duplicated in various embodiments. Various processes described may be performed in an omitted, repeated, sequential, simultaneous, or different order. Various features and operations described herein may be combined in still other embodiments as may be described in the claims.It is important to note that although the disclosure includes a description in the context of a fully functional system, those skilled in the art will understand that at least portions of the mechanism of the present disclosure may be distributed in the form of instructions embodied in a machine-usable, computer-usable, or computer-readable medium in any of a variety of forms, and that the present disclosure applies equally regardless of the particular type of instruction or signal bearing medium or storage medium used to actually execute the distribution. Examples of machine-usable / readable or computer-usable / readable media include non-volatile hard-coded media such as read-only memories (ROMs) or erasable electrically programmable read-only memories (EEPROMs), and user-writable media such as memory sticks, flash drives, and hard disk drives.Although an embodiment of the present disclosure has been described in detail, those skilled in the art will understand that various changes, substitutions, variations, and improvements disclosed herein may be made without departing from the spirit and scope of the disclosure in its broadest form.

Claims

A resilient packet disposal system comprising: multiple duplicate member flows, including a first flow and a second flow, wherein the multiple duplicate member flows include a drop count set to zero; and a packet disposal module of the packet disposal system for detecting a packet, wherein the packet disposal module directs the packet to a target terminal and sets the drop count to zero when it is determined that the packet is assigned to the first flow, wherein the packet disposal module drops the packet and increments the drop count after it is determined that the packet is not assigned to the first flow; wherein the packet disposal module designates the second flow as the first flow, reassigns the first flow, and sets the drop count to zero when it is determined that the drop count is greater than a threshold drop count. Packet disposal system according to claim 1, wherein the multiple duplicate member flows include a threshold drop count that is set to a predetermined value greater than zero. Packet removal system according to one of the preceding claims, wherein the packet removal module determines that a packet flow identification corresponding to the packet is not equivalent to a first flow identification associated with the first flow. Packet disposal system according to one of the preceding claims, wherein the packet disposal module drops the packet and increments the drop count when it is determined that the packet is not assigned to the first flow. Packet removal system according to one of the preceding claims, wherein the packet removal module determines whether the packet is assigned to the second flow. Packet disposal system according to claim 5, wherein the packet disposal module drops the packet and increments the drop count when it is determined that the packet is assigned to the second flow. A parcel disposal system according to one of the preceding claims, wherein the parcel disposal module sets the drop count value in response to the designation of the second flow and reassignment of the first flow. A method for a resilient packet removal system, comprising: establishing multiple duplicate member flows, including a first flow and a second flow; setting a drop count of the multiple duplicate member flows to zero; detecting a packet in a packet removal module of the packet removal system; allowing the packet to pass to a target end device and setting the drop count to zero when determined to be assigned to the first flow; dropping the packet and incrementing the drop count after determining that the packet is not assigned to the first flow; designating the second flow as the first flow, reassigning the first flow, and setting the drop count to zero when determined to be greater than a threshold drop count. The method of claim 8, further comprising: setting the threshold drop count value to a predetermined value greater than zero. A method according to any of the preceding method-based claims, wherein determining that the packet is not associated with the first flow comprises determining that a packet flow identification corresponding to the packet is not equivalent to a first flow identification associated with the first flow. A method according to any of the preceding method-based claims, wherein dropping the packet and incrementing the drop count includes dropping the packet and incrementing the drop count when it is determined that the packet is not assigned to the first flow. A method according to any of the preceding method-based claims, further comprising: determining whether the package is assigned to the second flow. The method of claim 12, wherein the method comprises dropping the packet and incrementing the drop count when it is determined that the packet is assigned to the second flow. Method according to any of the preceding method-based claims, comprising designating the second flow, reassigning the first flow and setting the drop count, and setting the drop count in response to designating the second flow and reassigning the first flow. Non-volatile, computer-readable medium comprising executable instructions which, when executed, cause at least one processor to provide resilience to a packet removal system by: establishing multiple duplicate member flows comprising a first flow and a second flow; setting a drop count of the multiple duplicate member flows to zero; detecting a packet in a packet removal module of the packet removal system; allowing the packet to pass to a target terminal device and setting the drop count to zero when determined that the packet is associated with the first flow; dropping the packet and incrementing the drop count after determining that the packet is not associated with the first flow;Designating the second river as the first river, reassigning the first river, and setting the drop count to zero if it is determined that the drop count is greater than a threshold drop count. Medium according to claim 15, further comprising: setting the threshold drop count value to a predetermined value greater than zero. Medium according to claim 15 or 16, wherein determining that the packet is not assigned to the first flow comprises determining that a packet flow identification corresponding to the packet is not equivalent to a first flow identification assigned to the first flow. Medium according to claims 15 to 17, wherein includes dropping the packet and incrementing the drop count when it is determined that the packet is not assigned to the first flow. Medium according to claims 15 to 18, further comprising: Determining whether the packet is assigned to the second flow, comprising dropping the packet and incrementing the drop count in response to determining that the packet is assigned to the second flow. Medium according to claims 15 to 19, wherein designating the second flow, reassigning the first flow and setting the drop count comprises setting the drop count in response to designating the second flow and reassigning the first flow.