COMMUNICATION DEVICE, COMMUNICATION METHOD, AND COMMUNICATION PROGRAM

By controlling packet storage and discard in units of chunks, the communication device minimizes data loss and improves transmission efficiency by prioritizing important data units.

JP7616111B2Active Publication Date: 2025-01-17DENSO CORP
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2022015863
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-02-03
Publication Date
2025-01-17
Estimated Expiration
2042-02-03

AI Technical Summary

Technical Problem

Existing communication devices face challenges in efficiently storing and transmitting data packets without losing data required by upper layers, leading to inefficient data transmission.

Method used

The communication device controls packet storage and discard in units of chunks, a data unit in the upper layer, using a buffer control unit to manage packet storage and discard based on chunk identification and importance.

Benefits of technology

This approach reduces the possibility of data loss and enhances the efficiency of data transmission by ensuring that only relevant data is retained and transmitted.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007616111000001
    Figure 0007616111000001
  • Figure 0007616111000002
    Figure 0007616111000002
  • Figure 0007616111000003
    Figure 0007616111000003
Patent Text Reader

Abstract

To avoid a possibility of loss of data required in an upper layer when storing in a buffer or discarding from the buffer in units of packets.SOLUTION: A communication device 100 includes: a reception unit 101 that receives a packet from a first device 10; a packet identification unit 102 that identifies a chunk, which is a data unit in an upper layer, to which the packet belongs; a buffer 104 that stores the packet; a buffer control unit 105 that controls the storage of the packet in the buffer and discarding of the packet from the buffer, treating the chunk as the unit; and a transmission unit 106 that reads the packet from the buffer to be transmitted to a second device 20.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a communication device having a buffer for storing received packets, a communication method, and a communication program. [Background technology]

[0002] When a communication device receives a packet, it stores the received packet in a buffer and reads the packet from the buffer when transmitting. However, depending on the capacity of the buffer, it is necessary to control the storage of received packets in the buffer and the discarding of packets from the buffer.

[0003] Patent document 1 discloses a system that has a queue for temporarily storing transmitted packets, and when the queue length, which is the sum of the lengths of packets entering the queue, is smaller than a predetermined threshold, the packets are sequentially queued, and when it is larger than the predetermined threshold, the position of the queue where the packets are stored is changed depending on the packet discard level.

[0004] Patent Document 2 describes that packets are discarded when the queue length is greater than the maximum queue length. [Prior art documents] [Patent documents]

[0005] [Patent Document 1] JP 2003-179633 A [Patent Document 2] JP 2006-115197 A Summary of the Invention [Problem to be solved by the invention]

[0006] Here, the present inventors have found the following problem. When storing data in a buffer or discarding data from the buffer on a packet-by-packet basis as in Patent Documents 1 and 2, there is a possibility that data required by the upper layer may be lost. In such a case, the transmitted data may not be usable, which hinders efficient data transmission.

[0007] Therefore, an object of the present invention is to realize a communication device or the like that can perform efficient data transmission by reducing the possibility of data loss. [Means for solving the problem]

[0008] The communication device (100) of the present disclosure includes: a receiving unit (101) for receiving a packet from a first device (10); A packet identification unit (102) for identifying a chunk, which is a data unit in a higher layer to which the packet belongs; A buffer (104) for storing the packets; a buffer control unit (105) that controls storing the packets in the buffer and discarding the packets from the buffer in units of the chunks; A transmitting unit (106) that reads the packet from the buffer and transmits it to a second device (20).

[0009] In addition, the claims and the numbers in parentheses attached to the constituent elements of the invention described in this section indicate the correspondence between the present invention and the embodiments described below, and are not intended to limit the present invention. Effect of the Invention

[0010] With the above-described configuration, the communication device etc. disclosed herein can reduce the possibility of data loss and perform efficient data transmission. [Brief description of the drawings]

[0011] [Figure 1] FIG. 1 is a diagram showing the configuration of a communication device according to a first embodiment. [Diagram 2]FIG. 1 is an explanatory diagram showing packet information stored in a packet information storage unit of a communication device according to a first embodiment; [Diagram 3] FIG. 1 is an explanatory diagram showing a specific operation example 1 of a packet identification unit of a communication device according to a first embodiment; [Figure 4] FIG. 11 is an explanatory diagram showing a second specific operation example of the packet identification unit of the communication device according to the first embodiment; [Diagram 5] FIG. 3 is an explanatory diagram showing a specific operation example 3 of the packet identification unit of the communication device according to the first embodiment; [Figure 6] FIG. 1 is an explanatory diagram showing a first specific operation example of a buffer control unit of a communication device according to a first embodiment; [Figure 7] FIG. 11 is an explanatory diagram showing a second specific operation example of the buffer control unit of the communication device according to the first embodiment; [Figure 8] FIG. 3 is an explanatory diagram showing a specific operation example 3 of the buffer control unit of the communication device according to the first embodiment; [Figure 9] FIG. 1 is a flow diagram showing the operation of a communication device according to the first embodiment. [Figure 10] FIG. 13 is a diagram showing the configuration of a communication device according to a second embodiment. [Figure 11] FIG. 11 is an explanatory diagram showing a specific example of the operation of a packet identification unit of a communication device according to a second embodiment; [Figure 12] FIG. 11 is an explanatory diagram showing packet information stored in a packet information storage unit of a communication device according to a second embodiment; [Figure 13] FIG. 1 is an explanatory diagram showing a specific example of a combination of a source terminal device, a communication device according to the first or second embodiment, and a destination terminal device; DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0012] Hereinafter, an embodiment of the present invention will be described with reference to the drawings.

[0013] The present invention means the invention described in the claims or in the Summary of the Invention section, and is not limited to the following embodiments. Furthermore, at least the words in quotation marks mean the words described in the claims or in the Summary of the Invention section, and are not limited to the following embodiments.

