KR20200069520A - Electronic device and control method thereof - Google Patents

Electronic device and control method thereof Download PDF

Info

Publication number
KR20200069520A
KR20200069520A KR1020180156639A KR20180156639A KR20200069520A KR 20200069520 A KR20200069520 A KR 20200069520A KR 1020180156639 A KR1020180156639 A KR 1020180156639A KR 20180156639 A KR20180156639 A KR 20180156639A KR 20200069520 A KR20200069520 A KR 20200069520A
Authority
KR
South Korea
Prior art keywords
data
multicast address
error
chunk
server
Prior art date
Application number
KR1020180156639A
Other languages
Korean (ko)
Inventor
하지훈
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020180156639A priority Critical patent/KR20200069520A/en
Priority to PCT/KR2019/003690 priority patent/WO2020116719A1/en
Publication of KR20200069520A publication Critical patent/KR20200069520A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • H04L12/1868Measures taken after transmission, e.g. acknowledgments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1614Details of the supervisory signal using bitmaps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1671Details of the supervisory signal the supervisory signal being transmitted together with control information
    • H04L61/2069
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5069Address allocation for group communication, multicast communication or broadcast communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0097Relays

Abstract

An electronic device is disclosed. According to the present invention, the electronic device comprises: a communication unit; and a processor configured to access a first multicast address through the communication unit, receive data transmitted from an external server through the first multicast address, generate a second multicast address different from the first multicast address if it is identified that an error has occurred in the data reception based on the received data, transmit the generated second multicast address and information on the data in which the error has occurred to the external server and an external device through the first multicast address, access the second multicast address through the communication unit, and receive the data in which the error has occurred through the second multicast address from at least one of the external server and the external device.

Description

전자 장치 및 그 제어 방법 {Electronic device and control method thereof}Electronic device and control method thereof

본 개시는 데이터를 재 수신 또는 재 전송하는 전자 장치 및 그 제어 방법에 관한 것으로, 더욱 상세하게는 멀티캐스트 방식을 통해 데이터를 재 수신 또는 재 전송하는 전자 장치 및 그 제어 방법에 관한 것이다.The present disclosure relates to an electronic device for receiving or retransmitting data and a control method thereof, and more particularly, to an electronic device for receiving or retransmitting data through a multicast method and a control method thereof.

공장 내에 많은 수의 기계 장치 및 설비가 존재하는데, 각 공정 별로 기계 장치 및 설비를 제어/모니터링하기 위해 에지(Edge) 디바이스가 도입되는 추세이다. 동일한 데이터를 많은 수의 기계 장치에 전달하기 위해 중앙 서버는 에지 디바이스로 데이터를 전송하고 에지 디바이스는 해당 데이터를 각 기계 장치로 전송할 수 있다. 예를 들어, 중앙 서버가 에지 디바이스로 어플리케이션 또는 공정 제어 메시지 등을 전송하고, 에지 디바이스는 전송된 어플리케이션 또는 공정 제어 메시지 등을 각 기계 장치로 전송할 수 있다. A large number of machinery and equipment exist in a factory, and an edge device is introduced to control/monitor the machinery and equipment for each process. To deliver the same data to a large number of machines, the central server can send data to the edge devices and the edge devices can send the data to each machine. For example, the central server may transmit an application or process control message to the edge device, and the edge device may transmit the transmitted application or process control message to each machine.

다만, 하나의 에지 디바이스에 데이터 전송 문제가 발생하는 경우 해당 에지 디바이스에 연결된 수 많은 기계 장치의 공정이 정지될 수 있으므로 문제가 발생된 에지 디바이스의 데이터 전송 문제를 해결하기 위한 해결책이 필요한 실정이다.However, when a data transmission problem occurs in one edge device, a number of mechanical processes connected to the edge device may be stopped, so a solution is needed to solve the data transmission problem of the edge device where the problem occurs.

본 개시는 상술한 필요성에 따른 것으로, 본 개시의 목적은, 데이터 전송 에러가 발생된 장치가 데이터를 재 수신하여 복구되거나 데이터 전송 에러가 발생된 장치로 데이터를 전송하여 해당 장치를 복구시키는 전자 장치 및 그 제어 방법을 제공함에 있다.The present disclosure is in accordance with the above-described need, and an object of the present disclosure is to recover an apparatus in which a data transmission error occurs by re-receiving data or recovering the data by transmitting data to a device in which a data transmission error occurs. And to provide a control method therefor.

상술한 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 전자 장치는, 통신부 및 상기 통신부를 통해 제1 멀티캐스트 주소에 접속하여, 상기 제1 멀티캐스트 주소를 통해 외부 서버로부터 전송되는 데이터를 수신하고, 상기 수신된 데이터에 기초하여 데이터 수신에 에러가 발생된 것으로 식별되면 상기 제1 멀티캐스트 주소와 상이한 제2 멀티캐스트 주소를 생성하고, 상기 생성된 제2 멀티캐스트 주소 및 상기 에러가 발생된 데이터에 대한 정보를 상기 제1 멀티캐스트 주소를 통해 상기 외부 서버 및 외부 장치에 전송하고, 상기 통신부를 통해 상기 제2 멀티캐스트 주소에 접속하여, 상기 외부 서버 또는 상기 외부 장치 중 적어도 하나로부터 상기 제2 멀티캐스트 주소를 통해 상기 에러가 발생된 데이터를 수신하는 프로세서를 포함할 수 있다.An electronic device according to an embodiment of the present disclosure for achieving the above object, accesses a first multicast address through a communication unit and the communication unit, and receives data transmitted from an external server through the first multicast address Then, based on the received data, when it is identified that an error has occurred in data reception, a second multicast address different from the first multicast address is generated, and the generated second multicast address and the error are generated. The information on the data is transmitted to the external server and the external device through the first multicast address, and the second multicast address is accessed through the communication unit to access the second multicast address from the external server or at least one of the external devices. 2 It may include a processor for receiving the error-generated data through a multicast address.

상기 프로세서는, 상기 외부 서버로부터 청크(chunk) 단위로 전송되는 데이터를 수신하고, 상기 수신된 데이터에 기초하여 에러가 발생된 것으로 식별된 청크 데이터에 대한 식별 정보를 상기 제1 멀티캐스트 주소를 통해 상기 외부 서버 및 외부 장치에 전송할 수 있다.The processor receives data transmitted in chunk units from the external server and, based on the received data, identifies information about the chunk data identified as having an error through the first multicast address. It can be transmitted to the external server and the external device.

상기 프로세서는, 상기 청크 단위의 데이터 각각에 포함된 체크섬(Checksum)에 기초하여 수신에 실패한 청크 데이터를 식별할 수 있다.The processor may identify chunk data that has failed to receive based on a checksum included in each chunk data.

상기 프로세서는, 전체 청크 데이터 개수 및 상기 에러가 발생된 청크 데이터 개수에 기초하여 상기 제2 멀티캐스트 주소를 통한 재 전송 요청 횟수를 식별하고, 상기 식별된 재 전송 요청 횟수 동안 에러가 발생된 청크 데이터 수신을 실패하면, 상기 외부 서버 또는 상기 외부 장치 중 적어도 하나에 TCP(Transmission Control Protocol) 연결을 요청하고, 상기 TCP 연결을 통해 상기 에러가 발생된 청크 데이터를 유니캐스트 방식으로 재 수신할 수 있다.The processor identifies the number of retransmission requests through the second multicast address based on the total number of chunk data and the number of chunk data in which the error occurred, and the chunk data in which an error occurred during the identified number of retransmission requests If reception is unsuccessful, a transmission control protocol (TCP) connection may be requested from at least one of the external server or the external device, and the chunk data having the error may be re-received through the TCP connection.

여기서, 상기 재 전송 요청 횟수는, 상기 전체 청크 데이터 개수를 상기 에러가 발생된 청크 데이터 개수로 나눈 값일 수 있다.Here, the number of retransmission requests may be a value obtained by dividing the total number of chunk data by the number of chunk data in which the error occurred.

상기 프로세서는, 상기 외부 서버로부터 전송되는 데이터 중 에러가 발생되지 않은 데이터의 식별 정보를 상기 제1 멀티캐스트 주소를 통해 상기 외부 서버 및 상기 외부 장치에 멀티캐스트 할 수 있다.The processor may multicast, to the external server and the external device, identification information of data in which an error has not occurred among data transmitted from the external server through the first multicast address.

상기 프로세서는, 상기 외부 장치로부터 상기 제1 멀티캐스트 주소를 통해 상기 에러가 발생되지 않은 데이터의 식별 정보, 해당 데이터에 대한 전송 요청 및 제3 멀티캐스트 주소가 수신되면, 상기 에러가 발생되지 않은 데이터를 상기 제3 멀티캐스트 주소를 통해 상기 외부 장치 및 상기 외부 서버로 멀티캐스트 할 수 있다.The processor, when the identification information of the data in which the error has not occurred through the first multicast address from the external device, a transmission request for the data, and a third multicast address are received, the data in which the error has not occurred Can be multicast to the external device and the external server through the third multicast address.

본 개시의 일 실시 예에 따른 전자 시스템은, 제1 멀티캐스트 주소를 통해 제1 장치 및 제2 장치로 데이터를 멀티캐스트하는 서버, 제1 멀티캐스트 주소를 통해 상기 서버로부터 전송되는 데이터를 수신하고, 상기 수신된 데이터에 기초하여 데이터 수신에 에러가 발생된 것으로 식별되면 상기 제1 멀티캐스트 주소와 상이한 제2 멀티캐스트 주소를 생성하고, 상기 생성된 제2 멀티캐스트 주소 및 상기 에러가 발생된 데이터에 대한 정보를 상기 제1 멀티캐스트 주소를 통해 상기 서버 및 상기 제2 장치에 전송하는 제1 장치 및 상기 서버로부터 전송되는 데이터를 수신하는 제2 장치를 포함할 수 있다.An electronic system according to an embodiment of the present disclosure receives a server that multicasts data to a first device and a second device through a first multicast address, and receives data transmitted from the server through a first multicast address. When a data reception is identified as an error based on the received data, a second multicast address different from the first multicast address is generated, and the generated second multicast address and the error-generated data are generated. It may include a first device for transmitting information about the first multicast address to the server and the second device through the first multicast address and a second device to receive data transmitted from the server.

여기서, 상기 서버 또는 상기 제2 장치는, 상기 제2 멀티캐스트 주소를 통해 상기 에러가 발생된 데이터를 상기 제1 장치로 멀티캐스트 할 수 있다.Here, the server or the second device may multicast the error-generated data to the first device through the second multicast address.

상기 제2 장치는, 상기 서버로부터 청크 단위로 전송되는 데이터를 수신하고, 상기 수신된 데이터에 기초하여 에러가 발생된 것으로 식별된 청크 데이터에 대한 식별 정보를 상기 제1 멀티캐스트 주소를 통해 상기 서버 및 상기 제1 장치에 전송할 수 있다.The second device receives data transmitted in units of chunks from the server and, based on the received data, identification information for chunk data identified as having an error occurs through the first multicast address. And to the first device.

상기 제2 장치는, 상기 청크 단위의 데이터 각각에 포함된 체크섬(Checksum)에 기초하여 수신에 실패한 청크 데이터를 식별할 수 있다.The second device may identify chunk data that has failed to receive based on a checksum included in each chunk data.

상기 전자 시스템은, 상기 제1 장치에서 에러가 발생된 데이터와 동일한 데이터의 수신에 에러가 발생된 것으로 식별되면 상기 제2 멀티캐스트 주소에 접속하여, 상기 서버 또는 상기 제2 장치 중 적어도 하나로부터 상기 제2 멀티캐스트 주소를 통해 상기 에러가 발생된 데이터를 수신하는 제3 장치를 더 포함할 수 있다.The electronic system accesses the second multicast address when it is identified that an error has occurred in the reception of the same data as the data in which the error occurred in the first device, and from the server or at least one of the second devices The third device may further include a third device that receives the error-generated data through a second multicast address.

본 개시의 일 실시 예에 따른 전자 장치의 제어 방법은, 제1 멀티캐스트 주소에 접속하여, 상기 제1 멀티캐스트 주소를 통해 외부 서버로부터 전송되는 데이터를 수신하는 단계, 상기 수신된 데이터에 기초하여 데이터 수신에 에러가 발생된 것으로 식별되면 상기 제1 멀티캐스트 주소와 상이한 제2 멀티캐스트 주소를 생성하고, 상기 생성된 제2 멀티캐스트 주소 및 상기 에러가 발생된 데이터에 대한 정보를 상기 제1 멀티캐스트 주소를 통해 상기 외부 서버 및 외부 장치에 전송하는 단계 및 상기 제2 멀티캐스트 주소에 접속하여, 상기 외부 서버 또는 상기 외부 장치 중 적어도 하나로부터 상기 제2 멀티캐스트 주소를 통해 상기 에러가 발생된 데이터를 수신하는 단계를 포함할 수 있다.A control method of an electronic device according to an embodiment of the present disclosure includes accessing a first multicast address and receiving data transmitted from an external server through the first multicast address, based on the received data When it is identified that an error has occurred in receiving data, a second multicast address different from the first multicast address is generated, and the generated second multicast address and information on the data in which the error occurs are generated in the first multicast. Transmitting the data to the external server and the external device through a cast address, and accessing the second multicast address, and generating the error data through the second multicast address from at least one of the external server or the external device It may include the step of receiving.

상기 전송하는 단계는, 상기 외부 서버로부터 청크(chunk) 단위로 전송되는 데이터를 수신하고, 상기 수신된 데이터에 기초하여 에러가 발생된 것으로 식별된 청크 데이터에 대한 식별 정보를 상기 제1 멀티캐스트 주소를 통해 상기 외부 서버 및 외부 장치에 전송할 수 있다.In the transmitting step, data transmitted in chunk units from the external server is received, and identification information for chunk data identified as having an error based on the received data is transmitted to the first multicast address. Through the can be transmitted to the external server and the external device.

상기 전송하는 단계는, 상기 청크 단위의 데이터 각각에 포함된 체크섬(Checksum)에 기초하여 수신에 실패한 청크 데이터를 식별할 수 있다.The transmitting may identify chunk data that has failed to receive based on a checksum included in each chunk-unit data.

