A method for controlling traffic flow in a communication network compliant with a Multilevel Precedence and Preemption (MLPP) scheme is described. The method selectively modifies parameters of TCP connections for transmissions to meet speed of service (SoS) requirements and establishes the connections in accordance with their levels of precedence. In applications, the method may be implemented in communication networks using High Assurance Internet Protocol Encryption (HAIPE) or an IP Security (IPSec) protocol.

Claim:

What is claimed is:

1. A method for controlling traffic flow in an Internet Protocol (IP) based communication network, comprising software running on a computer acting as a network edge proxy insaid network, said method comprising the steps of: (a) associating a speed of service (SoS) with a level of precedence; (b) selectively adjusting settings of Transmission Control Protocol (TCP) connections to meet the speed of service requirements for aparticular level of precedence, said settings consisting of at least one of: (b1) adjusting settings CWND.sub.adj for a congestion window; (b2) adjusting RTO.sub.adj for a re-transmission time-out time interval using the equation:RTO.sub.adj=min{(N.times.RTT.sub.e),RTO.sub.max}, where N is a pre-determined constant in a range from 1 to 3, RTT.sub.e is an estimated transmission round trip time, and RTO.sub.max is a maximum re-transmission time-out interval determined using theequation: .times..function..alpha..times..times..times. ##EQU00002## where p.sub.e is an estimated transmission loss ratio, D.sub.e is an estimated transmission transfer delay, j.sub.e is an estimated jitter delay .alpha. is a pre-determined constant,I is a number of re-transmissions, i is an integer, 1.ltoreq.i.ltoreq.I and L.sub.q is a transmission latency requirement; and (b3) adjusting settings DL.sub.adj for time delays for sending acknowledgements of the transmissions; (c) authorizing use ofthe TCP connections for transmissions having levels of precedence requiring the available SoS; (d) establishing the TCP connections; (e) monitoring compliance of the TCP connections with the SoS requirements of the transmission; (f) dynamicallycontrolling the TCP connections based on compliance with the required SoS; and (g) repeating steps (b) through (g) until the transmission is complete.

2. The method of claim 1, wherein the network is a wireless, wired, or fiber-optic communication network compliant with a Multilevel Precedence and Preemption (MLPP) scheme.

3. The method of claim 1, wherein the network is compliant with at least one data encryption protocol.

5. The method of claim 1, wherein the TCP connection is a connection between a transmitting edge proxy and a receiving edge proxy of a tactical network having an encrypted core.

6. The method of claim 5, wherein steps (a)-(g) are performed at the transmitting network edge proxy.

7. The method of claim 1, wherein step (b1) comprises: determining the settings CWND.sub.adj using an equation: CWND.sub.adj=max{CWND.sub.currents,CWND.sub.required}, where CWND.sub.current is a current setting for the congestion window,CWND.sub.required=(RTT.sub.e.times.MSS)/L.sub.q, RTT.sub.e is an estimated transmission round trip time, MSS is a maximum size of a transmission unit, and L.sub.q is a transmission latency requirement.

8. The method of claim 1, wherein RTO.sub.max is determined using an equation: RTO.sub.max=(L.sub.q-D.sub.e-.alpha.j.sub.e)/(I+1), where L.sub.q is a transmission latency requirement, D.sub.e is a transmission transfer delay, .alpha. is apre-determined constant, j.sub.e is a jitter delay, and I is a number re-transmissions.

10. The method of claim 1, wherein step (c) comprises: authorizing the TCP connections meeting both of the following conditions: RTO.sub.max>.beta.RTT.sub.e, and RWND>CWND.sub.required, where RTO.sub.max is a maximum re-transmissiontime-out interval; .beta. is a pre-determined constant, RTT.sub.e is an estimated transmission round trip time, RWND is a maximum size of a congestion window at a destination of the transmission, and CWND.sub.required=(RTT.sub.e.times.MSS)/L.sub.q,RTT.sub.e is an estimated transmission round trip time, MSS is a maximum size of a transmission unit, and L.sub.q is a transmission latency requirement.