[0014] The configurations and methods described in the dependent claims are optional configurations and methods in the invention described in the independent claims. The configurations and methods of the embodiments corresponding to the configurations and methods described in the dependent claims, and the configurations and methods described only in the embodiments without being described in the claims, are optional configurations and methods in the present invention. The configurations and methods described in the embodiments when the description of the claims is broader than the description of the embodiments are also optional configurations and methods in the present invention in the sense that they are examples of the configurations and methods of the present invention. In either case, by being described in the independent claims, they become essential configurations and methods of the present invention.

[0015] The effects described in the embodiments are effects obtained when the configurations of the embodiments are provided as examples of the present invention, and are not necessarily effects that the present invention possesses.

[0016] When there are multiple embodiments, the configurations disclosed in each embodiment are not limited to each embodiment, but can be combined across the embodiments. For example, a configuration disclosed in one embodiment may be combined with another embodiment. Also, configurations disclosed in each of the multiple embodiments may be collected and combined.

[0017] The problem described in the section on problems that the invention is intended to solve is not a publicly known problem, but was discovered independently by the inventor, and this, together with the configuration and method of the present invention, is a fact that affirms the inventive step of the invention.

[0018] 1. Embodiment 1 (1) Overall Configuration of the Communication Device 100 of the Present Embodiment The configuration of a communication device 100 according to the first embodiment will be described with reference to Fig. 1. The communication device 100 includes a receiving unit 101, a packet classifying unit 102, a packet information storage unit 103, a buffer 104, a buffer control unit 105, and a transmitting unit 106.

[0019] The communication device 100 can be configured with a general-purpose CPU (Central Processing Unit), volatile memory such as RAM, non-volatile memory such as ROM, flash memory, or hard disk, various interfaces, and an internal bus connecting these. The communication device 100 can be configured to perform the functions of each functional block shown in FIG. 1 by executing software on this hardware. Of course, the communication device 100 may be realized by dedicated hardware such as an LSI. The above also applies to the communication devices of the other embodiments.

[0020] In this embodiment, the communication device 100 is assumed to be in the form of an electronic control device (ECU (Electric Control Unit), hereinafter abbreviated as ECU) as a semi-finished product, but is not limited to this. For example, the form of a component may be a semiconductor circuit or a semiconductor module, the form of a semi-finished product may be an electronic control device, an electronic control unit, or a system board, and the form of a finished product may be a server, a workstation, a personal computer (PC), a tablet, a mobile router, a smartphone, a mobile phone, or a navigation system. Note that the communication device 100 may be configured with a single ECU or multiple ECUs. The above also applies to the communication devices of the other embodiments.

[0021] The receiving unit 101 receives from the source terminal device 10 (corresponding to the "first device") a "packet" generated by the source terminal device 10. The packet is, for example, data generated by a source application running on the source terminal device 10, which is divided into a plurality of packets by packetizing or fragmenting executed by a control unit (not shown) of the source terminal device 10 and then transmitted. Here, the term "packet" refers to a block of data that is a transmission unit in information communication, and may be called a packet in the narrow sense, a frame, a segment, or any other name.

[0022] The source application is any application that generates data. For example, there is a video transmission application that compresses image data captured by a camera connected to the source terminal device 10 into I-frame, P-frame, and B-frame data based on the H.264 / MPEG4 AVC standard and transmits the data to a destination application in the destination terminal device 20. At this time, each compressed frame data is fragmented by a network card (NIC: Network Interface Card) of the source terminal device 10, and is then divided into packets of the MTU (Maximum Transmission Unit) size of the NIC before being transmitted.

[0023] The source terminal device 10 and the communication device 100 are connected via a communication line. The communication line may be either a wireless communication line or a wired communication line. Examples of wireless communication lines include communication lines based on a mobile communication system, such as W-CDMA (Wideband Code Division Multiple Access), HSPA (High Speed ​​Packet Access), LTE (Long Term Evolution), LTE-A (Long Term Evolution Advanced), 4G, or 5G. In addition, communication lines using wireless communication methods such as IEEE802.11 (Wi-Fi (registered trademark)), IEEE802.16 (WiMAX (registered trademark)), Bluetooth (registered trademark), UWB (Ultra Wide Band), or DSRC (Dedicated Short Range Communication) can also be used. Examples of wired communication lines include LANs (Local Area Networks) such as Ethernet (registered trademark), optical lines, and fixed telephone lines. In the case of an in-vehicle device, in-vehicle networks such as CAN (Controller Area Network) and LIN (Local Interconnect Network) can be used. Alternatively, the communication line may be a combination of a wireless communication line and a wired communication line.

[0024] The source terminal device 10 may be in the form of a component, a semi-finished product, or a finished product, similar to the communication device 100. A specific embodiment of the source terminal device 10 will be described later.

[0025] The packet identification unit 102 analyzes the packets received by the receiving unit 101 to collect packet information, which is information relating to the packets, and stores the collected packet information in the packet information storage unit 103 . Particularly in this embodiment, the packet identification unit 102 identifies the chunk to which the packet received by the receiving unit 101 belongs. A chunk is a data unit in a higher layer. For example, when a packet is used in communication in the network layer (layer 3) of the OSI reference model, the higher layer refers to the transport layer (layer 4) or higher. An example of a chunk is compressed frame data (I frame, P frame, or B frame) when the source application of the source terminal device 10 is a video transmission application.

[0026] Additionally, in this embodiment, the packet classifier 102 analyzes the packets to collect the packet size, chunk size, and importance information of the received packets. A specific chunk identification method and chunk number assignment method executed by the packet identification unit 102 will be described later.

[0027] The packet information storage unit 103 stores the packet information collected by the packet classification unit 102. Specifically, the packet information input from the packet classification unit 102 is stored in the order of input. The packet information storage unit 103 may be configured with either a non-volatile memory or a volatile memory.