상기 제어 방법은, 전체 청크 데이터 개수 및 상기 에러가 발생된 청크 데이터 개수에 기초하여 상기 제2 멀티캐스트 주소를 통한 재 전송 요청 횟수를 식별하고, 상기 식별된 재 전송 요청 횟수 동안 에러가 발생된 청크 데이터 수신을 실패하면, 상기 외부 서버 또는 상기 외부 장치 중 적어도 하나에 TCP(Transmission Control Protocol) 연결을 요청하고, 상기 TCP 연결을 통해 상기 에러가 발생된 청크 데이터를 유니캐스트 방식으로 재 수신하는 단계를 더 포함할 수 있다.The control method identifies the number of retransmission requests through the second multicast address based on the total number of chunk data and the number of chunk data in which the error occurred, and the chunk in which an error occurs during the identified number of retransmission requests If data reception is unsuccessful, requesting a Transmission Control Protocol (TCP) connection to at least one of the external server or the external device, and re-receiving the chunk data in which the error occurred through the TCP connection in a unicast manner. It may further include.

여기서, 상기 재 전송 요청 횟수는, 상기 전체 청크 데이터 개수를 상기 에러가 발생된 청크 데이터 개수로 나눈 값일 수 있다.Here, the number of retransmission requests may be a value obtained by dividing the total number of chunk data by the number of chunk data in which the error occurred.

상기 제어 방법은, 상기 외부 서버로부터 전송되는 데이터 중 에러가 발생되지 않은 데이터의 식별 정보를 상기 제1 멀티캐스트 주소를 통해 상기 외부 서버 및 상기 외부 장치에 멀티캐스트하는 단계를 더 포함할 수 있다.The control method may further include multicasting the identification information of the data in which no error occurs among the data transmitted from the external server to the external server and the external device through the first multicast address.

상기 멀티캐스트하는 단계는, 상기 외부 장치로부터 상기 제1 멀티캐스트 주소를 통해 상기 에러가 발생되지 않은 데이터의 식별 정보, 해당 데이터에 대한 전송 요청 및 제3 멀티캐스트 주소가 수신되면, 상기 에러가 발생되지 않은 데이터를 상기 제3 멀티캐스트 주소를 통해 상기 외부 장치 및 상기 외부 서버로 멀티캐스트하는 단계를 더 포함할 수 있다.In the multicasting step, when the identification information of the data for which the error has not occurred, the request for transmission of the data, and the third multicast address are received from the external device through the first multicast address, the error occurs. The method may further include multicasting the unused data to the external device and the external server through the third multicast address.

상술한 바와 같이 본 개시의 다양한 실시 예에 따르면, 멀티캐스트 방식을 통해 에러가 발생된 데이터를 재 수신하거나 재 전송하여 데이터 전송 시간이 감소되고 서버에서 발생하는 부하가 감소될 수 있다. As described above, according to various embodiments of the present disclosure, the data transmission time may be reduced and the load generated in the server may be reduced by re-receiving or re-transmitting the error-generated data through the multicast method.

또한, 제1 멀티캐스트 주소와 상이한 제2 멀티캐스트 주소를 이용하여 데이터를 재 수신하거나 재 전송하여 복수의 전자 장치에 데이터를 에러없이 전송할 수 있다.Also, data may be transmitted to a plurality of electronic devices without error by re-receiving or re-transmitting data using a second multicast address different from the first multicast address.

도 1은 본 개시의 일 실시 예에 따른 전자 시스템을 나타내는 도면이다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 동작을 설명하기 위한 블록도이다.
도 3은 전자 장치의 세부 구성을 설명하기 위한 블록도이다.
도 4는 본 개시의 일 실시 예에 따른 제1 멀티캐스트 주소 및 제2 멀티캐스트 주소를 통해 데이터 재 수신 및 재 전송을 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시 예에 따른 데이터 전송 및 재 전송 요청 과정을 설명하기 위한 시퀀스도이다.
도 6은 본 개시의 일 실시 예에 따른 재 전송 리스트를 생성하여 데이터를 재 전송하는 동작을 설명하기 위한 도면이다.
도 7은 본 개시의 일 실시 예에 따른 체크섬(Checksum)에 기초하여 수신에 실패한 청크 데이터를 식별하는 동작을 설명하기 위한 도면이다.
도 8은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
1 is a diagram illustrating an electronic system according to an embodiment of the present disclosure.
2 is a block diagram illustrating an operation of an electronic device according to an embodiment of the present disclosure.
3 is a block diagram illustrating a detailed configuration of an electronic device.
4 is a view for explaining data re-reception and re-transmission through a first multicast address and a second multicast address according to an embodiment of the present disclosure.
5 is a sequence diagram illustrating a data transmission and retransmission request process according to an embodiment of the present disclosure.
6 is a diagram for describing an operation of retransmitting data by generating a retransmission list according to an embodiment of the present disclosure.
7 is a diagram for describing an operation of identifying chunk data that has failed to receive based on a checksum according to an embodiment of the present disclosure.
8 is a flowchart illustrating a method of controlling an electronic device according to an embodiment of the present disclosure.

이하에서는 첨부 도면을 참조하여 본 개시를 상세히 설명한다. Hereinafter, the present disclosure will be described in detail with reference to the accompanying drawings.

본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다.Terms used in this specification will be briefly described, and the present disclosure will be described in detail.

본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다. Terms used in the embodiments of the present disclosure, while considering the functions in the present disclosure, general terms that are currently widely used are selected, but this may vary depending on the intention or precedent of a person skilled in the art or the appearance of new technologies. . In addition, in certain cases, some terms are arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the corresponding disclosure. Therefore, the terms used in the present disclosure should be defined based on the meaning of the terms and the contents of the present disclosure, not simply the names of the terms.

본 개시의 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 개시된 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 실시 예들을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.Embodiments of the present disclosure may apply various transformations and may have various embodiments, and specific embodiments are illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the scope of the specific embodiments, it should be understood to include all transformations, equivalents, or substitutes included in the disclosed spirit and scope of technology. In the description of the embodiments, when it is determined that the detailed description of the related known technology may obscure the subject matter, the detailed description is omitted.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, terms such as “comprises” or “consist of” are intended to indicate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, one or more other It should be understood that features or numbers, steps, operations, components, parts or combinations thereof are not excluded in advance.

A 및/또는 B 중 적어도 하나라는 표현은 "A" 또는 "B" 또는 "A 및 B" 중 어느 하나를 나타내는 것으로 이해되어야 한다. It should be understood that the expression “at least one of A and/or B” refers to either “A” or “B” or “A and B”.

본 명세서에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. As used herein, expressions such as "first," "second," "first," or "second," may modify various components, regardless of order and/or importance, and denote one component. It is used to distinguish from other components, but does not limit the components.

어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 어떤 구성요소가 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. Some component (eg, first component) is "(functionally or communicatively) coupled with/to" another component (eg, second component), or " When referred to as "connected to", it should be understood that a component may be directly connected to another component, or may be connected through another component (eg, a third component).

본 개시에서 "모듈" 혹은 "부"는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈" 혹은 복수의 "부"는 특정한 하드웨어로 구현될 필요가 있는 "모듈" 혹은 "부"를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다. 본 명세서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.In the present disclosure, "module" or "unit" performs at least one function or operation, and may be implemented in hardware or software, or a combination of hardware and software. In addition, a plurality of "modules" or a plurality of "parts" are integrated into at least one module except for "modules" or "parts" that need to be implemented with specific hardware to be implemented with at least one processor (not shown). Can be. In this specification, the term user may refer to a person using an electronic device or a device using an electronic device (eg, an artificial intelligence electronic device).

아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. Hereinafter, exemplary embodiments of the present disclosure will be described in detail with reference to the accompanying drawings so that those skilled in the art to which the present disclosure pertains can easily implement them. However, the present disclosure may be implemented in various different forms and is not limited to the embodiments described herein. In addition, in order to clearly describe the present disclosure in the drawings, parts irrelevant to the description are omitted, and like reference numerals are assigned to similar parts throughout the specification.

이하 첨부된 도면들을 참조하여 본 개시의 일 실시 예를 보다 상세하게 설명한다. Hereinafter, an embodiment of the present disclosure will be described in detail with reference to the accompanying drawings.

도 1은 본 개시의 일 실시 예에 따른 전자 시스템을 나타낸 도면이다.1 is a diagram illustrating an electronic system according to an embodiment of the present disclosure.

전자 시스템(1000)은 전자 장치(100), 타 전자 장치(200) 및 서버(300)를 포함한다.The electronic system 1000 includes an electronic device 100, another electronic device 200, and a server 300.

본 개시의 일 실시 예에 따르면, 전자 장치(100)는 서버(300)와 데이터를 송수신할 수 있는 장치로, 에지(edge) 디바이스로 구현될 수 있다. 타 전자 장치(200)는 전자 장치(100)가 접속된 네트워크 상의 다른 전자 장치 즉, 다른 에지 디바이스 일 수 있다. 타 전자 장치(200)는 하나일 수 있으나, 도 1과 같이 복수 개(200-1, 200-2)일 수 있다. 서버(300)는 네트워크 상에서 전자 장치(100) 및 타 전자 장치(200)와 데이터를 송수신하는 구성이며, 라우터를 통해 데이터를 전송할 수 있다. 서버(300)는 후술하는 에지 컴퓨팅(Edge Computing)에서 중앙 서버로 구현될 수 있다.According to an embodiment of the present disclosure, the electronic device 100 is a device capable of transmitting and receiving data to and from the server 300, and may be implemented as an edge device. The other electronic device 200 may be another electronic device on the network to which the electronic device 100 is connected, that is, another edge device. The other electronic device 200 may be one, but may be a plurality (200-1, 200-2) as shown in FIG. 1. The server 300 is a component that transmits and receives data to and from the electronic device 100 and other electronic devices 200 on a network, and may transmit data through a router. The server 300 may be implemented as a central server in edge computing described later.

여기서, 에지 디바이스란 네트워크 상에서 중앙 서버로부터 전송된 데이터를 단말 장치를 전송하는 장치를 의미하며, 소형 서버로 불릴 수도 있다. 분산되어 있는 에지 디바이스가 단말 장치로 데이터를 전송하는 기술을 에지 컴퓨팅이라 한다. 에지 컴퓨팅은 중앙 서버가 데이터를 모든 단말 장치로 직접 전송하는 클라우드 컴퓨팅(Cloud Computing)과 대비되는 시스템이다. 예를 들어, 공장 내 동일한 기능을 수행하는 수 많은 기계 장치(단말 장치)가 있고, 이러한 모든 기계 장치에 특정한 동작을 수행하도록 제어 명령을 전송하거나 동일한 어플리케이션을 설치하는 상황을 가정한다. 중앙 서버가 직접 모든 기계 장치에 명령을 전송하거나 어플리케이션 설치 파일을 포함하는 데이터를 전송하는 경우보다 에지 디바이스를 통해 모든 기계 장치에 명령 또는 데이터를 전송하는 경우가 중앙 서버의 부하를 감소시켜 신속하게 명령 또는 데이터가 전송될 수 있다.Here, the edge device refers to an apparatus for transmitting data transmitted from a central server on a network to a terminal device, and may also be referred to as a small server. A technique in which distributed edge devices transmit data to a terminal device is called edge computing. Edge computing is a system that contrasts with cloud computing, where a central server sends data directly to all terminal devices. For example, suppose that there are a large number of mechanical devices (terminal devices) performing the same function in a factory, and a control command is sent to all of these mechanical devices to perform a specific operation or the same application is installed. Sending commands or data to all machine units through an edge device is faster than the central server sending commands to all machine units directly or data containing application installation files. Or data can be transmitted.

한편, 서버(300)가 전자 장치(100)에 전송한 데이터에 에러가 발생된 경우, 전자 장치(100)는 해당 데이터를 재 수신 받아야 한다. 또한, 타 전자 장치(200)로부터 데이터의 재 전송을 요청 받는 경우 전자 장치(100)는 해당 데이터를 재 전송할 수 있는데, 이하에서는 도면을 참조하여 본 개시의 다양한 실시 예에 대해 자세히 설명하도록 한다.Meanwhile, when an error occurs in data transmitted from the server 300 to the electronic device 100, the electronic device 100 must receive the corresponding data again. In addition, when a request for retransmission of data is received from another electronic device 200, the electronic device 100 may retransmit the corresponding data. Hereinafter, various embodiments of the present disclosure will be described in detail with reference to the drawings.

도 2는 본 개시의 일 실시 예에 따른 전자 장치의 동작을 설명하기 위한 블록도이다.2 is a block diagram illustrating an operation of an electronic device according to an embodiment of the present disclosure.

도 2에 따르면, 전자 장치(100)는 통신부(110) 및 프로세서(120)를 포함한다.According to FIG. 2, the electronic device 100 includes a communication unit 110 and a processor 120.

통신부(110)는 적어도 하나의 외부 장치(200) 및 외부 서버(300)와 데이터를 송수신할 수 있는 구성이다. 여기서, 외부 장치(200)는 전자 장치(100)가 접속된 네트워크 상의 다른 전자 장치 즉, 다른 에지 디바이스일 수 있다.The communication unit 110 is a component capable of transmitting and receiving data with at least one external device 200 and the 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, another edge device.

일 예로, 통신부(110)는 무선 통신 방식에 따라 외부 장치(200) 및 외부 서버(300)로 데이터를 전송할 수 있는데, 특히 WI-FI(Wireless Fidelity) 또는 이더넷(Ethernet) 통신 방식을 이용할 수 있다. 이외에도 통신부(110)는 Zigbee, IR(Infrared), Serial Interface, USB(Universal Serial Bus), NFC(Near Field Communication), V2X(Vehicle to Everything), 이동통신(Cellular), BT(BlueTooth) 등과 같은 통신 방식을 이용할 수도 있다.For example, the communication unit 110 may transmit data to the external device 200 and the external server 300 according to a wireless communication method. In particular, a wireless fidelity (WI-FI) or Ethernet communication method may be used. . In addition, the communication unit 110 communicates with Zigbee, IR (Infrared), Serial Interface, USB (Universal Serial Bus), NFC (Near Field Communication), V2X (Vehicle to Everything), mobile communication (Cellular), BT (BlueTooth), etc. You can also use the method.

또한, 통신부(110)는 프로세서(120)의 제어에 따라 데이터를 외부 서버(300) 및 적어도 하나의 외부 장치(200)로 전송하는 경우, 멀티캐스트(Multicast) 방식을 이용할 수 있다. 다만, 이에 한정되는 것은 아니며, 통신부(110)는 프로세서(120)의 제어에 따라 데이터를 특정 장치로 유니캐스트(Unicast)하거나 모든 장치로 브로드캐스트(Broadcast)할 수도 있다.Also, the communication unit 110 may use a multicast method when data is transmitted to the external server 300 and at least one external device 200 under the control of the processor 120. However, the present invention is not limited thereto, and the communication unit 110 may unicast data to a specific device or broadcast to all devices under the control of the processor 120.

프로세서(120)는 전자 장치(100)의 전반적인 동작을 제어한다.The processor 120 controls the overall operation of the electronic device 100.

