Network-adaptive method and apparatus for data communication

User terminals adaptively manage file transmission requests based on network conditions, addressing service degradation and server load issues by adjusting to traffic conditions, ensuring stable service quality and reducing server resource consumption.

KR102998120B1Active Publication Date: 2026-07-29SAMSUNG SDS CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Authority / Receiving Office
KR · KR
Patent Type
Patents
Current Assignee / Owner
SAMSUNG SDS CO LTD
Filing Date
2020-07-22
Publication Date
2026-07-29

AI Technical Summary

Technical Problem

Conventional data communication methods struggle to provide stable service quality when traffic surges from multiple client terminals, leading to degraded performance and increased server management load, especially in networks with varying branch bandwidths.

Method used

A data communication method where user terminals adjust their file transmission requests based on network traffic conditions, using formulas that incorporate transmission speed and Round Trip Time (RTT) to manage network traffic without requiring server-side environmental information collection.

Benefits of technology

This approach ensures stable transmission services by reducing network congestion and server resource consumption, while maintaining service quality without needing detailed network environment knowledge.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 112020076365070-PAT00009_ABST
    Figure 112020076365070-PAT00009_ABST
Patent Text Reader

Abstract

A data communication method and device are provided that can achieve optimal communication efficiency under a given environment by automatically adjusting the data communication speed in accordance with the network environment. A data communication method according to one embodiment of the present invention includes the steps of: receiving a first file fragment among a plurality of file fragments generated by dividing a single data file; determining a waiting time for requesting the transmission of a second file fragment among the plurality of file fragments based on the transmission speed of the first file fragment; and, when the waiting time is determined, waiting for the waiting time to elapse from the time of completion of receiving the first file fragment to request the transmission of the second file fragment. According to this data communication method, it is possible to reduce the management load on the server side while ensuring stable service performance by managing the overall traffic level of the network, and to manage network traffic at an appropriate level without collecting environmental information about the network.
Need to check novelty before this filing date? Find Prior Art

Description

Technology Field

[0001] The present invention relates to a method and apparatus for performing data communication. More specifically, it relates to a data communication method and apparatus capable of actively adjusting the data communication speed in response to a network environment. Background Technology

[0002] In a system that performs data communication with multiple client terminals, it must be able to provide stable service even when traffic surges simultaneously from multiple client terminals. To this end, conventional methods managed overall service quality by collecting status information regarding the user's connection environment and, based on this, controlling the transmission volume or determining the transmission order for each client terminal at the server level. However, this conventional method had the burden of requiring the server to separately collect and manage status information regarding the user's connection environment and to set transmission schedules for each client terminal in real time.

[0003] Another conventional method for ensuring service quality involves setting a standard Quality of Service (QoS) level on server-side network equipment to ensure minimum QoS for each client terminal during transmission. However, this method had a problem in that when requests exceeding the network capacity surged in a branch network, lower-priority users in that branch network could not receive service until the traffic overload was resolved.

[0004] For this reason, there is a need for a data communication method that manages the overall traffic level of the network to ensure stable service performance while reducing the management load on the server side, and can provide a certain level of service to each user even when traffic is concentrated on the branch network. Prior art literature

[0005] Korean Patent Publication No. 10-2125771 (Published June 23, 2020) The problem to be solved

[0006] The technical problem to be solved through some embodiments of the present invention is to provide a data communication method and device capable of providing stable transmission services to each user device by managing the traffic of the entire network to an appropriate level.

[0007] Another technical problem to be solved through some embodiments of the present invention is to provide a data communication method and apparatus that can reduce resource consumption of a service server by reducing the management load on the server side required for service quality management.

[0008] Another technical problem to be solved through some embodiments of the present invention is to provide a data communication method and device capable of properly managing network traffic without collecting environmental information about the network.

[0009] The technical problems of the present invention are not limited to those mentioned above, and other unmentioned technical problems will be clearly understood by a person skilled in the art from the description below. means of solving the problem

[0010] A data communication method performed by a computer device according to embodiments of the present invention for solving the above technical problem comprises: receiving a first file fragment among a plurality of file fragments generated by dividing a single data file; determining a waiting time for requesting transmission of a second file fragment among the plurality of file fragments based on the transmission speed of the first file fragment; and, when the waiting time is determined, requesting transmission of the second file fragment after waiting for the waiting time to elapse from the time of completion of reception of the first file fragment.

[0011] In one embodiment, the step of determining the waiting time may determine the waiting time based on a calculation formula that includes the transmission speed or a value corresponding to the transmission speed as an independent variable.

[0012] As one embodiment, the step of determining the waiting time may determine the waiting time to be 0 if the transmission speed is higher than or equal to the reference speed.

[0013] As an example, the calculation formula may include a random value for imparting a random deviation to the waiting time.

[0014] In one embodiment, the calculation formula may include an adjustment factor determined based on the Round Trip Time (RTT) of the network to which the first file fragment was transmitted.

[0015] As an embodiment, the method may further include the steps of receiving the second file fragment transmitted in response to a request for transmission of the second file fragment, adjusting or maintaining the waiting time based on the transmission speed of the second file fragment, and requesting transmission of a third file fragment among the plurality of file fragments after waiting for the adjusted or maintained waiting time to elapse from the time of completion of reception of the second file fragment.

[0016] In one embodiment, the step of adjusting or maintaining the waiting time may include the step of maintaining the waiting time as is when the transmission speed of the second file fragment is higher than or equal to the reference speed.

[0017] In one embodiment, the step of adjusting or maintaining the waiting time may include the step of adjusting the waiting time to be longer when the transmission speed of the second file fragment is lower than the reference speed.

[0018] In one embodiment, the step of adjusting or maintaining the waiting time may include the step of adjusting the waiting time to be shorter when the transmission speed of the second file fragment is lower than the reference speed.

[0019] A data communication method performed by a computer device according to other embodiments of the present invention for solving the above technical problem comprises the steps of: classifying the user terminal into a first group among a plurality of groups based on network information of the user terminal; obtaining a reference waiting time of the first group; and, in response to a request for data file transmission from the user terminal, transmitting to the user terminal a first file fragment among a plurality of file fragments generated by dividing the data file and the reference waiting time, wherein after receiving the first file fragment, the user terminal waits for the reference waiting time to elapse from the time of completion of receiving the first file fragment and requests transmission of a second file fragment among the plurality of file fragments.