11. The method of claim 10, wherein RTO.sub.max is determined using an equation: .times..function..alpha..times..times..times. ##EQU00003## where p.sub.e is an estimated transmission loss ratio, D.sub.e is an estimated transmission transferdelay, j.sub.e is an estimated jitter delay, .alpha. is a pre-determined constant, I is a number of re-transmissions, i is an integer, 1.ltoreq.I.ltoreq.I, and L.sub.q is a transmission latency requirement.

12. The method of claim 10, therein RTO.sub.max is determined using an equation: RTO.sub.max=(L.sub.q-D.sub.e-.alpha.j.sub.e)/(I+1), where L.sub.q is a transmission latency requirement, D.sub.e is a transmission transfer delay, .alpha. is apre-determined constant, j.sub.e is a jitter delay, and I is a number re-transmissions.

13. The method of claim 1, wherein step (d) further comprises: dynamically controlling the TCP connections as follows, wherein Level of Precedence 1 (LP1)<Level of Precedence 2 (LP2)<Level of Precedence 3 (LP3): TABLE-US-00004 TRAFFICCONDITIONS TCP CONNECTION STATUS No violating incidents Establish TCP connections meeting requirements to the SoS Occurrence of 1.sup.st violating Abort TCP connections having a level of incident during current precedence LP = LP1 for a pre-determinedcommunication session time interval T1 or a pre-determined number M1 of the transmissions Violation incident occurs Abort TCP connections having a level of during the time interval T1 precedence LP .ltoreq. LP2 for a pre-determined or M1 transmissionstime interval T2 or a pre-determined number M2 of the transmissions Violation incident occurs Abort TCP connections having a level of during the time interval T2 precedence LP .ltoreq. LP3 for a pre-determined or M2 transmissions time interval T3 or apre-determined number M3 of the transmissions After the time interval T2 or M2 transmissions, abort the TCP connections having a level of precedence LP = LP1 Violation incident occurs Abort TCP connections having a level of during the time interval T3precedence LP .ltoreq. LP2 for a pre-determined or M3 transmissions time interval T4 or a pre-determined number M4 of the transmissions.

14. The method of claim 1, wherein step (e) further comprises: monitoring compliance of the TCP connections in real time.

15. A method for controlling traffic flow at a network edge proxy of an Internet Protocol (IP) based communication network, comprising software running on said network edge proxy executing instructions to perform the steps of: (a) associating aspeed of service (SoS) with a level of precedence in a Multilevel Precedence and Preemption (MLLP) scheme; (b) selectively adjusting settings of Transmission Control Protocol (TCP) connections to provide the SoS requirements for a particular level ofprecedence, said setting consisting of at least one of (b1) adjusting settings CWND.sub.adj for a congestion window; (b2) adjusting settings RTO.sub.adj for a re-transmission time-out time interval using the equation:RTO.sub.adj=min{N.times.RTT.sub.e),RTO.sub.max}, where N is a pre-determined constant in a range from 1 to 3, RTT.sub.e is an estimated transmission round trip time, and RTO.sub.max is a maximum re-transmission time-out interval and where RTO.sub.max isdetermined using the equation: .times..function..alpha..times..times..times. ##EQU00004## where p.sub.e is an estimated transmission loss ratio, D.sub.e is an estimated transmission transfer delay, j.sub.e is an estimated jitter delay, .alpha. is apre-determined constant, I is a number of re-transmissions, i is an integer, 1.ltoreq.i.ltoreq.I and L.sub.q is a transmission latency requirement; and (b3) adjusting settings DL.sub.adj for time delays for sending acknowledgements of the transmissions; (c) establishing TCP connections for transmissions meeting the SoS requirements in accordance with levels of precedence of the transmissions, said transmissions being encrypted using High Assurance Internet Protocol Encryption (HAIPE) or an IP Security(IPSec) protocol; (d) monitoring compliance of the established TCP connections with the MLPP scheme; (e) temporarily aborting TCP transmissions failing to meet the SoS requirements; and (f) repeating steps (b)-(f) until the transmission is complete.

16. The method of claim 15, wherein the network is a wireless, wired, or fiber-optic communication network.

