GB2493647A - Sending data and returning acknowledgements - Google Patents

Sending data and returning acknowledgements Download PDF

Info

Publication number
GB2493647A
GB2493647A GB201217023A GB201217023A GB2493647A GB 2493647 A GB2493647 A GB 2493647A GB 201217023 A GB201217023 A GB 201217023A GB 201217023 A GB201217023 A GB 201217023A GB 2493647 A GB2493647 A GB 2493647A
Authority
GB
United Kingdom
Prior art keywords
node
data
text
notification
receiving
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
GB201217023A
Other versions
GB201217023D0 (en
GB2493647B (en
Inventor
Timothy Jackson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Plextek Ltd
Original Assignee
Plextek Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Plextek Ltd filed Critical Plextek Ltd
Priority to GB201217023A priority Critical patent/GB2493647B/en
Publication of GB201217023D0 publication Critical patent/GB201217023D0/en
Publication of GB2493647A publication Critical patent/GB2493647A/en
Application granted granted Critical
Publication of GB2493647B publication Critical patent/GB2493647B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1854Scheduling and prioritising arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0097Relays

Abstract

Sending data in a network from a sending node to a receiving node via a relay node and returning acknowledgements. Whereby on receipt of a first type of data the receiving node returns a notification of receipt to both the relay node and the sending node, and on receipt of a second type of data the receiving node returns a notification of receipt to just the sending node.

Description

Data Acknowledgement Apparatus and Method
Field of the Invention
The present invention relates to the transmission of data in networks. In particular, the present invention relates to the transmission of notifications for acknowledging receipt of data at nodes of a network.
Background of the Invention
Networks comprising a plurality of stations or nodes between which data is communicated havc become widespread. In such networks, data is typically transmitted across a connection between a source node and a destination node.
In many cases, the transmission of data takes place over multiple steps via one or more intermediate nodes, particularly where the nodes are individually not capable of transmitting data over large distances (because, for example, of limited radio transmitting power). The data may be sent in discrete packets, ordered into a sequence. The data may comprise, for example, application data or control data.
The data may be transmitted according to a protocol stack, comprising at least a physical layer (hereinafter Li), which comprises the physical combination of modems, wires, relays etc. over which the signal is sent; a data link protocol layer (hereinafter L2) which handles transmission of data between adjacent nodes in a connection; and a network protocol layer (hereinafter L3) which handles, inter alia, establishing data connections, setting routes for data transmission and data flow within a connection.
In some cases, "unacknowledged" transmission protocols in which the sending node is not informed as to whether data sent has been correctly received at the rcceiving station arc used; however, unacknowledged transmission protocols arc problematic where a significant proportion of data is lost or corrupted in transmission, since it becomes difficult to arrange for the lost data to be retransmitted. It is therefore common for notifications of receipt of data to be sent between nodes, and for data to be retransmitted in the event that no corresponding notification is received. Hereinafter, notifications will be referred to as "acks" (an abbreviation of acknowledgemenO. In the following discussion, data which is acknowledged, but is not itself an ack will be referred to as "primary data"; similarly, data packets comprising such data will be referred to as "primary data packets".
One notification method that such arrangements conventionally use, often referred to as a "point to point" method, is now described with reference to Figure 1 a and Figure lb. Figure 1 a shows primary data being transmitted and acknowledged between a source node, an intermediate node and a destination node. At stcp S300, a primary data packct is transmitted from thc source node to the intermediate node. The intermediate node sends an ack at step S302 to notify the source node of receipt of the primary data packet. The primary data packet typically comprises information identifying the destination node as its destination; the destination node analyses the primary data packet to ascertain its destination, and having done so, sends the primary data packet to the destination node at step S304. The primary data packet also typically comprises information identifying the source node as its source; the destination node extracts this information and sends an ack to notify the intermediate node of receipt of the primary data packet at step S306. In this way, primary data packet transmission is acknowledged at each stage oftransmission. Acks transmitted according to a point to point acknowledgement method arc typically processed by L2; hereinafter they will be referred to as "L2 acks".
If a primary data packet is lost or corrupted during transmission, no corresponding ack is received, which triggers the primary data packet to be resent. Figure lb shows an example in which a primary data packet is lost between the intermediate node and the destination node. At step S310, the primary data packet is sent from the source node to the intermediate node; an L2 ack is sent from the intermediate node to the source node at step S312. At step S314, the intermediate node sends the primary data packet to the destination node however, the primary data packet is not received, perhaps due to interference or environmental conditions that affect transmission of signals between nodes, such as interference from transmission from another radio system, lightening, or "radio fading" in which the signal is cancelled by destructive interference of multiple paths from source node to destination node.
The intermediate node monitors for an L2 ack for the primary data packet it has scnt for a predetermined time T before resending the primary data packet at step S3 16. This time the primary data packet is successfully received by the destination node and an L2 aek sent from the destination node to the intermediate node at step S3 18. As before, non-receipt of an ack would cause the corresponding primary data packct to be resent.
A problcm with this method is that, since the source node is not informed of the loss of the primary data packet sent at step S314, it continues to send further primary data packets 320 to the intermediate node; particularly in arrangements where the connection between the intermediate node and the destination node is much less efficient than the connection between the source node and the destination node, this can lead to a large build up of primary data packets at the intermediate node, which may eventually lead to overload of the intermediate node.
According to another acknowledgement method, often referred to as an "end to end" method, primary data packets are not acknowledged on a stage by stage basis; acks are only sent from the destination of a primary data packet to its source. In end to end methods, acks are typically passed from L2 to L3 for processing; from the perspective of L2, the end to end acks arc themselves data packets which are either passed to L3 for processing, if at the destination node of the ack, or sent to another node if not. Acks sent according to an end to end method will hereinafter be referred to as "L3 aeks". Figure 2a shows an example arrangement. A primary data packet is sent from a source node to an intermediate node at step S400. The intermediate node analyses the primary data packet and ascertains that it is not the destination of the primary data packet; it therefore does not send an ack to the source node. At step S402, the primary data packet is sent from the intermediate node to the destination node, which analyses the primary data packet and ascertains that it is the destination of the primary data packet. It therefore sends an aek to the source node; this involves the ack being sent from the destination node to the intermediate node at step S404 and from the intermediate node to the source node at step S406.
In end to end methods, any primary data that is lost or corrupted during transmission must be retransmitted from the source, as is now described with reference to Figure 2b. At step S410, a primary data packet is sent from the source node to the intermediate node. At step S412, the primary data packet is sent from the intermediate node, but does not arrive at the destination node. The source node monitors for an ack for the primary data packet it has sent for a predetermined time TI, before resending the primary data packet at step S414.
The primary data packet arrives at the intermediate node, from which it is resent at step 8416. This time, the primary data packet is received successfiilly at the destination node. In response to this, the destination node sends an ack at step 418, which arrives at the intermediate node and is sent to the source node at step S420.
End to end methods suffer from inefficiency because, particularly where a primary data packet is lost or corrupted near to its destination, the primary data packet has to be resent over stages of its transmission route over which it has already been successfully transmitted. In the example described with reference to Figure 2b, the same primary data packet is sent twice between the source node and the intermediate node, at step S410 and step 8414. Further, the primary data packet is also retransmitted when an L3 ack is lost or corrupted during transmission, leading to even greater inefficiency, because the primary data packet then has to be retransmitted over the whole connection, and the corresponding L3 ack retransmitted over part of the connection. End to end methods also suffer from long propagation times between sending the primary data packet and receiving the corresponding ack, which can Lead to difficulties, particularly where the primary data packet is being sent in a sequence of packets, because several further packets may have been sent before the source node reacts to a primary data packet not being correctly received, leading to problems with correct sequencing of the data. Tins is particularly problematic in systems having a high error rate, such as radio transmission.
Some arrangements use both a point to point method and an end to end method independently in the same system. Referring to Figure 3, in these arrangements a primary data packet is sent from the source node to the intermediate node at step S500. The intermediate node sends an L2 ack to the sourcc node at step S502 and at step 5504, the primary data packet is sent from the intermediate node to the destination node. In response to receiving the primary data packet, the destination node sends an L2 ack to thc intermediate node at step S506. It also sends an L3 ack at step S508, which is received by the intermediate node.
In this arrangement, the L3 acks are themselves acknowledged at L2 this is because, as mentioned above, from the perspective of L2, an L3 aek is a primary data packet that is sent on and/or processed and acknowledged; failing to acknowledge the L3 acks would therefore lead to the problems of long propagation times and so on described above in relation to end to end methods.
Acknowledgements of L3 aeks will be referred to hereinafter as L3 ack confirmations; however, in substance L3 aek confirmations may be considered to be [2 acks.
In some cases, the [2 aek and L3 aek corresponding to a given primary data packet may be sent as part of the same data packet. However, conventional L2 aeks and L3 acks fhnction independently of one another and are considered herein as separate notifications, irrespective of whether they are carried in the same data packet.
Returning to Figure 3, at step S510, the intermediate node sends an L3 aek confirmation to the destination node. The intermediate node then sends the L3 ack to the source node at step S512, which in turn sends an [3 aek confirm to the intermediate node at step S514.
Systems using both an end to end acknowledgement method and a point to point acknowledgement method have the disadvantage that a large amount of transmission time is taken up by the transmission of acks, which reduces the transmission time that can be used for transmitting other forms of data, leading to reduced efficiency.
It is an object of the present invention to mitigate at least some of the
problems of the prior art.
Summary of the Invention
In accordance with a first aspect of the present invention, there is provided a relay node for transmitting data in a network, said network comprising said relay node, a sending node and a receiving node, said relay node comprising: an interface for receiving data, said data having been sent from said sending node, wherein said interface is arranged for sending said data to said receiving node and means for monitoring for a first notification, said first notification being for identifying receipt of said data at said receiving node; wherein said interface is arranged for receiving said first notification, and said relay node is arranged to cease said monitoring in response to receiving said first notification and to send a second notification to said sending node in response to receiving said first notification, said second notification being for identilying receipt of said data at said receiving node.
The invention thus provides a relay node capable of both being notified of receipt of data by a notification and responding to this notification by notifying a further node of the receipt of the data. This is in contrast to prior art rclay nodes which are not capaNe of performing both of these functions in response to a single notification. Relay nodes according to the present invention thus provide an efficient method of notification.
The first notification may comprise a combined ack which combines featnres of conventiona' L2 acks and those of conventional L3 aeks described above; hereinafter, such combined acks will be referred to as "L2L3 acks".
However, in some arrangements the first notification may comprise an L2 ack according to an embodiment of the present invention.
The second notification may comprise an L3 ack, or in some cases, an L2 ack. Embodiments of the invention are thus capable of implementation in systems using, for example, more than one type of ack, and in systems using only one type of ack (e.g. L2 acks), as will be described below.
Thc relay node may comprise a store, e.g. in the form of Random Access Memory (RAM) in a processor of the relay node, for storing the data. It may further be arranged to remove the data from the store in response to receiving the first notification. Thus, data may be stored at the relay node for retransmission in the ease that the data is not successfully received, and deleted when the relay nodc is informed of receipt of the data.
In some embodiments, the relay node comprises means for monitoring for a third notification, the third notification being for identifying receipt of the data at the receiving node. The interface may be arranged for receiving the third notification, and the relay node arranged to cease monitoring in response to receiving the third notification. The relay node may be arranged not to send a notification to the sending node in response to receiving the third notification.
The relay node is thus capable of responding differently to different notifications. The third notification may comprise an L2 ack.
The relay node may further be arranged to resend the data in response to not receiving either of the first notification and the third notification. Thus, the relay node resends data for which acknowledgement of receipt is not received.
In some arrangements, the relay node is arranged to monitor for the first notification and the third notification over a predetermined time interval; the relay node may be arranged to resend the data in the event that neither the first notification nor the third notification is received before said predetermined time interval elapses. This provides a convenient method for monitoring for an acknowledgement, and resending data in the event that none is received within a specific time period.
In some arrangement, the relay node is arranged to monitor for a fourth notification, the fourth notification being for identifying receipt of the data at said receiving node. The interface may be arranged for receiving the fourth notification. The relay node may be arranged not to cease the monitoring in response to receiving the fourth notification and to send a fifth notification to the sending node in response to receiving said fourth notification, the fifth notification being for identifying receipt of said data at said receiving node. The fourth notification may comprise an L3 ack. The fifth type of notification may also comprise an L3 ack.
The relay node may be arranged to send a confirmation of receipt of the fourth notification to said receiving node in response to receiving the fourth notification. The confirmation of receipt may be an L3 ack confirmation.
The relay node may be arranged not to send a confirmation of rcceipt of the first notification to the receiving node in response to receiving the first notification. Some types of notification according to the present invention do not require confirmation of receipt. In some preferred embodiments, the relay node is arranged to derive the second notification from the first notification.
This provides a convenient means of providing the second notification, because the information required for the second notification (which may be an L3 ack) is typically contained in the first notification (which may be an L2L3 ack).
The data may comprise an identifier thereof, and the second notification can contain the identifier. In some arrangements, the relay node comprises an indication of a number of sets of data received at the receiving node, the indication also being contained in the second notification. The second notification may comprise a further indication, the further indication indicating a number of sets of data received at the relay node. These features allow the transmission and acknowledgement of data to be easily monitored and trackcd.
The first and second indications may indicate data packet numbers.
In some arrangements, the interface comprises a plurality of interfaces, for example one for receiving data and another for sending data.
In accordance with a second aspect of the present invention, there is provided a receiving node for receiving data in a network, said network comprising said receiving node, a relay node and a sending node, said receiving node comprising means for receiving a first set of data, said first set of data having been sent from said sending node via said relay node, wherein said receiving node is arranged to create and send a first type of notification, wherein said first type of notification comprises information for notifying said relay node of receipt of said first set of data at said receiving node, and for notifying said sending node of receipt of said first set of data at said receiving node.
This aspect of the invention thus provides a receiving node capable of creating and sending notifications that are for use in notifying a plurality of nodes that data has been received; this is in contrast to prior art notifications, which are only capable of notifying a single node of receipt of data.
The first type of notification may comprise an L2L3 ack; in some arrangements, such as in the embodiment described below under the heading "System Using L2 Acks", it may comprise an L2 ack.
In some preferred embodiments, the receiving node is arranged to create and send a second type of notification (e.g. an L2 ack) in response to receiving a second set of data. The second type of notification is for notifying the relay node of receipt of the second set of data at the receiving node and not for notifying the sending node of receipt of the second set of data at the receiving node. Additionally or alternatively, the receiving node may be arranged to create and send a third type of notification (e.g. an [3 ack) in response to receiving the second set of data. The third type of notification is for notifying the sending node of receipt of the second set of data at the receiving node and not for notifying the relay node of receipt of the second set of data at the receiving node. The receiving node is capable of creating and sending a variety of types of notification, according to requirements.
In some arrangements, the receiving node is arranged to monitor for a confirmation of receipt of the third type of notification at the relay node and to cease monitoring in response to receiving the confirmation. The receiving node may further be arranged to resend the third type of notification in response to not receiving the confirmation. The relay node is thus capable of resending notifications in the event that their successful receipt is not confirmed.
In some embodiments, the receiving node is arranged to not monitor for a confirmation of receipt of the first type of notification at the relay node. Some types of notification according to the present invention do not require confirmation of receipt.
In some preferred embodiments, the receiving node is arranged to process data sequentially through a stack of protocol layers, said stack comprising a first protocol layer and a second protocol layer. The first protocol layer may comprise a data link layer for transmitting data between adjacent nodes of a connection (L2), and the second protocol layer may comprise a network layer for establishing data connections (L3). The invention may thus be implemented in systems that transmit according to a protocol stack.
The receiving node may be arranged to send the first type of notification (e.g. an L2L3 ack) in response to receiving the first set of data at the first protocol layer and at the second protocol layer. Additionally, or alternatively, the receiving node may be arranged to send the second type of notification (e.g. an L2 aek) in response to the second set of data being received at the first protocol layer (e.g. L2) and not received at the second protocol layer (e.g. L3).
Additionally, or alternatively, the receiving node may be arranged to send the third type of notification (e.g. an [3 ack) in response to the second set of data being received at the second protocol layer. Thus, embodiments of the present invention may be implemented in accordance with characteristics of a protocol stack according to which transmission takes place.
In some arrangements, the first set of data and the second set of data are members of a sequence of sets of data, each member comprising an indicator of a position in the sequence, and the receiving node comprises means for determining the position of a given set of data in the sequence. The first type of notification may comprise an indicator of a position in the sequence of the first set of data. The second type of notification may comprise an indicator of a position in the sequence of the second set of data. The third type of notification may comprise an indicator of a position in the sequence of the second set of data. These features facilitate monitoring of notification and other data when transmitting data in a sequence.
In some embodiments, instances of each of the first type of notification, the second type of notification and the third type of notification comprise an identifier of the type of notification to which said instance belongs. This provides a convenient means of identifying notifications.
In accordance with a third aspect of the prcsent invention, there is provided a method of transmitting data in a network, said network comprising a sending node, a relay node and a receiving node, said method comprising: receiving data sent from said sending node at said relay node, and sending said data to said receiving node; receiving a notification at said relay node, said notification being for notifying said sending node of receipt of said set of data at said receiving node; determining whether said notification is of a first type or another, different, type of notification; in the case that said notification is determined to be of the first type, not sending a confirmation of receipt of said notification at said relay node to said receiving node; in the case that said notification is determined to be of the other type, sending said confirmation of receipt, wherein said first type of notification is for notifying said relay node of receipt of said data at said receiving node.
In some arrangements, the notification comprises an identifier of a type of notification and said determining comprises using said identifier.
The method may comprise comparing said identifier with a predetermined set of identifiers so as to determine the type of notification. The predetermined set of identifiers may be stored at said relay node. These features provide a convenient method of identifying types of notifications.
In accordance with a fourth aspect of the present invention, there is provided a node adapted to perform a method according to a third aspect of the present invention.
In accordance with a fiflh aspect of the present invention, there is provided a computer program comprising a set of executable instructions, which, when executed, cause a node to perform a method according to a third aspect of the present invention.
Further features and advantages of the invention will become apparent from the following description of preferred embodiments of the invention, given by way of example only, which is made with reference to the accompanying drawings.
Brief Description of the Drawin2s
Figure 1 a is a schematic timing diagram showing a first example of data being sent and acknowledged in a system comprising a source node, an intermediate node and a terminating node according to a prior art point to point acknowledgement method; Figure lb is a schematic timing diagram showing a second example of data being sent and acknowledged in a system comprising a source node, an intermediate node and a terminating node according to a prior art point to point acknowledgement method; Figure 2a is a schematic timing diagram showing a first example of data being sent and acknowledged in a system comprising a source node, an intermediate node and a terminating node according to a prior art end to end acknowledgement method; Figure 2b is a schematic timing diagram showing a second example of data being sent and acknowledged in a system comprising a source node, an intermediate node and a terminating node according to a prior art end to end acknowledgement method; Figure 3 is a schematic timing diagram showing a prior art system in which both an end to end acknowledgement method and a point to point acknowledgement method are used; Figure 4 is a block diagram showing a sending node, a relay node, a receiving node, components of the nodcs and connections bctwccn them, in accordance with an embodiment of present invention; Figure Sa is a schematic timing diagram showing a first example of data being scnt and acknowlcdged in a system comprising a scnding node, a rclay node and a receiving node in accordance with a first embodiment of the present invcntion; Figure Sb is a schematic timing diagram showing a second example of data being sent and acknowledged in a system comprising a sending node, a relay node and a receiving node in accordancc with a first embodiment of the present invention Figure 6 is a detailed block diagram of a general node and components of the general node, in accordance with an embodiment of the present invention; Figure 7 is a flow diagram showing the operation of a sending node receiving and acknowledging data in accordance with an embodiment of the present invention; Figure 8 is a flow diagram showing the operation of a relay node transmitting and acknowledging data in accordance with a fir st embodiment of the present invention; Figure 9 is a schematic diagram showing a structure of a notification according to an embodiment of the present invention; Figure 10 is a schematic diagram of a structure of a reference table according to an embodiment of the present invention; Figure 11 is a flow diagram showing the operation of a relay node transmitting and acknowledging data in accordance with a second embodiment of the present invention; and Figure 12 is a schematic timing diagram showing an example of data being sent and acknowledged in a system comprising a sending node, a relay node and a receiving node in accordance with a second embodiment of the present invention.
Detailed Description of the Invention
Figure 4 shows a system in which embodiments of the present invention may be implemented. The system shown comprises a sending node lOOa, a relay node lOOb and a receiving node lOOc, but such systems can and often do comprise more than the three nodes shown. Each node lOOa, bOb, lOOc comprises an interface 102 for transmitting and/or receiving data, a processing unit 104 for processing data and a store for storing data; functions of these components will be described be'ow. Each node lOOa, bOb, lOOc may comprise a metering device, such as a utility meter, a personal computer, a network data router or a data acquisition device for e.g. controlling an monitoring street lamps, horticultural irrigation systems, burglar alarms or vending machines, but the invention is not limited to such devices. Data may be transmitted between the nodes lOOa, bOb, lOOc over a radio link. Each of the nodes lOOa, bOb, lOOc may be capable of duplex communications, with Time Division Duplex (TDD) used to multiplex signals onto a single carrier, though other types of communication between the nodes are possible. Data may be transmitted according to a frame structure. In the following discussion, it will be assumed that all data, including acks, is transmitted in data packets, and that each node processes data according to a protocol stack including L2 and L3 described above; however, the invention is not limited to such arrangements.
In the arrangement shown, direct communication is possible between sending node lOOa and relay node bOb, and between relay node lOOb and receiving node lOOc, but not between sending node lOOa and receiving node lOOc; this may be due to, for example, receiving node lOOc being out of range of a signal from sending node bOOa, and/or vice versa. However, a connection may be formed between sending node lOOa and receiving node lOOc by each of the sending node lOOa and the receiving node exchanging data with the relay node bOb, allowing indirect communication between the sending node lOOa and the receiving node bOOe. It is to be understood that in many arrangements the specific role of each individual node is not fixed, with each node being capable of acting as a sending node, a receiving node or a relay node.
Figure 5a shows primary data being transmitted and acknowledged according to an embodiment of the present invention. At step S600, a primary data packet Dl is sent from the sending node lOOa to the relay node bOb. On receiving packet Dl, the relay node 1 OOb sends an L2 ack to the sending node 1 OOa at step S602; it also sends packet Dl onwards to the receiving node I OOe at step S604. At step S606, the receiving node lOOc sends a combined ack to the relay node; this combined ack is capable of performing functions both of conventional L2 acks and conventional L3 acks, as will be described below.
Combined acks will hereinafter be referred to as L2L3 acks.
The rclay node lOOb receives the ack and analyses it to ascertain the type of aek, as will be described below. Having ascertained that the ack is an L2L3 aek, the relay node lOOb sends an L3 ack to the sending node lOOa at step S608.
The sending node I OOa receives the L3 aek, and sends an L3 ack confirmation to the relay node at step S610. Unlike a conventional L2 ack sent from a receiving node I OOe, which only notifies a relay node lOOb of receipt of data, and unlike a conventional L3 ack sent from a receiving node lOOc, which is only intended to notif' a receiving node lOOc of receipt of data, an L2L3 ack according to the present invention causes both the relay node bOb and the sending node lOOa to be notified of receipt of data at the receiving node I OOc.
It should be noted that, in contrast to an L3 ack, no ack confirmation is required for the L2L3 ack. This is because, as is explained below, the relay node lOOb monitors for receipt of the L2L3 ack and, if the L2L3 ack is not received, resends packet DI, which then causes the L2L3 ack to be resent from the receiving node I OOc. Further, unlike the system described in relation to Figure 3, in which both an L2 ack and an L3 aek are sent in response to receiving primary data at the receiving node, in this embodiment of the present invention, only a single ack is sent. Embodiments of the present invention thus provide advantages of both end to end methods and point to point methods, whilst requiring fewer acks than systems in which end to end methods and point to point methods are used together.
In some arrangements, an L2L3 ack may be sent from the relay node lOOb as well as from the receiving node lOOc, as will now be described with reference to Figure Sb. At step S6 12 a data primary data packet Dl is sent from the sending node lOOa to the relay node bob. The relay node lOOb sends Dl to the receiving node lOOc at step S614. However, unlike the arrangement described above in reference to Figure 5a, in this arrangement, the relay node I OOb does not immediately send an L2 ack to the sending node, but monitors for an L2L3 ack from the receiving node 100c for a predetermined length of time.
In the example shown, and within the predetermined period of time, the receiving node lOOc sends an L2L3 aek at step S616 causing the relay node lOOb to send an L2L3 ack to the sending node at step S618. This further reduces the number of acks sent, since a single L2L3 aek is sent in place of the L2 ack and L3 ack of steps 8602 and 8608 respectively in Figure Sa, and because the L3 aek confirm of step 8610 is also not required. If no L2L3 ack is received at the relay node I OOb before the predetermined time period lapses, the relay node bOb sends an L2 aek, as described in relation to Figure 5a (at step S602).
Figure 6 is a detailed block diagram showing components of a general node 100 in accordance with embodiments of the present invention. The general node 100 may function as a sending node lOOa, a relay node lOOb or a receiving node lOOc, and it is to be understood that each of these nodes may comprise the components described here in relation to the general node 100. The general node 100 comprises an interface 102, a store 106, a clock 112 and a processing unit 104 which includes a CPU 116, together with an L2 processing component 108, an L3 processing component 110 and a reference table 114. The processing components 108, 110 can operate under control ofthe CPU 116 so as to process data received from and transmitted to the relay node I OOb via the interface 102. Tn use, the L2 processing component 108 receives data from the interface 102, processes the data and sends data to and receives data from the L3 processing component 110, which also processes data. Fither or each of the L2 processing component 108 and the L3 processing component 110 may comprise a plurality of components. Functions of the reference table 114 will be described below with reference to Figure 10.
In some embodiments, some or all of the individual components of the general node 100 represented in Figure 6 may be individual hardware components; in other embodiments, some or all of the components may be software components running on the general node 100. In particular, the L2 processing component 108 and the L3 processing component typically each comprise one or more software components, but in some instances may comprise one or more hardware components, such as an Application Specific Integrated Circuit (ASIC). In some cmbodimcnts, some or all of thc individual components represented may be combined together into a single component.
Figure 7 shows the operation of a receiving node 1 OOc in receiving and acknowledging primary data. At step S700, the receiving node lOOc receives a primary data packet Dl at the interface 102. The interface then passes packet Dl to the processing unit 104, where it is received at the L2 processing component 108. Packet Dl is analysed to determine, inter alia, whether the receiving node lOOc is the destination node; in the present example, we are assuming that it is. In response to determining that the receiving node 1 OOc is the destination of packet Dl, packet Dl is sent to the L3 processing component 110 at step S703. If the receiving node lOOc were not the destination of packet Dl, packet Dl would not be sent to the L3 processing component 110; instead it would be sent to another node, and the following process would not apply.
At step S704, the processing unit 104 waits for a predetermined length of time T2, before determining at step S706 whether packet Dl has been received at the L3 processing component 110. The value of time T2 may be selected based on the allocation of slots to primary data and acks within the frame structure used for transmission, or more specifically the corresponding delay between slots of a given type for successively transmitted frames, since the sending of an ack must be delayed until the time of the next available slot for sending acks. In other cases, the processing unit 104 may be arranged to delay sending the aek by time T2 in order to provide time for packet Dl to be received at the L3 processing component 110. Time T2 may be measured starting from the time at which packet Dl is received by the processing unit, or from some other point.
The processing unit 104 determines at step S706 whether packet Dl has been received at the L3 processing component 110; if it has, then an L2L3 ack is created and sent via the interface 102 at step S708. If packet Dl has not been received at the L3 processing component 110, the processing unit 104 sends an L2 ack at step S710. The processing unit 104 then proceeds to step S712 where it checks again whether packet Dl has been received at the L3 processing component 110; this step is repeated until the determination is that the packet DI has been received, in response to which an L3 ack is sent at step S714. In some eases, packet Dl is not received at L3 of the receiving node lOOe (i.e. not received at the L3 processing component 110 of the receiving node lOOe), perhaps due to the L3 processing component 110 being unable to receive data; this may be due to, for example, buffers of the L3 processing component 110 being full. In such cases, since neither an L2L3 ack nor an L3 ack has been sent, the sending node lOOa for packet Dl may eventually resend packet Dl to the receiving node lOOc, which may trigger the processing unit 104 to cease iterating step S712. Additionally, or alternatively, if neither a L2L3 ack nor an L3 aek has been received within a given period of time, the sending node 1 OOa may determine that the connection with the receiving node lOOc is not functioning correctly, and attempt to send Dl over a new connection.
It should be noted that, although in the above example an L2 ack is sent in the case that packet Dl is not received at the L3 processing component 110 within time T2, in some arrangements, the processing unit 104 is arranged to wait until packet Dl is received at the L3 processing component 110 before sending any acks at all i.e. it may be that no L2 acks or L3 acks are independently sent from the receiving node I OOe in response to receiving packet Dl.
It should further be noted that the steps of sending an L2L3 ack, an L2 ack and an L3 ack at steps S708, S710 and S7]4 respectively include creating the acks. The structure of acks according to the present invention will be described below.
Figure 8 is a flow diagram showing the action of a relay node JOOb in transmitting and acknowledging primary data. At step 5800, the relay node receives packet Dl; packet Dl is passed via the interface 102 to the processing unit 104, where it is received by the L2 processing component 108. Packet Dl is analysed to determine whether the relay node I OOb is the destination for packet Dl; in this case, it is not, so packet Dl is not passed to the L3 processing component 10. At step S802, packct Dl is stored in the storc 106; this is necessary in case packet Dl needs to be rescnt, as is described below. At step 5804, packet Dl is sent to the receiving node lOOc, via the interface 102. Since packet DI has only been received at the L2 processing component, and not the L3 processing component 110, an L2 notification is sent to the sending node lOOa at step S806. At step S808, the processing unit 104 starts monitoring for an L2 ack or an L2L3 aek corresponding to packet Dl.
At step S810, the processing unit 104 determines whether an ack has been received. If no ack has been received, the processing unit determines at step S820 whether a predetermined time period T3 has elapsed. If time period T3 has elapsed, then packet Dl is retrieved from the store 106 and resent to the receiving node lOOe at step S822; the process then returns to step S808. In some arrangements, the relay node monitors the number of times that Dl is resent and, if no ack is received after a predetermined number of resending attempts, the relay node ceases to resend. If it is determined that time period T3 has not elapsed, the process returns to step 5810, and a further determination as to whether an ack has been received is made. Time period T3 may be measured from the time at which the processor unit 104 starts monitoring at step 5808, or from some other point. The length of time period T3 may be set at a constant value for all types of data packet, or it may be varied according to, for example, the content of packet Dl or data flow conditions within the network.
Returning to step S810, if an ack has been received, the processing unit 104 determines at step 5811 whether the ack corresponds to packet Dl this step is described in more detail below. If the ack does not correspond to packet Dl, the process returns to step S810; it should be noted that although this process does not process this ack any further, a parallel process may process the ack in relation to the primary data packet to which it corresponds.
If the ack does correspond to packet Dl, the processor unit 104 determines at step S8 12 whether the ack is an L2L3 ack. If it is determined that it is an L2L3 ack, the monitoring started at step S808 ends, since receipt of the L2L3 ack confirms that packet Dl has been successflully received at the receiving node lOOc. Packet Dl is thcn deleted from the store 106 at step S816 and an L3 ack is thereafter or concurrently sent to the sending node lOOa (step S818); this L3 ack may be generated by the processing unit 104 of the relay node 1 OOb, or the relay node I OOb may forward the L2L3 ack on to the sending node lOOa, the L2L3 ack acting as an L3 ack for this purpose.
If it is determined at step S812 that the ack received is not an L2L3 ack, the processing unit 104 determines at step S824 whether the ack received is an L2 ack. As described above with reference to figure 7, L2 acks and!or L3 acks, rather than L2L3 acks may be sent where a data packet is received at L2, but not L3, of a receiving node 1 OOc, perhaps due to data corruption, or where there is delay between the data being received at the respective layers the receiving node lOOe. Further, L2 and/or [3 acks may be used where the relay node lOOb receives the ack from another relay node I OOb, rather than directly from a receiving node lOOc. Accordingly, the relay node lOOb can optionally additionally be configured to act upon L2 acks and [3 aeks, as shown at steps S824 onwards. More specifically, if it is determined that the ack recieved is an L2 aek, the monitoring started at step S808 ends at step S826, since the L2 aek confirms that packet Dl has been successfully received at the receiving node lOOe. Packet Dl is then deleted from the store 106 at step S828.
If it is determined at step S824 that the ack received is not an L2 aek, then the only remaining possibility in this example is that it is an [3 ack; this L3 aek is forwarded to the sending node at step S830 and an L3 ack confirmation sent to the sending node at step S832. The process then returns to step S8 10.
Turning now to Figure 9, the structure of acks sent by the receiving node lOOc in accordance with embodiments of the present invention will be described. Figure 9 shows an example structure of an aek 900. In this example, the ack 900 is sent as a single data packet, but the present invention is not limited to such cases. The ack 900 comprises a source address 902, a destination address 904, a packet number 906 and an aek identification value 908. In this example, the source address 902, which identifies the node at which the ack 900 is created and sent, is the receiving node address and the destination address 904 is thc sending node address. The packet number 906 identifies the data packet to which the ack 900 corresponds; here it has the value 1. The aek identifier 908 identifies the ack 900 as either an L2 ack, an L3 ack or an L2L3 ack.
Figure 10 shows the content of reference table 114, which the relay node lOOb uses to perform frmnctions such as identif'ing the type of ack at steps S812 and S824 described above with reference to Figure 8. The reference table 114 comprises a value column 1004, which lists possible values for the ack identifier 908 described above, and an action column 1006, which indicates a corresponding relay node lOOb action for each aek identifier value. A type column 1002, showing aek types corresponding to the values and actions, is also shown here for ease of reference, but reference tables will not typically comprise this coiunm. Although not represented in Figure 10, the reference table 114 may also contain entries relating to L3 aek confirmations.
On receiving a data packet, the relay node I OOb determines whether the data packet comprises an aek identifier 908; if it does, this identifies that the data packet is an ack. The relay node I OOb reads the value of the packet number 906 to determine to which data packet the aek 900 corresponds. It next reads the value of the aek identifier 908 and compares this to the values in the value colunm 1004 of the reference table 114, and looks for a matching value. When a match is found, the relay node looks in the corresponding entry in the action column 1006 and performs the action specified therein. In the table of figure 10, a value of 00 for the ack identifier 908 corresponds to an L2 aek, and triggers the relay node lOOb to cease monitoring; a value of 01 for the ack identifier 908 corresponds to an L3 ack, and triggers the relay node lOOb to forward the ack to the destination address 904 and to send an L3 ack confirmation to the source address 902; and a value of 10, which corresponds to an L2L3 ack, triggers the relay node lOOb to cease monitoring and send an L3 ack to the destination address 904.
System Using L2 Acks A further embodiment of the present invention is now described, in which a sequence of primary data packets D(1). D(2) ..., each having a packet number N indicating a position in the sequence, is sent from the sending node I OOa to the receiving node 1 OOc via the relay node I OOb. In this further embodiment, neither L3 acks nor L2L3 acks are used; instead each L2 ack is arranged to contain an L2 packet number (L2PN) and an L3 packet number (L3PN). The L2PN indicates the packet number of the last primary data packet correcfly received by the node sending the L2 ack. The L3PN indicates the packet number of the last primary data packet correctly received in sequence at the L3 processing component 110 of the node terminating the connection i.e. the destination node of each of the primary data packets. In the following discussion the notation A(N, M) will be used to indicate an L2 ack having an L2PN of N and an L3PN of M. A node transmitting primary data and acks keeps a record or records of an L2PN and an L3PN corresponding to that node i.e. the packet number of the last primary data packet received correctly and in scqucncc by the node, and thc L3PN of the last ack received by thc nodc respectively.
It is to be understood that the primary data packets and acks referred to here may comprise information such as a destination node address, a source node address, information indicating the type of data contained within the data packet/ack, and so on.
Figure 11 is a flow diagram showing the operation of a relay node lOOb in transmitting and acknowledging primary data according to an embodiment of the present invention; we again consider the case of a connection from a sending node lOOa to a receiving node lOOc via a relay node bob. At step S1100 the relay node 10Db receives primary data packet D(n). At step 51102, the processing unit 104 of relay node 10Db sets the L2PN to n; an indication of the L2PN and an indication of the L3PN may be stored in the store 106. We are here assuming that packet D(n) is received correctly and in sequence i.e. that all primary data packets in the sequence packet D(1)...D(n-l) have also been correctly received at the relay node bOb. If this is not the case because, for example, packet D(n-1) has not been received at the relay node I OOb, step SI 102 and subsequent steps maybe altered; for example, L2PN may not be set to n, and the following steps may not be performed until packet D(n-1) and packet D(n) are both correctly received.
Returning to Figure 11, at step S1104, packet D(n) is stored in the store 106. An ack, aek A(n,x), is sent to the sending node lOOa at step S1106. At step S 1108, packet D(n) is sent to receiving node I DOe, and at step SI 110 the processing unit 104 starts monitoring for an ack for packet D(n) having an L2BN of n. If no such ack is received within a predetermined time interval, packet D(n) may be resent; however, in this example, such an ack, ack A(n,m) is received at step S1112. Since ack A(n,m) has an L2PN ofn, indicating that packet D(n) has been correctly received at by the receiving node lOOc, at step 51114 the processing unit 104 ceases the monitoring started at step Sub, and deletes packet D(n) frornthe store 106 at step 51116.
At step 51118, the L3PN of the relay node lOOb is set equal to m. At step S1120, the processing unit 104 determines whether its L2PN (n) is equal to its L3PN (m). If they are not equal, the process ends at step S 1124; however, if they are equal, a thither ack A(n,n) is sent to the sending node lOOa at step S 1122; this further aek ensures that receipt of the final primary data packet of the sequence at the receiving node lOOe is notified to the sending node I OOa.
Figure 12 shows an example data transmission session between a sending node lOOa, a relay node 10Db and a receiving node lODe, in which a sequence of three primary data packets packet DC) to packet D(3) is transmitted and acknowledged according to this further embodiment. At step SI 200 the sending node lOOa sends packet D(1) to the relay node lOOb; in response, the relay node sets its L2PN to I. At step S 1202, the relay node lOOb sends ack A(1,0) to the sending node lOOa, and sends packet D(1) to the receiving node 1 OOc at step S1204. The receiving node correctly receives packet D(1); in the following discussion, references to a receiving node lOOc correctly receiving a primary data packet should be taken to mean the receiving node lOOe correctly receiving the primary data packet at its L2 processing component 108 and at its L3 processing component 110.
At stcp 1206, the sending node lOOa sends packet D(2) to the relay node I OOb; in response, the relay node I OOb sets its L2PN to 2. Before the relay node lOOb sends an ack to acknowledge packet Dc), the receiving node lOOc sends ack A(i,1) to the relay node lOOb at step S1208; on receipt of ack A(1,1) the relay node 1 OOb to sets its L3PN to 1. The ack conesponding to packet D(2) sent from the relay node lOOb to the sending node IOOa at step S1210 therefore takes the form A(2,1). This notifies the sending node I OOa that packet 13(1) has been conectly received at the L3 processing component 110 of the receiving node lOOc. It should be noted that all acks sent from the receiving node have an L3PN equal to the L2PN.
At step 51212, packet D(2) is sent from the relay node bOb; however it is not received at the receiving node I OOe, and no ack is therefore sent thereby.
At step S1214, the sending node lOOa sends packet D(3) to the relay node bOb; in response to receiving packet D(3), the relay node I OOb sets its L2PN to 3, and sends ack A(3,I) to the sending node IOOa at step S1216. At step S1218 the relay node lOOb sends packet D(3) to the receiving node lOOc. Packet D(3) is received at the receiving node I OOc; however, since packet D(2) has not yet been received at the receiving node I OOc, packet D(3) is not received in sequence, and no corresponding ack is sent from the receiving node I OOc.
Since the relay node lOOb has not received an ack for packet D(2), it resends packet D(2) at step S 1220; this may be due to a predetermined time interval having elapsed. On this occasion, packet D(2) is conectly received by the receiving node I OOc, which sends ack A(2, 2) to the relay node I OOb at step S 1222. The relay node lOOb resends packet D(3) at step S 1224; the relay node I OOb may be arranged to do this automatically in response to resending packet or it may resend packet D(3) in response to not receiving a corresponding aek, or in response to some other factor. In some arrangements, it may not be necessary to resend packet D(3), since it has already been correctly received at step S1218. This may be achieved by, for example, arranging so that the receiving node lOOe sends an aek notifying receipt of packet D(3) after sending ack A(2, 2) at step S 1222.
Packct D(3) is correctly received at the receiving node lOOc, which acknowledges receipt of packet D(3) by sending ack A(3,3) to the relay node lOOb at step S1226. On receiving ack A(3,3), the relay node lOOb sets its L3PN to 3; since the L3PN and L2PN for the relay node are now equal, A(3,3), is sent from the relay node lOOb to the sending node at step S1228. This notifies the sending node lOOa that packet D(3) has been correctly received at the receiving node lOOc. Further, although the sending node lOOa has not received an ack having an L3PN of 2, since the receiving node lOOc sends A(3,3) in response to packet D(3) being correctly received in sequence, receipt of A(3,3) also notifies the sending node lOOa of correct receipt of packet D(2).
It is to be noted that the sending node bOa monitors for receipt of acks having an L3PN corresponding to primary data packets it has sent. For example, a primary data packet D(q) having packet number q may be resent in response to not receiving an ack of the form A(p,q) within a certain time period.
This embodiment thus provides a method of acknowledging primary data using L2 acks that allows the sending node lOOa to be informed of receipt of primary data at the receiving node lOOc, thus providing advantageous features of both end to end methods and point to point methods, using only L2 acks.
The above embodiments are to be understood as illustrative examples of the invention. Further embodiments of the invention are envisaged. For example, in the above examples, connections involving only three nodes were considered. As mentioned above, the invention is not limited to such connections, and may be applied to connections comprising any number of nodes. In some cases data may be transmitted in a connection comprising a plurality of relay nodes; in these cases, on receipt of data by a relay node, the L2 processing component 108 of the node analyses the data to determine its destination address; if the destination address is different to the address of the current node, the data is sent to a node nearer to the destination address; if the data is primary data, an ack may be sent to a node nearer to the source of the primary data packet. In connections comprisiiig more than three nodes, the principles explained above in relation to a receiving node lOOa, relay node lOOb and receiving node lOOc apply equally to any three nodes forming part of the connection.
Further, in Figure 8, separate L2 and L3 acks were sent from the relay node bOb. However, in some arrangements, the relay node lOOc may send an L2L3 at step S818 instead of the L2 aek sent at step S806 and the L3 ack sent at step S818, as described in reference to Figure Sb. This may particularly be the ease where there is a short propagation time for sending data between the relay node lOOa and the receiving node lOOc.
In the above examples, L3 acks were created and sent in response to primary data being received at [3 of a receiving node; however, in some arrangements, L3 acks may be sent in response to primary data being received at the receiving node, but not at L3.
In the section entitled "System Using Only L2 Acks", each data packet had an indicator of an L2PN and an indicator of an L3PN. However, in some arrangements other indicators may be used; for example, an indicator of an L2PN and an indicator or a difference between an L2PN and an L3PN maybe used.
It is to be understood that any feature described in relation to any one embodiment may be used alone, or in combination with other features described, and may also be used in combination with one or more features of any other of the embodiments, or any combination of any other of the embodiments.
Furthermore, equivalents and modifications not described above may also be emp'oyed without departing from the scope of the invention, which is defined in the accompanying claims.
Numbered Clauses The following numbered clauses describe various embodiments of the present invention.
1. A relay node for transmitting data in a network, said network comprising said relay node, a sending node and a receiving node, said relay node comprising: an interface for receiving data, said data having been sent from said sending node, wherein said interface is arranged for sending said data to said receiving node; and means for monitoring for a first notification, said first notification being for identifying receipt of said data at said receiving node; wherein said interface is arranged for receiving said first notification, and said relay node is arranged to cease said monitoring in response to receiving said first notification and to send a second notification to said sending node in response to receiving said first notification, said second notification being for identifying receipt of said data at said receiving node.
2. A relay node according to any preceding clause, wherein said relay node comprises a store for storing said data.
3. A relay node according to clause 2, wherein said relay node is arranged to remove said data from said store in response to receiving said first notification.
4. A relay node according to any preceding clause, comprising means for monitoring for a third notification, said third notification being for identiI'ing receipt of said data at said receiving node, wherein said interface is arranged for receiving said third notification, and said relay node is arranged to cease said monitoring in response to receiving said third notification and not to send a notification to said sending node in response to receiving said third notification.
5. A relay node according to clause 4, wherein said relay node is arranged to resend said data in response to not receiving either of said first notification and said third notification.
6. A relay node according to either of clause 4 and clause 5, wherein said relay node is arranged to monitor for said first notification and said third notification over a predetermined time interval, and the relay node is arranged to resend said data in the event that neither said first notification nor said third notification is received before said predetermined time interval elapses.
7. A relay node according to any preceding clause, wherein said relay node is arranged to monitor for a fourth notification, said fourth notification being for identifying receipt of said data at said receiving node, wherein said interface is arranged for receiving said fourth notification, and said relay node is arranged not to cease said monitoring in response to receiving said fourth notification and to send a fifth notification to said sending node in response to receiving said fourth notification, said fifth notification being for idcntiing receipt of said data at said receiving node.
8. A relay node according to clause 7, wherein said relay node is arranged to send a confirmation of receipt of said fourth notification to said receiving node in response to receiving said fourth notification.
9. A relay node according to any preceding clause, wherein said relay node is arranged not to send a confirmation of receipt of said first notification to said receiving node in response to receiving said first notification.
10. A relay node according to any preceding clause, wherein said relay node is arranged to derive said second notification from said first notification.
11. A relay node according to any preceding clause, wherein said data comprises an identifier of said data, and said second notification comprises said identifier.
12. A relay node according to any preceding clause, wherein said first notification comprises an indication of a number of sets of data received at said receiving node, and said second notification comprises said indication and a further indication, said further indication indicating a number of sets of data received at said relay node.
13. A relay node according to any preceding clause, wherein said interface comprises a plurality of interfaces.
14. A receiving node for receiving data in a network, said network comprising said receiving node, a relay node and a sending node, said receiving node comprising means for receiving a first set of data, said first set of data having been sent from said sending node via said relay node, wherein said receiving node is arranged to create and send a first type of notification, wherein said first type of notification comprises information for noti'ing said relay node of receipt of said first set of data at said receiving node, and for noti1'irig said sending node of receipt of said first set of data at said receiving node.
15. A receiving node according to clause 14, comprising means for receiving a second set of data, said second set of data having been sent from said sending node via said relay node, wherein said receiving node is arranged to create and send a second type of notification, said second type of notification being for notifying said relay node of receipt of said second set of data at said receiving node and not for notifying said sending node of receipt of said second set of data at said receiving node.
16. A receiving node according to clause 15, wherein said receiving node is arranged to create and send a third type of notification, said third type of notification being for notifying said sending node of receipt of said second set of data at said receiving node and not for notifying said relay node of receipt of said second set of data at said receiving node.
17. A receiving node according to clause 16, wherein said receiving node is arranged to monitor for a confirmation of receipt of said third type of notification at said relay node and to cease said monitoring in response to receiving said confirmation.
18. A receiving node according to clause 17, wherein said receiving node is arranged to resend said third type of notification in response to not receiving said confirmation.
19. A receiving node according to any of clause 14 to clause 18, wherein said receiving node is arranged not to monitor for a confirmation of receipt of said first type of notification at said relay node.
20. A receiving node according to any of clause 16 to clause 19, wherein said receiving node is arranged to process data sequentially through a stack of protocol layers, said stack comprising a first protocol layer and a second protocol layer.
21. A receiving node according to clause 20, wherein said receiving node is arranged to send said first type of notification in response to receiving said first set of data at said first protocol layer and at said second protocol layer.
22. A receiving node according to either of clause 20 and clause 21, wherein said receiving node is arranged to send said second type of notification in response to said second set of data being received at said first protocol layer and not received at said second protocol layer.
23. A receiving node according to any of clause 20 to clause 22, wherein said receiving node is arranged to send said third type of notification in response to said second set of data being received at said second protocol layer.
24. A receiving node according to any of clause 20 to clause 23, wherein said first protocol layer comprises a data link layer for transmitting data between adjacent nodes of a connection.
25. A receiving node according to any of clause 20 to clause 24, wherein said second protocol layer comprises a network layer for establishing data connections.
26. A receiving node according to any of clause 16 to clause 25, wherein said first set of data and said second set of data are members of a sequence of sets of data, each member comprising an indicator of a position in said sequence, and said receiving node comprises means for determining said position.
27. A receiving node according to clause 26, wherein said first type of notification comprises an indicator of a position in said sequence of said first set of data.
28. A receiving node according to either of clause 26 and clause 27, wherein said second type of notification comprises an indicator of a position in said sequence of said second set of data.
29. A receiving node according to any of clause 26 to clause 28, wherein said third type of notification comprises an indicator of a position in said sequence of said second set of data.
30. A receiving node according to any of clausc 16 to clause 29, wherein instances of each of said first type of notification, said second type of notification and said third type of notification comprise an identifier of the type of notification to which said instance belongs.
31. A method of transmitting data in a network, said network comprising a sending node, a relay node and a receiving node, said method comprising: receiving data sent from said sending node at said relay node, and sending said data to said receiving node; receiving a notification at said relay node, said notification being for notiing said sending node of receipt of said set of data at said receiving node; determining whether said notification is of a first type or another, different, type of notification; in the case that said notification is determined to be of the first type, not sending a confirmation of receipt of said notification at said relay node to said receiving node; in the case that said notification is determined to be of the other type, sending said confirmation of receipt, wherein said first type of notification is for notifying said relay node of receipt of said data at said receiving node.
32. A method according to clause 31, in which said notification comprises an identifier of a type of notification and said determining comprises using said identifier.
33. A method according to clause 32, in which said determining comprises comparing said identifier with a predetermined set of identifiers.
34. A method according to clause 33, in which said predetermined set of identificrs is stored at said relay node.
35. A node adapted to perform the method of any of clause 31 to clause 34.
36. A computer program comprising a set of executable instructions, which, when executed, cause a node to perform the method of any of clause 31 to dausc 34.

Claims (1)

  1. <claim-text>Claims 1. A receiving node for receiving data in a network, said network comprising said receiving node, a relay node and a sending node, said receiving node comprising means for receiving a first set of data, said first set of data having been sent from said sending node via said relay node, wherein said receiving node is arranged to create and send a first type of notification, wherein said first type of notification comprises information for notiing said relay node of receipt of said first set of data at said rccciving node, and for notifying said sending node of receipt of said first set of data at said receiving node, wherein said receiving node is arranged to receive a second set of data, said second set of data having been sent from said sending node via said relay node and, responsive to receipt of said second set of data, to create and send a second type of notification, said second type of notification being for notifying said sending node of receipt of said second set of data at said receiving node and not for notifying said relay node of receipt of said second set of data at said receiving node.</claim-text> <claim-text>2. A receiving node according to claim 1, arranged to create and send a third type of notification, said third type of notification being for noti'ing said relay node of receipt of said second set of data at said receiving node and not for notifying said sending node of receipt of said second set of data at said rccciving node.</claim-text> <claim-text>3. A receiving node according to claim 2, wherein instances of each of said first type of notification, said second type of notification and said third type of notification comprise an identifier of the type of notification to which said instance belongs.</claim-text> <claim-text>4. A receiving node according to any preceding claim, wherein said receiving node is arranged to monitor for a confirmation of rcccipt of said second type of notification at said relay node and to cease said monitoring in response to receiving said confirmation.</claim-text> <claim-text>5. A receiving node according to claim 4, wherein said receiving node is arranged to resend said second type of notification in response to not receiving said confirmation.</claim-text> <claim-text>6. A rccciving node according to any preceding claim, wherein said receiving node is arranged not to monitor for a confirmation of receipt of said first type of notification at said relay node.</claim-text> <claim-text>7. A receiving node according to any preceding claim, wherein said receiving node is arranged to process data sequentially through a stack of protocol layers, said stack comprising a first protocol layer and a second protocol layer.</claim-text> <claim-text>8. A receiving node according to claim 7, wherein said receiving node is arranged to send said first type of notification in response to receiving said first set of data at said first protocol layer and at said second protocol layer.</claim-text> <claim-text>9. A receiving node according to claim 7 or claim 8, wherein said receiving node is arranged to send said second type of notificat ion in response to said second set of data being received at said second protocol layer.</claim-text> <claim-text>10. A receiving node according to claim 2, wherein said receiving node is arranged to process data sequentially through a stack of protocol layers, said stack comprising a first protocol layer and a second protocol layer, wherein said receiving node is arranged to send said third type of notification in response to said second set of data being received at said first protocol layer and not received at said second protocol layer.</claim-text> <claim-text>11. A receiving node according to any of claim 7 to claim 10, wherein said first protocol layer comprises a data link layer for transmitting data between adjacent nodes of a connection.</claim-text> <claim-text>12. A receiving node according to any of claim 7 to claim 11, wherein said second protocol layer comprises a network layer for establishing data connections.</claim-text> <claim-text>13. A receiving node according to any preceding claim, wherein said first set of data and said second set of data are members of a sequence of sets of data, each member comprising an indicator of a position in said sequence, and said receiving node comprises means for determining said position.</claim-text> <claim-text>14. A receiving node according to claim 13, wherein said first type of notification comprises an indicator of a position in said sequence of said first set of data.</claim-text> <claim-text>15. A receiving node according to either of claim 13 and claim 14, wherein said second type of notification comprises an indicator of a position in said sequence of said second set of data.</claim-text> <claim-text>16. A method of receiving data in a network, the network comprising a receiving node, a relay node and a sending node, the method comprising: receiving a first set of data at the receiving node, said first set of data having been sent from said sending node via said relay node; creating and sending a first type of notification from the receiving node, wherein said first type of notification comprises information for notifying said relay node of receipt of said first set of data at said receiving node, and for notif'ing said sending node of receipt of said first set of data at said receiving node; receiving a second set of data at said receiving node, said second set of data having been sent from said sending node via said relay node; and responsive to receipt of said second set of data, creating and sending a second type of notification, said second type of notification being for notifying said sending node of receipt of said second set of data at said receiving node and not for notifying said relay node of receipt of said second set of data at said receiving node.</claim-text> <claim-text>17. A method according to c'aim 16, comprising creating and sending a third type of notification, said third type of notification being for notifying said relay node of receipt of said second set of data at said recciving node and not for noti'ing said sending node of receipt of said second set of data at said receiving node.</claim-text> <claim-text>18. A method according to claim 17, in which instances of each of said first type of notification, said second type of notification and said third type of notification comprise an identifier of the type of notification to which said instance belongs.</claim-text> <claim-text>19. A method according to any of claim 16 to claim 18, comprising monitoring for a confirmation of receipt of said second type of notification at said relay node and to cease said monitoring in response to receiving said confirmation.</claim-text> <claim-text>20. A method according to claim 19, comprising resending said second type of notification in response to not receiving said confirmation.</claim-text> <claim-text>21. A method according to any of claim 16 to claim 20, comprising not monitoring for a confirmation of rcccipt of said first typc of notification at said relay node.</claim-text> <claim-text>22. A method according to any of claim 16 to claim 21, in which said receiving node is arranged to process data sequentially thxough a stack of protocol layers, said stack comprising a first protocol layer and a sccond protocol layer.</claim-text> <claim-text>23. A mcthod according to any of claim 22, comprising sending said first type of notification in response to receiving said first set of data at said first protocol layer and at said second protocol layer of the receiving node.</claim-text> <claim-text>24. A method according to claim 22 or claim 23, comprising sending said second type of notification in response to said second set of data being rcccivcd at said second protocol layer of the receiving node.</claim-text> <claim-text>25. A method according to claim 17, wherein said receiving node is arrangcd to process data sequentially through a stack of protocol layers, said stack comprising a first protocol layer and a second protocol layer, the method comprising sending said third type of notification in response to said second set of data being received at said first protocol layer and not received at said second protocol layer.</claim-text> <claim-text>26. A method according to any of claim 22 to claim 25, in which said first protocol layer comprises a data link layer for transmitting data between adjacent nodes of a connection.</claim-text> <claim-text>27. A method according to any ofclaim 22 to claim 26, in which said second protocol layer comprises a network layer for establishing data connections.</claim-text> <claim-text>28. A method according to any of claim 16 to claim 27, in which said first set of data and said second set of data are members of a sequence of sets of data, each member comprising an indicator of a position in said sequence, and said receiving node comprises means for determining said position.</claim-text> <claim-text>29. A method according to claim 28, in which said first type of notification comprises an indicator of a position in said scqucnce of said first set of data.</claim-text> <claim-text>30. A method according to claim 28 or claim 29, in which said second type of notification comprises an indicator of a position in said sequence of said second set of data.</claim-text> <claim-text>31. A method of transmitting data in a network, said network comprising a sending node, a relay node and a receiving node, said method comprising: receiving data sent from said sending node at said relay node, and sending said data to said receiving node; receiving a notification at said relay node, said notification being for notiing said sending node of receipt of said set of data at said receiving node; determining whether said notification is of a first type or a second, different, type of notification; in the case that said notification is determined to be of the first type, not sending a confirmation of receipt of said notification at said relay node to said receiving node; in the case that said notification is determined to be of the second type, sending said confirmation of receipt, wherein said first type of notification is for notifying said relay node of receipt of said data at said receiving node.</claim-text> <claim-text>32. A method according to claim 31, in which said notification comprises an identifier of a type of notification and said determining comprises using said identifier.</claim-text> <claim-text>33. A method according to claim 32, in which said determining comprises comparing said identifier with a predetermined set of identifiers.</claim-text> <claim-text>34. A method according to claim 35, in which said predetermincd sct of identifiers is stored at said relay node.</claim-text> <claim-text>35. A method according to any of claim 31 to claim 34, in which said receiving node is arranged to receive data via the network at a first protocol laycr and a second protocol laycr of a protocol layer stack, the first protocol layer being for handling transmission of data between adjaccnt nodcs of a connection and the second protocol layer being for establishing data conncctions.</claim-text> <claim-text>36. A method according to claim 35, in which said first type of notification is for identifying receipt of said set of data at the first protocol layer and the sccond protocol layer of the receiving node.</claim-text> <claim-text>37. A mcthod according to claim 35 or claim 36, in which said second type of notification is for identifying receipt of said set of data at the second protocol layer, but not idcntifying receipt of data at the first protocol laycr, of thc receiving nodc.</claim-text> <claim-text>38. A computcr program comprising a sct of cxccutable instructions, which, when executed, cause a node to pcrform the method of any of claim 31 to claim 37.</claim-text> <claim-text>39. A relay node for transmitting data in a network, said network comprising a sending node, a relay node and a receiving node, the relay node comprising one or more interfaces for sending and receiving data, the relay node being arranged to: receive data sent from said sending node, and sending said data to said receiving node; receive a notification for notifying said sending node of receipt of said set of data at said receiving node; determining whether said notification is of a first type or a second, different, typc of notification; in the case that said notification is determined to be of the first type, not sending a confirmation of receipt of said notification at said relay node to said receiving node in the case that said notification is determined to be of the second type, sending said confirmation of receipt, wherein said first type of notification is for notifying said relay node of receipt of said data at said receiving node.</claim-text> <claim-text>40. A relay node according to claim 39, wherein said notification comprises an identifier of a type of notification and said determining comprises using said identifier.</claim-text> <claim-text>41. A relay node according to claim 40, wherein said determining comprises comparing said identifier with a predetermined set of identifiers.</claim-text> <claim-text>42. A relay node according to claim 41, wherein said predetermined set of identifiers is stored at said relay node.</claim-text> <claim-text>43. A relay node according to any of claim 39 to claim 42, wherein said receiving node is arranged to receive data via the network at a first protocol layer and a second protocol layer of a protocol layer stack, the first protocol layer being for handling transmission of data between adjacent nodes of a connection and the second protoco1 layer being for establishing data connections.</claim-text> <claim-text>44. A relay node according to claim 43, wherein said first type of notification is for identifying receipt of said set of data at the fir st protocol layer and the second protocol layer of the receiving node.</claim-text> <claim-text>45. A relay node according to claim 43 or claim 44, wherein said second type of notification is for idcntifying receipt of said sct of data at the second protocol layer, but not identifying receipt of data at the first protocol layer, of the receiving node.</claim-text>
GB201217023A 2007-09-24 2007-09-24 Data acknowledgement apparatus and method Active GB2493647B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB201217023A GB2493647B (en) 2007-09-24 2007-09-24 Data acknowledgement apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB201217023A GB2493647B (en) 2007-09-24 2007-09-24 Data acknowledgement apparatus and method

Publications (3)

Publication Number Publication Date
GB201217023D0 GB201217023D0 (en) 2012-11-07
GB2493647A true GB2493647A (en) 2013-02-13
GB2493647B GB2493647B (en) 2013-03-27

Family

ID=47190506

Family Applications (1)

Application Number Title Priority Date Filing Date
GB201217023A Active GB2493647B (en) 2007-09-24 2007-09-24 Data acknowledgement apparatus and method

Country Status (1)

Country Link
GB (1) GB2493647B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3619854B1 (en) * 2017-05-02 2022-06-22 Airo Finland Oy Elimination of latency in a communication channel

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
None *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3619854B1 (en) * 2017-05-02 2022-06-22 Airo Finland Oy Elimination of latency in a communication channel

Also Published As

Publication number Publication date
GB201217023D0 (en) 2012-11-07
GB2493647B (en) 2013-03-27

Similar Documents

Publication Publication Date Title
CA2700486C (en) Data acknowledgement apparatus and method
JP4902905B2 (en) Message transmission method, communication method, deferred acknowledgment communication system, and message transmission system
EP0870378B1 (en) Concatenated error detection coding and packet numbering for hierarchical arq schemes
CA2548340C (en) System and method for controlling the flooding of information in a network environment
EP1207709B1 (en) Retransmission control method and the apparatus
US8270379B2 (en) Wireless terminal and wireless communication method
GB2493647A (en) Sending data and returning acknowledgements
JP6207768B1 (en) Periodic data transmission method
US20040148422A1 (en) Communication control method, communication system, and communication apparatus that can improve throughput
JPH11261465A (en) Radio communication system
JP4573459B2 (en) Wireless terminal device, transmission control device, wireless transmission control method, and program
JPH11252134A (en) Broadcast communication system
JP2001177508A (en) Radio communication equipment
JP2003347975A (en) Power line carrier communication relaying method, power line carrier communication terminal, and relaying apparatus
KR970009708B1 (en) Method for transmitting and receiving data between a processor and other process in an exchanger
JPH11266276A (en) Command/data reproduction method
JPH04273736A (en) Packet communication system and packet re-transmission equipment
JPH07336335A (en) Radio communication method
JP2014143566A (en) Data communication device, data communication method, and program thereof
JP4828322B2 (en) base station
JP2003347974A (en) Power line carrier communication relaying method, and power line carrier communication terminal
JPS62227242A (en) Data transmission system
Kulkarni Performance analysis of HDLC protocol operating in asynchronous balanced mode
JPS5963831A (en) Data transmission system
JPH0529178B2 (en)

Legal Events

Date Code Title Description
732E Amendments to the register in respect of changes of name or changes affecting rights (sect. 32/1977)

Free format text: REGISTERED BETWEEN 20160901 AND 20160907

732E Amendments to the register in respect of changes of name or changes affecting rights (sect. 32/1977)

Free format text: REGISTERED BETWEEN 20240111 AND 20240117