[0028] FIG. 2 shows packet information stored in the packet information storage unit 103. The packet number is a serial number that is assigned by the packet identification unit 102 to each packet received by the receiver 101 in the order in which the packets are received by the receiver 101 .

[0029] The chunk number is a serial number that is assigned by the packet identification unit 102 by analyzing each packet received by the receiving unit 101 to identify the chunk to which each packet belongs.

[0030] The packet size is the size of the packet collected by the packet identification unit 102 for each packet received by the receiving unit 101. If the packet size is described in identification information such as an IP header, the identification information may be recorded. In the case of a fixed-length packet, the predetermined fixed-length packet size may be recorded.

[0031] The chunk size is the size of the chunk identified by the packet identification unit 102. The chunk size can be calculated, for example, by adding up the packet sizes of packets to which the same chunk number is assigned. Specifically, the chunk size is calculated as follows.

[0032] In the example of Figure 2, when packet #1 (chunk number #1) is input, there is only one packet with chunk number #1, so the chunk size of packet #1 is recorded as 1500B, which is the same as the packet size. When packet #2 (chunk number #1) is next input, there will be two packets with chunk number #1, so the chunk size of packet #1 and packet #2 will be recorded as 3000B, which is the sum of the previous chunk size of 1500B and the packet size of packet #2, 1500B. Furthermore, when packet #3 (chunk number #1) is input, there will be three packets assigned chunk number #1, so the chunk size of packets #1 to #3 is recorded as 4150B, which is the sum of the previous chunk size of 3000B and the packet size of packet #3, 1150B. When packet #4 (chunk number #2) is input, the chunk number of packet #4 is different from the chunk numbers of previously received packets #1 to #3, so the chunk size of packet #4 is recorded as 1500B, the same as the packet size. Thereafter, the chunk size is recorded each time a packet is input using the same calculation.

[0033] The importance information is information indicating the importance of a packet. Specifically, it is information given to each packet by the source terminal device 10, or information given by the packet identification unit 102 as a result of analyzing the packet based on the contents of the payload data of the packet. The importance of a packet can be defined according to the purpose of the source application or the purpose of installation of the communication device 100. For example, if the packet is video image data, if an I frame is lost, it becomes impossible to decode P frames and B frames, so the importance of packets constituting an I frame may be made higher than the importance of packets constituting other types of frames. Alternatively, if the communication device 100 constitutes an in-vehicle device mounted on an automobile, the importance of information directly indicating the running state, such as speed and acceleration, may be made higher than the importance of other information. In the case of FIG. 2, the importance information is represented by two values, that is, a flag, but it may be defined in three or more stages.

[0034] The packet information stored in packet information storage unit 103 is updated in accordance with the packet stored in buffer 104, which will be described later. For example, when a packet is stored in buffer 104, the packet information of the stored packet is recorded in packet information storage unit 103. When a packet is discarded from buffer 104, the packet information of the discarded packet is deleted from packet information storage unit 103. When transmission unit 106 reads a packet from buffer 104 and transmits it, the packet information of the read packet is deleted from packet information storage unit 103.

[0035] The buffer 104 is a "buffer" that stores packets received by the receiving unit 101 and whose chunks have been identified by the packet identification unit 102. Specifically, the buffer 104 stores the packets received by the receiving unit 101 in the order in which they were received, except for packets that are to be discarded. Like the packet information storage unit 103, the buffer 104 may be configured of either a non-volatile memory or a volatile memory. Here, a "buffer" refers to an area for storing packets, and the order in which packets are stored and read out is arbitrary. Buffers also include queues and stacks.

[0036] In this embodiment, the buffer 104 is based on a FIFO (First In First Out) operation that stores data in the order of input and outputs data in the order of input, and is also called a queue. However, in this embodiment, the output order may not necessarily be the same as the input order.

[0037] The buffer control unit 105 controls the storage of packets in the buffer 104 and the discarding of packets from the buffer 104. Specifically, based on the packet information stored in the packet information storage unit 103, the buffer control unit 105 controls the storage and discarding of packets "in units of chunks." Here, "in units of chunks" means that storage in the buffer and discarding from the buffer are ultimately in chunk units, and it is not necessary to store all packets belonging to the same chunk at the same time when storing in the buffer, and it is not necessary to discard all packets belonging to the same chunk at the same time when discarding from the buffer.

[0038] A specific method of storing and discarding packets executed by buffer control unit 105 will be described later.

[0039] The transmitting unit 106 reads packets from the buffer 104 and transmits them to the destination terminal device 20 (corresponding to the "second device"). The order in which the packets are read is essentially the same as the order in which they are input to the buffer 104, but in this embodiment, this may not necessarily be the order in which they are input. The transmitted packets are used by the destination application of the destination terminal device 20.

[0040] The destination application is an application that uses the data stored in the packet, such as image playback software that decodes and plays compressed image data.

[0041] The communication device 100 and the destination terminal device 20 are connected via a communication line. The communication line may be either a wireless communication line or a wired communication line. Examples of the wireless communication line and the wired communication line are the same as those described as examples of the communication line between the source terminal device 10 and the communication device 100. Similarly, the communication line may be a combination of a wireless communication line and a wired communication line. For example, when the destination terminal device 20 is a server device connected to the Internet, a 4G or 5G wireless communication method can be used between the communication device 100 and the base station device, and a wired communication method consisting of an optical line can be used between the base station device and the destination terminal device 20.

[0042] The destination terminal device 20 may be in the form of a part, a semi-finished product, or a finished product, similar to the communication device 100. A specific embodiment of the destination terminal device 20 will be described later.

[0043] (2) Details of the packet classification unit 102 of the communication device 100 of this embodiment A specific example of a chunk identification method and a chunk number assignment method executed by the packet identification unit 102 will be described with reference to FIGS.