본 개시의 일 실시 예에 따라, 프로세서(120)는 디지털 신호를 처리하는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), TCON(Time controller)으로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)), 또는 커뮤니케이션 프로세서(communication processor(CP)), ARM 프로세서 중 하나 또는 그 이상을 포함하거나, 해당 용어로 정의될 수 있다. 또한, 프로세서(120)는 프로세싱 알고리즘이 내장된 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다. 프로세서(120)는 저장부(미도시)에 저장된 컴퓨터 실행가능 명령어(computer executable instructions)를 실행함으로써 다양한 기능을 수행할 수 있다.According to an embodiment of the present disclosure, the processor 120 may be implemented as a digital signal processor (DSP), a microprocessor, or a time controller (TCON) that processes digital signals. It is not limited, and a central processing unit (CPU), a micro controller unit (MCU), a micro processing unit (MPU), a controller, an application processor (AP), or a communication processor ( communication processor (CP), one or more of the ARM processors, or may be defined in terms of the processor 120. In addition, the processor 120 is a SoC (System on Chip) with a built-in processing algorithm, large scale integration (LSI) ) Or in the form of a field programmable gate array (FPGA).The processor 120 performs various functions by executing computer executable instructions stored in a storage unit (not shown). can do.

본 개시의 일 실시 예에 따르면, 프로세서(120)는 통신부(110)를 통해 제1 멀티캐스트 주소에 접속하여, 제1 멀티캐스트 주소를 통해 외부 서버(300)로부터 전송되는 데이터를 수신할 수 있다. 여기서, 전자 장치(100), 외부 서버(300) 및 적어도 하나의 외부 장치(200)는 하나의 그룹으로서 특정 멀티캐스트 주소에 접속되어, 전자 장치(100), 외부 서버(300) 및 외부 장치(200) 중 하나가 해당 멀티캐스트 주소에 특정 데이터를 전송하는 경우, 나머지 장치는 해당 데이터를 수신할 수 있다. 즉, 일 실시 예에 따르면, 전자 장치(100), 서버(300) 및 적어도 하나의 외부 장치(200)는 멀티캐스트 방식을 통해 서로 데이터를 송수신할 수 있다. 프로세서(120)는 데이터 전송 방식으로 멀티캐스트 방식을 이용함으로써 한 번의 전송으로 복수의 장치에 데이터를 전송할 수 있으므로 프로세서(120)의 부하가 감소될 수 있다. 다만, 이에 한정되는 아니며, 전자 장치(100), 서버(300) 및 적어도 하나의 외부 장치(200)는 유니캐스트 및 브로드캐스트 등 다양한 통신 방식을 통해 서로 데이터를 송수신할 수도 있다.According to an embodiment of the present disclosure, the processor 120 may access the first multicast address through the communication unit 110 and receive data transmitted from the external server 300 through 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 a group, so that the electronic device 100, the external server 300, and the external device ( If one of the 200) transmits specific data to the corresponding multicast address, the other device can receive the corresponding data. That is, according to an embodiment, the electronic device 100, the server 300, and the at least one external device 200 may transmit and receive data to each other through a multicast method. Since the processor 120 can transmit data to a plurality of devices in one transmission by using a multicast method as a data transmission method, the load of the processor 120 can be reduced. However, the present disclosure is not limited thereto, and the electronic device 100, the server 300, and the at least one external device 200 may transmit and receive data to and from each other through various communication methods such as unicast and broadcast.

여기서, 멀티캐스트 주소는, 멀티캐스트 방식에 이용되는 IP 주소일 수 있다. 멀티캐스트 주소에는 전자 장치(100), 외부 장치(200), 서버(300) 등 해당 멀티캐스트 주소에 그룹핑된 복수의 장치가 접속될 수 있다. Here, the multicast address may be an IP address used in the multicast method. A plurality of devices grouped in a corresponding multicast address, such as the electronic device 100, the external device 200, and the server 300, may be connected to the multicast address.

프로세서(120)는 수신된 데이터에 기초하여 데이터 수신에 에러가 발생된 것으로 식별되면 제1 멀티캐스트 주소와 상이한 제2 멀티캐스트 주소를 생성할 수 있다. 여기서, 데이터 수신의 에러란 전자 장치(100)가 데이터 수신을 실패한 경우 또는 데이터를 수신하였으나 에러가 포함된 데이터를 수신한 경우를 포함할 수 있다.The processor 120 may generate a second multicast address different from the first multicast address when it is identified that an error occurs in data reception based on the received data. Here, the error of data reception may include a case in which the electronic device 100 has failed to receive data or has received data but has received data including an error.

프로세서(120)는 외부 서버(300)로부터 청크(chunk) 단위로 전송되는 데이터를 수신하고, 수신된 데이터에 기초하여 에러가 발생된 것으로 식별된 청크 데이터에 대한 식별 정보를 제1 멀티캐스트 주소를 통해 외부 서버(300) 및 외부 장치(200)에 전송할 수 있다. 즉, 프로세서(120)는 청크 단위로 데이터 수신의 에러를 식별할 수 있다. 여기서, 청크란 데이터를 구분하는 단위를 의미한다. 예를 들어, 100MB 바이트 데이터는 1MB 단위의 100개의 청크로 구분될 수 있다.The processor 120 receives data transmitted in chunk units from the external server 300, and receives a first multicast address for identifying information about the chunk data identified as having an error based on the received data. Through this, it can be transmitted to the external server 300 and the external device 200. That is, the processor 120 may identify an error of data reception in chunk units. Here, a chunk means a unit for classifying data. For example, 100 MB byte data may be divided into 100 chunks in 1 MB increments.

또한, 식별 정보는 특정 청크 데이터를 다른 청크 데이터와 구분하기 위한 번호 정보일 수 있다. 예를 들어, 에러가 발생된 데이터가 제2 청크 데이터인 경우를 상정한다. 프로세서(120)는 에러 청크 데이터의 식별 정보가 "Chunk #2"임에 기초하여 에러가 발생된 데이터가 제2 청크 데이터임을 식별할 수 있다. 즉, 프로세서(120)는 청크 데이터의 식별 정보를 통해 어떤 청크 데이터에서 에러가 발생되었는지 용이하게 식별할 수 있다.Further, the identification information may be number information for distinguishing a specific chunk data from other chunk data. For example, it is assumed that the data in which the error has occurred is the second chunk data. The processor 120 may identify that the error-generated data is the second chunk data based on the identification information of the error chunk data is “Chunk #2”. That is, the processor 120 can easily identify which chunk data an error has occurred through the identification information of the chunk data.

청크 데이터의 식별 정보 값은 전송 순서대로 설정될 수 있다. 예를 들어, 가장 먼저 전송되는 청크 데이터의 식별 정보는 "Chunk #1"이고, 이후 전송되는 청크 데이터의 식별 정보는 "Chunk #2"일 수 있다. 따라서, 모든 청크 데이터는 서로 다른 식별 정보를 갖을 수 있다.The identification information value of the chunk data may be set in the order of transmission. For example, the identification information of the first chunk data transmitted may be “Chunk #1”, and the identification information of the chunk data transmitted later may be “Chunk #2”. Accordingly, all chunk data may have different identification information.

프로세서(120)는 수신된 청크 데이터의 식별 정보에 기초하여 복수의 청크 데이터를 조합함으로써 전체 데이터를 획득할 수 있다.The processor 120 may obtain the entire data by combining a plurality of chunk data based on the identification information of the received chunk data.

일 실시 예에 따르면, 프로세서(120)는 청크 단위의 데이터 각각에 포함된 체크섬(Checksum)에 기초하여 수신에 실패한 청크 데이터를 식별할 수 있다. 즉, 프로세서(120)는 청크 단위의 체크섬에 기초하여 에러가 발생된 청크 데이터를 식별할 수 있다. 여기서, 체크섬이란 데이터의 정확성을 검사하기 위한 용도로 사용되는 합계로서 오류 검출 방식의 하나이며, 각 청크 데이터의 바이트가 해쉬 함수를 통해 출력된 결과 값이 체크섬으로 이용될 수 있다. 구체적으로, 프로세서(120)는 특정 청크 데이터를 수신하고, 청크 데이터에 포함된 체크섬과 수신된 청크 데이터의 바이트를 비교하여 청크 데이터에 에러가 발생되었는지 여부를 식별할 수 있다. 프로세서(120)는 체크섬에 기초하여 데이터 수신의 에러 발생 여부를 식별할 수 있고, 에러가 발생된 청크 데이터의 식별 정보를 식별할 수도 있다. 이에 관하여는 도 7에서 자세히 설명하도록 한다.According to an embodiment, the processor 120 may identify chunk data that has failed to receive based on a checksum included in each chunk data. That is, the processor 120 may identify the chunk data in which an error occurs based on the chunk-based checksum. Here, the checksum is a sum used for the purpose of checking the accuracy of data, and is one of error detection methods, and a result value in which bytes of each chunk data are output through a hash function can be used as a checksum. Specifically, the processor 120 may receive specific chunk data, and compare a checksum included in the chunk data with bytes of the received chunk data to identify whether an error has occurred in the chunk data. The processor 120 may identify whether an error occurs in data reception based on the checksum, and may also identify identification information of the chunk data in which the error occurred. This will be described in detail in FIG. 7.

프로세서(120)는 청크 단위로 구분된 데이터를 수신하고, 청크 단위로 데이터의 재 전송을 요청하므로 재 전송되는 데이터의 크기가 상대적으로 작을 수 있다. 따라서, 전자 장치(100), 외부 장치(200) 및 서버(300)는 전체 데이터를 재 송수신할 때 보다 상대적으로 부하가 감소될 수 있다.Since the processor 120 receives data classified in chunk units and requests retransmission of data in chunk units, the size of the retransmitted data may be relatively small. Accordingly, the load of the electronic device 100, the external device 200, and the server 300 may be relatively reduced compared to when the entire data is transmitted and received again.

한편, 프로세서(120)는 외부 서버(300) 및 적어도 하나의 외부 장치(200)에 재 전송 시점 정보가 포함된 재 전송 요청을 할 수 있다. 구체적으로, 프로세서(120)는 연산량을 고려하여 재 전송된 데이터를 수신 받기 용이한 시점을 특정하여 재 전송을 요청할 수 있다. 또는, 프로세서(120)는 데이터 수신에 에러가 발생된 것으로 식별되면, 즉각적으로 에러 데이터의 재 전송을 요청하지 않고 재 전송된 데이터를 수신 받기 용이한 시점에 재 전송을 요청할 수 있다.한편, 프로세서(120)는 데이터 수신에 에러가 발생된 것으로 식별되면 제2 멀티캐스트 주소를 생성할 수 있다. 여기서, 제2 멀티캐스트 주소는, 제1 멀티캐스트 주소와 상이한 주소이며 에러가 발생된 데이터를 재 수신 또는 재 전송하기 위한 주소이다. 예를 들어, 제1 멀티캐스트 주소가 239.0.0.10인 상태에서 데이터 수신에 에러가 발생되면, 프로세서(120)는 239.0.0.20으로 제1 멀티캐스트 주소와 상이한 제2 멀티캐스트 주소를 생성할 수 있다. 여기서, 구체적인 멀티캐스트 주소는 일 예에 불과함은 물론이다.Meanwhile, the processor 120 may make a retransmission request including retransmission time information to the external server 300 and at least one external device 200. Specifically, the processor 120 may request a retransmission by specifying a time point at which it is easy to receive the retransmitted data in consideration of the computation amount. Alternatively, if it is identified that an error has occurred in data reception, the processor 120 may request a retransmission at a time when it is easy to receive the retransmitted data without immediately requesting retransmission of the error data. If it is identified that an error has occurred in data reception, the 120 may generate a second multicast address. 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 data in which an error has occurred. For example, if an error occurs in data reception while the first multicast address is 239.0.0.10, the processor 120 may generate a second multicast address different from the first multicast address as 239.0.0.20. . Here, it goes without saying that the specific multicast address is only an example.

이후, 프로세서(120)는 생성된 제2 멀티캐스트 주소 및 에러가 발생된 데이터에 대한 정보를 제1 멀티캐스트 주소를 통해 외부 서버(300) 및 외부 장치(200)에 전송할 수 있다. 즉, 프로세서(120)는 에러가 발생된 데이터의 재 전송을 외부 서버(300) 및 적어도 하나의 외부 장치(200)에 요청할 수 있다. 프로세서(120)는 에러가 발생된 데이터의 재 전송 요청을, 멀티캐스트 방식뿐만 아니라 브로드캐스트 방식을 통해서 수행할 수 있으며, 유니캐스트 방식을 통해서 수행할 수도 있다. 여기서, 에러가 발생된 데이터에 대한 정보는, 에러가 발생된 데이터의 식별 정보를 포함할 수 있다.Thereafter, the processor 120 may transmit information on the generated second multicast address and the error-generated data to the external server 300 and the external device 200 through the first multicast address. That is, the processor 120 may request the external server 300 and the at least one external device 200 to retransmit the error-generated data. The processor 120 may perform a request for retransmission of the data in which an error has occurred through a broadcast method as well as a multicast method or a unicast method. Here, the information about the data in which the error occurred may include identification information of the data in which the error occurred.

프로세서(120)는 외부 서버(300)로부터 전체 데이터가 전송된 후에 에러가 발생된 데이터의 재 전송을 요청하는 것이 아닌, 청크 단위로 데이터의 에러를 식별하여 재 전송을 요청하므로 상대적으로 신속하게 에러가 발생된 데이터를 재 수신할 수 있다. 다만, 이에 한정되는 것은 아니며 프로세서(120)는 외부 서버(300)로부터 전체 데이터가 전송된 후에 에러가 발생된 청크 데이터의 재 전송을 요청할 수도 있다.The processor 120 does not request the retransmission of the error-generated data after the entire data is transmitted from the external server 300, but identifies the error of the data in chunk units and requests the retransmission, so the error is relatively quickly. Can receive the generated data again. However, the present invention is not limited thereto, and the processor 120 may request retransmission of the chunk data in which an error occurs after the entire data is transmitted from the external server 300.

또한, 프로세서(120)는 청크 단위로 데이터의 에러를 식별하여 재 전송을 요청하므로, 에러가 발생된 청크 데이터 별로 서로 다른 장치로부터 데이터를 수신할 수도 있다. 예를 들어, 에러가 발생된 제1 청크 데이터는 외부 서버(300)로부터 수신하고, 에러가 발생된 제2 청크 데이터는 외부 장치(200)로부터 수신할 수 있다.전자 장치(100)로부터 에러가 발생된 데이터의 재 전송 요청을 수신한 외부 장치(200) 및 외부 서버(300)는 해당 데이터의 재 전송 가능 여부를 식별할 수 있다. Also, since the processor 120 identifies an error of data in chunk units and requests retransmission, data may be received from different devices for each chunk data in which an error occurs. For example, the first chunk data with an error may be received from the external server 300, and the second chunk data with an error may be received from the external device 200. An error from the electronic device 100 The external device 200 and the external server 300 that have received the request for retransmission of the generated data may identify whether retransmission of the corresponding data is possible.