[0020] In one embodiment, the reference waiting time may be determined based on the data transmission rate for terminals belonging to the first group, or the Round Trip Time (RTT) of the first network to which the terminals belonging to the first group are connected.

[0021] In one embodiment, the reference waiting time is calculated based on the waiting time information of terminals belonging to the first group, and the waiting time information can be calculated by obtaining, for each terminal belonging to the first group, a first server time indicating the time when the server side transmits the file fragment in response to a file fragment transmission request transmitted by the terminal side, a second server time indicating the time when the server side receives a request to transmit the next file fragment after the terminal side has received and transmitted the file fragment, and the Round Trip Time (RTT) of the first network to which the terminals belonging to the first group are connected.

[0022] In one embodiment, the reference waiting time can be calculated using an artificial neural network model generated by performing machine learning based on the waiting time information.

[0023] A data communication device according to embodiments of the present invention for solving the above technical problem comprises a processor, a memory for loading a computer program executed by the processor, and a storage for storing the computer program, wherein the computer program includes instructions for executing an operation of receiving a first file fragment among a plurality of file fragments created by dividing a data file, an operation of determining a waiting time for requesting the transmission of a second file fragment among the plurality of file fragments based on the transmission speed of the first file fragment, and, when the waiting time is determined, an operation of requesting the transmission of the second file fragment after waiting for the waiting time to elapse from the time of completion of receiving the first file fragment.

[0024] A data communication device according to other embodiments of the present invention for solving the above technical problem comprises a processor, a memory for loading a computer program executed by the processor, and a storage for storing the computer program, wherein the computer program includes instructions for executing an operation of classifying the user terminal into a first group among a plurality of groups based on the connection IP of the user terminal, an operation of obtaining a reference waiting time of the first group, and an operation of transmitting a first file fragment among a plurality of file fragments generated by dividing the data file and the reference waiting time to the user terminal in response to a request for data file transmission from the user terminal, and the user terminal, after receiving the first file fragment, waits for the reference waiting time to elapse from the time of completion of receiving the first file fragment and requests the transmission of a second file fragment among the plurality of file fragments. Brief explanation of the drawing

[0025] Figure 1 is a diagram schematically illustrating a method of managing service quality in a conventional communication system. Figure 2 is a diagram explaining why conventional service quality management methods do not function properly in an actual network environment. FIG. 3 is a diagram conceptually illustrating a data communication method according to an embodiment of the present invention. FIG. 4 is a diagram illustrating a specific method of performing data communication between a server and a user terminal according to the data communication method of FIG. 3. FIG. 5 is a flowchart that explains a data communication method according to an embodiment of the present invention step by step. FIG. 6 is a diagram illustrating an exemplary method for obtaining a Round Trip Time (RTT) value referenced for calculating a waiting time in a data communication method according to the present invention. FIG. 7 is a flowchart illustrating a data communication method according to another embodiment of the present invention. FIG. 8 is a flowchart illustrating an embodiment that further specifies the step (S270) of adjusting or maintaining the waiting time of FIG. 7. FIG. 9 is a flowchart illustrating another embodiment that further specifies the step (S270) of adjusting or maintaining the waiting time of FIG. 7. FIGS. 10 and FIGS. 11 are drawings for illustrating a data communication method according to another embodiment of the present invention. Figure 12 is a diagram illustrating an exemplary method for estimating the waiting time at the terminal end at the server end. FIG. 13 is a diagram illustrating a method of using an Artificial Neural Networks model to calculate optimal waiting time as an embodiment of the present invention. FIG. 14 is a block diagram showing an exemplary hardware configuration of a computing device (500) in which various embodiments of the present invention are implemented. Specific details for implementing the invention

[0026] Hereinafter, embodiments of the present invention will be described in detail with reference to the attached drawings. The advantages and features of the present invention, and the methods for achieving them, will become clear by referring to the embodiments described below in detail together with the attached drawings. However, the technical concept of the present invention is not limited to the following embodiments but can be implemented in various different forms. The following embodiments are provided merely to complete the technical concept of the present invention and to fully inform those skilled in the art of the scope of the present invention, and the technical concept of the present invention is defined only by the scope of the claims.

[0027] It should be noted that when assigning reference numerals to the components of each drawing, the same components are assigned the same reference numeral whenever possible, even if they are shown in different drawings. Furthermore, in describing the present invention, if it is determined that a detailed description of related known components or functions could obscure the essence of the invention, such detailed description is omitted.

[0028] Unless otherwise defined, all terms used herein (including technical and scientific terms) may be used in a meaning commonly understood by those skilled in the art to which the present invention pertains. Furthermore, terms defined in commonly used dictionaries are not to be interpreted ideally or excessively unless explicitly and specifically defined otherwise. The terms used herein are for describing embodiments and are not intended to limit the present invention. In this specification, the singular form includes the plural form unless specifically stated otherwise in the text.

[0029] Additionally, terms such as first, second, A, B, (a), (b), etc., may be used when describing the components of the present invention. These terms are intended merely to distinguish the components from other components, and the nature, order, or sequence of the components is not limited by such terms. Where it is stated that a component is "connected," "combined," or "joined" to another component, it should be understood that the component may be directly connected or joined to the other component, but that another component may also be "connected," "combined," or "joined" between each component.

[0030] Hereinafter, several embodiments of the present invention will be described in detail with reference to the attached drawings.

[0031] FIG. 1 is a diagram schematically illustrating a method for managing quality of service in a conventional communication system. FIG. 1 describes the case where user terminals (11, 12, 13, 14) exist in the same network (1).

[0032] When downloading or uploading files in a general web service, the file is processed using Hypertext Transfer Protocol (HTTP) technology. In this case, the server (20) divides the data file to be transmitted into appropriate sizes to create multiple file fragments (or chunks), and transmits the entire file by sequentially transmitting these individual file fragments to user terminals (11, 12, 13, 14).