[0044] (a) Example of identifying chunks based on packet reception intervals An example of identifying chunks based on the reception interval of packets will be described with reference to FIG. The packet identification unit 102 identifies chunks based on the reception intervals of packets received by the reception unit 101 .

[0045] For example, when compressing an image using a video transmission application in the source terminal device 10 and transmitting the frame, each frame is divided into one or more packets and transmitted as shown in FIG. 3. If the frame rate is 30 FPS (frames per second), each frame is divided into multiple packets every 1 / 30 s = 33 ms and transmitted. Since packets in one frame are transmitted continuously in bursts, the transmission interval between packets is extremely small. In contrast, when spanning frames, a certain amount of transmission interval occurs between the time (Δx) from when the last packet of the previous frame is transmitted to when the first packet of the next frame is transmitted. Since the data amount of an I frame is larger than that of a P frame or a B frame, the transmission interval between an I frame and another frame and the transmission interval when I frames are consecutive are smaller.

[0046] Therefore, to ensure correct judgment even when I frames are consecutive, for example, 5 ms is used as the standard, and if Δx is less than 5 ms, it can be judged that the packets belong to the same frame, and if Δx is 5 ms or more, it can be judged that the packets belong to different frames. Then, each frame is identified as one chunk, and the chunk number is incremented and assigned for each frame. In the example in Figure 3, chunk numbers #1, #2, ... #m are assigned in the order of reception. This chunk number makes it possible to identify which chunk a packet belongs to.

[0047] Here, video compression using the H.264 / MPEG4 AVC standard has been taken as an example, but the same applies when still image compression (for example, the JPEG standard) is used.

[0048] (b) Example of identifying chunks based on the packet's IP header An example of identifying chunks based on the IP header of a packet will be described with reference to FIG. The packet identification unit 102 identifies the chunk based on the identifier included in the IP header of the packet.

[0049] The IP header shown in Fig. 4 stores information about the packet. Here, we focus on the identifier in the IP header. For example, when the source terminal device 10 attempts to send frame data in one packet, fragmentation occurs in the NIC and the frame data is divided into multiple packets. At this time, the same identifier is assigned to each packet originating from the same frame. That is, if a frame transmitted by the source terminal device 10 is defined as a chunk, it is possible to identify which chunk a packet belongs to based on the identifier in the IP header. In this embodiment, the chunk number is incremented and assigned for each identifier in the IP header.

[0050] (c) Example of identifying chunks based on packet payload data An example of identifying chunks based on the TCP / UDP payload of a packet will be described with reference to FIG. The packet identification unit 102 identifies the chunks based on the identification information included in the TCP / UDP payload of the packet.

[0051] When a source application packetizes large data into small packets, the source application stores identification information indicating the data before division at the beginning of the TCP / UDP payload. That is, if data transmitted by the source terminal device 10 is defined as a chunk, it is possible to identify which chunk a packet belongs to based on the identification information of the TCP / UDP payload. In this embodiment, the chunk number is incremented and assigned for each piece of identification information of the TCP / UDP payload.

[0052] (d) Examples of identifying other chunks In addition, the chunk may be identified based on the timestamp when it is stored in the buffer 104 . Alternatively, in the case of video compression, when information on I frames, P frames, and B frames is recorded in a packet, chunks may be identified based on this information.

[0053] (3) Details of the buffer control unit 105 of the communication device 100 of this embodiment A specific example of a method for storing and discarding packets executed by buffer control unit 105 will be described with reference to FIGS.

[0054] (a) Example of storing new chunks and discarding old chunks (Example 1) An example in which packets belonging to a new chunk are stored in the buffer 104 and packets belonging to an old chunk are discarded from the buffer 104 will be described with reference to FIG. In this embodiment, when a packet cannot be stored in buffer 104 due to exceeding the capacity of buffer 104, buffer control unit 105 discards from buffer 104 a stored packet that belongs to a chunk other than the chunk to which the packet belongs and that was stored in buffer 104 earlier than the packet.

[0055] 6(a) is an example of the storage and discarding of packets in a conventional example. Note that, although packets are not stored or discarded in terms of chunks in the conventional example, the term "chunk" is used in the conventional example to explain the effect of this embodiment in comparison with this embodiment.

[0056] At time t1, packets corresponding to chunk 1 (C1 in the drawing: the same applies below) and chunk 2 are already stored in buffer 104. Then, assume that five packets corresponding to chunk 3 are newly stored in buffer 104.

[0057] At times t2 and t3, packets corresponding to chunk 3 are successively stored in the free area of ​​buffer 104. However, at time t4, the capacity of buffer 104 becomes saturated, and the third packet of chunk 3 cannot be stored in buffer 104 and is discarded. Similarly, at times t5 and t6, the fourth and fifth packets are discarded.

[0058] Eventually, at time t6, some of the packets corresponding to chunk 3 are discarded, and not all of the packets corresponding to chunk 3 are present. As a result, even if the packets corresponding to chunk 3 remaining in buffer 104 are transmitted to destination terminal device 20, they cannot be used by the destination application of destination terminal device 20, and the transmission of the packets belonging to chunk 3 is wasted, making it impossible to transmit data efficiently.

[0059] FIG. 6(b) shows an example of storing and discarding packets in this embodiment. In this embodiment, the processing from time t1 to t3 is the same as in the conventional example, but if the packets cannot be stored in the buffer 104 at time t4 due to exceeding the capacity of the buffer 104, packets belonging to chunk 1 or chunk 2, which are chunks different from chunk 3, and which have already been stored in the buffer 104 (corresponding to "stored packets") are discarded from the buffer 104. In the case of FIG. 6(b), packets belonging to chunk 1 that were stored in the buffer 104 earliest are discarded. As a result, the third packet of chunk 3 is also stored in the buffer 104. Similarly, at times t5 and t6, the fourth and fifth packets are also stored in the buffer 104.

