Plaque It!
Sponsored by: Flash of Genius |
[0001] The present invention relates to, among others, a packet communications method, communications system, and communications device which, in packet transmission/receipt, manages expiration time for data in the packet.
[0002] The IEEE 802.11 wireless LAN communications standard (in compliance with ANSI/IEEE Std. 802.11, 1999 Edition) specifies that in the MAC Layer, data packets are output to the upper layer in the receiving station in the same order as their transmissions (Strict Order). According to the IEEE 802.11 standard, Sequence Numbers, given sequentially to all transmitted data packets, are contained in the headers of the data packets so that the data packets are uniquely identified. The Sequence Numbers are used for the following process: Having receives a data packet from the transmitting station, the receiving station returns an acknowledge (Ack) to the transmitting station so that the transmitting station checks the Ack for the data packet. After checking the Ack, the transmitting station starts the transmission of a next data packet.
[0003] Under these circumstances, if there is a data packet for which the transmitting station has failed to receive an Ack from the receiving station, the transmitting station transmits that data packet again to the receiving station. The packet is discarded by the receiving station if the receiving station has previously received a packet having the same Sequence Number.
[0004] If the receiving station cannot receive the data packet after the transmitting station's repeated attempts, the transmitting station gives up transmitting it and starts to transmit a next data packet. This results in discontinuous data packets, hence, discontinuous Sequence Numbers, being received by the receiving station. Still, the Strict Order is regarded as being followed, because none of the Sequence Numbers are transposed. Upon receiving the data packet, the receiving station outputs data in the data packet to the upper layer.
[0005] Lately, there is increasing demand for wireless transmission of video, audio, and other realtime data. To transmit realtime data, data packets must be transmitted within a certain delay time. It is therefore preferred if attention is paid to the transmission expiration time for each data packet in the MAC Layer. This is because if only the upper layer knows the transmission expiration time for each data packet, whereas the MAC Layer does not, the MAC Layer keeps repeating the transmission of a data packet even after the expiration time of that packet, reducing effective data transmission efficiency.
[0006] Taking these facts into consideration, the IEEE 802.11e standard, an extension to 802.11 (in compliance with IEEE Std 802.11e/D1, March 2001), defines that in the MAC Layer, each packet has a transmission expiration time termed a lifetime. The lifetime indicates how long the data will be stored in the transmitting station. The countdown of the lifetime starts when the transmitting station inputs data from the upper layer to the MAC Layer. The data packet out of lifetime is discarded by the transmitting station without prior notice to the receiving station. The transmitting station never retransmits the data after that, even if the receiving station has not successfully received it. All packets are at default set to have an equal lifetime in typical systems.
[0007] In realtime data transmissions error correction code is often used to restrain the number of retransmissions per unit time. A drawback to this approach is that error correction decoding takes so much time that an Ack cannot be returned immediately. A technique addressing the problem is suggested where acknowledges for a set of data packets are collectively transmitted in a single packet termed a DELAYED-ACK.
[0008] A DELAYED-ACK contains a bitmap in which one bit is assigned to each Sequence Number of successive data packets. The data receiving station sets the bit to 1 if the station has successfully received the data packet identified by the Sequence Number. The receiving station returns to the transmitting station a DELAYED-ACK prepared this way, inclusive of information on the first one of the Sequence Numbers of the data packets for which an acknowledge is to be returned and on the number of acknowledges contained.
[0009] The DELAYED-ACK entails following problems, for example, when used in a video, audio, or other realtime data transmission where the receiving station receives data packets as described in the foregoing in a different sequence from that in which the transmitting station transmitted the packets. When this happens, the receiving station sends a data packet retransmission request, and does not output received data packets to the upper layer, but buffers them so as to follow the Strict Order. The receiving station may therefore fail to obtain expiration time for the received data packets and determine up to when the received data packets should be output to the upper layer. In other words, attempts to follow the Strict Order possibly result in expiration of the received data packets. The data packets are wasted.
[0010]
[0011] Each data packet has an expiration time, set to a certain value, for the time taken from the input from the transmitting station upper layer to the output to the receiving station upper layer. For example, the data packet
[0012] The expiration times
[0013] Still referring to
[0014] The MAC Layer of the receiving station records whether data packets have been successfully received and transmits DlyAcks
[0015] Similarly, the DlyAck
[0016] The receiving station outputs received data packets, e.g., the packets
[0017] If the packet
[0018] In this example, the transmitting station must have transmitted the packet
[0019] Video and other realtime data is transmitted using, for example, MPEG2-TS specifying that time information is added to the data packet by an encoder upon the generation of the packet. To reproduce MPEG2-TS data packets, a decoder is used to recover the time information based on which the reproduction is carried out.
[0020] The time information according to MPEG2-TS is added for use in the encoder and the decoder. The time information is based on a different clock from the one for the time information used in the communication path (MAC Layer). It is therefore difficult to apply the time information added in MPEG2-TS to determine the expiration time for data packets in the communication path. In some cases, TS packets are merged or divided in transmission to facilitate communications. Conventional art does not consider adding expiration time information to those merged/divided packets.
[0021] Conceived to address the problems, the present invention has an objective to offer a packet communications method, communications. system, communications device, communications program, and storage medium containing the communications program, which allows for more accurate knowledge of packet expiration times for efficiency-improved transmission following the Strict Order.
[0022] In order to solve the problems, a packet communications method in accordance with the present invention is characterized in that it includes the step of transmitting a packet containing expiration time information for the packet or for a body of the packet either in the body or in a header of the packet.
[0023] Another packet communications method in accordance with the present invention is characterized in that it includes the step of, when receiving a packet containing expiration time information for the packet or for a body of the packet either in the body or in a header of the packet, determining an expiration time for the packet based on the expiration time information.
[0024] According to the method, the expiration time information for the packet or its body is contained in the transmitted/received packet header or body. A receiving station, having received such a packet, can know the expiration time for the packet corresponding to the expiration time information more precisely by analyzing the expiration time information in the packet. Received packets are therefore not wasted due to expiration. The Strict Order is efficiently realized.
[0025] A communications system in accordance with the present invention is a communications system including a transmitting station transmitting packets and a receiving station receiving packets, and is characterized in that the transmitting station includes:
[0026] packet generating means for converting data to be transmitted to a predetermined packet;
[0027] expiration time calculating means for calculating an expiration time for at least part of data in the packet; and
[0028] expiration time appending means for appending expiration time information on the expiration time to the packet, and
[0029] the receiving station includes expiration time determining means for determining expiration time for the packet on the basis of the expiration time information in a received packet.
[0030] According to the arrangement, first, in the transmitting station, expiration time information on an expiration time for at least part of data in a packet to be transmitted is appended to the packet, and a packet containing the expiration time information is transmitted to the receiving station. Having received such a packet, the receiving station determines the expiration time of the packet on the basis of the expiration time information in the packet. The receiving station can thereby know the expiration time for the received packet more precisely. Received packets are therefore not wasted due to expiration. The Strict Order is efficiently realized.
[0031] Another communications system in accordance with the present invention is a communications system including a transmitting station transmitting packets and a receiving station receiving packets, and is characterized in that
[0032] the transmitting station includes:
[0033] packet generating means for converting data to be transmitted to a predetermined packet;
[0034] expiration time calculating means for calculating an expiration time for at least part of data in the packet; and
[0035] expiration time packet generating means for generating an expiration time information packet containing expiration time information on the expiration time and identity information for data corresponding to the expiration time information, and
[0036] the receiving station includes expiration time determining means for determining expiration time for a received packet on the basis of the expiration time information in a received expiration time information packet.
[0037] According to the arrangement, first, the transmitting station generates an expiration time information packet containing expiration time information on the expiration time and identity information for data corresponding to the expiration time information, and transmits the expiration time information packet to the receiving station. Upon receiving the expiration time information packet, the receiving station determines expiration time for the packet received so far, on the basis of the expiration time information and identity information in the expiration time information packet. The receiving station can thereby know the expiration time for the received packet more precisely. Received packets are therefore not wasted due to expiration. The Strict Order is efficiently realized.
[0038] A communications device in accordance with the present invention is a communications device connected to a communications system, and is characterized in that it includes:
[0039] a transmission buffer buffering incoming transmitted data;
[0040] a timer managing time;
[0041] a generator generating an expiration time for a packet to be transmitted in the form of a time stamp;
[0042] a packet processor packetizing the data to be transmitted and the time stamp; and
[0043] a protocol controller transmitting the packet generated by the packet processor.
[0044] According to the arrangement, the time stamp generator generates an expiration time for a packet to be transmitted in the form of a time stamp; the packet processor packetizes the data to be transmitted and the time stamp; and the protocol controller transmits the packet to the receiving station. Having received such a packet, the receiving station can know the expiration time for the packet corresponding to the expiration time information more precisely by analyzing the expiration time information in the packet. Received packets are therefore not wasted due to expiration. The Strict Order is efficiently realized.
[0045] Another communications device in accordance with the present invention is a communications device connected to a communications system, and is characterized in that it includes:
[0046] a protocol controller receiving a packet from an external communications device;
[0047] a packet processor dividing the received packet into received data and a time stamp and associating the data and the stamp;
[0048] a receipt buffer buffering the received data; and
[0049] a time stamp analyzer analyzing the time stamp so as to instruct for an output of the received data from the receipt buffer to an upper layer when an output time for the received data corresponding to the time stamp has come.
[0050] According to the arrangement, the protocol controller receives a packet; the packet processor extracts received data and a time stamp from the received packet; and the time stamp analyzer analyzes the time stamp so as to instruct for an output of the received data from the receipt buffer to an upper layer when an output time for the received data corresponding to the time stamp has come. The receiving station can thereby know the expiration time for the received packet more precisely. Received packets are therefore not wasted due to expiration. The Strict Order is efficiently realized.
[0051] To describe the expiration time in absolute time, a mechanism is needed to synchronize the clock for the transmitting station and the receiving station. The mechanism is readily incorporated, because in the receiving station, the packet only needs to be output to the upper layer immediately before a designated time.
[0052] To describe the expiration time in relative time, an expiration time needs to be counted for each received packet. Such a mechanism is incorporated without a mechanism synchronizing the clock for the transmitting station and the receiving station.
[0053] The expiration time can be described using a variable, in which case, time management becomes unnecessary for each packet.
[0054] Additional objects, advantages and novel features of the invention will be set forth in part in the description which follows, and in part will become apparent to those skilled in the art upon examination of the following or may be learned by practice of the invention.
[0055]
[0056]
[0057]
[0058]
[0059]
[0060]
[0061]
[0062]
[0063]
[0064]
[0065]
[0066]
[0067]
[0068] (Embodiment 1)
[0069] The following will describe an embodiment of the present invention with reference to figures.
[0070] In the present embodiment, expiration time information is expressed in absolute time. Each data packet, when transmitted from a transmitting station to a receiving station, contains expiration time information.
[0071]
[0072] First, the foregoing elements will be described in terms of operation in the transmitting station. The time stamp generator
[0073] The generated data packet expiration time and the data input from the upper layer are transferred to a transmission buffer
[0074]
[0075] The data packet generated by the packet processor
[0076] Next, the elements will be described in terms of operation in the receiving station. A data packet is input from the lower layer to the protocol controller
[0077] The time stamp analyzer
[0078] The transmitting station does not transmits, to the receiving station, data which has already expired or which is likely to expire after receipt by the receiving station. The receiving station, if having failed to receive correct data by expiration time, may suspend retransmission requests to the transmitting station or notifies the upper layer that the data has not correctly been received.
[0079] A data packet flow example in a transmission involving the transmitter device is shown in
[0080] In
[0081] For example, as to the data packet
[0082] Each data packet has an expiration time set to a certain value for the time taken by the packet from the input to the transmitting station MAC Layer to the output to the receiving station upper layer. For example, the data packet
[0083] In
[0084] Upon receipt of the DlyAck
[0085] Similarly, the DlyAck
[0086] The receiving station records successfully received data packets in the receipt buffer
[0087] As in the foregoing, the use of the transmitter device in accordance with the present embodiment in providing the transmitting station MAC Layer and the receiving station MAC Layer prevents the receiving station from keep waiting for an unreceived data packet which has, in terms of Sequence Number, been transmitted before successfully received data packets. This ensures that the receiving station outputs data packets to the upper layer before expiration times while following the Strict Order.
[0088] (Embodiment 2)
[0089] The following will describe another embodiment of the present invention with reference to figures. Here, for convenience, features of the present embodiment that have similar functions as features of the foregoing embodiment, and that were mentioned in that embodiment are indicated by the same reference numerals and description thereof is omitted.
[0090] The present embodiment will present an example of data packets being output from the receiving station MAC Layer to the receiving station upper layer at different timings from those in embodiment 1. Refer to
[0091] The data flow from the transmitting station upper layer to the receiving station MAC Layer is identical to that described in embodiment 1 with reference to
[0092] In the specific example in
[0093] Only if the Strict Order is not being followed, the successfully received data packets are stored in the receipt buffer
[0094] The foregoing data flow control enables the data packet
[0095] In other words, the transmitting station specifies an expiration time for each data packet, and the receiving station monitors the specified expiration time, so that the received data packets are sequentially (Strict Order) output to the upper layer without wasting the packets even when the receiving station receives the packets in a different sequence.
[0096] Note however that time stamping in absolute time in this manner requires a separate mechanism providing a common absolute time to the transmitting station and the receiving station. For example, the transmitting station may regularly transmits the current time so that the receiving station receives that information, and on the receipt synchronizes itself to the time given by the transmitting station.
[0097] (Embodiment 3)
[0098] The following will describe a further embodiment of the present invention with reference to figures. Here, for convenience, features of the present embodiment that have similar functions as features of one or more of the foregoing embodiments, and that were mentioned in that embodiment are indicated by the same reference numerals and description thereof is omitted.
[0099] Embodiments 1, 2 described data packets with a time stamp field using absolute time. The present embodiment will describe data packets with an expiration-time-recording stamp field using relative time.
[0100]
[0101] The transmitting station records a relative time
[0102] The receiving station recognizes and manages the sum of the relative expiration time recorded in the time stamp field and the time when the data packet is received as the expiration time for the data packet.
[0103] If a wireless transmission delay or an error correction delay is large, these delays may be subtracted in advance from the relative expiration time.
[0104] (Embodiment 4)
[0105] The following will describe a further embodiment of the present invention with reference to figures. Here, for convenience, features of the present embodiment that have similar functions as features of one or more of the foregoing embodiments, and that were mentioned in that embodiment are indicated by the same reference numerals and description thereof is omitted.
[0106] Embodiments 1 through 3 described the addition of expiration time information in a data packet transmission from the transmitting station MAC Layer to the receiving station MAC Layer. The process is not limited to the MAC Layers, and may be implemented for any layer. For example, the use of expiration time information in a data packet transfer from the transmitting station upper layer (LLC layer) to the transmitting station MAC Layer or from the receiving station MAC Layer to the receiving station upper layer (LLC layer) determines the expiration time for the packet.
[0107] (Embodiment 5)
[0108] Embodiments 1 through 3 described expiration time information of data packets in terms of a point in time. The information may be alternatively expressed using another variable. An example is the number of transmission cycles. When this is the case, for example, the Sequence Number of the transmission cycle and the number of transmission cycles indicating the expiration time are recorded in the time stamp field.
[0109] Alternatively, the expiration time information may be expressed using a number indicated by a counter. In this case, for example, the accumulated counter reading and a counter reading indicating an expiration time are recorded in the time stamp field. The counter may alternatively count the number of Superframes or TimeUnits.
[0110] As a further alternative, the expiration time information may be expressed using the number of retransmissions, in which case for example, the number of transmissions or retransmissions of the data packet, as well as the number of retransmissions indicating the expiration time, are recorded in the time stamp field.
[0111] The expiration time information may also be expressed using the number of packets, in which case for example, the total number of packets to be sent before the expiration time is recorded in the time stamp field.
[0112] In addition, the expiration time information may be expressed using the packet's Sequence Number, in which case for example, the Sequence Number of a packet which will expire is recorded in the time stamp field.
[0113] (Embodiment 6)
[0114] The foregoing embodiments described typical cases where expiration times were calculated in the same manner for all data packets, thus specifying the same lifetime for all data packets. Alternatively, the lifetime, that is, the expiration time, may be determined variably from one data packet to another on the basis of an application data transfer rate, the precision of the timers in the transmitting station and the receiving station, the transmission buffer capacity of the transmitting station, and the receipt buffer capacity of the receiving station.
[0115] For example, when data quantity changes over a period of time as is the case with MPEG VBR (Variable Bit Rate), the time for which data can be held in the transmitting and receiving station buffers is variable. In other words, the lifetime varies depending on the available space in the transmitting and receiving station buffers. The expiration time is therefore set to an early value at a high bit rate and a late value at a low bit rate.
[0116] (Embodiment 7)
[0117] The following will describe a further embodiment of the present invention with reference to figures. Here, for convenience, features of the present embodiment that have similar functions as features of one or more of the foregoing embodiments, and that were mentioned in that embodiment are indicated by the same reference numerals and description thereof is omitted.
[0118] The foregoing embodiments described examples where expiration time information is specified for input data packets. In the present embodiment, the transmitting station MAC Layer rearrange divide or merge input data from the upper layer into different packets for transmission. The following will describe an example as to how to specify expiration time information in relation to such a process.
[0119]
[0120] In S
[0121]
[0122] More specifically, out of the input data sets from the upper layer, the data sets
[0123] Now, reasons will be presented why the expiration time is calculated based on the time information of the data set which was input before the other sets. Supposing that the expiration time had been calculated based on the time information of a data set which was input after the other sets (for example, data set
[0124] In the example, a single expiration time was specified for data sets making up a packet. Alternatively, data packet identity information sets and expiration time information sets may be specified for one packet. Identity information is used to explicitly depict which expiration time belongs to which data set. In the foregoing example, identity information sets and expiration times may be recorded for the respective packets
[0125] A transmitting station carrying out the foregoing process is realized by a similar arrangement to the one shown in
[0126] (Embodiment 8)
[0127] The following will describe a further embodiment of the present invention with reference to figures. Here, for convenience, features of the present embodiment that have similar functions as features of one or more of the foregoing embodiments, and that were mentioned in that embodiment are indicated by the same reference numerals and description thereof is omitted.
[0128] The foregoing embodiments described the expiration time information of a data packet being recorded in that data packet for transmission. The expiration time information of a data packet is however not necessarily recorded in that data packet. The present embodiment notifies of an expiration time for any given data packet by (i) incorporating other data in a data packet and sending expiration time information for multiple data packets and/or (ii) transmitting a packet containing identity information identifying transmitted data packets and expiration time information corresponding to the data packets. In this case, these methods are realized by the transmitting station transmitting to the receiving station a packet containing expiration times for the data packets, a packet containing identity information of valid data packets, or conversely, a packet containing identity information of expired data packets
[0129]
[0130] In following S
[0131] If the transmitted data packets have reached a certain quantity (YES in S
[0132] A packet containing expiration times for the transmitted data packets must be sent to the receiving station before the earliest expiration time is reached.
[0133] After the transmitted data packets (three data packets in this example) have reached a certain quantity, expiration time information calculated based on the transmission time information of one of the data packets transmitted so far which was transmitted at the earliest time is packetized together with the identity information of the packet. The generated packet is then transmitted to the receiving station as expiration time information packets
[0134] In the foregoing example, a single piece of expiration time information was appended for multiple expiration time information packets. Alternatively, packet identity information and expiration time information for multiple packets may be contained in an expiration time information packet. For example, in the foregoing example,
[0135] A transmitting station carrying out the foregoing process is realized by a similar arrangement to the one shown in
[0136] (Embodiment 9)
[0137] In the foregoing embodiments, expiration times for data packets were managed by the transmitting station. This is not necessary. In the present embodiment, the expiration times are managed by the receiving station. In other words, for example, when the receiving station has determined that a data packet is no longer valid, the receiving station sends the identity information of the invalid data packet to the transmitting station to notify that the data packet has expired. When this is the case, the transmitting station stops retransmission of the data packet reportedly no longer valid and clears the data stored in the transmission buffer
[0138] A process in the receiving station in accordance with the present embodiment will be described in reference to the flow chart in
[0139] On the other hand, if the answer is YES in S
[0140] Upon receipt of the expiration time information packet, the transmitting station discards the data packet identified by the identity information contained in that information packet from the transmission buffer
[0141] Next, an example of the data packet flow in accordance with the present embodiment will be described with reference to
[0142] The receiving station transmits, to the transmitting station, information on the data packet which is no longer valid and output to the upper layer in the receiving station. In the figure, the information is indicated as an expiration time information packet
[0143] Similarly, the data sets
[0144] Upon receipt of the expiration time information packet from the receiving station, the transmitting station recognizes that the data packet identified by the identity information contained in the expiration time information packet has expired and clears the corresponding data packet from the transmission buffer
[0145] The foregoing described an example whereby the receiving station transmits expiration time information to the transmitting station for every three data packets. The expiration time information may be transmitted at any interval. For example, the expiration time information may be transmitted: at a certain cycle based on the predetermined number of data packets, Superframes, or TimeUnits; when the transmitting station has requested a transmission of the expiration time information; or when the receipt buffer
[0146] (Embodiment 10)
[0147] In embodiment 9, the validity of a data packet received by the receiving station from the transmitting station was determined through comparison of the expiration time information of the data packet to a time. The receiving station however may use the various approaches to expiration time management as described in embodiment 5 to determine validity and send expiration time information to the transmitting station.
[0148] The receiving station may manage expiration time information of rearranged data packets as described in embodiment 7, in which case the receiving station determines the validity of the rearranged data packets as described as an example in embodiment 7.
[0149] The expiration time information may be included in a DELAYED-ACK transmitted from the receiving station to the transmitting station.
[0150] Expiration times were calculated and appended by the transmitting station in the foregoing examples. Expiration times may be calculated by the receiving station, in which case information on devices, etc. needs to be exchanged in advance between the transmitting station and the receiving station.
[0151] Identity information may be created so that, for example, the information identifies each invalid data packet, identifies a single packet while giving an indication that all the preceding packets are invalid, or identifies a range of invalid data packets.
[0152] The aforementioned expiration time calculation method examples and identity information designation method examples may be used in combination.
[0153] The expiration time information specifying methods described in the embodiments may be implemented in any given combination.
[0154] The invention being thus described, it will be obvious that the same way may be varied in many ways. Such variations are not to be regarded as a departure from the spirit and scope of the invention, and all such modifications as would be obvious to one skilled in the art are intended to be included within the scope of the following claims.
[0155] The packet communications method, communications system, communications device, and communications program in accordance with the present invention can be used in a network of communications devices carrying out packet communications. Examples include a communications network involving a wireless LAN. A preferable application example is a communications network for video streaming.