[0033] When data communication is conducted via HTTP in this manner, data transmission speeds are managed by the traffic control methods of the standard Transmission Control Protocol (TCP). While TCP traffic control can provide maximum transmission speeds and guarantee comfortable download speeds when there are few users, it presents a problem where overall transmission speeds degrade due to excessive competition when multiple users download files simultaneously, negatively impacting the quality of other services and functions utilizing the same network.

[0034] For example, let's assume a case where a file is downloaded in a network environment with a bandwidth of 100 Mbps. In this case, when only one user downloads a file, the entire 100 Mbps bandwidth is utilized to provide high-speed service; however, when 1,000 users download a file simultaneously, the bandwidth available to each user is reduced to 100 kbps due to transmission competition among the 1,000 users. Furthermore, excessive transmission traffic may cause problems where the quality of other services using the network, such as user login and receiving file lists, is also degraded.

[0035] In conventional systems, to avoid these problems, the number of files that user terminals (11, 12, 13, 14) can simultaneously request for transmission is limited, or a certain QoS is set on the network equipment of the server (20) to prevent excessive transmission traffic from occurring at once.

[0036] However, for this method to operate properly, it is necessary to assume that all user terminals (11, 12, 13, 14) exist on the same network (1), as illustrated in FIG. 1. If they all exist on the same network, there may be no particular problem, as the number of files that can be processed simultaneously or an appropriate QoS can be set according to the bandwidth of the network (1). However, in actual network environments, it is common for each user terminal (11, 12, 13, 14) to exist on different networks, so the method of setting the number of files that can be processed simultaneously or setting QoS according to a specific network becomes inappropriate. This will be further explained with reference to FIG. 2.

[0037] FIG. 2 is a diagram illustrating why a conventional service quality management method does not function properly in an actual network environment. Referring to FIG. 2, it is assumed that each user terminal (11, 12, 13, 4) exists in different networks (2, 3, 4).

[0038] In the example of FIG. 2, user terminal 1 (11) and user terminal 2 (12) are in the first branch network (3) with a bandwidth of 10 Mbps, user terminal 3 (13) is in the second branch network (4) with a bandwidth of 1 Mbps, and user terminal 4 (14) is in the third branch network (2) with a bandwidth of 100 Mbps.

[0039] At this time, assuming that it is appropriate to allocate a bandwidth of 10 Mbps for one file transfer to ensure appropriate service quality, in the conventional method, the maximum number of files that can be transferred simultaneously is set to 10 based on the third branch line network (2) directly connected to the server (20) (or, QoS is set to 10 Mbps per file). Then, when there is one file transfer request from each user terminal (11, 12, 13, 14), the server (20) will process all of them and transfer all files simultaneously, as the total number of requested files (4) is within the range (10) that can be transferred simultaneously.

[0040] At this time, user terminal 4 (14) has no particular problem as the connected network (2) can sufficiently handle the transmitted file (1 file, 10 Mbps). However, user terminal 1 (11) and user terminal 2 (12) experience a problem of degraded download quality because the bandwidth of the connected network (3) is insufficient to simultaneously process the transmitted file (2 files, 20 Mbps). In the case of user terminal 3 (13) connected to the second branch network (3), the network bandwidth is insufficient to process the transmitted file (1 file, 10 Mbps), so it similarly experiences a degraded download quality.

[0041] In order to maintain appropriate service quality under these circumstances, when there is a file transfer request from user terminal 1 (11) and user terminal 2 (12), it must be possible to manage the transfer policy according to each user terminal (11, 12, 13) by alternately transferring files to both terminals so that files are not transferred to both terminals (11, 12) simultaneously. However, this method is only possible if the server (20) knows the network environment information of each branch network (1, 2, 3), such as that 'user terminal 1 (11) and user terminal 2 (12) exist together in a network (3) with a bandwidth of 10 Mbps'. Generally, the server (20) can know the environment information of the network (2) to which it is connected, but it cannot know the environment information of the branch network (3, 4) to which each user terminal (11, 12, 13) belongs; therefore, it is difficult to properly perform data transfer management in an actual network environment using conventional methods.

[0042] Below, we propose a new data communication method that overcomes the problems of the conventional technology.

[0043] FIG. 3 is a diagram conceptually illustrating a data communication method according to an embodiment of the present invention. In the embodiment illustrated in FIG. 3, instead of a conventional method of managing the number of files that can be simultaneously transmitted and QoS at the server (200) end, a network-adaptive data communication method is proposed in which the user terminal (100) checks the status of the network (300) to which it belongs and variably adjusts the file transmission request cycle accordingly. This will be explained with reference to the drawings.

[0044] Referring to FIG. 3, a user terminal (100), a server (200), and a network (300) are illustrated. At this time, the network (300) is a network that connects data communication between the user terminal (100) and the server (200), and may be a network composed of a single branch network, or a network composed of multiple branch networks such as the first branch network (3) and the third branch network (2) of FIG. 2 being sequentially connected. In the data communication method, the internal structure of the network (300) is not specifically considered, that is, whether it is composed of a single network or multiple networks with different bandwidths is not considered; therefore, in FIG. 3, the network (300) is represented as a black box to simplify the discussion.

[0045] In the embodiment of FIG. 3, when a user terminal (100) sends a data transmission request to a server (200), the server (200) responds by finding the requested data file and transmitting it to the user terminal (100). At this time, the server (200) divides the requested data file into multiple file fragments (or chunks), transmits the first file fragment first, and then transmits the entire file fragment sequentially by sending the second file fragment when the transmission of the first file fragment is completed.

[0046] The user terminal (100) receives the first file fragment transmitted by the server (200) via the network (300) and checks the transmission speed at that time. Then, it compares the confirmed transmission speed with a preset reference speed. Here, the reference speed refers to a value preset by an administrator or system as a transmission speed at which the data transmission service can be used comfortably. If the transmission speed is lower than the reference speed, this means that the traffic of the current network (300) is excessive compared to the bandwidth. Therefore, in this case, the user terminal (100) increases the interval for requesting the transmission of the next file fragment to reduce the traffic applied to the network (300). Conversely, if the confirmed transmission speed is greater than or equal to the reference speed, this means that the network (300) can smoothly handle the current traffic. Therefore, in this case, the user terminal (100) reduces the interval for requesting the transmission of the next file fragment to enable faster data downloads. This will be explained in more detail with reference to FIG. 4.

