Processing

Please wait...

Settings

Settings

Goto Application

1. WO2020116719 - ELECTRONIC DEVICE AND CONTROLLING METHOD THEREOF

Document

Description

Title of Invention

Technical Field

1  

Background Art

2   3  

Disclosure of Invention

Technical Problem

4  

Solution to Problem

5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23  

Advantageous Effects of Invention

24   25  

Brief Description of Drawings

26   27   28   29   30   31   32   33   34  

Best Mode for Carrying out the Invention

35  

Mode for the Invention

36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157  

Claims

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15  

Drawings

1   2   3   4   5   6   7   8  

Description

Title of Invention : ELECTRONIC DEVICE AND CONTROLLING METHOD THEREOF

Technical Field

[1]
The disclosure relates to an electronic device which re-receives or re-transmits data and a controlling method thereof and, more particularly, to an electronic device which re-receives or re-transmits data through a multicast method and a controlling method thereof.

Background Art

[2]
There are a large number of mechanical devices and facilities in a factory, and edge devices are being introduced to control / monitor mechanical devices and facilities for each process. In order to transmit the same data to a large number of mechanical devices, a central server may transmit data to an edge device, and the edge device may transmit the data to each mechanical device. For example, the central server may transmit an application or a process control message to an edge device, and the edge device may transmit the transferred application or the process control message to each mechanical device.
[3]
However, when a data transmission problem occurs in one edge device, a process of a number of mechanical devices connected to the corresponding edge device may be stopped, and a solution is needed to solve the data transmission problem of the edge device.

Disclosure of Invention

Technical Problem

[4]
The embodiment of the disclosure is to provide an electronic device in which a data transmission error has occurred re-receives data and is restored, or transmits data to a device in which a data transmission error has occurred to restore the corresponding device, and a controlling method thereof.

Solution to Problem

[5]
Provided is an electronic device. The electronic device includes a communicator; and a processor configured to access a first multicast address through the communicator and receive data that is transmitted from an external server via the first multicast address, based on identifying that an error occurs in data reception based on the received data, generate a second multicast address that is different from the first multicast address, and transmit, to the external server and an external device, the generated second multicast address and information on the erroneous data via the first multicast address, and access the second multicast address through the communicator and receive, from at least one of the external server or the external device, the erroneous data via the second multicast address.
[6]
The processor may receive, from the external server, data that is transmitted in chunk units, and transmit identification information on chunk data which is identified to be erroneous on a basis of the received data to the external server and the external device via the first multicast address.
[7]
The processor may identify chunk data which is failed to be received based on a checksum included in each of the data in the chunk units.
[8]
The processor may identify a number of re-transmission request via the second multicast address based on a total number of the chunk data and a number of the erroneous chunk data, and based on the reception of the erroneous chunk data being failed for the identified number of re-transmission request, request a transmission control protocol (TCP) connection to at least one of the external server or the external device, and re-receive the erroneous chunk data by a unicast method through the TCP connection.
[9]
The number of re-transmission request may be a value which is obtained by dividing the total number of the chunk data by a number of the erroneous chunk data.
[10]
The processor may multicast identification information of data without an error from among data which is transmitted from the external server to the external server and the external device via the first multicast address.
[11]
The processor may, based on identification information of data in which an error is not occurred, request of transmission of the data, and a third multicast address being received from the external device via the first multicast address, multicast the data in which an error is not occurred to the external device and the external server via the third multicast address.
[12]
An electronic system according to an embodiment of the disclosure may include a server configured to multicast data to a first device and a second device via a first multicast address; a first device configured to receive data transmitted from the server via the first multicast address, based on identifying that an error occurs in data reception based on the received data, generate a second multicast address which is different from the first multicast address, and transmit the generated second multicast address and information on the error data to the server and the second device via the first multicast address; and a second device configured to receive data transmitted from the server.
[13]
The server or the second device may multicast the erroneous data to the first device via the second multicast address.
[14]
The second device may receive data transmitted in chunk units from the server and transmits identification information on chunk data which is identified to be erroneous on a basis of the received data to the server and the first device via the first multicast address.
[15]
The second device may identify chunk data which is failed to be received on a basis of a checksum included in each of the data in chunk units.
[16]
The electronic system may further include a third device configured to access the second multicast address based on identifying that an error occurs in reception of the same data as the erroneous data of the first device, and receive the erroneous data from at least one of the server or the second device via the second multicast address.
[17]
According to an embodiment of the disclosure, a controlling method of an electronic device includes accessing a first multicast address and receiving data that is transmitted from an external server via the first multicast address; based on identifying that an error occurs in data reception based on the received data, generating a second multicast address that is different from the first multicast address and transmitting, to the external server and an external device, the generated second multicast address and information on the erroneous data via the first multicast address; and accessing the second multicast address and receiving, from at least one of the external server or the external device, the erroneous data via the second multicast address.
[18]
The transmitting may include receiving, from the external server, data that is transmitted in chunk units, and transmitting identification information on chunk data which is identified to be erroneous on a basis of the received data to the external server and the external device via the first multicast address identification.
[19]
The transmitting may include identifying chunk data which is failed to be received based on a checksum included in each of the data in the chunk units.
[20]
The controlling method may further include, identifying a number of re-transmission request via the second multicast address based on a total number of the chunk data and a number of the erroneous chunk data, and based on the reception of the erroneous chunk data being failed for the identified number of re-transmission request, requesting a transmission control protocol (TCP) connection to at least one of the external server or the external device, and re-receiving the erroneous chunk data by a unicast method through the TCP connection.
[21]
The number of re-transmission request may be a value which is obtained by dividing the total number of the chunk data by a number of the erroneous chunk data.
[22]
The controlling may further include multicasting identification information of data without an error from among data which is transmitted from the external server to the external server and the external device via the first multicast address.
[23]
The multicasting may further include, based on identification information of data in which an error is not occurred, request of transmission of the data, and a third multicast address being received from the external device via the first multicast address, multicasting the data in which an error is not occurred to the external device and the external server via the third multicast address.

Advantageous Effects of Invention