구체적으로, 외부 장치(200)는 전자 장치(100)에서 에러가 발생된 데이터가 외부 장치(200)에서 정상적으로 수신되었는지 여부를 식별하고, 외부 장치(200)의 연산량을 확인하여 해당 데이터의 재 전송 가능 여부를 식별할 수 있다. 여기서, 연산량은 CPU, RAM 사용량 등을 포함할 수 있다. 또한, 외부 서버(300)는 연산량을 확인하여 해당 데이터의 재 전송 가능 여부를 식별할 수 있다. 여기서, 외부 서버(300)는 전자 장치(100) 및 외부 장치(200)에 데이터를 전송한 소스 장치에 해당되므로 전자 장치(100)에 에러가 발생된 데이터를 외부 서버(300)가 구비하고 있는지 여부를 별도로 식별할 필요는 없다.Specifically, the external device 200 identifies whether or not the data having an error in the electronic device 100 is normally received by the external device 200, checks the amount of computation of the external device 200, and retransmits the corresponding data It is possible to identify whether it is possible. Here, the calculation amount may include CPU, RAM usage, and the like. In addition, the external server 300 may identify whether or not retransmission of the corresponding data is possible by checking the calculation amount. Here, since the external server 300 corresponds to the electronic device 100 and the source device that has transmitted data to the external device 200, is the external server 300 equipped with the data in which the error occurred in the electronic device 100? It is not necessary to identify whether it is separate.

재 전송이 가능한 것으로 식별된 외부 장치(200) 또는 외부 서버(300) 중 적어도 하나는 제2 멀티캐스트 주소에 접속하여 제2 멀티캐스트 주소를 통해 해당 데이터를 재 전송할 수 있다.At least one of the external device 200 or the external server 300 identified as retransmittable may access the second multicast address and retransmit the corresponding data through the second multicast address.

프로세서(120)는 통신부(110)를 통해 제2 멀티캐스트 주소에 접속하여, 외부 서버(300) 또는 외부 장치(200) 중 적어도 하나로부터 제2 멀티캐스트 주소를 통해 에러가 발생된 데이터를 수신할 수 있다.The processor 120 accesses the second multicast address through the communication unit 110 to receive the error-generated data through the second multicast address from at least one of the external server 300 or the external device 200. Can be.

일 실시 예에 따르면, 복수의 장치가 재 전송이 가능한 것으로 식별되는 경우, 프로세서(120)는 재 전송이 가능한 것으로 식별된 장치 중 하나를 선택하여 선택된 장치로부터 에러가 발생된 데이터를 재 전송 받을 수 있다. 예를 들어, 제1 청크 데이터의 수신에 에러가 발생되고 외부 장치(200) 및 외부 서버(300)가 모두 재 전송이 가능한 것으로 식별된 경우를 상정한다. 이 경우, 프로세서(120)는 기설정된 조건에 기초하여 하나의 장치를 선택하고, 선택된 장치로부터 제1 청크 데이터를 재 전송 받을 수 있다. 여기서, 기설정된 조건은, 전자 장치(100)와의 통신 신호의 세기(RSSI), 연산량 또는 전자 장치(100)의 재 전송 요청 시점을 만족하는지 여부 중 적어도 하나를 포함할 수 있다. 예를 들어, 전자 장치(100)는 전자 장치(100)와의 통신 신호의 세기(RSSI)가 상대적으로 큰 장치, 상대적으로 연산량의 여유가 있는 장치 또는 전자 장치(100)의 재 전송 시점을 만족하여 재 전송을 할 수 있는 장치 중 적어도 하나를 선택하고 선택된 장치로부터 에러가 발생된 데이터를 재 전송 받을 수 있다.According to an embodiment, when a plurality of devices are identified as being capable of retransmission, the processor 120 may select one of the devices identified as being capable of retransmission and retransmit the data having an error from the selected device. have. For example, it is assumed that an error occurs in the reception of the first chunk data and both the external device 200 and the external server 300 are identified as being capable of retransmission. In this case, the processor 120 may select one device based on a preset condition and retransmit the first chunk data from the selected device. Here, the preset condition may include at least one of an intensity (RSSI) of a communication signal with the electronic device 100, a calculation amount, or whether the electronic device 100 satisfies a request time for retransmission. For example, the electronic device 100 satisfies a retransmission time of the device having a relatively large signal strength (RSSI) with the electronic device 100, a device having a relatively large amount of computation, or the electronic device 100 It is possible to select at least one of the devices capable of retransmission and retransmit the data having an error from the selected device.

다른 실시 예에 따르면, 프로세서(120)는 에러가 발생된 데이터를 재 전송이 가능한 것으로 식별된 장치로부터 균등하게 재 전송 받을 수도 있다. 예를 들어, 제1 청크 데이터의 수신에 에러가 발생되고 외부 장치(200) 및 외부 서버(300)가 모두 재 전송이 가능한 것으로 식별된 경우를 상정한다. 이 경우, 프로세서(120)는 제1 청크 데이터의 절반은 외부 장치(200)로부터 재 전송 받고, 나머지 절반은 외부 서버(300)로부터 재 전송 받을 수 있다.According to another embodiment, the processor 120 may equally retransmit the error-generated data from a device identified as being capable of retransmission. For example, it is assumed that an error occurs in the reception of the first chunk data and both the external device 200 and the external server 300 are identified as being capable of retransmission. In this case, the processor 120 may retransmit half of the first chunk data from the external device 200 and retransmit the other half from the external server 300.

한편, 외부 서버(300)는 청크 데이터 별로 수신에 성공한 각 외부 장치(200)의 식별 정보를 제1 멀티캐스트 주소를 통해 전송할 수도 있다. 이에 따라, 프로세서(120)는 에러가 발생된 데이터의 정상 데이터를 갖는 외부 장치(200)의 식별 정보를 식별할 수 있다.Meanwhile, the external server 300 may transmit identification information of each external device 200 that is successfully received for each chunk data through the first multicast address. Accordingly, the processor 120 may identify identification information of the external device 200 having normal data of the data in which the error occurred.

한편, 전자 장치(100)와 동일한 청크 데이터 수신에 에러가 발생된 장치는 제2 멀티캐스트 주소에 접속하여 외부 서버(300) 또는 외부 장치(200) 중 적어도 하나로부터 전송되는 데이터를 재 수신할 수 있다. 이에 관하여는 도 4에서 자세히 설명한다.Meanwhile, a device having an error in receiving 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. have. This will be described in detail in FIG. 4.

한편, 프로세서(120)는 제2 멀티캐스트 주소를 통해 에러가 발생된 청크 데이터의 재 수신에 성공한 경우, 제2 멀티캐스트 주소를 삭제할 수 있다.Meanwhile, the processor 120 may delete the second multicast address when the re-receiving of the chunk data in which an error occurs through the second multicast address is successful.

한편, 본 개시의 일 실시 예에 따르면, 프로세서(120)는 전체 청크 데이터 개수 및 에러가 발생된 청크 데이터 개수에 기초하여 제2 멀티캐스트 주소를 통한 재 전송 요청 횟수를 식별할 수 있다. 프로세서(120)는 외부 서버(300)로부터 수신된 데이터 헤더에 기초하여 전체 청크 데이터 개수를 식별할 수 있다. 예를 들어, 전자 장치(100)가 에러가 발생된 청크 데이터의 재 전송 요청을 수 차례 수행했음에도 정상적으로 데이터를 수신하지 못하는 경우, 불필요한 지연을 방지하기 위해 다른 방식을 통해 에러가 발생된 청크 데이터를 재 수신 받을 필요가 있다. 따라서, 프로세서(120)는 멀티캐스트 방식을 통한 재 전송 요청 횟수를 제한할 수 있다.Meanwhile, according to an embodiment of the present disclosure, the processor 120 may identify the number of retransmission requests through the second multicast address based on the total number of chunk data and the number of chunk data in which an error occurs. The processor 120 may identify the total number of chunk data based on the data header received from the external server 300. For example, if the electronic device 100 does not normally receive data even though it has repeatedly requested the retransmission of the errored chunk data several times, in order to prevent unnecessary delay, the errored chunk data is transmitted through another method. You need to receive it again. Therefore, the processor 120 may limit the number of retransmission requests through the multicast method.

구체적으로, 재 전송 요청 횟수는, 전체 청크 데이터 개수를 에러가 발생된 청크 데이터 개수로 나눈 값일 수 있다. 예를 들어, 전체 100개의 청크 데이터 중 5개 청크 데이터에 에러가 발생된 경우를 상정한다. 전체 청크 데이터 개수(100개)를 에러가 발생된 청크 데이터 개수(5개)로 나눈 값은 20이다. 즉, 프로세서(120)는 20회 동안 에러가 발생된 청크 데이터의 재 전송 요청을 멀티캐스트 방식을 통해 외부 장치(200) 및 외부 서버(300)에 전송할 수 있다.Specifically, the number of retransmission requests may be a value obtained by dividing the total number of chunk data by the number of chunk data in which an error occurs. For example, it is assumed that an error occurs in 5 chunk data out of a total of 100 chunk data. The total number of chunk data (100) divided by the number of errored chunk data (5) is 20. That is, the processor 120 may transmit a request for retransmission of chunk data having an error for 20 times to the external device 200 and the external server 300 through a multicast method.

프로세서(120)는 식별된 재 전송 요청 횟수 동안 에러가 발생된 청크 데이터 수신을 실패하면, 외부 서버(300) 또는 외부 장치(200) 중 적어도 하나에 TCP(Transmission Control Protocol) 연결을 요청하고, TCP 연결을 통해 에러가 발생된 청크 데이터를 유니캐스트 방식으로 재 수신할 수 있다.The processor 120 requests transmission of a Transmission Control Protocol (TCP) connection to at least one of the external server 300 or the external device 200 when the reception of the chunk data in which an error occurs during the identified number of retransmission requests fails, and the TCP Through the connection, the chunk data in which an error has occurred can be received again in a unicast manner.

예를 들어, 전체 100개의 청크 데이터 중 5개 청크 데이터에 에러가 발생된 경우를 상정하면, 상술한 바와 같이, 재 전송 요청 횟수는 20회이다. 즉, 프로세서(120)는 20회 동안 에러가 발생된 청크 데이터의 재 전송 요청을 UDP(User Datagram Protocol) 연결에 기초한 멀티캐스트 방식을 통해 외부 장치(200) 및 외부 서버(300)에 전송하고, 그럼에도 에러가 발생된 청크 데이터의 수신을 실패하는 경우 멀티캐스트 방식을 통해 21번째 재 전송 요청을 수행하지 않고, 외부 서버(300)와 TCP 연결을 통해 에러가 발생된 청크 데이터를 수신할 수 있다. For example, assuming that an error occurs in 5 chunk data out of 100 chunk data in total, as described above, the number of retransmission requests is 20 times. That is, the processor 120 transmits a request for re-transmitting the chunk data having an error for 20 times to the external device 200 and the external server 300 through a multicast method based on a User Datagram Protocol (UDP) connection, Nevertheless, if the reception of the errored chunk data fails, it is possible to receive the errored chunk data through the TCP connection with the external server 300 without performing the 21st retransmission request through the multicast method.

TCP 연결을 통해 데이터를 수신하는 방법은 UDP 연결에 기초한 멀티캐스트 방식을 통해 데이터를 수신하는 방법보다 데이터 수신 확률이 높으나 외부 서버(300)에 부하가 발생될 수 있으므로, 프로세서(120)는 재 전송 요청 횟수 동안 멀티캐스트 방식을 통해 에러가 발생된 청크 데이터의 재 전송을 요청하고 그럼에도 데이터 수신에 실패하는 경우 불필요한 지연을 방지하기 위해 TCP 연결을 시도할 수 있다.The method of receiving data through the TCP connection has a higher probability of receiving data than the method of receiving data through the multicast method based on the UDP connection, but since the load may be generated on the external server 300, the processor 120 retransmits During the number of requests, it is possible to request a retransmission of an errored chunk data through a multicast method, and nevertheless, if data reception fails, a TCP connection may be attempted to prevent unnecessary delay.

한편, 전자 장치(100)가 에러가 발생된 데이터의 재 전송을 요청하여 데이터를 재 수신하는 실시 예에 관하여 상술하였으며, 이하에서는 전자 장치(100)가 외부 장치(200)로 데이터를 재 전송하는 실시 예에 관하여 설명하도록 한다.Meanwhile, an embodiment in which the electronic device 100 requests retransmission of the data in which an error occurs and re-receives the data has been described above. Hereinafter, the electronic device 100 retransmits data to the external device 200. The embodiments will be described.

본 개시의 일 실시 예에 따르면, 프로세서(120)는 데이터의 수신 성공 응답을 외부 서버(300) 및 외부 장치(200)에 전송할 수 있다. 프로세서(120)는 데이터의 수신 성공 응답을 청크 단위로 전송할 수 있다.According to an embodiment of the present disclosure, the processor 120 may transmit a response of successful reception of data to the external server 300 and the external device 200. The processor 120 may transmit a response of successful reception of data in chunk units.

구체적으로, 프로세서(120)는 외부 서버(300)로부터 전송되는 데이터 중 에러가 발생되지 않은 데이터의 식별 정보를 제1 멀티캐스트 주소를 통해 외부 서버(300) 및 외부 장치(200)에 멀티캐스트 할 수 있다. 한편, 동일한 데이터 수신에 성공한 외부 장치(200)는 별도의 데이터 수신 성공 응답을 전송하지 않을 수 있다. 예를 들어, 제1 장치 및 제2 장치가 제1 청크 데이터 수신에 성공한 경우를 가정한다. 임의의 시간 경과 후, 제1 장치가 제1 청크 데이터 수신 성공 응답을 제1 멀티캐스트 주소를 통해 전송하면, 제2 장치는 별도로 제1 청크 데이터 수신 성공 응답을 전송하지 않을 수 있다. 하나의 장치라도 제1 청크 데이터 수신에 성공하면 이후 해당 장치는 제1 청크 데이터 수신에 실패한 장치에 제1 청크 데이터를 전송할 수 있으므로, 최초의 데이터 수신 성공 응답이 전송되면 나머지 장치는 성공 응답을 전송할 필요는 없다. 다만, 이에 한정되는 것은 아니며 데이터 수신에 성공한 모든 장치가 성공 응답을 전송할 수도 있다. Specifically, the processor 120 may multicast the identification information of the data in which no error occurs among the data transmitted from the external server 300 to the external server 300 and the external device 200 through the first multicast address. Can be. Meanwhile, the external device 200 that has successfully received 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 have successfully received the first chunk data. After a certain time, when the first device transmits the first chunk data reception success response through the first multicast address, the second device may not separately transmit the first chunk data reception success response. If one device succeeds in receiving the first chunk data, the corresponding device can then transmit the first chunk data to the device that has failed to receive the first chunk data, so when the first data reception success response is transmitted, the other devices send a success response. There is no need. However, the present invention is not limited thereto, and all devices that successfully receive data may transmit a success response.