[0047] FIG. 4 is a diagram illustrating a specific method of performing data communication between a server and a user terminal according to the data communication method of FIG. 3.

[0048] When a user terminal (100) requests the transmission of a data file to a server (200) (S10), the server (200) finds the requested data file and divides it to create multiple file fragments (S20). Then, the server (200) transmits the first file fragment among them to the user terminal (100) (S30).

[0049] The user terminal (100) receives the transmitted first file fragment and checks the transmission speed of the first file fragment. At this time, the transmission speed of the first file fragment can be calculated by dividing the data size of the first file fragment by the difference between the time when the transmission of the first file fragment begins and the time when the transmission ends. This can be expressed as a formula as follows.

[0050] File segment transfer speed = (File segment data size) / (File segment transfer end time - File segment transfer start time)

[0051] And, the user terminal (100) determines whether the transmission speed of the confirmed first file fragment is lower than the reference speed.

[0052] If the transmission speed of the first file fragment is greater than the reference speed, it means that the traffic of the current network (300) is not excessive, so the user terminal (100) immediately sends a transmission request for the second file fragment to the server (200).

[0053] On the other hand, if the transmission speed of the first file fragment is lower than the reference speed, this means that there is excessive traffic on the current network (300), so the user terminal (100) does not immediately send a transmission request for the second file fragment and waits for a predetermined waiting time (S40). At this time, the waiting time is determined by considering the difference between the transmission speed and the reference speed and the network's Round Trip Time (RTT). The specific method for determining the waiting time is described in detail below in FIG. 5, so the explanation thereof is omitted here.

[0054] Then, when the user terminal (100) has finished receiving the first file fragment, it sends a request for transmission of the second file fragment to the server (200) after the waiting time has elapsed (S50). The server (200) responds to the request for transmission of the second file fragment and transmits the second file fragment to the user terminal (100), and repeats the subsequent steps to sequentially complete the transmission up to the last nth file fragment (S60).

[0055] According to this method, the user terminal (100) estimates the current traffic situation of the network (300) through the transmission speed of a file fragment, and if it is determined that the traffic is excessive (i.e., if the transmission speed of the received file fragment is lower than the reference speed), it waits for a waiting time and requests the transmission of the next file fragment. According to this, in a situation where traffic is congested, the user terminal (100) reduces the network bandwidth it occupies to reduce the overall traffic applied to the network (300) and prevent deterioration of the network (300).

[0056] FIG. 5 is a flowchart that explains a data communication method according to an embodiment of the present invention step by step. The data communication method described in FIG. 5 can be performed by the user terminal (100) described in FIG. 3. Therefore, if the performing entity is not described in the following steps, it is assumed that the performing entity is the user terminal (100).

[0057] In step S110, the user terminal (100) requests the server (200) to transmit a data file. In response to the request from the user terminal (100), the server (200) divides the data file into multiple file fragments and transmits the first file fragment among them to the user terminal (100).

[0058] In step S120, the user terminal (100) receives the first file fragment transmitted by the server (200).

[0059] In step S130, the user terminal (100) checks the transmission speed of the received first file fragment. At this time, the user terminal (100) can calculate the transmission speed of the first file fragment by dividing the data size of the received first file fragment by the difference between the time when the transmission of the first file fragment starts and the time when the transmission ends.

[0060] In step S140, the user terminal (100) determines a waiting time to request the transmission of the next file piece, the second file piece, based on the transmission speed of the confirmed first file piece.

[0061] In step S150, the user terminal (100) waits for a previously determined waiting time to elapse from the time it completes receiving the first file fragment. Then, when the waiting time has elapsed, it requests the server (200) to transmit the next file fragment, the second file fragment.

[0062] Meanwhile, the waiting time here refers to a type of interval time waiting before requesting the transmission of the second file fragment, and can be determined differently depending on the difference between the transmission speed of the first file fragment and the reference speed. The specific formula for calculating the waiting time includes the transmission speed of the first file fragment as an independent variable, and an exemplary form is as shown in Equation 1 below.

[0063]

[0064] Here, the amount of data transmitted refers to the data size of the first file fragment transmitted, and

[0065] The transmission speed refers to the transmission speed of the first file fragment, and

[0066] The standard speed refers to a value preset by an administrator or system as a transmission speed that allows for comfortable use of the data transmission service, and

[0067] The adjustment factor is a value determined based on Round Trip Time (RTT) as a factor to reflect the network characteristics of the network to which the first file fragment was transmitted, and

[0068] rand refers to a random value used to add a random deviation to the calculated waiting time.

[0069] To understand the technical significance of Equation 1 more clearly, we will examine the meaning of each factor used in Equation 1 in more detail.

[0070] is a factor that determines the waiting time differently based on the difference between the transfer speed of the first file fragment and the reference speed. If the transfer speed of the first file fragment is significantly slower than the reference speed, it implies very high traffic congestion, so the waiting time should be set to be correspondingly longer. On the other hand, if the transfer speed of the first file fragment is slower than the reference speed but the difference is not large, it implies relatively low traffic congestion, so the waiting time can be correspondingly shorter. To reflect this, as a factor that increases the waiting time as the difference between the transfer speed of the first file and the reference speed increases is included in mathematical formula 1.

[0071] rand is a factor applied to distribute the waiting time of each user terminal when multiple user terminals are connected to a network (300). If the rand factor is not present in Equation 1, user terminals belonging to the same network will have their respective waiting times calculated as similar values. Consequently, after receiving a file fragment, the user terminals will wait for their respective waiting times to request the next file fragment, but a bottleneck may occur where these requests coincidentally converge at similar times. To avoid this, a random value (rand) is added whenever the waiting time is calculated to provide a random deviation to the calculated waiting time. In this case, even if user terminals belonging to the same network receive file fragments of similar size at similar transmission speeds, their respective waiting times will be determined differently by the rand factor, thereby mitigating the bottleneck where file fragment transmission requests converge at a specific time.

[0072] The adjustment factor is a factor used to reflect network transmission characteristics. Generally, networks with a larger RTT tend to have relatively slower measured transmission speeds. Therefore, networks with a smaller RTT require more sensitive control of latency than networks with a larger RTT, and to reflect this, an adjustment factor is included in the latency calculation formula. In this case, the adjustment factor is a value determined to decrease as the RTT increases. Various methods can be used for the specific calculation of the adjustment factor, such as multiplying the reciprocal of the RTT by a predetermined constant or using a characteristic value table designed so that the adjustment factor decreases as the RTT increases.