[24]
As described above, according to various embodiments of the disclosure, by re-receiving or re-transmitting data in which an error occurs through a multicast method, data transmission time may be reduced and loads to a server may be decreased.
[25]
In addition, by re-receiving or re-transmitting data using a second multicast address that is different from a first multicast address, data may be transmitted to a plurality of electronic devices without an error.

Brief Description of Drawings

[26]
The above and other aspects, and advantages of certain embodiments of the disclosure will be more apparent from the following description taken in conjunction with the accompanying drawings, in which:
[27]
FIG. 1 is a view illustrating an electronic system according to an embodiment of the disclosure.
[28]
FIG. 2 is a block diagram to describe an operation of an electronic device according to an embodiment of the disclosure.
[29]
FIG. 3 is a block diagram to describe a detailed configuration of an electronic device.
[30]
FIG. 4 is a view to describe re-receiving or re-transmitting data via a first multicast address and a second multicast address according to an embodiment of the disclosure.
[31]
FIG. 5 is a sequence view to describe a process of data transmitting and re-transmission request according to an embodiment of the disclosure.
[32]
FIG. 6 is a view to describe an operation of generating a retransmission list and re-transmitting data according to an embodiment of the disclosure.
[33]
FIG. 7 is a view to describe an operation of identifying chunk data which is failed to be received based on a checksum according to an embodiment of the disclosure.
[34]
FIG. 8 is a flowchart to describe a controlling method of an electronic device according to an embodiment of the disclosure.

Best Mode for Carrying out the Invention

[35]
-

Mode for the Invention

