DEVICES WITH WINDOW - TIME - SPACE FLOW CONTROL (WTFC)

Abstract: In packet switching telecommunications networks, flow control is used to obtain optimal network working point, regulating the transmitter packet sending rate. The state of overload (congestion) or underutilization of the network can be detected explicitly using signaling from network nodes, or implicitly using number of packet (window W) and round trip time (T) measurements. The Window-Time-Space Flow Control (WTFC) is a method of determining the belonging part of network capacity, optimal packet sending rate and optimal window, based on the measured (W,T) point in the window-time space and knowledge about total network capacity (W0, T0). In this way, devices with WTFC, nodes and terminals, keep optimal network working point near the on average empty queues mode of operation. With networks utilizing WTFC, nodes can signal network parameters at connection establishment only. After that, all WTFC processing is done by terminal packet transmitter. WTFC transmitter determines both optimal window and optimal sending rate, thus improving regulation stability, limiting the number of packets in the network, and decreasing the variance of transmission rate.

Description: DEVICES WITH WINDOW - TIME - SPACE FLOW CONTROL (WTFC) DESCRIPTION OF THE INVENTION 1. FIELD OF THE INVENTION This invention concerns devices with data flow control, used in packet switched telecommunications networks. According the international classification (MKP) it is classified as: H 04 L 12/56 - SECTION H - ELECTRICITY, TRANSMISSION OF DIGITAL INFORMATION, Data switching networks, packet switching systems. 2. TECHNICAL PROBLEM Modern telecommunications networks use advances of information statistical multiplexing, achieved with packet switching, despite packet length is variable up to some limit (Internet) or fixed (ATM), and despite packets are forwarded individually or using virtual channels. Users segment their data to packets in terminal equipment and send them to the network, while network nodes route packets to their destinations. In case when, in the time of observation, a network node receives less packets than the capacity of output channels used to forward those packets, the network is underutilized. In case when more packets are received, some of them will be transferred up to the full capacity of output channels, and the rest will be buffered in node's memory. The network is overloaded, and congestion has occurred. Because of packet buffering, the average packet must wait for transmission of the previous packets, and its waiting time is prolonged. Statistical properties of incoming traffic (packet network terminals send packets at arbitrary moments) influence occasional congestion and network underutilization. To provide quality of service (QoS) it is necessary to minimize the number of packets in node's queues, but to the level that will provide satisfactory network utilization. This is optimal network working point, kept by congestion control measures, including congestion avoidance when congestion is not apparent, and congestion elimination, after for some reason congestion has occurred. The most important congestion avoidance measure is flow control. The flow control in packet networks is achieved by packet sending rate regulation in network terminals. In case of network underutilization, terminals should increase, otherwise, in case of congestion, they should decrease packet sending rate. 3. PRESENT STATE OF THE TECHNIQUE The flow control problem is apparent for last ten years, and a number of investigators work on it worldwide. Despite numerous scientific papers and granted patents, the very fact, that old unsatisfactory solutions from 1988. are used in the Internet nowadays, shows that right solution of the flow control problem has not been discovered yet. The basic mechanism of congestion occurrence is packet buffering in node memory. Packets are stored to queues, waiting to be transferred through channels. Prolonged packet waiting time is a consequence of packet buffering. The time packet spends on it's route from source to destination, and similar time acknowledgment spends in backward direction, are together called Round Trip Time (RTT, or simply T), and its prolongation because of waiting we consider to be basic quality of service measure in packet switching networks. The flow control solution is searched using two approaches. In the first approach, network nodes do not provide data about network state, but rather store excessive packets in memories, or discard remaining packets when memories are full. Terminals of such networks measure round trip time T, window W (the number of their own packets on the network) and packet losses, and try to adjust their packet sending rate. In the second approach, network nodes provide data about network state implicitly (e.g. enforcing waiting time or packet loss rate) or explicitly (e.g. sending forward or backward congestion indications, or even signaling the optimal sending rate for the data flow). When explicit notification is used, the data processing load in nodes can be very large, prohibiting the use of some recently proposed solutions. In all cases, except when optimal rate is explicitly signaled, packet transmitter defines new optimal rate using embedded transmitter algorithms (linear increase and exponential decrease of rate are most frequently used). 4. THE INVENTION ESSENCE EXPOSITION The invention in this patent request deals with the solution of the congestion in packet networks by proposing improved flow control method. The novelty of the invention, related to the present state of the technique, is flow control in window - time space, used to achieve optimal packet sending rate and uniform times between packets. This provides high network utilization and high quality of service, while keeping network node processing load at minimal level. Devices with window - time - space flow control (WTFC) use network model based on the determined single server queuing system and finite number of packets in the network. The total network capacity point (W 0 ,T 0 ) defines window - time plane (or space), which contains network response curves for various fractions of corresponding capacity. Each response curve has a break point, which lie on the hyperbola througli (W 0 ,T 0 ). After a point (W,T) is measured, it is possible to determine whether it is positioned above or below the hyperbola, and apply one of formula sets to calculate corresponding capacity fraction and break point coordinates of the response curves. Coordinates of the break point are used to calculate optimal window and delay, and their ratio to obtain optimal packet sending rate. Nodes can signal the total network capacity (W 0 ,T 0 ) in form of elementary network channel parameters. Using the bottleneck concept, device with WTFC control obtains (W 0 ,To) point coordinates. Alternatively, (W 0 ,T 0 ) can be estimated from previous measurements. 4. The Black Box Model of the Network We observe data communications network as a black box, meaning that network structure is not known to the packet sender (transmitter). Packet sender sends packets to the network and receives acknowledgments. It observes round trip time as an difference between time of the acknowledgment and time of packet emitting, Equation 1: T = t(a k ) - t(p k ) 1 In the same time, the window is measured as the difference, at the moment of packet emitting, between packet sequential number and last acknowledgment sequential number, Equation 2: W = p k - aj 2 The receiver has a role of packet destination and acknowledgment generation. We model a network using single server queuing system, Figure 3. Regarding the characteristics of telecommunications channel, Equation 3 is valid: T = T q +T 0 =T q +T s +T p T 0 =T S +T p where T, total waiting time of the model, is round trip time, T q is queue waiting time and T 0 is total serving time, equals the sum of propagation time T p (depending on channel length and propagation speed) and transmission time T s (a time needed to send packet to the channel, depending on packet length and channel capacity). Considering at most one packet in the server, for a single server system we have Equation 4: w=w q + w 0 =w q +w s +w p 4 w 0 =w s +w p = ι +w p where W is window (total number of packets), W q is number of packets in the queue and W 0 is total number of packets currently served, equals the sum of packets in the server W-=l.and number of packets in the channel W p . For packet switching networks Equation 5 is valid: τ s =w s = = i s C w,=ι C μ M T = w — = W — => W = T u = T =r = — p p C p μ p p μ P M T s where C is channel capacity or transmission speed (bits per second), M is average length of packets (bits per packet) and μ is serving rate (packets per second). We also use λ to mark packet arrival rate (packets per second). 4.2. Optimal Working Point of the Packet Switching Network Optimal working point of the packet switching network is determined as a compromise between quality of service (delay) and network utilization, kept to provide economical operation of the network. If a network is modeled using the single server queuing system, Figure 3, we use response (delay) curves, i.e. delay dependence on network load. M/M/l model with markov (exponential), G/G/l model with general, and D D/l model with deterministic probability dense functions of packet interarrival and service times, are on our disposal. Deterministic model is a special case of general one when variances are equal to zero. If we sketch approximate delay curves, it is obvious that lowering the variance the G/G/l curves smoothly transform to D/D/l one, Figure 4. The M M/l case can be considered the worst one because of relatively high variance. Optimal working point can be determined using the maximum network power (ratio between throughput and delay) or the quality of service criteria. Using maximum power criteria, Figure 4, lowering the variance network utilization raises slowly, but with simultaneous increase of quality of service. Using constant quality of service criteria, Figure 4, lowering the variance network utilization raises fast. Delay curve close to the D/D/l one is obtained by lowering the variance for only one order of magnitude. One can conclude that flow control mechanism, besides adapting the packet sending rate, should provide low variances of packet interarrival times and packet service times. In that case, high network utilization is possible while keeping quality of service constant, and the flow control mechanism can use delay curves close to D/D/l one. 4.3. The Window - Time Space Delay curves on Figure 4 are sketched for the case of infinite possible number of packets in the network, and all of them have infinite value when network load approaches 100%. In praxis, we can limit the number of packets a transmitter is allowed to "end to the network. That number is called maximum window. IF we apply the finite window concept (also called preservation of number of packets in the network) to the deterministic queuing system, we get a D/D/l/W system with delay curve according Figure 5. The delay function gives a curve with broken in the (Wo,T 0 ) point. Wo is optimal window that makes full network utilization possible, and consists of one packet in the server an Wo-1 packets in the channel. The curve is defined with Equation 6: Lowering the window, delay time remains constant and equal to To=T p +T s , i.e. the sum of the propagation and servicing times, Equation 3. The network is underutilized. Increasing the window packets are stored to the queue and linear delay increase, according to the line through origin, occurs. Network is overloaded, but delay time does not raise to infinity because number of packets is limited (finite). Using Equation 6 and delay curve from Figure 5, we define window-time space, i.e. W,T plane. Each point of the plane represents a (W,T) pair of window and delay time. If measured (W,T) point is positioned on the curve, Figure 6, the communications network is presented exactly with this D/D/l/W system. Otherwise, when measured dot is out of the curve, the network parameters have been changed, and new working point should be obtained. 4.4. Network working point estimation If user knows the coordinates of the (W 0 ,T 0 ) point, and consequently the corresponding delay curve, and if he measures the (W,T) point positioned on the delay curve, he can assume that the total network capacity is on his disposal, and that his optimal working point is exactly (W 0 ,T 0 ). In praxis, user shares network capacity with others. We assume that all of them use a little, but equal (fair) portion of the total capacity, Equation 7: μ j =αμ ; α e(θ,l) 7 where α=l/n is a factor dependent on number of users. The sloped part of the curve is defined with Equation 8: T = W- or T = W T o( α ) αμ W 0 (α) and consequently, Equation 9: T 0 (α) =W 0 (α) λ = αμ α μ Considering T p is independent of α, we have Equation 10: T P = W p (α)-i- => W p (α) == T p αμ 10 and we can calculate delay for the flat part of the delay curve, Equation 1 1 : T 0 (α) = W 0 (α) — = (w p (α) + l)— = W p (α)-L + — = T p + — 11 α μ ' α μ αμ α μ α μ The delay curve is determined with Equation 12: Depending on parameter α we got a family of curves whose break points lie on the hyperbola like curve, Figure 6. From the Equation 11 it is obvious that new optimal delay time T 0 (α) consists of constant propagation time and transmission (service) time which is increased for several times because other users utilize network capacity. Measuring a (W,T) point in the arbitrary point of the W,T plane, one from the family of delay curves is chosen and explicit calculation of parameter α is enabled. We first check whether the measured (W,T) point is above die hyperbola using two criteria, Equation 13: T> T 0 (α) 13 W≥W 0 (α) or using Equations 9 and 10: τ>τ p + 1 14 α μ W > T p α μ + l 15 Arranging and combining Equations 14 and 15 we get Equation 16: Using the formula for T p , Equation 3, we get Equation 17: that we use to obtain basic criteria for judging whether point (W,T) lies above or below the hyperbola, Equation 18: ™ - [ >_-, J o 18 Wo - 1 (T- T 0 )W 0 +T 0 If condition in Equation 18 is fulfilled, the (W,T) point lies above the hyperbola, and parameter α is calculated using Equation 19: τ. α*μ._.- α*i W 0 _.«- W* 0 i T 19 If condition in Equation 18 is not fulfilled, the (W,T) point lies below the hyperbola, and parameter α is calculated using Equation 20: Obtained α is used to calculate optimal working point (W 0 (α),T 0 (α)) according to the Figure 7. If the (W,T) point lies above the hyperbola, the transmitter has overloaded the network and it should reduce its packet sending rate. If the (W,T) point lies below the hyperbola, network is underutilized and packet sending rate should be increased. The packet emitting period to(α) is calculated from the optimal delay and window ratio, Equation 21: If condition in Equation 18 is fulfilled, using Equation 19 we get Equation 22: W Q T T Q t 0 (α) = Σ 22 WT„ W„ W If condition in Equation 18 is not fulfilled, using Equation 20 we get Equation 23: ) = w 0 (τ- τ o) + τ o = τ _ = χ _ WQ_- I = T _ T 23 ° ' T 0 W 0 ° W 0 W 0 p Equations 22 and 23 are simple and suitable for efficient implementation of the transmitter software. Besides optimal packet sending period we also calculate optimal window to ensure finite number of packets in the network, Equation 24: W 0 (α) (W 0 - l)α + l - 24 If condition in Equation 18 is fulfilled, using Equation 19 we get Equation 25: Wo( ) = (W 0 - l)^ + l = T p ^+ l 25 ° l M ° ; W 0 T p T If condition in Equation 18 is not fulfilled, using Equation 20 we get Equation 26: + l 26 In praxis, formulas with T p from Equations 25 and 26 should be used for their simplicity. 4.5. Total network capacity estimation The total network capacity estimation is concerned with determination of the (W 0 ,To) point coordinates. In reality, network is very complex structure and transmitter, using the black box approach, under the total network capacity in fact determines the capacity of the path used to transfer it's packets. In networks with virtual path (ATM, X.25) this path is always the same for the given connection. In networks without virtual channel (Internet) packets are forwarded individually, where it is observed that they follow the same forward path in great percentage, while acknowledgments follow different backward path. The total capacity can be estimated using the measured parameters, or signaled from the network nodes. Estimation method is less precise, but does not require network nodes processing It appears to be more suitable for networks without virtual channels. Signaling method is more precise, but requires additional network nodes processing in the phase of connection establishment. It appears to be more suitable for networks using virtual channels. Alternatively, signaling method can be used in networks without virtual channel when network nodes signal total capacity for every packet forwarded. With estimation method, measurements of round trip time T, window W and service time T,=l/μ are available. Service rate μ is limited with the slowest channel on the path, the bottleneck channel. If minimal round trip time T=T 0 and serving time T s are measured, Equation 27 follows: T p = T 0 - T s and W 0 = ^ = T 0 μ 27 The measurement of parameters T p and T, can be difficult. We have supposed that minimal round trip time measured is equal to T 0 . In real network there is no guarantee that measured minimal round trip time even approaches real To. Similar difficulties are present with serving time T s measurement. The packet pair method gives acceptable results on simple networks only, because there is no way to avoid the influence of phase effects from other users. Packets from a pair can be spread apart after the bottleneck channel. With signaling method, we start from the assumption that packet forwarding path will not change, or that network with virtual channel is in question. Here we analyze channel parameters that one can obtain from the given node. The channel is uniquely determined with its capacity C * (b/s) and propagation delay T pι . The total propagation delay on the m-channel path is of interest for user, Equation 28: T p0 = ∑T pi ; i = l...m 28 i and that value fully corresponds to the propagation time of the single server model. Transmission (service) time is variable and in accordance to Equation 5 depends on channel capacity and mean length of the packet. Concerning that the same packets are forwarded along the path, the same packet length distribution can be observed on all segments, resulting that differences in transmission times depend only on individual channel capacities. Total service time on the path is, Equation 29: T s0 = ∑T si ; i = l...m 29 i However, a path consists of serial connection of channels, with optimal speed equal to the speed of the slowest channel. Here we use the bottleneck concept, Equation 30: T sb = max(T si ) ; i = l- --m 30 For the transmission time we use bottleneck serving time T,_ according to Equation 30, while transmission times of other channels can simply be added to the propagation time, Equation 31 : To = ∑τ oi = ∑τ pi + ∑τ si = ∑τ pi + ∑τ si +τ sb 31 i i i i i≠b Using Equation 3 we get Equation 32: T p = ∑T pi + ∑T si = T p0 + ∑T si and T s = T sb 32 i i≠b i≠b To achieve efScient operation of network nodes, it is optimal to signal elementary channel parameters, that can be used at the transmitter to calculate needed values. Nodes can signal total- propagation time by adding propagation times of their own channels to the value of appropriate cumulative variable in the packet header, Equation 33: T p0 = ∑T pi 33 i Concerning the transmission time depends on packet length M and channel capacity, it is convenient for a node to signal the channel capacity. Using Equation 5 for a single server model, we have Equation 34: Network nodes should accumulate reciprocal values of channel capacity to another cumulative variable in the packet header. According Equation 31, we also need the bottleneck service time, which can be easily obtained by signaling the bottleneck capacity, Equation 35: C b = min(C j ) ; i = l--- m 35 i A node will signal the bottleneck channel capacity by inserting to the packet header variable the capacity of its own channel only if it is lower than current value of the variable. Transmitter, knowing the mean length M of it's own packets, calculates transmission (service) time T s , Equation 36: T. -5. 36 c„ and propagation time T p , Equation 37: T p = ∑T pi + ∑T si - T sb = T p0 +T s0 - T s =T p0 + m ∑ ± - ) 37 i i \ i '-'j *-(, ' Minimal propagation time T 0 is calculated according to Equation 3, and window W 0 according to Equation 27. 4.6. Total network capacity correction At the beginning of operation, i.e. at the or immediately after the logical channel establishment, transmitter estimates initial values for (W 0 ,T 0 ). Estimated parameters may not be correct. During the operation, transmitter can measure such a dot (W,T), that does not correspond to the actual W,T plane, Figure 8. If parameters (Wo,T 0 ) are estimated correctly, measured dot can not be located in the area defined with Equation 38: on Figure 8 under the delay curve, because T 0 is minimal serving time and W 0 is a window of packets needed to fill the channel and server. Suppose, instead, that (Wo,T 0 ) are incorrect in a way that real network capacity is greater than estimated. New network capacity point (Wό ,Tό) will be positioned in the part of W,T plane below the delay curve on Figure 8. Two cases are possible, Equations 39 and 40: T<T p 40 In the case of Equation 39, the (W 0 ' , T 0 ' ) point is located below the delay curve, but above the horizontal line T p , Figure 8. In that case, three possibilities of using earlier measurements are available, to assume that T p was correct, that T, was correct or that window W 0 , i.e. ratio To/T„ was correct. T p correct assumption: We can assume that propagation time T p is estimated correctly, meaning that network (bottleneck) capacity is wrong. In the case of lower capacity, the effect is the same as the regular corresponding capacity fluctuations due to change in number of other data flows. In the case of capacity increase, new working point (Wg ,T ) should be estimated. The assumed T p correctness implies that path is not changed, and the difference between old and new value of optimal delay, T 0 -To , can according to Equation 3 appear because the lower service time T, only. Here we use the property of curve W 0 (α), Equation 11, that it extends to the area for α>l, or to the right in W,T plane where W>W 0 , the feet that was not used before. According to Figure 8, the curve is extended to the right of point W 0 . Suppose a situation when, after using parameters (W 0 ,T 0 ), a new round trip time T P <T<T 0 is measured. We take this value as the new minimal time: T 0 ' = T 41 It is necessary to determine new window Q . We start with Equation 17 and get Equation 42: T T' T_ = T 0 °- = T 0 ' °- 42 P W 0 ° W,5 resulting with Equation 43: Transmitter will constantly track difference between T 0 and T, and when needed adjust total network capacity parameters using Equations 42 and 43. Assumption that earlier value of T p was correct is very risky because of smooth hyperbola slope for α>l. If T p parameter was incorrect, optimal window correction using Equation 43 gives unacceptably high values. T, correct assumption: If we assume that transmission time T s is correct, we have badly estimated T p based on incorrect T 0 . In that case we use new minimal value according to Equation 41, and modifying Equation 27 we get Equations 44 to calculate T p and W 0 : T p = T 0 ' - T s , W<; = ^- 44 If correct T $ assumption is only partly correct, Equations 44 give acceptable and stable results. New optimal window is lower than previous one. Wo=To/T, correct assumption: Here we assume that transmission and propagation times are evaluated with the same error. Based on the constant W 0 using new T 0 ' and according to Equation 41 we calculate new service time, Equation 45: T' T, = -i2- 45 W 0 and propagation time using Equation 44. This method provides stable results, because it preserves old optimal window. It is somewhat more aggressive compared to constant T, method, which results with lower window, but is still far more stable than the correct T p method. In the case of Equation 40, the (Wό ,Tό) point is located below the horizontal line T p , Figure 8. Because of T<T P , parameter T p is definitely not correct. We can suppose that major change in network operating mode happened, or that earlier estimation was completely wrong. As the consequence, we are aware tb^t previous value of W 0 , which should denote number of packets in the channel and in the server, in reality includes some packets in the waiting queue, Equation 46: W 0 = W 0 +W ( ; 46 However, because W q is unknown, we cannot simply determine W 0 ' . Here we can assume that such a drastic change in delay time has occurred without service rate decrease, Equation 47: - ≤i = > IL≤l . 47 μ' μ W<5 W 0 and consequently, Equation 48: Wn- >^W ft 48 In the same time we have actual measurement of window W. If new, minimal delay was measured with window larger than the value of Equation 48, we take measured value for Wό . Transmitter will operate using Equations 41 and 49: 4.7. WTFC auxiliary algorithms From the transmitter point of view, we have three outside events that stimulate its activity: 1. Data to be sent, delivered from communications user 2. Acknowledgment, received from the network 3. Interpacket delay timer expiration. We distinguish three phases in the flow control establishment: 1. First and further packets sending, but before first acknowledgment is received 2. After first acknowledgment, but before second one is received 3. After second acknowledgment is received. Transmitter will send packet to the network primarily after the interpacket delay timer expiration. If optimal window has already been achieved at that window, packet sending is postponed until next acknowledgment is received. Interpacket delay timer expiration we recognize as a credit, and only one credit can be memorized. Transmitter operation using optimal rate l/to(α) with one credit provides packet emitting without bursts, while usage of optimal window W 0 (α) criteria preserves finite number of packets in the network. This two parameters bring the network to the optimal working point. Connection startup algorithm: In die first phase, transmitter has no knowledge about the network capacity. This phase lasts until the first acknowledgment is received, i.e. equals (initial) round trip time T. Depending on network structure, distance and routing, and network load, round trip time can be anywhere between 1ms and more than 10s, the ratio of values is 1:10000. In the same time, available bit rate can be in range from 15.000 to 15.000.000 b/s or more. Networks are characterized with bandwidth-delay product χ+CT. When low transmission speed is in question, large delay is of no concern because small amount of data can be transferred during the single round trip time.. The situation is very similar with high speed low delay networks. In both cases, bandwidth-delay product is relatively low. Problems arise with high speed high delay networks, when bandwidth-delay product is high. With such networks, transmitter inactivity of several hundred milliseconds results with resource utilization loss of tenths of megabits. Parameter χ exactly represents number of bits in channel at full utilization, but in the same time the number of not transferred bits in case of transmitter pausing during one round trip time. It often happens that high χ network users need to transfer less than χ amount of data. That means that these data could be sent before the first round trip time period passes, only if transmitter should have known his relevant network capacity. On the other send, sending larger number of packets to the network in the first phase is questionable because working point of the network is not known. Here we use an algorithm that enables sending of moderate number of packets in the first phase, and still not to congest the low capacity network. If total capacity estimation is used, algorithm sends packet pair at the very beginning of the data transfer. Packets pi and p 2 are used to measure bottleneck capacity. If total capacity signaling is used, only on packet (pi) is sent at the beginning of operation. After that, transmitter continues to send packets periodically with exponential slowdown. The time between two subsequent packets k and k+1, t , is of double duration compared the time before previous packets k-1 and k, Equation 50: t k = t 0 2 k_l ; k > 2 50 where to is one half of the initial period. The graph of packet sending dynamics is presented on Figure 9. In the moment when first acknowledgment is received, the second phase begins. In this phase we wait for reception of second acknowledgment and we send packets using the achieved sending period Figure 10. First acknowledgment reception can occur in the first half of the period and we wait that half to expire to send the packet. Otherwise, if first acknowledgment is received in the second part of the period t k , new packet is emitted immediately. In both cases, timer is initiated to tk. i . This way, long waiting for ^ expiration is avoided, and lower ambiguity about packet emitting moment after the first acknowledgment is achieved. Because of this algorithm, during the first phase timer is always initiated to half of the desired value, and initial packet sending period is 2to. The same timer circuit can be used for startup as well as regular packet sending period determination. Measured window correction: The flow control algorithm calculates optimal working point using the measured pair (W,T), i.e. window and round trip time. Here, window is number of packets or octets in the network just at the moment when the packet, whose acknowledgment has just arrived and provided new (W,T) pair measurement, was emitted. With pure window control networks, new packet is sent at the moment when acknowledgment of some earlier packet was received. The window is an integer value, Figure 1 la. With WTFC network packet is emitted at the moment of transmission period timer expiration, which is independent of acknowledgment reception (under condition that optimal window has not been filled yet). Considering that last acknowledgment was received before the current packet emission, we can assume that a part of packet on the network is already transferred. The integer window value is corrected taking round trip time into account, Figure l ib. As we do not have exact information about the transferred data quantity, the linear approximation is used, Equation 51 : where t(Ak) and t(Aj) are moments of observed packet acknowledgment reception and of last acknowledgment reception, before observed packet emission took place. t(P k ) is the moment of observed packet emission. For and is identical to Equation 2. Corresponding capacity estimation algorithm: After second acknowledgment, a third phase of transmitter operation begins. We now have the total network capacity parameters (W 0 ,T 0 ), and we are able to establish flow control. In this phase, the most important event is acknowledgment reception. In that moment we have new (W,T) pair, suitable to calculate packet sending period to(α) and optimal window Wo(α). In praxis, parameter to(α) according Equation 22 should be used with care. The actual measurements of round trip time and window (W,T) are in fact data from the past. Parameter to(α) should be used to obtain optimal window in the future. Therefore, in real WTFC device the optimal window W 0 (α) is calculated first, and than working value tό(α) using Equation 52: t 0 (α) = — - 52 ' W 0 (α) Parameter filtering: Feedback system stability depends significantly upon delay. The network response to any transmitter action will be noticeable only after the round trip time. Therefore, two adaptive filters are used, depending on round trip time and window size: rate slowdown and rate period tό(α) filtering. Rate slowdown is used because WTFC model, based on D/D/l/W system, actually approximates real G/G/l model. Real working point should be positioned to die left and above of the W,T plane curve break point. Packet sending rate slowdown is achieved using empirical relation, Equation 53: t{f(α) = tj(α)(l +γT 0 ) 53 so when e.g. γ=0,l and To=ls about 10% of rate reduction is achieved. With low round trip times, good system stability is expected, and operation near the full network utilization is possible. With longer delays, rate slowdown improves stability of operation. Period tό'(α) , achieved using Equation 53, is additionally filtered using exponential smoothing, nonlinear regarding the direction of value change. If new rate is lower than previous, filtering is skipped, and new, larger value of t 0 '(α) is effective immediately. When rate is increased, the adaptive filter dependent on window size is used, Equation 54: ° [ K j tg(α) where factor β is forgetting factor dependent on window W 0 (α), Equation 55: Changing the values of a and b, the area of linear increase of β with W 0 (α) is changed. Changing the value of c, the slope of linear dependence is changed, and that is also the biggest filtering factor, achieved with large windows. Useful filtering parameters are e.g. a=0, b=10 and c=0,925. 4.8. Devices with window-time space flow control Packet switched data communications networks with window-time-space flow control (WTFC) are constructed using two basic types of equipment, WTFC nodes and WTFC terminals. Nodes generally forward packets, and are often called routers. Terminals are devices that allow users to access the network, and most frequently are user computers. Disregard the actual device construction and purpose, the important issue is that nodes and terminals perform the WTFC algorithms. To implement WTFC mechanisms, besides the well known packet and acknowledgment numbers, packet number must contain additional variables according the Table 1. In packet header we have dual variables of each kind, to enable acknowledgment transfer inside the backward packets. Table 1. Packet header variables needed for WTFC implementation Terminals with WTFC control include two essential modules, the transmitter and receiver of packets or other user data units processed with WTFC, Figure 1. Packet transmitter (101) forms packets dividing user data in segmentation process (102), or when no user data are pending for transmission, forms acknowledgment packets after the packet from the opposite direction is received, based on the receiver request. Initialization process (103) writes appropriate values to the packet header variables. Forward last acknowledgment variable a*r is set to the value of last acknowledgment number received, and backward last acknowledgment variable a * b is set to the value of the same forward variable, received in the opposite direction packet whose acknowledgment number is contained in the current packet. Forward sending time variable T(p- < )r is set to the value of current local time, and backward sending time variable T(p k ) b is set to the value of the same forward variable, received in the opposite direction packet whose acknowledgment number is contained in the current packet. If network is signaling total capacity, forward propagation time cumulative variable Tpor and forward reciprocal capacity value cumulative variable S c i f are cleared, and reciprocal minimal channel capacity variable Ci nunf is set to maximal value. In the same time, values from variables Tpof, S * r, i Cimi„f received in the header of the opposite direction packet, are copied to the same backward variables of the current packet. Formed packets are stored in the packet buffer (104) and sent to the packet sending process (105) in accordance with credit in credit buffer (108) from transmission rate to"'(<x) calculation process (107) and optimal window check (111) of W 0 (α), if current window is lower than optimal. W 0 (α) calculation process (110) uses Equations 25 and 26 to calculate it, and to'"(α) calculation process (107) works according to Equations 52 and 23, or 53 and 54, both using condition from Equation 18 from die area check process (112). After each acknowledgment reception, receiver signals to transmitter the acknowledgment number and time of acknowledgment, along with values stored in header variables listed in Table 1. Using these parameters, the (W,T) point measurement process (106) calculates particular values for T using Equation 1 an W using Equation 2, together with correction according the Equation 51. On every or some of acknowledgments received, depending on method applied, the network total capacity estimation and correction process (109) calculates parameters (Wo,To), and T p using Equations 27 through 49. Packet receiver (113) uses it's reception process (115) to receive packets from the channel and it's extraction process (114) to extract and deliver received data to the user, and needed header parameters and time of acknowledgment to the transmitter. In the same time, it sends an order to the transmitter to send acknowledgment included in d e opposite direction packet header, or using separate acknowledgment packet if currently there are no user data to be sent. Nodes (201) forward packets using forwarding process (202), and in the same time, on the WTFC networks, can signal total capacity parameters if signaling method is used, Figure 2. In that case, capacity signaling process (203) modifies forwarded packet header, updating the forward propagation time cumulative variable T p o f using Equation 33, forward reciprocal capacity value cumulative variable S c *r according Equation 34 and forward reciprocal minimal channel capacity variable Ci m mf using Equation 35. 5. SHORT DESCRIPTION OF FIGURES Figures 1 - 11 are used in exposition to achieve easier invention essence description and understanding. Figures 1 and 2 present the structure of WTFC devices, and the rest of them are used to illustrate the operation of WTFC algorithms. Figure 1. WTFC terminal structure Figure 2. WTFC node structure Figure 3. Queuing system with one server Figure 4. Delay curves and optimal working point for M/M/l, G/G/l and D/D/l models Figure 5. D/D/l/W model response Figure 6. Family of delay curves depending on α Figure 7. Optimal working point calculation Figure 8. Constrains in W,T plane Figure 9. Connection startup algorithm, with packet pair Figure 10. Packet sending algorithm after first acknowledgment Figure 11. Window calculation for a) window control and b) combined control 6. DESCRIPTION OF INVENTION REALIZATION Considering that modern terminals and nodes are realized using computer technology, invention can be realized by embedding described algorithms to the device software. Chapter 4.8. of the invention essence exposition is also the description of the invention realization. 7. DESCRIPTION OF INVENTION APPLICATION The invention can be applied by building data communications networks using devices with WTFC algorithms.

Claims: PATENT CLAIMS 1. Packet switching data communications networks (packet networks) comprising Window-Time- Space Flow Control, WTFC, constructed using: - WTFC terminals and - nodes (201) with or without WTFC control algorithms 2. The terminals of Claim 1, Figure 1, comprising WTFC algorithms and - WTFC receiver (113) of packets or other data unit under the WTFC control - WTFC transmitter (101) of packets or other data unit under the WTFC control. 3. Packet transmitter ( 101 ) of Claim 2 tiiat form packet in segmentation process ( 102) when user data exist and include in it's header acknowledgment data as ordered from the receiver, or form separate acknowledgment packet as ordered from the receiver, store packet in packet buffer (104) and emit packet through packet sending process (105) comprising initialization of header variables using initialization process (103). 4. Packet transmitter (101) of Claim 2 further comprising the packet sending initiation : - condition of packet sending period to'"(α) expiration (credit) in process of transmission rate clock signal with one credit buffer (108) - condition of optimal window W 0 (α) not being filled in process of optimal window check (111) that verifies whether current window is less than W 0 (α) are satisfied. 5. Packet transmitter (101) of Claim 2 further comprising: - calculation of to'"(α) in to'"(α) calculation process (107) according to Equations 52 and 23, and 53 and 54 - calculation of W 0 (α) in W 0 (α) calculation process (110) using Equations 25 and 26 - check measured point (W,T) position in area check process (112) using Equation 18 6. Packet transmitter (101) of Claim 2 further comprising: - parameters provided by receiver (113) after acknowledgment reception, - (W,T) point measurement in (W,T) point measurement process (106) using Equations 1, 2 and 51 - calculation and correction of parameters (W 0 ,T 0 ) and T p using total capacity estimation and correction process (109). 7. Packet receiver (113) of Claim 2, that after packet reception with packet reception process (115) extract data with extraction process (114) and deliver them to users, comprising extraction of parameters from the packet header mentioned in Table 1 using extraction process (114), and delivering them to the transmitter (101). 8. Initialization process ( 103) of Claim 2 comprising initialization of new packet header variables mentioned in Table 1 by: - setting the forward last acknowledgment variable a- f to the value of last acknowledgment number received, - setting backward last acknowledgment variable ajb to the value of the same forward variable received in packet from the opposite direction, whose acknowledgment number is carried by new packet, - setting forward sending time variable T(p k ) f to actual local time - setting backward sending time variable T(p k )b to die value of the same forward variable received in packet from the opposite direction, whose acknowledgment number is carried by new packet 9. Initialization process (103) of Claim 3 further comprising initialization of new packet header variables mentioned in Table 1 when total J etwork capacity signaling method is used, by: - setting forward propagation time cumulative variable T p o f to zero. - setting forward reciprocal capacity value cumulative variable S c - f to zero. - setting forward reciprocal minimal channel capacity variable Ci m i nf to the maximal value - copying values from variables T-^, Sc*r, i C * m j„ f received in the opposite direction packet to the same backward variables. 10. to'"(α) clock calculation process (107) with one credit buffer (108) of Claim 4 comprising connection startup algorithm according to Figures 9 and 10 for smooth packet sending, and after expiration of period initialized: - before first acknowledgment reception, and if there is no credit stored, increments credit buffer by 1 and reinitiates the same time period, - before first acknowledgment reception, and if there is credit stored, initiates double time period and initiates packet emitting, - after first acknowledgment reception sets credit buffer to 1 and initiates packet emitting. 11. Total capacity estimation and correction process (109) of Claim 6 comprising, when network capacity signaling med od is used, - calculation of T p according to Equation 37, - calculation of T 0 according to Equation 3, - calculation of W 0 according to Equation 27, applying extracted parameters from first or every packet received from the opposite direction. 12. Total capacity estimation and correction process (109) of Claim 6 further comprising, when network capacity estimation and packet pair methods are used, - calculation of T 0 using T 0 =T after the first acknowledgment is received, - calculation of W 0 using Wo=To/(T-T 0 ) after the second acknowledgment is received applying extracted parameters from every packet received from the opposite direction. 13. Total capacity estimation and correction process (109) of Claim 6 further comprising, when network capacity estimation and packet pair methods are used, if measured T<T 0 - correction of T 0 using To=min(T), - correction of W 0 using Equation 49 if T<T P , otherwise using Equations 43 and 44, - correction of T p using Equation 17, applying measured parameters from every packet received from the opposite direction. 14. Nodes (201) of Claim 1, Figure 2, that forward packets with forwarding process (202), comprising, when network capacity signaling method is used, capacity signaling process (203). 15. Capacity signaling process (203) of Claim 14 comprising the modification of first or every packet by - updating forward propagation time cumulative variable T p o f using Equation 33, - updating forward reciprocal capacity value cumulative variable S C j f using Equation 34, - updating forward reciprocal minimal channel capacity variable m i nf using Equation 35

Inventors: OZEGOVIC JULIJE, OZEGOVIC, JULIJE
Applicants: OZEGOVIC JULIJE, OZEGOVIC, JULIJE
Application year: 1999
Main classification: H04L12
IPC codes: H04L12, H04Q11