이후, 프로세서(120)는 외부 장치(200)로부터 제1 멀티캐스트 주소를 통해 에러가 발생되지 않은 데이터의 식별 정보, 해당 데이터에 대한 전송 요청 및 제3 멀티캐스트 주소가 수신되면, 에러가 발생되지 않은 데이터를 제3 멀티캐스트 주소를 통해 외부 장치(200) 및 외부 서버(300)로 멀티캐스트 할 수 있다. 여기서, 에러가 발생되지 않은 데이터란, 프로세서(120)는 정상적으로 데이터 수신에 성공하였으나, 적어도 하나의 외부 장치(200)에서 에러가 발생된 데이터이며, 청크 단위의 데이터일 수 있다. 제3 멀티캐스트 주소는, 외부 장치(200)에서 생성된 주소이며, 제1 멀티캐스트 주소와 상이한 주소이다. 제3 멀티캐스트 주소는, 제2 멀티캐스트 주소와 동일하거나 상이할 수도 있다.Thereafter, when the processor 120 receives identification information of data for which no error has occurred, a request for transmission of the corresponding data, and a third multicast address from the external device 200 through the first multicast address, an error is not generated. Unused data may be multicast to the external device 200 and the external server 300 through the third multicast address. Here, the data in which an error has not occurred is data in which the processor 120 has successfully received data, but an error has occurred in at least one external device 200 and may be chunk data. 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.

예를 들어, 프로세서(120)는 외부 장치(200)로부터 제1 멀티캐스트 주소를 통해 특정 데이터 전송 요청을 수신하는 경우를 상정한다. 우선, 프로세서(120)는 해당 데이터가 전자 장치(100)에서 정상적으로 수신되었는지 여부를 식별할 수 있다. 해당 데이터가 정상적으로 수신된 경우, 프로세서(120)는 전자 장치(100)의 연산량에 기초하여 데이터 전송 가능 여부를 식별할 수 있다. 예를 들어, 프로세서(120)는 현재 연산량이 기설정된 임계치 이하인 경우, 데이터 전송 가능한 상태로 식별할 수 있다. 따라서, 프로세서(120)는 제3 멀티캐스트 주소에 접속하여 해당 데이터를 제3 멀티캐스트 주소를 통해 외부 장치(200) 및 외부 서버(300)로 전송할 수 있다. 다만, 외부 서버(300)가 전자 장치(100)보다 먼저 해당 데이터를 제3 멀티캐스트 주소를 통해 외부 장치(200)로 전송한 경우, 프로세서(120)는 해당 데이터를 전송하지 않을 수 있다.For example, it is assumed that the processor 120 receives a specific data transmission request through the first multicast address from the external device 200. First, the processor 120 may identify whether the corresponding data is normally received by the electronic device 100. When the corresponding data is normally received, the processor 120 may identify whether data transmission is possible based on the calculation amount of the electronic device 100. For example, the processor 120 may identify a state in which data transmission is possible when the current computation amount is equal to or less than a preset threshold. Accordingly, the processor 120 may access the third multicast address and transmit the corresponding data to the external device 200 and the external server 300 through the third multicast address. However, when the external server 300 transmits the corresponding data to the external device 200 through the third multicast address before the electronic device 100, the processor 120 may not transmit the corresponding data.

한편, 상술한 데이터는 도커 이미지(Docker Image) 데이터일 수 있으나, 이에 한정되는 것은 아니다.Meanwhile, the above-described data may be Docker Image data, but is not limited thereto.

한편, 전자 장치(100)는 에지 디바이스로 구현되는 경우를 상정하여 상술하였으나, 전자 장치(100)는 단말 장치로 구현될 수도 있음은 물론이다.On the other hand, the electronic device 100 has been described above assuming a case of being implemented as an edge device, but of course, the electronic device 100 may be implemented as a terminal device.

본 개시의 상술한 실시 예들은 중앙 서버가 에지 디바이스에 제어 명령 또는 데이터를 전송하는 시나리오에 적용될 수 있다. 또한, 본 개시의 실시 예들은 동일한 교육용 컨텐츠를 태블릿과 같은 복수의 전자 장치에 배포하는 시나리오, 복수의 장치의 펌웨어(firmware)를 업데이트하는 시나리오 등 복수의 장치에 동일한 데이터를 신뢰할 수 있게 전송해야 하는 다양한 시나리오에 적용될 수 있다.The above-described embodiments of the present disclosure can be applied to a scenario in which a central server transmits control commands or data to an edge device. In addition, embodiments of the present disclosure are required to reliably transmit the same data to a plurality of devices, such as a scenario in which the same educational content is distributed to a plurality of electronic devices such as a tablet and a scenario in which firmware of a plurality of devices is updated. It can be applied to various scenarios.

도 3은 전자 장치의 세부 구성을 설명하기 위한 블록도이다. 3 is a block diagram illustrating a detailed configuration of an electronic device.

도 3에 따르면, 전자 장치(100)는 통신부(110), 프로세서(120) 및 저장부(130)를 포함한다. 도 3에 도시된 구성 중 도 2에 도시된 구성과 중복되는 부분에 대해서는 자세한 설명을 생략하도록 한다.According to FIG. 3, the electronic device 100 includes a communication unit 110, a processor 120, and a storage unit 130. Part of the configuration shown in FIG. 3 that overlaps with the configuration shown in FIG. 2 will be omitted.

통신부(110)는 외부 서버(300) 및 외부 장치(200)와 데이터를 송수신할 수 있는 구성이다. 통신부(110)는 와이파이 모듈(미도시), 이더넷 모듈(미도시), LAN(Local Area Network) 모듈, 무선 통신 모듈(미도시) 등을 포함할 수 있다. 여기서, 각 통신 모듈은 적어도 하나의 하드웨어 칩 형태로 구현될 수 있다. 무선 통신 모듈은 상술한 통신 방식 이외에 지그비(zigbee), 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), LTE-A(LTE Advanced), 4G(4th Generation), 5G(5th Generation)등과 같은 다양한 무선 통신 규격에 따라 통신을 수행하는 적어도 하나의 통신 칩을 포함할 수 있다. 다만 이는 일 실시 예에 불과하며 통신부(110)는 외부 장치(200) 또는 외부 서버(300)와 통신하는 경우 다양한 통신 모듈 중 적어도 하나의 통신 모듈을 이용할 수 있다.The communication unit 110 is a configuration capable of transmitting and receiving data to and from the external server 300 and the external device 200. The communication unit 110 may include a Wi-Fi module (not shown), an Ethernet module (not shown), a local area network (LAN) module, and a wireless communication module (not shown). Here, each communication module may be implemented in the form of at least one hardware chip. The wireless communication module includes Zigbee, 3G (3rd Generation), 3GPP (3rd Generation Partnership Project), LTE (Long Term Evolution), LTE-A (LTE Advanced), 4G (4th Generation), 5G in addition to the above-described communication methods It may include at least one communication chip that performs communication according to various wireless communication standards such as (5th Generation). However, this is only an example, and the communication unit 110 may use at least one communication module among various communication modules when communicating with the external device 200 or the external server 300.

프로세서(120)는 저장부(130)에 저장된 각종 프로그램을 이용하여 전자 장치(100)의 동작을 전반적으로 제어한다.The processor 120 controls overall operations of the electronic device 100 using various programs stored in the storage 130.

구체적으로, 프로세서(120)는 RAM(121), ROM(122), 메인 CPU(123), 제1 내지 n 인터페이스(124-1 ~ 124-n), 버스(125)를 포함한다.Specifically, the processor 120 includes a RAM 121, a ROM 122, a main CPU 123, first to n interfaces 124-1 to 124-n, and a bus 125.

RAM(121), ROM(122), 메인 CPU(123), 제1 내지 n 인터페이스(124-1 ~ 124-n) 등은 버스(125)를 통해 서로 연결될 수 있다.The RAM 121, the ROM 122, the main CPU 123, and the first to n interfaces 124-1 to 124-n may be connected to each other through the bus 125.

ROM(122)에는 시스템 부팅을 위한 명령어 세트 등이 저장된다. 턴온 명령이 입력되어 전원이 공급되면, 메인 CPU(123)는 ROM(122)에 저장된 명령어에 따라 저장부(130)에 저장된 O/S를 RAM(121)에 복사하고, O/S를 실행시켜 시스템을 부팅시킨다. 부팅이 완료되면, 메인 CPU(123)는 저장부(130)에 저장된 각종 어플리케이션 프로그램을 RAM(121)에 복사하고, RAM(121)에 복사된 어플리케이션 프로그램을 실행시켜 각종 동작을 수행한다.The ROM 122 stores a set of instructions for booting the system. When the turn-on command is input and power is supplied, the main CPU 123 copies the O/S stored in the storage unit 130 to the RAM 121 according to the command stored in the ROM 122, and executes the O/S. Boot the system. When the booting is completed, the main CPU 123 copies various application programs stored in the storage unit 130 to the RAM 121 and executes the application programs copied to the RAM 121 to perform various operations.

메인 CPU(123)는 저장부(130)에 액세스하여, 저장부(130)에 저장된 O/S를 이용하여 부팅을 수행한다. 그리고, 저장부(130)에 저장된 각종 프로그램, 컨텐츠 데이터 등을 이용하여 다양한 동작을 수행한다.The main CPU 123 accesses the storage unit 130 to boot using the O/S stored in the storage unit 130. Then, various operations are performed using various programs and content data stored in the storage unit 130.

제1 내지 n 인터페이스(124-1 내지 124-n)는 상술한 각종 구성 요소들과 연결된다. 인터페이스들 중 하나는 네트워크를 통해 외부 장치와 연결되는 네트워크 인터페이스가 될 수도 있다.The first to n interfaces 124-1 to 124-n are connected to various components described above. One of the interfaces may be a network interface connected to an external device through a network.

저장부(130)는 외부 서버(300) 또는 외부 장치(200) 중 적어도 하나로부터 전송된 청크 데이터를 저장할 수 있다.The storage unit 130 may store chunk data transmitted from at least one of the external server 300 or the external device 200.

저장부(130)는 프로세서(120)에 포함된 롬(ROM)(예를 들어, EEPROM(electrically erasable programmable read-only memory)), 램(RAM) 등의 내부 메모리로 구현되거나, 프로세서(120)와 별도의 메모리로 구현될 수도 있다. 이 경우, 저장부(130)는 데이터 저장 용도에 따라 전자 장치(100)에 임베디드된 메모리 형태로 구현되거나, 전자 장치(100)에 탈부착이 가능한 메모리 형태로 구현될 수도 있다. 예를 들어, 전자 장치(100)의 구동을 위한 데이터의 경우 전자 장치(100)에 임베디드된 메모리에 저장되고, 전자 장치(100)의 확장 기능을 위한 데이터의 경우 전자 장치(100)에 탈부착이 가능한 메모리에 저장될 수 있다. 한편, 전자 장치(100)에 임베디드된 메모리의 경우 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비휘발성 메모리(non-volatile Memory)(예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, 플래시 메모리(예: NAND flash 또는 NOR flash 등), 하드 드라이브, 또는 솔리드 스테이트 드라이브(solid state drive(SSD)) 중 적어도 하나로 구현되고, 전자 장치(100)에 탈부착이 가능한 메모리의 경우 메모리 카드(예를 들어, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital), MMC(multi-media card) 등), USB 포트에 연결 가능한 외부 메모리(예를 들어, USB 메모리) 등과 같은 형태로 구현될 수 있다.The storage unit 130 is implemented as an internal memory such as a ROM (eg, electrically erasable programmable read-only memory (EEPROM)) or RAM included in the processor 120, or the processor 120 And a separate memory. In this case, the storage unit 130 may be implemented in the form of a memory embedded in the electronic device 100 according to a data storage purpose, or may be implemented in a form of a memory that is detachable to the electronic device 100. For example, data for driving the electronic device 100 is stored in a memory embedded in the electronic device 100, and data for an extension function of the electronic device 100 is detachable from the electronic device 100. Can be stored in memory as much as possible. Meanwhile, in the case of a memory embedded in the electronic device 100, volatile memory (for example, dynamic RAM (DRAM), static RAM (SRAM), or synchronous dynamic RAM (SDRAM)), non-volatile memory ( Examples: 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 (e.g. NAND flash or NOR flash, etc.) ), a hard drive, or at least one of a solid state drive (SSD), and a memory card (for example, CF (compact flash), SD (SD), for removable memory in the electronic device 100) Secure digital (micro-SD), micro secure digital (Mini-SD), mini secure digital (SD), extreme digital (xD), multi-media card (MMC), etc., external memory that can be connected to a USB port (for example, USB memory).

특히, 저장부(130)는 멀티캐스트 주소 정보, 에러가 발생된 것으로 식별된 청크 데이터에 대한 식별 정보, 체크섬 등을 포함할 수 있다.In particular, the storage unit 130 may include multicast address information, identification information for chunk data identified as having an error, a checksum, and the like.

도 4는 본 개시의 일 실시 예에 따른 제1 멀티캐스트 주소 및 제2 멀티캐스트 주소를 통해 데이터 재 수신 및 재 전송을 설명하기 위한 도면이다.4 is a diagram illustrating data re-reception and re-transmission through a first multicast address and a second multicast address according to an embodiment of the present disclosure.

서버(300)는 제1 청크 데이터 및 제2 청크 데이터를 제1 멀티캐스트 주소를 통해 제1 장치(400-1), 제2 장치(400-2) 및 제3 장치(400-3)로 전송할 수 있다(S410). 여기서, 서버(300), 제1 장치(400-1), 제2 장치(400-2) 및 제3 장치(400-3)는 하나의 그룹으로서 제1 멀티캐스트 주소에 접속되어 있으므로, 서버(300)가 제1 청크 데이터 및 제2 청크 데이터를 제1 멀티캐스트 주소를 목적지 정보로 멀티캐스트하는 경우, 제1 청크 데이터 및 제2 청크 데이터는 제1 장치(400-1), 제2 장치(400-2) 및 제3 장치(400-3)로 전송될 수 있다.The server 300 transmits the first chunk data and the second chunk data to the first device 400-1, the second device 400-2, and the third device 400-3 through the first multicast address. It can be (S410). Here, since 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, the server ( When the 300) multicasts the first chunk data and the second chunk data to the first multicast address as destination information, the first chunk data and the second chunk data include the first device 400-1 and the second device ( 400-2) and the third device 400-3.