[0060] At time t6, all packets belonging to chunk 1 have been discarded, but packets belonging to chunk 2 and chunk 3 have been stored without any missing packets. As a result, packets that cannot be used by the destination application of destination terminal device 20 are not transmitted, and efficient data transmission can be performed. Moreover, the packets that are not transmitted to destination terminal device 20 as a result are packets that belong to chunks that are older in time in this embodiment than in the conventional example, and therefore more current data can be used. This is particularly effective when the destination application is an application that places importance on real-time performance.

[0061] 6, if some of the packets belonging to chunk 1 have already been read out from the transmitting unit 106 at time t4 and have already been transmitted, the buffer control unit 105 may discard packets belonging to chunk 2 without discarding packets belonging to chunk 1. This process ensures that packets already transmitted are not wasted. Similarly, if the importance of chunk 1 is higher than the importance of chunk 2, packets belonging to chunk 1 may not be discarded, but packets belonging to chunk 2 may be discarded. The same applies to Example 2 described below.

[0062] Alternatively, if the number of packets belonging to chunk 1 remaining in buffer 104 at time t4 (corresponding to "stored packets") "exceeds" a "predetermined ratio" relative to all packets belonging to chunk 1, including packets belonging to chunk 1 that have already been transmitted, the packets belonging to chunk 1 remaining in buffer 104 may be discarded from buffer 104. The predetermined ratio may be set to, for example, 1 / 2, 2 / 3, or 3 / 4. This process makes it possible to minimize waste of communication resources while maintaining a minimum level of real-time performance. The same applies to Example 2 described below. Where: The "predetermined ratio" may be a predetermined fixed value or a variable value that varies depending on conditions. The term "exceeds" may mean a predetermined percentage, that is, a predetermined percentage or more.

[0063] In the latter example, if some of the packets belonging to a chunk are discarded from buffer 104, the discarded packets will naturally not be transmitted from transmitting unit 106, but if the packets have already been read from buffer 104 but have not yet been transmitted, transmitting unit 106 may be configured to cancel the transmission.

[0064] In this embodiment, at time t4, the packet belonging to chunk 1 stored in buffer 104 earliest is discarded, but the buffer control unit 105 may not discard the packet belonging to chunk 1 from buffer 104 if the packet belonging to chunk 1 "exceeds" a "predetermined importance". In that case, the buffer control unit 105 may discard the packet belonging to chunk 2 stored in buffer 104 next earliest. Whether the importance exceeds the predetermined importance can be determined based on the importance information recorded in the packet information storage unit 103, as shown in FIG. 2. The same applies to embodiment 2 described below. However, if a packet belonging to the newly stored chunk 3 exceeds a predetermined importance, the buffer control unit 105 may discard the packet belonging to chunk 1 from the buffer 104 even if the packet belonging to chunk 1 exceeds a predetermined importance. Where: The "predetermined importance" may refer to an importance that is determined in advance, or an importance that varies depending on conditions. "Exceeding" may mean including a predetermined importance, that is, equal to or greater than the predetermined importance.

[0065] (b) Example of storing new chunks and discarding old chunks (Example 2) Another example in which packets belonging to a new chunk are stored in the buffer 104 and packets belonging to an old chunk are discarded from the buffer 104 will be described with reference to FIG. In the first embodiment, the stored packets belonging to the old chunks are discarded from the buffer 104 due to exceeding the capacity of the buffer 104. In the present embodiment, the stored packets belonging to the old chunks are discarded from the buffer 104 due to the storage of a new chunk in the buffer 104.

[0066] In this embodiment, when a packet is stored in the buffer 104, the buffer control unit 105 discards from the buffer 104 any stored packets that belong to a chunk other than the chunk to which the packet belongs and that were stored in the buffer 104 earlier than the packet.

[0067] FIG. 7 shows an example of storing and discarding packets in this embodiment. At time t1, packets belonging to chunk 1 and chunk 2 are already stored in the buffer 104, and some packets of chunk 1 have already been transmitted. Then, assume that five packets belonging to chunk 3 are newly stored in the buffer 104.

[0068] At time t2, packets belonging to chunk 3 are stored in the free space of buffer 104. In this case, packets belonging to chunk 1 or chunk 2, which are chunks different from chunk 3, and stored in buffer 104 (corresponding to "stored packets") are discarded from buffer 104. In the case of Fig. 7, a predetermined ratio or more of packets remain in buffer 104, and packets belonging to chunk 2 that were stored in buffer 104 earliest are discarded.

[0069] Between times t3 and t6, the second to fifth packets are stored in the buffer 104 in sequence.

[0070] At time t6, all packets belonging to chunk 2 have been discarded, but the unsent packets of chunk 1 and the packets belonging to chunk 3 have been stored without any missing packets. As a result, packets that cannot be used by the destination application of destination terminal device 20 are not transmitted, and efficient data transmission can be performed. Moreover, the packets that are not transmitted to destination terminal device 20 as a result are packets that belong to chunks that are older in time in this embodiment than in the conventional example, and therefore more current data can be used. This is particularly effective when the destination application is an application that places importance on real-time performance.

[0071] (c) Example of discarding new chunks and keeping old chunks (Example 3) An example in which packets belonging to a new chunk are discarded from the buffer 104 and packets belonging to an old chunk are left in the buffer 104 will be described with reference to FIG. In the first embodiment, stored packets belonging to old chunks are discarded from the buffer 104 due to exceeding the capacity of the buffer 104. In this embodiment, stored packets belonging to new chunks are discarded from the buffer 104 due to exceeding the capacity of the buffer 104.

[0072] In this embodiment, when a packet cannot be stored in buffer 104 due to exceeding the capacity of buffer 104, buffer control unit 105 discards from buffer 104 stored packets that belong to the same chunk as the packet and were stored in buffer 104 earlier than the packet.