[0073] Meanwhile, RTT is a value representing the characteristics of the network through which data is transmitted, and it refers to the round-trip time for data transmission and reception to travel back and forth across the actual network when there is data communication between two devices. A specific method for calculating RTT for a given network will be described in detail later in Fig. 6.

[0074] Meanwhile, the method for calculating the waiting time according to mathematical formula 1 described so far is applied only when the transmission speed of the first file fragment is lower than the reference speed. If the transmission speed of the first file fragment is higher than or equal to the reference speed, there is no need to apply the waiting time, so the user terminal (100) will request the transmission of the second file fragment immediately without waiting time (in this case, the waiting time is 0).

[0075] Furthermore, although the case where the transmission speed of the first file fragment is directly included as an independent variable in Equation 1 has been exemplified here, the scope of the present invention is not limited thereto. For example, it is also possible to use other values ​​that can replace the transmission speed of the first file fragment as independent variables. For instance, it would be possible to modify Equation 1 to use the transmission time and reference time of the first file as shown in Equation 2 below. (Here, the reference time is a value pre-set by an administrator or the system as a transmission time that allows for comfortable use of the data transmission service.)

[0076]

[0077] According to the data communication method of the present invention described above, traffic is managed at an appropriate level so as not to place an excessive burden on the network (300), thereby enabling stable transmission services to be provided to each user device. Furthermore, since actions for quality management (or traffic management) of the transmission service are performed at the user terminal, the management load on the server side that was previously required for service quality management can be reduced, and accordingly, resource consumption of the service server is also reduced. In addition, since appropriate traffic is managed based on the data transmission speed regardless of the network structure of the network (300), there is no need to collect environmental information regarding the network (300).

[0078] FIG. 6 is a diagram illustrating an exemplary method for obtaining a Round Trip Time (RTT) value referenced for calculating a waiting time in a data communication method according to the present invention.

[0079] Referring to FIG. 6, a series of flows is illustrated in which a user terminal (100) requests data transmission to a server (200) at terminal time A (t1), the server (200) receives the request at server time A (t2), transmits the requested data at server time B (t3), and the user terminal (100) receives the transmitted data at terminal time B (t4).

[0080] In this case, RTT is the instantaneous time taken for data transmission and reception to travel back and forth through the network, excluding the time delayed at the terminal or server end from the total time taken for data transmission and reception. Accordingly, RTT can be calculated using the following formula.

[0081] RTT = {(t4 - t1) - (t3 - t2)}

[0082] Based on the RTT calculated in this way, the adjustment coefficient of Equation 1, which was explained earlier in Fig. 5, is obtained.

[0083] FIG. 7 is a flowchart illustrating a data communication method according to another embodiment of the present invention. The embodiment of FIG. 7 is generally similar to the embodiment of FIG. 5, except that a new step after S260 is added.

[0084] In the embodiment of FIG. 7, steps S210 through S250 are substantially identical in meaning and operation to steps S110 through S150 of FIG. 5. Therefore, to avoid duplication of explanation, the description of steps S210 through S250 is omitted, and the description begins with step S260.

[0085] In step S260, the user terminal (100) receives the second file fragment transmitted by the server (200) in response to the request to transmit the second file fragment sent in step S250.

[0086] In step S270, the user terminal (100) checks the transmission speed of the received second file fragment and, based on that, adjusts the previously determined waiting time or maintains it as is. If the transmission speed of the second file fragment is greater than or equal to the reference speed, it means that traffic is smooth when the current waiting time is applied, so there is no need to specifically adjust the waiting time. Therefore, in this case, the waiting time is maintained at the same as the current time. On the other hand, if the transmission speed of the second file fragment is less than the reference speed, it means that traffic is still congested with the current waiting time, so the waiting time is adjusted by methods such as increasing the waiting time. Specific embodiments of this are described later in FIGS. 8 and 9.

[0087] In step S280, the user terminal (100) waits for the previously adjusted or maintained waiting time to elapse from the time it completes receiving the second file fragment. Then, when the waiting time has elapsed, it requests the server (200) to transmit the next file fragment, the third file fragment.

[0088] FIG. 8 is a flowchart illustrating an embodiment that embodies the step (S270) of adjusting or maintaining the waiting time of FIG. 7. The following description refers to FIG. 8.

[0089] In step S271, the user terminal (100) determines whether the transmission speed of the second file fragment is greater than or equal to the reference speed. At this time, the transmission speed of the second file fragment can be calculated in the same way as the transmission speed of the first file fragment was calculated earlier.

[0090] If the transmission speed of the second file fragment is greater than or equal to the reference speed, the present embodiment proceeds to step S272. Otherwise, if the transmission speed of the second file fragment is less than the reference speed, the present embodiment proceeds to step S273.

[0091] In step S272, the user terminal (100) maintains the current waiting time. Since the fact that the transmission speed of the second file fragment is greater than or equal to the reference speed means that network traffic congestion has been resolved through the current waiting time, the current waiting time is maintained without being changed.

[0092] Meanwhile, in step S273, the user terminal (100) adjusts the current waiting time to be longer. Since the fact that the transmission speed of the second file fragment is less than the reference speed means that network traffic is still congested with the current waiting time, the current waiting time is adjusted to be longer to further reduce the network bandwidth it occupies and further reduce the overall traffic applied to the network (300).

[0093] FIG. 9 is a flowchart illustrating another embodiment that embodies the step (S270) of adjusting or maintaining the waiting time of FIG. 7. The following description refers to FIG. 9.

[0094] In step S274, the user terminal (100) determines whether the transmission speed of the second file piece is greater than or equal to the reference speed. As previously mentioned, the transmission speed of the second file piece can be calculated in the same way as the transmission speed of the first file piece was calculated earlier.

[0095] If the transmission speed of the second file fragment is greater than or equal to the reference speed, the present embodiment proceeds to step S275. Otherwise, if the transmission speed of the second file fragment is less than the reference speed, the present embodiment proceeds to step S276.