[36]
Hereinafter, embodiments of the disclosure will be described with reference to the accompanying drawings. However, it may be understood that the disclosure is not limited to the embodiments described hereinafter, but includes various modifications, equivalents, and/or alternatives of the embodiments of the disclosure. In relation to explanation of the drawings, similar drawing reference numerals may be used for similar constituent elements.
[37]
The disclosure will be described in greater detail with reference to attached drawings.
[38]
Certain example embodiments are described in greater detail below with reference to the accompanying drawings.
[39]
The terms used in the embodiments of the present disclosure are general terms which are widely used now and selected considering the functions of the present disclosure. However, the terms may vary depending on the intention of a person skilled in the art, a precedent, or the advent of new technology. In addition, in a special case, terms selected by the applicant may be used. In this case, the meaning of the terms will be explained in detail in the corresponding detailed descriptions. Accordingly, defining the terms used herein will be based on the meanings of the terms and overall contents of exemplary embodiments, rather than simple names of the terms.
[40]
As embodiments may have a variety of modifications and several examples, certain embodiments will be exemplified in the drawings and described in detail in the description thereof. However, this does not necessarily limit the scope of the embodiments to a specific embodiment form. Instead, modifications, equivalents and replacements included in the disclosed concept and technical scope of this specification may be employed. While describing embodiments, if it is determined that the specific description regarding a known technology obscures the gist of the disclosure, the specific description is omitted.
[41]
Singular forms in the disclosure are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that terms such as "including" or "having," etc., are intended to indicate the existence of the features, numbers, operations, actions, components, parts, or combinations thereof disclosed in the specification, and are not intended to preclude the possibility that one or more other features, numbers, operations, actions, components, parts, or combinations thereof may exist or may be added.
[42]
The expression “at least one of A and / or B” should be understood to represent “A” or “B” or one of “A and B”.
[43]
The terms such as “first,” “second,” and so on may be used to describe a variety of elements, but the elements should not be limited by these terms. The terms are used only for the purpose of distinguishing one element from another.
[44]
The expression that an element (e.g.: first element) is operatively or communicatively coupled with/to” or “connected to” another element (e.g.: second element) means that an element is directly connected to another element or connected through another element (e.g.: third element).
[45]
In the disclosure, a “module” or a “unit” may perform at least one function or operation, and be implemented as hardware or software, or as a combination of hardware and software. Further, except for the “module” or the “unit” that has to be implemented as particular hardware, a plurality of “modules” or a plurality of “units” may be integrated into at least one module and implemented as at least one processor (not shown). In the disclosure, a term “a user” may refer to a person using an electronic device or a device (e.g.: an artificial intelligence electronic device) which uses an electronic device.
[46]
Hereinbelow, certain embodiments will now be described in greater detail with reference to the accompanying drawings to enable those skilled in the art to work the same with ease. However, embodiments may be realized in a variety of different configurations, and not limited to descriptions provided herein. Further, those that are irrelevant with the description are omitted so as to describe embodiments more clearly, and similar drawing reference numerals are used for the similar elements throughout the description.
[47]
Hereinbelow, an embodiment of the disclosure will be further described with reference to the attached drawings.
[48]
FIG. 1 is a view illustrating an electronic system according to an embodiment of the disclosure.
[49]
An electronic system 1000 includes an electronic device 100, one or more other electronic devices 200, and a server 300.
[50]
According to an embodiment of the disclosure, the electronic device 100 is a device which may receive data from or transmit data to the server 300, and may be implemented as an edge device. The one or more other electronic devices 200 may be another electronic device on the network to which the electronic device 100 is connected, that is, a different edge device. The one or more other electronic devices 200 may be one or a plurality of devices 200-1, 200-2 as shown in FIG. 1. The server 300 is a configuration for transceiving data with the electronic device 100 and the one or more other electronic devices 200 on network, and transmit data through the router. The server 300 may be implemented as a central server in edge computing, which will be described later.
[51]
Here, the edge device means a device for transmitting, to the terminal device, data transmitted from a central server on a network, and may be referred to as a small server. A technique in which a distributed edge device transmits data to a terminal device is referred to as edge computing. Edge computing is a system which is compared to cloud computing where a central server directly transmits data to all terminal devices. For example, it may be assumed that there are many mechanical devices (terminal devices) that perform the same function in a factory, and there is a situation in which a control command is transmitted to all the mechanical devices to perform a specific operation or the same application is installed on all of the mechanical devices. Compared to a case where a central server directly transmits commands or data to all mechanical devices directly or transmits data including an application installation file, a case where commands or data can be transmitted to all the mechanical devices through the edge device may reduce load of the central server, thus enabling commands or data to be transmitted rapidly.
[52]
In the meantime, when an error occurs in the data transmitted to the electronic device 100 by the server 300, the electronic device 100 should re-receive the data. In addition, when re-transmission of data is requested from one or more other electronic devices 200, the electronic device 100 may retransmit the corresponding data, and various embodiments of the disclosure will now be described in detail with reference to the drawings.
[53]
FIG. 2 is a block diagram to describe an operation of an electronic device according to an embodiment of the disclosure.
[54]
According to FIG. 2, the electronic device 100 includes a communicator 110 and a processor 120.
[55]
The communicator 110 is capable of transmitting and receiving data to and from at least one external device 200 and an external server 300. Here, the external device 200 may be another electronic device on the network to which the electronic device 100 is connected, that is, one or more other edge devices.
[56]
For example, the communicator 110 may transmit data to the external device 200 and the external server 300 according to a wireless communication method. In particular, Wireless Fidelity (WI-FI) or Ethernet communication methods can be used. In addition, the communicator 110 may use communication methods such as Zigbee, Infrared (IR), Serial Interface, Universal Serial Bus (USB), Near Field Communication (NFC), Vehicle to Everything (V2X), Cellular, BlueTooth (BT), or the like.
[57]
When data is transmitted to the external server 300 and at least one external device 200 under the control of the processor 120, the communicator 110 may use a multicast method. However, the embodiment of the disclosure is not limited thereto, and the communicator 110 may unicast data to a specific device or broadcast data to all devices under the control of the processor 120.
[58]
The processor 120 controls overall operations of the electronic device 100.
[59]
According to one embodiment, the processor 120 may be implemented as a digital signal processor (DSP), a microprocessor, or a Time Controller (TCON), but is not limited thereto. The processor may include one or more of a central processing unit a central processing unit (CPU), a microcontroller unit (MCU), a micro processing unit (MPU), a controller, an application processor (AP), a communication processor (CP), or an ARM processor, or can be defined by the term. The processor 120 may be implemented as a system on chip (SoC), a large scale integration (LSI) with a processing algorithm embedded therein, or as field programmable gate array (FPGA). The processor 120 may execute computer executable instructions stored in the storage (not shown) and perform various functions.
[60]
According to one embodiment of the disclosure, the processor 120 may access the first multicast address through the communicator 110 and receive data transmitted from the external server 300 via the first multicast address. Here, the electronic device 100, the external server 300, and the at least one external device 200 are connected to a specific multicast address as one group, and when one of the electronic device 100, the external server 300, and the external device 200 transmits specific data to the corresponding multicast address, the remaining devices may receive the data. That is, according to one embodiment, the electronic device 100, the server 300, and the at least one external device 200 may transceive data with each other through the multicast method. The processor 120 may transmit data to a plurality of devices through a single transmission by using a multicast method for a data transmission method, and the load on the processor 120 may be reduced. However, the embodiment of the disclosure is not limited thereto, and the electronic device 100, the server 300, and the at least one external device 200 may transceive data with each other through various communication methods such as unicast and broadcast methods.
[61]
Here, the multicast address may be an IP address which is used for multicast method. The multicast address may be accessed with a plurality of devices which are grouped to the multicast address such as the electronic device 100, the external device 200, the server 300, and the like.
[62]
The processor 120 may generate a second multicast address different from the first multicast address if it is identified that an error has occurred in data reception based on the received data. Here, the error of data reception may include a case where the electronic device 100 fails to receive data or a case where data is received but data including an error is received.
[63]
The processor 120 may receive data transmitted in units of chunks from the external server 300 and transmit identification information on chunk data identified to be erroneous to the external server 300 and the external device 200 via the first multicast address, based on the received data. That is, the processor 120 may identify errors in data reception in units of chunks. Here, a chunk means a unit for distinguishing data. For example, 100 Mbytes of data can be divided into 100 chunks of 1 MB.
[64]
The identification information may be number information for distinguishing specific chunk data from other chunk data. For example, it is assumed that the data in which an error has occurred is the second chunk data. The processor 120 may identify that the data in which an error has occurred (hereinafter “erroneous data”) is the second chunk data based on the identification information of the error chunk data as being “Chunk # 2”. That is, the processor 120 may easily identify from which chunk data an error has occurred through the identification information of the chunk data.
[65]
The identification information value of the chunk data may be set in an order of transmission. For example, the identification information of the chunk data which is transmitted first may be “Chunk #1” and identification information of the chunk data which is transmitted afterwards may be “Chunk #2”. Therefore, all the chunk data may have different identification information.
[66]
The processor 120 may acquire entire data by combining a plurality of chunk data based on the received identification information of the chunk data.
[67]
According to one embodiment, the processor 120 may identify chunk data that is failed to be received based on a checksum included in each of the chunk data. That is, the processor 120 may identify the chunk data in which the error has occurred (hereinafter the “erroneous chunk data”) based on the checksum of the chunk unit. Here, the checksum is one of the error detection schemes which indicates a sum used for checking the accuracy of data, and the result of outputting the bytes of each chunk data through the hash function can be used as a checksum. Specifically, the processor 120 may receive the specific chunk data and compare the bytes of the received chunk data with the checksum included in the chunk data to identify whether an error has occurred in the chunk data. The processor 120 may identify whether an error has occurred in data reception based on the checksum and identify the identification information of the erroneous chunk data. This will be described in detail in FIG.7.
[68]
The processor 120 receives data divided in units of chunks and requests re-transmission of data in units of chunks, and thus, the size of re-transmitted data may be relatively small. Therefore, the electronic device 100, the external device 200, and the server 300 may have a relatively reduced load than re-transceiving the entire data.
[69]
Meanwhile, the processor 120 may request the re-transmission including re-transmission timing information to the external server 300 and the at least one external device 200. Specifically, the processor 120 may specify a point of time when it is easy to receive the re-transmitted data in consideration of the amount of computation, and request re-transmission. Alternatively, if the processor 120 identifies that an error has occurred in the data reception, the processor 120 may request re-transmission at a point of time when it is easy to receive the re-transmitted data without immediately requesting re-transmission of the erroneous data. Meanwhile, the processor 120 may generate a second multicast address if it is identified that an error has occurred in data reception. Here, the second multicast address is an address different from the first multicast address, and is an address for re-receiving or re-transmitting the erroneous data. For example, if an error occurs in receiving data when the first multicast address is 239.0.0.10, the processor 120 may generate a second multicast address 239.0.0.20 which is different from the first multicast address. Here, the specific multicast address is only exemplary.
[70]
Thereafter, the processor 120 may transmit the generated second multicast address and information on the erroneous data to the external server 300 and the external device 200 via the first multicast address. In other words, the processor 120 may request the external server 300 and the at least one external device 200 to re-transmit the erroneous data. The processor 120 may request re-transmission of the erroneous data through a broadcast method as well as a multicast method, or may perform the request via the unicast method. Here, the information on the erroneous data may include the identification information of the erroneous data.
[71]
The processor 120 does not request re-transmission of the erroneous data after the entire data has been transmitted from the external server 300 but identifies the error of the data in units of chunks and requests re-transmission and therefore, it is possible to re-receive the erroneous data rapidly. However, the embodiment of the disclosure is not limited thereto, and the processor 120 may request re-transmission of the erroneous chunk data after the entire data is transmitted from the external server 300.
[72]
The processor 120 identifies an error of data in a chunk unit and requests re-transmission. Thus, the processor 120 may receive data from different devices for each erroneous chunk data. For example, the first erroneous chunk data may be received from the external server 300, and the second erroneous chunk data may be received from the external device 200. The external device 200 and the external server 300 which have received the re-transmission request of the erroneous data may identify whether the data may be re-transmitted.
[73]
Specifically, the external device 200 may identify whether the erroneous data of the electronic device 100 is normally received by the external device 200, confirm the amount of computation of the external device 200, and identify whether re-transmission of the data is possible. Here, the amount of computation may include a central processing unit (CPU), random-access memory (RAM) usage, and the like. Also, the external server 300 may confirm the amount of computation and identify whether the data may be retransmitted. Since the external server 300 corresponds to a source device that transmits data to the electronic device 100 and the external device 200, there is no need to additionally identify whether the external server 300 includes erroneous data of the electronic device 100.
[74]
At least one of the external device 200 or the external server 300 identified as capable of re-transmission may access the second multicast address and re-transmit the corresponding data via the second multicast address.
[75]
The processor 120 may, by accessing the second multicast address through the communicator 110, receive the erroneous data from at least one of the external server 300 or the external device 200 via the second multicast address.
[76]
According to one embodiment, when a plurality of devices are identified as capable of re-transmission, the processor 120 may select one of the devices identified as capable of re-transmission and re-receive the erroneous data from the selected device. For example, it is assumed that an error occurs in receiving the first chunk data, and both the external device 200 and the external server 300 are identified as capable of re-transmission. In this case, the processor 120 may select one device based on predetermined conditions, and re-receive the first chunk data from the selected device. Herein, the predetermined condition may include at least one of received signal strength indication (RSSI) with the electronic device 100, the amount of computation, or whether the re-transmission request timing of the electronic device 100 is satisfied. For example, the electronic device 100 may select at least one of a device having a relatively large RSSI with the electronic device 100, a device having a relatively large amount of computation, or a device which satisfies the re-transmission timing of the electronic device 100 and is capable of re-transmission, and re-receive the erroneous data from the selected device.
[77]
According to another embodiment, the processor 120 may receive re-transmission equally from the device which is identified as being capable of re-transmitting the erroneous data. For example, it is assumed that an error occurs in reception of the first chunk data, and both the external device 200 and the external server 300 are identified as capable of re-transmission. In this case, the processor 120 may re-receive half of the first chunk data from the external device 200 and the remaining half from the external server 300.
[78]
Meanwhile, the external server 300 may transmit the identification information of each external device 200 that has succeeded in receiving the chunk data via the first multicast address. Accordingly, the processor 120 may identify the identification information of the external device 200 having the normal data of the erroneous data.
[79]
In the meantime, a device in which an error occurs in reception of the same chunk data as the electronic device 100 may access the second multicast address, and re-receive data transmitted from at least one of the external server 300 or the external device 200. This will be described in detail in in FIG. 4.
[80]
If the processor 120 is successful in re-receiving the erroneous chunk data via the second multicast address, the processor 120 may delete the second multicast address.
[81]
According to one embodiment of the disclosure, the processor 120 may identify the number of re-transmission requests via the second multicast address based on the total number of chunk data and the number of the erroneous chunk data. The processor 120 may identify the total number of chunk data based on the data header received from the external server 300. For example, in a case where the electronic device 100 does not normally receive data even though the electronic device 100 has repeatedly requested re-transmission of the erroneous chunk data, it is necessary to re-receive the erroneous chunk data through another method to prevent unnecessary delay. Accordingly, the processor 120 may limit the number of re-transmission requests through the multicast method.
[82]
Specifically, the number of re-transmission requests may be a value obtained by dividing the total number of chunk data by the number of the erroneous chunk data. For example, it is assumed that an error occurs in five pieces of chunk data out of the total 100 pieces of chunk data. A value of dividing the total number (100) of chunk data by the number of the erroneous chunk data (5) is 20. That is, the processor 120 may transmit the request for re-transmission of the erroneous chunk data for 20 times to the external device 200 and the external server 300 through the multicast method.
[83]
When the processor 120 fails to receive the erroneous chunk data during the identified number of re-transmission requests, the processor 120 may request a transmission control protocol (TCP) connection to at least one of the external server 300 and the external device 200, and may re-receive the erroneous chunk data through TCP connection in unicast method.
[84]
For example, if it is assumed that an error occurs in five pieces of chunk data out of 100 pieces of chunk data, as described above, the number of re-transmission requests is 20 times. In other words, the processor 120 may transmit the re-transmission request of the chunk data in which an error has occurred 20 times to the external device 200 and the external server 300 through the multicast method based on User Datagram Protocol (UDP) connection, and notwithstanding the foregoing, if receiving of the erroneous chunk data is failed, the processor may not perform the 21st request of re-transmission through the multicast method, and receive the erroneous chunk data through the TCP connection with the external serer 300.
[85]
A method of receiving data through the TCP connection may have higher probability of data reception than a method of receiving data through the multicast method based on the UDP connection, but load may be generated to the external server 300. Therefore, the processor 120 may request re-transmission of the erroneous chunk data through the multicast method for the number of re-transmission requests and may attempt TCP connection in order to prevent unnecessary delay when the data reception fails.
[86]
It has been described an embodiment that the electronic device 100 requests re-transmission of the erroneous data and re-receive the data. Hereinafter, an embodiment that the electronic device 100 re-transmits data to the external device 200 will be described.
[87]
According to an embodiment of the disclosure, the processor 120 may transmit a response of reception success to the external server 300 and the external device 200. The processor 120 may transmit the reception success response of data in chunk units.
[88]
Specifically, the processor 120 may multicast the identification information of the data in which an error has not occurred, from among the data transmitted from the external server 300, to the external server 300 via the first multicast address. Meanwhile, the external device 200 that has succeeded in receiving the same data may not transmit a separate data reception success response. For example, it is assumed that the first device and the second device succeed in receiving the first chunk data. After a certain time elapses, if the first device transmits the first chunk data reception success response via the first multicast address, the second device may not transmit the first chunk data reception success response separately. If even one device succeeds in receiving the first chunk data, the device may transmit the first chunk data to the device that failed to receive the first chunk data. Therefore, if the first data reception success response is transmitted, it is not necessary for the remaining devices to transmit a success response. However, the embodiment is not limited thereto, and all devices that have successfully received data may transmit a success response.
[89]
Thereafter, when the identification information of the data in which an error has not occurred, the transmission request for the corresponding data, and the third multicast address are received from the external device 200 via the first multicast address, the processor 120 may multicast the data in which an error has not occurred to the external device 200 and the external server 300 via the third multicast address. Here, the data in which an error has not occurred may be data in which the processor 120 normally receives data but an error has occurred in at least one external device 200, and may be data in chunk units. The third multicast address is an address generated by the external device 200, and is an address different from the first multicast address. The third multicast address may be the same as or different from the second multicast address.
[90]
For example, it is assumed that the processor 120 receives a specific data transmission request from the external device 200 via the first multicast address. First, the processor 120 may identify whether the corresponding data has been normally received in the electronic device 100. When the data is normally received, the processor 120 may identify whether data may be transmitted based on the amount of computation of the electronic device 100. For example, the processor 120 may identify the data to be in a transferable state when the current amount of computation is less than or equal to a predetermined threshold value. Accordingly, the processor 120 may access the third multicast address and transmit the data to the external device 200 and the external server 300 via the third multicast address. However, when the external server 300 transmits the data to the external device 200 via the third multicast address before the electronic device 100, the processor 120 may not transmit the corresponding data.
[91]
The data may be docker image data, but is not limited thereto.
[92]
It is described that the electronic device 100 is implemented as an edge device, but the electronic device 100 may be implemented as a terminal device.
[93]
The above-described embodiments of the disclosure may be applied to a scenario in which a central server transmits control commands or data to an edge device. Further, the embodiments of the disclosure may be applied to various scenarios which should reliably transfer the same data to a plurality of devices, such as a scenario in which the same educational contents are distributed to a plurality of electronic devices such as a tablet, a scenario in which firmware of a plurality of devices is updated, or the like.
[94]
FIG. 3 is a block diagram to describe a detailed configuration of an electronic device.
[95]
Referring to FIG. 3, the electronic device 100 includes a communicator 110, a processor 120, and a storage 130. The configurations of FIG. 3 which are overlapped with the configurations of FIG. 2 will not be further described.
[96]
The communicator 110 is capable of transceiving data with the external server 300 and the external device 200. The communicator 110 may include a Wi-Fi module (not shown), an Ethernet module (not shown), a Local Area Network (LAN) module, a wireless communication module (not shown), or the like. Here, each communication module may be implemented in a form of at least one hardware chip. In addition to the above-described communication methods, the wireless communication module may include at least one communication chip which performs communication according to various wireless communication standards such as a Zigbee, a 3rd Generation (3G), a 3rd Generation Partnership Project (3GPP), Long Term Evolution (LTE), LTE Advanced (LTE-A), 4th Generation (4G), 5th Generation (5G), or the like. However, this is only an embodiment, and when the communicator 110 communicates with the external device 200 or the external server 300, at least one communication module among various communication modules can be used.
[97]
The processor 120 controls overall operation of the electronic device 100 using various programs stored in the storage 130.
[98]
To be specific, the processor 120 includes a random-access memory (RAM, 121), read-only memory (ROM, 122), a main central processing unit (CPU, 123), first to nth interfaces 124-1 to 124-n, and bus 125.
[99]
The RAM 121, ROM 122, main CPU 123, first to nth interfaces 124-1 to 124-n, etc. may be interconnected through the bus 125.
[100]
The ROM 122 stores a command set for booting the system and the like. When the turn-on command is input and power is supplied, the main CPU 123 copies the O / S stored in the storage 130 to the RAM 121 according to the instruction stored in the ROM 122, executes the O / S to boot the system. When the booting is completed, the main CPU 123 copies various application programs stored in the storage 130 to the RAM 121, executes the application program copied to the RAM 121, and performs various operations.
[101]
The main CPU 123 accesses the storage 130 and performs booting using the O / S stored in the storage 130. Then, the main CPU performs various operations using various programs, contents data, and the like stored in the storage 130.
[102]
The first to nth interfaces 124-1 to 124-n are connected to above-described configurations. One of the interfaces may be a network interface which is connected to an external device through network.
[103]
The storage 130 may store chuck data transmitted from at least one of the external server 300 or the external device 200.
[104]
The storage 130 may be implemented as an internal memory such as a ROM (for example, an electrically erasable programmable read-only memory (EEPROM)) or a random access memory (RAM) included in the processor 120, or may be implemented as a separate memory from the memory 120. In this case, the storage 130 may be implemented in a form of a memory embedded in the electronic device 100, or a memory detachable to the electronic device 100, depending on the purpose of data storage. For example, in the case of data for driving the electronic device 100, the data may be stored in a memory embedded in the electronic device 100, and in the case of data for the extended function of the electronic device 100, the data may be stored in a memory detachable to the electronic device 100. The memory embedded in the electronic device 100 may be a volatile memory such as a dynamic random access memory (DRAM), a static random access memory (SRAM), or a synchronous dynamic random access memory (SDRAM), a nonvolatile memory such as one time programmable ROM (OTPROM), programmable ROM (PROM), erasable and programmable ROM (EPROM), electrically erasable and programmable ROM (EEPROM), mask ROM, flash ROM, flash memory (Ex: NAND flash or NOR flash), a hard drive, or a solid state drive (SSD), and in the case of a memory detachable to the electronic device 100, the memory may be implemented in a form of a memory card (e.g., a compact flash (CF), secure digital (SD), micro secure digital (micro-SD), mini secure digital (mini-SD), extreme digital (xD), multi-media card (MMC)) or an external memory (e.g., USB memory) connectable to the USB port, or the like.
[105]
In particular, the storage 130 may include multicast address information, information on identification of the erroneous chunk data, and checksum, etc.
[106]
FIG. 4 is a view to describe re-receiving or re-transmitting data via a first multicast address and a second multicast address according to an embodiment of the disclosure.
[107]
The server 300 may transmit the first chunk data and the second chunk data to a first device 400-1, a second device 400-2 and a third device 400-3 via the first multicast address in step S410. Here, the server 300, the first device 400-1, the second device 400-2, and the third device 400-3 are connected to the first multicast address as a group, if the server 300 multicasts the first chunk data and the second chunk data to the first multicast address as the destination information, the first chunk data and the second chunk data may be transmitted to the first device 400-1, the second device 400-2 and the third device 400-3.
[108]
It is assumed that the first device 400-1 normally receives the first chunk data and the second chunk data, and the second device 400-2 and the third device 400-3 normally receive the first chunk data and the second chunk data, but an error has occurred in the reception of the second chunk data.
[109]
The second device 400-2 and the third device 400-3 may identify that the erroneous data is the second chunk data, and the second device 400-2 or the third device 400-3 may generate a second multicast address that is different from the first multicast address. In FIG. 4, it is assumed that the second device 400-2 generates the second multicast address.
[110]
The second device 400-2 may transmit Chunk # 2 corresponding to the generated second multicast address information and the identification information of the erroneous second chunk data to the server 300, the first device 400-1 and the third device 400-3 via the first multicast address in step S420.
[111]
The third device 400-3 may access the second multicast address generated and transmitted from the second device 400-2 to re-receive the second chunk data again in step S430. The third device 400-3 may not generate a separate multicast address and may access the multicast address generated by the second device 400-2 to re-receive the second chunk data. Therefore, the amount of computation may be reduced. In addition, the server 300 or the first device 400-1 do not need to separately transmit the second chunk data to the third device 400-3.
[112]
Also, the first device 400-2 and the server 300 may identify whether the second chunk data may be transmitted by checking the amount of computation in step S440. In FIG. 4, since the server 300 transmits the remaining chunk data other than the first and second chunk data, it is assumed that the second chunk data exceeds the predetermined threshold computation amount and the second chunk data is not re-transmitted. Therefore, the first device 400-1 may access the second multicast address and transmit the second chunk data via the second multicast address in step S450.
[113]
Herein, it is described that the first device 400-1 access the second multicast address after the third device 400-3 access the second multicast address. However, the first device 400-1 may access the second multicast address and then the third device 400-3 may access the second multicast address, or the first device 400-1 and the third device 400-3 may simultaneously access the second multicast address.
[114]
The server 300 is a central server and may access all the multicast addresses generated by devices connected to the server 300.
[115]
FIG. 5 is a sequence view to describe a process of data transmitting and re-transmission request according to an embodiment of the disclosure.
[116]
The server 300 may transmit the first chunk data via a first multicast address 505-1 in step S510. The first multicast address 505-1 may be, for example, an IP address of 239.0.0.10. Here, the server 300, the first device 500-1, the second device 500-2, and the third device 500-3 may access an IP address of 239.0.0.10 as one multicast group. Accordingly, when the first chunk data is transmitted by setting the destination information to the first multicast address 505-1, the server 300 may transmit the first chunk data to the first device 500-1, the second device 500-2, and the third device 500-3.
[117]
The first device 500-1 which normally receives the first chunk data may transmit the first chunk data transmission success notice via the first multicast address 505-1 in step S520. Specifically, the first device 500-1 may multicast the identification information of the first chunk data which is normally received to the server 300, the second device 500-2, and the third device 500-3 via the first multicast address 505-1.
[118]
The second device 500-2 and the third device 500-3 having an error in receiving the first chunk data may acquire identification information of the erroneous first chunk data, and the second device 500-2 or the third device 500-3 may generate a second multicast address 505-2 that is different from the first multicast address 505-1.
[119]
As shown in FIG. 5, the second device 500-2 may generate the second multicast address 505-2 in step S530. The second device 500-2 may transmit the second multicast address 505-2 generated via the first multicast address 505-1 and the identification information of the first chunk data in which an error has occurred to the server 300, the first device 500-1, and the third device 500-3 in step S540.
[120]
The third device 500-3 may access the second multicast address 505-2 to re-receive the erroneous first chunk data in step S550. Also, the first device 500-1 may access the second multicast address 505-2 to transmit the first chunk in step S560.
[121]
The first device 500-1 may transmit the first chunk data to the server 300, the second device 500-2 and the third device 500-3 via the second multicast address 505-2 in step S570.
[122]
FIG. 6 is a view to describe an operation of generating a retransmission list and re-transmitting data according to an embodiment of the disclosure.
[123]
The server 300 may receive information on the erroneous data from each of the plurality of electronic devices connected to the server 300 and generate a re-transmission list 620.
[124]
Specifically, as shown in FIG. 6A, each of the electronic devices may generate a list 610 regarding the erroneous chunk data. In FIG. 6A, the Chunk ID indicates identification information of chunk data, and the list 610 relating to chunk data may include Chunk ID information and error information corresponding to each Chunk ID. The list 610 relating to chunk data in FIG. 6A is a list generated in the first device, and each of the plurality of electronic devices may generate a list of chunk data.
[125]
Each of the plurality of electronic devices may transmit the generated list to the server 300 via the first multicast address.
[126]
The server 300 may generate a list 620 of the re-transmission chunk data from the list related to the chunk data transmitted from the plurality of electronic devices. The list 620 of the re-transmission chunk data may include device identification information and error data information generated in each device, that is, chunk information which requires re-transmission.
[127]
For example, the server 300 may identify, through the list 620 of the re-transmission chunk data, that the erroneous chunk data generated in the first device is the second chunk data, the erroneous chunk data generated in the second device is the third and tenth chunk data, no error has occurred in the third device, and the erroneous chunk data generated in the nth device is the fifth and ninth chunk data.
[128]
The server 300 may transmit the chunk data which corresponds to a union of the error chunk data which is generated in the first to nth device via the second multicast address which is different from the first multicast address.
[129]
For example, in the case of FIG. 6B, the server 300 may re-transmit the second, third, fifth, ninth, and tenth chunk data to the first, second, and nth devices in which an error has occurred via the second multicast address. Since the first, second, and nth devices in which an error has occurred are connected to the second multicast address, the re-transmission data may be received.
[130]
In FIG. 6, it is described that the server 300 adds the information about the erroneous chunk data in each electronic device and re-transmits the chunk data at a time. However, if there is a request to retransmit the data from each electronic device, the server 300 may retransmit the chunk data in real time without adding up all chunk data information.
[131]
Chunk data may be transmitted to one or more other electronic devices which are not electronic devices, instead of the server 300.
[132]
FIG. 7 is a view to describe an operation of identifying chunk data which is failed to be received based on a checksum according to an embodiment of the disclosure.
[133]
Here, the checksum means one of the error detection method using a sum that is used to confirm accuracy of data.
[134]
The electronic device 100 may receive specific chunk data, compare the checksum included in the chunk data with the bytes of the received chunk data, and identify whether an error has occurred in the chunk data. The electronic device 100 may identify whether an error has occurred in data reception and identify identification information of the erroneous chunk data based on the checksum.
[135]
Referring to FIG. 7, it is assumed that 100 MB of data is divided into 100 chunk data in units of 1 MB. The electronic device 100 may compare the checksum of the last chunk data with the byte total up to the last chunk data to identify whether an error bas occurred in data reception. For example, if the byte total of the 99th chunk data received is less than 99000, the electronic device 100 may identify that at least one of the chunk data has received an error.
[136]
Further, the electronic device 100 may identify the identification information of the erroneous chunk data, based on the checksum of each chunk data. Specifically, it is possible to identify the identification information of the erroneous chunk data by comparing the byte sum of each chunk data received and the checksum of the chunk data. For example, when a state in which an error has occurred in data reception is not identified in a state where the first chunk data is received, but a sum of bytes in a state where the second chunk data is received is less than 2000, the electronic device 100 may identify that an error has occurred in reception of the second chunk data.
[137]
FIG. 8 is a flowchart to describe a controlling method of an electronic device according to an embodiment of the disclosure.
[138]
The electronic device 100 may access the first multicast address and receive data transmitted from the external server 300 via the first multicast address in step S810.
[139]
The electronic device 100 may generate the second multicast address different from the first multicast address when it is identified that an error has occurred in data reception based on the received data, and transmit the information about the erroneous data and the generated second multicast address to the external server 300 and the external device 200 via the first multicast address in step S 820.
[140]
To be specific, the electronic device 100 may receive from the external server 300 data which is transmitted in chunk units, and based on the received data, transmit the identification information on the chunk data which is identified to be erroneous to the external server 300 and the external device 200 via the first multicast address.
[141]
The electronic device 100 may identify chunk data which is failed to be received, based on the checksum included in each of the data in chunk units.
[142]
The electronic device 100 may access the second multicast address and receive the error data from at least one of the external server 300 or the external device 200 via the second multicast address in step S830.
[143]
In the meantime, the electronic device 100 may identify the number of re-transmission requests based on the second multicast address based on the total number of chunk data and the number of the erroneous chunk data, and if the reception of the generated erroneous chunk data fails during the identified number of the re-transmission requests, a Transmission Control Protocol (TCP) connection is requested to at least one of the external server 300 and the external device 200, and the erroneous chunk data may be re-received through the TCP connection by the unicast method.
[144]
Here, the number of re-transmission requests may be the value which is obtained by dividing the total number of chunk data by the number of the erroneous chunk data.
[145]
The electronic device 100 may multicast the identification information of data without an error, from among the data which is transmitted from the external server 300, to the external server 300 and the external device 200 via the first multicast address.
[146]
When the electronic device 100 receives, from the external device, identification information of data in which an error has not occurred, request of transmission of the data, and the third multicast address via the first multicast address, the electronic device may multicast the data in which an error has not occurred to the external device 200 and the external server 300 via the third multicast address.
[147]
Detailed operation of each step has been described and description thereof will be omitted.
[148]
Methods according to various embodiments of the disclosure may be implemented as an application which may be installed in an existing electronic device.
[149]
The methods according to various embodiments of the disclosure may be implemented only by software upgrade or hardware upgrade with respect to the existing electronic device.
[150]
The various embodiments of the disclosure may be implemented through an embedded server provided in an electronic device, or an external server of at least one of an electronic device and a display device.
[151]
Various embodiments of the disclosure may be implemented in software, including instructions stored on machine-readable storage media readable by a machine (e.g., a computer) in accordance with the disclosed embodiments, as an apparatus capable of calling stored instructions and operating in accordance with the called instructions. When the instructions are executed by a processor, the processor may perform functions corresponding to the instructions, either directly or under the control of the processor, using other elements. The instructions may include code generated or executed by the compiler or interpreter. The storage medium may be provided in the form of a non-transitory storage medium, where “non-temporary” means that the storage medium does not contain a signal and it only means that it is tangible, and does not distinguish that data is permanently or temporarily stored in a storage medium.
[152]
According to an exemplary embodiment, the method according to various embodiments disclosed herein may be provided in a computer program product. A computer program product may be traded between a seller and a purchaser as a commodity. A computer program product may be distributed in the form of a machine-readable storage medium (e.g., compact disc read only memory (CD-ROM)) or distributed online through an application store (e.g. PlayStore ™). In the case of on-line distribution, at least a portion of the computer program product may be stored temporarily or at least temporarily in a storage medium such as a manufacturer's server, a server of an application store, or a memory of a relay server.
[153]
Meanwhile, the various embodiments described above can be implemented in a recording medium that can be read by a computer or similar device using software, hardware, or a combination thereof. In some cases, the embodiments described herein may be implemented by the processor itself. According to a software implementation, embodiments such as the procedures and functions described herein may be implemented in separate software modules. Each of the software modules may perform one or more of the functions and operations described herein.
[154]
Meanwhile, computer instructions for performing the processing operations according to various embodiments of the present disclosure described above may be stored in a non-transitory computer-readable medium. Computer instructions stored on such non-transitory computer-readable media may cause a particular device to perform processing operations according to various embodiments described above when executed by a processor.
[155]
The non-transitory computer readable medium refers to a medium that stores data semi-permanently, and is readable by an apparatus. Specifically, the above-described various applications or programs may be stored in the non-transitory computer readable medium such as a compact disc (CD), a digital versatile disk (DVD), a hard disk, a Blu-ray disk, a universal serial bus (USB), a memory card, a ROM or etc., and may be provided.
[156]
According to the embodiments, the respective elements (e.g., module or program) of the elements mentioned above may include a single entity or a plurality of entities. According to the embodiments, at least one element or operation from among the corresponding elements mentioned above may be omitted, or at least one other element or operation may be added. Alternatively or additionally, a plurality of components (e.g., module or program) may be combined to form a single entity. In this case, the integrated entity may perform functions of at least one function of an element of each of the plurality of elements in the same manner as or in a similar manner to that performed by the corresponding element from among the plurality of elements before integration. The module, a program module, or operations executed by other elements according to variety of embodiments may be executed consecutively, in parallel, repeatedly, or heuristically, or at least some operations may be executed according to a different order, may be omitted, or the other operation may be added thereto.
[157]
While the disclosure has been shown and described with reference to various embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the disclosure as defined by the appended claims and their equivalents.