[0073] FIG. 8 shows an example of storing and discarding a packet in this embodiment. At time t1, packets belonging to chunk 1 and chunk 2 are already stored in the buffer 104. Then, assume that five packets belonging to chunk 3 are newly stored in the buffer 104.

[0074] At times t2 and t3, packets belonging to chunk 3 are successively stored in the free space of buffer 104. However, at time t4, the capacity of buffer 104 becomes saturated, and the third packet of chunk 3 cannot be stored in buffer 104 and is discarded. In this case, packets belonging to chunk 3, which is the same chunk as chunk 3, and which have already been stored in buffer 104 (corresponding to "stored packets") are discarded from buffer 104. In the case of FIG. 7, the first and second stored packets belonging to chunk 3 are discarded at time t4.

[0075] At times t5 and t6, packets belonging to chunk 3 are discarded without being stored in the buffer 104.

[0076] At time t6, all packets belonging to chunk 3 have been discarded, but packets belonging to chunk 1 and chunk 2 have been stored without any missing packets. As a result, packets that cannot be used by the destination application of destination terminal device 20 are not transmitted, and efficient data transmission can be performed. Moreover, since the packets that were not transmitted to destination terminal device 20 are packets that belong to new chunks, data that maintains its chronological order can be used. This is particularly effective when the destination application is an application that requires chronological data to be played back in order, such as for viewing video content.

[0077] It should be noted that the packets belonging to chunk 3 are discarded for the time being, but when the packets belonging to chunk 1 and chunk 2 are successively transmitted to the destination terminal device 20 and there is space in the buffer 104, the packets belonging to chunk 3 can be received again from the source terminal device 10 by making a retransmission request from the communication device 100 to the source terminal device 10, and can then be transmitted to the destination terminal device 20.

[0078] (4) Operation of the communication device 100 of the present embodiment The operation of the communication device 100 of the present embodiment will be described with reference to FIG. Note that the following operations not only indicate a communication method in communication device 100, but also indicate the processing procedure of a communication program executed by communication device 100. The order of these processes is not limited to the order shown in Fig. 9. In other words, the order may be changed as long as there is no constraint such as a relationship in which a certain step utilizes the result of the previous step. The above is true not only for this embodiment but also for other embodiments.

[0079] The receiving unit 101 of the communication device 100 receives from the source terminal device 10 (corresponding to the "first device") a "packet" generated by the source terminal device 10 (S101). The packet identification unit 102 of the communication device 100 identifies the chunk to which the packet received by the receiving unit 101 belongs (S102). The buffer control unit 105 of the communication device 100 controls the storage and discarding of packets "in units of chunks" based on the packet information stored in the packet information storage unit 103 (S103). The buffer 104 of the communication device 100 stores the packets received by the receiving unit 101 according to the result of control by the buffer control unit 105 (S104). The transmitting unit 106 of the communication device 100 reads the packet from the buffer 104, and transmits it to the destination terminal device 20 (corresponding to the "second device") (S105).

[0080] As described above, according to this embodiment, the storage and discarding of packets in a buffer is controlled on a chunk-by-chunk basis, which is a data unit in a higher layer, thereby reducing the possibility of data loss, and thus enabling efficient data transmission.

[0081] 2. Embodiment 2 (1) Overall Configuration of the Communication Device 200 of the Present Embodiment In the first embodiment, chunks are identified without distinguishing between the connected source terminal device 10 and destination terminal device 20, or between the source application and destination application installed in each device. However, when multiple source terminal devices 10 and destination terminal devices 20 are connected, the chunks must be treated as different chunks even if the same software is used. Also, when multiple source applications and multiple destination applications are executed in the source terminal device 10 and destination terminal device 20, it is necessary to distinguish the chunks for each application. In this embodiment, a case where a plurality of source terminal devices 10 and destination terminal devices 20 are connected, or where a plurality of source applications and destination applications are installed in each device, will be described with reference to FIG. In addition, for functions similar to those of the first embodiment, the same reference numerals as in FIG. 1 are used, and the description of the first embodiment is quoted.

[0082] The configuration of a communication device 200 according to the second embodiment will be described with reference to Fig. 10. The communication device 200 includes a receiving unit 101, a packet classifying unit 202, a packet information storage unit 203, a buffer 104, a buffer control unit 205, and a transmitting unit .

[0083] A plurality of source terminal devices, ie, a source terminal device A and a source terminal device B, are connected to the communication device 200. Also, a plurality of destination terminal devices, ie, a destination terminal device P and a destination terminal device Q, are connected to the communication device 200. The source terminal device A has a source application a installed and running. The source terminal device B has a source application b and a source application c installed and running. The destination terminal device P has a destination application p and a destination application q installed and running. The destination terminal device Q has a destination application r installed and running. It should be noted that three or more source terminal devices and destination terminal devices may be connected, and three or more source applications and destination applications may be installed and executed in one device.

[0084] The packet classifier 202, in addition to identifying chunks as described in the first embodiment, further identifies the communication flow to which the packet belongs based on the source and / or destination of the packet.

[0085] A communication flow can be represented by, for example, information specifying a source and information specifying a destination. For example, when a packet is transmitted from a source application a of a source terminal device A to a destination application q of a destination terminal device P, the communication flow can be represented as AaPq.

[0086] When there is only one source terminal device or one destination terminal device connected to the communication device 200, the information for identifying the source terminal device or the destination terminal device can be omitted. For example, when the only source terminal device connected to the communication device 200 is the source terminal device B, when a packet is transmitted from the source application b of the source terminal device B to the destination application q of the destination terminal device P, the communication flow can be expressed as bPq. When there is only one of the source application installed in the source terminal device and the destination application installed in the destination terminal device, the information for identifying the source application or the destination application can be omitted. For example, if the only source terminal device connected to the communication device 200 is the source terminal device A, and the only source application installed in the source terminal device A is the source application a, when a packet is transmitted from the source application a of the source terminal device A to the destination application q of the destination terminal device P, the communication flow can be expressed as Pq.

