WO2024014588A1 - 파일을 전송할 노드를 결정하는 기술 - Google Patents
파일을 전송할 노드를 결정하는 기술 Download PDFInfo
- Publication number
- WO2024014588A1 WO2024014588A1 PCT/KR2022/010394 KR2022010394W WO2024014588A1 WO 2024014588 A1 WO2024014588 A1 WO 2024014588A1 KR 2022010394 W KR2022010394 W KR 2022010394W WO 2024014588 A1 WO2024014588 A1 WO 2024014588A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- nodes
- server device
- file
- node
- transmission
- Prior art date
Links
- 238000005516 engineering process Methods 0.000 title description 2
- 230000005540 biological transmission Effects 0.000 claims abstract description 213
- 230000015654 memory Effects 0.000 claims abstract description 48
- 238000012546 transfer Methods 0.000 claims description 33
- 238000000034 method Methods 0.000 claims description 31
- 238000004891 communication Methods 0.000 description 46
- 238000010586 diagram Methods 0.000 description 16
- 230000014509 gene expression Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 230000004044 response Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 4
- 239000012634 fragment Substances 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000007774 longterm Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1014—Server selection for load balancing based on the content of a request
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1021—Server selection for load balancing based on client or server locations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
Definitions
- This disclosure relates to techniques for determining a node to transmit a file to.
- Peer-to-peer (P2P) communication refers to a communication method that directly connects nodes to nodes without going through a server. Through peer-to-peer communication, files can be shared between nodes. In peer-to-peer communication, a node to share a file may be selected before receiving the file from another node.
- the server diagnosed the transmission speed for each node by performing a ping test on each node.
- the ping test may be a method of diagnosing the transmission speed of a note by transmitting small-sized data to the node being diagnosed.
- different bandwidths can be used, unlike transmitting small-sized data. Therefore, the transmission speed diagnosed through the ping test may differ from the actual data transmission speed. In other words, transmission speed diagnosis based on the ping test may be inaccurate.
- the present disclosure provides technology for improving file transfer speed in peer-to-peer communication.
- a server device may be proposed.
- a server device may include one or more processors and one or more memories.
- the one or more memories may store instructions that cause the one or more processors to perform operations when executed by the one or more processors.
- the one or more processors receive a file transmission request from a receiving node, and, based on a time zone regarding transmission of the file, a network address of the receiving node, and a network address of one or more candidate nodes, the one or more candidate nodes are selected from among the one or more candidate nodes.
- One or more transmitting nodes may be determined to transmit the file to the receiving node.
- a node device may be proposed.
- a node device may include one or more processors and one or more memories.
- the one or more memories may store instructions that cause the one or more processors to perform operations when executed by the one or more processors.
- the one or more processors transmit a file transmission request to a server device, receive information about one or more transmission nodes determined based on a time zone and network address related to transmission of the file from the server device, and transmit the one or more transmission nodes. You can request the node to transmit the file.
- a method includes the operation of receiving, by a server device, a request for transmission of a file from a receiving node, the server device comprising: a time zone regarding transmission of the file; a network address of the receiving node; and one or more candidate nodes. Based on the network address of the one or more candidate nodes, determining one or more transmitting nodes to transmit the file to the receiving node, and the server device transmitting information about the one or more transmitting nodes to the receiving node It may include actions such as:
- the file transfer speed of peer-to-peer communication can be improved.
- information on the appropriate number of transmitting nodes to transmit files can be provided to receiving nodes that wish to receive files.
- FIG. 1 is a diagram illustrating the operation process of a server device and a node device according to an embodiment of the present disclosure.
- FIG. 2 is a block diagram of a server device according to an embodiment of the present disclosure.
- Figure 3 is a block diagram of a node device according to an embodiment of the present disclosure.
- Figure 4 is a diagram showing history information according to an embodiment of the present disclosure.
- FIG. 5 is a diagram illustrating the operation process of a server device and a node device according to an embodiment of the present disclosure.
- FIG. 6 is a diagram illustrating the operation process of a server device and a node device according to an embodiment of the present disclosure.
- FIG. 7 is a diagram illustrating the operation process of a server device and a node device according to an embodiment of the present disclosure.
- FIG. 8 is a diagram illustrating the operation process of a server device and a node device according to an embodiment of the present disclosure.
- Figure 9 is a flowchart showing a method according to an embodiment of the present disclosure.
- A, B, and C As used herein, “A, B, and C,” “A, B, or C,” “A, B, and/or C,” or “at least one of A, B, and C,” “A, B , or at least one of C,” “at least one of A, B, and/or C,” “at least one selected from A, B, and C,” “at least one selected from A, B, or C,” “A Expressions such as “at least one selected from , B, and/or C” may mean each listed item or all possible combinations of the listed items.
- “at least one of A and B” means: (1) A, (2) at least one of A, (3) B, (4) at least one of B, (5) at least one of A and B It may refer to at least one, (6) at least one of A and B, (7) at least one of B and A, (8) both A and B.
- the expression "based on” is used to describe one or more factors affecting the decision, act of judgment, or action described in the phrase or sentence containing the expression, and the expression refers to the It does not exclude additional factors that may influence the decision, act or action of judgment.
- a component e.g., a first component
- another component e.g., a second component
- the expression that a component is “connected” or “connected” to another component means that the component is It may mean being connected or connected not only directly to another component, but also through another new component (e.g., a third component).
- FIG. 1 is a diagram illustrating the operation process of a server device and a node device according to an embodiment of the present disclosure.
- the server device 100 may communicate with the node device 200 through a network.
- the node device 200 may be one of a computer 200a, a laptop 200b, a portable communication terminal (such as a smartphone 200c), a portable multimedia device, a wearable device, or a home appliance.
- the type of node device is not limited to this, and the node device 200 may be any device capable of communicating with a server or another node device 200 through a network.
- the server device 100 and the node device 200 may be equipped with a communication circuit to perform network communication.
- a network may include a wired local area network (LAN), a wireless LAN (e.g., a Wi-Fi network), or a wide area network (WAN).
- LAN local area network
- WAN wide area network
- the node device 200 may communicate with other node devices 200 through a network.
- the node device 200 may be equipped with a communication circuit to perform communication through a network.
- the node device 200 can download files through the network.
- the node device 200 downloads (or transmits) a file stored in the server 100 through communication with the server 100, or communicates with another node device 200 through communication with the other node device 200. You can download files stored in .
- the node device 200 can download the entire file by receiving a file fragment of a file to be transmitted from one or more other node devices 200.
- a file fragment may refer to a piece of data that divides a file according to an arbitrary standard.
- the node device 200 may obtain information about another node device 200 that stores a file or a piece of the file to be transmitted from the server device 100. Specifically, the node device 200 may obtain the network address or identifier of another node device 200 that stores a file or piece of a file to be transmitted from the server device 100.
- the node device 200 may request transmission of a file or file fragment to another node device 200 that stores the file or file fragment to be transmitted through the acquired network address or identifier.
- the node device 200 that requests file transmission and downloads the file may be referred to as a receiving node.
- a node device 200 determined by the server to be suitable for transmitting a file to a receiving node may be referred to as a transmitting node.
- the receiving node and the transmitting node are not predetermined, and each node device 200 can perform both the receiving node and the transmitting node operations depending on the situation.
- the operation of the server device 100 may be understood as being performed by the processor 110 included in the server device 100, which will be described later, and the operation of the node device 200 may be performed by the node device 200, which will be described later. It may be understood that it is performed by the processor 210 included in the device 200.
- the receiving node may request transmission of a file to the server device 100.
- a request to transmit a file may include an identifier of the file.
- the server device 100 may determine one or more transmitting nodes that will transmit the file to the receiving node among one or more candidate nodes based on the time zone for file transmission, the network address of the receiving node, or the network address of one or more candidate nodes.
- a network address may mean an IP (Internet Protocol) address.
- IP Internet Protocol
- a network address, particularly a GeoIP address may be related to the geographic location of the node device that has that GeoIP address. Additionally, the closer the geographical location between two nodes is, the faster the transmission speed between them can be. Therefore, by comparing the network addresses between two nodes, you can estimate how fast the transmission speed between the two nodes will be.
- a candidate node may be a node device that stores a file that the receiving node has requested to be transmitted.
- the candidate node may be at least some or all of the node devices 200 on the network.
- the server device 100 may store information about files stored by each node device on the network in its memory. Alternatively, the server device 100 may access a separate database external to the server device 100 to obtain information about files stored by each node device on the network. In one embodiment, the server device 100 may determine a node device storing the file among the node devices 200 on the network as a candidate node in response to a file transmission request from a receiving node.
- the server device 100 responds to a file transfer request from a receiving node, requests and obtains information about whether each node on the network stores the file, and determines a candidate node based on this. You can.
- the server device 100 may store a list of node devices 200 that provide a file transfer function among the node devices 200 on the network. The server device 100 may determine a candidate node among the node devices 200 that provide a file transfer function. Through this, the server device 100 can prevent a candidate node that does not store the file from being inappropriately selected as a transmission node.
- a time zone related to the transmission of a file may mean a time zone that includes a time point related to the transmission of a file.
- the time zone for file transmission includes the time when the server device 100 transmits a transmission request from the receiving node, the time when the transmission request is received from the receiving node, or the time when the file is expected to be actually transmitted. It can mean the time zone.
- a time zone may mean a time range divided by 24 hours a day into preset intervals. For example, if the time when the file is expected to be actually transmitted is 13:40, the server device 100 uses the time zone of 13:00-14:00 or the time zone of 12:00-14:00 for transmission of the file. You can decide by time.
- the time zone may mean a time zone that includes a preset time interval centered on the time of file transmission. For example, if the time when the file is expected to be actually transmitted is 13:40 and the preset time interval is 1 hour, the server device 100 may determine the time zone for file transmission as 13:10-14:10. there is.
- the server device 100 may deliver (transmit) information about one or more determined transmitting nodes to the receiving node.
- Information about one or more transmitting nodes may include information indicating one or more transmitting nodes.
- the information indicating one or more transmitting nodes may include information indicating the network address of each of the one or more transmitting nodes.
- the receiving node may request transmission of a file from any one of one or more transmitting nodes.
- the server device 100 determines the expected transmission speed between the receiving node and each of the one or more candidate nodes based on the time zone regarding the transmission of the file, the network address of the receiving node, or the network address of one or more candidate nodes. You can decide.
- the transmission speed may be determined, for example, based on history information indicating the history of transmission speeds between each node device on the network. History information will be described later.
- the server device 100 may determine one or more transmitting nodes based on the expected transmission speed. In one embodiment, the server device 100 may determine a preset number of nodes as transmission nodes in order of the expected transmission speed. In one embodiment, the server device 100 may determine a candidate node having a transmission speed faster than a preset reference rate as a transmission node.
- the server device 100 may extend the time period for transmission and re-determine one or more transmission nodes. For example, if the existing time zone was 13:00-14:00 and the server device 100 extends the time zone for transmission, the time zone may be changed to 12:30-14:30, 12:00-15:00, It can be expanded to 12:00-14:00 or 13:00-15:00, etc. In one embodiment, the server device 100 may extend the time zone by a preset amount of time forward or backward from the existing time zone, expand the existing time zone by including a previous time zone, or extend the time zone by including a later time zone in the existing time zone. Through this, the server device 100 can secure an appropriate number of transmission nodes and prevent file transmission from failing.
- the server device 100 may determine the priority between one or more transmission nodes based on the expected transmission speed of each of the one or more transmission nodes.
- the information about one or more transmission nodes described above may include information indicating the priority of each transmission node.
- Information indicating priority may be delivered to the receiving node together when information about one or more transmitting nodes is delivered to the receiving node.
- the receiving node can sequentially request file transmission from the transmitting node based on priority. In this regard, for example, a situation in which the receiving node is informed about transmitting node A1 with an expected transmission rate of 50 Mbps, transmitting node B1 with an expected transmission rate of 40 Mbps, and transmitting node C1 with an expected transmission rate of 30 Mbps.
- the receiving node can first request transmission of the file from sending node A1, which has the fastest expected transmission speed. If file transmission from transmission node A1 is successfully completed, file transmission may not be requested from transmission node B1 and transmission node C1. However, if receiving a file transmission from transmission node A1 fails, file transmission can be requested from transmission node B1, which is expected to have the next fastest transmission speed. Likewise, if receiving a file transmission from transmission node B1 fails, file transmission can be requested from transmission node C1, which is expected to have the next fastest transmission speed. In this way, the receiving node can download the file from the transmitting node with the fastest transmission speed by requesting file transmission according to the priority determined based on the transmission speed.
- FIG. 2 is a block diagram of the server device 100 according to an embodiment of the present disclosure.
- the server device 100 may include one or more processors 110 and/or one or more memories 120 as components.
- at least one of the components of the server device 100 may be omitted, or another component may be added to the server device 100.
- some components may be integrated and implemented, or may be implemented as a single or plural entity.
- one or more processors 110 may be referred to as processor 110.
- the expression processor 110 may mean a set of one or more processors, unless the context clearly expresses otherwise.
- one or more memories 120 may be referred to as memory 120 .
- the expression memory 120 may mean a set of one or more memories, unless the context clearly expresses otherwise.
- the components inside or outside the server device 100 include a bus, General Purpose Input/Output (GPIO), Serial Peripheral Interface (SPI), or Mobile Industry Processor Interface (MIPI), etc. They are connected to each other and can exchange information (data, signals, etc.).
- GPIO General Purpose Input/Output
- SPI Serial Peripheral Interface
- MIPI Mobile Industry Processor Interface
- the processor 110 may execute software (eg, commands, programs, etc.) to control at least one component of the server device 100 connected to the processor 110. Additionally, the processor 110 may perform various operations related to the present disclosure, such as calculation, processing, data generation, and processing. Additionally, the processor 110 may load data, etc. from the memory 120 or store it in the memory 120 . In one embodiment, processor 110 receives a request to transmit a file from a receiving node and, based on the time zone for transmission of the file, the network address of the receiving node, and/or the network address of one or more candidate nodes, selects one or more candidate nodes. Among the nodes, one or more sending nodes can be determined to transmit the file to the receiving node. Here, the processor 110 may receive a file transmission request from the receiving node through a communication circuit that will be described later.
- the memory 120 can store various information (data).
- Information stored in the memory 120 is information acquired, processed, or used by at least one component of the server device 100, and may include software (eg, commands, programs, etc.).
- Memory 120 may include volatile and/or non-volatile memory.
- a command or program is software stored in the memory 120, an operating system for controlling the resources of the server device 100, an application, and/or various functions so that the application can utilize the resources of the server device 100. It may include middleware that provides to the application.
- the memory 120 may store instructions that, when executed by the processor 110, cause the processor 110 to perform an operation.
- the server device 100 may further include a communication circuit.
- the communication circuit may be omitted from the server device 100 depending on the embodiment.
- the communication circuit may perform wireless or wired communication between the server device 100 and one or more nodes.
- communication circuits include enhanced Mobile Broadband (eMBB), Ultra Reliable Low-Latency Communications (URLLC), Massive Machine Type Communications (MMTC), Long-Term Evolution (LTE), LTE Advance (LTE-A), and NR ( New Radio), UMTS (Universal Mobile Telecommunications System), GSM (Global System for Mobile communications), CDMA (Code Division Multiple Access), WCDMA (Wideband CDMA), WiBro (Wireless Broadband), WiFi (Wireless Fidelity), Bluetooth ), NFC (Near Field Communication), GPS (Global Positioning System), or GNSS (Global Navigation Satellite System) can be used for wireless communication.
- eMBB enhanced Mobile Broadband
- URLLC Ultra Reliable Low-Latency Communications
- MMTC Massive Machine Type Communications
- LTE Long-Term Evolution
- the communication circuit can perform wired communication according to methods such as Universal Serial Bus (USB), High Definition Multimedia Interface (HDMI), Recommended Standard-232 (RS-232), or Plain Old Telephone Service (POTS).
- USB Universal Serial Bus
- HDMI High Definition Multimedia Interface
- RS-232 Recommended Standard-232
- POTS Plain Old Telephone Service
- the server device 100 may be implemented by being integrated with another device.
- the communication circuit may function as a connection circuit or interface connecting the server device 100 and the other device.
- FIG. 3 is a block diagram of a node device 200 according to an embodiment of the present disclosure.
- the node device 200 may include one or more processors 210 and/or one or more memories 220 as components.
- at least one of the components of the node device 200 may be omitted, or another component may be added to the node device 200.
- additionally or alternatively, some components may be integrated and implemented, or may be implemented as a single or plural entity.
- one or more processors 210 may be referred to as processor 210.
- the expression processor 210 may mean a set of one or more processors, unless the context clearly expresses otherwise.
- one or more memories 220 may be referred to as memory 220 .
- the expression memory 220 may mean a set of one or more memories, unless the context clearly expresses otherwise.
- at least some of the components inside and outside the node device 200 include a bus, General Purpose Input/Output (GPIO), Serial Peripheral Interface (SPI), or Mobile Industry Processor Interface (MIPI), etc. They are connected to each other and can exchange information (data, signals, etc.).
- GPIO General Purpose Input/Output
- SPI Serial Peripheral Interface
- MIPI Mobile Industry Processor Interface
- the processor 210 may control at least one component of the node device 200 connected to the processor 210 by running software (eg, commands, programs, etc.). Additionally, the processor 210 may perform various operations related to the present disclosure, such as calculation, processing, data generation, and processing. Additionally, the processor 210 may load data, etc. from the memory 220 or store it in the memory 220 . In one embodiment, the processor 210 transmits a file transfer request to the server device 100 using a communication circuit, and transmits one or more files determined based on the time zone and network address regarding the transmission of the file from the server device 100. Information about the transmitting node can be received. Additionally, the processor 210 may request file transmission from one or more transmitting nodes through a communication circuit.
- software eg, commands, programs, etc.
- the processor 210 may perform various operations related to the present disclosure, such as calculation, processing, data generation, and processing. Additionally, the processor 210 may load data, etc. from the memory 220 or store it in the memory 220 .
- the memory 220 can store various information (data).
- Information stored in the memory 220 is information acquired, processed, or used by at least one component of the node device 200, and may include software (eg, commands, programs, etc.).
- Memory 220 may include volatile and/or non-volatile memory.
- a command or program is software stored in the memory 220, an operating system for controlling the resources of the node device 200, an application, and/or various functions so that the application can utilize the resources of the node device 200. It may include middleware that provides to the application.
- the memory 220 may store instructions that, when executed by the processor 210, cause the processor 210 to perform an operation.
- memory 220 may store information about the IP address, Internet service provider, and/or geographic location of node device 200.
- the processor 210 may control a communication circuit to obtain information about one or more transmitting nodes from the server device 100 and store the information in the memory 220.
- the node device 200 may further include a communication circuit.
- the communication circuit may be omitted from the node device 200 depending on the embodiment.
- the communication circuit may perform wireless or wired communication between the node device 200 and the server 100, or between the node device 200 and another node device.
- communication circuits include enhanced Mobile Broadband (eMBB), Ultra Reliable Low-Latency Communications (URLLC), Massive Machine Type Communications (MMTC), Long-Term Evolution (LTE), LTE Advance (LTE-A), and NR ( New Radio), UMTS (Universal Mobile Telecommunications System), GSM (Global System for Mobile communications), CDMA (Code Division Multiple Access), WCDMA (Wideband CDMA), WiBro (Wireless Broadband), WiFi (Wireless Fidelity), Bluetooth ), NFC (Near Field Communication), GPS (Global Positioning System), or GNSS (Global Navigation Satellite System) can be used for wireless communication.
- eMBB enhanced Mobile Broadband
- URLLC Ultra Reliable Low-Latency Communications
- MMTC Massive Machine Type Communications
- LTE Long-Term Evolution
- LTE-A LTE Advance
- NR New Radio
- UMTS Universal Mobile Telecommunications System
- GSM Global System for Mobile communications
- CDMA Code Division Multiple Access
- WCDMA Wideband CDMA
- WiBro Wireless Broadband
- the communication circuit can perform wired communication according to methods such as Universal Serial Bus (USB), High Definition Multimedia Interface (HDMI), Recommended Standard-232 (RS-232), or Plain Old Telephone Service (POTS).
- USB Universal Serial Bus
- HDMI High Definition Multimedia Interface
- RS-232 Recommended Standard-232
- POTS Plain Old Telephone Service
- the node device 200 may be implemented by being integrated with another device.
- the communication circuit may function as a connection circuit or interface connecting the node device 200 and the other device.
- Figure 4 is a diagram showing history information according to an embodiment of the present disclosure.
- History information 400 may be information indicating the history of transmission speed between one or more nodes.
- History information may be information (i.e., log) indicating the history of transmission between node devices and the transmission speed during transmission.
- History information 400 may be stored in the memory 120 of the server device 100.
- History information 400 includes the IP address of the sending node, the ISP (Internet Service Provider) of the sending node, the GeoIP of the sending node, the IP of the receiving node, the ISP of the receiving node, the GeoIP of the receiving node, the transmission speed, and the time of transmission. It may contain at least one of the following information.
- ISP may be information indicating the Internet service provider used by the node.
- GeoIP may be information indicating the geographical location of the node, corresponding to the IP address of the node.
- the processor 110 of the server device 100 controls the communication circuit to obtain information about the transmission speed from at least one of the two nodes where file transmission was performed, and stores the obtained information as history information. It can be saved at (120).
- the server device 100 may determine the transmission speed between the receiving node and each of one or more candidate nodes based on the time zone and history information regarding the transmission of the file. That is, the server device 100 may determine the transmission speed between the receiving node and each of one or more candidate nodes based on statistics based on history information. Server device 100 may determine one or more transmitting nodes further based on the determined transmission rate. Through this, the server device 100 can improve the file transfer speed between the receiving node and the transmitting node.
- the server device 100 may determine at least some of the history information based on the time zone and determine one or more transmission nodes based on the at least some of the determined history information. That is, the server device 100 determines at least some of the history information including the transfer performance point 408 in the time zone related to file transfer among the history information about the transmission speed, and based on the determined at least some history information, the time zone It is possible to determine the expected transmission rate that the receiving node will have in relation to each of one or more candidate nodes. In one embodiment, the server device 100 may determine the transmission rate corresponding to each candidate node using a statistical method, based on at least some of the determined history information.
- the expected transmission rate corresponding to each candidate node may be determined by calculating the average of the transmission rate corresponding to the receiving node and one candidate node from at least some of the determined history information.
- the present disclosure can determine the expected transmission rate corresponding to each candidate node from at least some of the determined history information using various methods other than averaging.
- the server device 100 may train an artificial neural network-based learning model based on history information.
- the input variables of the artificial neural network-based learning model include at least one of the following: IP address of the sending node, ISP of the sending node, GeoIP of the sending node, IP of the receiving node, ISP of the receiving node, GeoIP of the receiving node, and transmission performance time point. It can be done, and the output value can be the transmission speed.
- the server device 100 may determine a transmission rate between a receiving node and each of one or more candidate nodes based on a previously learned artificial neural network-based learning model.
- the server device 100 selects one or more candidates based on the day of the week corresponding to the time zone for the transmission requested from the receiving node, whether the time zone for the requested transmission from the receiving node corresponds to a public holiday, and history information.
- the transmission speed between each node can be determined.
- the server device 100 may check the day of the week on which the transmission corresponding to the history information was performed and/or whether the transmission corresponding to the history information was performed on a public holiday.
- the server device 100 filters history information corresponding to the day of the week corresponding to the time zone for transmission requested from the receiving node and/or whether the time zone related to transmission requested from the receiving node corresponds to a public holiday, and filters the history information. Based on this, the transmission rate corresponding to each candidate node can be determined.
- the server device 100 may filter history information corresponding to a transmission made on the same day of the week as the day of the week corresponding to the time zone for file transmission, from among history information about transmission speed. In another embodiment, if the day of the week corresponding to the time zone for file transmission among the history information is a weekday, the server device 100 filters the history information corresponding to transmissions made on weekdays and corresponds to the time zone for file transmission. If the day of the week is a weekend, history information corresponding to transmissions made on the weekend can be filtered. In another embodiment, the server device 100 filters history information corresponding to transmissions made on weekends or public holidays if the time period for file transfer falls on a weekend or public holiday, and the time period for file transfer falls on a weekend or public holiday. If this does not apply, history information corresponding to transmissions made on days other than weekends or public holidays can be filtered.
- node devices such as computers used in a company may provide high transfer speeds during weekday working hours, and relatively slow transfer speeds on weekends or after work hours.
- node devices such as computers or portable communication terminals used in the home may provide transfer rates independent of whether it is weekdays or weekends, working hours or off-hours, or rather provide relatively fast transfer rates on weekends or off-hours. You can also provide it. Taking this into account, an accurate transmission rate corresponding to the time zone for transmission can be determined by determining the transmission rate through filtered history information based on time zone, day of the week, and/or whether it falls on a public holiday.
- the receiving node requests the server device 100 to transmit a file during the time period of 13:00-14:00 on weekdays, not public holidays.
- the server device 100 may filter history information corresponding to file transfers performed at times included in the 13:00-14:00 time zone on weekdays that are not public holidays, among the history information regarding file transfers.
- the server device 100 determines an expected transmission rate for one or more candidate nodes based on filtered history information corresponding to the time period of 13:00-14:00 on weekdays other than public holidays, and transmits data based on the determined transmission rate.
- a node device such as a computer used in a company that is expected to have a high transfer speed during weekday daytime hours may be determined as one or more sending nodes.
- FIG. 5 is a diagram illustrating the operation process of a server device and a node device according to an embodiment of the present disclosure.
- the operation of the server device 100 may be understood as being performed by the processor 110 of the server device 100, or by the processor 110 controlling the communication circuit. there is.
- the operation of the receiving node 520 is performed by the processor 210 of the node device 200 corresponding to the receiving node 520, or by the processor 210 through communication. It can be understood as being performed by controlling the circuit.
- the receiving node 520 may request file transmission from the server device 100 (S501).
- the receiving node 520 may request transmission of a file by transmitting an identifier that can specify the requested file and data indicating a file transmission request to the server device 100.
- the server device 100 may determine one or more transmitting nodes (S502) and transmit information about the determined one or more transmitting nodes to the receiving node 520 (S503).
- information about the transmitting node may include an identifier that can specify each of one or more transmitting nodes or a network address of each of the one or more transmitting nodes.
- information about one or more transmitting nodes may include information indicating priorities between one or more transmitting nodes.
- the receiving node 520 may request file transmission from one of the one or more transmitting nodes 530 (S504). That is, the receiving node 520 specifies the transmitting node 530 to request file transmission based on the information about the transmitting node received from the server device 100, and requests the specified transmitting node 530 to transmit the file. You can. At this time, the receiving node 520 can request transmission of a file by transmitting an identifier that can specify the requested file and data indicating a file transmission request to the transmitting node 530. In response to a file transmission request from the receiving node 520, the transmitting node 530 may transmit the file to the receiving node 520 if file transmission is possible (S505).
- the receiving node 520 may transmit information indicating the transmission speed in the corresponding transmission to the server device 100 (S506).
- the server device 100 may store information indicating the transmission speed in the memory 120 as history information along with information about the receiving node 520 and the transmitting node 530 where the transmission was performed. . Through this, the server device 100 can additionally utilize the corresponding history information in the process of determining a transmission node for a later requested file transmission.
- FIG. 6 is a diagram illustrating the operation process of a server device and a node device according to an embodiment of the present disclosure. Since the operations of S601 to S604 are the same as the operations of S501 to S504 described above, detailed descriptions are omitted.
- file transmission may fail (S605). For example, if the transmitting node 530 is turned off, the communication state between the transmitting node 530 and the receiving node 520 is unstable, or the file is deleted from the transmitting node 530, file transfer is not possible. You may fail.
- the receiving node 520 may request file transmission from another transmitting node based on information about one or more transmitting nodes received from the server device 100. At this time, the receiving node 520 may sequentially request file transmission from each of one or more transmitting nodes according to the expected transmission speed or priority. For example, the receiving node 520 may request file transmission from the transmitting node with the next highest expected transmission speed after the transmitting node 530 (i.e., the transmitting node with the next priority).
- the receiving node 520 requests file transmission from all transmitting nodes corresponding to information about one or more transmitting nodes received from the server device 100, but if all files fail to be received, more transmission is performed to the server device 100. Information about the node can be requested (S606).
- the server device 100 may determine one or more transmitting nodes again in response to a request for more information about transmitting nodes from the receiving node 520 (S607).
- the server device 100 when the server device 100 receives a request from the receiving node 520 for information about a larger number of transmitting nodes, the server device 100 extends the time zone for file transmission and transmits one or more files based on the extended time zone.
- the node can be determined again.
- the server device 100 may expand the time zone that was the standard in the existing operation (S602) and determine one or more transmission nodes again based on the new time zone.
- the server device 100 extends a preset time (e.g., 30 minutes) before or after the existing time zone (e.g., 13:00-14:00), or (e.g., 12:30-14:30). By including time zones before (e.g. 12:00-13:00) and/or after (e.g. 14:00-15:00) an existing time zone (e.g. 13:00-14:00). The time zone can be expanded.
- the server device 100 may transmit information about the re-determined transmitting node to the receiving node 520 (S608).
- the receiving node 520 may request file transmission from a new transmitting node again based on the information about one or more transmitting nodes that has been re-delivered.
- the server device 100 in response to the receiving node 520 requesting file transmission in the time zone of 13:00-14:00, the server device 100 sets the transmission speed in that time zone according to a preset standard. It can be assumed that information about transmitting nodes A2, B2, and C2, which are expected to be fast, is delivered to the receiving node 520. At this time, if the receiving node 520 succeeds in receiving a file from any one of the transmitting nodes A2, B2, and C2, it may not request information about a larger number of transmitting nodes from the server device 100. .
- the receiving node 520 requests information about a larger number of transmitting nodes from the server device 100, and the server device 100 For example, by extending the existing time zone of 13:00-14:00 to 12:30-14:30, sending nodes D2, E2, F2 and Information about G2 can be additionally determined. Then, the server device 100 delivers the determined information about the transmitting nodes D2, E2, F2, and G2 to the receiving node 520, and the receiving node 520 can request the transmitted transmitting node to transmit the file again. Through this, the server device 100 can additionally secure an appropriate number of transmission nodes and prevent file transmission from failing.
- FIG. 7 is a diagram illustrating the operation process of a server device and a node device according to an embodiment of the present disclosure. Since the operations of S701, S704, and S705 are the same as the operations of S501, S502, and S503 described above, detailed descriptions are omitted.
- the server device 100 may request each network address (e.g., IP address) information from one or more candidate nodes 710 in response to a file transfer request from the receiving node 520 (S702). .
- the file transfer request of the receiving node 520 may include network address information of the receiving node 520.
- the server device 100 obtains the network address information of each of the one or more candidate nodes 710, and obtains One or more transmitting nodes may be determined based on network address information.
- the server device 100 Based on the network address of the receiving node 520 and/or the candidate node 710, the server device 100 provides information about the Internet Service Provider (ISP) of the receiving node 520 and/or the candidate node 710, and You can obtain information about geographical location.
- the server device 100 includes a memory that stores a table containing information about the Internet service provider and geographic location corresponding to the network address of each node, or the Internet service provider corresponding to the network address. and memory storing tables containing information about geographic locations.
- the server device 100 may obtain information about the geographic location of the receiving node 520 and/or the candidate node 710 through GeoIP.
- the server device 100 can check country, city, or zip code information corresponding to the IP address.
- the server device 100 may previously store information about the Internet service provider and/or geographic location extracted based on the network address of the candidate node.
- the server device 100 transmits one or more transmitting nodes based further on information indicating the Internet service provider of the receiving node 520 and information indicating the Internet service provider of each of the one or more candidate nodes 710.
- the node can be determined.
- An Internet service provider may refer to a company that provides Internet access services to individuals or organizations, and networks of different bandwidths may be used depending on the Internet service provider.
- the file transfer speed between two nodes with the same Internet service provider may be faster than the file transfer speed between two nodes with different Internet service providers.
- the server device 100 may determine one or more transmitting nodes among candidate nodes that have the same Internet service provider as the receiving node 520. That is, the server device 100 may filter candidate nodes having the same Internet service provider as the receiving node among one or more candidate nodes 710 and then determine one or more transmitting nodes from among the filtered candidate nodes.
- the server device 100 determines information indicating the geographic location of the receiving node 520, based on the network address of the receiving node, and based on the network addresses of each of the one or more candidate nodes 710. , determine information indicating the geographic location of each of the one or more candidate nodes 710, and further based on the geographic locations of the receiving node 520 and each of the one or more candidate nodes 710, determine one or more transmitting nodes. there is.
- the file transfer speed between two nodes in the same geographical location may be faster than the file transfer speed between two nodes in different geographical locations.
- the server device 100 may determine one or more transmitting nodes among candidate nodes 710 that have the same geographic location as the receiving node 520. That is, the server device 100 may filter candidate nodes having the same geographic location as the receiving node among the one or more candidate nodes 710 and then determine one or more transmitting nodes from among the filtered candidate nodes.
- the server device 100 includes the corresponding transmission performance point 408 in the history information 400 in the time zone for transmission, and the Internet service provider corresponding to the ISP 402 of the transmitting node is the receiving node. History information that is the same as the Internet service provider of 520 and the geographic location corresponding to the GeoIP of the sending node is the same as the geographic location of the receiving node 520 may be filtered. Then, the server device 100 determines whether the corresponding node is storing the file requested from the receiving node based on the IP address 401 of the transmitting node among the filtered history information, and determines whether the node is storing the requested file. History information corresponding to the transmitting node can be filtered. In this way, the server device 100 compares the ISP and GeoIP of each node without complex calculations to estimate a candidate node with a high transmission speed, thereby reducing the amount of calculation.
- server device 100 may request respective Internet service provider and/or geographic location information from one or more candidate nodes 710 in response to a file transfer request from receiving node 520.
- One or more candidate nodes 710 transmit information about each Internet service provider and geographic location to the server device 100, so that the server device 100 sends one or more candidate nodes 710 information about each Internet service provider and geographic location.
- Information may be obtained, and one or more transmitting nodes may be determined based on the obtained information.
- FIG. 8 is a diagram illustrating the operation process of a server device and a node device according to an embodiment of the present disclosure. Since the operations of S801 and S802 are the same as the operations of S501 and S502 described above, detailed descriptions are omitted.
- the server device 100 may directly command the determined one or more transmitting nodes to transmit a file to the receiving node 520 (S803).
- the server device 100 commands file transmission for the receiving node 520 by transmitting an identifier that can specify the file requested by the receiving node 520 and data indicating a file transfer command to the transmitting node 530. can do.
- the server device 100 may sequentially command one or more transmitting nodes 530 to transmit a file to the receiving node 520 according to a priority determined based on the expected transmission speed.
- the server device 100 may command the transmitting node 530 with the highest priority (i.e., with the fastest expected transfer speed) to directly transmit the file to the receiving node 520.
- the transmitting node 530 may transmit a file to the receiving node 520 in response to receiving a file transmitting command from the server device 100 (S804).
- the server device 100 transmits the file through the node with the fastest transmission speed among the nodes capable of transmitting files to the receiving node 520, without transmitting information about one or more transmission nodes determined to the receiving node 520. can be provided.
- Figure 9 is a flow chart illustrating a method 900 according to one embodiment of the present disclosure.
- the method 900 includes an operation (S910) in which the server device 100 receives a request to transmit a file from a receiving node, and the server device 100 determines a time zone related to the transmission of the file, and the receiving node 520 Based on the network address of ) and the network address of one or more candidate nodes 710, an operation (S920) of determining one or more transmitting nodes 530 to transmit a file to a receiving node among one or more candidate nodes 710 and a server device (100) may include an operation (S930) of transmitting information about one or more transmitting nodes (530) to the receiving node (520).
- operation S920 further bases the information indicating the Internet service provider (ISP) of the receiving node 520 and the information indicating the Internet service provider of each of the one or more candidate nodes 710, and transmits one or more An operation of determining the node 530 may be included.
- ISP Internet service provider
- operation S920 may include determining one or more transmitting nodes 530 among candidate nodes having the same Internet service provider as the receiving node 520.
- operation S920 is an operation of determining information indicating the geographic location of the receiving node 520, based on the network address of the receiving node 520, based on each of the network addresses of one or more candidate nodes 710. determining information indicating the geographic location of each of the one or more candidate nodes (710), and/or one or more transmitting nodes based further on the geographic locations of the receiving node (520) and each of the one or more candidate nodes (710). It may include an operation to determine (530).
- determining one or more transmitting nodes 530 based further on the geographic location of each of the receiving node 520 and the one or more candidate nodes 710 may include determining one or more transmitting nodes 530 to have the same geographic location as the receiving node 520.
- the branch may include an operation of determining one or more transmitting nodes 530 among candidate nodes.
- operation S920 may include determining one or more transmitting nodes 530 among one or more candidate nodes 710 storing a file.
- operation S920 is an operation of determining a transmission rate between the receiving node 520 and each of the one or more candidate nodes 710 based on the time zone and history information regarding the transmission of the file and further based on the determined transmission rate.
- an operation of determining one or more transmitting nodes 530 may be included.
- the operation of determining the transmission rate between the receiving node 520 and each of the one or more candidate nodes 710 is based on the day of the week corresponding to the time zone, whether the time zone corresponds to a public holiday, and history information, and one or more candidate nodes 710.
- An operation of determining a transmission rate between each node 710 may be included.
- operation S920 may include determining at least some of the history information based on a time zone, and/or determining one or more transmitting nodes 530 based on the determined at least some of the history information. .
- the method 900 may further include an operation of the server device 100 determining a priority between one or more transmitting nodes 530 based on the determined transmission rate.
- the method 900 includes, when the number of one or more transmitting nodes 530 is less than a preset reference number, the server device 100 extends the time zone to re-determine one or more transmitting nodes 530. Additional actions may be included.
- the method 900 operates when the server device 100 receives a request from the receiving node 520 for information about a greater number of transmitting nodes 530 than the number of one or more transmitting nodes 530. may be expanded to include an operation of re-determining one or more transmitting nodes 530.
- the method 900 is such that, when a file is transmitted between any one of one or more transmitting nodes 530 and a receiving node 520, the server device 100 records one or more history information about the transmission of the file.
- the above operation of storing data in the memory 120 may further be included.
- Methods according to the present disclosure may be computer-implemented methods.
- each operation of the corresponding methods is shown and described in a predetermined order, but in addition to being performed sequentially, each operation may be performed in an order that can be arbitrarily combined according to the present disclosure.
- at least some of the operations may be performed in parallel, iteratively, or heuristically. This disclosure does not exclude making changes or modifications to the methods.
- at least some operations may be omitted or other operations may be added.
- Various embodiments of the present disclosure may be implemented as software recorded on a machine-readable recording medium.
- the software may be software for implementing various embodiments of the present disclosure described above.
- Software can be inferred from various embodiments of the present disclosure by programmers in the technical field to which this disclosure pertains.
- software can be instructions (e.g. code or code segments) or programs that can be read by a device.
- a device is a device that can operate according to commands called from a recording medium, and may be, for example, a computer.
- the device may be the server device 100 or the node device 200 according to embodiments of the present disclosure.
- the device's processor may execute a called instruction and cause the device's components to perform a function corresponding to the instruction.
- the processor may be processors 110 and 210 according to embodiments of the present disclosure.
- a recording medium may refer to any type of recording medium in which data is stored that can be read by a device. Recording media may include, for example, ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage devices, etc. In one embodiment, the recording medium may be memory 120 or 220. In one embodiment, the recording medium may be implemented in a distributed form, such as in a computer system connected to a network. Software may be distributed, stored, and executed on a computer system, etc. The recording medium may be a non-transitory recording medium.
- a non-transitory recording medium refers to a tangible medium regardless of whether data is stored semi-permanently or temporarily, and does not include signals that are temporarily propagated.
- Appendix 1 One or more processors; and one or more memories storing instructions that, when executed by the one or more processors, cause the one or more processors to perform an operation, wherein the one or more processors receive a file transmission request from a receiving node, and transmit the file. Based on a time zone for transmission, a network address of the receiving node, and a network address of one or more candidate nodes, the server device determines one or more sending nodes among the one or more candidate nodes to transmit the file to the receiving node.
- Appendix 3 The server device of Appendix 1 or 2, wherein the one or more processors provide information indicating the Internet Service Provider (ISP) of the receiving node and the Internet service provider of each of the one or more candidate nodes. Further based on the information, the one or more transmitting nodes are determined.
- ISP Internet Service Provider
- Appendix 5 The server device according to any one of Appendices 1 to 4, wherein the one or more processors determine information indicating the geographical location of the receiving node based on the network address of the receiving node, and the one or more candidates Based on each of the node's network addresses, determine information indicating a geographic location of each of the one or more candidate nodes, and further based on the geographic locations of each of the receiving node and the one or more candidate nodes, the one or more transmitting nodes Decide.
- Appendix 13 The server device according to any one of Appendices 1 to 12, wherein the one or more processors, when the number of the one or more transmitting nodes is less than a preset reference number, extend the time period and re-activate the one or more transmitting nodes. decide
- Appendix 14 The server device according to any one of Appendices 1 to 13, wherein the one or more processors, when receiving a request from the receiving node for information on a larger number of transmitting nodes than the number of the one or more transmitting nodes, By expanding, the one or more transmitting nodes are determined again.
- Appendix 15 The server device according to any one of Appendices 1 to 14, wherein the one or more processors, when the file is transmitted between any one of the one or more transmitting nodes and the receiving node, records the transmission of the file. Information is stored in the one or more memories.
- Appendix 16 One or more processors; and one or more memories storing instructions that, when executed by the one or more processors, cause the one or more processors to perform an operation, wherein the one or more processors transmit a file transfer request to a server device, and the server device A node device that receives information about one or more transmission nodes determined based on a time zone and network address related to transmission of the file from and requests transmission of the file to the one or more transmission nodes.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 개시는 서버 장치를 제안한다. 본 개시에 따른 장치는 하나 이상의 프로세서 및 하나 이상의 메모리를 포함할 수 있다. 하나 이상의 프로세서는, 수신 노드로부터 파일의 전송 요청을 수신하고, 파일의 전송에 관한 시간대, 수신 노드의 네트워크 주소 및 하나 이상의 후보 노드의 네트워크 주소에 기초하여, 하나 이상의 후보 노드 중에서 파일을 수신 노드에 전송할 하나 이상의 송신 노드를 결정할 수 있다.
Description
본 개시는 파일을 전송할 노드를 결정하는 기술에 관한 것이다.
피어 투 피어(P2P, Peer-to-Peer) 통신은 서버를 거치지 않고, 노드와 노드를 직접 연결하는 통신 방식을 의미한다. 피어 투 피어 통신을 통해, 노드 간에 파일이 공유될 수 있다. 피어 투 피어 통신에 있어서, 다른 노드로부터 파일을 수신하기 전 파일을 공유할 노드가 선정될 수 있다.
기존에는 서버가 각 노드에 핑(Ping) 테스트를 수행함으로써 해당 노드에 대한 전송 속도를 진단하였다. 핑 테스트는 작은 크기의 데이터를 진단 대상이 되는 노드로 전송함으로써 해당 노트에 대한 전송 속도를 진단하는 방식일 수 있다. 그러나 실제 데이터를 전송함에 있어서는 작은 크기의 데이터를 전송하는 것과는 달리 다양한 대역폭이 사용될 수 있다. 따라서 핑 테스트를 통해 진단된 전송 속도는 실제 데이터의 전송 속도와 차이가 있을 수 있다. 즉, 핑 테스트에 따른 전송 속도 진단은 부정확할 수 있다.
본 개시는 피어 투 피어 통신의 파일 전송 속도를 개선하는 기술을 제공한다.
본 개시의 한 측면으로서, 서버 장치가 제안될 수 있다. 본 개시의 한 측면에 따른 서버 장치는, 하나 이상의 프로세서, 및 하나 이상의 메모리를 포함할 수 있다. 상기 하나 이상의 메모리는 상기 하나 이상의 프로세서에 의한 실행 시, 상기 하나 이상의 프로세서가 연산을 수행하도록 하는 명령들이 저장될 수 있다. 상기 하나 이상의 프로세서는, 수신 노드로부터 파일의 전송 요청을 수신하고, 상기 파일의 전송에 관한 시간대, 상기 수신 노드의 네트워크 주소 및 하나 이상의 후보 노드의 네트워크 주소에 기초하여, 상기 하나 이상의 후보 노드 중에서 상기 파일을 상기 수신 노드에 전송할 하나 이상의 송신 노드를 결정할 수 있다.
본 개시의 한 측면으로서, 노드 장치가 제안될 수 있다. 본 개시의 한 측면에 따른 노드 장치는, 하나 이상의 프로세서, 및 하나 이상의 메모리를 포함할 수 있다. 상기 하나 이상의 메모리는 상기 하나 이상의 프로세서에 의한 실행 시, 상기 하나 이상의 프로세서가 연산을 수행하도록 하는 명령들이 저장될 수 있다. 상기 하나 이상의 프로세서는, 서버 장치에 파일의 전송 요청을 송신하고, 상기 서버 장치로부터 상기 파일의 전송에 관한 시간대 및 네트워크 주소에 기초하여 결정된 하나 이상의 송신 노드에 대한 정보를 수신하고, 상기 하나 이상의 송신 노드에 상기 파일의 전송을 요청할 수 있다.
본 개시의 한 측면으로서, 방법이 제안될 수 있다. 본 개시의 한 측면에 따른 방법은, 서버 장치가, 수신 노드로부터 파일의 전송 요청을 수신하는 동작, 상기 서버 장치가, 상기 파일의 전송에 관한 시간대, 상기 수신 노드의 네트워크 주소 및 하나 이상의 후보 노드의 네트워크 주소에 기초하여, 상기 하나 이상의 후보 노드 중에서 상기 파일을 상기 수신 노드에 전송할 하나 이상의 송신 노드를 결정하는 동작, 및 상기 서버 장치가, 상기 하나 이상의 송신 노드에 대한 정보를 상기 수신 노드에 전달하는 동작을 포함할 수 있다.
본 개시의 적어도 한 실시예에 의하면, 피어 투 피어 통신의 파일 전송 속도를 개선할 수 있다.
본 개시의 적어도 한 실시예에 의하면, 파일을 전송할 적절한 개수의 송신 노드에 대한 정보를 파일을 전송받고자 하는 수신 노드에 제공할 수 있다.
본 개시의 적어도 한 실시예에 의하면, 파일의 전송에 관한 시간대에 전송 속도가 빠른 노드를 결정할 수 있다.
도 1은 본 개시의 일 실시예에 따른 서버 장치 및 노드 장치의 동작 과정을 도시한 도면이다.
도 2는 본 개시의 일 실시예에 따른 서버 장치의 블록도를 나타낸 도면이다.
도 3은 본 개시의 일 실시예에 따른 노드 장치의 블록도를 나타낸 도면이다.
도 4는 본 개시의 일 실시예에 따른 이력 정보를 나타내는 도면이다.
도 5는 본 개시의 일 실시예에 따른 서버 장치 및 노드 장치의 동작 과정을 도시한 도면이다.
도 6은 본 개시의 일 실시예에 따른 서버 장치 및 노드 장치의 동작 과정을 도시한 도면이다.
도 7은 본 개시의 일 실시예에 따른 서버 장치 및 노드 장치의 동작 과정을 도시한 도면이다.
도 8은 본 개시의 일 실시예에 따른 서버 장치 및 노드 장치의 동작 과정을 도시한 도면이다.
도 9는 본 개시의 일 실시예에 따른 방법을 나타낸 흐름도이다.
본 문서에 기재된 다양한 실시예들은, 본 개시의 기술적 사상을 명확히 설명하기 위한 목적으로 예시된 것이며, 이를 특정한 실시 형태로 한정하려는 것이 아니다. 본 개시의 기술적 사상은, 본 문서에 기재된 각 실시예의 다양한 변경(modifications), 균등물(equivalents), 대체물(alternatives) 및 각 실시예의 전부 또는 일부로부터 선택적으로 조합된 실시예를 포함한다. 또한 본 개시의 기술적 사상의 권리 범위는 이하에 제시되는 다양한 실시예들이나 이에 대한 구체적 설명으로 한정되지 않는다.
기술적이거나 과학적인 용어를 포함해서, 본 문서에서 사용되는 용어들은, 달리 정의되지 않는 한, 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 일반적으로 이해되는 의미를 가질 수 있다.
본 문서에서 사용되는 "포함한다", "포함할 수 있다", "구비한다", "구비할 수 있다", "가진다", "가질 수 있다" 등과 같은 표현들은, 대상이 되는 특징(예: 기능, 동작 또는 구성요소 등)이 존재함을 의미하며, 다른 추가적인 특징의 존재를 배제하지 않는다. 즉, 이와 같은 표현들은 다른 실시예를 포함할 가능성을 내포하는 개방형 용어(open-ended terms)로 이해되어야 한다.
본 문서에서 사용되는 단수형의 표현은, 문맥상 다르게 뜻하지 않는 한 복수형의 의미를 포함할 수 있으며, 이는 청구항에 기재된 단수형의 표현에도 마찬가지로 적용된다.
본 문서에서 사용되는 "A, B, 및 C," "A, B, 또는 C," "A, B, 및/또는 C" 또는 "A, B, 및 C 중 적어도 하나," "A, B, 또는 C 중 적어도 하나," "A, B, 및/또는 C 중 적어도 하나," "A, B, 및 C 중에서 선택된 적어도 하나," "A, B, 또는 C 중에서 선택된 적어도 하나," "A, B, 및/또는 C 중에서 선택된 적어도 하나" 등의 표현은, 각각의 나열된 항목 또는 나열된 항목들의 가능한 모든 조합들을 의미할 수 있다. 예를 들어, "A 및 B 중 적어도 하나"는, (1) A, (2) A 중 적어도 하나, (3) B, (4) B 중 적어도 하나, (5) A 중 적어도 하나 및 B 중 적어도 하나, (6) A 중 적어도 하나 및 B, (7) B 중 적어도 하나 및 A, (8) A 및 B를 모두 지칭할 수 있다.
본 문서에서 사용되는 "~에 기초하여"라는 표현은, 해당 표현이 포함되는 어구 또는 문장에서 기술되는, 결정, 판단의 행위 또는 동작에 영향을 주는 하나 이상의 인자를 기술하는데 사용되고, 이 표현은 해당 결정, 판단의 행위 또는 동작에 영향을 주는 추가적인 인자를 배제하지 않는다.
본 문서에서 사용되는, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "연결되어" 있다거나 "접속되어" 있다는 표현은, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결 또는 접속되는 것뿐 아니라, 새로운 다른 구성요소(예: 제3 구성요소)를 매개로 하여 연결 또는 접속되는 것을 의미할 수 있다.
이하, 첨부된 도면들을 참조하여, 본 개시의 다양한 실시예들을 설명한다. 첨부된 도면 및 도면에 대한 설명에서, 동일하거나 실질적으로 동등한(substantially equivalent) 구성요소에는 동일한 참조부호가 부여될 수 있다. 또한, 이하 다양한 실시예들의 설명에 있어서, 동일하거나 대응하는 구성요소를 중복하여 기술하는 것이 생략될 수 있으나, 이는 해당 구성요소가 그 실시예에 포함되지 않는 것을 의미하지는 않는다.
도 1은 본 개시의 일 실시예에 따른 서버 장치와 노드 장치의 동작 과정을 도시한 도면이다. 본 개시의 일 실시예에 따른 서버 장치(100)는 네트워크를 통해, 노드 장치(200)와 통신할 수 있다. 노드 장치(200)는 컴퓨터(200a), 랩탑(laptop, 200b), 휴대용 통신 단말(스마트폰 등, 200c), 휴대용 멀티미디어 장치, 웨어러블 장치 또는 가전 장치 중 하나일 수 있다. 단, 노드 장치의 종류는 이에 한정되지 않으며, 노드 장치(200)는 네트워크를 통해 서버 또는 다른 노드 장치(200)와 통신을 수행할 수 있는 임의의 장치일 수 있다. 서버 장치(100) 및 노드 장치(200)는 네트워크 통신을 수행하기 위한 통신 회로를 구비할 수 있다. 예를 들어, 네트워크는 유선 LAN(Local Area Network), 무선 LAN(예: Wi-Fi 네트워크) 또는 WAN(Wide Area Network)을 포함할 수 있다. 네트워크를 통해 장치들 간에 파일 전송이 이루어질 수 있다.
본 개시의 일 실시예에 따른 노드 장치(200)는 네트워크를 통해, 다른 노드 장치(200)와 통신할 수 있다. 노드 장치(200)는 네트워크를 통한 통신을 수행하기 위해, 통신 회로를 구비할 수 있다. 노드 장치(200)는 네트워크를 통해 파일을 다운로드 받을 수 있다. 노드 장치(200)는 서버(100)와의 통신을 통해, 서버(100)에 저장되어 있는 파일을 다운로드(또는 전송) 받거나, 또는 다른 노드 장치(200)와의 통신을 통해, 다른 노드 장치(200)에 저장되어 있는 파일을 다운로드 받을 수 있다.
일 실시예에 따른 노드 장치(200)는 하나 이상의 다른 노드 장치(200)로부터 전송받고자 하는 파일의 파일 조각을 수신함으로써, 전체 파일을 다운로드 받을 수 있다. 파일 조각은 한 파일을 임의의 기준에 따라 나눈 데이터 조각을 의미할 수 있다. 노드 장치(200)는 서버 장치(100)로부터 전송받고자 하는 파일 또는 해당 파일의 조각을 저장하고 있는 다른 노드 장치(200)에 대한 정보를 획득할 수 있다. 구체적으로, 노드 장치(200)는 서버 장치(100)로부터 전송받고자 하는 파일 또는 파일의 조각을 저장하고 있는 다른 노드 장치(200)의 네트워크 주소 또는 식별자를 획득할 수 있다. 노드 장치(200)는 획득한 네트워크 주소 또는 식별자를 통해, 전송받고자 하는 파일 또는 파일의 조각을 저장하고 있는 다른 노드 장치(200)에 파일 또는 파일의 조각의 전송을 요청할 수 있다. 파일의 전송을 요청하고, 파일을 다운로드 받는 노드 장치(200)는 수신 노드로 지칭될 수 있다. 서버에 의해 수신 노드에 파일을 전송하기에 적합하다고 결정된 노드 장치(200)는 송신 노드로 지칭될 수 있다. 수신 노드와 송신 노드는 미리 정해져 있지 않으며, 노드 장치(200) 각각은 상황에 따라서 수신 노드 및 송신 노드의 동작을 모두 수행할 수 있다.
이하, 설명되는 내용에서, 서버 장치(100)의 동작은 후술될 서버 장치(100)에 포함되는 프로세서(110)에 의해 수행되는 것으로 이해될 수 있으며, 노드 장치(200)의 동작은 후술될 노드 장치(200)에 포함되는 프로세서(210)에 의해 수행되는 것으로 이해될 수 있다.
수신 노드는 서버 장치(100)로 파일의 전송을 요청할 수 있다. 일 실시예에서, 파일의 전송 요청은 해당 파일의 식별자 등을 포함할 수 있다.
서버 장치(100)는 파일의 전송에 관한 시간대, 수신 노드의 네트워크 주소 또는 하나 이상의 후보 노드의 네트워크 주소에 기초하여, 하나 이상의 후보 노드 중에서 파일을 수신 노드에 전송할 하나 이상의 송신 노드를 결정할 수 있다.
본 개시에서 네트워크 주소는 IP(Internet Protocol) 주소를 의미할 수 있다. 네트워크 주소, 그 중 특히 GeoIP 주소는 그 GeoIP 주소를 가지는 노드 장치의 지리적 위치와 관계될 수 있다. 또한 두 노드 간 지리적 위치가 가까울수록 두 노드 간의 전송 속도가 빠를 수 있다. 따라서 두 노드 간의 네트워크 주소를 대비함으로써, 두 노드 간의 전송 속도가 얼마나 빠를지 예상할 수 있다.
본 개시에서, 후보 노드는 수신 노드가 전송을 요청한 파일을 저장하고 있는 노드 장치일 수 있다. 후보 노드는 네트워크상 노드 장치(200) 중 적어도 일부 또는 전부일 수 있다. 서버 장치(100)는 네트워크상 노드 장치 각각이 저장하고 있는 파일에 대한 정보를 서버 장치(100)의 메모리에 저장하고 있을 수 있다. 또는 서버 장치(100)는 서버 장치(100) 외부의 별도 데이터베이스에 접근하여, 네트워크상 노드 장치 각각이 저장하고 있는 파일에 대한 정보를 획득할 수도 있다. 일 실시예에서, 서버 장치(100)는 수신 노드로부터의 파일 전송 요청에 응답하여, 네트워크상 노드 장치(200) 중 해당 파일을 저장하고 있는 노드 장치를 후보 노드로 결정할 수 있다. 일 실시예에서, 서버 장치(100)는 수신 노드로부터의 파일 전송 요청에 응답하여, 네트워크상 각 노드에 해당 파일을 저장하고 있는지 여부에 대한 정보를 요청하여 획득하고, 이를 기초로 후보 노드를 결정할 수 있다. 일 실시예에 있어서, 서버 장치(100)는 네트워크상 노드 장치(200) 중 파일 전송 기능이 제공되는 노드 장치(200)에 대한 목록을 저장하고 있을 수 있다. 서버 장치(100)는 파일 전송 기능이 제공되는 노드 장치(200) 중에서 후보 노드를 결정할 수 있다. 이를 통해, 서버 장치(100)는 해당 파일을 저장하지 않는 후보 노드가 송신 노드로 부적절하게 선택되는 것을 방지할 수 있다.
본 개시에서, 파일의 전송에 관한 시간대는 파일의 전송과 관련된 시점이 포함되는 시간대를 의미할 수 있다. 일 실시예에 있어서, 파일의 전송에 관한 시간대는 서버 장치(100)가 수신 노드가 전송 요청을 송신한 시점, 수신 노드로부터 전송 요청을 수신한 시점 또는 파일이 실제 전송될 것으로 예상되는 시점이 포함되는 시간대를 의미할 수 있다. 일 실시예에서, 시간대란 하루 24시간을 기 설정된 간격으로 나눈 시간 범위를 의미할 수 있다. 예를 들어 파일이 실제 전송될 것으로 예상되는 시점이 13:40인 경우, 서버 장치(100)는 13:00-14:00의 시간대 또는 12:00-14:00의 시간대를 파일의 전송에 관한 시간대로 결정할 수 있다. 다른 일 실시예에 있어서, 시간대란 파일의 전송에 관한 시점을 중심으로 기 설정된 시간 간격을 포함하는 시간대를 의미할 수도 있다. 예를 들어 파일이 실제 전송될 것으로 예상되는 시점이 13:40이고 기 설정된 시간 간격이 1시간인 경우, 서버 장치(100)는 파일의 전송에 관한 시간대를 13:10-14:10으로 결정할 수 있다.
서버 장치(100)는 결정된 하나 이상의 송신 노드에 관한 정보를 수신 노드에 전달(전송)할 수 있다. 하나 이상의 송신 노드에 관한 정보는 하나 이상의 송신 노드를 지시하는 정보를 포함할 수 있다. 일 실시예에서, 하나 이상의 송신 노드를 지시하는 정보는 하나 이상의 송신 노드 각각의 네트워크 주소를 지시하는 정보를 포함할 수 있다. 수신 노드는 하나 이상의 송신 노드 중 어느 하나의 송신 노드에 파일의 전송을 요청할 수 있다.
일 실시예에 있어서, 서버 장치(100)는 파일의 전송에 관한 시간대, 수신 노드의 네트워크 주소 또는 하나 이상의 후보 노드의 네트워크 주소에 기초하여, 수신 노드와 하나 이상의 후보 노드 각각 간의 예상되는 전송 속도를 결정할 수 있다. 전송 속도는, 예를 들어 네트워크상 노드 장치 각각 간의 전송 속도의 이력을 지시하는 이력 정보에 기초하여 결정될 수 있다. 이력 정보에 관해서는 후술한다. 서버 장치(100)는 예상되는 전송 속도에 기초하여, 하나 이상의 송신 노드를 결정할 수 있다. 일 실시예에 있어서, 서버 장치(100)는 예상되는 전송 속도가 빠른 순서대로 기 설정된 개수의 노드를 송신 노드로 결정할 수 있다. 일 실시예에 있어서, 서버 장치(100)는 기 설정된 기준 속도보다 빠른 전송 속도를 가지는 후보 노드를 송신 노드로 결정할 수 있다.
일 실시예에서, 서버 장치(100)는 결정된 하나 이상의 송신 노드의 개수가 기 설정된 기준 개수보다 작은 경우, 전송에 관한 시간대를 확장하여 하나 이상의 송신 노드를 다시 결정할 수 있다. 예를 들어, 기존에 시간대가 13:00-14:00이었고, 서버 장치(100)가 전송에 관한 시간대를 확장하는 경우, 시간대를 12:30-14:30, 12:00-15:00, 12:00-14:00 또는 13:00-15:00 등과 같이 확장할 수 있다. 일 실시예에서, 서버 장치(100)는 기존 시간대에서 전후로 기 설정된 시간만큼 확장하거나, 기존 시간대에 이전 시간대를 포함시켜 확장하거나 또는 기존 시간대에 이후 시간대를 포함시켜 시간대를 확장할 수 있다. 이를 통해, 서버 장치(100)는 적절한 개수의 송신 노드를 확보하여, 파일 전송이 실패하는 것을 방지할 수 있다.
일 실시예에서, 서버 장치(100)는 하나 이상의 송신 노드 각각의 예상 전송 속도에 기초하여, 하나 이상의 송신 노드 간의 우선 순위를 결정할 수 있다. 전술한 하나 이상의 송신 노드에 관한 정보는 각 송신 노드의 우선 순위를 지시하는 정보를 포함할 수 있다. 우선 순위를 지시하는 정보는 하나 이상의 송신 노드에 관한 정보가 수신 노드에 전달될 때에, 함께 수신 노드로 전달될 수 있다. 수신 노드는 우선 순위에 기초하여, 순차적으로 송신 노드에 파일의 전송을 요청할 수 있다. 이와 관련하여, 예를 들어 수신 노드에 예상 전송 속도가 50Mbps로 예상되는 송신 노드 A1, 전송 속도가 40Mbps로 예상되는 송신 노드 B1 및 전송 속도가 30Mbps로 예상되는 송신 노드 C1에 대한 정보가 전달된 상황을 가정해볼 수 있다. 이 때, 수신 노드는 가장 먼저 예상되는 전송 속도가 가장 빠른 송신 노드 A1에 파일의 전송을 요청할 수 있다. 만약, 송신 노드 A1로부터 파일 전송받는 것이 성공적으로 완료된다면, 송신 노드 B1 및 송신 노드 C1에는 파일 전송을 요청하지 않을 수 있다. 그러나, 송신 노드 A1로부터 파일 전송받는 것이 실패한다면, 그 다음으로 빠른 전송 속도가 예상되는 송신 노드 B1에 파일 전송을 요청할 수 있다. 마찬가지로, 송신 노드 B1로부터 파일 전송받는 것이 실패한다면, 그 다음으로 빠른 전송 속도가 예상되는 송신 노드 C1에 파일 전송을 요청할 수 있다. 이처럼, 수신 노드가 전송 속도에 기초하여 결정된 우선 순위에 따라 파일의 전송을 요청함으로써, 전송 속도가 가장 빠른 송신 노드로부터 파일을 다운로드 받을 수 있다.
도 2는 본 개시의 일 실시예에 따른 서버 장치(100)의 블록도를 나타낸 도면이다. 일 실시예에서, 서버 장치(100)는 하나 이상의 프로세서(110) 및/또는 하나 이상의 메모리(120)를 구성요소로서 포함할 수 있다. 일 실시예에서, 서버 장치(100)의 구성요소들 중 적어도 하나가 생략되거나, 다른 구성요소가 서버 장치(100)에 추가될 수 있다. 일 실시예에서, 추가적으로(additionally) 또는 대체적으로(alternatively), 일부의 구성요소들이 통합되어 구현되거나, 단수 또는 복수의 개체로 구현될 수 있다. 본 개시에서, 하나 이상의 프로세서(110)는 프로세서(110)라고 표현될 수 있다. 프로세서(110)라는 표현은, 문맥상 명백히 다르게 표현하지 않는 이상, 하나 또는 그 이상의 프로세서의 집합을 의미할 수 있다. 본 개시에서, 하나 이상의 메모리(120)는 메모리(120)라고 표현될 수 있다. 메모리(120)라는 표현은, 문맥상 명백히 다르게 표현하지 않는 이상, 하나 또는 그 이상의 메모리의 집합을 의미할 수 있다. 일 실시예에서, 서버 장치(100) 내부 또는 외부의 구성요소들 중 적어도 일부의 구성요소들은 버스, GPIO(General Purpose Input/Output), SPI(Serial Peripheral Interface) 또는 MIPI(Mobile Industry Processor Interface) 등을 통해 서로 연결되어, 정보(데이터, 신호 등)를 주고 받을 수 있다.
프로세서(110)는 소프트웨어(예: 명령, 프로그램 등)를 실행하여 프로세서(110)에 연결된 서버 장치(100)의 적어도 한 구성요소를 제어할 수 있다. 또한 프로세서(110)는 본 개시와 관련된 다양한 연산, 처리, 데이터 생성, 가공 등의 동작을 수행할 수 있다. 또한 프로세서(110)는 데이터 등을 메모리(120)로부터 로드하거나, 메모리(120)에 저장할 수 있다. 일 실시예에서, 프로세서(110)는 수신 노드로부터 파일의 전송 요청을 수신하고, 파일의 전송에 관한 시간대, 수신 노드의 네트워크 주소 및/또는 하나 이상의 후보 노드의 네트워크 주소에 기초하여, 하나 이상의 후보 노드 중에서 파일을 수신 노드에 전송할 하나 이상의 송신 노드를 결정할 수 있다. 여기서, 프로세서(110)는 후술될 통신 회로를 통해서 수신 노드로부터 파일의 전송 요청을 수신할 수 있다.
메모리(120)는 다양한 정보(데이터)를 저장할 수 있다. 메모리(120)에 저장되는 정보는, 서버 장치(100)의 적어도 한 구성요소에 의해 획득되거나, 처리되거나, 사용되는 정보로서, 소프트웨어(예: 명령, 프로그램 등)를 포함할 수 있다. 메모리(120)는 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 본 개시에서, 명령 내지 프로그램은 메모리(120)에 저장되는 소프트웨어로서, 서버 장치(100)의 리소스를 제어하기 위한 운영체제, 어플리케이션 및/또는 어플리케이션이 서버 장치(100)의 리소스들을 활용할 수 있도록 다양한 기능을 어플리케이션에 제공하는 미들 웨어 등을 포함할 수 있다. 일 실시예에서, 메모리(120)는 프로세서(110)에 의한 실행 시 프로세서(110)가 연산을 수행하도록 하는 명령들을 저장할 수 있다.
일 실시예에서, 서버 장치(100)는 통신 회로(communication circuit)를 더 포함할 수 있다. 통신 회로는 실시예에 따라 서버 장치(100)에서 생략될 수 있다. 통신 회로는, 서버 장치(100)와 하나 이상의 노드 간의 무선 또는 유선 통신을 수행할 수 있다. 예를 들어, 통신 회로는 eMBB(enhanced Mobile Broadband), URLLC(Ultra Reliable Low-Latency Communications), MMTC(Massive Machine Type Communications), LTE(Long-Term Evolution), LTE-A(LTE Advance), NR(New Radio), UMTS(Universal Mobile Telecommunications System), GSM(Global System for Mobile communications), CDMA(Code Division Multiple Access), WCDMA(Wideband CDMA), WiBro(Wireless Broadband), WiFi(Wireless Fidelity), 블루투스(Bluetooth), NFC(Near Field Communication), GPS(Global Positioning System) 또는 GNSS(Global Navigation Satellite System) 등의 방식에 따른 무선 통신을 수행할 수 있다. 예를 들어, 통신 회로는 USB(Universal Serial Bus), HDMI(High Definition Multimedia Interface), RS-232(Recommended Standard-232) 또는 POTS(Plain Old Telephone Service) 등의 방식에 따른 유선 통신을 수행할 수 있다. 일 실시예에서, 서버 장치(100)는 다른 장치와 통합되어 구현될 수도 있다. 이 경우, 통신 회로는 서버 장치(100)와 해당 다른 장치를 연결하는 접속 회로 내지 인터페이스로서 기능할 수 있다.
도 3은 본 개시의 일 실시예에 따른 노드 장치(200)의 블록도를 나타낸 도면이다. 일 실시예에서, 노드 장치(200)는 하나 이상의 프로세서(210) 및/또는 하나 이상의 메모리(220)를 구성요소로서 포함할 수 있다. 일 실시예에서, 노드 장치(200)의 구성요소들 중 적어도 하나가 생략되거나, 다른 구성요소가 노드 장치(200)에 추가될 수 있다. 일 실시예에서, 추가적으로(additionally) 또는 대체적으로(alternatively), 일부의 구성요소들이 통합되어 구현되거나, 단수 또는 복수의 개체로 구현될 수 있다. 본 개시에서, 하나 이상의 프로세서(210)는 프로세서(210)라고 표현될 수 있다. 프로세서(210)라는 표현은, 문맥상 명백히 다르게 표현하지 않는 이상, 하나 또는 그 이상의 프로세서의 집합을 의미할 수 있다. 본 개시에서, 하나 이상의 메모리(220)는 메모리(220)라고 표현될 수 있다. 메모리(220)라는 표현은, 문맥상 명백히 다르게 표현하지 않는 이상, 하나 또는 그 이상의 메모리의 집합을 의미할 수 있다. 일 실시예에서, 노드 장치(200) 내/외부의 구성요소들 중 적어도 일부의 구성요소들은 버스, GPIO(General Purpose Input/Output), SPI(Serial Peripheral Interface) 또는 MIPI(Mobile Industry Processor Interface) 등을 통해 서로 연결되어, 정보(데이터, 신호 등)를 주고 받을 수 있다.
프로세서(210)는 소프트웨어(예: 명령, 프로그램 등)를 구동하여 프로세서(210)에 연결된 노드 장치(200)의 적어도 한 구성요소를 제어할 수 있다. 또한 프로세서(210)는 본 개시와 관련된 다양한 연산, 처리, 데이터 생성, 가공 등의 동작을 수행할 수 있다. 또한 프로세서(210)는 데이터 등을 메모리(220)로부터 로드하거나, 메모리(220)에 저장할 수 있다. 일 실시예에서, 프로세서(210)는 통신 회로를 이용하여 서버 장치(100)에 파일의 전송 요청을 송신하고, 서버 장치(100)로부터 파일의 전송에 관한 시간대 및 네트워크 주소에 기초하여 결정된 하나 이상의 송신 노드에 대한 정보를 수신할 수 있다. 또한, 프로세서(210)는 통신 회로를 통해, 하나 이상의 송신 노드에 파일의 전송을 요청할 수 있다.
메모리(220)는 다양한 정보(데이터)를 저장할 수 있다. 메모리(220)에 저장되는 정보는, 노드 장치(200)의 적어도 한 구성요소에 의해 획득되거나, 처리되거나, 사용되는 정보로서, 소프트웨어(예: 명령, 프로그램 등)를 포함할 수 있다. 메모리(220)는 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 본 개시에서, 명령 내지 프로그램은 메모리(220)에 저장되는 소프트웨어로서, 노드 장치(200)의 리소스를 제어하기 위한 운영체제, 어플리케이션 및/또는 어플리케이션이 노드 장치(200)의 리소스들을 활용할 수 있도록 다양한 기능을 어플리케이션에 제공하는 미들 웨어 등을 포함할 수 있다. 일 실시예에서, 메모리(220)는 프로세서(210)에 의한 실행 시 프로세서(210)가 연산을 수행하도록 하는 명령들을 저장할 수 있다. 일 실시예에서, 메모리(220)는 노드 장치(200)의 IP 주소, 인터넷 서비스 제공자 및/또는 지리적 위치에 대한 정보를 저장할 수 있다. 일 실시예에서, 프로세서(210)는 통신 회로를 제어하여 서버 장치(100)로부터 하나 이상의 송신 노드에 대한 정보를 획득하고, 이를 메모리(220)에 저장할 수 있다.
일 실시예에서, 노드 장치(200)는 통신 회로(communication circuit)를 더 포함할 수 있다. 통신 회로는 실시예에 따라 노드 장치(200)에서 생략될 수 있다. 통신 회로는, 노드 장치(200)와 서버(100), 또는 노드 장치(200)와 다른 노드 장치 간의 무선 또는 유선 통신을 수행할 수 있다. 예를 들어, 통신 회로는 eMBB(enhanced Mobile Broadband), URLLC(Ultra Reliable Low-Latency Communications), MMTC(Massive Machine Type Communications), LTE(Long-Term Evolution), LTE-A(LTE Advance), NR(New Radio), UMTS(Universal Mobile Telecommunications System), GSM(Global System for Mobile communications), CDMA(Code Division Multiple Access), WCDMA(Wideband CDMA), WiBro(Wireless Broadband), WiFi(Wireless Fidelity), 블루투스(Bluetooth), NFC(Near Field Communication), GPS(Global Positioning System) 또는 GNSS(Global Navigation Satellite System) 등의 방식에 따른 무선 통신을 수행할 수 있다. 예를 들어, 통신 회로는 USB(Universal Serial Bus), HDMI(High Definition Multimedia Interface), RS-232(Recommended Standard-232) 또는 POTS(Plain Old Telephone Service) 등의 방식에 따른 유선 통신을 수행할 수 있다. 일 실시예에서, 노드 장치(200)는 다른 장치와 통합되어 구현될 수도 있다. 이 경우, 통신 회로는 노드 장치(200)와 해당 다른 장치를 연결하는 접속 회로 내지 인터페이스로서 기능할 수 있다.
도 4는 본 개시의 일 실시예에 따른 이력 정보를 나타내는 도면이다. 이력 정보(400)는 하나 이상의 노드 간의 전송 속도의 이력을 지시하는 정보일 수 있다. 이력 정보는 노드 장치 간 전송 및 그 전송 시 전송 속도에 관한 이력을 지시하는 정보(즉, 로그)일 수 있다. 이력 정보(400)는 서버 장치(100)의 메모리(120)에 저장될 수 있다.
이력 정보(400)는, 송신 노드의 IP 주소, 송신 노드의 ISP(Internet Service Provider), 송신 노드의 GeoIP, 수신 노드의 IP, 수신 노드의 ISP, 수신 노드의 GeoIP, 전송 속도, 전송 수행 시점에 대한 정보 중 적어도 하나를 포함할 수 있다. ISP는 해당 노드가 사용하는 인터넷 서비스 제공자를 지시하는 정보일 수 있다. GeoIP는 해당 노드의 IP 주소에 대응하여, 해당 노드의 지리적 위치를 지시하는 정보일 수 있다.
일 실시예에서, 서버 장치(100)의 프로세서(110)는 통신 회로를 제어하여 파일의 전송이 수행된 두 노드 중 적어도 하나로부터 전송 속도에 관한 정보를 획득하고, 획득한 정보를 이력 정보로서 메모리(120)에 저장할 수 있다.
일 실시예에서, 서버 장치(100)는 파일의 전송에 관한 시간대 및 이력 정보에 기초하여, 수신 노드와 하나 이상의 후보 노드 각각 간의 전송 속도를 결정할 수 있다. 즉, 서버 장치(100)는 이력 정보에 따른 통계에 기초하여, 수신 노드와 하나 이상의 후보 노드 각각 간의 전송 속도를 결정할 수 있다. 서버 장치(100)는 결정된 전송 속도에 추가로 기초하여, 하나 이상의 송신 노드를 결정할 수 있다. 이를 통해, 서버 장치(100)는 수신 노드와 송신 노드 간 파일 전송 속도를 개선할 수 있다.
일 실시예에서, 서버 장치(100)는 시간대에 기초하여 이력 정보 중 적어도 일부를 결정하고, 결정된 적어도 일부의 이력 정보에 기초하여 하나 이상의 송신 노드를 결정할 수 있다. 즉, 서버 장치(100)는 전송 속도에 대한 이력 정보 중에서 전송 수행 시점(408)이 파일 전송에 관한 시간대에 포함되는 적어도 일부의 이력 정보를 결정하고, 결정된 적어도 일부의 이력 정보에 기초하여 해당 시간대에서 수신 노드가 하나 이상의 후보 노드 각각과의 관계에서 가지게 될 예상 전송 속도를 결정할 수 있다. 일 실시예에에서, 서버 장치(100)는 결정된 적어도 일부의 이력 정보에 기초하여, 각각의 후보 노드에 대응하는 전송 속도를 통계적인 방법으로 결정할 수 있다. 예를 들어 결정된 적어도 일부의 이력 정보에서 수신 노드와 한 후보 노드에 대응하는 전송 속도의 평균을 산출하는 방식으로 각 후보 노드에 대응하는 예상 전송 속도를 결정할 수 있다. 다만, 본 개시는 평균 외의 다양한 방법을 이용하여, 결정된 적어도 일부의 이력 정보로부터 각 후보 노드에 대응하는 예상 전송 속도를 결정할 수 있다.
일 실시예에서, 서버 장치(100)는 이력 정보에 기초하여, 인공 신경망 기반의 학습 모델을 학습시킬 수 있다. 인공 신경망 기반의 학습 모델의 입력 변수는 송신 노드의 IP 주소, 송신 노드의 ISP, 송신 노드의 GeoIP, 수신 노드의 IP, 수신 노드의 ISP, 수신 노드의 GeoIP 및 전송 수행 시점 중 적어도 하나 이상을 포함할 수 있고, 출력값은 전송 속도일 수 있다. 일 실시예에서, 서버 장치(100)는 기 학습된 인공 신경망 기반의 학습 모델에 기초하여, 수신 노드와 하나 이상의 후보 노드 각각 간의 전송 속도를 결정할 수 있다.
일 실시예에서, 서버 장치(100)는 수신 노드로부터 요청된 전송에 관한 시간대에 대응하는 요일, 수신 노드로부터 요청된 전송에 관한 시간대가 공휴일에 해당하는지 여부 및 이력 정보에 기초하여, 하나 이상의 후보 노드 각각 간의 전송 속도를 결정할 수 있다. 서버 장치(100)는 이력 정보에 포함되는 전송 수행 시점에 기초하여 해당 이력 정보에 대응하는 전송이 수행된 요일 및/또는 해당 이력 정보에 대응하는 전송이 공휴일에 수행되었는지 여부를 확인할 수 있다. 서버 장치(100)는 수신 노드로부터 요청된 전송에 관한 시간대에 대응하는 요일 및/또는 수신 노드로부터 요청된 전송에 관한 시간대가 공휴일에 해당하는지 여부에 대응하는 이력 정보를 필터링하고, 필터링된 이력 정보에 기초하여 각각의 후보 노드에 대응하는 전송 속도를 결정할 수 있다.
일 실시예에서, 서버 장치(100)는 전송 속도에 대한 이력 정보 중에서 파일 전송에 관한 시간대에 대응하는 요일과 동일한 요일에 이루어진 전송에 대응하는 이력 정보를 필터링할 수 있다. 다른 일 실시예에 있어서, 서버 장치(100)는 이력 정보 중에서 파일 전송에 관한 시간대에 대응하는 요일이 평일인 경우, 평일에 이루어진 전송에 대응하는 이력 정보를 필터링하고, 파일 전송에 관한 시간대에 대응하는 요일이 주말인 경우, 주말에 이루어진 전송에 대응하는 이력 정보를 필터링할 수 있다. 또 다른 일 실시예에서, 서버 장치(100)는 파일 전송에 관한 시간대가 주말 또는 공휴일에 해당하면, 주말 또는 공휴일에 이루어진 전송에 대응하는 이력 정보를 필터링하고, 파일 전송에 관한 시간대가 주말 또는 공휴일에 해당하지 않으면, 주말 또는 공휴일이 아닌 날에 이루어진 전송에 대응하는 이력 정보를 필터링할 수 있다.
예를 들어, 회사에서 사용되는 컴퓨터 등의 노드 장치는 주중 근무 시간에는 빠른 전송 속도를 제공하고, 주말이나 퇴근 시간 이후에는 비교적 느린 전송 속도를 제공할 수 있다. 다른 예로, 가정에서 사용되는 컴퓨터 또는 휴대용 통신 단말 등의 노드 장치는 주중 또는 주말인지 여부, 근무 시간 또는 퇴근 시간인지 여부와 관계없는 전송 속도를 제공하거나, 오히려 주말 또는 퇴근 시간에 비교적 빠른 전송 속도를 제공할 수도 있다. 이러한 점을 고려하면, 시간대, 요일 및/또는 공휴일에 해당하는지 여부에 기초하여 필터링된 이력 정보를 통해 전송 속도를 결정함으로써, 전송에 관한 시간대에 대응하는 정확한 전송 속도가 결정될 수 있다.
일 실시예에 관한 가상 시나리오로, 수신 노드가 공휴일이 아닌 평일 13:00-14:00의 시간대에 파일의 전송을 서버 장치(100)에 요청한 상황을 가정해볼 수 있다. 이 때, 서버 장치(100)는 파일 전송에 관한 이력 정보 중 공휴일이 아닌 평일 중 13:00-14:00의 시간대에 포함되는 시점에 수행된 파일 전송에 대응하는 이력 정보를 필터링할 수 있다. 서버 장치(100)는 공휴일이 아닌 평일 중 13:00-14:00의 시간대에 대응하여 필터링된 이력 정보에 기초하여, 하나 이상의 후보 노드에 대해 예상되는 전송 속도를 결정하고, 결정된 전송 속도에 기초하여, 하나 이상의 송신 노드를 결정할 수 있다. 본 시나리오에서는 평일 낮 시간대에 대응하는 파일 전송이 요청되었으므로, 평일 낮 시간대에 전송 속도가 빠를 것으로 예상되는 회사에서 사용되는 컴퓨터 등의 노드 장치가 하나 이상의 송신 노드로 결정될 수 있다.
도 5는 본 개시의 일 실시예에 따른 서버 장치 및 노드 장치의 동작 과정을 도시한 도면이다. 이하, 도 5 내지 도 8에 대한 설명에서, 서버 장치(100)의 동작은 서버 장치(100)의 프로세서(110)에 의해, 또는 프로세서(110)가 통신 회로를 제어하여 수행되는 것으로 이해될 수 있다. 또한, 이하, 도 5 내지 도 8에 대한 설명에서, 수신 노드(520)의 동작은 수신 노드(520)에 대응하는 노드 장치(200)의 프로세서(210)에 의해, 또는 프로세서(210)가 통신 회로를 제어하여 수행되는 것으로 이해될 수 있다.
수신 노드(520)는 서버 장치(100)에 파일 전송을 요청할 수 있다(S501). 수신 노드(520)는 요청하는 파일을 특정할 수 있는 식별자 및 파일 전송 요청을 지시하는 데이터를 서버 장치(100)에 전달함으로써, 파일의 전송을 요청할 수 있다.
서버 장치(100)는 하나 이상의 송신 노드를 결정하고(S502), 결정된 하나 이상의 송신 노드에 대한 정보를 수신 노드(520)에 전달할 수 있다(S503). 전술한 바와 같이, 송신 노드에 대한 정보는 하나 이상의 송신 노드 각각을 특정할 수 있는 식별자 또는 하나 이상의 송신 노드 각각의 네트워크 주소 등을 포함할 수 있다. 또한, 하나 이상의 송신 노드에 대한 정보는 하나 이상의 송신 노드 간의 우선 순위를 지시하는 정보를 포함할 수 있다.
수신 노드(520)는 하나 이상의 송신 노드 중 어느 한 송신 노드(530)에 파일 전송을 요청할 수 있다(S504). 즉, 수신 노드(520)는 서버 장치(100)로부터 전달받은 송신 노드에 대한 정보에 기초하여, 파일 전송을 요청할 송신 노드(530)를 특정하고, 특정된 송신 노드(530)에 파일 전송을 요청할 수 있다. 이 때, 수신 노드(520)는 요청하는 파일을 특정할 수 있는 식별자 및 파일 전송 요청을 지시하는 데이터를 송신 노드(530)에 전달함으로써, 파일의 전송을 요청할 수 있다. 송신 노드(530)는 수신 노드(520)로부터의 파일 전송 요청에 대응하여, 파일 전송이 가능한 경우, 수신 노드(520)에 해당 파일을 전송할 수 있다(S505).
수신 노드(520)는 파일이 성공적으로 전송된 경우, 해당 전송에서의 전송 속도를 지시하는 정보를 서버 장치(100)에 전달할 수 있다(S506). 일 실시예에서, 서버 장치(100)는 전송 속도를 지시하는 정보를 해당 전송이 수행된 수신 노드(520) 및 송신 노드(530)에 관한 정보와 함께 이력 정보로서 메모리(120)에 저장할 수 있다. 이를 통해, 서버 장치(100)는 이후에 요청되는 파일 전송에 대한 송신 노드를 결정하는 과정에서, 해당 이력 정보를 추가로 활용할 수 있다.
도 6은 본 개시의 일 실시예에 따른 서버 장치 및 노드 장치의 동작 과정을 도시한 도면이다. S601 내지 S604의 동작은 전술한 S501 내지 S504의 동작과 각각 동일하므로 구체적인 설명을 생략한다.
송신 노드(530)가 수신 노드(520)에 파일을 전송할 수 없는 경우, 파일 전송이 실패할 수 있다(S605). 예를 들어, 송신 노드(530)가 전원이 꺼져 있거나, 송신 노드(530)와 수신 노드(520) 간 통신 상태가 불안정하거나 또는 송신 노드(530)에서 해당 파일이 삭제된 경우 등에는 파일 전송이 실패할 수 있다.
수신 노드(520)는 파일 전송이 실패한 경우, 서버 장치(100)로부터 전달받은 하나 이상의 송신 노드에 대한 정보에 기초하여, 다른 송신 노드에 파일 전송을 요청할 수 있다. 이 때, 수신 노드(520)는 예상되는 전송 속도 내지 우선 순위에 따라 하나 이상의 송신 노드 각각에 순차적으로 파일 전송을 요청할 수 있다. 예를 들어 수신 노드(520)는 송신 노드(530) 다음으로 예상 전송 속도가 빠른 송신 노드(즉, 다음 우선 순위를 가지는 송신 노드)부터 파일 전송을 요청할 수 있다.
수신 노드(520)는 서버 장치(100)로부터 전달받은 하나 이상의 송신 노드에 대한 정보에 대응하는 모든 송신 노드에 대해 파일 전송을 요청했지만 파일 수신에 모두 실패한 경우, 서버 장치(100)에 더 많은 송신 노드에 대한 정보를 요청할 수 있다(S606).
서버 장치(100)는 수신 노드(520)로부터 더 많은 송신 노드에 대한 정보가 요청된 것에 대응하여, 하나 이상의 송신 노드를 다시 결정할 수 있다(S607). 일 실시예에서, 서버 장치(100)는 더 많은 개수의 송신 노드에 대한 정보를 수신 노드(520)로부터 요청받는 경우, 파일의 전송에 관한 시간대를 확장하여, 확장된 시간대를 기초로 하나 이상의 송신 노드를 다시 결정할 수 있다. 구체적으로, 서버 장치(100)는 기존의 동작(S602)에서 기준이 되었던 시간대를 확장하여, 새로운 시간대를 기준으로 다시 하나 이상의 송신 노드를 결정할 수 있다. 일 실시예에서, 서버 장치(100)는 기존 시간대(예: 13:00-14:00)에서 전후로 기 설정된 시간(예: 30분)만큼 확장하거나(예: 12:30-14:30), 기존 시간대(예: 13:00-14:00)에 기존 시간대 이전의 시간대(예: 12:00-13:00) 및/또는 이후의 시간대(예: 14:00-15:00)를 포함시켜 시간대를 확장할 수 있다.
서버 장치(100)는 다시 결정된 송신 노드에 대한 정보를 수신 노드(520)에 전달할 수 있다(S608). 수신 노드(520)는 다시 전달된 하나 이상의 송신 노드에 대한 정보에 기초하여, 다시 새로운 송신 노드에 파일 전송을 요청할 수 있다.
일 실시예에 관한 가상 시나리오로, 수신 노드(520)가 13:00-14:00의 시간대에 파일의 전송을 요청한 것에 대응하여, 서버 장치(100)가 기 설정된 기준에 따라 해당 시간대에 전송 속도가 빠를 것으로 예상되는 송신 노드 A2, B2 및 C2에 대한 정보를 수신 노드(520)에 전달한 상황을 가정해볼 수 있다. 이 때, 수신 노드(520)는 송신 노드 A2, B2 및 C2 중 어느 하나로부터 파일을 전송받는 것이 성공하는 경우, 서버 장치(100)에 더 많은 개수의 송신 노드에 대한 정보를 요청하지 않을 수 있다. 그러나, 수신 노드(520)는 송신 노드 A2, B2 및 C2로부터 파일을 전송받는 것이 모두 실패하는 경우, 서버 장치(100)에 더 많은 개수의 송신 노드에 대한 정보를 요청하고, 서버 장치(100)는 예를 들어, 기존의 13:00-14:00의 시간대를 12:30-14:30으로 확장하여 기 설정된 기준에 따라 해당 시간대에 전송 속도가 빠를 것으로 예상되는 송신 노드 D2, E2, F2 및 G2에 대한 정보를 추가적으로 결정할 수 있다. 그리고, 서버 장치(100)는 결정된 송신 노드 D2, E2, F2 및 G2에 대한 정보를 수신 노드(520)에 전달하고, 수신 노드(520)는 전달된 송신 노드에 다시 파일 전송을 요청할 수 있다. 이를 통해, 서버 장치(100)는 적절한 개수의 송신 노드를 추가적으로 확보하여, 파일 전송이 실패하는 것을 방지할 수 있다.
도 7은 본 개시의 일 실시예에 따른 서버 장치 및 노드 장치의 동작 과정을 도시한 도면이다. S701, S704 및 S705의 동작은 전술한 S501, S502 및 S503의 동작과 각각 동일하므로 구체적인 설명을 생략한다.
일 실시예에서, 서버 장치(100)는 수신 노드(520)로부터 파일 전송 요청에 대응하여, 하나 이상의 후보 노드(710)에 각각의 네트워크 주소(예: IP 주소) 정보를 요청할 수 있다(S702). 일 실시예에서, 수신 노드(520)의 파일 전송 요청에는 수신 노드(520)의 네트워크 주소 정보가 포함될 수 있다. 하나 이상의 후보 노드(710)가 각각의 네트워크 주소 정보를 서버 장치(100)에 전송함으로써(S703), 서버 장치(100)는 하나 이상의 후보 노드(710) 각각의 네트워크 주소 정보를 획득하고, 획득한 네트워크 주소 정보에 기초하여 하나 이상의 송신 노드를 결정할 수 있다.
서버 장치(100)는 수신 노드(520) 및/또는 후보 노드(710)의 네트워크 주소에 기초하여, 수신 노드(520) 및/또는 후보 노드(710)의 인터넷 서비스 제공자(ISP)에 대한 정보 및 지리적 위치에 대한 정보를 획득할 수 있다. 일 실시예에 있어서, 서버 장치(100)는 각 노드의 네트워크 주소에 대응되는 인터넷 서비스 제공자 및 지리적 위치에 대한 정보를 포함하는 테이블을 저장하고 있는 메모리를 포함하거나, 네트워크 주소에 대응되는 인터넷 서비스 제공자 및 지리적 위치에 대한 정보를 포함하는 테이블을 저장하고 있는 메모리에 접근할 수 있다.
일 실시예에 있어서, 서버 장치(100)는 GeoIP를 통해서 수신 노드(520) 및/또는 후보 노드(710)의 지리적 위치에 대한 정보를 획득할 수 있다. 서버 장치(100)는 IP 주소에 대응되는 국가, 도시 또는 우편 번호 정보를 확인할 수 있다. 일 실시예에 있어서, 서버 장치(100)는 후보 노드의 네트워크 주소에 기초하여 추출된 인터넷 서비스 제공자 및/또는 지리적 위치에 대한 정보를 미리 저장하고 있을 수 있다.
일 실시예에서, 서버 장치(100)는 수신 노드(520)의 인터넷 서비스 제공자를 지시하는 정보 및 하나 이상의 후보 노드(710) 각각의 인터넷 서비스 제공자를 지시하는 정보에 추가로 기초하여, 하나 이상의 송신 노드를 결정할 수 있다. 인터넷 서비스 제공자는 개인 또는 단체에 인터넷 접속 서비스를 제공하는 회사 등을 의미할 수 있으며, 인터넷 서비스 제공자에 따라 상이한 대역폭의 네트워크가 사용될 수 있다. 인터넷 서비스 제공자가 동일한 두 노드 간 파일 전송 속도가 인터넷 서비스 제공자가 상이한 두 노드 간 파일 전송 속도보다 빠를 수 있다. 일 실시예에서, 서버 장치(100)는 수신 노드(520)와 동일한 인터넷 서비스 제공자를 가지는 후보 노드 중에서 하나 이상의 송신 노드를 결정할 수 있다. 즉, 서버 장치(100)는 하나 이상의 후보 노드(710) 중 수신 노드와 동일한 인터넷 서비스 제공자를 가지는 후보 노드를 필터링한 후, 필터링된 후보 노드 중에서, 하나 이상의 송신 노드를 결정할 수 있다.
일 실시예에서, 서버 장치(100)는 수신 노드의 네트워크 주소에 기초하여, 수신 노드(520)의 지리적 위치를 지시하는 정보를 결정하고, 하나 이상의 후보 노드(710)의 네트워크 주소 각각에 기초하여, 하나 이상의 후보 노드(710) 각각의 지리적 위치를 지시하는 정보를 결정하고, 수신 노드(520) 및 하나 이상의 후보 노드(710) 각각의 지리적 위치에 추가로 기초하여, 하나 이상의 송신 노드를 결정할 수 있다. 지리적 위치가 동일한 두 노드 간 파일 전송 속도가 지리적 위치가 상이한 두 노드 간 파일 전송 속도보다 빠를 수 있다. 일 실시예에서, 서버 장치(100)는 수신 노드(520)와 동일한 지리적 위치를 가지는 후보 노드(710) 중에서 하나 이상의 송신 노드를 결정할 수 있다. 즉, 서버 장치(100)는 하나 이상의 후보 노드(710) 중 수신 노드와 동일한 지리적 위치를 가지는 후보 노드를 필터링한 후, 필터링된 후보 노드 중에서, 하나 이상의 송신 노드를 결정할 수 있다.
일 실시예에서, 서버 장치(100)는 이력 정보(400) 중에서 대응되는 전송 수행 시점(408)이 전송에 관한 시간대에 포함되고, 송신 노드의 ISP(402)에 대응하는 인터넷 서비스 제공자가 수신 노드(520)의 인터넷 서비스 제공자와 동일하고, 송신 노드의 GeoIP에 대응하는 지리적 위치가 수신 노드(520)의 지리적 위치와 동일한 이력 정보를 필터링할 수 있다. 그리고, 서버 장치(100)는 필터링된 이력 정보 중 송신 노드의 IP 주소(401)에 기초하여, 해당 노드가 수신 노드로부터 요청된 파일을 저장하고 있는지 여부를 판단하고, 요청된 파일을 저장하고 있는 송신 노드에 대응하는 이력 정보를 필터링할 수 있다. 이처럼 서버 장치(100)가 복잡한 연산 없이 각각의 노드의 ISP 및 GeoIP를 비교하여 전송 속도가 빠른 후보 노드를 추정함으로써, 연산량을 감소시킬 수 있다.
추가적인 일 실시예에서, 서버 장치(100)는 수신 노드(520)로부터 파일 전송 요청에 대응하여, 하나 이상의 후보 노드(710)에 각각의 인터넷 서비스 제공자 및/또는 지리적 위치 정보를 요청할 수 있다. 하나 이상의 후보 노드(710)가 각각의 인터넷 서비스 제공자 및 지리적 위치 정보를 서버 장치(100)에 전송함으로써, 서버 장치(100)는 하나 이상의 후보 노드(710) 각각의 인터넷 서비스 제공자 및 지리적 위치에 대한 정보를 획득하고, 획득한 정보에 기초하여 하나 이상의 송신 노드를 결정할 수 있다.
도 8은 본 개시의 일 실시예에 따른 서버 장치 및 노드 장치의 동작 과정을 도시한 도면이다. S801 및 S802의 동작은 전술한 S501 및 S502의 동작과 각각 동일하므로 구체적인 설명은 생략한다.
일 실시예에서, 서버 장치(100)는 하나 이상의 송신 노드를 결정한 후(S802), 결정된 하나 이상의 송신 노드에 직접 수신 노드(520)에 대한 파일 전송을 명령할 수 있다(S803). 서버 장치(100)는 수신 노드(520)가 요청하는 파일을 특정할 수 있는 식별자 및 파일 전송 명령을 지시하는 데이터를 송신 노드(530)에 전달함으로써, 수신 노드(520)에 대한 파일 전송을 명령할 수 있다. 일 실시예에서, 서버 장치(100)는 예상되는 전송 속도에 기초하여 결정되는 우선 순위에 따라 하나 이상의 송신 노드(530)에 순차적으로 수신 노드(520)에 대한 파일 전송을 명령할 수 있다. 예를 들어, 서버 장치(100)는 우선 순위가 가장 높은(즉, 예상 전송 속도가 가장 빠른) 송신 노드(530)에 직접 수신 노드(520)로 파일을 전송할 것을 명령할 수 있다. 송신 노드(530)는 서버 장치(100)로부터 파일 전송 명령을 수신한 것에 대응하여, 수신 노드(520)에 파일을 전송할 수 있다(S804). 이를 통해, 서버 장치(100)는 수신 노드(520)에 결정된 하나 이상의 송신 노드에 대한 정보를 전송하지 않고도, 수신 노드(520)에 파일 전송이 가능한 노드 중 전송 속도가 가장 빠른 노드를 통한 파일 전송을 제공할 수 있다.
도 9는 본 개시의 일 실시예에 따른 방법(900)을 나타낸 흐름도이다. 일 실시예에서, 방법(900)은 서버 장치(100)가, 수신 노드로부터 파일의 전송 요청을 수신하는 동작(S910), 서버 장치(100)가, 파일의 전송에 관한 시간대, 수신 노드(520)의 네트워크 주소 및 하나 이상의 후보 노드(710)의 네트워크 주소에 기초하여, 하나 이상의 후보 노드(710) 중에서 파일을 수신 노드에 전송할 하나 이상의 송신 노드(530)를 결정하는 동작(S920) 및 서버 장치(100)가, 하나 이상의 송신 노드(530)에 대한 정보를 수신 노드(520)에 전달하는 동작(S930)을 포함할 수 있다.
일 실시예에서, 동작 S920은 수신 노드(520)의 인터넷 서비스 제공자(ISP)를 지시하는 정보 및 하나 이상의 후보 노드(710) 각각의 인터넷 서비스 제공자를 지시하는 정보에 추가로 기초하여, 하나 이상의 송신 노드(530)를 결정하는 동작을 포함할 수 있다.
일 실시예에서, 동작 S920은 수신 노드(520)와 동일한 인터넷 서비스 제공자를 가지는 후보 노드 중에서 하나 이상의 송신 노드(530)를 결정하는 동작을 포함할 수 있다.
일 실시예에서, 동작 S920은 수신 노드(520)의 네트워크 주소에 기초하여, 수신 노드(520)의 지리적 위치를 지시하는 정보를 결정하는 동작, 하나 이상의 후보 노드(710)의 네트워크 주소 각각에 기초하여 하나 이상의 후보 노드(710) 각각의 지리적 위치를 지시하는 정보를 결정하는 동작, 및/또는 수신 노드(520) 및 하나 이상의 후보 노드(710) 각각의 지리적 위치에 추가로 기초하여 하나 이상의 송신 노드(530)를 결정하는 동작을 포함할 수 있다.
일 실시예에서, 수신 노드(520) 및 하나 이상의 후보 노드(710) 각각의 지리적 위치에 추가로 기초하여 하나 이상의 송신 노드(530)를 결정하는 동작은, 수신 노드(520)와 동일한 지리적 위치를 가지는 후보 노드 중에서 하나 이상의 송신 노드(530)를 결정하는 동작을 포함할 수 있다.
일 실시예에서, 동작 S920은 파일을 저장하고 있는 하나 이상의 후보 노드(710) 중에서 하나 이상의 송신 노드(530)를 결정하는 동작을 포함할 수 있다.
일 실시예에서, 동작 S920은 파일의 전송에 관한 시간대 및 이력 정보에 기초하여, 수신 노드(520)와 하나 이상의 후보 노드(710) 각각 간의 전송 속도를 결정하는 동작 및 결정된 전송 속도에 추가로 기초하여, 하나 이상의 송신 노드(530)를 결정하는 동작을 포함할 수 있다.
일 실시예에서, 수신 노드(520)와 하나 이상의 후보 노드(710) 각각 간의 전송 속도를 결정하는 동작은 시간대에 대응하는 요일, 시간대가 공휴일에 해당하는지 여부 및 이력 정보에 기초하여, 하나 이상의 후보 노드(710) 각각 간의 전송 속도를 결정하는 동작을 포함할 수 있다.
일 실시예에서, 동작 S920은 시간대에 기초하여 이력 정보 중 적어도 일부를 결정하는 동작, 및/또는 결정된 적어도 일부의 이력 정보에 기초하여 하나 이상의 송신 노드(530)를 결정하는 동작을 포함할 수 있다.
일 실시예에서, 방법(900)은, 서버 장치(100)가, 결정된 전송 속도에 기초하여, 하나 이상의 송신 노드(530) 간의 우선 순위를 결정하는 동작을 더 포함할 수 있다.
일 실시예에서, 방법(900)은, 하나 이상의 송신 노드(530)의 개수가 기 설정된 기준 개수보다 작은 경우, 서버 장치(100)가 시간대를 확장하여 하나 이상의 송신 노드(530)를 다시 결정하는 동작을 더 포함할 수 있다.
일 실시예에서, 방법(900)은, 서버 장치(100)가 하나 이상의 송신 노드(530)의 개수보다 더 많은 개수의 송신 노드(530)에 대한 정보를 수신 노드(520)로부터 요청받는 경우 시간대를 확장하여, 하나 이상의 송신 노드(530)를 다시 결정하는 동작을 포함할 수 있다.
일 실시예에서, 방법(900)은, 하나 이상의 송신 노드(530) 중 어느 하나와 수신 노드(520) 간에 파일의 전송이 이루어지는 경우, 서버 장치(100)가 파일의 전송에 대한 이력 정보를 하나 이상의 메모리(120)에 저장하는 동작을 더 포함할 수 있다.
본 개시에 따른 방법들은 컴퓨터로 구현된 방법들일 수 있다. 본 개시에서, 해당 방법들의 각 동작이 소정의 순서대로 도시되고 설명되었지만, 각 동작들은 순차적으로 수행되는 것 이외에, 본 개시에 따라 임의로 조합될 수 있는 순서로 수행될 수도 있다. 일 실시예에서, 적어도 일부의 동작이 병렬적, 반복적 또는 휴리스틱하게 수행될 수 있다. 본 개시는 해당 방법들에 변화 또는 수정을 가하는 것을 제외하지 않는다. 일 실시예에서, 적어도 일부의 동작이 생략되거나, 다른 동작이 추가될 수 있다.
본 개시의 다양한 실시예들은 기기(machine)가 읽을 수 있는 기록 매체(machine-readable recording medium)에 기록된 소프트웨어로 구현될 수 있다. 소프트웨어는 상술한 본 개시의 다양한 실시예들을 구현하기 위한 소프트웨어일 수 있다. 소프트웨어는 본 개시가 속하는 기술분야의 프로그래머들에 의해 본 개시의 다양한 실시예들로부터 추론될 수 있다. 예를 들어 소프트웨어는 기기가 읽을 수 있는 명령(예: 코드 또는 코드 세그먼트) 또는 프로그램일 수 있다. 기기는 기록 매체로부터 호출된 명령어에 따라 동작이 가능한 장치로서, 예를 들어 컴퓨터일 수 있다. 일 실시예에서, 기기는 본 개시의 실시예들에 따른 서버 장치(100) 또는 노드 장치(200)일 수 있다. 일 실시예에서, 기기의 프로세서는 호출된 명령을 실행하여, 기기의 구성요소들이 해당 명령에 해당하는 기능을 수행하게 할 수 있다. 일 실시예에서, 프로세서는 본 개시의 실시예들에 따른 프로세서(110, 210)일 수 있다. 기록 매체는 기기에 의해 읽혀질 수 있는, 데이터가 저장되는 모든 종류의 기록 매체(recording medium)를 의미할 수 있다. 기록 매체는, 예를 들어 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등을 포함할 수 있다. 일 실시예에서, 기록 매체는 메모리(120, 220)일 수 있다. 일 실시예에서, 기록 매체는 네트워크로 연결된 컴퓨터 시스템 등에 분산된 형태로서 구현될 수도 있다. 소프트웨어는 컴퓨터 시스템 등에 분산되어 저장되고, 실행될 수 있다. 기록 매체는 비일시적(non-transitory) 기록 매체일 수 있다. 비일시적 기록 매체는, 데이터가 반영구적 또는 임시적으로 저장되는 것과 무관하게 실재하는 매체(tangible medium)를 의미하며, 일시적(transitory)으로 전파되는 신호(signal)를 포함하지 않는다.
이상 다양한 실시예들에 의해 본 개시의 기술적 사상이 설명되었지만, 본 개시의 기술적 사상은 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 이해할 수 있는 범위에서 이루어질 수 있는 다양한 치환, 변형 및 변경을 포함한다. 또한, 그러한 치환, 변형 및 변경은 첨부된 청구범위 내에 포함될 수 있는 것으로 이해되어야 한다. 본 개시에 따른 실시예들은 서로 조합될 수 있다. 각 실시예들은 경우의 수에 따라 다양하게 조합될 수 있으며, 조합되어 만들어진 실시예 역시 본 개시의 범위에 속한다.
이하에서는, 본 개시의 다양한 실시예에 대해서 부기한다.
[부기 1] 하나 이상의 프로세서; 및 상기 하나 이상의 프로세서에 의한 실행 시, 상기 하나 이상의 프로세서가 연산을 수행하도록 하는 명령들이 저장된 하나 이상의 메모리를 포함하고, 상기 하나 이상의 프로세서는, 수신 노드로부터 파일의 전송 요청을 수신하고, 상기 파일의 전송에 관한 시간대, 상기 수신 노드의 네트워크 주소 및 하나 이상의 후보 노드의 네트워크 주소에 기초하여, 상기 하나 이상의 후보 노드 중에서 상기 파일을 상기 수신 노드에 전송할 하나 이상의 송신 노드를 결정하는, 서버 장치.
[부기 2] 부기 1의 서버 장치이며, 상기 하나 이상의 프로세서는, 상기 하나 이상의 송신 노드에 대한 정보를 상기 수신 노드에 전달한다.
[부기 3] 부기 1 또는 2의 서버 장치이며, 상기 하나 이상의 프로세서는, 상기 수신 노드의 인터넷 서비스 제공자(ISP, Internet Service Provider)를 지시하는 정보 및 상기 하나 이상의 후보 노드 각각의 인터넷 서비스 제공자를 지시하는 정보에 추가로 기초하여, 상기 하나 이상의 송신 노드를 결정한다.
[부기 4] 부기 3의 서버 장치이며, 상기 하나 이상의 프로세서는, 상기 수신 노드와 동일한 인터넷 서비스 제공자를 가지는 후보 노드 중에서 상기 하나 이상의 송신 노드를 결정한다.
[부기 5] 부기 1 내지 4 중 어느 하나의 서버 장치이며, 상기 하나 이상의 프로세서는, 상기 수신 노드의 네트워크 주소에 기초하여, 상기 수신 노드의 지리적 위치를 지시하는 정보를 결정하고, 상기 하나 이상의 후보 노드의 네트워크 주소 각각에 기초하여, 상기 하나 이상의 후보 노드 각각의 지리적 위치를 지시하는 정보를 결정하고, 상기 수신 노드 및 상기 하나 이상의 후보 노드 각각의 지리적 위치에 추가로 기초하여, 상기 하나 이상의 송신 노드를 결정한다.
[부기 6] 부기 5의 서버 장치이며, 상기 하나 이상의 프로세서는, 상기 수신 노드와 동일한 지리적 위치를 가지는 후보 노드 중에서 상기 하나 이상의 송신 노드를 결정한다.
[부기 7] 부기 1 내지 6 중 어느 하나의 서버 장치이며, 상기 하나 이상의 프로세서는, 상기 파일을 저장하고 있는 상기 하나 이상의 후보 노드 중에서, 상기 하나 이상의 송신 노드를 결정한다.
[부기 8] 부기 1 내지 7 중 어느 하나의 서버 장치이며, 상기 하나 이상의 메모리는, 상기 하나 이상의 후보 노드 간의 전송 속도의 이력을 지시하는 이력 정보를 더 저장한다.
[부기 9] 부기 8의 서버 장치이며, 상기 하나 이상의 프로세서는, 상기 파일의 전송에 관한 상기 시간대 및 상기 이력 정보에 기초하여, 상기 수신 노드와 상기 하나 이상의 후보 노드 각각 간의 전송 속도를 결정하고, 상기 결정된 전송 속도에 추가로 기초하여, 상기 하나 이상의 송신 노드를 결정한다.
[부기 10] 부기 9의 서버 장치이며, 상기 하나 이상의 프로세서는, 상기 시간대에 대응하는 요일, 상기 시간대가 공휴일에 해당하는지 여부 및 상기 이력 정보에 기초하여, 상기 하나 이상의 후보 노드 각각 간의 전송 속도를 결정한다.
[부기 11] 부기 9의 서버 장치이며, 상기 하나 이상의 프로세서는, 상기 결정된 전송 속도에 기초하여, 상기 하나 이상의 송신 노드 간의 우선 순위를 결정한다.
[부기 12] 부기 9의 서버 장치이며, 상기 하나 이상의 프로세서는, 상기 시간대에 기초하여 상기 이력 정보 중 적어도 일부를 결정하고, 결정된 상기 적어도 일부의 이력 정보에 기초하여, 상기 하나 이상의 송신 노드를 결정한다.
[부기 13] 부기 1 내지 12 중 어느 하나의 서버 장치이며, 상기 하나 이상의 프로세서는, 상기 하나 이상의 송신 노드의 개수가 기 설정된 기준 개수보다 작은 경우, 상기 시간대를 확장하여 상기 하나 이상의 송신 노드를 다시 결정한다.
[부기 14] 부기 1 내지 13 중 어느 하나의 서버 장치이며, 상기 하나 이상의 프로세서는, 상기 하나 이상의 송신 노드의 개수보다 더 많은 개수의 송신 노드에 대한 정보를 상기 수신 노드로부터 요청받는 경우, 상기 시간대를 확장하여, 상기 하나 이상의 송신 노드를 다시 결정한다.
[부기 15] 부기 1 내지 14 중 어느 하나의 서버 장치이며, 상기 하나 이상의 프로세서는, 상기 하나 이상의 송신 노드 중 어느 하나와 상기 수신 노드 간에 상기 파일의 전송이 이루어지는 경우, 상기 파일의 전송에 대한 이력 정보를 상기 하나 이상의 메모리에 저장한다.
[부기 16] 하나 이상의 프로세서; 및 상기 하나 이상의 프로세서에 의한 실행 시, 상기 하나 이상의 프로세서가 연산을 수행하도록 하는 명령들이 저장된 하나 이상의 메모리를 포함하고, 상기 하나 이상의 프로세서는, 서버 장치에 파일의 전송 요청을 송신하고, 상기 서버 장치로부터 상기 파일의 전송에 관한 시간대 및 네트워크 주소에 기초하여 결정된 하나 이상의 송신 노드에 대한 정보를 수신하고, 상기 하나 이상의 송신 노드에 상기 파일의 전송을 요청하는, 노드 장치.
[부기 17] 부기 16의 노드 장치이며, 상기 하나 이상의 프로세서는, 상기 서버 장치로부터 전송 속도에 기초하여 결정된 상기 하나 이상의 송신 노드 간의 우선 순위에 대한 정보를 수신하고, 상기 하나 이상의 송신 노드에 대해, 상기 우선 순위에 따라 순차적으로 상기 파일의 전송을 요청한다.
[부기 18] 부기 16 또는 17의 노드 장치이며, 상기 하나 이상의 프로세서는, 상기 하나 이상의 송신 노드와 접속이 모두 실패한 경우, 상기 서버 장치에 더 많은 개수의 송신 노드에 대한 정보를 요청한다.
[부기 19] 부기 16 내지 18 중 어느 하나의 노드 장치이며, 상기 하나 이상의 프로세서는, 상기 하나 이상의 송신 노드 중 어느 하나와 상기 파일의 전송이 이루어지는 경우, 이루어진 전송에 대응하는 전송 속도에 대한 정보를 상기 서버 장치에 송신한다.
[부기 20] 서버 장치가, 수신 노드로부터 파일의 전송 요청을 수신하는 동작; 상기 서버 장치가, 상기 파일의 전송에 관한 시간대, 상기 수신 노드의 네트워크 주소 및 하나 이상의 후보 노드의 네트워크 주소에 기초하여, 상기 하나 이상의 후보 노드 중에서 상기 파일을 상기 수신 노드에 전송할 하나 이상의 송신 노드를 결정하는 동작; 및 상기 서버 장치가, 상기 하나 이상의 송신 노드에 대한 정보를 상기 수신 노드에 전달하는 동작을 포함하는, 방법.
Claims (20)
- 하나 이상의 프로세서; 및상기 하나 이상의 프로세서에 의한 실행 시, 상기 하나 이상의 프로세서가 연산을 수행하도록 하는 명령들이 저장된 하나 이상의 메모리를 포함하고,상기 하나 이상의 프로세서는,수신 노드로부터 파일의 전송 요청을 수신하고,상기 파일의 전송에 관한 시간대, 상기 수신 노드의 네트워크 주소 및 하나 이상의 후보 노드의 네트워크 주소에 기초하여, 상기 하나 이상의 후보 노드 중에서 상기 파일을 상기 수신 노드에 전송할 하나 이상의 송신 노드를 결정하는, 서버 장치.
- 제1항에 있어서,상기 하나 이상의 프로세서는,상기 하나 이상의 송신 노드에 대한 정보를 상기 수신 노드에 전달하는, 서버 장치.
- 제1항에 있어서,상기 하나 이상의 프로세서는,상기 수신 노드의 인터넷 서비스 제공자(ISP, Internet Service Provider)를 지시하는 정보 및 상기 하나 이상의 후보 노드 각각의 인터넷 서비스 제공자를 지시하는 정보에 추가로 기초하여, 상기 하나 이상의 송신 노드를 결정하는, 서버 장치.
- 제3항에 있어서,상기 하나 이상의 프로세서는,상기 수신 노드와 동일한 인터넷 서비스 제공자를 가지는 후보 노드 중에서 상기 하나 이상의 송신 노드를 결정하는, 서버 장치.
- 제1항에 있어서,상기 하나 이상의 프로세서는,상기 수신 노드의 네트워크 주소에 기초하여, 상기 수신 노드의 지리적 위치를 지시하는 정보를 결정하고,상기 하나 이상의 후보 노드의 네트워크 주소 각각에 기초하여, 상기 하나 이상의 후보 노드 각각의 지리적 위치를 지시하는 정보를 결정하고,상기 수신 노드 및 상기 하나 이상의 후보 노드 각각의 지리적 위치에 추가로 기초하여, 상기 하나 이상의 송신 노드를 결정하는, 서버 장치.
- 제5항에 있어서,상기 하나 이상의 프로세서는,상기 수신 노드와 동일한 지리적 위치를 가지는 후보 노드 중에서 상기 하나 이상의 송신 노드를 결정하는, 서버 장치.
- 제1항에 있어서,상기 하나 이상의 프로세서는,상기 파일을 저장하고 있는 상기 하나 이상의 후보 노드 중에서, 상기 하나 이상의 송신 노드를 결정하는, 서버 장치.
- 제1항에 있어서,상기 하나 이상의 메모리는, 상기 하나 이상의 후보 노드 간의 전송 속도의 이력을 지시하는 이력 정보를 더 저장하는, 서버 장치.
- 제8항에 있어서,상기 하나 이상의 프로세서는,상기 파일의 전송에 관한 상기 시간대 및 상기 이력 정보에 기초하여, 상기 수신 노드와 상기 하나 이상의 후보 노드 각각 간의 전송 속도를 결정하고,상기 결정된 전송 속도에 추가로 기초하여, 상기 하나 이상의 송신 노드를 결정하는, 서버 장치.
- 제9항에 있어서,상기 하나 이상의 프로세서는,상기 시간대에 대응하는 요일, 상기 시간대가 공휴일에 해당하는지 여부 및 상기 이력 정보에 기초하여, 상기 하나 이상의 후보 노드 각각 간의 전송 속도를 결정하는, 서버 장치.
- 제9항에 있어서,상기 하나 이상의 프로세서는,상기 결정된 전송 속도에 기초하여, 상기 하나 이상의 송신 노드 간의 우선 순위를 결정하는, 서버 장치.
- 제9항에 있어서,상기 하나 이상의 프로세서는,상기 시간대에 기초하여 상기 이력 정보 중 적어도 일부를 결정하고,결정된 상기 적어도 일부의 이력 정보에 기초하여, 상기 하나 이상의 송신 노드를 결정하는, 서버 장치.
- 제1항에 있어서,상기 하나 이상의 프로세서는,상기 하나 이상의 송신 노드의 개수가 기 설정된 기준 개수보다 작은 경우, 상기 시간대를 확장하여 상기 하나 이상의 송신 노드를 다시 결정하는, 서버 장치.
- 제2항에 있어서,상기 하나 이상의 프로세서는,상기 하나 이상의 송신 노드의 개수보다 더 많은 개수의 송신 노드에 대한 정보를 상기 수신 노드로부터 요청받는 경우, 상기 시간대를 확장하여, 상기 하나 이상의 송신 노드를 다시 결정하는, 서버 장치.
- 제1항에 있어서,상기 하나 이상의 프로세서는,상기 하나 이상의 송신 노드 중 어느 하나와 상기 수신 노드 간에 상기 파일의 전송이 이루어지는 경우, 상기 파일의 전송에 대한 이력 정보를 상기 하나 이상의 메모리에 저장하는, 서버 장치.
- 하나 이상의 프로세서; 및상기 하나 이상의 프로세서에 의한 실행 시, 상기 하나 이상의 프로세서가 연산을 수행하도록 하는 명령들이 저장된 하나 이상의 메모리를 포함하고,상기 하나 이상의 프로세서는,서버 장치에 파일의 전송 요청을 송신하고,상기 서버 장치로부터 상기 파일의 전송에 관한 시간대 및 네트워크 주소에 기초하여 결정된 하나 이상의 송신 노드에 대한 정보를 수신하고,상기 하나 이상의 송신 노드에 상기 파일의 전송을 요청하는, 노드 장치.
- 제16항에 있어서,상기 하나 이상의 프로세서는,상기 서버 장치로부터 전송 속도에 기초하여 결정된 상기 하나 이상의 송신 노드 간의 우선 순위에 대한 정보를 수신하고,상기 하나 이상의 송신 노드에 대해, 상기 우선 순위에 따라 순차적으로 상기 파일의 전송을 요청하는, 노드 장치.
- 제16항에 있어서,상기 하나 이상의 프로세서는,상기 하나 이상의 송신 노드와 접속이 모두 실패한 경우, 상기 서버 장치에 더 많은 개수의 송신 노드에 대한 정보를 요청하는, 노드 장치.
- 제16항에 있어서,상기 하나 이상의 프로세서는,상기 하나 이상의 송신 노드 중 어느 하나와 상기 파일의 전송이 이루어지는 경우, 이루어진 전송에 대응하는 전송 속도에 대한 정보를 상기 서버 장치에 송신하는, 노드 장치.
- 서버 장치가, 수신 노드로부터 파일의 전송 요청을 수신하는 동작;상기 서버 장치가, 상기 파일의 전송에 관한 시간대, 상기 수신 노드의 네트워크 주소 및 하나 이상의 후보 노드의 네트워크 주소에 기초하여, 상기 하나 이상의 후보 노드 중에서 상기 파일을 상기 수신 노드에 전송할 하나 이상의 송신 노드를 결정하는 동작; 및상기 서버 장치가, 상기 하나 이상의 송신 노드에 대한 정보를 상기 수신 노드에 전달하는 동작을 포함하는, 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2022/010394 WO2024014588A1 (ko) | 2022-07-15 | 2022-07-15 | 파일을 전송할 노드를 결정하는 기술 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2022/010394 WO2024014588A1 (ko) | 2022-07-15 | 2022-07-15 | 파일을 전송할 노드를 결정하는 기술 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024014588A1 true WO2024014588A1 (ko) | 2024-01-18 |
Family
ID=89536951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2022/010394 WO2024014588A1 (ko) | 2022-07-15 | 2022-07-15 | 파일을 전송할 노드를 결정하는 기술 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2024014588A1 (ko) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080310302A1 (en) * | 2007-06-18 | 2008-12-18 | Sony Computer Entertainment Inc. | Load balancing distribution of data to multiple recipients on a peer-to-peer network |
US20090240758A1 (en) * | 2008-03-19 | 2009-09-24 | Verizon Services Organization Inc. | Intelligent establishment of peer-to-peer communication |
US20110093615A1 (en) * | 2008-07-02 | 2011-04-21 | Oscar Novo Diaz | Peer node selection in a peer to peer communication network |
US20120215850A1 (en) * | 2009-10-30 | 2012-08-23 | Nec Europe Ltd. | Method and system for supporting the selection of communication peers in an overlay network |
KR20160053618A (ko) * | 2014-11-05 | 2016-05-13 | (주) 이스트몹 | P2p 지원 장치 및 그의 p2p 지원 방법 |
-
2022
- 2022-07-15 WO PCT/KR2022/010394 patent/WO2024014588A1/ko unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080310302A1 (en) * | 2007-06-18 | 2008-12-18 | Sony Computer Entertainment Inc. | Load balancing distribution of data to multiple recipients on a peer-to-peer network |
US20090240758A1 (en) * | 2008-03-19 | 2009-09-24 | Verizon Services Organization Inc. | Intelligent establishment of peer-to-peer communication |
US20110093615A1 (en) * | 2008-07-02 | 2011-04-21 | Oscar Novo Diaz | Peer node selection in a peer to peer communication network |
US20120215850A1 (en) * | 2009-10-30 | 2012-08-23 | Nec Europe Ltd. | Method and system for supporting the selection of communication peers in an overlay network |
KR20160053618A (ko) * | 2014-11-05 | 2016-05-13 | (주) 이스트몹 | P2p 지원 장치 및 그의 p2p 지원 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107483538B (zh) | 一种在微服务集群的节点上处理访问请求包的方法和装置 | |
US10880779B2 (en) | User plane resource management method, user plane network element, and control plane network element | |
WO2012074198A1 (en) | Terminal and intermediate node in content oriented networking environment and communication method of terminal and intermediate node | |
WO2012050293A1 (en) | Method and apparatus for sharing contents using information of group change in content oriented network environment | |
WO2014163383A1 (en) | Method and apparatus for routing proximity-based service message in wireless communication system | |
US20200007590A1 (en) | UPF Programming Over Enhanced N9 Interface | |
WO2017051941A1 (ko) | P2p 연결을 이용한 클라우드 서비스 트래픽의 절감 방법 및 그 장치 | |
CN109417492B (zh) | 一种网络功能nf管理方法及nf管理设备 | |
CN112039796B (zh) | 数据包传输方法和装置、存储介质和电子设备 | |
CN112035216B (zh) | 一种Kubernetes集群网络和OpenStack网络的打通方法 | |
CN113453213A (zh) | 一种鉴权数据同步方法及装置 | |
KR20210023194A (ko) | Mec 시스템 및 그 제어방법 | |
CN113923707B (zh) | 一种终端监测方法、装置、网络设备、控制系统和终端 | |
WO2024014588A1 (ko) | 파일을 전송할 노드를 결정하는 기술 | |
CN113422772B (zh) | 专网终端访问处理方法、装置及电子设备 | |
US10425323B2 (en) | Distributed producer mobility management in information centric networking | |
CN112969199B (zh) | 一种数据采集方法和设备 | |
WO2024147385A1 (ko) | 릴레이 서버를 통한 파일의 전송 | |
WO2013100484A1 (ko) | 사용자 단말기 및 그의 애플리케이션 간 데이터 공유 방법 | |
WO2024014591A1 (ko) | 로컬 네트워크상에서 파일을 전송하기 위한 기술 | |
CN110809033B (zh) | 报文转发方法、装置及交换服务器 | |
CN113783740A (zh) | 一种网络优化方法、装置、设备及介质 | |
CN109150606B (zh) | 数据处理方法及设备 | |
WO2024111696A1 (ko) | 전자 메시지의 전송에 수반되는 파일의 전송 | |
WO2023163571A1 (ko) | 네트워크 슬라이스 지원 장치 및 그 지원 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22951243 Country of ref document: EP Kind code of ref document: A1 |