Claims

[Claim 1]
An electronic device comprising: a communicator; and a processor configured to: access a first multicast address through the communicator and receive data that is transmitted from an external server via the first multicast address, based on identifying that an error occurs in data reception based on the received data, generate a second multicast address that is different from the first multicast address, and transmit the generated second multicast address and information on the erroneous data via the first multicast address, to the external server and an external device, and access the second multicast address through the communicator and receive, from at least one of the external server or the external device, the erroneous data via the second multicast address.
[Claim 2]
The electronic device of claim 1, wherein the processor is further configured to: receive, from the external server, data that is transmitted in chunk units, and transmit identification information on chunk data which is identified to be erroneous based on the received data to the external server and the external device via the first multicast address.
[Claim 3]
The electronic device of claim 2, wherein the processor is further configured to identify chunk data which is failed to be received based on a checksum included in each of the data in the chunk units.
[Claim 4]
The electronic device of claim 2, wherein the processor is further configured to: identify a number of re-transmission request via the second multicast address based on a total number of the chunk data and a number of the erroneous chunk data, and based on the reception of the erroneous chunk data being failed for the identified number of re-transmission request, request a transmission control protocol (TCP) connection to at least one of the external server or the external device, and re-receive the erroneous chunk data by a unicast method through the TCP connection.
[Claim 5]
The electronic device of claim 4, wherein the number of re-transmission request is a value which is obtained by dividing the total number of the chunk data by a number of the erroneous chunk data.
[Claim 6]
The electronic device of claim 1, wherein the processor is further configured to multicast identification information of data without an error from among data which is transmitted from the external server to the external server and the external device via the first multicast address.
[Claim 7]
The electronic device of claim 6, wherein the processor is further configured to, based on identification information of data in which an error is not occurred, request of transmission of the data, and a third multicast address being received from the external device via the first multicast address, multicast the data in which an error is not occurred to the external device and the external server via the third multicast address.
[Claim 8]
An electronic system comprising: a server configured to multicast data to a first device and a second device via a first multicast address; a first device configured to receive data transmitted from the server via the first multicast address, based on identifying that an error occurs in data reception based on the received data, generate a second multicast address which is different from the first multicast address, and transmit the generated second multicast address and information on the error data to the server and the second device via the first multicast address; and a second device configured to receive data transmitted from the server, wherein the server or the second device multicasts the erroneous data to the first device via the second multicast address.
[Claim 9]
The electronic system of claim 8, wherein the second device receives data transmitted in chunk units from the server and transmits identification information on chunk data which is identified to be erroneous based on the received data to the server and the first device via the first multicast address.
[Claim 10]
The electronic system of claim 9, wherein the second device identifies chunk data which is failed to be received based on a checksum included in each of the data in chunk units.
[Claim 11]
The electronic system of claim 8, further comprising: a third device configured to access the second multicast address based on identifying that an error occurs in reception of the same data as the erroneous data of the first device, and receive the erroneous data from at least one of the server or the second device via the second multicast address.
[Claim 12]
A controlling method of an electronic device, the method comprising: accessing a first multicast address and receiving data that is transmitted from an external server via the first multicast address; based on identifying that an error occurs in data reception based on the received data, generating a second multicast address that is different from the first multicast address and transmitting the generated second multicast address and information on the erroneous data via the first multicast address, to the external server and an external device; and accessing the second multicast address and receiving, from at least one of the external server or the external device, the erroneous data via the second multicast address.
[Claim 13]
The controlling method of claim 12, wherein the transmitting comprises receiving, from the external server, data that is transmitted in chunk units, and transmitting identification information on chunk data which is identified to be erroneous based on the received data to the external server and the external device via the first multicast address identification.
[Claim 14]
The controlling method of claim 13, wherein the transmitting comprises identifying chunk data which is failed to be received based on a checksum included in each of the data in the chunk units.
[Claim 15]
The controlling method of claim 13, further comprising: identifying a number of re-transmission request via the second multicast address based on a total number of the chunk data and a number of the erroneous chunk data, and based on the reception of the erroneous chunk data being failed for the identified number of re-transmission request, requesting a transmission control protocol (TCP) connection to at least one of the external server or the external device, and re-receiving the erroneous chunk data by a unicast method through the TCP connection.

Drawings

[ Fig. 1]

[ Fig. 2]

[ Fig. 3]

[ Fig. 4]

[ Fig. 5]

[ Fig. 6]

[ Fig. 7]

[ Fig. 8]