Data communication system and data communication method
The data communication system addresses bandwidth strain by dividing data and enabling terminals to request and transmit missing segments, ensuring efficient data distribution across multiple terminals.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- FUJI ELECTRIC CO LTD
- Filing Date
- 2021-12-16
- Publication Date
- 2026-04-14
AI Technical Summary
As the number of terminals receiving data increases, existing communication bandwidth is strained, even when data is compressed for transmission.
A data communication system that divides data into multiple sets based on the number of terminals, with each terminal requesting and transmitting missing data segments, allowing reconstruction of the original data.
This approach alleviates communication bandwidth strain by reducing the amount of data transmitted to each terminal, ensuring efficient data distribution even with numerous terminals.
Smart Images

Figure 0007844860000001 
Figure 0007844860000002 
Figure 0007844860000003
Abstract
Description
Technical Field
[0001] The present invention relates to a communication system and a communication method for transmitting data to a plurality of terminals.
Background Art
[0002] The use of transmitting the same data to a plurality of terminals is increasing. For example, when updating the firmware of a plurality of IoT (Internet of Things) devices connected to a network, the same update program is transmitted to those plurality of IoT devices. In this case, as the number of terminals increases, the communication bandwidth of the network is strained.
[0003] This problem is alleviated, for example, by compressing and transmitting the data. For example, in the method described in Patent Document 1, compression and decompression of communication data are performed between the communication data exchange procedure and the communication device control procedure of the terminal, and at the time of transmission, the size of the compressed data and the size of the uncompressed data are compared, and the data selected according to the comparison is sent from the communication device.
Prior Art Documents
Patent Documents
[0004]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0005] As described above, if the transmission data is compressed, the strain on the communication bandwidth of the network is alleviated. However, even in this case, as the number of terminals to which data is to be transmitted increases, the communication bandwidth is strained.
[0006] An object according to one aspect of the present invention is to alleviate the strain on the communication bandwidth when transmitting data to a plurality of terminals.
Means for Solving the Problems
[0007] A data communication system according to one aspect of the present invention comprises: a plurality of terminals; a divided transmission management unit that generates divided information including identification information that identifies a plurality of divided data sets generated by dividing data based on the number of terminals and destination information that specifies the destination of the plurality of divided data sets; a data divided unit that divides the data based on the identification information to generate a plurality of divided data sets; and a transmission processing unit that transmits the divided information to each terminal and transmits each divided data set to the corresponding terminal according to the destination information. Each terminal requests any divided data it has not received from other terminals based on the divided information. Each terminal transmits the divided data requested by other terminals to the source that requested the divided data. [Effects of the Invention]
[0008] According to the above-described embodiment, it is possible to alleviate the strain on communication bandwidth when transmitting data to multiple terminals. [Brief explanation of the drawing]
[0009] [Figure 1] This figure shows an example of a data communication system according to an embodiment of the present invention. [Figure 2] This figure shows examples of terminal information and segmentation information. [Figure 3] This figure shows an example of a processing sequence for distributing data to multiple terminals. [Figure 4] This flowchart shows an example of a process for distributing data to multiple devices. [Figure 5] This figure shows an example of a processing sequence in which each terminal completes the segmented data. [Figure 6] This is a flowchart illustrating an example of terminal processing. [Figure 7] This figure shows an example of updating the owned flag list. [Figure 8] This figure shows an example of the management terminal and the processing sequence of the terminal when a transmission error occurs. [Figure 9]This flowchart shows an example of how a terminal processes data when requesting segmented data. [Figure 10] This figure shows an example of partitioning information used to achieve system redundancy. [Modes for carrying out the invention]
[0010] Figure 1 shows an example of a data communication system according to an embodiment of the present invention. The data communication system 1 according to an embodiment of the present invention comprises a management terminal 10, a base station 20, and a local network 30. Multiple terminals 31 (31A to 31N) are connected to the local network 30. The terminals 31 are not particularly limited, but for example, they are IoT devices.
[0011] The management terminal 10 includes a terminal management unit 11 and a segmented transmission management unit 12. Note that the management terminal 10 may also include other functions or circuits not shown in Figure 1. For example, the management terminal 10 includes a communication interface for communicating with the base station 20.
[0012] The terminal management unit 11 manages the terminals 31 (31A to 31N) connected to the local network 30. Specifically, the terminals 31 are managed using the terminal information shown in Figure 2(a). The terminal information is stored in the memory of the management terminal 10 and includes information identifying the local network to which each terminal 31 is connected and information identifying each terminal 31. In this embodiment, N terminals (000A to 000N) are connected to the local network LAN#1. The terminal information is generated when the local network 30 is established. Subsequently, the terminal information is updated when a new terminal 31 is added to the local network 30 and when a terminal 31 is removed from the local network 30.
[0013] When the split transmission management unit 12 is given an instruction to transmit the transmission data D to the terminal 31, it generates split information based on the terminal information. At this time, the split information is generated based on the number of terminals 31 connected to the local network 30. Also, as shown in FIG. 2(b), the split information includes a split number, a split data ID, destination information, and a hash value.
[0014] The split number is composed of a value representing the number of split data generated by splitting the transmission data and a sequence number for identifying each split data. In this embodiment, the number of split data is "N". Therefore, for each split data, sequence numbers from "1" to "N" are assigned. The split data ID identifies each split data. Note that since each split data can be identified by the sequence number in the split number, the split information does not necessarily have to include the split data ID. Also, the split number and / or the split data ID is an example of identification information for identifying each of the plurality of split data generated by splitting the transmission data.
[0015] The number of split data generated by splitting the transmission data is not particularly limited, but it is preferably the same as the number of terminals 31 connected to the local network 30. For example, in the case where 10 terminals 31 are connected to the local network 30, it is preferable that the transmission data D is split into 10 split data D1 to D10.
[0016] The destination information represents the destination of each split data. In this embodiment, each split data is transmitted to one of the plurality of terminals 31 connected to the local network 30. Therefore, the destination information represents the terminal 31 to which each split data should be transmitted. In the embodiment shown in FIG. 2(b), the destinations of the split data D1, D2, ··· DN are the terminals 000A, 000B, ··· 000N (31A, 31B, ··· 31N shown in FIG. 1), respectively.
[0017] The hash value is calculated by performing a predetermined operation on the transmitted data using a hash function. In this embodiment, the hash value "2D17···A" is obtained for the transmitted data D. Here, the divided data D1 to DN are all obtained by dividing the transmitted data D. Therefore, the hash values of each divided data are the same. Note that the division information may include information representing the version information of the transmitted data, the creation date and time, the delivery target device, etc., instead of the hash value.
[0018] The base station 20 includes a data division unit 21 and a transmission processing unit 22. Note that the base station 20 may include other functions or circuits not shown in FIG. 1. For example, the base station 20 includes a communication interface for communicating with the management terminal 10 and a communication interface for communicating with the terminal 31.
[0019] When the transmitted data D is given to the base station 20, the data division unit 21 divides the transmitted data D according to the division information. Here, the division number in the division information represents dividing the transmitted data D into N divided data. Therefore, the data division unit 21 generates the divided data D1 to DN by dividing the transmitted data D into N pieces. At this time, it is preferable that the lengths of the divided data D1 to DN are substantially the same as each other.
[0020] The transmission processing unit 22 transmits the division information generated by the management terminal 10 to each terminal 31. That is, each terminal 31 acquires the division information shown in FIG. 2(b). Also, the transmission processing unit 22 transmits the divided data D1 to DN generated by the data division unit 21 to the corresponding terminals 31 according to the destination information in the division information. When the division information shown in FIG. 2(b) is generated, the transmission processing unit 22 transmits the divided data D1, D2, ··· DN to the terminals 31A, 31B, ··· 31N, respectively.
[0021] In the example shown in Figure 1, the management terminal 10 and the base station 20 are separated from each other, but the present invention is not limited to this configuration. That is, the management terminal 10 and the base station 20 may be implemented in a single device. Also, the base station 20 and each terminal 31 are connected by public telephone lines, for example, although this is not particularly limited. Furthermore, the base station 20 and each terminal 31 may be connected by a wireless link or by a cable.
[0022] Terminal 31 can communicate with other terminals 31 connected to the local network 30. Preferably, terminal 31 can communicate individually with all other terminals 31 connected to the local network 30. The local network 30 is implemented, for example, by a wireless LAN.
[0023] Each terminal 31 requests any unreceived segmented data from other terminals 31 based on the segmentation information. At this time, terminal 31 can recognize which segmented data it has received (or which it has not received) from the segmented data it should receive by referring to the segmentation number and segmented data ID. If there is unreceived segmented data, terminal 31 uses the destination information in the segmentation information to request that segmented data from the destination terminal of the unreceived segmented data. Also, when terminal 31 receives a request for segmented data from another terminal 31, it sends the requested segmented data to the source that requested the segmented data.
[0024] Each terminal 31, upon acquiring all the segmented data D1-DN, integrates them to reconstruct the transmission data D. As a result, all terminals 31A-31N acquire the transmission data D. In other words, the transmission data D is distributed to all terminals 31A-31N.
[0025] Figure 3 shows an example of a processing sequence for distributing data to multiple terminals 31. It is assumed that the terminal management unit 11 holds the terminal information shown in Figure 2(a). Then, the base station 20 is given the transmission data D, and the management terminals 10 (terminal management unit 11 and segmented transmission management unit 12) are given instructions to distribute the transmission data D.
[0026] The terminal management unit 11 transmits terminal information to the segmented transmission management unit 12. The terminal management unit 11 may also provide terminal information to the segmented transmission management unit 12 upon request from the segmented transmission management unit 12. In any case, the segmented transmission management unit 12 acquires the terminal information. Then, the segmented transmission management unit 12 generates segmented information as shown in Figure 2(b) based on the terminal information. Finally, the segmented transmission management unit 12 transmits the generated segmented information to the base station 20.
[0027] The base station 20 generates segmented data D1 to DN by segmenting the transmission data D according to the segmentation information. Then, the base station 20 transmits the segmentation information to each terminal 31A to 31N, and also transmits the segmented data D1 to DN to each terminal 31A to 31N. Thus, terminal 31A receives the segmentation information and segmented data D1. Similarly, terminals 31B to 31N each receive the segmentation information and segmented data D2 to DN.
[0028] Terminals 31A to 31N complement each other's segmented data D1 to DN. Specifically, each terminal 31A to 31N requests segmented data that it does not possess from other terminals. For example, terminal 31A has received segmented data D1 from base station 20, so it possesses segmented data D1. Therefore, terminal 31A requests segmented data D2 to DN from terminals 31B to 31N, respectively.
[0029] Each terminal 31A to 31N, upon acquiring all the segmented data D1 to DN, reconstructs the transmission data D by integrating them. Then, each terminal 31A to 31N creates a data acceptance notification indicating that it has received the transmission data D and sends it to the segmented transmission management unit 12. At this time, each data acceptance notification is forwarded to the segmented transmission management unit 12 via the base station 20. The segmented transmission management unit 12 then terminates the data transmission procedure upon receiving data acceptance notifications from all terminals 31A to 31N. If the segmented transmission management unit 12 fails to receive a data acceptance notification from one or more terminals 31 within a predetermined time, it may execute a data retransmission procedure.
[0030] Figure 4 is a flowchart showing an example of the processing performed by the management terminal 10 and base station 20 when distributing data to multiple terminals 31. This flowchart is executed when the base station 20 is given transmission data D and the management terminal 10 (terminal management unit 11 and segmented transmission management unit 12) is given a distribution instruction for the transmission data D.
[0031] In S1, the segmented transmission management unit 12 obtains terminal information from the terminal management unit 11. In S2, the segmented transmission management unit 12 generates segmented information based on the terminal information. This segmented information is passed from the management terminal 10 to the base station 20.
[0032] In S3, the data splitting unit 21 generates multiple split data by splitting the transmission data D according to the splitting information. In S4, the transmission processing unit 22 sends the splitting information to each terminal 31. In S5, the transmission processing unit 22 sends the multiple split data to the corresponding terminal 31 according to the splitting information. After this, each terminal 31 receives all the split data and sends a data acceptance notification to the management terminal 10. In this embodiment, the transmission processing unit 22 sends the splitting information and split data to the terminals 31 separately, but the splitting information and split data may be sent to the terminals 31 together.
[0033] In S6, the segmented transmission management unit 12 waits for data acceptance notifications sent from each terminal 31. When the segmented transmission management unit 12 receives data acceptance notifications from all terminals 31, the data transmission procedure ends.
[0034] Figure 5 shows an example of a processing sequence in which each terminal 31 completes the segmented data. For the sake of brevity, in the following explanation, we will assume that only terminals 31A and 31B are connected to the local network 30. In this case, segmented data D1 and segmented data D2 are generated from the transmitted data D. Then, the base station 20 transmits the segmented information and segmented data D1 to terminal 31A, and the base station 20 transmits the segmented information and segmented data D2 to terminal 31B.
[0035] Upon receiving the segmentation information and segmentation data D1, terminal 31A recognizes the following situation. (1) Split data D1 and split data D2 are generated from transmitted data D. (2) Of the total divided data, divided data D2 has not been received. (3) The segmented data D2 is transmitted to terminal 31B. Then, terminal 31A requests the segmented data D2 from terminal 31B according to the recognized situation (1) to (3). In response, terminal 31B sends the requested segmented data D2 to terminal 31A.
[0036] Similarly, when terminal 31B receives the division information and the division data D2, it recognizes the following situation. (1) Split data D1 and split data D2 are generated from transmitted data D. (2) Of the total divided data, divided data D1 has not been received. (3) The divided data D1 is transmitted to terminal 31A. Then, terminal 31B requests the segmented data D1 from terminal 31A according to the recognized situation (1) to (3). In response, terminal 31A sends the requested segmented data D1 to terminal 31B.
[0037] Each terminal 31A and 31B reconstructs the transmitted data D by integrating the divided data D1 and divided data D2. Then, each terminal 31A and 31B sends a data reception notification to the management terminal 10.
[0038] Figure 6 is a flowchart illustrating an example of the processing performed by terminal 31. Note that each terminal 31 may initiate the processing shown in the flowchart in Figure 6 when it receives segmentation information from base station 20. In this case, the segmentation information also serves as a data reception instruction.
[0039] In S11, terminal 31 receives segmentation information from base station 20. As shown in Figure 2(b), the segmentation information includes a segmentation number, segmentation data ID, destination information, and hash value. In S12, terminal 31 receives segmentation data addressed to it, transmitted from base station 20. In S13, terminal 31 creates a possessed flag list based on the segmentation information. The possessed flag list has the same number of bits as the number of segmentation data generated from the transmitted data. Each bit is assigned to a segmentation data. That is, when base station 20 generates N segmentation data from the transmitted data, an N-bit possessed flag list is created. Initially, each bit in the possessed flag list is "zero". However, when terminal 31 receives segmentation data addressed to it, the bit corresponding to the segmentation data addressed to it is set to "1". Thus, the possessed flag list indicates whether terminal 31 possesses each segmentation data.
[0040] In S14, the variable i is initialized. Variable i identifies the partitioned data. In S15, terminal 31 determines whether it already possesses the partitioned data Di by referring to the possession flag list. If terminal 31 already possesses the partitioned data Di, variable i is incremented in S16, and then terminal 31 returns to processing in S15.
[0041] If terminal 31 does not possess the segmented data Di, in S17, terminal 31 identifies the destination terminal of the segmented data Di based on the segmentation information. For example, in the example shown in Figure 2(b), the destination of segmented data D2 is terminal 000B, and the destination of segmented data D3 is terminal 000C. Then, terminal 31 requests the segmented data Di from the identified destination terminal. At this time, the destination terminal of the segmented data Di provides the requested segmented data Di. Therefore, in S18, terminal 31 receives the segmented data Di from the destination terminal of the segmented data Di.
[0042] In S19, terminal 31 updates its possession flag list. Specifically, the bit corresponding to the segmented data Di is updated to "1". In S20, terminal 31 determines whether it has acquired all the segmented data. If the possession flag list contains "zero", it is determined that there is still unreceived segmented data. In this case, terminal 31 returns to processing S16. That is, terminal 31 acquires all the segmented data D1 to DN by repeatedly executing the processes in S15 to S20. At this time, terminal 31 requests segmented data other than the segmented data addressed to itself from other terminals. When all bits in the possession flag list are set to "1", terminal 31 proceeds to processing S21.
[0043] In S21, terminal 31 reconstructs the transmitted data D by integrating the acquired segmented data D1 to DN. In S22, terminal 31 performs a hash operation on the reconstructed transmitted data D to calculate a hash value. Then, terminal 31 determines whether the calculated hash value matches the hash value included in the segmented information. If the two hash values match, terminal 31 determines that it has successfully received the transmitted data D. In this case, in S23, terminal 31 creates a data reception notification and sends it to the management terminal 10.
[0044] After transmitting the segmentation information to the base station 20, the management terminal 10 waits for data acceptance notifications to be created by each terminal 31. Once data acceptance notifications are received from all terminals 31, the management terminal 10 terminates the data transmission process. On the other hand, if data acceptance notifications are not received from all terminals 31 within a predetermined time, the management terminal 10 performs a retransmission process as necessary. Alternatively, the management terminal 10 outputs a message indicating that the data transmission process did not complete successfully.
[0045] Figure 7 shows an example of updating the possessed flag list. In this example, N segmented data D1 to DN are generated from transmitted data D. In this case, an N-bit possessed flag list is created, as shown in Figure 7(a). Here, each bit is assigned to a segmented data D1 to DN. Also, the initial value of each bit is "zero".
[0046] Terminal 31 receives segmented data D1 from base station 20 at step S12 of the flowchart shown in Figure 6. In this case, as shown in Figure 7(b), the bit corresponding to segmented data D1 is set to "1".
[0047] After this, terminal 31 repeatedly executes the processes S15 to S20 in the flowchart shown in Figure 6, requesting the segmented data D1 to DN that it has not yet acquired from other terminals. When terminal 31 receives segmented data from another terminal, it updates the corresponding bit in the possession flag list. For example, when terminal 31 receives segmented data D2 from another terminal, the value of the bit corresponding to segmented data D2 is updated from "zero" to "1", as shown in Figure 7(c).
[0048] Similarly, terminal 31 collects segmented data D1 to DN by requesting unreceived segmented data from other terminals. As a result, as shown in Figure 7(d), when all bits in the possession flag list are set to "1", terminal 31 creates a data reception notification and sends it to the management terminal 10.
[0049] As described above, in the data communication method according to the embodiment of the present invention, the data to be transmitted is divided at the base station 20, and the divided data is transmitted from the base station 20 to each terminal 31. For example, when distributing a firmware update program from the base station 20 to each terminal 31, the update program is divided and transmitted to each terminal 31. Subsequently, the divided programs are mutually complemented among the terminals 31. Therefore, the amount of information in the data transmitted from the base station 20 to each terminal 31 is small. Consequently, even in cases where there are many terminals 31 connected to the network, the strain on the communication bandwidth between the base station 20 and the terminals 31 is suppressed.
[0050] Incidentally, the embodiments shown in Figures 5 and 6 illustrate a case where segmented data is appropriately transmitted from the base station 20 to each terminal 31. However, in reality, not all segmented data is necessarily transmitted appropriately from the base station 20 to each terminal 31. That is, communication errors may occur between the base station 20 and each terminal 31. If even one segmented data transmission fails, none of the terminals 31 will be able to reconstruct the transmitted data D. Therefore, the data communication method according to the embodiment of the present invention includes a procedure for recovering from communication errors.
[0051] Figure 8 shows an example of the processing sequence for the management terminal 10 and terminal 31 when a transmission error occurs. In the following, as in the example shown in Figure 5, it is assumed that only terminals 31A and 31B are connected to the local network 30. Also, segmented data D1 and segmented data D2 are generated from the transmitted data D. Then, the base station 20 transmits the segmented information and segmented data D1 to terminal 31A, and the base station 20 transmits the segmented information and segmented data D2 to terminal 31B. However, in the example shown in Figure 8, terminal 31A receives the segmented information and segmented data D1, but terminal 31B does not receive the segmented information and segmented data D2.
[0052] Similar to the case shown in Figure 5, terminal 31A requests the segmented data D2 from terminal 31B. However, since terminal 31B has not received the segmented data D2, it does not respond to the request from terminal 31.
[0053] If terminal 31A does not receive a response from terminal 31B within a predetermined time after requesting the segmented data D2, terminal 31A determines that terminal 31B has not received the segmentation information and segmented data D2. In this case, terminal 31A may perform a predetermined number of retries to terminal 31B. In this case, if terminal 31A does not receive a response after the predetermined number of retries, terminal 31A determines that terminal 31B has not received the segmentation information and segmented data D2.
[0054] In any case, if a response is not received from terminal 31B, terminal 31A forwards the segmentation information generated at the management terminal 10 to terminal 31B. Upon receiving the segmentation information, terminal 31B begins processing according to the flowchart shown in Figure 6. At this time, terminal 31B recognizes that segmentation data D1 has been sent from base station 20 to terminal 31A by referring to the segmentation information. Therefore, terminal 31B requests segmentation data D1 from terminal 31A. In response to the request, terminal 31A sends segmentation data D1 to terminal 31B.
[0055] On the other hand, terminal 31A, having not received a response from terminal 31B, determines that terminal 31B has not received the segmented data D2. In this case, terminal 31A requests the segmented data D2 from base station 20 on behalf of terminal 31B. Base station 20 responds to this request and sends the segmented data D2 to terminal 31A. As a result, terminal 31A obtains the segmented data D2. Alternatively, terminal 31A may request the segmented data D2 from management terminal 10. In this case, management terminal 10 instructs base station 20 to send the segmented data D2 to terminal 31A, and base station 20 sends the segmented data D2 to terminal 31A.
[0056] Following the procedure described above, terminal 31A acquires all the segmented data (i.e., D1 to D2). Meanwhile, terminal 31B has not yet acquired segmented data D2. Therefore, terminal 31B requests segmented data D2 from another terminal. However, the destination of segmented data D2, as indicated by the segmentation information, is terminal 31B, and terminal 31B cannot identify the terminal that possesses segmented data D2 by referring to the segmentation information. Therefore, terminal 31B determines that the terminal that requested segmented data D2 from terminal 31B (or the terminal that sent segmentation information to terminal 31B) has acquired and is holding segmented data D2 from base station 20. In this embodiment, terminal 31B has received a request for segmented data D2 (and segmentation information) from terminal 31A. Therefore, terminal 31B determines that terminal 31A possesses segmented data D2 and requests segmented data D2 from terminal 31A. In response to this request, terminal 31A sends segmented data D2 to terminal 31B. As a result, terminal 31 also acquires all the segmented data (i.e., D1 to D2).
[0057] The subsequent steps are the same as in Figures 5 and 6. That is, terminals 31A and 31B each send a data reception notification to the management terminal 10.
[0058] Figure 9 is a flowchart showing an example of the terminal's processing when requesting segmented data. This process corresponds to steps S17 to S18 in the flowchart shown in Figure 6. That is, terminal 31 executes the process shown in the flowchart in Figure 9 when it does not possess the segmented data Di.
[0059] In S31, terminal 31 initializes the variable j, which represents the number of retries for the data request. In S32-S33, terminal 31 requests the partitioned data Di from other terminals based on the partitioning information. When terminal 31 receives the partitioned data Di from other terminals, terminal 31's processing ends (i.e., terminal 31's processing proceeds to S19 in the flowchart shown in Figure 6).
[0060] If terminal 31 fails to receive the segmented data Di from another terminal, terminal 31 compares the variable j with a predetermined threshold K in S34. The threshold K represents the maximum number of retries for the data request. If the variable j is less than the threshold K, the variable j is incremented in S35. After this, terminal 31 returns to processing S32. That is, terminal 31 repeatedly executes the processes in S32 to S35 until it receives the segmented data Di. Once it receives the segmented data Di, terminal 31's processing ends (i.e., terminal 31 proceeds to S19 in the flowchart shown in Figure 6). However, if terminal 31 fails to receive the segmented data Di after K retries, terminal 31 proceeds to processing S36.
[0061] In S36, terminal 31 requests segmented data Di from the management terminal 10 or base station 20. Then, in S37, when terminal 31 receives segmented data Di from the management terminal 10 or base station 20, terminal 31's processing ends (i.e., terminal 31's processing proceeds to S19 in the flowchart shown in Figure 6).
[0062] In this way, when the transmission of segmented data from the base station 20 to the terminal 31 fails, the segmented data is retrieved from the base station 20, thereby avoiding a situation where each terminal 31 cannot reconstruct the transmitted data D. Here, in the embodiment shown in Figures 8 to 9, when the transmission of segmented data from the base station 20 to a certain terminal (terminal 31B in the embodiment) fails, another terminal (terminal 31A in the embodiment) requests the segmented data from the management terminal 10 or the base station 20, but the embodiments of the present invention are not limited to this procedure.
[0063] For example, in the embodiment shown in Figures 8 and 9, when terminal 31B receives segmentation information from terminal 31A, it can recognize, based on that segmentation information, that the transmission of segmented data D2 from base station 20 to terminal 31B has failed. Therefore, terminal 31B may request segmented data D2 from management terminal 10 or base station 20. Even in this case, if terminal 31B can receive segmented data D2, each terminal 31 can ultimately reconstruct the transmitted data D.
[0064] However, considering that a communication error occurred between the base station 20 and terminal 31B during the previous transmission, there is a risk that the request from terminal 31B to the management terminal 10 or base station 20 may not reach it, and there is also a possibility that the retransmission of the segmented data D2 from base station 20 to terminal 31B may fail. This risk is particularly present when base station 20 and each terminal 31 are connected by a wireless link. Therefore, when the transmission of segmented data from base station 20 to a terminal (terminal 31B in this embodiment) fails, it is preferable that another terminal (terminal 31A in this embodiment) requests the segmented data from the management terminal 10 or base station 20, as shown in Figures 8 to 9.
[0065] <System redundancy> The data communication method according to an embodiment of the present invention transmits multiple divided data obtained by dividing data to multiple terminals. Therefore, by replacing the terminals that are the destinations of the divided data with the storage area or disk of a storage device, the data communication method according to an embodiment of the present invention can be applied to RAID (Redundant Arrays of Inexpensive Disks). In other words, the concept of RAID can be applied to the data communication method according to an embodiment of the present invention.
[0066] Figure 10 shows an example of partitioning information for achieving system redundancy. In this example, data DY is divided into N partitioned data (DY1 to DYN). Then, partitioned data DY1 to DYN are sent to terminals 000A to 000N, respectively. In other words, data transmission similar to RAID0 (striping) is performed.
[0067] Data DZ is divided into N partitioned data (DZ1 to DZN). Here, multiple destinations are specified for partitioned data DZ1 to DZN, similar to RAID1. However, the multiple destinations specified for each partitioned data DZ1 to DZN are the same. Specifically, for example, for partitioned data DZ1, "Terminal 000A" is set as destination 1 and "Terminal 000A" is set as destination 2. Similarly, for partitioned data DZ2, "Terminal 000B" is set as destination 1 and "Terminal 000B" is set as destination 2. The same applies to the other partitioned data.
[0068] The base station 20 divides the data DZ according to this division information and transmits the divided data DZ1 to DZN to terminals 000A to 000N. At this time, the base station 20 transmits each divided data to both destination 1 and destination 2. As a result, for example, divided data DZ1 is transmitted to terminal 000A, which is designated as destination 1, and also to terminal 000A, which is designated as destination 2. Thus, divided data DZ1 is transmitted twice from the base station 20 to terminal 000A. Similarly, other divided data are also transmitted twice to their respective corresponding terminals. In other words, data transmission similar to RAID1 (striping + mirroring) is performed.
[0069] In this way, since each segmented data is transmitted multiple times to its corresponding terminal, even if a communication error may occur between the base station 20 and the terminal, the probability that each terminal will not receive its corresponding segmented data is reduced. Therefore, the retransmission process of segmented data to the terminal can be avoided or suppressed.
[0070] Furthermore, error correction codes may be added to each segmented data. The error correction codes are implemented, for example, using parity data. The error correction codes are added by the base station 20. In this embodiment, error correction codes are added to each of the segmented data DZ1 to DZn generated by segmenting the data DZ. In addition, each terminal is equipped with a function to detect and correct errors in the received data using the error correction codes. That is, data transmission similar to RAID5 is performed. As a result, fault tolerance is further enhanced.
[0071] <Hardware> The management terminal 10 is implemented, for example, by a computer including a processor and memory. In this case, a communication program describing the functions of the terminal management unit 11 and the segmented transmission management unit 12 is stored in memory. Terminal information shown in Figure 2(a) is also stored in memory. The terminal management unit 11 and the segmented transmission management unit 12 are then implemented by the processor executing the communication program stored in memory.
[0072] The base station 20 includes a communication device for communicating with the terminal 31, as well as a processor and memory. The memory stores a communication program describing the functions of the data partitioning unit 21 and the transmission processing unit 22. The processor then executes the communication program stored in memory to realize the data partitioning unit 21 and the transmission processing unit 22. However, the data partitioning unit 21 may be implemented using hardware circuitry.
[0073] Terminal 31 includes a microcontroller, which contains a processor and memory. The memory stores a communication program that describes the steps in the flowcharts shown in Figures 6 and 9. The segmentation information received from base station 20 is also stored in the memory. The processor then executes the communication program stored in the memory to realize the steps in the flowcharts shown in Figures 6 and 9. Furthermore, terminal 31 has an interface for communicating with base station 20 and an interface for communicating with other terminals. [Explanation of Symbols]
[0074] 1. Data communication system 10 Management terminals 11 Terminal Management Department 12. Split Transmission Management Unit 20 base station 21 Data division section 22 Transmission Processing Unit 30 Local Network 31 (31A~31N) terminal
Claims
1. Multiple devices and A segmentation transmission management unit generates segmentation information including identification information that identifies multiple segmented data generated by segmenting data based on the number of the multiple terminals, and destination information that specifies the destination of the multiple segmented data. A data division unit that divides the data based on the identification information to generate multiple divided data sets, The system includes a transmission processing unit that transmits the division information to each terminal and transmits each division data to the corresponding terminal according to the destination information, Each terminal requests the missing segmented data from other terminals based on the segmented information. Each terminal sends the segmented data requested by other terminals to the source that requested the segmented data. The division information includes destination information indicating that the destination of the first division data is the first terminal and the destination of the second division data is the second terminal. The first terminal requests the second partition data from the second terminal based on the partition information. When the first terminal fails to receive the second segmented data from the second terminal, it requests the segmented transmission management unit or the transmission processing unit to receive the second segmented data. A data communication system characterized by the following features.
2. The number of divided data sets generated by dividing the aforementioned data is the same as the number of terminals. The transmission processing unit transmits the multiple divided data to different terminals. The data communication system according to feature 1.
3. Each terminal reconstructs the data by integrating the segmented data received from the transmission processing unit and the segmented data received from other terminals. A data communication system according to claim 1 or 2, characterized in that it is the same as described in claim 1 or 2.
4. When each terminal plays back the data, it sends a data reception notification to the segmented transmission management unit indicating that it has received the data. The data communication system according to feature 3.
5. The first terminal transmits the division information to the second terminal. The second terminal, triggered by receiving the division information from the first terminal, requests the second division data from the first terminal. The first terminal transmits the second segmented data to the second terminal in response to a request from the second terminal. The data communication system according to feature 1.
6. A data communication method for transmitting data to multiple terminals, The segmented transmission management unit generates segmented information including identification information that identifies the multiple segmented data generated by segmenting the data based on the number of terminals, and destination information that specifies the destination of the multiple segmented data. The data division unit divides the data based on the identification information to generate multiple divided data sets. The transmission processing unit transmits the division information to each terminal. The transmission processing unit transmits each segmented data to the corresponding terminal according to the destination information. Each terminal requests the missing segmented data from other terminals based on the segmented information. Each terminal sends the segmented data requested by other terminals to the source that requested the segmented data. The division information includes destination information indicating that the destination of the first division data is the first terminal and the destination of the second division data is the second terminal. The first terminal requests the second partition data from the second terminal based on the partition information. When the first terminal fails to receive the second segmented data from the second terminal, it requests the segmented transmission management unit or the transmission processing unit to receive the second segmented data. A data communication method characterized by the following features.
Citation Information
Patent Citations
Download method, user terminal for executing the download method, and distributing server
JP2002132613A
Mobile terminal, multicast data receiving method and multicast data receiving program
JP2007036912A
Communication data compression method
JP2007065828A
Data distributing method and data distributing system
JP2007272540A
Communication method, radio terminal, and communication system
JP2014072798A