Field Of The Invention
[0001] The invention relates to the field of multi-path communication. More particularly
the invention deals with a method for evaluating an available path bitrate based on
an acknowledgment path selection.
Background Of The Invention
[0002] Multi-path communication inherits from the multi-homing capability that is about
supporting several IP addresses (IP is an acronym for "Internet Protocol") to reach
a given network endpoint. Problems and issues to address in multi-path technology
are well known. For example, when using multiple paths to transmit information packets
from a first endpoint to a second endpoint, the first endpoint must use a packet distribution
strategy for balancing the data packets among the available paths linking the first
and second paths. The aim of such a strategy is to select paths depending on the application
(type of data) running in such endpoints and on the paths characteristic/status. The
latter must be consistent with the real network state and is therefore maintained
up to date through continuous measurements
[0003] Depending on the application and at least for video delivery, the following parameters
are commonly used to characterize a path: bandwidth, jitter, delay. These parameters
can be measured through an end-to-end measurement method. This may not be trivial
as the measurement process must not perturbate the data transfer. Hereinafter, the
bandwidth which is a parameter describing the ability of a path to deliver an amount
of data during a time duration is the main interest and later the expression "bitrate"
will be preferably used rather than the expression "bandwidth" which are considered
as equivalent.
[0004] For measuring such parameters an end-to-end transport protocol like for example Stream
Control Transmission Protocol (SCTP) or TCP may measure the available bitrate from
a Round-trip-time (RTT) measurement, which is considered as being equal to a difference
between the time of sending of a data packet by the first endpoint to the second endpoint
and the arrival time of an acknowledgment packet sent by the second endpoint to the
first endpoint, said acknowledgment being sent by the second endpoint immediately
after it receives said data packet.
[0005] However one showed that the strategies for sending acknowledgment of data packets
can affect the overall transmission as, for example in SCTP, where sending the acknowledgement
of data packet through the fastest available path speeds up the overall transmission.
If such a strategy is used, one cannot guaranty the acknowledgment comes back through
the same path than the data packet itself. Then, using the acknowledgment of data
for evaluating the Round-trip-time wouldn't be pertinent.
[0006] The problem is then : how to measure frequently the available bitrate on a path without
generating a high overload and in combination with a strategy of acknowledgment path
selection used for managing the data delivery ?
[0007] One of the goals of the present invention is to solve that problem.
Summary Of The Invention
[0008] The technical problem that present invention intends to solve is to measure an available
bitrate over a path P1 linking a first endpoint and a second endpoint by forcing the
second endpoint, at reception of a particular data packet sent from the first endpoint
via path P1, to send back an acknowledgement through the same path P1. In such situation
the data packet and the acknowledgment are both transmitted over the same path P1.
This can be achieved through the usage of a dedicated signalling/flag located in the
data packet which enable a particularization of a data packet.
[0009] Thus, the present invention concerns, according to a first aspect, a method for evaluating
at a first endpoint 1 an available bitrate BR over a path P1, P2, P3 linking the first
endpoint 1 and a second endpoint 2, a plurality of data packets being sent from said
first endpoint 1 to said second endpoint 2, said second endpoint 2 sending at each
data packet reception an acknowledgment to said first endpoint 1 through an acknowledgment
path P1, P2, P3, said acknowledgment path P1, P2, P3 being selected at each data packet
reception time for optimizing overall data packet transmission.
[0010] According to the invention, it involves a step of :
- inserting a flag A in a first data packet DP1 out of said data packets;
- sending said first data packet DP1 through said path P1;
- measuring a sending time t1 of the first data packet DP1 at the first endpoint 1;
- receiving an acknowledgment Ack sent by said second endpoint 2 through said path P1
after said second endpoint 2 has received said first data packet DP1 comprising said
flag A;
- measuring an arrival time t2 of said acknowledgment Ack at the first endpoint 1;
- evaluating the available bitrate BR from an interval between the sending time t1 and
the arrival time t2.
[0011] According to a second aspect, the invention concerns a device evaluating an available
bitrate BR over a path P1 linking a first endpoint 1 and a second endpoint 2, a plurality
of data packets being sent from said first endpoint 1 to said second endpoint 2, said
second endpoint 2 sending at each data packet reception an acknowledgment to said
first endpoint 1 through an acknowledgment path P1, P2, P3, said acknowledgment path
P1, P2, P3 being selected at each data packet reception time for optimizing overall
data packet transmission. Said device being located in said first endpoint.
[0012] According to the invention, it comprises:
- Means for inserting a flag A in a first data packet DP1 before said data packet is
sent to said second endpoint 2;
- Means for determining a sending time t1 of said first data packet DP1 from the first
endpoint 1;
- Means for determining an arrival time t2 at the first endpoint 1 of an acknowledgment
Ack sent by said second endpoint 2 through said path P1 after said second endpoint
2 has received said first data packet DP1 comprising said flag A;
- Means for evaluating the available bitrate BR from an interval between the sending
time t1 and the arrival time t2.
[0013] According to a third aspect, the invention concerns a device for evaluating an available
bitrate BR over a path P1 linking a first endpoint 1 and a second endpoint 2, a plurality
of data packets being sent from said first endpoint 1 to said second endpoint 2, said
second endpoint 2 sending at each data packet reception an acknowledgment to said
first endpoint 1 through an acknowledgment path P1, P2, P3, said acknowledgment path
P1, P2, P3 being selected at each data packet reception time for optimizing overall
data packet transmission, said device being located in said second endpoint 2.
[0014] According to the invention, it comprises:
- Means for detecting a flag A inserted in a data packet received by said second endpoint
2;
- Means for forcing the acknowledgment path to be identical to the path P1 over which
the data packet is sent to the second endpoint 2 when the flag A is detected in the
received data packet.
[0015] According to an embodiment, said flag insertion has no effect on size of said first
data packet DP1.
[0016] According to an embodiment, said data packets comprising a header, wherein the flag
A is inserted in a reserved bit of the header of the first data packet BR1.
[0017] According to an embodiment, a transport protocol is used for transporting data from
the first endpoint 1 to the second endpoint 2 through said path P1, P2, P3.
[0018] According to an embodiment, the transport protocol is SCTP.
[0019] According to an embodiment, said first endpoint 1 uses SCTP as a transport protocol
for sending data packets from first endpoint 1 to said second endpoint 2.
[0020] According to an embodiment, said flag A is located in one reserved bit of the header
of said first data packet DP1.
[0021] A first advantage of the invention is that it allows making available at sending
side a measure of the available path bitrate from a single flag inserted in a data
packet which generate no extra load. This is particularly advantageous in case of
evaluation available bitrate realized at high frequency.
[0022] A second advantage of the invention is that it relies on a mechanism of acknowledgment
carried out for data transfer. Even the data acknowledgment mechanism is used for
improving the overall transmission it can be briefly modified for contributing to
an evaluation of the available bitrate without inducing negative noticeable effect
on the overall transmission.
Brief Description Of The Drawings
[0023] The invention will be better understood and illustrated by means of the following
embodiments and execution examples, in no way limitative, with reference to the appended
figures on which:
Figure 1, represents a first and a second endpoint linked by paths P1, P2, P3;
Figure 2a, shows the details of a typical SCTP data packet (or data chunk);
Figure 2b, shows the details of an adapted SCTP data packet for carrying out a method
according to the invention.
Detailed Description Of Preferred Embodiments
[0024] It is to be understood that the figures and descriptions of the present invention
have been simplified to illustrate elements that are relevant for a clear understanding
of the present invention, while eliminating, for purposes of clarity, many other elements
found in typical digital multimedia content delivery methods and systems. However,
because such elements are well known in the art, a detailed discussion of such elements
is not provided herein. The disclosure herein is directed to all such variations and
modifications known to those skilled in the art.
[0025] Figure 1 shows a first endpoint 1 and a second endpoint 2 linked by three paths P1,
P2, and P3.
[0026] A transport protocol is used for transporting data from the first endpoint 1 to the
second endpoint 2 by said path P1, P2 and P3.
[0027] One wishes to measure the available bitrate on the path P1 in a situation where path
P1 is currently used for sending data from first endpoint 1 to the second endpoint
2.
[0028] Let's consider an amount of data D split and transferred in a form of data packets
to be sent from the first endpoint 1 to the second endpoint 2 over the path P1.
[0029] The first endpoint 1 sends successively the data packets over the path P1. At reception
of each data packet, the second endpoint 2 sends classically an acknowledgment to
the first endpoint. This acknowledgment is sent over one of the available paths P1,
P2, P3 and not mandatorily over the path P1 used for transporting the corresponding
data packet. The selection of the path P1, P2, P3 for transporting the acknowledgment
is performed for achieving a goal such as speeding up the overall transmission of
data packets form the first endpoint to the second endpoint. An example of a strategy
used to achieve this goal will be briefly described below. Then, the acknowledgments
are not always sent through the same path P1 and particularly are not always sent
through the same path P1 than the corresponding data packet. In a situation where
an acknowledgment is not necessarily transported on the same path than the corresponding
data packet, said acknowledgment cannot be used for evaluating the round-trip-time.
[0030] The strategy followed by the second endpoint 2 for selecting an acknowledgment path
is determined in relation to the pursued objective. For example, when the objective
is to optimize the overall speed of the data packet transport, a suitable strategy
would be to send the acknowledgment for the second endpoint 2 always over the fastest
path at the time of reception of the data packet. Due to congestion problem or any
other event, this fastest path can be P1, P2 or P3 depending on time.
[0031] The idea is to force briefly the second endpoint to interrupt the predefined strategy
for certain (particular) data packets. Then, the first endpoint 1 comprises a device
adapted for particularizing a data packet DP1 for example by inserting a flag A in
said data packet DP1 before it is sent from first endpoint 1.
[0032] When, the second endpoint detects it receives such a singular first data packet DP1
transported via said path P1, it sends in response a corresponding acknowledgment
which is mandatorily sent over the same path P1 to the first endpoint. For this particular
data packet, the second endpoint does not follow the strategy concerning the selection
of an acknowledgment path out of the available paths.
[0033] Advantageously, the flag insertion does not modify the overhead of said data packets.
The overhead is the ratio between the size of data comprised in a data packet and
the whole size of the packet. In particular, the insertion of a flag A doesn't modify
the size of the data packet.
[0034] A representation of information successively sent over the path P1 is shown on the
top of figure 1 where a dark box shows a first data packet DP1 in which a flag is
inserted (also named latter "particular data packet"). The other white boxes represent
data packets which don't comprise any flag inserted by the first endpoint. These later
data packets will be named later "normal data packet".
[0035] Following the reception by the second endpoint 2 of one normal data packet, said
second endpoint sends, in response, an acknowledgment to the first endpoint through
one of the available path P1, P2 or P3 depending on the predefined strategy.
[0036] Following the reception by the second endpoint 2 of a first data packet DP1 (particular
data packet), said second endpoint sends in response an acknowledgment Ack to the
first endpoint through the same path P1 than the one over which the data packet was
sent to the second endpoint.
[0037] The second endpoint determines if a received data packet is a normal data packet
or a particular data packet by examining the presence of a flag set to 1 inserted
in the data packet.
[0038] The first endpoint 1 comprises means for evaluating a date of sending t1 of this
first data packet DP1 from said first endpoint, means for storing said date of sending
t1 of this first data packet DP1 and also means for evaluating a date of reception
t2 of this particular acknowledgment by said first endpoint.
[0039] In case the protocol used for transporting data packets from the first endpoint to
the second endpoint is SCTP, one knows from the paragraph 3.3.1 of the technical document
"RFC 4960 - Stream Control Transmission Protocol" which can be found on the internet
at the following address "http://tools.ietf.org/html/rfc4960" the payload structure
of a SCTP data chunk (or SCTP data packet) .
[0040] This Payload structure is represented in figure 2a. It shows in particular the presence
of 5 bits which are reserved, by default set to zero and usually ignored at reception
of the data packet.
[0041] The invention proposes to use at least one of these reserved bit. Figure 2b shows
an exemplary embodiment of a modification of SCTP data packet structure for considering
one of the 5 reserved bits as a flag A. This flag can be set to 1 by the first endpoint.
[0042] When a data packet having such a flag A set to 1 is received by the second endpoint,
said second endpoints stops to follow the strategy for selecting a path for conveying
the acknowledgment of receipt to the first endpoint and mandatorily sends the acknowledgment
Ack through the same path it received the data packet.
[0043] Advantageously, the insertion of the flag consists in setting to 1 a reserved bit
in a header of data packet.
[0044] Reference herein to "one embodiment" or "an embodiment" means that a particular feature,
structure, or characteristic described in connection with the embodiment can be included
in at least one implementation of the invention. The appearances of the phrase "in
one embodiment" in various places in the specification are not necessarily all referring
to the same embodiment, nor are separate or alternative embodiments necessarily mutually
exclusive of other embodiments.
1. Method for evaluating at a first endpoint (1) an available bitrate (BR) over a path
(P1, P2, P3) linking the first endpoint (1) and a second endpoint (2), a plurality
of data packets being sent from said first endpoint (1) to said second endpoint (2),
said second endpoint (2) sending at each data packet reception an acknowledgment to
said first endpoint (1) through an acknowledgment path (P1, P2, P3), said acknowledgment
path (P1, P2, P3) being selected at each data packet reception time for optimizing
overall data packet transmission,
characterized in that it involves a step of:
- inserting a flag (A) in a first data packet (DP1) out of said data packets;
- sending said first data packet (DP1) through said path (P1);
- measuring a sending time (t1) of the first data packet (DP1) at the first endpoint
(1);
- receiving an acknowledgment (Ack) sent by said second endpoint (2) through said
path (P1) after said second endpoint (2) has received said first data packet (DP1)
comprising said flag (A);
- measuring an arrival time (t2) of said acknowledgment (Ack) at the first endpoint
(1);
- evaluating the available bitrate (BR) from an interval between the sending time
(t1) and the arrival time (t2).
2. Method according to claim 1, wherein said flag insertion has no effect on size of said first data packet (DP1).
3. Method according to claim 2, said data packets comprising a header, wherein the flag (A) is inserted in a reserved bit of the header of the first data packet
(BR1).
4. Method according to one of claims 1 to 3, wherein a transport protocol is used for transporting data from the first endpoint (1) to
the second endpoint (2) through said path (P1, P2, P3).
5. Method according to claim 4, wherein said transport protocol is SCTP.
6. Device for evaluating an available bitrate (BR) over a path (P1) linking a first endpoint
(1) and a second endpoint (2), a plurality of data packets being sent from said first
endpoint (1) to said second endpoint (2), said second endpoint (2) sending at each
data packet reception an acknowledgment to said first endpoint (1) through an acknowledgment
path (P1, P2, P3), said acknowledgment path (P1, P2, P3) being selected at each data
packet reception time for optimizing overall data packet transmission, said device
being located in said first endpoint (1),
characterized in that it comprises:
- Means for inserting a flag (A) in a first data packet (DP1) before said data packet
is sent to said second endpoint (2);
- Means for determining a sending time (t1) of said first data packet (DP1) from the
first endpoint (1);
- Means for determining an arrival time (t2) at the first endpoint (1) of an acknowledgment
(Ack) sent by said second endpoint (2) through said path (P1) after said second endpoint
(2) has received said first data packet (DP1) comprising said flag (A);
- Means for evaluating the available bitrate (BR) from an interval between the sending
time (t1) and the arrival time (t2).
7. Device according to the claim 6, wherein said first endpoint (1) uses SCTP as a transport
protocol for sending data packets from first endpoint (1) to said second endpoint
(2).
8. Device according to the claim 7, wherein said flag (A) is located in one reserved
bit of the header of said first data packet (DP1).
9. Device for evaluating an available bitrate (BR) over a path (P1) linking a first endpoint
(1) and a second endpoint (2), a plurality of data packets being sent from said first
endpoint (1) to said second endpoint (2), said second endpoint (2) sending at each
data packet reception an acknowledgment to said first endpoint (1) through an acknowledgment
path (P1, P2, P3), said acknowledgment path (P1, P2, P3) being selected at each data
packet reception time for optimizing overall data packet transmission, said device
being located in said second endpoint (2),
characterized in that it comprises:
- Means for detecting a flag (A) inserted in a data packet received by said second
endpoint (2);
- Means for forcing the acknowledgment path to be identical to the path (P1) over
which the data packet is sent to the second endpoint (2) when the flag (A) is detected
in the received data packet.