이후, 제1 장치(400-1)는 제1 청크 데이터 및 제2 청크 데이터를 정상적으로 수신하고, 제2 장치(400-2) 및 제3 장치(400-3)는 제1 청크 데이터를 정상적으로 수신하였으나, 제2 청크 데이터의 수신에 에러가 발생된 상황을 상정한다.Thereafter, 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. However, it is assumed that an error occurs in the reception of the second chunk data.

제2 장치(400-2) 및 제3 장치(400-3)는 에러가 발생된 데이터가 제2 청크 데이터임을 식별하고, 제2 장치(400-2) 또는 제3 장치(400-3)는 제1 멀티캐스트 주소와 상이한 제2 멀티캐스트 주소를 생성할 수 있다. 도 4에서는 제2 장치(400-2)가 제2 멀티캐스트 주소를 생성한 것으로 가정한다. The second device 400-2 and the third device 400-3 identify that the data in which the error occurred is the second chunk data, and the second device 400-2 or the third device 400-3 is A second multicast address different from the first multicast address may be generated. In FIG. 4, it is assumed that the second device 400-2 has generated a second multicast address.

제2 장치(400-2)는 생성된 제2 멀티캐스트 주소 정보 및 에러가 발생된 제2 청크 데이터의 식별 정보에 해당되는 Chunk #2를 제1 멀티캐스트 주소를 통해 서버(300), 제1 장치(400-1) 및 제3 장치(400-3)로 전송할 수 있다(S420). The second device 400-2 generates the second multicast address information and the Chunk #2 corresponding to the identification information of the second chunk data in which the error occurred through the first multicast address of the server 300 and the first. It may be transmitted to the device 400-1 and the third device 400-3 (S420).

이후, 제3 장치(400-3)는 제2 청크 데이터를 재 수신 받기 위해 제2 장치(400-2)로부터 생성되어 전송된 제2 멀티캐스트 주소에 접속할 수 있다(S430). 제3 장치(400-3)는 별도의 멀티캐스트 주소를 생성하지 않고, 제2 장치(400-2)가 생성한 멀티캐스트 주소에 접속하여 제2 청크 데이터를 재 수신 받음으로써 연산량이 감소될 수 있다. 또한, 서버(300) 또는 제1 장치(400-1)는 제3 장치(400-3)에 별도로 제2 청크 데이터를 전송할 필요가 없다.Thereafter, the third device 400-3 may access the second multicast address generated and transmitted from the second device 400-2 in order to receive the second chunk data again (S430 ). The third device 400-3 does not generate a separate multicast address, and may access the multicast address generated by the second device 400-2 to receive the second chunk data again, thereby reducing the computation amount. have. In addition, the server 300 or the first device 400-1 does not need to separately transmit second chunk data to the third device 400-3.

또한, 제1 장치(400-2) 및 서버(300)는 자신의 연산량을 확인하여 제2 청크 데이터 전송 가능 여부를 식별할 수 있다(S440). 도 4에서 서버(300)는 제1 및 제2 청크 데이터 이외의 나머지 청크 데이터를 전송하고 있으므로 기설정된 임계치 연산량을 초과하여 제2 청크 데이터의 재 전송 불가능 상태인 경우로 상정한다. 따라서, 제1 장치(400-1)는 제2 멀티캐스트 주소에 접속하여 제2 멀티캐스트 주소를 통해 제2 청크 데이터를 전송할 수 있다(S450).In addition, the first device 400-2 and the server 300 may identify whether or not the second chunk data can be transmitted by checking their computation amount (S440 ). In FIG. 4, since the server 300 is transmitting the remaining chunk data other than the first and second chunk data, it is assumed that the second chunk data cannot be retransmitted in excess of a preset threshold calculation amount. Accordingly, the first device 400-1 may access the second multicast address and transmit the second chunk data through the second multicast address (S450 ).

여기서, 제3 장치(400-3)가 제2 멀티캐스트 주소에 접속한 후 제1 장치(400-1)가 제2 멀티캐스트 주소에 접속하는 것으로 설명하였으나, 제1 장치(400-1)가 제2 멀티캐스트 주소에 접속한 후 제3 장치(400-3)가 제2 멀티캐스트 주소에 접속하거나 제1 장치(400-1) 및 제3 장치(400-3)가 동시에 제2 멀티캐스트 주소에 접속할 수도 있음은 물론이다.Here, although the first device 400-1 is described as accessing the second multicast address after the third device 400-3 accesses the second multicast address, the first device 400-1 is After accessing the second multicast address, the third device 400-3 accesses the second multicast address, or the first device 400-1 and the third device 400-3 simultaneously access the second multicast address. Of course, you can also connect to.

한편, 서버(300)는 중앙 서버로서 서버(300)에 연결된 장치에서 생성되는 모든 멀티캐스트 주소에 접속할 수 있다.Meanwhile, the server 300 may access all multicast addresses generated by a device connected to the server 300 as a central server.

도 5는 본 개시의 일 실시 예에 따른 데이터 전송 및 재 전송 요청 과정을 설명하기 위한 시퀀스도이다.5 is a sequence diagram illustrating a data transmission and retransmission request process according to an embodiment of the present disclosure.

서버(300)는 제1 멀티캐스트 주소(505-1)를 통해 제1 청크 데이터를 전송할 수 있다(S510). 제1 멀티캐스트 주소(505-1)는 예를 들어, 239.0.0.10의 IP 주소일 수 있다. 여기서, 서버(300), 제1 장치(500-1), 제2 장치(500-2) 및 제3 장치(500-3)는 하나의 멀티캐스트 그룹으로서 239.0.0.10의 IP 주소에 접속되어 있을 수 있다. 따라서, 서버(300)는 목적지 정보를 제1 멀티캐스트 주소(505-1)로 설정하여 제1 청크 데이터를 전송하는 경우 제1 장치(500-1), 제2 장치(500-2) 및 제3 장치(500-3)에 제1 청크 데이터가 전송될 수 있다.The server 300 may transmit the first chunk data through the first multicast address 505-1 (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 are connected to the IP address of 239.0.0.10 as one multicast group. Can be. Therefore, the server 300 sets the destination information to the first multicast address 505-1 to transmit the first chunk data, the first device 500-1, the second device 500-2 and the The first chunk data may be transmitted to the 3 devices 500-3.

제1 청크 데이터를 정상적으로 수신한 제1 장치(500-1)는 제1 청크 데이터 전송 성공 알림을 제1 멀티캐스트 주소(505-1)를 통해 전송할 수 있다(S520). 구체적으로, 제1 장치(500-1)는 정상적으로 수신된 제1 청크 데이터의 식별 정보를 제1 멀티캐스트 주소(505-1)를 통해 서버(300), 제2 장치(500-2) 및 제3 장치(500-3)으로 멀티캐스트 할 수 있다.The first device 500-1 which has successfully received the first chunk data may transmit the first chunk data transmission success notification through the first multicast address 505-1 (S520 ). Specifically, the first device 500-1 receives the normally received first chunk data identification information through the first multicast address 505-1 server 300, the second device 500-2, and It can multicast to 3 devices 500-3.

제1 청크 데이터 수신에 에러가 발생된 제2 장치(500-2) 및 제3 장치(500-3)는 에러가 발생된 제1 청크 데이터의 식별 정보를 획득하고, 제2 장치(500-2) 또는 제3 장치(500-3)는 제1 멀티캐스트 주소(505-1)와 상이한 제2 멀티캐스트 주소(505-2)를 생성할 수 있다. The second device 500-2 having an error in receiving the first chunk data and the third device 500-3 acquire identification information of the first chunk data in which the error has occurred, and the second device 500-2. ) Or the third device 500-3 may generate a second multicast address 505-2 different from the first multicast address 505-1.

도 5와 같이, 제2 장치(500-2)는 제2 멀티캐스트 주소(505-2)를 생성할 수 있다(S530). 이후, 제2 장치(500-2)는 제1 멀티캐스트 주소(505-1)를 통해 생성된 제2 멀티캐스트 주소(505-2) 및 에러가 발생된 제1 청크 데이터의 식별 정보를 서버(300), 제1 장치(500-1) 및 제3 장치(500-3)로 전송할 수 있다(S540). 5, the second device 500-2 may generate a second multicast address 505-2 (S530). Subsequently, the second device 500-2 stores the identification information of the second multicast address 505-2 generated through the first multicast address 505-1 and the first chunk data in which an error occurs ( 300), the first device 500-1 and the third device 500-3 may be transmitted (S540).

이후, 제3 장치(500-3)는 에러가 발생된 제1 청크 데이터를 재 수신 받기 위해 제2 멀티캐스트 주소(505-2)에 접속할 수 있다(S550). 또한, 제1 장치(500-1)는 제1 청크 데이터를 전송하기 위해 제2 멀티캐스트 주소(505-2)에 접속할 수 있다(S560). Thereafter, the third device 500-3 may access the second multicast address 505-2 to receive the first chunk data in which the error occurred (S550 ). Also, the first device 500-1 may access the second multicast address 505-2 to transmit the first chunk data (S560 ).

이후, 제1 장치(500-1)는 제2 멀티캐스트 주소(505-2)를 통해 서버(300), 제2 장치(500-2) 및 제3 장치(500-3)로 제1 청크 데이터를 전송할 수 있다(S570). Thereafter, the first device 500-1 transmits the first chunk data to the server 300, the second device 500-2, and the third device 500-3 through the second multicast address 505-2. It may be transmitted (S570).

도 6은 본 개시의 일 실시 예에 따른 재 전송 리스트를 생성하여 데이터를 재 전송하는 동작을 설명하기 위한 도면이다.6 is a diagram for describing an operation of retransmitting data by generating a retransmission list according to an embodiment of the present disclosure.

서버(300)는 서버(300)에 연결된 복수의 전자 장치 각각으로부터 에러가 발생된 데이터에 관한 정보를 수신하여 재 전송 리스트(620)를 생성할 수 있다.The server 300 may generate information about the error-generated data from each of a plurality of electronic devices connected to the server 300 and generate a retransmission list 620.

구체적으로, 도 6a와 같이, 전자 장치 각각은 에러가 발생된 청크 데이터에 관한 리스트(610)를 생성할 수 있다. 도 6a에서 Chunk ID는 청크 데이터의 식별 정보를 나타내고, 청크 데이터에 관한 리스트(610)는 Chunk ID 정보 및 각 Chunk ID에 대응되는 에러 정보를 포함할 수 있다. 도 6a의 청크 데이터에 관한 리스트(610)는 제1 장치에서 생성된 리스트이며, 복수의 전자 장치 각각은 청크 데이터에 관한 리스트를 생성할 수 있다.Specifically, as shown in FIG. 6A, each of the electronic devices may generate a list 610 regarding the chunk data in which an error has occurred. In FIG. 6A, Chunk ID indicates identification information of chunk data, and the list 610 regarding chunk data may include Chunk ID information and error information corresponding to each Chunk ID. The chunk data list 610 of FIG. 6A is a list generated by the first device, and each of the plurality of electronic devices may generate a list of chunk data.

이후, 복수의 전자 장치 각각은 제1 멀티캐스트 주소를 통해 서버(300)로 생성된 리스트를 전송할 수 있다.Thereafter, each of the plurality of electronic devices may transmit the list generated to the server 300 through the first multicast address.

서버(300)는 복수의 전자 장치로부터 전송된 청크 데이터에 관한 리스트로부터 재 전송 청크 데이터에 관한 리스트(620)를 생성할 수 있다. 재 전송 청크 데이터에 관한 리스트(620)는 장치 식별 정보(Device ID) 및 각 장치에서 발생된 에러 데이터 정보 즉, 재 전송이 요구되는 청크 정보를 포함할 수 있다.The server 300 may generate a list 620 of retransmitted chunk data from a list of chunk data transmitted from a plurality of electronic devices. The retransmission chunk data list 620 may include device identification information (Device ID) and error data information generated in each device, that is, chunk information for which retransmission is required.

예를 들어, 서버(300)는 재 전송 청크 데이터에 관한 리스트(620)를 통해 제1 장치에서 발생된 에러 청크 데이터는 제2 청크 데이터이고, 제2 장치에서 발생된 에러 청크 데이터는 제3 및 제10 청크 데이터이고, 제3 장치에서는 에러가 발생되지 않았으며, 제n 장치에서 발생된 에러 청크 데이터는 제5 및 제9 청크 데이터임을 식별할 수 있다. For example, the server 300 through the list 620 regarding the retransmission chunk data, the error chunk data generated in the first device is the second chunk data, and the error chunk data generated in the second device is the third and It can be identified that the 10th chunk data, no error is generated in the third device, and the error chunk data generated in the nth device are the fifth and ninth chunk data.

이후, 서버(300)는 제1 내지 제n 장치에서 발생된 에러 청크 데이터의 합집합에 해당되는 청크 데이터를 제1 멀티캐스트 주소와 상이한 제2 멀티캐스트 주소를 통해 전송할 수 있다.Thereafter, the server 300 may transmit the chunk data corresponding to the union of the error chunk data generated in the first to nth devices through a second multicast address different from the first multicast address.

예를 들어, 도 6b의 경우, 서버(300)는 제2, 3, 5, 9 및 10 청크 데이터를 제2 멀티캐스트 주소를 통해 에러가 발생된 제1, 2 및 제n 장치로 재 전송할 수 있다. 에러가 발생된 제1, 2 및 제n 장치는 제2 멀티캐스트 주소에 접속되어 있으므로 이와 같은 재 전송 데이터를 수신할 수 있다.For example, in FIG. 6B, the server 300 may retransmit the second, 3, 5, 9, and 10 chunk data to the first, second, and nth device in which an error occurs through the second multicast address. have. The first, second, and nth devices in which an error has occurred are connected to the second multicast address and thus can receive such retransmission data.

도 6에서는 서버(300)가 각 전자 장치에서 에러가 발생된 청크 데이터에 관한 정보를 합산하여 한 번에 청크 데이터를 재 전송하는 것으로 상술하였으나, 서버(300)는 각 전자 장치로부터 청크 데이터의 재 전송 요청이 있는 경우, 모든 청크 데이터 정보를 합산하지 않고 실시간으로 해당 청크 데이터를 재 전송할 수도 있다.In FIG. 6, it is described that the server 300 re-transmits the chunk data at one time by summing up information on the chunk data in which an error occurs in each electronic device, but the server 300 re-creates the chunk data from each electronic device. If there is a transmission request, the chunk data may be retransmitted in real time without summing all the chunk data information.