[0096] In step S275, the user terminal (100) maintains the current waiting time. Since the transmission speed of the second file fragment is greater than or equal to the reference speed, it means that network traffic congestion has been resolved through the current waiting time; therefore, the current waiting time is maintained without being changed.

[0097] Meanwhile, in step S276, the user terminal (100) determines whether the transmission speed of the second file piece has improved compared to the transmission speed of the first file piece. Since it was previously confirmed in step S274 that the transmission speed of the second file piece is below the reference speed, there is a need to adjust the current waiting time, but in order to determine specifically in which direction to adjust the waiting time, it is checked whether the transmission speed of the second file piece has improved compared to the previous one.

[0098] If the transmission speed of the second file fragment has been improved, this embodiment proceeds to step S277. Otherwise, if the transmission speed of the second file fragment has not been improved, this embodiment proceeds to step S278.

[0099] In step S277, the user terminal (100) adjusts the current waiting time to be longer. The fact that the transmission speed of the second file piece has improved compared to the transmission speed of the first file piece suggests that the previously set waiting time likely contributed to the improvement of network traffic. However, since the transmission speed of the second file piece is still below the reference speed and traffic congestion has not been sufficiently resolved, the user terminal (100) adjusts the current waiting time to be longer in order to further reduce overall traffic.

[0100] Meanwhile, at step S278, the user terminal (100) adjusts the current waiting time to be shorter. The fact that the transmission speed of the second file fragment has not improved compared to the transmission speed of the first file fragment means that the previously set waiting time did not contribute significantly to improving network traffic. This suggests that the reason for the low transmission speed is likely due to the inherent characteristics of the network (300) unrelated to the waiting time. For example, as in the case of user terminal 3 (13) in FIG. 2, if the bandwidth of the connected network (4) is absolutely small, the transmission speed will be low even if there are no other user terminals on the same network (4). In such a situation, it would be more desirable to use the service at the current transmission speed while reducing the waiting time.

[0101] Meanwhile, in the embodiments described so far, methods for calculating a waiting time by estimating the state of the network (300) through the transmission speed at the user terminal (100) have been explained. However, this is not essential to the present invention. For example, unlike the above, it is also possible to calculate an appropriate waiting time at the server (200) and provide it to the user terminal (100). Below, embodiments related to calculating an appropriate waiting time at the server (200) will be described.

[0102] FIG. 10 is a flowchart illustrating an embodiment in which a server (200) calculates an appropriate waiting time and provides it to a user terminal (100). The embodiment of FIG. 10 can be performed, for example, by the server (200) of FIG. 3. Therefore, in the following steps, if the performing entity is not specified, it is assumed that the performing entity is the server (200). The following description refers to FIG. 10.

[0103] In step S310, the server (200) checks the connection IP of the user terminal (100).

[0104] In step S320, the server (200) classifies the user terminal (100) into one of a plurality of groups based on the previously identified IP. This is further explained with reference to FIG. 11.

[0105] FIG. 11 is a diagram illustrating a method of classifying user terminals (100) into specific groups based on their connection IP. Here, each group (31, 32, 33) is a group formed by grouping user terminals belonging to the same network based on their connection IP.

[0106] When a user terminal (100) connects to a server (200), the server (200) checks the connection IP of the user terminal (100). Then, among the existing grouped multiple groups (31, 32, 33), the server checks the group that belongs to the same network as the user terminal (100) based on the connection IP, and classifies the user terminal (100) into that group.

[0107] For example, let us assume that the first group (31) is a group of terminals with a connected IP address of 112.217.219.xxx, the second group (32) is a group of terminals with a connected IP address of 18.329.118.xxx, and the third group (33) is a group of terminals with a connected IP address of 204.117.212.xxx.

[0108] At this time, if the connection IP address of the user terminal (100) is 112, 217, 219, or 84, it is determined that it belongs to the same network as the first group (31) based on the connection IP address, so the user terminal (100) is classified into the first group (31).

[0109] Returning to FIG. 10, in step S330, the server (200) obtains a reference waiting time of the first group (31) to which the user terminal (100) belongs. Here, the reference waiting time of the first group (31) is a set waiting time to be applied to the terminals belonging to the first group (31). The reference waiting time may be determined based on the data transmission speed for the terminals belonging to the first group (31) or the Round Trip Time (RTT) of the first network to which the terminals belonging to the first group (31) are connected.

[0110] In step S340, when the server (200) receives a data transmission request from the user terminal (100), it divides the requested data file accordingly to create multiple file fragments.

[0111] In step S350, the server (200) transmits the first file fragment among the generated multiple file fragments to the user terminal (100). At this time, the server (200) transmits the reference waiting time of the first group (31) calculated earlier to the user terminal (100) simultaneously with or sequentially with the first file fragment.

[0112] Afterward, the user terminal (100) will receive the first file fragment, wait for a reference waiting time to elapse from the time the first file fragment is received, and then request the transmission of the next file fragment, the second file fragment.

[0113] Meanwhile, as an example, the reference waiting time can be calculated using the method of mathematical formula 3 below.

[0114]

[0115] Here, the average transmission amount refers to the average data size of file fragments transmitted to terminals belonging to the first group (31), and

[0116] The average transmission speed refers to the average transmission speed when file fragments are transmitted to terminals belonging to the first group (31), and

[0117] The standard speed refers to a value preset by an administrator or system as a transmission speed that allows for comfortable use of the data transmission service, and

[0118] The adjustment coefficient is a coefficient for reflecting the characteristics of the first network to which terminals belonging to the first group (31) are connected, and means a value determined based on the average Round Trip Time (RTT) of the first network, and

[0119] rand refers to a random value used to add a random deviation to the calculated waiting time.

[0120] The technical meaning of each factor in Equation 2 is substantially the same as that explained earlier in Equation 1. Therefore, to avoid redundancy, a detailed explanation is omitted here.

[0121] Alternatively, as another embodiment, the reference waiting time may be determined as the average of the waiting times of terminals belonging to the first group (31). In this case, the server (200) may collect and statistically analyze the waiting times calculated and applied by each terminal belonging to the first group (31). Furthermore, the waiting times calculated and applied by each terminal may be received directly from each terminal when the server (200) communicates data with the terminals of the first group (31), or the server (200) may calculate them indirectly by referring to the terminal time or server time at each point in time when communicating with each terminal.