[0087] To identify the source and destination, information stored in the IP header and the TCP / UDP header can be used.

[0088] As shown in Fig. 4, the IP header stores the source address and destination address, so the source terminal device and destination terminal device can be identified based on these. The IP header also stores the protocol, so the source application and destination application can be identified based on this.

[0089] As shown in FIG. 11, the source port and destination port are stored in the TCP header and UDP header, so that the source application and destination application can be identified based on these.

[0090] FIG. 12 shows packet information stored in the packet information storage unit 203. 12, the packet information storage unit 203 stores communication flow information in addition to the packet information described in the first embodiment. The method of expressing the communication flow is as described above.

[0091] In addition to the information shown in FIG. 12, the packet information storage unit 203 may store the last packet reception time for each flow in order to identify chunks of each flow based on the packet reception interval.

[0092] The buffer control unit 205 controls the storage of packets in the buffer 104 and the discarding of packets from the buffer 104 for each communication flow in chunk units. For example, in Fig. 12, the communication flow AaPq and the communication flow BbQr have the same chunk number #1, but are treated as different chunks and the storage and discarding of packets are controlled independently. In this embodiment, when performing the control described in Example 1 and Example 2 of the first embodiment, chunks to be deleted are selected from the same flow.

[0093] As described above, according to this embodiment, in addition to the configuration of embodiment 1, the storage and discarding of packets in the buffer is controlled on a chunk-by-chunk basis for each communication flow, so that even if a communication device is running multiple source terminal devices or destination terminal devices, or multiple source applications or destination applications, the possibility of data loss used by each device or application can be reduced, and efficient data transmission can be achieved.

[0094] 3. Specific examples of combinations of source terminal device, communication device, and destination terminal device Several examples of specific combinations of the source terminal apparatus 10, the communication apparatus 100 (200), and the destination terminal apparatus 20 will be given.

[0095] As shown in Figure 13(a), when a video shot with a smartphone is sent to a router via Wi-Fi and then uploaded from the router to a server device using a 4G / 5G line, the smartphone is the source terminal device 10 (corresponding to the "first device"), the router is the communication device 100 (200), and the server device is the destination terminal device 20 (corresponding to the "second device"). Conversely, when a video is downloaded from a server device via a router using a 4G / 5G line, the server device is the source terminal device 10 (corresponding to the "first device"), the router is the communication device 100 (200), and the smartphone is the destination terminal device 20 (corresponding to the "second device").

[0096] The communication device 100 (200) may be "mounted" on a "mobile body". As shown in FIG. 13(b), when data from ECUs and various sensors connected to the in-vehicle network are transmitted to a data center via a communication ECU using a wireless communication method, the navigation ECU, the in-vehicle ECU, and the various sensors are the source terminal device 10 (corresponding to the "first device"), the communication ECU is the communication device 100 (200), and the data center is the destination terminal device 20 (corresponding to the "second device"). Alternatively, as shown in FIG. 13(c), when data from various sensors connected to an in-vehicle network is transmitted to a data center via a wireless communication method via the communication function of the integrated ECU, the various sensors are the source terminal device 10 (corresponding to the “first device”), the integrated ECU is the communication device 100 (200), and the data center is the destination terminal device 20 (corresponding to the “second device”). Where: "Mobile object" refers to an object that can move and can move at any speed. It also includes cases where the mobile object is stationary. For example, it includes, but is not limited to, automobiles, motorcycles, bicycles, pedestrians, ships, aircraft, and objects mounted on these. "Mounted" includes not only the case where the device is directly fixed to the moving body, but also the case where the device is not fixed to the moving body but moves with the moving body, such as the case where the device is carried by a person riding on the moving body, or the case where the device is mounted on cargo placed on the moving body.

[0097] 4. Summary The features of the communication devices and the like in each embodiment of the present invention have been described above. The terms used in each embodiment are merely examples and may be replaced with synonymous terms or terms having the same functions.

[0098] The block diagrams used to explain the embodiments classify and organize the configuration of the device by function. The blocks showing the respective functions are realized by any combination of hardware or software. In addition, since the block diagrams show the functions, they can also be understood as disclosures of a method invention and a program invention that realizes the method.

[0099] The order of the processes, flows, and blocks that can be understood as methods described in each embodiment may be changed as long as there are no constraints, such as a relationship in which one step utilizes the results of another step that precedes it.

[0100] Unless otherwise specified in the claims, the communication device of the present invention may be for use in a vehicle, and also includes a dedicated or general-purpose communication device for use other than in a vehicle.

[0101] Moreover, examples of the form of the communication device of the present invention include a semiconductor element, an electronic circuit, a module, and a microcomputer. Examples of semi-finished products include electronic control units (ECUs (Electric Control Units)) and system boards. Finished product forms include mobile routers, mobile phones, smartphones, tablets, personal computers (PCs), workstations, and servers. Other examples include devices with communication functions, such as car navigation systems.

[0102] It is assumed that the communication device of the present invention is used for the purpose of providing various services. In providing such services, the communication device of the present invention is used, the method of the present invention is used, and / or the program of the present invention is executed.

[0103] In addition, the present invention can be realized not only by dedicated hardware having the configuration and functions described in each embodiment, but also as a combination of a program for realizing the present invention recorded on a recording medium such as a memory or a hard disk, and general-purpose hardware having a dedicated or general-purpose CPU and memory capable of executing the program.

[0104] A program for a communication device of the present invention, which is stored in a non-transient substantial recording medium (for example, an external storage device (hard disk, USB memory, CD / BD, etc.) or an internal storage device (RAM, ROM, etc.)) of dedicated or general-purpose hardware, can also be provided to the dedicated or general-purpose hardware via the recording medium, or via a communication line from a server without using a recording medium. This makes it possible to always provide the latest functions through program upgrades. [Industrial Applicability]