또한, 서버(300)가 아닌 전자 장치가 다른 전자 장치로 청크 데이터를 전송할 수 있음은 물론이다.In addition, it is needless to say that an electronic device other than the server 300 may transmit chunk data to another electronic device.

도 7은 본 개시의 일 실시 예에 따른 체크섬(Checksum)에 기초하여 수신에 실패한 청크 데이터를 식별하는 동작을 설명하기 위한 도면이다.7 is a view for explaining an operation of identifying chunk data that has failed to receive based on a checksum according to an embodiment of the present disclosure.

여기서, 체크섬이란 데이터의 정확성을 검사하기 위한 용도로 사용되는 합계로서 오류 검출 방식의 하나이다. Here, the checksum is a sum used for checking the accuracy of data, and is one of error detection methods.

전자 장치(100)는 특정 청크 데이터를 수신하고, 청크 데이터에 포함된 체크섬과 수신된 청크 데이터의 바이트를 비교하여 청크 데이터에 에러가 발생되었는지 여부를 식별할 수 있다. 전자 장치(100)는 체크 섬에 기초하여 데이터 수신의 에러 발생 여부를 식별할 수 있고, 에러가 발생된 청크 데이터의 식별 정보를 식별할 수도 있다.The electronic device 100 may receive a specific chunk data and compare the checksum included in the chunk data with bytes of the received chunk data to identify whether an error has occurred in the chunk data. The electronic device 100 may identify whether an error occurs in data reception based on the checksum, or may identify identification information of the chunk data in which the error occurred.

도 7에 따르면, 100MB의 데이터를 1MB 단위로 100개의 청크 데이터로 분할된 경우를 상정한다. 전자 장치(100)는 마지막 청크 데이터까지의 바이트 합계와 마지막 청크 데이터의 체크섬을 비교하여 데이터 수신의 에러 발생 여부를 식별할 수 있다. 예를 들어, 제99 청크 데이터를 수신한 상태에서의 바이트 합계가 99000 미만인 경우 전자 장치(100)는 적어도 하나의 청크 데이터 수신에 에러가 발생한 상태임을 식별할 수 있다.According to FIG. 7, it is assumed that 100 MB of data is divided into 100 chunk data in 1 MB increments. The electronic device 100 may compare the sum of bytes up to the last chunk data and the checksum of the last chunk data to identify whether an error occurs in data reception. For example, when the sum of bytes in the state of receiving the 99th chunk data is less than 99000, the electronic device 100 may identify that an error has occurred in receiving at least one chunk data.

또한, 전자 장치(100)는 각 청크 데이터의 체크섬에 기초하여 에러가 발생된 청크 데이터의 식별 정보를 식별할 수 있다. 구체적으로, 각 청크 데이터를 수신한 상태의 바이트 합계와 해당 청크 데이터의 체크섬을 비교하여 에러가 발생된 청크 데이터의 식별 정보를 식별할 수 있다. 예를 들어, 제1 청크 데이터를 수신한 상태에서 데이터 수신에 에러가 발생한 상태가 식별되지 않았으나, 제2 청크 데이터를 수신한 상태에서의 바이트 합계가 2000미만인 경우, 전자 장치(100)는 제2 청크 데이터 수신에 에러가 발생한 것으로 식별할 수 있다.Also, the electronic device 100 may identify identification information of the chunk data in which an error occurs based on the checksum of each chunk data. Specifically, it is possible to identify the identification information of the chunk data in which an error occurs by comparing the sum of bytes in the state of receiving each chunk data and the checksum of the chunk data. For example, when a state in which an error occurs in data reception in a state in which the first chunk data is received is not identified, when the sum of bytes in the state in which the second chunk data is received is less than 2000, the electronic device 100 may display the second It can be identified that an error has occurred in receiving chunk data.

도 8은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.8 is a flowchart illustrating a method of controlling an electronic device according to an embodiment of the present disclosure.

전자 장치(100)는 제1 멀티캐스트 주소에 접속하여, 제1 멀티캐스트 주소를 통해 외부 서버(300)로부터 전송되는 데이터를 수신할 수 있다(S810).The electronic device 100 may access the first multicast address and receive data transmitted from the external server 300 through the first multicast address (S810).

전자 장치(100)는 수신된 데이터에 기초하여 데이터 수신에 에러가 발생된 것으로 식별되면, 제1 멀티캐스트 주소와 상이한 제2 멀티캐스트 주소를 생성하고, 생성된 제2 멀티캐스트 주소 및 에러가 발생된 데이터에 대한 정보를 제1 멀티캐스트 주소를 통해 외부 서버(300) 및 외부 장치(200)에 전송할 수 있다(S820).When it is identified that an error has occurred in data reception based on the received data, the electronic device 100 generates a second multicast address different from the first multicast address, and the generated second multicast address and error occurs Information about the data may be transmitted to the external server 300 and the external device 200 through the first multicast address (S820).

구체적으로, 전자 장치(100)는 외부 서버(300)로부터 청크(chunk) 단위로 전송되는 데이터를 수신하고, 수신된 데이터에 기초하여 에러가 발생된 것으로 식별된 청크 데이터에 대한 식별 정보를 제1 멀티캐스트 주소를 통해 외부 서버(300) 및 외부 장치(200)에 전송할 수 있다.Specifically, the electronic device 100 receives data transmitted in chunk units from the external server 300, and first identifies identification information for the chunk data identified as having an error based on the received data. It can be transmitted to the external server 300 and the external device 200 through the multicast address.

전자 장치(100)는 청크 단위의 데이터 각각에 포함된 체크섬(Checksum)에 기초하여 수신에 실패한 청크 데이터를 식별할 수 있다.The electronic device 100 may identify chunk data that has failed to be received based on a checksum included in each chunk data.

전자 장치(100)는 제2 멀티캐스트 주소에 접속하여, 외부 서버(300) 또는 외부 장치(200) 중 적어도 하나로부터 제2 멀티캐스트 주소를 통해 에러가 발생된 데이터를 수신할 수 있다(S830).The electronic device 100 may access the second multicast address and receive data having an error through the second multicast address from at least one of the external server 300 or the external device 200 (S830). .

한편, 전자 장치(100)는 전체 청크 데이터 개수 및 에러가 발생된 청크 데이터 개수에 기초하여 제2 멀티캐스트 주소를 통한 재 전송 요청 횟수를 식별하고, 식별된 재 전송 요청 횟수 동안 에러가 발생된 청크 데이터 수신을 실패하면, 외부 서버(300) 또는 외부 장치(200) 중 적어도 하나에 TCP(Transmission Control Protocol) 연결을 요청하고, TCP 연결을 통해 에러가 발생된 청크 데이터를 유니캐스트 방식으로 재 수신할 수 있다.Meanwhile, the electronic device 100 identifies the number of retransmission requests through the second multicast address based on the total number of chunk data and the number of chunk data in which an error occurs, and the chunk in which an error occurs during the identified number of retransmission requests If the data reception fails, a request is made to a Transmission Control Protocol (TCP) connection to at least one of the external server 300 or the external device 200, and the chunk data having an error through the TCP connection is re-received in a unicast manner. Can be.

여기서, 재 전송 요청 횟수는, 전체 청크 데이터 개수를 에러가 발생된 청크 데이터 개수로 나눈 값일 수 있다.Here, the number of retransmission requests may be a value obtained by dividing the total number of chunk data by the number of chunk data in which an error occurs.

한편, 전자 장치(100)는 외부 서버(300)로부터 전송되는 데이터 중 에러가 발생되지 않은 데이터의 식별 정보를 제1 멀티캐스트 주소를 통해 외부 서버(300) 및 외부 장치(200)에 멀티캐스트 할 수 있다.Meanwhile, the electronic device 100 multicasts the identification information of the data in which no error occurs among the data transmitted from the external server 300 to the external server 300 and the external device 200 through the first multicast address. Can be.

이후, 전자 장치(100)는 외부 장치(200)로부터 제1 멀티캐스트 주소를 통해 에러가 발생되지 않은 데이터의 식별 정보, 해당 데이터에 대한 전송 요청 및 제3 멀티캐스트 주소가 수신되면, 에러가 발생되지 않은 데이터를 제3 멀티캐스트 주소를 통해 외부 장치(200) 및 외부 서버(300)로 멀티캐스트 할 수 있다.Thereafter, when the electronic device 100 receives identification information of data for which no error has occurred through the first multicast address from the external device 200, a transmission request for the corresponding data, and a third multicast address, an error occurs. Uncast data may be multicast to the external device 200 and the external server 300 through the third multicast address.

각 단계의 상세 동작에 대해서는 상술한 바 있으므로 자세한 설명은 생략하도록 한다.The detailed operation of each step has been described above, so a detailed description thereof will be omitted.

한편, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 전자 장치에 설치 가능한 어플리케이션 형태로 구현될 수 있다. Meanwhile, the methods according to various embodiments of the present disclosure described above may be implemented in an application form that can be installed in an existing electronic device.

또한, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 전자 장치에 대한 소프트웨어 업그레이드, 또는 하드웨어 업그레이드 만으로도 구현될 수 있다. Further, the methods according to various embodiments of the present disclosure described above may be implemented only by software upgrade or hardware upgrade of an existing electronic device.

또한, 상술한 본 개시의 다양한 실시 예들은 전자 장치에 구비된 임베디드 서버, 또는 전자 장치 및 디스플레이 장치 중 적어도 하나의 외부 서버를 통해 수행되는 것도 가능하다. In addition, various embodiments of the present disclosure described above may be performed 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.

한편, 본 개시의 일시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.Meanwhile, according to a date and time example of the present disclosure, various embodiments described above may be implemented by software including instructions stored in a machine-readable storage media (machine). The device may include an electronic device according to the disclosed embodiments as a device capable of invoking a stored command from a storage medium and operable according to the called command. When the command is executed by the processor, the processor may directly Or, under the control of the processor, other components may be used to perform functions corresponding to the instructions, which may include code generated or executed by a compiler or interpreter. It may be provided in the form of a non-transitory storage medium, where'non-transitory' means that the storage medium does not contain a signal and is tangible, but the data is semi-permanent or Does not distinguish between temporary storage.

또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.Further, according to an embodiment of the present disclosure, a method according to various embodiments described above may be provided as being included in a computer program product. Computer program products are commodities that can be traded between sellers and buyers. The computer program product may be distributed online in the form of a device-readable storage medium (eg compact disc read only memory (CD-ROM)) or through an application store (eg Play StoreTM). In the case of online distribution, at least a portion of the computer program product may be stored at least temporarily on a storage medium such as a memory of a manufacturer's server, an application store's server, or a relay server, or may be temporarily generated.

또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 일부 경우에 있어 본 명세서에서 설명되는 실시 예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 동작을 수행할 수 있다.In addition, according to an embodiment of the present disclosure, various embodiments described above may be used in a recording medium readable by a computer or a similar device using software, hardware, or a combination thereof. Can be implemented in In some cases, the embodiments described herein may be implemented by the processor itself. According to the software implementation, embodiments such as procedures and functions described herein may be implemented as separate software modules. Each of the software modules can perform one or more functions and operations described herein.

한편, 상술한 다양한 실시 예들에 따른 기기의 프로세싱 동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium) 에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 기기에서의 처리 동작을 특정 기기가 수행하도록 한다. Meanwhile, computer instructions for performing a processing operation of a device according to various embodiments described above may be stored in a non-transitory computer-readable medium. The computer instructions stored in the non-transitory computer readable medium allow a specific device to perform a processing operation in the device according to various embodiments described above when executed by a processor of the specific device.

비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.The non-transitory computer-readable medium refers to a medium that stores data semi-permanently and that can be read by a device, rather than a medium that stores data for a short time, such as registers, caches, and memory. Specific examples of non-transitory computer-readable media may include CDs, DVDs, hard disks, Blu-ray disks, USBs, memory cards, and ROMs.

또한, 상술한 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.In addition, each of the components (for example, a module or a program) according to various embodiments described above may be composed of a singular or a plurality of entities, and some of the aforementioned sub-components may be omitted, or other sub-components may be omitted. Components may be further included in various embodiments. Alternatively or additionally, some components (eg, modules or programs) may be integrated into one entity, performing the same or similar functions performed by each corresponding component prior to integration. According to various embodiments, operations performed by a module, program, or other component may be sequentially, parallelly, repeatedly, or heuristically executed, at least some operations may be executed in a different order, omitted, or other operations may be added. Can be.

이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.Although the preferred embodiments of the present disclosure have been illustrated and described above, the present disclosure is not limited to the specific embodiments described above, and it is usually in the technical field belonging to the present disclosure without departing from the gist of the present disclosure claimed in the claims. Of course, various modifications can be implemented by a person who has knowledge of, and these modifications should not be individually understood from the technical idea or prospect of the present disclosure.

100 : 전자 장치 110 : 통신부
120 : 프로세서 130: 저장부
200 : 외부 장치 300: 서버
1000: 전자 시스템
100: electronic device 110: communication unit
120: processor 130: storage unit
200: external device 300: server
1000: electronic system

Claims (18)