17. The method of claim 15, wherein step (b1) comprises: determining the settings CWND.sub.adj using an equation: CWND.sub.adj=max{CWND.sub.current,CWND.sub.required}, where CWND.sub.current is a current setting for the congestion window,CWND.sub.required=RTT.sub.e.times.MSS)/L.sub.q, RTT.sub.e is an estimated transmission round trip time, MSS is a maximum size of a transmission unit, and L.sub.q is a transmission latency requirement.

18. The method of claim 15, wherein RTO.sub.max is determined using an equation: RTO.sub.max=(L.sub.q-D.sub.e-.alpha.j.sub.e)/(I+1), where L.sub.q is a transmission latency requirement, D.sub.e is a transmission transfer delay, .alpha. is apre-determined constant, j.sub.e is a jitter delay, and I is a number re-transmissions.

20. The method of claim 15, wherein step (c) comprises: establishing the TCP connections meeting both of the following conditions: RTO.sub.max>.beta.RTT.sub.e, and RWND>CWND.sub.required, where RTO.sub.max is a maximum re-transmissiontime-out interval; .beta. is pre-determined constant, RTT.sub.e is an estimated transmission rout trip time, RWND is a maximum size of a congestion window at a destination of the transmission, and CWND.sub.required=(RTT.sub.e.times.MSS)/L.sub.q,RTT.sub.e is an estimated transmission round trip time, MSS is a maximum size of a transmission unit, and L.sub.q is a transmission latency requirement.

21. The method of claim 20, wherein RTO.sub.max is determined using an equation: .times..function..alpha..times..times..times. ##EQU00005## where P.sub.e is an estimated transmission loss ratio, D.sub.e is an estimated transmission transferdelay, J.sub.e is an estimated jitter delay, .alpha. is a pre-determined constant, I is a number of re-transmissions, i is an integer, 1.ltoreq.i.ltoreq.I, and L.sub.q is a transmission latency requirement.

22. The method of claim 20, wherein RTO.sub.max is determined using an equation: RTO.sub.max=L.sub.a-D.sub.e-.alpha.J.sub.e)/(I+1), where L.sub.a is a transmission latency requirement, D.sub.e is a transmission transfer delay, .alpha. is apre-determined constant, J.sub.e is a jitter delay, and I is a number re-transmissions.

23. The method of claim 15, wherein step (e) further comprises: dynamically controlling the TCP connections as follows, wherein Level of Precedence 1 (LP1)<Level of Precedence 2 (LP2)<Level of Precedence 3 (LP3): TABLE-US-00006 TRAFFICCONDITIONS TCP CONNECTION STATUS No violating incidents Establish TCP connections meeting requirements to the SoS Occurrence of 1.sup.st violating Abort TCP connections having a level of incident during current precedence LP = LP1 for a pre-determinedcommunication session time interval T1 or a pre-determined number M1 of the transmissions Violation incident occurs Abort TCP connections having a level of during the time interval T1 precedence LP .ltoreq. LP2 for a pre-determined or M1 transmissionstime interval T2 or a pre-determined number M2 of the transmissions Violation incident occurs Abort TCP connections having a level of during the time interval T2 precedence LP .ltoreq. LP3 for a pre-determined or M2 transmissions time interval T3 or apre-determined number M3 of the transmissions After the time interval T2 or M2 trans- missions, abort the TCP connections having a level of precedence LP = LP1 Violation incident occurs Abort TCP connections having a level of during the time interval T3precedence LP .ltoreq. LP2 for a pre-determined or M3 transmissions time interval T4 or a pre-determined number M4 of the transmissions.

24. The method of claim 15, wherein step (d) further comprises: monitoring compliance of the TCP connections in a real time.

Description:

FIELD OF THE INVENTION

The present inventions generally relates to the field of communication networks and, in particular, to techniques for controlling traffic flow in a communication network.

BACKGROUND OF THE INVENTION

Communication networks may experience traffic congestion events. Traffic congestions are more likely to occur in networks using data encryption techniques and are detrimental to transmissions carrying time-sensitive information that, unlessdelivered within a specific time interval, may become outdated or invalid. In operation, to eliminate possibility of sending outdated information, such transmissions should be either delivered on time or terminated, i.e., not executed.