[0105] The communication device of the present invention can be used for both in-vehicle and non-in-vehicle applications, and can also be applied to a relay device. [Explanation of symbols]

[0106] 100 communication device, 101 receiving unit, 102 packet identification unit, 103 packet information storage unit, 104 buffer, 105 buffer control unit, 106 transmitting unit, 10 source terminal device (corresponding to "first device"), 20 destination terminal device (corresponding to "second device")

Claims

1. A receiving unit (101) for receiving a packet from a first device (10); A packet identification unit (102) for identifying a chunk, which is a data unit in a higher layer to which the packet belongs; A buffer (104) for storing the packets; a buffer control unit (105) that controls storing the packets in the buffer and discarding the packets from the buffer in units of the chunks; a transmitting unit (106) that reads the packet from the buffer and transmits it to a second device (20), the buffer control unit discards, based on whether the received first packet can be stored in the buffer and on the first chunk to which the first packet belongs, a second packet that is a stored packet stored in the buffer prior to the first packet in the buffer in units of the first chunk to which the second packet belongs or the second chunk to which the second packet belongs, from the buffer; A communication device (100).

2. The packet identification unit identifies the chunk based on a reception interval of the packet received by the reception unit. The communication device according to claim 1.

3. The chunks are frames generated by compressing a video.

3. The communication device according to claim 2.

4. The packet identification unit identifies the chunk based on an identifier included in an IP header of the packet. The communication device according to claim 1.

5. The packet identification unit identifies the chunk based on identification information included in a TCP / UDP payload of the packet. The communication device according to claim 1.

6. when the first packet cannot be stored in the buffer due to exceeding the capacity of the buffer, the buffer control unit discards from the buffer the second packet, which is a stored packet that belongs to the second chunk different from the first chunk to which the first packet belongs and has been stored in the buffer prior to the first packet. The communication device according to claim 1.

7. when the first packet cannot be stored in the buffer due to exceeding the capacity of the buffer, the buffer control unit discards from the buffer the second packet, which belongs to the second chunk different from the first chunk to which the first packet belongs and is a stored packet that has been stored in the buffer earliest in time. The communication device according to claim 1.

8. the buffer control unit, when the first packet is stored in the buffer, discards from the buffer the second packet, the second packet being a stored packet that belongs to the second chunk different from the first chunk to which the first packet belongs and that has been stored in the buffer prior to the first packet. The communication device according to claim 1.

9. the buffer control unit, when the first packet is stored in the buffer, discards from the buffer the second packet, which belongs to the second chunk different from the first chunk to which the first packet belongs and is a stored packet that has been stored in the buffer earliest in time. The communication device according to claim 1.

10. the buffer control unit, when the second packets which are the stored packets belonging to the second chunk exceed a predetermined ratio with respect to all packets belonging to the second chunk, discards the second packets which are the stored packets from the buffer; A communication device according to any one of claims 6 to 9.

11. the transmitting unit stops transmitting the second packet, which is the stored packet; The communication device according to claim 10.

12. the buffer control unit, when the second packet which is the stored packet belonging to the second chunk exceeds a predetermined importance, does not discard the second packet which is the stored packet from the buffer; A communication device according to any one of claims 6 to 9.

13. the buffer control unit discards the second packet, which is the stored packet belonging to the second chunk, from the buffer when the first packet belonging to the first chunk exceeds a predetermined importance.

13. The communication device of claim 12.

14. when the first packet cannot be stored in the buffer due to exceeding the capacity of the buffer, the buffer control unit discards from the buffer the second packet, which is a stored packet that belongs to the same first chunk as the first packet and that has been stored in the buffer prior to the first packet. The communication device according to claim 1.

15. the packet identification unit further identifies a communication flow to which the packet belongs based on a source and / or a destination of the packet; the buffer control unit controls storing the packets in the buffer and discarding the packets from the buffer for each of the chunks for each of the communication flows. A communication device (200) according to any one of claims 2, 4 and 5.

16. The communication device is mounted on a mobile object. A communication device according to any one of claims 1 to 15.

17. A communication method implemented in a communication device, comprising: A packet is received from a first device (S101); Identifying a chunk, which is a data unit in a higher layer to which the packet belongs (S102); Controlling the storage of the packets in the buffer and the discarding of the packets from the buffer in units of the chunks (S103); The packet is stored in the buffer (S104); reading the packet from the buffer and transmitting the packet to a second device (S105), discarding a second packet, which is a stored packet stored in the buffer prior to the first packet, from the buffer in units of the first chunk to which the second packet belongs or the second chunk to which the second packet belongs, based on whether the received first packet can be stored in the buffer and on the first chunk to which the first packet belongs; Communication methods.

18. A communication program executable on a communication device, A packet is received from a first device (S101); Identifying a chunk, which is a data unit in a higher layer to which the packet belongs (S102); Controlling the storage of the packets in the buffer and the discarding of the packets from the buffer in units of the chunks (S103); The packet is stored in the buffer (S104); A communication program for transmitting the packet to a second device (S105), discarding a second packet, which is a stored packet stored in the buffer prior to the first packet, from the buffer in units of the first chunk to which the second packet belongs or the second chunk to which the second packet belongs, based on whether the received first packet can be stored in the buffer and on the first chunk to which the first packet belongs; Communications program.

Citation Information

Patent Citations

  • Buffer management method for packet switch and optical packet switch using the same

    JP2003179633A

  • Transmitter, method, recordign medium, program, and controller

    JP2006115197A

  • Video reproduction state estimation device, video reproduction state estimation method and program

    JP2015154422A

  • Method and apparatus for synchronizing applications' consumption of remote data

    WO2018200184A1