통신부; 및
상기 통신부를 통해 제1 멀티캐스트 주소에 접속하여, 상기 제1 멀티캐스트 주소를 통해 외부 서버로부터 전송되는 데이터를 수신하고,
상기 수신된 데이터에 기초하여 데이터 수신에 에러가 발생된 것으로 식별되면 상기 제1 멀티캐스트 주소와 상이한 제2 멀티캐스트 주소를 생성하고, 상기 생성된 제2 멀티캐스트 주소 및 상기 에러가 발생된 데이터에 대한 정보를 상기 제1 멀티캐스트 주소를 통해 상기 외부 서버 및 외부 장치에 전송하고,
상기 통신부를 통해 상기 제2 멀티캐스트 주소에 접속하여, 상기 외부 서버 또는 상기 외부 장치 중 적어도 하나로부터 상기 제2 멀티캐스트 주소를 통해 상기 에러가 발생된 데이터를 수신하는 프로세서;를 포함하는 전자 장치.
Communication department; And
Access to a first multicast address through the communication unit, receive data transmitted from an external server through the first multicast address,
When it is identified that an error has occurred in data reception based on the received data, a second multicast address different from the first multicast address is generated, and the generated second multicast address and the error data are generated. Information to the external server and the external device through the first multicast address,
And a processor configured to access the second multicast address through the communication unit and receive the error-generated data from the external server or at least one of the external devices through the second multicast address.
제1항에 있어서,
상기 프로세서는,
상기 외부 서버로부터 청크(chunk) 단위로 전송되는 데이터를 수신하고, 상기 수신된 데이터에 기초하여 에러가 발생된 것으로 식별된 청크 데이터에 대한 식별 정보를 상기 제1 멀티캐스트 주소를 통해 상기 외부 서버 및 외부 장치에 전송하는, 전자 장치.
According to claim 1,
The processor,
Receiving data transmitted in chunk units from the external server, and based on the received data, identification information for the chunk data identified as having an error is generated through the first multicast address and the external server and An electronic device that transmits to an external device.
제2항에 있어서,
상기 프로세서는,
상기 청크 단위의 데이터 각각에 포함된 체크섬(Checksum)에 기초하여 수신에 실패한 청크 데이터를 식별하는, 전자 장치.
According to claim 2,
The processor,
An electronic device that identifies chunk data that has failed to be received based on a checksum included in each chunk data.
제2항에 있어서,
상기 프로세서는,
전체 청크 데이터 개수 및 상기 에러가 발생된 청크 데이터 개수에 기초하여 상기 제2 멀티캐스트 주소를 통한 재 전송 요청 횟수를 식별하고, 상기 식별된 재 전송 요청 횟수 동안 에러가 발생된 청크 데이터 수신을 실패하면, 상기 외부 서버 또는 상기 외부 장치 중 적어도 하나에 TCP(Transmission Control Protocol) 연결을 요청하고, 상기 TCP 연결을 통해 상기 에러가 발생된 청크 데이터를 유니캐스트 방식으로 재 수신하는, 전자 장치.
According to claim 2,
The processor,
If the number of re-transmission requests through the second multicast address is identified based on the total number of chunk data and the number of chunk data in which the error occurs, and the reception of the chunk data in which an error occurs during the identified number of re-transmission requests fails , Requesting a Transmission Control Protocol (TCP) connection to at least one of the external server or the external device, and re-receiving the chunk data in which the error occurred through the TCP connection in a unicast manner.
제4항에 있어서,
상기 재 전송 요청 횟수는,
상기 전체 청크 데이터 개수를 상기 에러가 발생된 청크 데이터 개수로 나눈 값인, 전자 장치.
The method of claim 4,
The number of retransmission requests,
An electronic device that is a value obtained by dividing the total number of chunk data by the number of chunk data in which the error occurs.
제1항에 있어서,
상기 프로세서는,
상기 외부 서버로부터 전송되는 데이터 중 에러가 발생되지 않은 데이터의 식별 정보를 상기 제1 멀티캐스트 주소를 통해 상기 외부 서버 및 상기 외부 장치에 멀티캐스트하는, 전자 장치.
According to claim 1,
The processor,
An electronic device for multicasting identification information of data for which no error has occurred among data transmitted from the external server to the external server and the external device through the first multicast address.
제6항에 있어서,
상기 프로세서는,
상기 외부 장치로부터 상기 제1 멀티캐스트 주소를 통해 상기 에러가 발생되지 않은 데이터의 식별 정보, 해당 데이터에 대한 전송 요청 및 제3 멀티캐스트 주소가 수신되면, 상기 에러가 발생되지 않은 데이터를 상기 제3 멀티캐스트 주소를 통해 상기 외부 장치 및 상기 외부 서버로 멀티캐스트하는, 전자 장치.
The method of claim 6,
The processor,
When the identification information of the data in which the error has not occurred, the transmission request for the data, and the third multicast address are received from the external device through the first multicast address, the data in which the error has not occurred is transmitted to the third An electronic device that multicasts to the external device and the external server through a multicast address.
제1 멀티캐스트 주소를 통해 제1 장치 및 제2 장치로 데이터를 멀티캐스트하는 서버;
제1 멀티캐스트 주소를 통해 상기 서버로부터 전송되는 데이터를 수신하고, 상기 수신된 데이터에 기초하여 데이터 수신에 에러가 발생된 것으로 식별되면 상기 제1 멀티캐스트 주소와 상이한 제2 멀티캐스트 주소를 생성하고, 상기 생성된 제2 멀티캐스트 주소 및 상기 에러가 발생된 데이터에 대한 정보를 상기 제1 멀티캐스트 주소를 통해 상기 서버 및 상기 제2 장치에 전송하는 제1 장치; 및
상기 서버로부터 전송되는 데이터를 수신하는 제2 장치;를 포함하고,
상기 서버 또는 상기 제2 장치는,
상기 제2 멀티캐스트 주소를 통해 상기 에러가 발생된 데이터를 상기 제1 장치로 멀티캐스트하는, 전자 시스템.
A server that multicasts data to the first device and the second device through the first multicast address;
When receiving data transmitted from the server through a first multicast address, and when it is identified that an error occurs in data reception based on the received data, a second multicast address different from the first multicast address is generated and , A first device that transmits information about the generated second multicast address and the error-generated data to the server and the second device through the first multicast address; And
It includes; a second device for receiving the data transmitted from the server;
The server or the second device,
And multicast the data in which the error occurred through the second multicast address to the first device.
제8항에 있어서,
상기 제2 장치는,
상기 서버로부터 청크 단위로 전송되는 데이터를 수신하고, 상기 수신된 데이터에 기초하여 에러가 발생된 것으로 식별된 청크 데이터에 대한 식별 정보를 상기 제1 멀티캐스트 주소를 통해 상기 서버 및 상기 제1 장치에 전송하는, 전자 시스템.
The method of claim 8,
The second device,
Receiving data transmitted in chunk units from the server, and based on the received data, identification information for chunk data identified as having an error is transmitted to the server and the first device through the first multicast address. Transmitting, electronic system.
제9항에 있어서,
상기 제2 장치는,
상기 청크 단위의 데이터 각각에 포함된 체크섬(Checksum)에 기초하여 수신에 실패한 청크 데이터를 식별하는, 전자 시스템.
The method of claim 9,
The second device,
An electronic system for identifying chunk data that has failed to receive based on a checksum included in each chunk data.
제8항에 있어서,
상기 제1 장치에서 에러가 발생된 데이터와 동일한 데이터의 수신에 에러가 발생된 것으로 식별되면 상기 제2 멀티캐스트 주소에 접속하여, 상기 서버 또는 상기 제2 장치 중 적어도 하나로부터 상기 제2 멀티캐스트 주소를 통해 상기 에러가 발생된 데이터를 수신하는 제3 장치;를 더 포함하는, 전자 시스템.
The method of claim 8,
If it is identified that an error has occurred in the reception of the same data as the error-generated data in the first device, the second multicast address is accessed from at least one of the server or the second device by accessing the second multicast address. And a third device that receives the data through which the error has occurred.
제1 멀티캐스트 주소에 접속하여, 상기 제1 멀티캐스트 주소를 통해 외부 서버로부터 전송되는 데이터를 수신하는 단계;
상기 수신된 데이터에 기초하여 데이터 수신에 에러가 발생된 것으로 식별되면 상기 제1 멀티캐스트 주소와 상이한 제2 멀티캐스트 주소를 생성하고, 상기 생성된 제2 멀티캐스트 주소 및 상기 에러가 발생된 데이터에 대한 정보를 상기 제1 멀티캐스트 주소를 통해 상기 외부 서버 및 외부 장치에 전송하는 단계; 및
상기 제2 멀티캐스트 주소에 접속하여, 상기 외부 서버 또는 상기 외부 장치 중 적어도 하나로부터 상기 제2 멀티캐스트 주소를 통해 상기 에러가 발생된 데이터를 수신하는 단계;를 포함하는 전자 장치의 제어 방법.
Accessing a first multicast address and receiving data transmitted from an external server through the first multicast address;
If it is identified that an error has occurred in data reception based on the received data, a second multicast address different from the first multicast address is generated, and the generated second multicast address and the error data are generated. Transmitting information on the external server and the external device through the first multicast address; And
And accessing the second multicast address to receive the error-generated data through the second multicast address from at least one of the external server or the external device.
제12항에 있어서,
상기 전송하는 단계는,
상기 외부 서버로부터 청크(chunk) 단위로 전송되는 데이터를 수신하고, 상기 수신된 데이터에 기초하여 에러가 발생된 것으로 식별된 청크 데이터에 대한 식별 정보를 상기 제1 멀티캐스트 주소를 통해 상기 외부 서버 및 외부 장치에 전송하는, 제어 방법.
The method of claim 12,
The transmitting step,
Receiving data transmitted in chunk units from the external server, and based on the received data, identification information for the chunk data identified as having an error is generated through the first multicast address and the external server and Control method to transmit to an external device.
제13항에 있어서,
상기 전송하는 단계는,
상기 청크 단위의 데이터 각각에 포함된 체크섬(Checksum)에 기초하여 수신에 실패한 청크 데이터를 식별하는, 제어 방법.
The method of claim 13,
The transmitting step,
A control method for identifying chunk data that has failed to receive based on a checksum included in each chunk data.
제13항에 있어서,
전체 청크 데이터 개수 및 상기 에러가 발생된 청크 데이터 개수에 기초하여 상기 제2 멀티캐스트 주소를 통한 재 전송 요청 횟수를 식별하고, 상기 식별된 재 전송 요청 횟수 동안 에러가 발생된 청크 데이터 수신을 실패하면, 상기 외부 서버 또는 상기 외부 장치 중 적어도 하나에 TCP(Transmission Control Protocol) 연결을 요청하고, 상기 TCP 연결을 통해 상기 에러가 발생된 청크 데이터를 유니캐스트 방식으로 재 수신하는 단계;를 더 포함하는 제어 방법.
The method of claim 13,
If the number of re-transmission requests through the second multicast address is identified based on the total number of chunk data and the number of chunk data in which the error occurs, and the reception of the chunk data in which an error occurs during the identified number of re-transmission requests fails , Requesting a Transmission Control Protocol (TCP) connection to at least one of the external server or the external device, and re-receiving the chunk data in which the error occurred through the TCP connection in a unicast manner. Way.
제15항에 있어서,
상기 재 전송 요청 횟수는,
상기 전체 청크 데이터 개수를 상기 에러가 발생된 청크 데이터 개수로 나눈 값인, 제어 방법.
The method of claim 15,
The number of retransmission requests,
The control method is a value obtained by dividing the total number of chunk data by the number of chunk data in which the error occurred.
제12항에 있어서,
상기 외부 서버로부터 전송되는 데이터 중 에러가 발생되지 않은 데이터의 식별 정보를 상기 제1 멀티캐스트 주소를 통해 상기 외부 서버 및 상기 외부 장치에 멀티캐스트하는 단계;를 더 포함하는 제어 방법.
The method of claim 12,
And multicasting the identification information of the data having no error among the data transmitted from the external server to the external server and the external device through the first multicast address.
제17항에 있어서,
상기 멀티캐스트하는 단계는,
상기 외부 장치로부터 상기 제1 멀티캐스트 주소를 통해 상기 에러가 발생되지 않은 데이터의 식별 정보, 해당 데이터에 대한 전송 요청 및 제3 멀티캐스트 주소가 수신되면, 상기 에러가 발생되지 않은 데이터를 상기 제3 멀티캐스트 주소를 통해 상기 외부 장치 및 상기 외부 서버로 멀티캐스트하는 단계;를 더 포함하는, 제어 방법.
The method of claim 17,
The multicasting step,
When the identification information of the data in which the error has not occurred, the transmission request for the data, and the third multicast address are received from the external device through the first multicast address, the data in which the error has not occurred is transmitted to the third And multicasting to the external device and the external server through a multicast address.
KR1020180156639A 2018-12-07 2018-12-07 Electronic device and control method thereof KR20200069520A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020180156639A KR20200069520A (en) 2018-12-07 2018-12-07 Electronic device and control method thereof
PCT/KR2019/003690 WO2020116719A1 (en) 2018-12-07 2019-03-29 Electronic device and controlling method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180156639A KR20200069520A (en) 2018-12-07 2018-12-07 Electronic device and control method thereof

Publications (1)

Publication Number Publication Date
KR20200069520A true KR20200069520A (en) 2020-06-17

Family

ID=70974272

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180156639A KR20200069520A (en) 2018-12-07 2018-12-07 Electronic device and control method thereof

Country Status (2)

Country Link
KR (1) KR20200069520A (en)
WO (1) WO2020116719A1 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4060281B2 (en) * 2004-03-04 2008-03-12 Kddi株式会社 COMMUNICATION SYSTEM, BACKUP SERVER, AND COMMUNICATION CONTROL DEVICE
US8031701B2 (en) * 2006-09-11 2011-10-04 Cisco Technology, Inc. Retransmission-based stream repair and stream join
US8813144B2 (en) * 2011-01-10 2014-08-19 Time Warner Cable Enterprises Llc Quality feedback mechanism for bandwidth allocation in a switched digital video system
JP6102214B2 (en) * 2012-11-22 2017-03-29 富士通株式会社 Transfer program, setting program, transmission program, transfer device, setting device, transmission device, transfer method, setting method, and transmission method
US9736059B2 (en) * 2015-04-06 2017-08-15 Verizon Digital Media Services Inc. Purging failover through application controlled transit selection

Also Published As

Publication number Publication date
WO2020116719A1 (en) 2020-06-11

Similar Documents

Publication Publication Date Title
KR101770498B1 (en) Method and device for checking health of link
US10375025B2 (en) Virtual private network implementation method and client device
US9106417B2 (en) Communication apparatus for transmission protocol processing and reception protocol processing
CN109428773B (en) Communication method and device
US20140082180A1 (en) Information processor apparatus, information processing method, and recording medium
CN104866290A (en) Method and device for data transmission
CN104317716B (en) Data transmission method and distributed node equipment between distributed node
WO2021134418A1 (en) Data checking method and apparatus
CN105812413B (en) Communication method and device
US20210392187A1 (en) Data transmission and network interface controller
CN109120385B (en) Data transmission method, device and system based on data transmission system
US20220188467A1 (en) Cloud server and method for controlling cloud server thereof
US20170005757A1 (en) Data transmission and feedback processing method and apparatus
WO2018088462A1 (en) Communication controller, communication control method, and program
US10135578B2 (en) Method of re-transmitting data and electronic device therefor
KR20200069520A (en) Electronic device and control method thereof
US10476919B2 (en) System and method for reliable messaging between application sessions across volatile networking conditions
US20210014006A1 (en) System and method for implementing a hybrid automatic repeat request process
US20230131484A1 (en) Communication apparatus, program, communication method, information processing method, information processing apparatus, and communication system
CN113746647B (en) Data transmission method, node, electronic device and readable storage medium
US20110270970A1 (en) Network device testing system and method
US20160188362A1 (en) Library apparatus for real-time process, and transmitting and receiving method thereof
JP6182779B1 (en) Transfer device, transfer method, and program
CN109274530B (en) TCP (Transmission control protocol) -based network data packet zero-error scene reproduction method and device
TWI511513B (en) Detection method in network system and related apparatus