In military networks and some commercial networks, time limitations for delivery of time-sensitive transmissions are established, in accordance with an assigned level of precedence, i.e., priority, of the respective transmissions, based on aMultilevel Precedence and Preemption (MLPP) scheme. In particular, Speed of Service (SoS) requirements are given for each level of precedence. However, conventional techniques used for controlling traffic flow in Internet Protocol (IP) basedcommunication networks cannot guarantee compliance with the SoS requirements based on the MLPP scheme.

Therefore, despite the considerable effort in the art devoted to controlling traffic flow in communication networks, further improvements would be desirable.

SUMMARY OF THE INVENTION

Embodiments of the present invention are generally directed to Internet Protocol (IP) based communications over military or commercial communication networks.

One aspect of the invention provides a method for controlling traffic flow in an IP based communication network. The method comprises steps of adjusting settings for Transmission Control Protocol (TCP) connections in accordance with levels ofprecedence and corresponding speed of service (SoS) requirements for the respective transmissions; authorizing TCP connections meeting the SoS requirements; establishing the TCP connections in accordance with SOS to their levels of precedence; andmonitoring compliance of the TCP connections with the SoS requirements.

Another aspect of the present invention provides a method for controlling traffic flow of an IP based communication network comprising steps of adjusting settings of TCP connections based on (i) a level of precedence of a transmission encryptedusing High Assurance Internet Protocol Encryption (HAIPE) or an IP Security (IPSec) protocol and (ii) requirements to the SoS of a Multilevel Precedence and Preemption (MLPP) scheme; establishing TCP connections for transmissions meeting the SoSrequirements in accordance with their levels of precedence; aborting TCP connections for transmissions failing to meet the SoS requirements; and monitoring compliance of the TCP connections with the MLPP scheme.

Yet another aspect of the present invention is a communication network adapted for using at least one of these methods.

Various other aspects and embodiments of the invention are described in further detail below.

The Summary is neither intended nor should it be construed as being representative of the full extent and scope of the present invention, which these and additional aspects will become more readily apparent from the detailed description,particularly when taken together with the appended drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a high-level, schematic diagram of an exemplary communication network adapted for using the present invention.

FIG. 2 is a flow diagram illustrating a method for controlling traffic flow in a communication network in accordance with one embodiment of the present invention.

To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures. The images in the drawings are simplified for illustrative purposes and are not depictedto scale.

The appended drawings illustrate exemplary embodiments of the invention and, as such, should not be considered as limiting the scope of the invention that may admit to other equally effective embodiments. It is contemplated that features orsteps of one embodiment may beneficially be incorporated in other embodiments without further recitation.

DETAILED DESCRIPTION

The term "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any embodiment or design described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments ordesigns.

Referring to the figures, FIG. 1 depicts a high-level, schematic diagram of an exemplary communication network. In exemplary embodiments, the network 100 is an Internet Protocol (IP) based wireless, wired, or fiber-optic communication networkcompliant with a Multilevel Precedence and Preemption (MLPP) scheme. Additionally, or alternatively, the network 100 is compliant with at least one data encryption protocol, for example, High Assurance Internet Protocol Encryption (HAIPE) or an IPSecurity (IPSec) protocol.

Illustratively, the network 100 comprises a network core 110 and a plurality of network edges 120 (network edges 120A and 120B are shown). In the depicted embodiment, each network edge 120 generally includes an optional encryption module 122,an edge proxy 124 coupled to respective client devices 130, and a TCP module 140 coupled to the edge proxy 124. The client devices 130 may be connected to the TCP module 140 directly or via a local area network (LAN).

The TCP module 140 may be realized as a software module, a hardware device, or a combination thereof. In some embodiments, the TCP module 140 is a portion of the edge proxy 124. In the network 100, traffic flow from the client devices 130 tothe TCP module 140 is controlled at the edge proxy 124, as discussed below in reference to FIG. 2.

