1. Technical Field
Embodiments of the present disclosure relate to a method for transmitting data between electronic devices.
2. Description of Related Art
In a video conference between a plurality of networked electronic devices, video data transmitted between the electronic devices may be delayed or lost due to network congestion. Generally, two connection methods between the electronic devices in the video conference are used. In the first method, the electronic devices are connected in a point-to-point (P2P) architecture. And in the second method, the electronic devices are connected in a slave/master architecture (one electronic device is selected to be a master device). In the first method, network congestion may occur when a lot of electronic devices are connected to the network. In the second method, the master device cannot process the data transmission requests within an acceptable time when a lot of slave devices request the video data simultaneously. Therefore, a more efficient method for transmitting data between electronic devices is desired.
All of the processes described below may be embodied in, and fully automated via, functional code modules executed by one or more general purpose electronic devices or processors. The code modules may be stored in any type of non-transitory computer-readable medium or other storage device. Some or all of the methods may alternatively be embodied in specialized hardware. Depending on the embodiment, the non-transitory computer-readable medium may be a hard disk drive, a compact disc, a digital video disc, a tape drive or other storage medium.
In step S11, when one electronic device in the specified network sends out a conference connection request, the electronic device obtains an efficiency index (or called performance index) of each electronic device in the specified network. The efficiency index includes, but is not limited to, a central processing unit (CPU) speed index (hereinafter referred to as “CPU index”), a memory capacity index (hereinafter referred to as “memory index”), and a network bandwidth index. Different items of hardware have different weights in the efficiency index. For example, the efficiency index of the CPU of a type of “INTEL®-i7” is given a score of 700, the efficiency index of the CPU of a type of “INTEL®-i5” is 500, and the efficiency index of the CPU of a type of “INTEL®-i3” is 300. The efficiency index of the memory of a type of double data rate (DDR) 16 GB is 80, the efficiency index of the memory of a type of DDR 8 GB is 40, and the efficiency index of the memory of a type of DDR 4 GB is 20. The efficiency index of the network bandwidth of a 100 MB/second type is 200, the efficiency index of the network bandwidth of a 50 MB/second type is 100, and efficiency index of the network bandwidth of a 20 MB/second type is 40. In one embodiment, the efficiency index of the electronic device is obtained by calculating a sum of the efficiency indexes of the specified types of hardware (e.g., the CPU and the network bandwidth) of the electronic device.
As shown in
In the embodiment, the electronic device includes a display device, an input device, a storage device, and at least one processor. The electronic device may be a computer, a smart phone or a personal digital assistant (PDA). The display device may display video data in the video conference, and the input device may be a mouse or a keyboard used for input. The storage device may be a non-volatile computer storage chip that can be electrically erased and reprogrammed, such as a hard disk or a flash memory card.
In step S12, the electronic device “A1” divides the electronic devices in the specified network into a client group as client devices and a server group as service devices, according to the efficiency index of each electronic device in the specified network. An address (e.g., an IP address) of each electronic device is recorded, and a grouped result is sent to each electronic device in the specified network. For example, as shown in
In another embodiment, the client group and the server group may be determined according to other methods. For example, handheld devices may be grouped together in the client group, and the desktop computers are grouped together in the server group. The client group and the server group may be determined according to a type of operating system installed in each electronic device. For example, the electronic devices with a LINUX® operating system or a UNIX® operating system may be grouped together in the server group, and the non-LINUX® and non-UNIX® electronic devices may be grouped together in the client group.
In step S13, each client device (e.g., A1˜A6) in the client group connects to each service device (e.g., B1˜B3) in the server group, and one of the service devices in the server group is determined and appointed as a control device for each client device according to a connection quality between the client device and each of the service devices. A feedback time delay of a connection (hereinafter referred to as “connection feedback time”) between the client device and each of the service devices is taken as the indication of connection quality. A short connection feedback time represents a good connection quality. In this embodiment, the control device of the client device is the service device having the shortest connection feedback time. For example, as shown in
In another embodiment, the connection quality may be determined using other methods. For example, the connection quality may be indicated according to a physical distance between the client device and the service device, where a short physical distance represents a good connection quality. That is, the control device of the client device is the service device having the shortest physical distance.
In step S14, the service devices are connected to each other, to determine a route path (or called routing path) between every two service devices according to a connection quality between the every two service devices, and create a route table (or called routing path) for each service device according to the route path between every two service devices. The connection quality may be determined according to a connection feedback time between every two service devices. A short connection feedback time represents a good connection quality. In this embodiment, a route path between every two service devices is a routing connection having a shortest connection feedback time.
For example, referring to
As shown in
In another embodiment, the route path between every two service devices may be determined using other methods. For example, the route path between two every service devices is created by connecting every two service devices in the server group using a point-to point (P2P) method. In another embodiment, the route path between every two service devices may be determined according to the efficiency index of each service device in the server group. The service device having a higher efficiency index is determined as the routing device in the route path. For example, if the efficiency index of the service device “B4” is less than the efficiency index of the service device “B1”, the video data transmitted to the service device “B4” is firstly transmitted to the service device “B1.”
In step S15, when a data acquiring request is sent from a request device (e.g. the client device “A3”) to a target device (e.g., the client device “A7”), the target device transmits requested data (e.g., video data) to the request device according to the route paths in the route tables. For example, the request device is the electronic device which wants to acquire the video data, and the target device is the electronic device which sends out the video data.
If the request device is the client device in the client group, the target device first determines a control device of the request device from the service devices of the server group, and the target device transmits the requested data (e.g., current video data of the target device) to the request device according to the route paths in the route table of the determined control device. If the request device is the service device in the server group, the target device transmits the requested data to the request device according to the route paths in the route table of the request device.
For example, referring to
“A7” is passed to the routing device “B1” (i.e., the service device “B1”). Furthermore, the route table “R1” of the routing device “B1” shows that the data transmitted by the target device “A7” is further passed to the routing device “B4” (i.e., the service device “B4”). Because the routing device “B4” is the control device of the target device “A7”, the recursion process is ended. Thus, a transmission path of the requested data from the target device “A7” to the request device “A3” is as follows: A7->B4->B1->B2->A3.
In
It should be emphasized that the above-described embodiments of the present disclosure, particularly, any embodiments, are merely possible examples of implementations, merely set forth for a clear understanding of the principles of the disclosure. Many variations and modifications may be made to the above-described embodiment(s) of the disclosure without departing substantially from the spirit and principles of the disclosure. All such modifications and variations are intended to be included herein within the scope of this disclosure and the present disclosure and protected by the following claims.
Number | Date | Country | Kind |
---|---|---|---|
102109940 | Mar 2013 | TW | national |