[0122] For example, referring to FIG. 12, the waiting time (t5) calculated and applied by the user terminal (100) is calculated as the value obtained by subtracting the RTT of the network from the value obtained by subtracting the server time B (t3) from the server time C (t6) as shown in the calculation formula below.

[0123] Waiting time (t5) = (t6 - t3) - RTT

[0124] And, as explained earlier in Figure 6, RTT can be calculated from the following formula.

[0125] RTT = {(t4 - t1) - (t3 - t2)}

[0126] Alternatively, as another embodiment, the reference waiting time may be calculated using an artificial neural network model generated by performing machine learning based on the transmission speed of terminals belonging to the first group (31), waiting time information of terminals belonging to the first group (31), and the RTT of the first network to which the terminals belonging to the first group (31) are connected.

[0127] At this time, the server (200) can group terminals based on the connection IP, collect and manage transmission speed, waiting time, RTT, etc., for each group as statistical information, and perform machine learning based on this to generate an artificial neural network model that calculates an optimized waiting time for each group (or for each network to which each group belongs). Then, the server (200) can use the generated artificial neural network model to calculate the optimal waiting time according to the measured data transmission speed for each group (or for each network to which each group belongs) and provide this as the reference waiting time. This will be further explained with reference to FIG. 13.

[0128] FIG. 13 is a diagram illustrating a method of using an Artificial Neural Networks model to calculate optimal waiting time as an embodiment of the present invention. FIG. 13 illustrates the generation of a common Artificial Neural Networks model for a plurality of groups (31, 32, 33), but the scope of the present invention is not limited thereto. For example, machine learning may be performed for each group (31, 32, 33) to individually generate an Artificial Neural Networks model dedicated to each group (31, 32, 33).

[0129] The server (200) can collect the transmission speed when a file fragment is transmitted to each terminal for each group (31, 32, 33), the waiting time of each terminal, and the RTT information of the network to which each terminal is connected, and machine learn an artificial neural network model using this as training data. Then, the server (200) can input information about the network to which the user terminal (100) belongs and the transmission speed when a file fragment is transmitted to the user terminal (100) as input data into the artificial neural network model generated as a result of machine learning, calculate an optimal transmission waiting time suitable for the user terminal (100), and provide this to the user terminal (100) as a reference waiting time.

[0130] However, for this to be possible, sufficient statistical information must be collected for each group. Therefore, before statistical information is collected, transmission speed and RTT must be measured at each terminal, and the waiting time must be calculated and applied.

[0131] According to this embodiment, since the server (200) calculates a reference waiting time and provides it to the user terminal (100), the user terminal (100) can adjust the transmission interval of file fragments without calculating the waiting time itself. This can be a useful method when it is difficult to accurately calculate the waiting time due to poor performance of the user terminal (100).

[0132] Hereinafter, with reference to FIG. 14, an exemplary computing device (500) in which various embodiments of the present invention can be implemented will be described. For example, the user terminal (100) or server (200) of FIG. 3 and FIG. 4 may be implemented as the computing device (500) of FIG. 14.

[0133] FIG. 14 is an exemplary hardware configuration diagram showing a computing device (500).

[0134] As illustrated in FIG. 14, a computing device (500) may include one or more processors (510), a bus (550), a communication interface (570), a memory (530) for loading a computer program (591) executed by the processor (510), and a storage (590) for storing the computer program (591). However, FIG. 14 illustrates only the components related to the embodiments of the present invention. Therefore, a person skilled in the art to which the present invention pertains will understand that other general-purpose components may be included in addition to the components illustrated in FIG. 14.

[0135] The processor (510) controls the overall operation of each component of the computing device (500). The processor (510) may be configured to include at least one of a CPU (Central Processing Unit), MPU (Micro Processor Unit), MCU (Micro Controller Unit), GPU (Graphic Processing Unit), or any form of processor well known in the art of the present invention. Additionally, the processor (510) may perform operations for at least one application or program for executing a method / operation according to various embodiments of the present invention. The computing device (500) may have one or more processors.

[0136] The memory (530) stores various data, commands and / or information. The memory (530) may load one or more programs (591) from storage (590) to execute methods / operations according to various embodiments of the present invention. Examples of the memory (530) may be RAM, but are not limited thereto.

[0137] The bus (550) provides communication functions between components of the computing device (500). The bus (550) can be implemented as various types of buses, such as an address bus, a data bus, and a control bus.

[0138] The communication interface (570) supports wired and wireless internet communication of the computing device (500). The communication interface (570) may also support various communication methods other than internet communication. To this end, the communication interface (570) may be configured to include a communication module well known in the technical field of the present invention.

[0139] Storage (590) may store one or more computer programs (591) non-temporarily. Storage (590) may be configured to include non-volatile memory such as ROM (Read Only Memory), EPROM (Erasable Programmable ROM), EEPROM (Electrically Erasable Programmable ROM), flash memory, a hard disk, a removable disk, or any form of computer-readable recording medium well known in the art to which the present invention belongs.

[0140] The computer program (591) may include one or more instructions in which methods / operations according to various embodiments of the present invention are implemented.

[0141] For example, if the computing device (500) is a user terminal, the computer program (591) may include instructions for executing operations such as receiving a first file piece among a plurality of file pieces created by dividing a single data file, determining a waiting time for requesting the transmission of a second file piece among the plurality of file pieces based on the transmission speed of the first file piece, and, when the waiting time is determined, waiting for the waiting time to elapse from the time of completion of receiving the first file piece to request the transmission of the second file piece.

[0142] Alternatively, if the computing device (500) is a server, it includes instructions for executing operations such as classifying the user terminal into a first group among a plurality of groups based on the connection IP of the user terminal, obtaining a reference waiting time of the first group, and transmitting a first file fragment and a reference waiting time among a plurality of file fragments created by dividing a data file in response to a data file transmission request from the user terminal, and wherein the user terminal may request transmission of a second file fragment among a plurality of file fragments after receiving the first file fragment and waiting for the reference waiting time to elapse from the time of completion of receiving the first file fragment.

[0143] When a computer program (591) is loaded into memory (530), the processor (510) can perform methods / operations according to various embodiments of the present invention by executing one or more of the instructions.