In operation, via the TCP modules 140, the edge proxies 124 exchange transmissions between each other. The transmissions contain messages addressed by particular operators of the client devices 130 of one edge proxy, e.g., edge proxy 120A, toone(s) of another edge proxy, e.g., edge proxy 120B. Herein, the term "transmissions" refers to messages comprising one or more units of packetized data, i.e., transmission units, addressed to the same interim destination, such as the edge proxy 124,and terms "transmitting" and "sending" are used interchangeably.

At a TCP module of a transmitting edge proxy (for example, TCP module 140A of the edge proxy 124A), data streams received from the client devices 130A are terminated and reconstructed in transmission units, or segments, for delivery to a TCPmodule at a common interim destination (for example, TCP module 140B of the edge proxy 124B) and forwarding to the addressed client device(s).

The transmitted units are numbered to identify their order and quantity. After the received units are checked for transmission-induced errors, the receiving edge proxy sends back to the transmitting edge proxy an acknowledgment confirming whichunits were received in a good order. In response to the acknowledgment, the transmitting edge proxy re-transmits the missing or corrupted units. In the network 100, transmissions and re-transmissions are executed in compliance with requirements of theMLPP scheme.

FIG. 2 depicts a flow diagram illustrating a method 200 for controlling traffic flow in a communication network in accordance with one embodiment of the present invention. Method steps of the method 200 are executed at transmitting terminals ofcommunication networks and illustratively discussed herein in reference to the network 100, where these steps may be performed at the edge proxies 124 of the network edges 120. To best understand the invention, the reader should refer to FIGS. 1-2simultaneously.

In various embodiments, the method steps are performed in the depicted order; however at least two of these steps or portions thereof may be performed contemporaneously, in parallel, or in a different order. For example, at least portions ofsteps 210 and 220 or steps 230 and 240 may be performed contemporaneously or in parallel. Those skilled in the art will readily appreciate that the order of executing at least a portion of other discussed below processes or routines may also bemodified.

Hereafter, aspects of the present invention are described within the context of IP-based communication networks and, in particular, communication networks where information (for example, voice, video, or alphanumerical data) is transmitted in anencrypted format. These networks may comprise wireless, wired, or fiber-optic communication links. It has been contemplated and is within the scope of the present invention that the method 200 may also be utilized within the context of other types ofcommunication networks that are adapted for exchanging digitized information.

At step 210, parameters of a transmitting terminal (for example, edge proxy 124) are adjusted. In one embodiment, settings for at least one of a congestion window of the edge proxy, a re-transmission time-out, or a time delay for sending anacknowledgment for a received transmission are adjusted. More specifically, these settings are selectively adjusted for transmissions having different levels of precedence, for example, Routine, Priority, Immediate, Flash, or Flash Override levels ofprecedence of the MLPP scheme. Herein, the terms "congestion window" and "re-transmission time-out" refer to a number of outstanding transmission units and a time interval for re-transmitting missing or corrupted transmission units, respectively.

An adjusted setting CWND.sub.adj for the congestion window is determined using an equation: CWND.sub.adj=max{CWND.sub.current,CWND.sub.required}, (Eq. 1) where CWND.sub.current is a current setting for the congestion window andCWND.sub.required is a setting for the congestion window that, at a transmitting edge proxy, allows to meet a speed of service (SoS) requirement of the MPPL scheme. In particular, CWND.sub.required=(RTT.sub.e.times.MSS)/L.sub.q, (Eq. 2) where RTT.sub.eis an estimated transmission round trip time, MSS is a maximum size, in bytes, of a transmission unit, and L.sub.q is a maximum value of transmission latency that allows to meet the SoS requirement of the MLPP scheme.

An adjusted setting RTO.sub.adj for the re-transmission time-out is determined using an equation: RTO.sub.adj=min{(N.times.RTT.sub.e),RTO.sub.max}, (Eq. 3) where N is a pre-determined constant in a range from 1 to 3 (typically, N=2), RTT.sub.eis an estimated transmission round trip time between transmitting and receiving edge proxies, and RTO.sub.max is a maximum re-transmission time-out interval that allows to meet the SoS requirement.

In one embodiment, the RTO.sub.max may be determined using an equation:

.times..function..alpha..times..times..times..times. ##EQU00001## where p.sub.e is an estimated transmission loss ratio in the path between the transmitting and receiving edge proxies, D.sub.c is an estimated transmission transfer delay,J.sub.c is an estimated jitter delay, .alpha. is a pre-determined constant, I is a number of re-transmissions, and i is an integer, 1.ltoreq.i.ltoreq.I.

When the transmitting edge proxy uses Reed-Solomon error correction coding, the RTO.sub.max may be determined using an equation: RTO.sub.max=(L.sub.q-D.sub.q-.alpha.J.sub.e)/(I+1). (Eq. 5)

An adjusted setting DL.sub.adj for the time delay for sending an acknowledgment for a received transmission is determined as summarized in Table 1, where T.sub.m is a pre-determined time interval:

In operation, such settings DL.sub.adj for the time delay allow, at the transmitting edge proxy, to accelerate the outgoing traffic and meet the SoS requirements for the respective transmissions.

At step 220, the method 200 authorizes TCP connections for transmissions that meet both of the following conditions: RTO.sub.max>.beta.RTT.sub.e, and (Eq. 6) RWND>CWND.sub.required, (Eq. 7) where .beta. is a pre-determined constant,RWND is a maximum size of a congestion window at a destination point of the transmission (i.e., receiving edge proxy), and RTO.sub.max is determined using the equations Eq. 5 or Eq. 6, as discussed above in reference to step 210.

The condition of Eq. 6 allows to identify and terminate re-transmissions that acknowledgements arrived after expiration of the respective re-transmission time-out intervals. Correspondingly, the condition of Eq. 7 allows to identify andterminate transmissions that, due to an insufficient value of a congestion window at the destination point, cannot meet the SoS requirements. Transmissions meeting both of these conditions also meet the SoS requirements.

At step 230, the TCP connections are established for the transmissions meeting the SoS requirements, as determined at step 220. However, in operation, traffic congestions may cause transmission-violating incidents, such as unexpected excessivedelays or packet losses. To increase probability of meeting the SoS requirements for transmissions having advanced levels of precedence, the method 200 dynamically controls the TCP connections as follows, wherein LP1<LP2<LP3:

TABLE-US-00002 TABLE 1 TRAFFIC CONDITIONS TCP CONNECTION STATUS No violating incidents Establish TCP connections meeting requirements to the SoS. Occurrence of 1.sup.st violating Abort TCP connections having a level of incident during currentprecedence LP = LP1 for a pre-determined communication session time interval T1 or a pre-determined number M1 of the transmissions. Violation incident occurs Abort TCP connections having a level of during the time interval T1 precedence LP .ltoreq. LP2for a pre-determined or M1 transmissions time interval T2 or a pre-determined number M2 of the transmissions. Violation incident occurs Abort TCP connections having a level of during the time interval T2 precedence LP .ltoreq. LP3 for a pre-determinedor M2 transmissions time interval T3 or a pre-determined number M3 of the transmissions. After the time interval T2 or M2 transmissions, abort the TCP connections having a level of precedence LP = LP1. Violation incident occurs Abort TCP connectionshaving a level of during the time interval T3 precedence LP .ltoreq. LP2 for a pre-determined or M3 transmissions time interval T4 or a pre-determined number M4 of the transmissions.

At step 240, the method 200 monitors, in a real time, compliance of the TCP connections with the SoS requirements.

In further embodiments, in operation, at least a portion of steps 210, 220, 230, and 240 is cyclically repeated to accommodate changes in traffic conditions in the transmission path(s) between the transmitting and receiving edge proxies.

In exemplary embodiments, the method 200 may be implemented in hardware, software, firmware, or any combination thereof in a form of a computer program product stored on a computer readable medium and comprising one or more computer-executableinstructions.

Although the invention herein has been described with reference to particular illustrative embodiments, it is to be understood that these embodiments are merely illustrative of the principles and applications of the present invention. Thereforenumerous modifications may be made to the illustrative embodiments and other arrangements may be devised without departing from the spirit and scope of the present invention, which is defined by the appended claims.