U.S. patent application number 12/336496 was filed with the patent office on 2009-06-25 for method and a device for acknowledging data received by a communication device in a communication network.
This patent application is currently assigned to CANON KABUSHIKI KAISHA. Invention is credited to Pascal Lagrange, Patrice Nezou.
Application Number | 20090161572 12/336496 |
Document ID | / |
Family ID | 39768667 |
Filed Date | 2009-06-25 |
United States Patent
Application |
20090161572 |
Kind Code |
A1 |
Lagrange; Pascal ; et
al. |
June 25, 2009 |
METHOD AND A DEVICE FOR ACKNOWLEDGING DATA RECEIVED BY A
COMMUNICATION DEVICE IN A COMMUNICATION NETWORK
Abstract
The invention relates to a method for acknowledging data
received by a communication device, the data being received by data
packets, with each packet comprising a plurality of data blocks.
The communication device: determines (E503), for a packet, the
number of data blocks whose data can be processed correctly, sends
(E509, E510; E515) an acknowledgement for at least one data block
in the packet if the number of data blocks whose data can be
processed correctly is between a first and a second threshold, and
sends (E504, E505, E511, E512, E515), for the data packet, a piece
of information at packet level representing the number of data
blocks whose data can be processed correctly if the number of data
blocks whose data can be processed correctly is lower than the
first threshold or higher than the second threshold.
Inventors: |
Lagrange; Pascal; (Rennes,
FR) ; Nezou; Patrice; (Saint Sulpice La Foret,
FR) |
Correspondence
Address: |
FITZPATRICK CELLA HARPER & SCINTO
30 ROCKEFELLER PLAZA
NEW YORK
NY
10112
US
|
Assignee: |
CANON KABUSHIKI KAISHA
Tokyo
JP
|
Family ID: |
39768667 |
Appl. No.: |
12/336496 |
Filed: |
December 16, 2008 |
Current U.S.
Class: |
370/252 |
Current CPC
Class: |
H04L 2001/0097 20130101;
H04L 1/003 20130101; H04L 1/203 20130101; H04L 1/0029 20130101;
H04L 1/1614 20130101; H04L 1/0026 20130101 |
Class at
Publication: |
370/252 |
International
Class: |
H04L 12/26 20060101
H04L012/26 |
Foreign Application Data
Date |
Code |
Application Number |
Dec 20, 2007 |
FR |
07/08915 |
Claims
1) Method for acknowledging data received by a communication device
in a communication network, the data being received by data
packets, with each packet comprising a plurality of data blocks,
the method carried out by the communication device comprising:
determining, for a packet, the number of data blocks whose data can
be processed correctly, sending an acknowledgement for at least one
data block in the packet if the number of data blocks whose data
can be processed correctly is between a first and a second
threshold, the first threshold being lower than the second
threshold, and sending, for the data packet, a piece of information
at packet level representing the number of data blocks whose data
can be processed correctly if the number of data blocks whose data
can be processed correctly is lower than the first threshold or
higher than the second threshold.
2) Method according to claim 1, wherein an acknowledgement is sent
for each data block in the data packet if the number of data blocks
whose data can be processed correctly is between the first and the
second threshold.
3) Method according to claim 1, wherein the acknowledgement sent
for a data block is a positive acknowledgement if the data in the
data block can be processed correctly.
4) Method according to claim 1, wherein the piece of information
representing the number of data blocks whose data can be processed
correctly takes two values: a first value representing a large
number of data blocks whose data can be processed correctly and a
second value representing a limited number of data blocks whose
data can be processed correctly.
5) Method according to claim 1, wherein the data packet is also
transferred to another communication device.
6) Method according to claim 1, wherein a plurality of data packets
are received and transferred by the communication device and in
that the method also comprises: selecting a predetermined number of
data packets whose number of data blocks whose data can be
processed correctly is between the first and the second threshold,
sending an acknowledgement for at least one data block in each
selected packet.
7) Method according to claim 6, wherein the method also comprises:
sending, for at least one data block in each unselected packet
whose number of data blocks whose data can be processed correctly
is between the first and the second threshold, another piece of
information by packet representing the number of data blocks whose
data can be processed correctly.
8) Method according to claim 7, wherein the other piece of
information representing the number of data blocks whose data can
be processed correctly takes another value representing an average
number of data blocks whose data can be processed correctly.
9) Method according to claim 1, wherein the data in a data block
are determined as being able to be processed correctly by: reading
a previously received copy of the data block, determining the
number of symbols which have a different value in the data block
and the copy which has been read, and in that the data in a data
block are determined as being able to be processed correctly if the
number of symbols which have a different value in the data block
and the copy which has been read is lower than or equal to the
correction capacity of the communication device.
10) Method according to claim 1, wherein the communication device
in a communication network receives in response to previously
transferred data packets by the communication device, information
or acknowledgements from other communication devices and the method
carried out by the communication device comprising: classifying of
the other communication devices as a function of the information
and/or the acknowledgements that the other communication devices
have sent, determining the communication devices relaying data
packets transferred by a source communication device for a
destination communication device from the classified other
communication devices.
11) Device for acknowledging data received by a communication
device in a communication network, the data being received by data
packets, with each packet comprising a plurality of data blocks,
wherein the acknowledgement device has: means for determining, for
a packet, the number of data blocks whose data can be processed
correctly, means for sending an acknowledgement for at least one
data block in the packet if the number of data blocks whose data
can be processed correctly is between a first and a second
threshold, the first threshold being lower than the second
threshold, and means for sending, for the data packet, a piece of
information at packet level representing the number of data blocks
whose data can be processed correctly if the number of data blocks
whose data can be processed correctly is lower than the first
threshold or higher than the second threshold.
12) A computer-readable storage medium storing a program which,
when loaded and executed by a computer or a processor in a device,
allows the device to implement the method for acknowledging data
received by a communication device in a communication network, the
data being received by data packets, with each packet comprising a
plurality of data blocks, the method carried out by the
communication device comprising: determining, for a packet, the
number of data blocks whose data can be processed correctly,
sending an acknowledgement for at least one data block in the
packet if the number of data blocks whose data can be processed
correctly is between a first and a second threshold, the first
threshold being lower than the second threshold, and sending, for
the data packet, a piece of information at packet level
representing the number of data blocks whose data can be processed
correctly if the number of data blocks whose data can be processed
correctly is lower than the first threshold or higher than the
second threshold.
13) Device for acknowledging data received by a communication
device in a communication network, the data being received by data
packets, with each packet comprising a plurality of data blocks,
wherein the acknowledgement device is configured to: determine, for
a packet, the number of data blocks whose data can be processed
correctly, send an acknowledgement for at least one data block in
the packet if the number of data blocks whose data can be processed
correctly is between a first and a second threshold, the first
threshold being lower than the second threshold, and send, for the
data packet, a piece of information at packet level representing
the number of data blocks whose data can be processed correctly if
the number of data blocks whose data can be processed correctly is
lower than the first threshold or higher than the second threshold.
Description
[0001] The present invention relates to a method and a device for
acknowledging data received by a communication device in a
communication network.
[0002] The present invention also relates to a method and a device
for processing the data acknowledgements.
[0003] In communication systems such as wireless communication
networks made up of several communication devices, it is necessary
to know whether the data transferred in the communication network
are received properly by the other communication devices. To this
end, mechanisms for acknowledging the transmitted data have been
created.
[0004] These acknowledgement mechanisms use a significant portion
of the communication network's bandwidth.
[0005] The aim of the invention is to resolve the drawbacks of the
prior art by proposing a method and a device for acknowledging data
which use only a limited portion of the communication network's
bandwidth for transferring acknowledgements.
[0006] The aim of the invention is also to propose a method and a
device which use the acknowledgements to determine communication
devices relaying data packets transferred by a source communication
device for a destination communication device.
[0007] To this end, according to a first aspect, the invention
proposes a method for acknowledging data received by a
communication device in a communication network, the data being
received by data packets, with each packet comprising a plurality
of data blocks, characterized in that the method comprises the
steps, carried out by the communication device, of: [0008]
determining, for a packet, the number of data blocks whose data can
be processed correctly, [0009] sending an acknowledgement for at
least one data block in the packet if the number of data blocks
whose data can be processed correctly is between a first and a
second threshold, the first threshold being lower than the second
threshold, and [0010] sending, for the data packet, a piece of
information at packet level representing the number of data blocks
whose data can be processed correctly if the number of data blocks
whose data can be processed correctly is lower than the first
threshold or higher than the second threshold.
[0011] Correlatively, the present invention relates to a device for
acknowledging data received by a communication device in a
communication network, the data being received by data packets,
with each packet comprising a plurality of data blocks,
characterized in that the acknowledgement device has: [0012] means
for determining, for a packet, the number of data blocks whose data
can be processed correctly, [0013] means for sending an
acknowledgement for at least one data block in the packet if the
number of data blocks whose data can be processed correctly is
between a first and a second threshold, the first threshold being
lower than the second threshold, and [0014] means for sending, for
the data packet, a piece of information at packet level
representing the number of data blocks whose data can be processed
correctly if the number of data blocks whose data can be processed
correctly is lower than the first threshold or higher than the
second threshold.
[0015] Thus, a limited portion of the communication network's
bandwidth is used.
[0016] According to one specific form of the invention, an
acknowledgement is sent for each data block in the data packet if
the number of data blocks whose data can be processed correctly is
between the first and the second threshold.
[0017] Thus, it is possible to know precisely which data blocks can
be processed correctly. Only the data blocks which cannot be
processed correctly will be retransmitted.
[0018] According to one specific form of the invention, the
acknowledgement sent for a data block is a positive acknowledgement
if the data in the data block can be processed correctly.
[0019] According to one specific form of the invention, the piece
of information representing the number of data blocks whose data
can be processed correctly takes two values: a first value
representing a large number of data blocks whose data can be
processed correctly and a second value representing a limited
number of data blocks Whose data can be processed correctly.
[0020] Thus, it is possible to determine whether or not the
communication device is capable of processing data without a large
portion of the communication network's bandwidth being used.
[0021] According to one specific form of the invention, the data
packet is also transferred to another communication device.
[0022] Thus, it is possible to determine whether the communication
device is capable of relaying data without a large portion of the
communication network's bandwidth being used.
[0023] According to one specific form of the invention, a plurality
of data packets are received and transferred by the communication
device, and a predetermined number of data packets whose number of
data blocks whose data can be processed correctly is between the
first and the second threshold is selected and an acknowledgement
is sent for at least one data block in each selected packet.
[0024] Thus, it is possible to know precisely which data blocks can
be processed correctly. Only data blocks which cannot be processed
correctly will be retransmitted.
[0025] One specific form of the invention involves sending, for at
least one data block in each unselected packet whose number of data
blocks whose data can be processed correctly is between the first
and the second threshold, another piece of information by packet
representing the number of data blocks whose data can be processed
correctly.
[0026] Thus, it is possible to avoid an excessively large portion
of the communication network's bandwidth being used for
acknowledgements.
[0027] According to one specific form of the invention, the other
piece of information representing the number of data blocks whose
data can be processed correctly takes another value representing an
average number of data blocks whose data can be processed
correctly.
[0028] According to one specific form of the invention, the data in
a data block are determined as being able to be processed correctly
by carrying out the steps of: [0029] reading a previously received
copy of the data block, [0030] determining the number of symbols
which have a different value in the data block and the copy which
has been read, [0031] and the data in a data block are determined
as being able to be processed correctly if the number of symbols
which have a different value in the data block and the copy which
has been read is lower than or equal to the correction capacity of
the communication device.
[0032] Thus, it is possible to determine which are the
communication devices which are most capable of relaying data.
Moreover, by determining which are the communication devices which
are most capable of relaying data, a limited portion of the
communication network's bandwidth is used.
[0033] According to one specific form of the invention, the
communication device receives in response to previously transferred
data packets by the communication device, information or
acknowledgements from other communication devices and the
communication device: [0034] classifies the other communication
devices as a function of the information and/or the
acknowledgements that the other communication devices have sent,
[0035] determines the communication devices relaying data packets
transferred by a source communication device for a destination
communication device from the classified other communication
devices.
[0036] The invention also relates to computer programs having
instructions which allow the previously described methods to be
implemented, when they are loaded and executed by a computer
system. The programs can be provided on an information medium or a
storage medium such as a CD-ROM or a memory card. Alternately, the
information medium can be a transmission means such as a signal
transmitted over a network.
[0037] The features of the invention which have been mentioned
above, and others, will appear more clearly upon reading the
following description of an exemplary embodiment, said description
being given with reference to the appended drawings, among
which:
[0038] FIG. 1 shows a communication system in which the present
invention is implemented;
[0039] FIG. 2 shows an example of the radio packets organized into
data blocks, by means of a timing representation;
[0040] FIG. 3 shows a communication device in which the present
invention is implemented;
[0041] FIG. 4 shows an algorithm for determining the type of
acknowledgement to be transferred in response to a received data
packet;
[0042] FIG. 5 shows an algorithm for forming an acknowledgement
field based on the present invention;
[0043] FIG. 6 shows an example algorithm for processing
acknowledgements or information representing the number of data
blocks whose data can be processed correctly.
[0044] FIG. 1 shows a communication system in which the present
invention is implemented.
[0045] The communication system is a radio communication network
which preferably uses a frequency spectrum around 60 GHz. The
communication network as shown in the example in FIG. 1 has nine
communication devices SCM0 to SCM8. The communication devices will
subsequently be called synchronous communication modules SCM0 to
SCM8. The synchronous communication modules SCM0 to SCM8 form part
of a home cinema system.
[0046] By way of example, the telecommunication network is used to
transfer audio-visual data. When the audio-visual data are audio
data, the synchronous communication module SCM0 is part of an
audio-visual reproduction system such as a flat-screen television,
for example, and transfers audio data to the synchronous
communication modules SCM1 to SCM8. The synchronous communication
modules SCM1 to SCM8 are respectively part of an audio reproduction
device made up of at least one loudspeaker.
[0047] The communication modules are referred to as synchronous
because they send or receive, as will be explained later, packets
in turn and at times which are known by all the communication
modules.
[0048] When the communication network is used to transfer audio
data, it is placed in a room of a house. When people move about the
room or when the arrangement of the synchronous communication
modules SCM is changed in the room, or when furniture is added,
removed or moved in the room, the communication conditions between
the synchronous communication modules SCM are changed. These
changes mean that data received may no longer be processed
correctly.
[0049] FIG. 1 shows nine synchronous communication modules SCM. Of
course, the communication network may comprise a greater or lesser
number of synchronous communication modules SCM.
[0050] Hence, a synchronous communication module SCM will be called
a local synchronous communication module when it receives the data
packet processed according to the algorithm in FIG. 4 or sends a
packet according to the algorithm in FIG. 5.
[0051] FIG. 2 shows an example of the radio packets organized into
radio data blocks, by means of a timing representation.
[0052] The n-th synchronous data transmission cycle SDTC(n) is
shown in FIG. 2. Ten data packets Pk_radio(0) to Pk_radio(9) are
transmitted in the synchronous data transmission cycle SDTC(n).
[0053] The data packets Pk_radio(0) and Pk_radio(1) are transmitted
by the synchronous communication module SCM0, the data packets
Pk_radio(2) to Pk_radio(9) are transmitted by the synchronous
communication modules SCM2 to SCM8, respectively.
[0054] Each data packet Pk_radio has a header field RPH (Radio
Packet Header) 200 comprising information from protocols required
particularly for managing the access control for each synchronous
communication module SCM. Each data packet Pk_radio has also a
useful data field RPP (Radio Packet Payload) 201 and an
acknowledgement field ACK 210.
[0055] Only the data packet Pk_radio(1) will be described below,
since the other data packets Pk_radio(0), Pk_radio(2) to
Pk_radio(9) have the same architecture.
[0056] The useful data field RPP 201 comprises, inter alia, a set
of data blocks RDB (01,00) to RDB (01,28).
[0057] The acknowledgement field 210 is made up of a local
acknowledgement field 212 relating to the data received by the
local synchronous communication module SCM and of a relayed
acknowledgements field 214. The relayed acknowledgements field 214
comprises a copy of the local acknowledgements received from the
other synchronous communication modules SCM.
[0058] The local acknowledgement field 212 is made up of an
acknowledgement field 215 for the data packet intended for the
local synchronous communication module SCM, of acknowledgement
fields for the data packets 216 to 217 respectively intended for
each of the other synchronous communication modules SCM, and of a
field 218 for correcting errors in the fields 215 to 217.
[0059] The acknowledgement field 215 for the data packet intended
for the local synchronization communication module SCM is made up
of an acknowledgement field for each of the data blocks RDB in the
data packet (fields 225 to 226, for example) received by the local
synchronous communication module SCM. When an acknowledgement field
comprises a value equal to `1`, the corresponding data block RDB
has been received correctly by the local synchronous communication
module SCM. A zero value means that the corresponding data block
RDB has not been received correctly by the local synchronous
communication module SCM.
[0060] Each acknowledgement field 216 to 217 for the data packets
intended for each of the other synchronous communication modules
SCM has one of the following two formats:
[0061] A: An acknowledgement mask presence field 230, referred to
as High Definition, or ACK Mask HD, and an acknowledgement field
referred to as Low Definition 232. The value `0` in the field 230
means that the data packet under consideration has not been
acknowledged at data block RDB level but that a piece of
information representing the number of data blocks RDB whose data
can be processed correctly has been inserted into the field 232.
When the information takes the value "00", this means that the
number of data blocks RDB whose data can be processed correctly is
relatively small, for example lower than Min Threshold=500% of the
total number of data blocks RDB making: up the data packet under
consideration. When the information takes the value "01", this
means that the number of data blocks RDB whose data can be
processed correctly is average, for example between Min Threshold
and Max Threshold=90% of the total number of data blocks RDB making
up the data packet under consideration. When the information takes
the value "10", this means that the number of data blocks RDB whose
data can be processed correctly is large, for example higher than
Max Threshold for the total number of data blocks RDB making up the
data packet under consideration. When the information takes the
value "11", this means that the data packet to be acknowledged has
not been received by the local synchronous communication
module.
[0062] B: A High-Definition acknowledgement mask presence field
235, or ACK Mask HD, and a high-level acknowledgement field 236.
The value `1` in the field 235 thus means that the data packet
under consideration has been acknowledged at data block RDB level
in the field 236.
[0063] Fields 230 and 235 are both. High-Definition acknowledgement
mask presence fields but they contain a different value which
indicates the field type associated to the High-Definition
acknowledgement mask presence field. When the High-Definition
acknowledgement mask presence field has a value equal to `0` as it
is indicated for field 230, this indicates that the acknowledgement
filed 232 if of the first type (Low Definition). In a
High-Definition acknowledgement field 236, each of the data blocks
RDB relating to the received data packet is acknowledged through
the sub-fields 240 to 241 for acknowledging the data blocks RDB, or
ACK RDB. A value equal to `1` for such a sub-field means that the
corresponding data block RDB has been received correctly by the
local synchronous communication module SCM, a zero value meaning
that the corresponding data block RDB has not been received
correctly by the local synchronous communication module SCM.
[0064] It should be noted here that Min Threshold may be between 30
and 70% and Max Threshold may be between 75 and 95%.
[0065] FIG. 3 shows a synchronous communication module in which the
present invention is implemented.
[0066] Each synchronous communication module SCMi, where i.+-.0 to
8, is made up of a processor CPU (Central Processing Unit) 300 with
which an execution memory block RAM 301 and a non-volatile memory
block ROM 302 are associated.
[0067] The processor 300 communicates with a communication block
303 through an interface CPU IF 304, which manages particularly the
interrupts intended for the processor 300 and the data interchanges
between the various elements of the communication block 303 and the
processor 300.
[0068] The communication block 303 transfers the synchronous data
between a 60 GHz radio interface block 309 and a synchronous
interface block 320 to/from an audio channel processing module,
which is either a digital audio channel restitution means (digital
audio channel amplifier) or a multichannel audio (decoder (surround
sound decoder).
[0069] The communication block 303 also has a writing block 318 and
a reading block for data packets 319.
[0070] The communication block 303 also has a block 308 for sending
data packets and a block 310 for receiving data packets. The block
308 incorporates particularly the functions of modulation, for
example of OFDM type, and convolutional encoding, for example
through polynomial division in the body of the binary elements, and
the block 310 implements the inverse functions of the ones
implemented in block 308, particularly of demodulation and of
Viterbi decoding.
[0071] The communication block 303 also has a synchronization block
311 which controls the regular concatenation of the transmission
cycles SDTC relative to the data packets received in order to
guarantee perfectly synchronous access to the transmission channel
for the purpose of sending data packets. This mechanism allows data
packets to be processed during a complete synchronous data
transmission cycle, SDTC, when being sent/received.
[0072] The communication block 303 also has a block 305 for
encoding data blocks RDB.
[0073] The communication block 303 also has a retransmission block
315 which selects the data blocks RDB to be retransmitted in
accordance with an acknowledgements control block 317 so as to
retransmit only the data blocks RDB intended for the synchronous
communication modules SCM in the communication network whose local
synchronous communication module SCM is a retransmitter. This
function is more particularly provided by the submodule ReTx
controller 316 which is part of the retransmission block 315. The
retransmission block 315 is also responsible for assembling the
acknowledgement fields 210, 212 and 214 from FIG. 2 and the field
218 generated by the acknowledgements encoding submodule 307.
[0074] The acknowledgements control block 317 is responsible for
interpreting all the acknowledgements received so as to determine
the retransmission lists for each of the other synchronous
communication modules SCM in the communication network. The
acknowledgements control block 317 also defines the acknowledgement
fields 212 and 214 for the local synchronous communication module
SCM.
[0075] It will moreover be noted that the retransmission task is
shared between the various synchronous communication modules, on
the basis of the number of data blocks RDB available for each of
the synchronous communication modules SCM.
[0076] The decoding block 312 processes the data blocks RDB. The
decoding block 312 comprises an acknowledgement decoding block 313
responsible for processing the acknowledgements which are present
in the acknowledgement field 210.
[0077] FIG. 4 shows an algorithm for determining the type of
acknowledgement to be transferred in response to a received data
packet.
[0078] The present algorithm is more precisely executed by the
acknowledgements control block 317 of each communication module
SCM.
[0079] In step E400, a data block RDB is received, this block is
stored in memory.
[0080] In the next step E401, the control block 317 checks whether
the data block RDB has previously been received.
[0081] According to the invention, data blocks are relayed and
transmitted several times by at least part of the other synchronous
communication modules SCM so that to avoid any loss of data. Data
blocks are therefore received several times by a same synchronous
communication modules SCM.
[0082] If the received data block RDB has already been previously
received, the control block 317 moves to step E402. If not, the
received data block RDB is transferred to the RDB decoding module
312 and an attempt at processing the data block, such as decoding
the data in the data block, is made in step E403.
[0083] In the next step E404, the control block 317 checks whether
the RDB decoding module 312 can decode the data in the received
data block RDB.
[0084] If the RDB decoding module 312 can decode the data in the
received data block RDB, the control block 317 moves to step E406,
and the status of the received data block RDB is marked correct or
"OK".
[0085] Once this operation has been performed, the control block
317 then moves to step E412 for updating the status of the data
blocks RDB in the data packet and for updating the number of data
blocks RDB whose data can be processed correctly.
[0086] If the RDB decoding module 312 is not able to decode the
data in the data block RDB, the control block 317 moves from step
E404 to step E405, where the control block 317 marks the status of
the received data block RDB as incorrect or "not OK" and memorises
the data block RDB.
[0087] Once this operation has been performed, the control block
317 returns to step E400 so as to process a new data block RDB.
[0088] In step E402, the control block 317 checks whether the
reception level for the data packet comprising the received data
block RDB is marked at the high level. The various levels for the
data packets will be described later with reference to steps E415
to E417.
[0089] If the data packet comprising the received data block RDB is
marked at the high level, the control block 317 returns to step
E400 in order to process a new data block RDB.
[0090] If the level of the data packet comprising the received data
block RDB is not high, the control block 317 moves to step
E407.
[0091] In step E407, the control block 317 checks whether the
received data block RDB has a status marked as correct "OK". If
this is the case, the algorithm returns to step E400 in order to
process a new data block RDB.
[0092] In the opposite case, a copy of the previously received data
block RDB is read in step E408 from the RAM memory 301 of the local
synchronous communication module SCM and is compared in step E409
with the received data block RDB in order to determine a deletions
mask for the received data block RDB. A deletion mask indicates
which symbols are indeterminate and their position within the
received data block RDB. A symbol is referred to as indeterminate
when the comparison between the symbol in the received data block
RDB and the symbol at the same position in the data packet which
has been read shows that they have different values.
[0093] In the next step E410, the control block 317 checks whether
the number of indeterminate symbols is less than or equal to the
correction capacity of the RDB decoding block 312.
[0094] If the number of indeterminate symbols is greater than the
correction capacity of the RDB decoding block 312, the control
block 317 moves to step E418 and the control block 317 checks
whether another copy of the data block RDB is stored in the RAM
memory 301 of the local synchronous communication module SCM.
[0095] If so, the control block 317 returns to step E408 of the
present algorithm.
[0096] If not, the control block 317 moves to step E419 or the
control block 317 marks the status of the received data block RDB
as incorrect or "not OK". The control block 317 then returns to
step E400 in order to process a new data block RDB.
[0097] If the number of indeterminate symbols is less than or equal
to the correction capacity of the RDB decoding block 312, the
control block 317 moves to step E412 and the control block 317
updates the status of the data blocks RDB in the data packet and
the number of data blocks RDB whose data can be processed
correctly.
[0098] In the next step E420, the control block 317 checks whether
the received data block RDB is the last in the data packet
currently being processed. If this is the case, the control block
317 moves to step E413. In the opposite case, the control block 317
returns to step E400.
[0099] In step E413, the control block 317 checks whether the
signal-to-noise ratio (SNR) between the local synchronous
communication module SCM and the synchronous communication module
SCM to which the received data block RDB needs to be relayed is
higher than a predetermined threshold called SNR Min.
[0100] If the signal-to-noise ratio is higher than the threshold
SNR Min, the control block 317 moves to step E414. If the
signal-to-noise ratio is lower than or equal to the threshold SNR
Min, the control block 317 moves to step E417.
[0101] In step E417, the control block 317 marks the level for the
data packet comprising the received data block RDB at the low
level.
[0102] Once this operation has been performed, the control block
317 returns to step E400 in order to process a new data block
RDB.
[0103] In step E414, the control block 317 compares, for the data
packet comprising the received data block RDB, the number of data
blocks RDB in the data packet whose data can be processed
correctly. Particularly, the number of data blocks RDB in the data
packet which have an acknowledgement status "OK" is compared to a
first and/or at a second predetermined threshold.
[0104] If the number of data blocks RDB whose data can be processed
correctly is lower than the first threshold, called Min Threshold,
the control block 317 moves to step E417, described previously.
[0105] If the number of data blocks RDB whose data can be processed
correctly is higher than or equal to the first Min Threshold and
lower than the second Max Threshold, the control block 317 moves to
step E416.
[0106] If the number of data blocks RDB in the data packet whose
data can be processed correctly is higher than or equal to Max
Threshold, the control block 317 moves to step E415.
[0107] In step E415, the control block 317 marks the reception
level for the corresponding data packet as "high". Once this
operation has been performed, the control block 317 returns to step
E400 in order to process a new data block RDB.
[0108] In step E416, the control block 317 marks the reception
level for the corresponding data packet as "average", and the
control block 317 classifies the marked data packets as
average.
[0109] In fact, in accordance with one specific embodiment, the
acknowledgement field 210 has a fixed size. This fixed size can, in
some cases, limit the number of fields such as the field 236 which
are able to be included in the acknowledgement field 210.
[0110] Thus, the various received data packets are, firstly,
organized on the basis of the smallest to the greatest number of
data blocks RDB which can be processed. Secondly, the control block
317 selects the Nmax first organized data packets and the control
block 317 authorizes acknowledgement for each data block RDB in the
data packet as shown by the field 236 in FIG. 2. For the other data
packets, the control block 317 does not authorize acknowledgement
for each data block RDB in the data packet.
[0111] When step E416 or E415 is performed, the control block 317
returns to step E400 in order to process a new data block RDB.
[0112] FIG. 5 shows an algorithm for forming the acknowledgement
field 212 in FIG. 2.
[0113] The present algorithm is more precisely executed by the
acknowledgements control block 317 of each synchronous
communication module SCM.
[0114] Step E500 involves waiting for the time at which the current
synchronous communication module SCM can transfer a data packet in
the transmission cycle SDTC(n).
[0115] In step E501, the control block 317 acknowledges the data
packet intended for the local synchronous communication module SCM
by concatenating the acknowledgements for the data blocks RDB in
the data packet in order to form a field 215 as shown in FIG.
2.
[0116] In step E502, the control block 317 obtains the status of
the data packet needing to be acknowledged in the next
acknowledgement field 216 to 217 and intended for another
synchronous communication module SCM.
[0117] In step E503, the control block 317 determines whether the
reception level for the data packet needing to be acknowledged in
the next acknowledgement field is marked as "high", "average" or
"low". If the level for the data packet needing to be acknowledged
in the next acknowledgement field is marked as "high", the control
block 317 moves to step E504. If the level for the data packet
needing to be acknowledged in the next acknowledgement field is
marked as "average", the block 317 moves to step E506. If the level
for the data packet needing to be acknowledged in the next
acknowledgement field is marked as "low", the control block 317
moves to step E511.
[0118] In step E504, the block 317 inserts the binary value "0"
into the field 230 in FIG. 2.
[0119] In the next step E505, the control block 317 inserts the
binary value "10" into the Low Definition acknowledgement field 232
in FIG. 2.
[0120] Once this operation has been performed, the control block
317 moves to step E513.
[0121] In step E511, the control block 317 inserts the binary value
"0" into the field 230 in FIG. 2.
[0122] In the next step E512, the control block 317 inserts the
binary value "00" into the field 232 in FIG. 2.
[0123] Once this operation has been performed, the control block
317 moves to step E513.
[0124] In step E506, the control block 317 checks whether an
acknowledgement is authorized for each data block RDB in the data
packet currently being processed.
[0125] If an acknowledgement is authorized for each data block RDB
in the data packet currently being processed, the control block 317
moves to step E509.
[0126] If an acknowledgement is not authorized for each data block
RDB in the data packet currently being processed, the block 317
moves to step E507.
[0127] In step E509, the control block 317 inserts the binary value
"1" into the field 235 (ACL Mask HD) in FIG. 2.
[0128] In the next step E510, the control block 317 inserts a piece
of binary information representing the status of the corresponding
data block RDB into each sub-field 240 to 241 in FIG. 2. The binary
value "0" corresponds to a data block RDB marked incorrect or "not
OK", and the binary value "1" corresponds to a data block RDB
marked correct or "OK".
[0129] Once this operation has been performed, the control block
317 moves to step E513.
[0130] In step E507, the control block 317 inserts the binary value
"0" into the field 230 in FIG. 2.
[0131] In the next step E508, the control block 317 inserts the
binary value "01" into the field 232 in FIG. 2.
[0132] Once this operation has been performed, the control block
317 moves to step E513.
[0133] In step E513, the control block 317 checks whether all the
fields 216 to 217 have been processed.
[0134] If all the fields 216 to 217 have been processed, the
control block 317 moves to step E514. Otherwise, the control block
317 returns to step E502.
[0135] In step E514, the fields 215 to 217 are assembled and
encoded in order to obtain the content of the field 218.
[0136] In step E515, the fields formed in this manner are
transferred in the transmitted data packet.
[0137] FIG. 6 shows an example algorithm for processing
acknowledgements or information representing the number of data
blocks whose data can be processed correctly.
[0138] The present algorithm describes a method for selecting
synchronous communication modules SCM which are intended to relay
data transferred by a source synchronous communication module SCM
to a destination synchronous communication module SCM from a
classification of the communication devices as a function of
information and/or acknowledgements which have been transmitted by
the communication devices.
[0139] The present algorithm allows thus to determine what are the
most capable communication devices for relaying data. By
determining what are the most capable communication devices for
relaying data, a limited portion of the communication network
bandwidth is used.
[0140] The present algorithm describes, firstly, the establishing
of the list of synchronous communication modules SCM that will
relay the information that the local synchronous communication
module SCM transmits.
[0141] The present algorithm is more precisely executed by the
acknowledgements control block 317 for each communication module
SCM.
[0142] In step E600, the control block 317 detects the reception of
each acknowledgement field 210 in each data packet Pk_radio sent by
the other synchronous communication modules SCM in a transmission
cycle SDTC.
[0143] In the next step E601, the control block 317 initializes a
retransmission list for each synchronous communication module SCM.
A retransmission list comprises the identifiers of the synchronous
communication modules SCM which are used as relays between the
source synchronous communication module and the destination
synchronous communication module SCM.
[0144] In the next step E602, the control block 317 identifies,
firstly, the synchronous communication modules SCM which have
transferred a data packet reception level marked as "high", or in
other words which have inserted the binary value "0" into the field
230 in FIG. 2 and the binary value "10" into the field 232.
[0145] The control block 317 classifies the synchronous
communication modules SCM identified according to at least a
predetermined criterion.
[0146] For this, it is possible to use one or more of the following
criteria: the unique identifier of each of the synchronous
communication modules SCM, a unique priority level for the
synchronous communication modules SCM, etc.
[0147] This list of criteria is not exhaustive, and the person
skilled in the art will thus be able to consider other
classification criteria.
[0148] In the next step E603, the control block 317 identifies the
synchronous communication modules SCM which have transferred a data
packet reception level marked as "average", or in other words which
have inserted the binary value "0" into the field 230 in FIG. 2 and
the binary value. "01" into the field 232, or which have inserted
the binary value "1" into the field 235 in FIG. 2.
[0149] The control block 317 classifies the synchronous
communication modules SCM identified in step E603 behind the
synchronous communication modules SCM sorted in step E602.
[0150] The synchronous communication modules SCM which have
inserted the binary value "1" into the field 235 in FIG. 2 are
classified first. The synchronous communication modules SCM which
have inserted the binary value "1" into the field 235 in FIG. 2 are
classified on the basis of the number of data blocks RDB which are
acknowledged positively in the field 236. When there is equality
between at least two synchronous communication modules SCM, the
classification can also be made according to the criteria mentioned
in step E602.
[0151] The synchronous communication modules SCM which have
inserted the binary value "0" into the field 230 in FIG. 2 and the
binary value "01" into the field 232 are classified behind the
synchronous communication modules SCM which have inserted the
binary value "1" into the field 235 in FIG. 2. The classification
of the synchronous communication modules SCM which have inserted
the binary value "0" into the field 230 in FIG. 2 and the binary
value "01" into the field 232 is made according to the criteria
mentioned in step E602.
[0152] In a next step E604, the control block 317 finally
determines the retransmission list which comprises the synchronous
communication modules SCM which will relay the information sent by
the local synchronous communication module SCM. To do this, the
control block 317 considers a number R.sub.max of retransmitting
synchronous communication modules SCM. R.sub.max has a value
defined previously and common to each of the synchronous
communication modules SCM. Thus, the R.sub.max first synchronous
communication modules SCM classified in step E602 and E603 are
included in the retransmission list.
[0153] The steps E601 and E604 also allow, according to the
invention, the local communication device SCM to determine the list
of synchronous communication modules SCM that will relay the
information transmitted by each other synchronous communication
module SCM from the fields 216 to 217 in FIG. 2 which are bound to,
respectively, each other synchronous communication module SCM. This
allows thus the local communication device SCM to determine if it
is not included in at least one of those lists.
[0154] In the next step E605, the control block 317 checks whether
each list of the synchronous communication modules SCM that will
relay the information transmitted by each other synchronous
communication module SCM has been determined.
[0155] If this is not the case, the control block 317 returns to
step E601 and considers the fields 216 to 217 in FIG. 2 which are
bound to the synchronous communication module SCM for which the
retransmission list will be determined.
[0156] If step E605 determines that all retransmission lists have
been determined, the algorithm is interrupted.
[0157] This application claims priority from French application
Ser. No. 07/08915 filed on 20 Dec. 2007, which is incorporated by
reference in its entirety.
* * * * *