[0144] The technical concept of the present invention described so far may be implemented as computer-readable code on a computer-readable medium. The computer-readable recording medium may be, for example, a removable recording medium (CD, DVD, Blu-ray disc, USB storage device, removable hard disk) or a fixed recording medium (ROM, RAM, computer-equipped hard disk). The computer program recorded on the computer-readable recording medium may be transmitted to another computing device via a network such as the Internet and installed on the other computing device, thereby allowing it to be used on the other computing device.

[0145] Although embodiments of the present invention have been described above with reference to the attached drawings, those skilled in the art will understand that the present invention may be implemented in other specific forms without altering the technical concept or essential features thereof. Therefore, the embodiments described above should be understood as illustrative in all respects and not restrictive. The scope of protection of the present invention shall be interpreted by the claims below, and all technical concepts within the equivalent scope shall be interpreted as being included within the scope of rights of the technical concept defined by the present invention.

Claims

Claim 1 A data communication method performed by a computer device, comprising: a step of receiving a first file fragment among a plurality of file fragments generated by dividing a single data file; a step of determining a waiting time for requesting the transmission of a second file fragment among the plurality of file fragments based on the transmission speed of the first file fragment; and a step of requesting the transmission of the second file fragment after waiting for the waiting time to elapse from the time of completion of receiving the first file fragment when the waiting time is determined, wherein the step of determining the waiting time includes a step of determining the waiting time such that the waiting time becomes longer as the value obtained by subtracting the transmission speed of the first file fragment from the reference speed increases. Claim 2 A data communication method according to claim 1, wherein the step of determining the waiting time determines the waiting time based on a calculation formula including the transmission speed or a value corresponding to the transmission speed as an independent variable. Claim 3 A data communication method according to claim 2, wherein the step of determining the waiting time determines the waiting time to 0 if the transmission speed is higher than or equal to the reference speed. Claim 4 In claim 2, the calculation formula includes a random value for imparting a random deviation to the waiting time, a data communication method. Claim 5 A data communication method according to claim 2, wherein the calculation formula includes an adjustment coefficient determined based on the Round Trip Time (RTT) of the network to which the first file fragment is transmitted. Claim 6 A data communication method according to claim 1, further comprising: receiving the second file piece transmitted in response to a request for transmission of the second file piece; adjusting or maintaining the waiting time based on the transmission speed of the second file piece; and requesting transmission of a third file piece among the plurality of file pieces after waiting for the adjusted or maintained waiting time to elapse from the time of completion of reception of the second file piece. Claim 7 A data communication method according to claim 6, wherein the step of adjusting or maintaining the waiting time includes the step of maintaining the waiting time as is when the transmission speed of the second file piece is higher than or equal to the reference speed. Claim 8 In claim 6, the step of adjusting or maintaining the waiting time includes the step of adjusting the waiting time to be longer when the transmission speed of the second file piece is lower than the reference speed, a data communication method. Claim 9 A data communication method according to claim 6, wherein the step of adjusting or maintaining the waiting time includes the step of adjusting the waiting time to be shorter when the transmission speed of the second file piece is lower than the reference speed. Claim 10 A data communication method performed by a computer device, comprising: a step of classifying the user terminal into a first group among a plurality of groups based on network information of the user terminal; a step of obtaining a reference waiting time of the first group; and a step of transmitting to the user terminal a first file fragment among a plurality of file fragments generated by dividing the data file in response to a data file transmission request from the user terminal, wherein the user terminal, after receiving the first file fragment, waits for the reference waiting time to elapse from the time of completion of receiving the first file fragment, and requests the transmission of a second file fragment among the plurality of file fragments, wherein the waiting time becomes longer as the value obtained by subtracting the transmission speed of the first file fragment from the reference speed increases. Claim 11 A data communication method according to claim 10, wherein the reference waiting time is determined based on the data transmission speed for terminals belonging to the first group, or the Round Trip Time (RTT) of the first network to which the terminals belonging to the first group are connected. Claim 12 A data communication method according to claim 10, wherein the reference waiting time is calculated based on waiting time information of terminals belonging to the first group, and the waiting time information is calculated by obtaining, for each terminal belonging to the first group, a first server time indicating the time at which the server side transmits the file fragment in response to a file fragment transmission request transmitted by the terminal side, a second server time indicating the time at which the server side receives a file fragment transmission request transmitted after the terminal side receives the file fragment, and a Round Trip Time (RTT) of a first network connected to the terminals belonging to the first group. Claim 13 A data communication method according to claim 10, wherein the reference waiting time is calculated using an artificial neural network model generated by performing machine learning based on the transmission speed of terminals belonging to the first group, waiting time information of terminals belonging to the first group, and the RTT of a first network connected to terminals belonging to the first group. Claim 14 A data communication device comprising: a processor; a memory for loading a computer program executed by the processor; and a storage for storing the computer program, wherein the computer program includes instructions for executing the operation of receiving a first file piece among a plurality of file pieces created by dividing a single data file, the operation of determining a waiting time for requesting the transmission of a second file piece among the plurality of file pieces based on the transmission speed of the first file piece, and, when the waiting time is determined, the operation of requesting the transmission of the second file piece after waiting for the waiting time to elapse from the time of completion of receiving the first file piece, wherein the operation of determining the waiting time includes the operation of determining the waiting time such that the waiting time becomes longer as the value obtained by subtracting the transmission speed of the first file piece from the reference speed increases. Claim 15 A data communication device comprising: a processor; a memory for loading a computer program executed by the processor; and a storage for storing the computer program, wherein the computer program includes instructions for executing operations such as classifying the user terminal into a first group among a plurality of groups based on the connection IP of the user terminal, obtaining a reference waiting time of the first group, and transmitting a first file fragment among a plurality of file fragments created by dividing the data file and the reference waiting time to the user terminal in response to a data file transmission request from the user terminal, wherein the user terminal, after receiving the first file fragment, waits for the reference waiting time to elapse from the time of completion of receiving the first file fragment, and requests the transmission of a second file fragment among the plurality of file fragments, wherein the waiting time becomes longer as the value obtained by subtracting the transmission speed of the first file fragment from the reference speed increases.