WO2017003215A1 - Routing method and network entity performing same - Google Patents

Routing method and network entity performing same Download PDF

Info

Publication number
WO2017003215A1
WO2017003215A1 PCT/KR2016/007027 KR2016007027W WO2017003215A1 WO 2017003215 A1 WO2017003215 A1 WO 2017003215A1 KR 2016007027 W KR2016007027 W KR 2016007027W WO 2017003215 A1 WO2017003215 A1 WO 2017003215A1
Authority
WO
WIPO (PCT)
Prior art keywords
client
communication
data
counterpart
server
Prior art date
Application number
PCT/KR2016/007027
Other languages
French (fr)
Korean (ko)
Other versions
WO2017003215A8 (en
Inventor
투이이피 주식회사
조광현
Original Assignee
투이이피 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020160018413A external-priority patent/KR101785385B1/en
Priority claimed from KR1020160079956A external-priority patent/KR101888952B1/en
Application filed by 투이이피 주식회사 filed Critical 투이이피 주식회사
Priority to CN201680050078.1A priority Critical patent/CN108141721A/en
Priority to US15/740,811 priority patent/US10681755B2/en
Publication of WO2017003215A1 publication Critical patent/WO2017003215A1/en
Publication of WO2017003215A8 publication Critical patent/WO2017003215A8/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/24Accounting or billing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing

Definitions

  • the embodiments below relate to a routing method and a network entity performing the same.
  • 5G Recently, mobile communication technology targets 5G.
  • the evolution to 5G requires not only expansion of communication bandwidth but also improvement of data transmission speed.
  • Various communication methods may be applied to improve the data transmission speed.
  • a network routing technique is required to guarantee a quality of service (QoS) that can support voice calls.
  • QoS quality of service
  • P2P peer to peer
  • relay method among various communication methods, that is, in the case of communication that does not go through a network entity directly managed by a mobile service provider, It is difficult to carry out the billing.
  • a method of operating a communication device includes generating an intermediate key corresponding to peer to peer (P2P) communication between a client and a counterpart client; Transmitting the intermediate key to the counterpart client; Securing an intermediate path corresponding to the intermediate key; Receiving the data through the intermediary path from the client whose network address of the counterpart client has been changed and has not received an acknowledgment for the data sent to the counterpart client; And transmitting the data to the counterpart client when the counterpart client connects using the intermediate key.
  • P2P peer to peer
  • the generating of the intermediate key may include generating the intermediate key when connected to the counterpart client that has received the client's P2P communication request from the server.
  • the server may receive the intermediate key from the counterpart client, transmit the intermediate key to the client, and the step of securing the intermediate path may include: receiving the intermediate key from the client; Securing may be included.
  • the intermediate path may include a dedicated room of the client holding the intermediate key and the counterpart client.
  • the transmitting of the data to the counterpart client may include: receiving a connection request including the intermediate key from the counterpart client having the changed network address; And allowing an access according to the access request based on the intermediate key.
  • the intermediate key may correspond to an arbitrary value or may be generated based on unique information of the client and the counterpart client.
  • the client may receive an acknowledgment for the data received by the counterpart client from the communication device, and may later transmit data to the changed network address of the counterpart client.
  • an operation method of a server may include: receiving a P2P communication request from a client and transmitting the P2P communication request to a counterpart client; When the counterpart client accesses the server, generating an intermediate key and transmitting the intermediate key to the counterpart client and the client; Receiving the intermediate key from the client to secure an intermediate path corresponding to the intermediate key; Receiving the data through the intermediary path from the client whose network address of the counterpart client has been changed and has not received an acknowledgment for the data sent to the counterpart client; And transmitting the data to the counterpart client when the counterpart client reconnects using the intermediate key.
  • the intermediate path may include a dedicated room of the client holding the intermediate key and the counterpart client.
  • the transmitting of the data to the counterpart client may include: receiving a reconnection request including the intermediate key from the counterpart client having the changed network address; And allowing an access according to the reconnection request based on the intermediate key.
  • the intermediate key may correspond to an arbitrary value or may be generated based on unique information of the client and the counterpart client.
  • the client may receive an acknowledgment for the data received by the counterpart client and may later transmit data to the changed network address of the counterpart client.
  • the method may further include allocating a session identifier of the client to the client.
  • the transmitting of the question may include transmitting, to the question, first cryptographic information generated by encrypting identification information received from the client and access time information of the client, and receiving the answer.
  • the method may include receiving, as the answer, second cryptographic information generated by encrypting the first cryptographic information, and confirming whether the answer corresponds to the question by decrypting the second cryptographic information. And checking whether the extracted extraction information corresponds to the identification information and the access time information.
  • an operation method of a client may include transmitting a P2P communication request to a server; Receiving, from the server, a media key generated by a communication mediator for mediating communication between the client and the counterpart client and a network address of the counterpart client; Connecting with the communication media device using the media key; Transmitting data to the counterpart client using the network address; And when the network address is changed and fails to receive an acknowledgment for the data transmitted to the counterpart client, transmitting the data to the communication mediator, wherein the counterpart client uses the intermediary key. Connect to the communication medium and receive the data from the communication medium.
  • a medium path corresponding to the medium key can be secured.
  • the intermediate path may include a dedicated room of the client holding the intermediate key and the counterpart client.
  • the method may further include receiving a notification from the server that the network address has changed.
  • the counterpart client may further include receiving, from the counterpart client, an acknowledgment for the data received from the communication medium device.
  • the generating of the P2P communication path may include: sending a speed test request to the counterpart client; Receiving a test response to the speed test request from the counterpart client; And checking a response time of the counterpart client based on the test response.
  • the transmitting of the data may include transmitting the data to the communication medium device when the acknowledgment is not received within the response time.
  • Receiving the question comprises: transmitting identification information of the client to the server; And receiving, as the question, first cryptographic information generated by encrypting the identification information and the access time information of the client, and transmitting the answer, encrypting the first cryptographic information. And transmitting the encrypted second cryptographic information as the answer.
  • a method of operating a client when receiving a P2P communication request of a requesting client from a server; Receiving an intermediate key from the communication intermediate device; Reconnecting to the communication media device using the media key when the network address of the client is changed; Receiving the data from the communication medium device, receiving the data from the requesting client that has not received an acknowledgment for the data sent to the client; And sending an acknowledgment for the data to the requesting client.
  • a communication device including: a controller configured to generate a media key corresponding to peer-to-peer communication between a client and a counterpart client, and to secure a media path corresponding to the media key; And transmitting the media key to the counterpart client, and receiving the data through the intermediary path from the client that has changed the network address of the counterpart client and has not received an acknowledgment for the data sent to the counterpart client. And, when the counterpart client accesses using the intermediate key, transmits the data to the counterpart client.
  • the client sends a P2P communication request to the server, and receives from the server the media key and the network address of the counterpart client generated by the communication mediator for mediating communication between the client and the counterpart client, Connecting to the communication media device using a key, transmitting data to the counterpart client using the network address, and changing the network address, and failing to receive an acknowledgment for data transmitted to the counterpart client.
  • a connection unit for transmitting the data to the communication medium device; And a processor for controlling the connection unit, wherein the counterpart client connects to the communication medium apparatus using the medium key and receives the data from the communication medium apparatus.
  • the client When the client according to the other side receives the P2P communication request of the requesting client from the server, access the communication medium device, receive the medium key from the communication medium device, if the network address of the client is changed, the medium key Reconnect to the communication media device using the device, wherein the communication media device receives the data from the device to the requesting client that has not received an acknowledgment for the data sent to the client.
  • a connection unit receiving the data and transmitting an acknowledgment for the data to the requesting client; And a processor controlling the connection unit.
  • a method of operating a client comprising: establishing a peer to peer (P2P) communication path with a counterpart client; Transmitting a shared key to the counterpart client; Receiving data encrypted with the shared key through the P2P communication path; Decrypting the encrypted data using the shared key; And when the data is decrypted, updating decryption number information related to data usage of the client.
  • P2P peer to peer
  • the method may further include transmitting updated decryption number information to a server, and receiving guide information on the data usage amount from the server.
  • the guide information may include: excess information indicating whether the data usage amount exceeds a predetermined usage amount; Remaining information indicating available data capacity excluding the data usage amount among the predetermined usage amounts; And restriction information indicating whether there is a restriction on at least one of bandwidth and quality of the P2P communication of the client.
  • the received information may include updated decryption number information each time the shared client decrypts the encrypted data received through the P2P communication.
  • the network address of the client changes, transmitting change information indicating that the network address of the client changes to a server; Accessing a communication mediation device that secures an intermediate path corresponding to the P2P communication path; And receiving other data encrypted with the shared key of the counterpart client from the communication medium device, wherein the counterpart client receives an acknowledgment for the other data transmitted to the client from the client. If not, the other data may be transmitted to the communication medium.
  • the method may further include updating the decryption number information.
  • the establishing of the P2P communication path may include transmitting a P2P communication request to a server; Receiving, from the server, a media key generated by a communication mediator for mediating communication between the client and the counterpart client and a network address of the counterpart client; Accessing the communication media device using the media key; And establishing a P2P communication path with the counterpart client based on the network address when accessing the communication medium device.
  • the establishing of the P2P communication path may include: receiving a P2P communication request of the counterpart client from a server; When receiving the P2P communication request, accessing a communication mediation device that mediates communication between the client and the counterpart client; Receiving a media key from the communication media device and transmitting the media key to the server; Receiving test data from the counterpart client and establishing the P2P communication path, wherein the counterpart client receives the client's network address and the intermediate key from the server, and uses the intermediate key; Access to the communication media device, and transmit the test data to the client using the network address.
  • a client establishes a peer-to-peer communication path with a counterpart client, transmits a shared key to the counterpart client, and receives data encrypted with the shared key through the P2P communication path. ; And a controller that decrypts the encrypted data using the shared key and updates decryption number information related to data usage of a client when the data is decrypted.
  • the communication interface may transmit the decryption number information to a server and receive guide information on the data usage amount from the server.
  • the guide information may include: excess information indicating whether the data usage amount exceeds a predetermined usage amount; Remaining information indicating available data capacity excluding the data usage amount among the predetermined usage amounts; And restriction information indicating whether there is a restriction on at least one of bandwidth and quality of the P2P communication of the client.
  • the communication interface may receive information related to data usage of a shared client sharing a data quota allocated to the client, and the controller may update the decryption count information based on the received information. have.
  • the received information may include updated decryption number information each time the shared client decrypts the encrypted data received through the P2P communication.
  • the communication interface transmits change information indicating that the network address of the client is changed to a server, and accesses a communication medium device that secures an intermediate path corresponding to the P2P communication path. And receiving other data encrypted with the shared key of the counterpart client from the communication medium device, and when the counterpart client fails to receive an acknowledgment for the other data transmitted to the client from the client, Other data may be sent to the communication media device.
  • the controller may update the decryption number information when the other data is decrypted with the shared key.
  • the communication interface transmits a P2P communication request to a server, and receives from the server an intermediate key generated by a communication mediator for mediating communication between the client and the counterpart client and a network address of the counterpart client.
  • the P2P communication path with the counterpart client may be established based on the network address.
  • the communication interface receives a P2P communication request of the counterpart client from a server, and when receiving the P2P communication request, connects to a communication mediator that communicates communication between the client and the counterpart client, and from the communication medium.
  • Receiving the intermediate key transmitting the intermediate key to the server, receiving test data from the counterpart client, and establishing the P2P communication path, wherein the counterpart client is configured to receive the client's network address and the A media key may be received, the media key may be used to access the communication media device, and the test data may be transmitted to the client using the network address.
  • the client may communicate through an intermediate path corresponding to the P2P communication path, thereby improving network throughput.
  • charging for data usage of P2P communication may be performed.
  • charging based information may be generated via communication software.
  • FIGS. 1A to 1B are flowcharts illustrating an example of an operation of a communication system according to an exemplary embodiment.
  • FIG. 2 is a flowchart illustrating another example of an operation of a communication system according to an exemplary embodiment.
  • 3A to 3B are block diagrams illustrating a communication system according to an embodiment.
  • FIG. 4 is a diagram for describing an operation of a communication system, according to an exemplary embodiment.
  • FIG. 5 is a flowchart illustrating a method of operating a communication device, according to an exemplary embodiment.
  • FIG. 6 is a flowchart illustrating a method of operating a server, according to an exemplary embodiment.
  • FIG. 7 is a flowchart illustrating an example of a method of operating a client, according to an exemplary embodiment.
  • FIG. 8 is a flowchart illustrating another example of a method of operating a client, according to an exemplary embodiment.
  • FIG. 9 is a flowchart illustrating session maintenance between a client and a server, according to an exemplary embodiment.
  • FIGS. 10A and 10B are diagrams for describing another example of a method of operating a client, according to an exemplary embodiment.
  • FIG. 11 illustrates a sharing of a data quota allocated to a client according to an exemplary embodiment.
  • FIG. 12 is a block diagram illustrating an example of a client according to an exemplary embodiment.
  • FIG. 13 illustrates an example of a secure call dongle according to an exemplary embodiment.
  • FIGS. 1A to 1B are flowcharts illustrating an example of an operation of a communication system according to an exemplary embodiment.
  • a communication system includes a client 1, a server, an intermediary, and a client 2.
  • the server may establish a communication session (eg, a User Datagram Protocol (UDP) session) with each of Client 1 and Client 2.
  • a communication session eg, a User Datagram Protocol (UDP) session
  • UDP User Datagram Protocol
  • Client 1 sends a communication request to the server (110).
  • the client 1 may transmit a P2P communication request to the server through a UDP session for peer to peer (P2P) communication with the client 2.
  • P2P peer to peer
  • the server transmits a communication request of client 1 to client 2 (111).
  • the client 2 may connect with the intermediary 122. More specifically, when the client 2 receives the client 1's communication request from the server, the client 2 may attempt to connect to the intermediary, and the intermediary may allow the client 2 to connect. Accordingly, the client 2 can connect to the intermediary and maintain the connection.
  • the intermediary is a device that is physically distinct from the server, and may be an independent device on the network.
  • the intermediary may be included in the server, and may be any one of a plurality of units logically separated within the server.
  • the intermediary unit When the intermediary unit is connected to the client 2, the intermediary unit generates 113 an intermediary key.
  • the intermediary can generate an intermediary key with an arbitrary value.
  • the intermediary may generate the intermediary key based on the unique information of the client 1 and / or the client 2.
  • the unique information may include, for example, an identifier assigned to each of Client 1 and Client 2.
  • the intermediary sends the intermediary key to client 2 (114).
  • Client 2 sends the intermediate key to the server (115).
  • the server sends the client 2's network address and intermediate key to client 1 (116).
  • the network address may include, for example, an IP (Internet Protocol) address.
  • Client 1 sends the intermediary key to the intermediary (117).
  • Client 1 can access the intermediary by sending the intermediary key to the intermediary.
  • the client 1 can maintain a connection with the intermediary.
  • an intermediary path may be formed that corresponds to the connection relationship of client 1-mediated-client 2.
  • the intermediate path is a path to prepare for disconnection of the P2P communication path between the client 1 and the client 2.
  • the intermediary path may comprise dedicated rooms of Client 1 and Client 2 having the media key. Securing the intermediary path may mean that a dedicated room is created in the intermediary.
  • the intermediary may create a dedicated room where client 1 and client 2 can participate and other clients cannot participate.
  • Client 1 may send a speed test request to client 2 via the network address (119).
  • the client 1 may transmit test data for testing the P2P communication speed to the client 2.
  • Client 2 may send a test response to the speed test request to client 1 (120).
  • Client 1 can check the response time of Client 2.
  • Client 1 can check the P2P communication speed between Client 1 and Client 2.
  • Client 2 may transmit a speed test request to client 1 (121).
  • Client 1 may send a test response to the speed test request to client 2 (122).
  • Client 2 can check the response time of Client 1.
  • the speed test of client 2 may be performed simultaneously with the speed test of client 1.
  • the speed test of Client 1 and / or Client 2 may be repeated a predetermined number of times. For example, the speed test may be repeated two or more times.
  • Client 1 can send an additional speed test request to Client 2 upon receiving a test response from Client 2.
  • Client 2 may send a test response to the additional speed test request to client 1.
  • Client 1 can check the average response time of Client 2.
  • Client 2 can ascertain the average response time of Client 1.
  • a P2P communication path may be established between client 1 and client 2. Assume that client 1 is mapped to network address A, and client 2 is mapped to network address B. In this case, the P2P communication path A-B may be set.
  • Client 1 transmits the shared key to client 2 (123).
  • the shared key is used for encrypting and / or decrypting data.
  • the shared key may be transmitted through a P2P communication path.
  • Client 1 sends the shared key to Client 2.
  • client 1 may simultaneously send a speed test request and a shared key to client 2. If client 1 does not receive a test response from client 2, it can resend the rate test request and the shared key to client 2 at the same time. When client 1 receives a test response from client 2, it does not send a shared key when sending an additional speed test request to client 2.
  • Client 1 sends the shared key to Client 2 via a P2P communication path.
  • Client 1 may transmit the shared key to the server after connecting to the server, the server may transmit the shared key to the client 2.
  • client 1 may send a communication request and a shared key to a server at the same time, and the server may send a communication request and a shared key to client 2 at the same time.
  • Client 1 may send data 1 to client 2 (124).
  • data 1 may be encrypted with a shared key.
  • Data 1 may be a data fragment of the entire data.
  • Client 2 receives data 1 and decrypts data 1 using the shared key. Although not shown in FIG. 1A, when the client 2 decrypts the data 1, the client 2 updates the decoding count information. Let n be the decoding count information client 2 recorded before the client 2 receives the data 1. When the client 2 decrypts the data 1, the client 2 may update the decryption count information client 2 to n + 1. Client 2 may send an acknowledgment for data 1 to client 1 (125).
  • Data 2 may be a data fragment of the entire data and may be encrypted with a shared key, as described above.
  • client 2 may or may not receive an acknowledgment for data 2 from client 2 later than the response time (or average response time). In this case, client 1 transmits data 2 intermediary (128). If the client 1 does not receive the acknowledgment for the data 2 within the response time confirmed in the speed test step, the client 1 may transmit the data 2 to the intermediary. In other words, since the client 1 maintains the connection with the intermediary before P2P communication, when detecting an event related to not receiving the acknowledgment for a predetermined time, the client 1 may transmit data 2 to the intermediary. Client 1 may send data 2 to the intermediary through the intermediary path.
  • the interceptor stores data 2 in memory when data 2 is received from client 1.
  • the memory may include, for example, a memory corresponding to an intermediate path or a dedicated room.
  • the client 2 may inform the server that the network address has changed (129). If the network address of client 2 is changed from B to B ', client 2 may inform the server that the network address has changed from B to B'.
  • the server may receive change information indicating that the network address is changed from the client 2.
  • the change information may include the changed network address of the client 2. Accordingly, the server can confirm the changed network address of the client 2.
  • the server may perform a question and answer process with Client 2 to determine if the network entity mapped to B 'is Client 2.
  • the question and answer process will be described later with reference to FIG. 9.
  • the server may maintain a communication session with Client 2 through a question and answer process.
  • the server may inform client 1 that the network address of client 2 has changed (130).
  • the client 1 may receive the change information of the network address from the server. Accordingly, the client 1 can confirm the changed network address of the client 2.
  • Client 2 whose network address is mapped to B ', connects to the intermediary with an intermediate key (131).
  • the client 2 may attempt to connect to the intermediary by sending the intermediary key to the intermediary, and the intermediary may allow the client 2 to connect. Accordingly, the client 2 can connect to the intermediary.
  • the intermediary may transmit data 2 to the client 2 (132).
  • client 2 can join a private room using an intermediate key.
  • the client 2 may receive data 2 stored in a memory corresponding to the private room.
  • the client 2 may decrypt the data 2 using the public key.
  • the client 2 may update the decryption count information.
  • the client 2 may update the decryption count information client 2 to n + 2.
  • Client 2 may send an acknowledgment for data 2 to client 1 (133).
  • the client 1 When the client 1 receives the acknowledgment for the data 2, the client 1 may transmit the data 3 to the client 2 (134). P2P communication path is changed from A-B to A-B '.
  • Data 3 can be encrypted with a shared key.
  • Client 2 may receive data 3 and decrypt data 3 using the shared key. Client 2 may update the decryption count information. In the example described above, the client 2 may update the decryption count information client 2 to n + 3. Client 2 may send an acknowledgment for data 3 to client 1 (135).
  • client 2 transmits data 4 to client 1 (136).
  • Data 4 can be encrypted with a shared key.
  • Client 1 may receive data 4 and decrypt data 4 using the shared key. In addition, the client 1 may update its decryption number information. Assume that the decryption number information client 1 recorded before the client 1 receives the data 4 is m. When the client 1 decrypts the data 4, the decryption number information client 1 may be updated to m + 1.
  • Client 1 may send an acknowledgment for data 4 to client 2 (137).
  • Client 2 may send data 5 to client 1 (138).
  • the client 1 may change its network address due to movement.
  • client 2 may not receive an acknowledgment for data 5 within a predetermined time.
  • the client 2 may transmit data 5 to the intermediary (139).
  • Client 1 may inform the server that the network address has changed (140), and the server may inform client 2 that the network address of Client 1 has changed (141). Assume that Client 1's network address has changed from A to A '.
  • Client 1 can connect to the intermediary with the intermediary key (142). More specifically, the client 1 may attempt to connect to the intermediary by sending the intermediary key to the intermediary, and the intermediary may allow the client 1 to connect.
  • the intermediate unit may transmit data 5 to the client 1 (143).
  • Client 1 can receive data five.
  • data 5 may be encrypted with a shared key.
  • Client 1 can decrypt data 5 with the shared key and update the decryption number information.
  • the decryption count information client 1 may be updated to m + 2.
  • Client 1 may send an acknowledgment for data 5 to client 2 (144).
  • data 1-3 are transmitted to client 2 via a mobile operator's switchboard equipment (eg, a device that determines a Quality of Service (QoS) or Service Level Agreement (SLA)). It doesn't work.
  • data 4 through 5 are not transmitted to Client 1 through the mobile operator's switchboard equipment. In this case, charging for data 1 to 5 may be difficult.
  • the client 1 and the client 2 may update the decryption number information each time the received data is decrypted.
  • the decryption count information is information related to data usage, and is information that is the basis for billing.
  • the client 1 and the client 2 may transmit the decryption number information to the server according to a predetermined cycle so that charging for data usage may be performed. For example, Client 1 and Client 2 may transmit their decryption count information to the server once a day, once a week, or once a month. In addition, when the P2P communication ends, the client 1 and the client 2 may transmit the decryption number information to the server.
  • Client 1 and Client 2 may encrypt the decryption number information and transmit it to the server.
  • the server may determine the data usage of each of the client 1 and the client 2 based on the number of decryption information, and transmit the data usage of each of the client 1 and the client 2 to the billing system.
  • the billing system may generate billing information and transmit it to the server.
  • the server may generate the charging information based on the decoding count information.
  • Decryption number information related to the data usage of the P2P communication of the client 1 and the client 2 may be transmitted to the server, so that charging for the data usage of the P2P communication of the client 1 and the client 2 may be performed.
  • FIG. 2 is a flowchart illustrating another example of an operation of a communication system according to an exemplary embodiment.
  • the communication system includes a client 1, a server, and a client 2.
  • the intermediate unit described with reference to FIG. 1 may be included in the server.
  • Client 1 may send a communication request to the server (210).
  • the communication request may be a P2P communication request.
  • the server may send a communication request from client 1 to client 2 (211).
  • the client 2 may connect with the server (212). In other words, client 2 can connect to the server.
  • the server may generate an intermediate key (213).
  • the server may send the intermediate key to client 2 (214).
  • the server may send the intermediate key and the network address of client 2 to client 1 (215).
  • client 1's network address is A
  • client 2's network address is B.
  • Client 1 may transmit the intermediate key to the server (216).
  • the server receiving the intermediate key may secure an intermediate path corresponding to the intermediate key (217).
  • client 1 may send a speed test request to client 2 (218), and client 2 may send a test response to the speed test request to client 1 (219). Client 1 can check the response speed of Client 2. Similarly, client 2 may send a speed test request to client 1 (220) and may send a test response to client 2 driving speed test request to client 2 (221).
  • a P2P communication path may be established between client 1 and client 2.
  • Client 1 sends the shared key to client 2 (222).
  • Client 1 may encrypt data 1 with a shared key and transmit encrypted data 1 to client 2 (223).
  • Client 2 receives the encrypted data 1 and decrypts the encrypted data 1 using the shared key.
  • Client 2 updates the decryption count information.
  • Client 2 may send an acknowledgment to client 1 (224).
  • the client 1 When the client 1 receives the acknowledgment for the data 1, the client 1 may encrypt the data 2 with the shared key and transmit the encrypted data 2 to the client 2 (225).
  • the response speed of the client 2 may be lower than the response speed confirmed in the speed test or there may be no response from the client 2.
  • Client 1 may or may not receive an acknowledgment for encrypted data 2 later than the response rate identified in the rate test.
  • the client 1 may transmit the encrypted data 2 to the server through the intermediate path (227).
  • the server may store encrypted data 2 in a memory corresponding to each path or dedicated room.
  • client 2 may inform the server that the network address has changed (228).
  • the server may inform client 1 that the network address of client 2 has changed (229).
  • the client 2 can connect to the server using the intermediate key (230).
  • the server may send the encrypted data 2 to the client 2 (231).
  • Client 2 may receive the encrypted data 2 and decrypt it using the shared key.
  • the client 2 may update the decryption count information.
  • Client 2 may send an acknowledgment to client 1 (232).
  • the client 1 When the client 1 receives the acknowledgment for the data 2, the client 1 may transmit data 3 encrypted with the shared key to the client 2 (233). P2P communication through the P2P communication path A-B 'is started. When the client 2 receives the data 3, the client 2 may decrypt the data 3 with the shared key, and update the decryption number information. Client 2 may send an acknowledgment for data 3 to client 1 (234).
  • the client 2 may transmit data encrypted with the shared key to the client 1, and the client 1 may decrypt the encrypted data using the shared key.
  • Client 1 may update the decoding count information.
  • 3A to 3B are block diagrams illustrating a communication system according to an embodiment.
  • the client 310 includes a connector 311 and the client 320 includes a connector 321.
  • the server 330 includes a detector 331, a manager 332, and an intermediary 333.
  • connection unit 311 and the connection unit 321 may include a communication interface capable of P2P communication.
  • the client 310 may further include a processor (not shown) and a memory (not shown).
  • the processor may control the connection unit 311, and the memory may store intermediate keys.
  • the intermediate key may be stored in a secure call dongle which will be described later.
  • the client 320 may further include a processor (not shown) and a memory (not shown).
  • the processor controls the connection unit 321, and the memory may store intermediate keys.
  • the intermediate key may be stored in a secure call dongle which will be described later.
  • the detector 331, the manager 332, and the intermediary 333 may be implemented by a processor or a controller.
  • the connection unit 311 may transmit a P2P communication request to the server 330, and the server 330 may transmit a P2P communication request to the connection unit 321.
  • the connection unit 321 may access the intermediate unit 333.
  • the intermediate unit 333 may generate an intermediate key when the connection unit 321 connects.
  • the intermediary unit 333 may transmit the intermediary key to the connection unit 321.
  • the connection unit 321 may maintain a connection with the intermediate unit 333.
  • connection unit 321 may transmit the intermediate key to the management unit 332, and the management unit 332 may transmit the intermediate key and the network address of the counterpart client 330 to the connection unit 311.
  • the connection unit 311 may transmit the intermediate key to the intermediate unit 333 and may be connected to the intermediate unit 333 using the intermediate key.
  • the connection part 311 may maintain a connection with the intermediate part 333.
  • connection portion 311 and the connection portion 321 can maintain a connection to the intermediate portion 333 so that the intermediate path (or bypass path) having a connection relationship between the connection portion 311-the mediation 333-the connection portion 321 can be obtained. Can be secured.
  • Each path is a direct path between the connection part 311 and the connection part 321, that is, a path for preparing for disconnection of the P2P communication path.
  • the client 310 and the client 320 having the intermediate key can use the intermediate path, and other clients cannot use the intermediate path.
  • connection part 311 and the connection part 321 may be connected through a direct path.
  • the connection part 311 and the connection part 321 may be connected to each other through a P2P communication path A-B.
  • Client 310 and client 320 may share a shared key.
  • the client 310 may receive data encrypted with the shared key from the client 320 and decrypt the data using the shared key. The client 310 may update the decryption count information whenever decrypting. Similarly, the client 320 may receive data encrypted with the shared key from the client 310 and decrypt it using the shared key. The client 320 may update the decryption count information whenever decrypting.
  • the decryption number information of the client 310 may be encrypted and recorded in a memory and / or a secure call dongle which will be described later.
  • the decryption number information of the client 320 may be encrypted and recorded in a memory and / or a secure call dongle.
  • the network address of the client 320 may be changing.
  • the P2P communication path A-B may be disconnected, and the connection unit 321 may not receive data transmitted by the connection unit 311. Data may be missing. As a result, the connection unit 311 may not receive an acknowledgment for the data.
  • the connection unit 311 may transmit data to the intermediate unit 333.
  • the connection unit 321 may inform the sensing unit 331 that the network address of the client 320 has been changed.
  • the sensing unit 331 may inform the management unit 332 that the network address of the client 320 has changed, and the management unit 332 may inform the connection unit 311 that the network address of the client 320 has changed.
  • connection of the connection unit 321 to the intermediary unit 333 may be lost due to the change of the network address of the client 320.
  • the connection unit 321 may attempt to reconnect to the intermediate unit 333 by transmitting the intermediate key to the intermediate unit 333. Since the intermediate unit 333 has received the intermediate key corresponding to the client 320, the intermediate unit 333 may allow reconnection. When the connection unit 321 reconnects to the intermediate unit 333, the connection unit 321 may receive data from the intermediate unit 333.
  • the connector 321 may transmit an acknowledgment for data to the connector 311.
  • FIGS. 1A through 2 may be applied to FIG. 3A, and thus a detailed description thereof will be omitted.
  • the intermediary 333 may be physically distinguished from the server 330.
  • the intermediary unit 333 may be an independent device in the network.
  • FIGS. 1 to 3A may be applied to FIG. 3B, and thus detailed descriptions thereof will be omitted.
  • FIG. 4 is a diagram for describing an operation of a communication system, according to an exemplary embodiment.
  • the client is mapped to network address A, and the counterpart client is mapped to network address B.
  • Client and counterpart client communicate through P2P communication path A-B.
  • the client may transmit data 1 to the counterpart client 410, and the counterpart client may transmit an acknowledgment for data 1 to the client 411.
  • the network address of the counterpart client may be changed from B to B '(420).
  • the counterpart client may inform the server that its network address has changed (421), and the server may inform the client that the network address of the counterpart client has changed (422).
  • the client may transmit data 2 to the counterpart client mapped to the network address B '(423). That is, the client may transmit data 2 to the counterpart client through the P2P communication path A-B '.
  • the counterpart client may send an acknowledgment for data 2 to the client (424). Upon receiving the acknowledgment for data 2, the client may transmit data 3 to the counterpart client (425).
  • the network address of the counterpart client may be changed from B 'to B "(430).
  • the client may not receive an acknowledgment for data 3 from the counterpart client or may receive it late. If it is slow, the client may send data 3 intermediary 431.
  • the counterpart client may inform the server that the network address has changed (432), and the server can inform the client that the client's network address has changed. There is (433).
  • the partner client Since the partner client has an intermediate key, the partner client can access the intermediate unit using the intermediate key (434).
  • the intermediary may transmit data 3 to the counterpart client (435).
  • the counterpart client may send an acknowledgment for data 3 to the client (436).
  • the client may then transmit data to the counterpart client via the P2P communication path A-B ".
  • the P2P communication path is disconnected, so that client 1 and client 2 cannot maintain P2P communication continuously.
  • the client 1 and the client 2 may transmit and receive data with the intermediate unit by temporarily communicating with the intermediate unit. As a result, data loss can be prevented. In addition, network throughput may be improved.
  • FIG. 5 is a flowchart illustrating a method of operating a communication device, according to an exemplary embodiment.
  • the communication device may correspond to the intermediate unit described above.
  • the communication device generates an intermediate key corresponding to peer to peer (P2P) communication between a client and a counterpart client (510).
  • P2P peer to peer
  • the communication device transmits the intermediate key to the counterpart client (520).
  • the communication device secures an intermediate path corresponding to the intermediate key (530).
  • the communication device receives data through the intermediary path from the client whose network address of the counterpart client has changed and fails to receive an acknowledgment for the data sent to the counterpart client (540).
  • the client may transmit the data to the communication device.
  • the communication device transmits data to the counterpart client (550).
  • FIG. 6 is a flowchart illustrating a method of operating a server, according to an exemplary embodiment.
  • the server receives a P2P communication request from the client and transmits the P2P communication request to the counterpart client (610).
  • the server When the other client connects, the server generates an intermediate key and transmits the intermediate key to the other client and the client (620).
  • the server receives the intermediate key from the client to secure the intermediate path corresponding to the intermediate key (630).
  • the server receives the data through the intermediate path from the client that has not received the acknowledgment for the data transmitted to the counterpart client (640).
  • the server transmits data to the counterpart client (650).
  • 1A to 4 may be applied to the matters described with reference to FIG. 6, and thus detailed descriptions thereof will be omitted.
  • FIG. 7 is a flowchart illustrating an example of a method of operating a client, according to an exemplary embodiment.
  • the client transmits a P2P communication request to the server (710).
  • the client receives 720 from the server an intermediate key generated by the communication mediator for mediating communication between the client itself and the counterpart client and the network address of the counterpart client.
  • the communication mediator may correspond to the mediator described above.
  • the client connects to the communication media device using the media key (730).
  • the client transmits data to the counterpart client using the network address (740).
  • the data is transmitted to the communication mediator (750).
  • the counterpart client connects to the communication mediator using the media key with the changed network address and receives data from the communication mediator.
  • the client receives an acknowledgment for data from the counterpart client (760).
  • 1A to 4 may be applied to the matters described with reference to FIG. 7, and thus detailed description thereof will be omitted.
  • FIG. 8 is a flowchart illustrating another example of a method of operating a client, according to an exemplary embodiment.
  • FIG. 8 is a flowchart illustrating another example of a method of operating a client, according to an exemplary embodiment.
  • the client described with reference to FIG. 8 may correspond to client 2 of FIGS. 1A to 2.
  • a client when a client receives a P2P communication request of a requesting client from a server, the client accesses a communication medium device (810).
  • the requesting client may correspond to client 1 of FIGS. 1A-2.
  • the client receives an intermediate key from the communication intermediate device (820).
  • the communication mediator may correspond to the mediator described above.
  • the client reconnects to the communication media device using the media key (830).
  • the requesting client does not receive an acknowledgment for the data sent to the client. In this case, the requesting client transmits data to the communication medium device.
  • Communication mediated devices store data.
  • the client receives the data from the communication mediating device (840).
  • the client sends an acknowledgment for the data to the requesting client (850).
  • FIG. 9 is a flowchart illustrating session maintenance between a client and a server, according to an exemplary embodiment.
  • the client 910 connects to the server 911 (920).
  • the connection of the client 910 may be the initial connection.
  • the server 911 may receive identification information of the client 910 from the client 910, and may check a time value.
  • the time value may represent the time that the client 910 accesses the server 911.
  • the server 911 may encrypt the identification information and the time value of the client 910 using its E server ⁇ .
  • the server 911 may encrypt the identification information and the time value of the client 910 using the session key.
  • the server 911 may transmit a question to the client 910 (921).
  • the questions can be generated randomly.
  • the server 911 may transmit the encrypted identification information and the time value, that is, the E server ⁇ identification information, time value ⁇ , to the client 910 as a query. That is, the client 910 may receive the E server ⁇ identification information, time value ⁇ from the server 911.
  • the client 910 may transmit an answer to the server 911 (922). For example, the client 910 may encrypt the E server ⁇ identification information, time value ⁇ using E client ⁇ , which is its encryption method, and the E client ⁇ E server ⁇ identification information, time value ⁇ . In response, it may transmit to the server 911.
  • Server 911 may extract or acquire ⁇ E server identification information, the time value is generated from the client E ⁇ E server identification information, the time value ⁇ via the decoding corresponding to the client E ⁇ .
  • the server 911 may extract or obtain identification information and time value by decoding the E server ⁇ identification information, time value ⁇ .
  • the server 911 may check whether the answer corresponds to the question (923). For example, the server 911 may check whether the identification information and the time value obtained from the E client ⁇ E server ⁇ identification information, time value ⁇ correspond to the identification information and the confirmed time value received in step 910. have.
  • server 911 may maintain a communication session with client 910 (924).
  • the session can be, for example, a UDP session. If the answer does not correspond to the question, the server 911 may send a reconnection request to the client 910 (925).
  • the client 910 may transmit a P2P communication request to the server 911.
  • the client 910 may execute step 110 of FIG. 1A or step 210 of FIG. 2.
  • client 2 may connect to the server to inform the server that the network address has changed, and send its identification information to the server.
  • the server receives the identification information of the client 2 from a third party mapped to a network address different from that of the client 2 already known. In other words, the server does not know exactly whether the third party is Client 2 or a hacker.
  • the server can send the E server ⁇ client 2's identification information, time value ⁇ to the third party as a question, and the E client 2 ⁇ E server ⁇ identification information of client 2, time value ⁇ can be received as an answer.
  • the server uses the decryption technique corresponding to E client 2 ⁇ and the decryption technique corresponding to E server ⁇ to identify and time client 2's identification information from E client 2 ⁇ E server ⁇ identification information, time value ⁇ of E client 2. You can extract the value. That is, the answer corresponds to the question.
  • the server may confirm that the third is Client 2 and maintain a session with Client 2.
  • the server may inform that Client 2's network address has changed. In other words, the server can inform Client 1 that Client 2 has been mapped to a different network address.
  • a session identifier may be used to maintain a communication session. More specifically, when receiving a P2P communication request from the client 910, the server 911 may assign a session identifier to the client 910. The session identifier can be used to identify the client 910 on the network. The session identifier may be included in a header of a transmission unit of the client 910 (eg, a packet that the client 910 exchanges with the server 911, an intermediary, or a counterpart client). Even when the network address of the client 910 is changed, when the server 911 receives a transmission unit including a session identifier, the server 911 may maintain a communication session with the client 910.
  • FIGS. 10A and 10B are diagrams for describing another example of a method of operating a client, according to an exemplary embodiment.
  • FIG. 10A a flowchart of a method of operating a client is shown.
  • the client establishes a P2P communication path with the counterpart client (1010).
  • the client transmits the shared key to the counterpart client (1020).
  • the client receives the data encrypted with the shared key through the P2P communication path (1030).
  • the client decrypts the encrypted data using the shared key (1040).
  • the client updates the decryption number information related to charging for the data usage of the client (1050).
  • the client may transmit the updated decryption number information to the server.
  • the server may determine the data usage based on the updated number of decryption information. For example, the server may determine the data usage of the client by referring to a table in which a correspondence relationship between the number of decryption information and the data usage is recorded. The server can send the data usage to the charging system. The billing system may generate billing information using the data usage.
  • the server may generate the charging information based on the updated number of decryption information. For example, the server may generate charging information by referring to a table in which a correspondence relationship between decryption number information and charging information is recorded.
  • the server and / or billing system may check whether the data usage of the client exceeds a predetermined usage.
  • the predetermined usage amount may be a data quota corresponding to a communication plan subscribed to by a user of the client. That is, the predetermined usage amount may be a data quota allocated to the client.
  • the server and / or the billing system may generate guide information on data usage based on the verification result information.
  • the server and / or billing system may send the guide information to the client.
  • the guide information includes excess information indicating whether the data usage of the client has exceeded the predetermined usage, remaining information indicating available data capacity excluding the data usage among the predetermined usage, and bandwidth and quality for P2P communication. It may include at least one of the restriction information indicating whether there is a restriction on at least one of. For example, a predetermined usage amount is 2 GB (gigabyte) and data usage is 1 GB. The guide information may include remaining amount information indicating that 1 GB of data capacity remains. In addition, the guide information may include excess information indicating that data usage does not exceed a predetermined usage amount and / or restriction information indicating that bandwidth and quality for P2P communication are not limited. As another example, assume that the predetermined usage amount is 2 GB and the usage information is 2.5 GB.
  • the guide information may include excess information indicating that the usage information has exceeded a predetermined usage amount, remaining information indicating that there is no available data capacity, and restriction information indicating that there is a limitation on at least one of bandwidth and quality for P2P communication. have.
  • the guide information may include information that 0.5GB, which is a data usage exceeding a predetermined usage amount, will be additionally charged.
  • the client can visually display the guide information on the display.
  • the client may transmit a request for providing guide information to the server based on the user's input information, and the server may transmit the guide information to the client.
  • a client may share its assigned data quota with at least one other client. For example, assume that the data quota allocated to clients is 5GB. Clients can share 5GB of data quota with other clients. In other words, a client may form a shared group to share its data quota with shared clients in the shared group.
  • the client may receive information related to the data usage of the shared client from the server and / or the shared client, and update the decryption number information of the client based on the received information.
  • the received information may include, for example, updated decryption number information each time the shared client decrypts the encrypted data received through the P2P communication.
  • the client 1 sets up a P2P communication path with each of the clients 2 to 4 and receives data through each P2P communication path. More specifically, client 1 receives data a encrypted with shared key 1 from client 2, receives data b encrypted with shared key 2 from client 3, and receives data c encrypted with shared key 3 from client 4 do.
  • Each of the shared keys 1 to 3 may be identical to each other. Alternatively, the shared keys 1 to 3 may each be different. Alternatively, the shared keys 1 and 2 may be identical to each other and may be different from the shared key 3.
  • Client 1 can decrypt data a using shared key 1 and update decryption number information.
  • Client 1 can decrypt data b using shared key 2 and update the decryption count information.
  • the client 1 can decrypt the data c using the shared key 3 and update the decryption number information.
  • the decoding number information client 1 recorded before the client 1 performs P2P communication with each of the clients 2 to 4 is n.
  • the decryption count information client 1 may be updated to n + 3.
  • the decryption count information may be information related to billing for data usage or data usage of the client 1.
  • the client 1 may transmit its decryption number information to the server.
  • FIG. 11 illustrates a sharing of a data quota allocated to a client according to an exemplary embodiment.
  • the client 1110 may share its data quota with a sharing client in the sharing group 1120.
  • the sharing group 1120 may be formed based on the identifier. More specifically, an identifier is assigned to communication software that enables P2P communication of the client 1110. Communication software that enables P2P communication of clients 1121 and 1122 is assigned an identifier.
  • Client 1121 and client 1122 may display on the display a visual code (eg, a QR code) for registering client 1110 as a parent or master.
  • a visual code eg, a QR code
  • Each QR code may be, for example, an encoded key corresponding to each of client 1121 and client 1122.
  • the client 1110 may capture the visual code via optical means (eg, a camera) and extract a key from the captured QR code.
  • the client 1110 may send its identifier and key to the server, and the server may verify that the key is valid. For example, the server can check whether the number of available keys is zero. If the key is valid, the server may manage the client 1110 as the master or parent of the client 1121 and the client 1122, and the client 1121 and the client 1122 as slaves of the client 1110. Or it can be managed as a child.
  • the identifiers of the client 1121 and the client 1122 may be managed by grouping with the identifiers of the client 1110.
  • the server may also update the number of times the key is available.
  • client 1110 is a master and clients 1121 and 1122 are slaves.
  • Clients 1121 and 1122 may be defined as shared clients that can share the data quota assigned to client 1110.
  • the sharing clients 1121 and 1122 may receive the encrypted data by performing P2P communication.
  • the shared clients 1121 and 1122 may decrypt data using the shared key shared with the other party, and update the decryption number information.
  • the shared clients 1121 and 1122 may transmit the decryption number information to the server and / or the client 1110.
  • the client 1110 may receive information related to data usage of the shared clients 1121 and 1122, and may update its decryption number information based on the received information. For example, it is assumed that decryption number information of each of the shared client 1121 and the shared client 1122 is 100 and 200, respectively.
  • the client 1110 may receive decryption number information of the shared clients 1121 and 1122, and may add 300 to its decryption number information.
  • FIG. 12 is a block diagram illustrating an example of a client according to an exemplary embodiment.
  • the client 1200 includes a communication interface 1210 and a controller 1220.
  • the client 1200 includes a memory (not shown).
  • the memory stores communication software, and the controller 1220 executes the communication software.
  • an operation of the communication interface 1210 and an operation of the controller 12720 may be performed.
  • the communication interface 1210 establishes a peer to peer (P2P) communication path with a counterpart client.
  • the communication interface 1210 transmits a shared key to the counterpart client, and receives data encrypted with the shared key through a P2P communication path.
  • the controller 1220 decrypts the encrypted data using the shared key.
  • the controller 1220 updates decryption number information related to data usage of the client. Billing-based information can be generated via communication software.
  • the decryption number information may be stored in a memory and / or a secure call dongle.
  • FIG. 13 illustrates an example of a secure call dongle according to an exemplary embodiment.
  • FIG. 13 an example of a client 1300 and a secure call dongle 1310 is shown.
  • the secure call dongle 1310 may be detachable from the input / output interface of the client 1300.
  • Input and output interfaces include a micro USB port and an Apple® Lightning port.
  • the secure call dongle 1310 may be designed to be compatible with various input / output interfaces developed in the future.
  • the secure call dongle 1310 and the client 1300 may be connected through short-range wireless communication without physical contact.
  • Short-range wireless communication is, for example, Bluetooth, NFC, or Wi-Fi.
  • Near field communication is not limited to the above-described example.
  • the secure call dongle 1310 may include a certain amount of memory.
  • the memory may store communication software, a call history through the communication software, a messaging history, a message content, an attached file, and the like.
  • the secure call dongle 1310 may include a battery of a predetermined capacity. When the battery of the client 1300 is low, the secure call dongle 1310 may supply power to the client 1300 to allow a call for a predetermined time or more. Here, when the secure call dongle 1310 is connected to the client 1300 without physical contact, the secure call dongle 810 may wirelessly transmit power to the client 1300.
  • communication software When the secure call dongle 1310 is connected with the client 1300, communication software may be visually displayed on the display of the client 1300. As another example, when the secure call dongle 1310 is connected with the client 1300, communication software may be executed.
  • a secure call dongle 1310 may be distributed that includes a memory in which an identifier corresponding to the communication software is stored.
  • an identifier required for the secure call may be allocated to the communication software.
  • the secure call dongle 1310 may store decryption number information of the client 1300. For example, while the secure call dongle 1310 is connected with the client 1300, the client 1300 may receive the encrypted data by performing P2P communication, and update the decryption count information each time the data is decrypted. The secure call dongle 1310 may be stored.
  • the secure call dongle 1310 may store messages and / or contents transmitted and received through a chat room. Attributes are defined in data such as messages and / or content, so the data may or may not be moved out of the secure call dongle 1310.
  • the client 1300 may transmit a file stored in the secure call dongle 1310 to the outside only by obtaining a movement permission for the file from the original owner (or security manager) of the file.
  • the file may mean that an assigned identifier (where the identifier is an identifier assigned to the file) is recorded on the server, and the client 1300 indicates that the file is stored externally.
  • a message may be sent to the original owner (or security manager) 's client that it will be sent or moved. If the original owner (or security administrator) approves the transfer or movement of the file, the properties of the file may be overridden or modified. Accordingly, the file may be transmitted or moved outside the secure call dongle 1310.
  • the apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components.
  • the devices and components described in the embodiments are, for example, processors, controllers, arithmetic logic units (ALUs), digital signal processors, microcomputers, field programmable gate arrays (FPGAs).
  • ALUs arithmetic logic units
  • FPGAs field programmable gate arrays
  • PLU programmable logic unit
  • the processing device may execute an operating system (OS) and one or more software applications running on the operating system.
  • the processing device may also access, store, manipulate, process, and generate data in response to the execution of the software.
  • processing device includes a plurality of processing elements and / or a plurality of types of processing elements. It can be seen that it may include.
  • the processing device may include a plurality of processors or one processor and one controller.
  • other processing configurations are possible, such as parallel processors.
  • the software may include a computer program, code, instructions, or a combination of one or more of the above, and configure the processing device to operate as desired, or process it independently or collectively. You can command the device.
  • Software and / or data may be any type of machine, component, physical device, virtual equipment, computer storage medium or device in order to be interpreted by or to provide instructions or data to the processing device. Or may be permanently or temporarily embodied in a signal wave to be transmitted.
  • the software may be distributed over networked computer systems so that they may be stored or executed in a distributed manner.
  • Software and data may be stored on one or more computer readable recording media.
  • the method according to the embodiment may be embodied in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium.
  • the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
  • the program instructions recorded on the media may be those specially designed and constructed for the purposes of the embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts.
  • Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks.
  • Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
  • the hardware device described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

A method for operating a communication device is disclosed. One embodiment includes the steps of: generating an intermediary key corresponding to peer to peer (P2P) communication between a client and a counterpart client; transmitting the intermediary key to the counterpart client; obtaining an intermediary path corresponding to the intermediary key; receiving the data through the intermediary path from the client that did not receive an acknowledgement for data transmitted to the counterpart client because of a change of a network address of the counterpart client; and transmitting the data to the counterpart client if the counterpart client accesses the changed network address by using the intermediary key.

Description

라우팅 방법 및 이를 수행하는 네트워크 엔티티Routing method and network entity performing it
아래 실시예들은 라우팅 방법 및 이를 수행하는 네트워크 엔티티에 관한 것이다.The embodiments below relate to a routing method and a network entity performing the same.
최근에, 음성 통화 기반의 레거시 통신 요금 방식이 데이터 기반의 방식으로 전환되고 있다. 통신 시장은 과거 아날로그 방식의 1G(generation)에서 디지털 방식의 2G(디지털)로, 2G에서 데이터 통신을 위한 3G로, 3G보다 데이터 전송 대역폭이 확장된 4G로 진화되어 왔다.In recent years, voice communication based legacy communication charge schemes have been shifted to data based schemes. The telecom market has evolved from analog 1G (generation) to digital 2G (digital), from 2G to 3G for data communication, and to 4G with more data transfer bandwidth than 3G.
최근 이동통신 기술은 5G를 타겟으로 한다. 5G로의 발전을 위해 통신 대역폭의 확장뿐 아니라 데이터 전송 속도의 향상이 필요하다. 데이터 전송 속도의 향상을 위해 다양한 통신 방식이 응용될 수 있다.Recently, mobile communication technology targets 5G. The evolution to 5G requires not only expansion of communication bandwidth but also improvement of data transmission speed. Various communication methods may be applied to improve the data transmission speed.
다양한 통신 방식 중 P2P(Peer to Peer) 또는 릴레이를 이용한 방식을 이용하는 경우, 음성 통화를 지원할 수 있는 정도의 QoS(Quality of Service)를 보장하기 위한 네트워크 라우팅 기법이 요구된다.When using a peer-to-peer (P2P) or relay method among various communication methods, a network routing technique is required to guarantee a quality of service (QoS) that can support voice calls.
또한, 다양한 통신 방식 중 P2P(Peer to Peer) 또는 릴레이를 이용한 방식을 이용하는 경우, 즉, 이동 통신 사업자가 직접 관리하는 네트워크 엔티티(entity)를 경유하지 않는 통신의 경우, 과금 대상이 되는 데이터 사용량에 대한 과금을 수행하는 것이 어렵다.In addition, in the case of using a peer to peer (P2P) or relay method among various communication methods, that is, in the case of communication that does not go through a network entity directly managed by a mobile service provider, It is difficult to carry out the billing.
일 측에 따른 통신 장치의 동작 방법은 클라이언트와 상대 클라이언트간의 P2P(Peer to Peer) 통신에 대응하는 매개키를 생성하는 단계; 상기 매개키를 상기 상대 클라이언트로 전송하는 단계; 상기 매개키에 대응하는 매개 경로를 확보하는 단계; 상기 상대 클라이언트의 네트워크 주소가 변경되어, 상기 상대 클라이언트로 전송한 데이터에 대한 확인 응답을 수신하지 못한 상기 클라이언트로부터, 상기 매개 경로를 통해 상기 데이터를 수신하는 단계; 및 상기 상대 클라이언트가 상기 매개키를 이용하여 접속하는 경우, 상기 데이터를 상기 상대 클라이언트로 전송하는 단계를 포함한다.According to an aspect of an exemplary embodiment, a method of operating a communication device includes generating an intermediate key corresponding to peer to peer (P2P) communication between a client and a counterpart client; Transmitting the intermediate key to the counterpart client; Securing an intermediate path corresponding to the intermediate key; Receiving the data through the intermediary path from the client whose network address of the counterpart client has been changed and has not received an acknowledgment for the data sent to the counterpart client; And transmitting the data to the counterpart client when the counterpart client connects using the intermediate key.
상기 매개키를 생성하는 단계는, 상기 클라이언트의 P2P 통신 요청을 서버로부터 전달받은 상기 상대 클라이언트와 연결되는 경우, 상기 매개키를 생성하는 단계를 포함할 수 있다.The generating of the intermediate key may include generating the intermediate key when connected to the counterpart client that has received the client's P2P communication request from the server.
상기 서버는, 상기 상대 클라이언트로부터 상기 매개키를 수신하고, 상기 매개키를 상기 클라이언트로 전송할 수 있고, 상기 매개 경로를 확보하는 단계는, 상기 클라이언트로부터 상기 매개키를 수신한 경우, 상기 매개 경로를 확보하는 단계를 포함할 수 있다.The server may receive the intermediate key from the counterpart client, transmit the intermediate key to the client, and the step of securing the intermediate path may include: receiving the intermediate key from the client; Securing may be included.
상기 매개 경로는, 상기 매개키를 보유한 상기 클라이언트 및 상기 상대 클라이언트의 전용 방(dedicated room)을 포함할 수 있다.The intermediate path may include a dedicated room of the client holding the intermediate key and the counterpart client.
상기 데이터를 상기 상대 클라이언트로 전송하는 단계는, 상기 변경된 네트워크 주소를 갖는 상기 상대 클라이언트로부터 상기 매개키를 포함하는 접속 요청을 수신하는 단계; 및 상기 매개키를 기초로 상기 접속 요청에 따른 접속을 허용하는 단계를 포함할 수 있다.The transmitting of the data to the counterpart client may include: receiving a connection request including the intermediate key from the counterpart client having the changed network address; And allowing an access according to the access request based on the intermediate key.
상기 매개키는, 임의값에 대응하거나 상기 클라이언트 및 상기 상대 클라이언트의 고유 정보를 기초로 생성될 수 있다.The intermediate key may correspond to an arbitrary value or may be generated based on unique information of the client and the counterpart client.
상기 클라이언트는 상기 상대 클라이언트가 상기 통신 장치로부터 수신한 데이터에 대한 확인 응답을 수신할 수 있고, 상기 상대 클라이언트의 변경된 네트워크 주소로 이후 데이터를 전송할 수 있다.The client may receive an acknowledgment for the data received by the counterpart client from the communication device, and may later transmit data to the changed network address of the counterpart client.
일 측에 따른 서버의 동작 방법은 클라이언트의 P2P 통신 요청을 수신하고, 상기 P2P 통신 요청을 상대 클라이언트로 전송하는 단계; 상기 상대 클라이언트가 상기 서버에 접속하는 경우, 매개키를 생성하고, 상기 매개키를 상기 상대 클라이언트 및 상기 클라이언트로 전송하는 단계; 상기 클라이언트로부터 상기 매개키를 수신하여 상기 매개키에 대응하는 매개 경로를 확보하는 단계; 상기 상대 클라이언트의 네트워크 주소가 변경되어, 상기 상대 클라이언트로 전송한 데이터에 대한 확인 응답을 수신하지 못한 상기 클라이언트로부터, 상기 매개 경로를 통해 상기 데이터를 수신하는 단계; 및 상기 상대 클라이언트가 상기 매개키를 이용하여 재접속하는 경우, 상기 데이터를 상기 상대 클라이언트로 전송하는 단계를 포함한다.According to an aspect, an operation method of a server may include: receiving a P2P communication request from a client and transmitting the P2P communication request to a counterpart client; When the counterpart client accesses the server, generating an intermediate key and transmitting the intermediate key to the counterpart client and the client; Receiving the intermediate key from the client to secure an intermediate path corresponding to the intermediate key; Receiving the data through the intermediary path from the client whose network address of the counterpart client has been changed and has not received an acknowledgment for the data sent to the counterpart client; And transmitting the data to the counterpart client when the counterpart client reconnects using the intermediate key.
상기 매개 경로는, 상기 매개키를 보유한 상기 클라이언트 및 상기 상대 클라이언트의 전용 방(dedicated room)을 포함할 수 있다.The intermediate path may include a dedicated room of the client holding the intermediate key and the counterpart client.
상기 데이터를 상기 상대 클라이언트로 전송하는 단계는, 상기 변경된 네트워크 주소를 갖는 상기 상대 클라이언트로부터 상기 매개키를 포함하는 재접속 요청을 수신하는 단계; 및 상기 매개키를 기초로 상기 재접속 요청에 따른 접속을 허용하는 단계를 포함할 수 있다.The transmitting of the data to the counterpart client may include: receiving a reconnection request including the intermediate key from the counterpart client having the changed network address; And allowing an access according to the reconnection request based on the intermediate key.
상기 상대 클라이언트의 상기 네트워크 주소가 변경된 경우, 상기 상대 클라이언트로부터 주소 변경 통지를 수신하는 단계; 및 상기 네트워크 주소의 변경을 상기 클라이언트에게 알리는 단계를 더 포함할 수 있다.Receiving an address change notification from the counterpart client when the network address of the counterpart client changes; And notifying the client of the change of the network address.
상기 매개키는, 임의값에 대응하거나 상기 클라이언트 및 상기 상대 클라이언트의 고유 정보를 기초로 생성될 수 있다.The intermediate key may correspond to an arbitrary value or may be generated based on unique information of the client and the counterpart client.
상기 클라이언트는 상기 상대 클라이언트가 수신한 데이터에 대한 확인 응답을 수신할 수 있고, 상기 상대 클라이언트의 변경된 네트워크 주소로 이후 데이터를 전송할 수 있다.The client may receive an acknowledgment for the data received by the counterpart client and may later transmit data to the changed network address of the counterpart client.
상기 클라이언트의 P2P 통신 요청을 수신하는 경우, 상기 클라이언트의 세션 식별자를 상기 클라이언트에 할당하는 단계를 더 포함할 수 있다.When receiving the P2P communication request of the client, the method may further include allocating a session identifier of the client to the client.
상기 P2P 통신 요청의 수신 이전에 접속한 상기 클라이언트에게 무작위로 생성된 질문을 전송하는 단계; 상기 클라이언트로부터 답을 수신하는 단계; 및 상기 답이 상기 질문에 대응하는지 확인하는 단계를 더 포함할 수 있다.Sending a randomly generated question to the client that connected before receiving the P2P communication request; Receiving an answer from the client; And confirming whether the answer corresponds to the question.
상기 질문을 전송하는 단계는, 상기 클라이언트로부터 수신된 식별 정보 및 상기 클라이언트의 접속 시간 정보를 암호화하여 생성된 제1 암호 정보를 상기 질문으로 전송하는 단계를 포함할 수 있고, 상기 답을 수신하는 단계는, 상기 제1 암호 정보를 암호화하여 생성된 제2 암호 정보를 상기 답으로 수신하는 단계를 포함할 수 있고, 상기 답이 상기 질문에 대응하는지 확인하는 단계는, 상기 제2 암호 정보를 복호화하여 추출된 추출 정보가 상기 식별 정보 및 상기 접속 시간 정보에 대응하는지 확인하는 단계를 포함할 수 있다.The transmitting of the question may include transmitting, to the question, first cryptographic information generated by encrypting identification information received from the client and access time information of the client, and receiving the answer. The method may include receiving, as the answer, second cryptographic information generated by encrypting the first cryptographic information, and confirming whether the answer corresponds to the question by decrypting the second cryptographic information. And checking whether the extracted extraction information corresponds to the identification information and the access time information.
일 측에 따른 클라이언트의 동작 방법은 P2P 통신 요청을 서버로 전송하는 단계; 상기 클라이언트와 상대 클라이언트의 통신을 매개하는 통신 매개 장치에 의해 생성된 매개키 및 상기 상대 클라이언트의 네트워크 주소를 상기 서버로부터 수신하는 단계; 상기 매개키를 이용하여 상기 통신 매개 장치와 연결하는 단계; 상기 네트워크 주소를 이용하여 상기 상대 클라이언트에게 데이터를 전송하는 단계; 상기 네트워크 주소가 변경되어, 상기 상대 클라이언트에게 전송한 데이터에 대한 확인 응답을 수신하지 못한 경우, 상기 데이터를 상기 통신 매개 장치로 전송하는 단계를 포함하고, 상기 상대 클라이언트는, 상기 매개키를 이용하여 상기 통신 매개 장치에 접속하고, 상기 통신 매개 장치로부터 상기 데이터를 수신한다.According to an aspect, an operation method of a client may include transmitting a P2P communication request to a server; Receiving, from the server, a media key generated by a communication mediator for mediating communication between the client and the counterpart client and a network address of the counterpart client; Connecting with the communication media device using the media key; Transmitting data to the counterpart client using the network address; And when the network address is changed and fails to receive an acknowledgment for the data transmitted to the counterpart client, transmitting the data to the communication mediator, wherein the counterpart client uses the intermediary key. Connect to the communication medium and receive the data from the communication medium.
상기 통신 매개 장치와 연결되는 경우, 상기 매개키에 대응하는 매개 경로가 확보될 수 있다.When connected with the communication medium device, a medium path corresponding to the medium key can be secured.
상기 매개 경로는, 상기 매개키를 보유한 상기 클라이언트 및 상기 상대 클라이언트의 전용 방(dedicated room)을 포함할 수 있다.The intermediate path may include a dedicated room of the client holding the intermediate key and the counterpart client.
상기 서버로부터 상기 네트워크 주소가 변경되었다는 통지를 수신하는 단계를 더 포함할 수 있다.The method may further include receiving a notification from the server that the network address has changed.
상기 상대 클라이언트가 상기 통신 매개 장치로부터 수신한 데이터에 대한 확인 응답을 상기 상대 클라이언트로부터 수신하는 단계를 더 포함할 수 있다.The counterpart client may further include receiving, from the counterpart client, an acknowledgment for the data received from the communication medium device.
상기 P2P 통신 경로를 생성하는 단계는, 상기 상대 클라이언트에게 속도 테스트 요청을 전송하는 단계; 상기 상대 클라이언트로부터 상기 속도 테스트 요청에 대한 테스트 응답을 수신하는 단계; 및 상기 테스트 응답을 기초로 상기 상대 클라이언트의 응답 시간을 확인하는 단계를 포함할 수 있다.The generating of the P2P communication path may include: sending a speed test request to the counterpart client; Receiving a test response to the speed test request from the counterpart client; And checking a response time of the counterpart client based on the test response.
상기 데이터를 전송하는 단계는, 상기 확인 응답을 상기 응답 시간 이내에 수신하지 못한 경우, 상기 데이터를 상기 통신 매개 장치로 전송하는 단계를 포함할 수 있다.The transmitting of the data may include transmitting the data to the communication medium device when the acknowledgment is not received within the response time.
상기 P2P 통신 요청의 전송 이전에 상기 서버로 접속하여 상기 서버로부터 무작위로 생성된 질문을 수신하는 단계; 및 상기 서버로 답을 전송하는 단계를 더 포함할 수 있다.Accessing the server and receiving a randomly generated question from the server prior to sending the P2P communication request; And transmitting an answer to the server.
상기 질문을 수신하는 단계는, 상기 서버로 상기 클라이언트의 식별 정보를 전송하는 단계; 및 상기 식별 정보 및 상기 클라이언트의 접속 시간 정보가 암호화되어 생성된 제1 암호 정보를 상기 질문으로 수신하는 단계를 포함할 수 있고, 상기 답을 전송하는 단계는, 상기 제1 암호 정보를 암호화하여 생성된 제2 암호 정보를 상기 답으로 전송하는 단계를 포함할 수 있다.Receiving the question comprises: transmitting identification information of the client to the server; And receiving, as the question, first cryptographic information generated by encrypting the identification information and the access time information of the client, and transmitting the answer, encrypting the first cryptographic information. And transmitting the encrypted second cryptographic information as the answer.
다른 일 측에 따른 클라이언트의 동작 방법은 요청 클라이언트의 P2P 통신 요청을 서버로부터 수신한 경우, 통신 매개 장치에 접속하는 단계; 상기 통신 매개 장치로부터 매개키를 수신하는 단계; 상기 클라이언트의 네트워크 주소가 변경된 경우, 상기 매개키를 이용하여 상기 통신 매개 장치에 재접속하는 단계; 상기 통신 매개 장치 -상기 통신 매개 장치는, 상기 클라이언트로 전송된 데이터에 대한 확인 응답을 수신하지 못한 상기 요청 클라이언트로부터, 상기 데이터를 수신하는- 로부터 상기 데이터를 수신하는 단계; 및 상기 요청 클라이언트에게 상기 데이터에 대한 확인 응답을 전송하는 단계를 포함한다.According to another aspect of the present invention, there is provided a method of operating a client, when receiving a P2P communication request of a requesting client from a server; Receiving an intermediate key from the communication intermediate device; Reconnecting to the communication media device using the media key when the network address of the client is changed; Receiving the data from the communication medium device, receiving the data from the requesting client that has not received an acknowledgment for the data sent to the client; And sending an acknowledgment for the data to the requesting client.
일 측에 따른 통신 장치는 클라이언트와 상대 클라이언트간의 P2P(Peer to Peer) 통신에 대응하는 매개키를 생성하고, 상기 매개키에 대응하는 매개 경로를 확보하는 컨트롤러; 및 상기 매개키를 상기 상대 클라이언트로 전송하고, 상기 상대 클라이언트의 네트워크 주소가 변경되어, 상기 상대 클라이언트로 전송한 데이터에 대한 확인 응답을 수신하지 못한 상기 클라이언트로부터, 상기 매개 경로를 통해 상기 데이터를 수신하며, 상기 상대 클라이언트가 상기 매개키를 이용하여 접속하는 경우, 상기 데이터를 상기 상대 클라이언트로 전송하는 통신부를 포함한다.According to an aspect, there is provided a communication device including: a controller configured to generate a media key corresponding to peer-to-peer communication between a client and a counterpart client, and to secure a media path corresponding to the media key; And transmitting the media key to the counterpart client, and receiving the data through the intermediary path from the client that has changed the network address of the counterpart client and has not received an acknowledgment for the data sent to the counterpart client. And, when the counterpart client accesses using the intermediate key, transmits the data to the counterpart client.
일 측에 따른 클라이언트는 P2P 통신 요청을 서버로 전송하고, 상기 클라이언트와 상대 클라이언트의 통신을 매개하는 통신 매개 장치에 의해 생성된 매개키 및 상기 상대 클라이언트의 네트워크 주소를 상기 서버로부터 수신하며, 상기 매개키를 이용하여 상기 통신 매개 장치와 연결하고, 상기 네트워크 주소를 이용하여 상기 상대 클라이언트에게 데이터를 전송하고, 상기 네트워크 주소가 변경되어, 상기 상대 클라이언트에게 전송한 데이터에 대한 확인 응답을 수신하지 못한 경우, 상기 데이터를 상기 통신 매개 장치로 전송하는 연결부; 및 상기 연결부를 제어하는 프로세서를 포함하고, 상기 상대 클라이언트는, 상기 매개키를 이용하여 상기 통신 매개 장치에 접속하고, 상기 통신 매개 장치로부터 상기 데이터를 수신한다.The client according to one side sends a P2P communication request to the server, and receives from the server the media key and the network address of the counterpart client generated by the communication mediator for mediating communication between the client and the counterpart client, Connecting to the communication media device using a key, transmitting data to the counterpart client using the network address, and changing the network address, and failing to receive an acknowledgment for data transmitted to the counterpart client. A connection unit for transmitting the data to the communication medium device; And a processor for controlling the connection unit, wherein the counterpart client connects to the communication medium apparatus using the medium key and receives the data from the communication medium apparatus.
다른 일 측에 따른 클라이언트는 요청 클라이언트의 P2P 통신 요청을 서버로부터 수신한 경우, 통신 매개 장치에 접속하고, 상기 통신 매개 장치로부터 매개키를 수신하며, 상기 클라이언트의 네트워크 주소가 변경된 경우, 상기 매개키를 이용하여 상기 통신 매개 장치에 재접속하고, 상기 통신 매개 장치 -상기 통신 매개 장치는, 상기 클라이언트로 전송된 데이터에 대한 확인 응답을 수신하지 못한 상기 요청 클라이언트로 장치부터, 상기 데이터를 수신하는- 로부터 상기 데이터를 수신하고, 상기 요청 클라이언트에게 상기 데이터에 대한 확인 응답을 전송하는 연결부; 및 상기 연결부를 제어하는 프로세서를 포함한다.When the client according to the other side receives the P2P communication request of the requesting client from the server, access the communication medium device, receive the medium key from the communication medium device, if the network address of the client is changed, the medium key Reconnect to the communication media device using the device, wherein the communication media device receives the data from the device to the requesting client that has not received an acknowledgment for the data sent to the client. A connection unit receiving the data and transmitting an acknowledgment for the data to the requesting client; And a processor controlling the connection unit.
또 다른 일 측에 따른 클라이언트의 동작 방법은 상대 클라이언트와 P2P(Peer To Peer) 통신 경로를 설정하는 단계; 상기 상대 클라이언트에게 공유키를 전송하는 단계; 상기 P2P 통신 경로를 통해 상기 공유키로 암호화된 데이터를 수신하는 단계; 상기 암호화된 데이터를 상기 공유키를 이용하여 복호화하는 단계; 및 상기 데이터를 복호화한 경우, 클라이언트의 데이터 사용량과 관련된 복호화 횟수 정보를 업데이트하는 단계를 포함한다.According to another aspect of the present invention, there is provided a method of operating a client, comprising: establishing a peer to peer (P2P) communication path with a counterpart client; Transmitting a shared key to the counterpart client; Receiving data encrypted with the shared key through the P2P communication path; Decrypting the encrypted data using the shared key; And when the data is decrypted, updating decryption number information related to data usage of the client.
업데이트된 복호화 횟수 정보를 서버로 전송하는 단계: 및 상기 서버로부터 상기 데이터 사용량에 대한 가이드(guide) 정보를 수신하는 단계를 더 포함할 수 있다.The method may further include transmitting updated decryption number information to a server, and receiving guide information on the data usage amount from the server.
상기 가이드 정보는, 상기 데이터 사용량이 미리 정해진 사용량을 초과하였는지 여부를 나타내는 초과 정보; 상기 미리 정해진 사용량 중 상기 데이터 사용량을 제외한 가용(available) 데이터 용량을 나타내는 잔량(remaining) 정보; 및 상기 클라이언트의 P2P 통신에 대한 대역폭 및 품질 중 적어도 하나에 대한 제한이 있는지 여부를 나타내는 제한 정보 중 적어도 하나를 포함할 수 있다.The guide information may include: excess information indicating whether the data usage amount exceeds a predetermined usage amount; Remaining information indicating available data capacity excluding the data usage amount among the predetermined usage amounts; And restriction information indicating whether there is a restriction on at least one of bandwidth and quality of the P2P communication of the client.
상기 클라이언트에 할당된 데이터 쿼터(quota)를 공유하는 공유 클라이언트의 데이터 사용량과 관련된 정보를 수신하는 단계; 및 수신 정보를 기초로, 상기 복호화 횟수 정보를 업데이트하는 단계를 더 포함할 수 있다.Receiving information related to data usage of a shared client sharing a data quota assigned to the client; And updating the decoding count information based on the received information.
상기 수신 정보는, 상기 공유 클라이언트가 P2P 통신을 통해 수신한 암호화된 데이터를 복호화할 때마다 업데이트한 복호화 횟수 정보를 포함할 수 있다.The received information may include updated decryption number information each time the shared client decrypts the encrypted data received through the P2P communication.
상기 클라이언트의 네트워크 주소가 변경되는 경우, 상기 클라이언트의 네트워크 주소가 변경됨을 나타내는 변경 정보를 서버로 전송하는 단계; 상기 P2P 통신 경로에 대응하는 매개 경로를 확보한 통신 매개 장치에 접속하는 단계; 및 상기 통신 매개 장치로부터 상기 상대 클라이언트의 상기 공유키로 암호화된 다른 데이터를 수신하는 단계를 더 포함할 수 있고, 상기 상대 클라이언트는, 상기 클라이언트로 전송한 상기 다른 데이터에 대한 확인 응답을 상기 클라이언트로부터 수신하지 못한 경우, 상기 다른 데이터를 상기 통신 매개 장치로 전송할 수 있다.If the network address of the client changes, transmitting change information indicating that the network address of the client changes to a server; Accessing a communication mediation device that secures an intermediate path corresponding to the P2P communication path; And receiving other data encrypted with the shared key of the counterpart client from the communication medium device, wherein the counterpart client receives an acknowledgment for the other data transmitted to the client from the client. If not, the other data may be transmitted to the communication medium.
상기 다른 데이터를 상기 공유키로 복호화하는 경우, 상기 복호화 횟수 정보를 업데이트하는 단계를 더 포함할 수 있다.When decrypting the other data with the shared key, the method may further include updating the decryption number information.
상기 P2P 통신 경로를 설정하는 단계는, P2P 통신 요청을 서버로 전송하는 단계; 상기 클라이언트와 상기 상대 클라이언트의 통신을 매개하는 통신 매개 장치에 의해 생성된 매개키 및 상기 상대 클라이언트의 네트워크 주소를 상기 서버로부터 수신하는 단계; 상기 매개키를 이용하여 상기 통신 매개 장치에 접속하는 단계; 및 상기 통신 매개 장치에 접속한 경우, 상기 네트워크 주소를 기초로 상기 상대 클라이언트와 상기 P2P 통신 경로를 설정하는 단계를 포함할 수 있다.The establishing of the P2P communication path may include transmitting a P2P communication request to a server; Receiving, from the server, a media key generated by a communication mediator for mediating communication between the client and the counterpart client and a network address of the counterpart client; Accessing the communication media device using the media key; And establishing a P2P communication path with the counterpart client based on the network address when accessing the communication medium device.
상기 P2P 통신 경로를 설정하는 단계는, 상기 상대 클라이언트의 P2P 통신 요청을 서버로부터 수신하는 단계; 상기 P2P 통신 요청을 수신하는 경우, 상기 클라이언트와 상기 상대 클라이언트의 통신을 매개하는 통신 매개 장치에 접속하는 단계; 상기 통신 매개 장치로부터 매개키를 수신하고, 상기 매개키를 상기 서버로 전송하는 단계; 상기 상대 클라이언트로부터 테스트 데이터를 수신하고, 상기 P2P 통신 경로를 설정하는 단계를 포함할 수 있고, 상기 상대 클라이언트는, 상기 서버로부터 상기 클라이언트의 네트워크 주소 및 상기 매개키를 수신하고, 상기 매개키를 이용하여 상기 통신 매개 장치에 접속하며, 상기 네트워크 주소를 이용하여 상기 클라이언트에게 상기 테스트 데이터를 전송할 수 있다.The establishing of the P2P communication path may include: receiving a P2P communication request of the counterpart client from a server; When receiving the P2P communication request, accessing a communication mediation device that mediates communication between the client and the counterpart client; Receiving a media key from the communication media device and transmitting the media key to the server; Receiving test data from the counterpart client and establishing the P2P communication path, wherein the counterpart client receives the client's network address and the intermediate key from the server, and uses the intermediate key; Access to the communication media device, and transmit the test data to the client using the network address.
또 다른 일 측에 따른 클라이언트는 상대 클라이언트와 P2P(Peer To Peer) 통신 경로를 설정하고, 상기 상대 클라이언트에게 공유키를 전송하며, 상기 P2P 통신 경로를 통해 상기 공유키로 암호화된 데이터를 수신하는 통신 인터페이스; 및 상기 암호화된 데이터를 상기 공유키를 이용하여 복호화하고, 상기 데이터를 복호화한 경우, 클라이언트의 데이터 사용량과 관련된 복호화 횟수 정보를 업데이트하는 컨트롤러를 포함한다.According to another aspect of the present invention, a client establishes a peer-to-peer communication path with a counterpart client, transmits a shared key to the counterpart client, and receives data encrypted with the shared key through the P2P communication path. ; And a controller that decrypts the encrypted data using the shared key and updates decryption number information related to data usage of a client when the data is decrypted.
상기 통신 인터페이스는, 상기 복호화 횟수 정보를 서버로 전송하고, 상기 서버로부터 상기 데이터 사용량에 대한 가이드(guide) 정보를 수신할 수 있다.The communication interface may transmit the decryption number information to a server and receive guide information on the data usage amount from the server.
상기 가이드 정보는, 상기 데이터 사용량이 미리 정해진 사용량을 초과하였는지 여부를 나타내는 초과 정보; 상기 미리 정해진 사용량 중 상기 데이터 사용량을 제외한 가용(available) 데이터 용량을 나타내는 잔량(remaining) 정보; 및 상기 클라이언트의 P2P 통신에 대한 대역폭 및 품질 중 적어도 하나에 대한 제한이 있는지 여부를 나타내는 제한 정보 중 적어도 하나를 포함할 수 있다.The guide information may include: excess information indicating whether the data usage amount exceeds a predetermined usage amount; Remaining information indicating available data capacity excluding the data usage amount among the predetermined usage amounts; And restriction information indicating whether there is a restriction on at least one of bandwidth and quality of the P2P communication of the client.
상기 통신 인터페이스는, 상기 클라이언트에 할당된 데이터 쿼터(quota)를 공유하는 공유 클라이언트의 데이터 사용량과 관련된 정보를 수신할 수 있고, 상기 컨트롤러는, 수신 정보를 기초로, 상기 복호화 횟수 정보를 업데이트할 수 있다.The communication interface may receive information related to data usage of a shared client sharing a data quota allocated to the client, and the controller may update the decryption count information based on the received information. have.
상기 수신 정보는, 상기 공유 클라이언트가 P2P 통신을 통해 수신한 암호화된 데이터를 복호화할 때마다 업데이트한 복호화 횟수 정보를 포함할 수 있다.The received information may include updated decryption number information each time the shared client decrypts the encrypted data received through the P2P communication.
상기 통신 인터페이스는, 상기 클라이언트의 네트워크 주소가 변경되는 경우, 상기 클라이언트의 네트워크 주소가 변경됨을 나타내는 변경 정보를 서버로 전송하고, 상기 P2P 통신 경로에 대응하는 매개 경로를 확보한 통신 매개 장치에 접속하며, 상기 통신 매개 장치로부터 상기 상대 클라이언트의 상기 공유키로 암호화된 다른 데이터를 수신할 수 있고, 상기 상대 클라이언트는, 상기 클라이언트로 전송한 상기 다른 데이터에 대한 확인 응답을 상기 클라이언트로부터 수신하지 못한 경우, 상기 다른 데이터를 상기 통신 매개 장치로 전송할 수 있다.When the network address of the client is changed, the communication interface transmits change information indicating that the network address of the client is changed to a server, and accesses a communication medium device that secures an intermediate path corresponding to the P2P communication path. And receiving other data encrypted with the shared key of the counterpart client from the communication medium device, and when the counterpart client fails to receive an acknowledgment for the other data transmitted to the client from the client, Other data may be sent to the communication media device.
상기 컨트롤러는, 상기 다른 데이터를 상기 공유키로 복호화하는 경우, 상기 복호화 횟수 정보를 업데이트할 수 있다.The controller may update the decryption number information when the other data is decrypted with the shared key.
상기 통신 인터페이스는, P2P 통신 요청을 서버로 전송하고, 상기 클라이언트와 상기 상대 클라이언트의 통신을 매개하는 통신 매개 장치에 의해 생성된 매개키 및 상기 상대 클라이언트의 네트워크 주소를 상기 서버로부터 수신하며, 상기 매개키를 이용하여 상기 통신 매개 장치에 접속하고, 상기 통신 매개 장치에 접속한 경우, 상기 네트워크 주소를 기초로 상기 상대 클라이언트와 상기 P2P 통신 경로를 설정할 수 있다.The communication interface transmits a P2P communication request to a server, and receives from the server an intermediate key generated by a communication mediator for mediating communication between the client and the counterpart client and a network address of the counterpart client. When accessing the communication medium device using a key and accessing the communication medium device, the P2P communication path with the counterpart client may be established based on the network address.
상기 통신 인터페이스는, 상기 상대 클라이언트의 P2P 통신 요청을 서버로부터 수신하고, 상기 P2P 통신 요청을 수신하는 경우, 상기 클라이언트와 상기 상대 클라이언트의 통신을 매개하는 통신 매개 장치에 접속하며, 상기 통신 매개 장치로부터 매개키를 수신하고, 상기 매개키를 상기 서버로 전송하고, 상기 상대 클라이언트로부터 테스트 데이터를 수신하고, 상기 P2P 통신 경로를 설정할 수 있으며, 상기 상대 클라이언트는, 상기 서버로부터 상기 클라이언트의 네트워크 주소 및 상기 매개키를 수신하고, 상기 매개키를 이용하여 상기 통신 매개 장치에 접속하며, 상기 네트워크 주소를 이용하여 상기 클라이언트에게 상기 테스트 데이터를 전송할 수 있다.The communication interface receives a P2P communication request of the counterpart client from a server, and when receiving the P2P communication request, connects to a communication mediator that communicates communication between the client and the counterpart client, and from the communication medium. Receiving the intermediate key, transmitting the intermediate key to the server, receiving test data from the counterpart client, and establishing the P2P communication path, wherein the counterpart client is configured to receive the client's network address and the A media key may be received, the media key may be used to access the communication media device, and the test data may be transmitted to the client using the network address.
실시예들에 따르면, P2P 통신 경로가 단절되어도, 클라이언트는 P2P 통신 경로에 대응하는 매개 경로를 통해 통신할 수 있어, 네트워크 스루풋(network throughput)이 향상될 수 있다. 또한, 실시예들에 따르면, 데이터 기반의 통화 또는 메시징 서비스가 P2P 통신으로 제공되는 경우, P2P 통신의 데이터 사용량에 대한 과금이 수행되도록 할 수 있다. 또한, 실시예들에 따르면, 통신 소프트웨어를 통해 과금 기반 정보가 생성될 수 있다.According to embodiments, even if the P2P communication path is disconnected, the client may communicate through an intermediate path corresponding to the P2P communication path, thereby improving network throughput. In addition, according to embodiments, when a data-based call or messaging service is provided through P2P communication, charging for data usage of P2P communication may be performed. Further, according to embodiments, charging based information may be generated via communication software.
도 1a 내지 도 1b는 일 실시예에 따른 통신 시스템의 동작의 일례를 설명하기 위한 흐름도이다.1A to 1B are flowcharts illustrating an example of an operation of a communication system according to an exemplary embodiment.
도 2는 일 실시예에 따른 통신 시스템의 동작의 다른 일례를 설명하기 위한 흐름도이다.2 is a flowchart illustrating another example of an operation of a communication system according to an exemplary embodiment.
도 3a 내지 도 3b는 일 실시예에 따른 통신 시스템을 설명하기 위한 블록도이다.3A to 3B are block diagrams illustrating a communication system according to an embodiment.
도 4는 일 실시예에 따른 통신 시스템의 동작을 설명하기 위한 도면이다.4 is a diagram for describing an operation of a communication system, according to an exemplary embodiment.
도 5는 일 실시예에 따른 통신 장치의 동작 방법을 설명하기 위한 순서도이다.5 is a flowchart illustrating a method of operating a communication device, according to an exemplary embodiment.
도 6은 일 실시예에 따른 서버의 동작 방법을 설명하기 위한 순서도이다.6 is a flowchart illustrating a method of operating a server, according to an exemplary embodiment.
도 7은 일 실시예에 따른 클라이언트의 동작 방법의 일례를 설명하기 위한 순서도이다.7 is a flowchart illustrating an example of a method of operating a client, according to an exemplary embodiment.
도 8은 일 실시예에 따른 클라이언트의 동작 방법의 다른 일례를 설명하기 위한 순서도이다.8 is a flowchart illustrating another example of a method of operating a client, according to an exemplary embodiment.
도 9는 일 실시예에 따른 클라이언트와 서버의 세션 유지를 설명하기 위한 흐름도이다.9 is a flowchart illustrating session maintenance between a client and a server, according to an exemplary embodiment.
도 10a 내지 도 10b는 일 실시예에 따른 클라이언트의 동작 방법의 다른 일례를 설명하기 위한 도면이다.10A and 10B are diagrams for describing another example of a method of operating a client, according to an exemplary embodiment.
도 11은 일 실시예에 따른 클라이언트에 할당된 데이터 쿼터의 공유를 설명하기 위한 도면이다.FIG. 11 illustrates a sharing of a data quota allocated to a client according to an exemplary embodiment.
도 12는 일 실시예에 따른 클라이언트의 일례를 설명하기 위한 블록도이다.12 is a block diagram illustrating an example of a client according to an exemplary embodiment.
도 13은 일 실시예에 따른 보안 통화 동글의 일례를 설명하기 위한 도면이다.FIG. 13 illustrates an example of a secure call dongle according to an exemplary embodiment.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, exemplary embodiments will be described in detail with reference to the accompanying drawings.
아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Various modifications may be made to the embodiments described below. The examples described below are not intended to be limited to the embodiments and should be understood to include all modifications, equivalents, and substitutes for them.
실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of examples. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this specification, terms such as "comprise" or "have" are intended to indicate that there is a feature, number, step, action, component, part, or combination thereof described on the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art, and are not to be construed in ideal or excessively formal meanings unless expressly defined herein. Do not.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same components regardless of reference numerals will be given the same reference numerals and redundant description thereof will be omitted. In the following description of the embodiment, when it is determined that the detailed description of the related known technology may unnecessarily obscure the gist of the embodiment, the detailed description thereof will be omitted.
도 1a 내지 도 1b는 일 실시예에 따른 통신 시스템의 동작의 일례를 설명하기 위한 흐름도이다.1A to 1B are flowcharts illustrating an example of an operation of a communication system according to an exemplary embodiment.
도 1a을 참조하면, 일 실시예에 따른 통신 시스템은 클라이언트 1, 서버, 매개부, 및 클라이언트 2를 포함한다.Referring to FIG. 1A, a communication system according to an embodiment includes a client 1, a server, an intermediary, and a client 2.
도 1a에 도시되지 않았으나, 서버는 클라이언트 1 및 클라이언트 2 각각과 통신 세션(예를 들어, UDP(User Datagram Protocol) 세션)을 설정할 수 있다.Although not shown in FIG. 1A, the server may establish a communication session (eg, a User Datagram Protocol (UDP) session) with each of Client 1 and Client 2.
클라이언트 1은 통신 요청을 서버로 전송한다(110). 예를 들어, 클라이언트 1은 클라이언트 2와 P2P(Peer to Peer) 통신을 하기 위해 P2P 통신 요청을 UDP 세션을 통해 서버로 전송할 수 있다. Client 1 sends a communication request to the server (110). For example, the client 1 may transmit a P2P communication request to the server through a UDP session for peer to peer (P2P) communication with the client 2.
서버는 클라이언트 1의 통신 요청을 클라이언트 2로 전송한다(111).The server transmits a communication request of client 1 to client 2 (111).
클라이언트 2는 클라이언트 1의 통신 요청을 수신한 경우, 매개부와 연결할 수 있다(122). 보다 구체적으로, 클라이언트 2가 클라이언트 1의 통신 요청을 서버로부터 수신한 경우, 클라이언트 2는 매개부에 접속을 시도할 수 있고, 매개부는 클라이언트 2의 접속을 허용할 수 있다. 이에 따라, 클라이언트 2는 매개부에 접속할 수 있고, 접속을 유지할 수 있다.When the client 2 receives the communication request from the client 1, the client 2 may connect with the intermediary 122. More specifically, when the client 2 receives the client 1's communication request from the server, the client 2 may attempt to connect to the intermediary, and the intermediary may allow the client 2 to connect. Accordingly, the client 2 can connect to the intermediary and maintain the connection.
일 실시예에 따르면, 매개부는 서버와 물리적으로 구별되는 장치로, 네트워크 상에서 독립적인 장치일 수 있다. 또한, 구현에 따라 매개부는 서버에 포함될 수 있고, 서버 내에서 논리적으로 구분되는 복수의 유닛들 중 어느 하나일 수 있다.According to an embodiment, the intermediary is a device that is physically distinct from the server, and may be an independent device on the network. In addition, depending on the implementation, the intermediary may be included in the server, and may be any one of a plurality of units logically separated within the server.
매개부는 클라이언트 2와 연결되는 경우, 매개키를 생성한다(113). 예를 들어, 매개부는 임의값을 갖는 매개키를 생성할 수 있다. 또한, 매개부는 클라이언트 1 및/또는 클라이언트 2의 고유 정보를 기초로 매개키를 생성할 수 있다. 고유 정보는, 예를 들어, 클라이언트 1 및 클라이언트 2 각각에 할당된 식별자를 포함할 수 있다.When the intermediary unit is connected to the client 2, the intermediary unit generates 113 an intermediary key. For example, the intermediary can generate an intermediary key with an arbitrary value. In addition, the intermediary may generate the intermediary key based on the unique information of the client 1 and / or the client 2. The unique information may include, for example, an identifier assigned to each of Client 1 and Client 2.
매개부는 매개키를 클라이언트 2로 전송한다(114).The intermediary sends the intermediary key to client 2 (114).
클라이언트 2는 매개키를 서버로 전송한다(115).Client 2 sends the intermediate key to the server (115).
서버는 클라이언트 2의 네트워크 주소 및 매개키를 클라이언트 1로 전송한다(116). 네트워크 주소는, 예를 들어, IP(Internet Protocol) 주소를 포함할 수 있다.The server sends the client 2's network address and intermediate key to client 1 (116). The network address may include, for example, an IP (Internet Protocol) address.
클라이언트 1은 매개키를 매개부에 전송한다(117). 클라이언트 1은 매개키를 매개부에 전송하여 매개부에 접속할 수 있다. 또한, 클라이언트 1은 매개부와의 접속을 유지할 수 있다. Client 1 sends the intermediary key to the intermediary (117). Client 1 can access the intermediary by sending the intermediary key to the intermediary. In addition, the client 1 can maintain a connection with the intermediary.
매개부는 클라이언트 1로부터 매개키를 수신한 경우, 매개 경로를 확보한다(118). 도 1a에 도시된 예에서, 클라이언트 1-매개부-클라이언트 2의 연결 관계에 대응하는 매개 경로가 형성될 수 있다. 매개 경로는 클라이언트 1와 클라이언트 2 사이의 P2P 통신 경로의 단절에 대비하기 위한 경로이다. 일 실시예에 있어서, 매개 경로는 매개키를 보유한 클라이언트 1와 클라이언트 2의 전용 방(dedicated room)을 포함할 수 있다. 매개 경로의 확보는 매개부에 전용 방이 생성됨을 의미할 수 있다. 매개부가 클라이언트 1로부터 매개키를 수신하는 경우, 매개부는 클라이언트 1 및 클라이언트 2가 참여할 수 있고, 다른 클라이언트는 참여할 수 없는 전용 방을 생성할 수 있다.If the interceptor receives the intermediary key from the client 1, the interceptor secures the intermediary path (118). In the example shown in FIG. 1A, an intermediary path may be formed that corresponds to the connection relationship of client 1-mediated-client 2. The intermediate path is a path to prepare for disconnection of the P2P communication path between the client 1 and the client 2. In one embodiment, the intermediary path may comprise dedicated rooms of Client 1 and Client 2 having the media key. Securing the intermediary path may mean that a dedicated room is created in the intermediary. When the intermediary receives the intermediary key from client 1, the intermediary may create a dedicated room where client 1 and client 2 can participate and other clients cannot participate.
클라이언트 1은 네트워크 주소를 통해 클라이언트 2에게 속도 테스트 요청을 전송할 수 있다(119). 클라이언트 1은 매개부에 접속한 경우 또는 매개 경로가 확보된 경우, P2P 통신 속도를 테스트하기 위한 테스트 데이터를 클라이언트 2로 전송할 수 있다. Client 1 may send a speed test request to client 2 via the network address (119). When the client 1 accesses the intermediary unit or when the intermediate path is secured, the client 1 may transmit test data for testing the P2P communication speed to the client 2.
클라이언트 2는 속도 테스트 요청에 대한 테스트 응답을 클라이언트 1로 전송할 수 있다(120). 클라이언트 1은 클라이언트 2의 응답 시간을 확인할 수 있다. 클라이언트 1은 클라이언트 1와 클라이언트 2 사이의 P2P 통신 속도를 확인할 수 있다.Client 2 may send a test response to the speed test request to client 1 (120). Client 1 can check the response time of Client 2. Client 1 can check the P2P communication speed between Client 1 and Client 2.
클라이언트 2는 클라이언트 1에게 속도 테스트 요청을 전송할 수 있다(121). 클라이언트 1은 클라이언트 2에게 속도 테스트 요청에 대한 테스트 응답을 전송할 수 있다(122). 클라이언트 2는 클라이언트 1의 응답 시간을 확인할 수 있다.Client 2 may transmit a speed test request to client 1 (121). Client 1 may send a test response to the speed test request to client 2 (122). Client 2 can check the response time of Client 1.
클라이언트 2의 속도 테스트는 클라이언트 1의 속도 테스트와 동시에 수행될 수 있다.The speed test of client 2 may be performed simultaneously with the speed test of client 1.
일 실시예에 있어서, 클라이언트 1 및/또는 클라이언트 2의 속도 테스트는 미리 정해진 횟수만큼 반복될 수 있다. 예를 들어, 속도 테스트는 2회 또는 2회 이상 반복될 수 있다. 클라이언트 1은 클라이언트 2로부터 테스트 응답을 수신하면 클라이언트 2로 추가 속도 테스트 요청을 전송할 수 있다. 클라이언트 2는 클라이언트 1로 추가 속도 테스트 요청에 대한 테스트 응답을 전송할 수 있다. 반복된 속도 테스트를 기초로 클라이언트 1은 클라이언트 2의 평균 응답 시간을 확인할 수 있다. 마찬가지로, 반복된 속도 테스트를 기초로 클라이언트 2는 클라이언트 1의 평균 응답 시간을 확인할 수 있다.In one embodiment, the speed test of Client 1 and / or Client 2 may be repeated a predetermined number of times. For example, the speed test may be repeated two or more times. Client 1 can send an additional speed test request to Client 2 upon receiving a test response from Client 2. Client 2 may send a test response to the additional speed test request to client 1. Based on the repeated speed test, Client 1 can check the average response time of Client 2. Similarly, based on the repeated speed test, Client 2 can ascertain the average response time of Client 1.
클라이언트 1과 클라이언트 2 사이에 P2P 통신 경로가 설정될 수 있다. 클라이언트 1이 네트워크 주소 A로 맵핑되고, 클라이언트 2가 네트워크 주소 B로 맵핑된다고 하자. 이 경우, P2P 통신 경로 A-B가 설정될 수 있다.A P2P communication path may be established between client 1 and client 2. Assume that client 1 is mapped to network address A, and client 2 is mapped to network address B. In this case, the P2P communication path A-B may be set.
클라이언트 1은 공유키를 클라이언트 2로 전송한다(123). 공유키는 데이터를 암호화(encryption) 및/또는 복호화(decryption)에 사용된다. 공유키는 P2P 통신 경로를 통해 전송될 수 있다. Client 1 transmits the shared key to client 2 (123). The shared key is used for encrypting and / or decrypting data. The shared key may be transmitted through a P2P communication path.
도 1a에 도시된 예에서, 속도 테스트 종료 후에 클라이언트 1은 공유키를 클라이언트 2로 전송한다. 하지만, 이는 일 실시예에 따른 예시적인 사항일 뿐, 클라이언트 1은 속도 테스트 요청과 공유키를 동시에 클라이언트 2로 전송할 수 있다. 클라이언트 1은 클라이언트 2로부터 테스트 응답을 수신하지 못하면, 속도 테스트 요청과 공유키를 동시에 클라이언트 2로 재전송할 수 있다. 클라이언트 1은 클라이언트 2로부터 테스트 응답을 수신하면, 추가 속도 테스트 요청을 클라이언트 2로 전송할 때 공유키를 전송하지 않는다.In the example shown in FIG. 1A, after the speed test ends, Client 1 sends the shared key to Client 2. However, this is only an example according to an exemplary embodiment, and client 1 may simultaneously send a speed test request and a shared key to client 2. If client 1 does not receive a test response from client 2, it can resend the rate test request and the shared key to client 2 at the same time. When client 1 receives a test response from client 2, it does not send a shared key when sending an additional speed test request to client 2.
또한, 도 1a에 도시된 예에서, 클라이언트 1은 P2P 통신 경로를 통해 공유키를 클라이언트 2로 전송한다. 하지만, 이는 일 실시예에 따른 예시적인 사항일 뿐이다. 클라이언트 1은 서버 접속 후 공유키를 서버로 전송할 수 있고, 서버는 공유키를 클라이언트 2로 전송할 수 있다. 예를 들어, 클라이언트 1은 통신 요청 및 공유키를 동시에 서버로 전송할 수 있고, 서버는 통신 요청 및 공유키를 동시에 클라이언트 2에게 전송할 수 있다.Also, in the example shown in FIG. 1A, Client 1 sends the shared key to Client 2 via a P2P communication path. However, this is merely exemplary in accordance with one embodiment. Client 1 may transmit the shared key to the server after connecting to the server, the server may transmit the shared key to the client 2. For example, client 1 may send a communication request and a shared key to a server at the same time, and the server may send a communication request and a shared key to client 2 at the same time.
클라이언트 1은 클라이언트 2에게 데이터 1을 전송할 수 있다(124). 여기서, 데이터 1은 공유키로 암호화될 수 있다. 데이터 1은 전체 데이터의 데이터 조각(fragment)일 수 있다. Client 1 may send data 1 to client 2 (124). Here, data 1 may be encrypted with a shared key. Data 1 may be a data fragment of the entire data.
클라이언트 2는 데이터 1을 수신하고, 공유키를 이용하여 데이터 1을 복호화한다. 도 1a에 도시되지 않았으나, 클라이언트 2는 데이터 1을 복호화한 경우, 복호화 횟수 정보를 업데이트한다. 클라이언트 2가 데이터 1을 수신하기 전에 기록되어 있던 복호화 횟수 정보클라이언트 2를 n이라 하자. 클라이언트 2는 데이터 1을 복호화한 경우, 복호화 횟수 정보클라이언트 2를 n+1로 업데이트할 수 있다. 클라이언트 2는 데이터 1에 대한 확인 응답을 클라이언트 1로 전송할 수 있다(125).Client 2 receives data 1 and decrypts data 1 using the shared key. Although not shown in FIG. 1A, when the client 2 decrypts the data 1, the client 2 updates the decoding count information. Let n be the decoding count information client 2 recorded before the client 2 receives the data 1. When the client 2 decrypts the data 1, the client 2 may update the decryption count information client 2 to n + 1. Client 2 may send an acknowledgment for data 1 to client 1 (125).
클라이언트 1은 데이터 1에 대한 확인 응답을 수신한 경우, 클라이언트 2에게 데이터 2를 전송할 수 있다(126). 데이터 2는 전체 데이터의 데이터 조각일 수 있고, 위에서 설명한 것과 같이, 공유키로 암호화될 수 있다. When the client 1 receives the acknowledgment for the data 1, the client 1 may transmit data 2 to the client 2 (126). Data 2 may be a data fragment of the entire data and may be encrypted with a shared key, as described above.
일 실시예에 있어서, 클라이언트 2의 이동 등으로 인해 클라이언트 2의 네트워크 주소가 변경 중이라 하자(136). 클라이언트 2의 네트워크 주소가 변경 중인 경우, 클라이언트 1은 클라이언트 2로부터 데이터 2에 대한 확인 응답을 응답 시간(또는 평균 응답 시간)보다 늦게 수신하거나 수신하지 못할 수 있다. 이 경우, 클라이언트 1은 데이터 2를 매개부로 전송한다(128). 클라이언트 1은 데이터 2에 대한 확인 응답을 속도 테스트 단계에서 확인한 응답 시간 이내에 수신하지 못한 경우, 데이터 2를 매개부로 전송할 수 있다. 달리 표현하면, 클라이언트 1은 P2P 통신 이전부터 매개부와의 접속을 유지하고 있으므로, 확인 응답을 미리 정해진 시간 동안 수신하지 못한 것과 관련된 이벤트를 감지하는 경우, 데이터 2를 매개부로 전송할 수 있다. 클라이언트 1은 매개 경로를 통해 데이터 2를 매개부로 전송할 수 있다.In one embodiment, assume that client 2's network address is being changed due to client 2's movement or the like (136). If the network address of client 2 is changing, client 1 may or may not receive an acknowledgment for data 2 from client 2 later than the response time (or average response time). In this case, client 1 transmits data 2 intermediary (128). If the client 1 does not receive the acknowledgment for the data 2 within the response time confirmed in the speed test step, the client 1 may transmit the data 2 to the intermediary. In other words, since the client 1 maintains the connection with the intermediary before P2P communication, when detecting an event related to not receiving the acknowledgment for a predetermined time, the client 1 may transmit data 2 to the intermediary. Client 1 may send data 2 to the intermediary through the intermediary path.
매개부는 데이터 2를 클라이언트 1로부터 수신한 경우, 데이터 2를 메모리에 저장한다. 메모리는, 예를 들어, 매개 경로 또는 전용 방에 대응하는 메모리를 포함할 수 있다. The interceptor stores data 2 in memory when data 2 is received from client 1. The memory may include, for example, a memory corresponding to an intermediate path or a dedicated room.
클라이언트 2는 네트워크 주소의 변경이 완료된 경우, 네트워크 주소가 변경되었음을 서버에게 알릴 수 있다(129). 클라이언트 2의 네트워크 주소가 B에서 B'으로 변경된 경우, 클라이언트 2는 네트워크 주소가 B에서 B'로 변경되었음을 서버에 알릴 수 있다. 다시 말해, 서버는 클라이언트 2로부터 네트워크 주소가 변경됨을 나타내는 변경 정보를 수신할 수 있다. 여기서, 변경 정보는 클라이언트 2의 변경된 네트워크 주소를 포함할 수 있다. 이에 따라, 서버는 클라이언트 2의 변경된 네트워크 주소를 확인할 수 있다.When the change of the network address is completed, the client 2 may inform the server that the network address has changed (129). If the network address of client 2 is changed from B to B ', client 2 may inform the server that the network address has changed from B to B'. In other words, the server may receive change information indicating that the network address is changed from the client 2. Here, the change information may include the changed network address of the client 2. Accordingly, the server can confirm the changed network address of the client 2.
일 실시예에 있어서, 서버는 B'으로 맵핑된 네트워크 엔티티(network entity)가 클라이언트 2인지 확인하기 위해 클라이언트 2와 질문 및 답 프로세스를 수행할 수 있다. 질문 및 답 프로세스는 도 9를 통해 후술한다.In one embodiment, the server may perform a question and answer process with Client 2 to determine if the network entity mapped to B 'is Client 2. The question and answer process will be described later with reference to FIG. 9.
또한, 클라이언트 2의 네트워크 주소가 변경된 경우, 클라이언트 2의 네트워크 주소의 변경 전에 설정된 서버와의 통신 세션이 유지되는 것은 어려울 수 있다. 일 실시예에 있어서, 서버는 질문 및 답 프로세스를 통해 클라이언트 2와의 통신 세션을 유지할 수 있다.In addition, when the network address of Client 2 is changed, it may be difficult to maintain a communication session with the established server before changing the network address of Client 2. In one embodiment, the server may maintain a communication session with Client 2 through a question and answer process.
변경된 네트워크 주소로 맵핑된 네트워크 엔티티의 확인 및 통신 세션의 유지는 도 9를 통해 후술한다.Confirmation of the network entity mapped to the changed network address and maintenance of the communication session will be described later with reference to FIG. 9.
서버는 클라이언트 2의 네트워크 주소가 변경되었음을 클라이언트 1에게 알릴 수 있다(130). 다시 말해, 클라이언트 1은 서버로부터 네트워크 주소의 변경 정보를 수신할 수 있다. 이에 따라, 클라이언트 1은 클라이언트 2의 변경된 네트워크 주소를 확인할 수 있다.The server may inform client 1 that the network address of client 2 has changed (130). In other words, the client 1 may receive the change information of the network address from the server. Accordingly, the client 1 can confirm the changed network address of the client 2.
네트워크 주소가 B'으로 맵핑된 클라이언트 2는 매개키로 매개부와 연결한다(131). 달리 표현하면, 클라이언트 2는 매개키를 매개부로 전송하여 매개부에 접속을 시도할 수 있고, 매개부는 클라이언트 2의 접속을 허용할 수 있다. 이에 따라, 클라이언트 2는 매개부에 접속할 수 있다. 클라이언트 2가 매개부와 연결되는 경우, 매개부는 클라이언트 2에게 데이터 2를 전송할 수 있다(132). 예를 들어, 클라이언트 2는 매개키를 이용하여 전용 방에 참여할 수 있다. 클라이언트 2가 전용 방에 참여하는 경우, 클라이언트 2는 전용 방에 대응하는 메모리에 저장된 데이터 2를 수신할 수 있다.Client 2, whose network address is mapped to B ', connects to the intermediary with an intermediate key (131). In other words, the client 2 may attempt to connect to the intermediary by sending the intermediary key to the intermediary, and the intermediary may allow the client 2 to connect. Accordingly, the client 2 can connect to the intermediary. When the client 2 is connected with the intermediary, the intermediary may transmit data 2 to the client 2 (132). For example, client 2 can join a private room using an intermediate key. When the client 2 joins the private room, the client 2 may receive data 2 stored in a memory corresponding to the private room.
클라이언트 2는 데이터 2를 수신하는 경우, 공개키를 이용하여 데이터 2를 복호화할 수 있다. 또한, 클라이언트 2는 복호화 횟수 정보를 업데이트할 수 있다. 위에서 설명한 예에서, 클라이언트 2는 복호화 횟수 정보클라이언트 2를 n+2로 업데이트할 수 있다. 클라이언트 2는 데이터 2에 대한 확인 응답을 클라이언트 1로 전송할 수 있다(133).When the client 2 receives the data 2, the client 2 may decrypt the data 2 using the public key. In addition, the client 2 may update the decryption count information. In the example described above, the client 2 may update the decryption count information client 2 to n + 2. Client 2 may send an acknowledgment for data 2 to client 1 (133).
클라이언트 1은 데이터 2에 대한 확인 응답을 수신하는 경우, 데이터 3을 클라이언트 2로 전송할 수 있다(134). P2P 통신 경로가 A-B에서 A-B'으로 변경된다.When the client 1 receives the acknowledgment for the data 2, the client 1 may transmit the data 3 to the client 2 (134). P2P communication path is changed from A-B to A-B '.
데이터 3은 공유키로 암호화될 수 있다.Data 3 can be encrypted with a shared key.
클라이언트 2는 데이터 3을 수신할 수 있고, 공유키를 이용하여 데이터 3을 복호화할 수 있다. 클라이언트 2는 복호화 횟수 정보를 업데이트할 수 있다. 위에서 설명한 예에서, 클라이언트 2는 복호화 횟수 정보클라이언트 2를 n+3으로 업데이트할 수 있다. 클라이언트 2는 데이터 3에 대한 확인 응답을 클라이언트 1로 전송할 수 있다(135).Client 2 may receive data 3 and decrypt data 3 using the shared key. Client 2 may update the decryption count information. In the example described above, the client 2 may update the decryption count information client 2 to n + 3. Client 2 may send an acknowledgment for data 3 to client 1 (135).
도 1b를 참조하면, 클라이언트 2는 데이터 4를 클라이언트 1로 전송한다(136). 데이터 4는 공유키로 암호화될 수 있다.Referring to FIG. 1B, client 2 transmits data 4 to client 1 (136). Data 4 can be encrypted with a shared key.
클라이언트 1은 데이터 4를 수신하고, 공유키를 이용하여 데이터 4를 복호화할 수 있다. 또한, 클라이언트 1은 자신의 복호화 횟수 정보를 업데이트할 수 있다. 클라이언트 1이 데이터 4를 수신하기 전에 기록되어 있던 복호화 횟수 정보클라이언트 1가 m이라 하자. 클라이언트 1이 데이터 4를 복호화한 경우, 복호화 횟수 정보클라이언트 1를 m+1로 업데이트할 수 있다. Client 1 may receive data 4 and decrypt data 4 using the shared key. In addition, the client 1 may update its decryption number information. Assume that the decryption number information client 1 recorded before the client 1 receives the data 4 is m. When the client 1 decrypts the data 4, the decryption number information client 1 may be updated to m + 1.
클라이언트 1은 데이터 4에 대한 확인 응답을 클라이언트 2로 전송할 수 있다(137). Client 1 may send an acknowledgment for data 4 to client 2 (137).
클라이언트 2는 클라이언트 1로 데이터 5를 전송할 수 있다(138). 여기서, 클라이언트 1은 이동으로 인해 네트워크 주소가 변경될 수 있다. 이로 인해, 클라이언트 2는 데이터 5에 대한 확인 응답을 미리 정해진 시간 이내에 수신하지 못할 수 있다. 이 경우, 클라이언트 2는 데이터 5를 매개부에 전송할 수 있다(139).Client 2 may send data 5 to client 1 (138). Here, the client 1 may change its network address due to movement. As a result, client 2 may not receive an acknowledgment for data 5 within a predetermined time. In this case, the client 2 may transmit data 5 to the intermediary (139).
클라이언트 1은 네트워크 주소가 변경되었음을 서버에 알릴 수 있고(140), 서버는 클라이언트 1의 네트워크 주소가 변경되었음을 클라이언트 2에 알릴 수 있다(141). 클라이언트 1의 네트워크 주소가 A에서 A'으로 변경되었다고 하자. Client 1 may inform the server that the network address has changed (140), and the server may inform client 2 that the network address of Client 1 has changed (141). Assume that Client 1's network address has changed from A to A '.
클라이언트 1은 매개키로 매개부에 연결할 수 있다(142). 보다 구체적으로, 클라이언트 1은 매개키를 매개부에 전송하여 매개부로의 접속을 시도할 수 있고, 매개부는 클라이언트 1의 접속을 허용할 수 있다. Client 1 can connect to the intermediary with the intermediary key (142). More specifically, the client 1 may attempt to connect to the intermediary by sending the intermediary key to the intermediary, and the intermediary may allow the client 1 to connect.
매개부는 변경된 네트워크 주소로 맵핑된 클라이언트 1과 연결된 경우, 클라이언트 1에게 데이터 5를 전송할 수 있다(143).If the connection unit is connected to the client 1 mapped to the changed network address, the intermediate unit may transmit data 5 to the client 1 (143).
클라이언트 1은 데이터 5를 수신할 수 있다. 여기서, 데이터 5는 공유키로 암호화된 것일 수 있다. 클라이언트 1은 공유키로 데이터 5를 복호화할 수 있고, 복호화 횟수 정보를 업데이트할 수 있다. 위에서 설명한 예에서, 복호화 횟수 정보클라이언트 1는 m+2로 업데이트될 수 있다. Client 1 can receive data five. Here, data 5 may be encrypted with a shared key. Client 1 can decrypt data 5 with the shared key and update the decryption number information. In the example described above, the decryption count information client 1 may be updated to m + 2.
클라이언트 1은 데이터 5에 대한 확인 응답을 클라이언트 2로 전송할 수 있다(144). Client 1 may send an acknowledgment for data 5 to client 2 (144).
도 1a 내지 1b에 도시된 예에서, 데이터 1 내지 3은 이동 통신 사업자의 교환기 장비(예를 들어, QoS(Quality of Service) 또는 SLA(Service Level Agreement)를 판단하는 장비)를 통해 클라이언트 2로 전송되지 않는다. 마찬가지로, 데이터 4 내지 5는 이동 통신 사업자의 교환기 장비를 통해 클라이언트 1로 전송되지 않는다. 이 경우, 데이터 1 내지 5에 대한 과금이 어려울 수 있다. 이에 따라, 위에서 설명한 것과 같이, 클라이언트 1 및 클라이언트 2는 수신 데이터를 복호화할 때마다 복호화 횟수 정보를 업데이트할 수 있다. 복호화 횟수 정보는 데이터 사용량과 관련된 정보로, 과금 수행을 위해 기초가 되는 정보이다. 데이터 사용량에 대한 과금이 수행될 수 있도록 클라이언트 1 및 클라이언트 2는 미리 정해진 주기에 따라 복호화 횟수 정보를 서버로 전송할 수 있다. 예를 들어, 클라이언트 1 및 클라이언트 2는 하루에 한 번, 일주일에 한 번, 또는 한 달에 한 번 자신의 복호화 횟수 정보를 서버로 전송할 수 있다. 또한, 클라이언트 1 및 클라이언트 2는 P2P 통신이 종료한 경우, 복호화 횟수 정보를 서버로 전송할 수 있다.In the example shown in FIGS. 1A-1B, data 1-3 are transmitted to client 2 via a mobile operator's switchboard equipment (eg, a device that determines a Quality of Service (QoS) or Service Level Agreement (SLA)). It doesn't work. Similarly, data 4 through 5 are not transmitted to Client 1 through the mobile operator's switchboard equipment. In this case, charging for data 1 to 5 may be difficult. Accordingly, as described above, the client 1 and the client 2 may update the decryption number information each time the received data is decrypted. The decryption count information is information related to data usage, and is information that is the basis for billing. The client 1 and the client 2 may transmit the decryption number information to the server according to a predetermined cycle so that charging for data usage may be performed. For example, Client 1 and Client 2 may transmit their decryption count information to the server once a day, once a week, or once a month. In addition, when the P2P communication ends, the client 1 and the client 2 may transmit the decryption number information to the server.
클라이언트 1 및 클라이언트 2는 복호화 횟수 정보를 암호화하여 서버에 전송할 수 있다. Client 1 and Client 2 may encrypt the decryption number information and transmit it to the server.
일 실시예에 있어서, 서버는 복호화 횟수 정보를 기초로 클라이언트 1 및 클라이언트 2 각각의 데이터 사용량을 결정할 수 있고, 클라이언트 1 및 클라이언트 2 각각의 데이터 사용량을 과금 시스템으로 전송할 수 있다. 과금 시스템은 과금 정보를 생성하여 서버로 전송할 수 있다. 다른 실시예에 있어서, 서버는 복호화 횟수 정보를 기초로 과금 정보를 생성할 수 있다.In one embodiment, the server may determine the data usage of each of the client 1 and the client 2 based on the number of decryption information, and transmit the data usage of each of the client 1 and the client 2 to the billing system. The billing system may generate billing information and transmit it to the server. In another embodiment, the server may generate the charging information based on the decoding count information.
클라이언트 1 및 클라이언트 2 각각의 P2P 통신의 데이터 사용량과 관련된 복호화 횟수 정보가 서버로 전송될 수 있어, 클라이언트 1 및 클라이언트 2 각각의 P2P 통신의 데이터 사용량에 대한 과금이 수행될 수 있다.Decryption number information related to the data usage of the P2P communication of the client 1 and the client 2 may be transmitted to the server, so that charging for the data usage of the P2P communication of the client 1 and the client 2 may be performed.
도 2는 일 실시예에 따른 통신 시스템의 동작의 다른 일례를 설명하기 위한 흐름도이다.2 is a flowchart illustrating another example of an operation of a communication system according to an exemplary embodiment.
도 2를 참조하면, 통신 시스템은 클라이언트 1, 서버, 및 클라이언트 2를 포함한다. 도 1을 통해 설명한 매개부는 서버에 포함될 수 있다. Referring to FIG. 2, the communication system includes a client 1, a server, and a client 2. The intermediate unit described with reference to FIG. 1 may be included in the server.
클라이언트 1은 서버로 통신 요청을 전송할 수 있다(210). 예를 들어, 통신 요청은 P2P 통신 요청일 수 있다. 서버는 클라이언트 1의 통신 요청을 클라이언트 2로 전송할 수 있다(211). Client 1 may send a communication request to the server (210). For example, the communication request may be a P2P communication request. The server may send a communication request from client 1 to client 2 (211).
클라이언트 1의 통신 요청을 수신한 클라이언트 2는 서버와 연결할 수 있다(212). 달리 표현하면, 클라이언트 2는 서버에 접속할 수 있다.Upon receiving the communication request from the client 1, the client 2 may connect with the server (212). In other words, client 2 can connect to the server.
서버는 클라이언트 2가 접속한 경우, 매개키를 생성할 수 있다(213). 서버는 매개키를 클라이언트 2로 전송할 수 있다(214).When the client 2 connects, the server may generate an intermediate key (213). The server may send the intermediate key to client 2 (214).
서버는 매개키 및 클라이언트 2의 네트워크 주소를 클라이언트 1로 전송할 수 있다(215). 여기서, 클라이언트 1의 네트워크 주소를 A라 하고, 클라이언트 2의 네트워크 주소를 B라 하자.The server may send the intermediate key and the network address of client 2 to client 1 (215). Here, let's say client 1's network address is A and client 2's network address is B.
클라이언트 1은 매개키를 서버로 전송할 수 있다(216). 매개키를 수신한 서버는 매개키에 대응하는 매개 경로를 확보할 수 있다(217). Client 1 may transmit the intermediate key to the server (216). The server receiving the intermediate key may secure an intermediate path corresponding to the intermediate key (217).
매개 경로가 확보된 경우, 클라이언트 1은 클라이언트 2에게 속도 테스트 요청을 전송할 수 있고(218), 클라이언트 2는 속도 테스트 요청에 대한 테스트 응답을 클라이언트 1로 전송할 수 있다(219). 클라이언트 1은 클라이언트 2의 응답 속도를 확인할 수 있다. 마찬가지로, 클라이언트 2는 클라이언트 1에게 속도 테스트 요청을 전송할 수 있고(220), 클라이언트 1운 속도 테스트 요청에 대한 테스트 응답을 클라이언트 2로 전송할 수 있다(221).If the intermediate path is secured, client 1 may send a speed test request to client 2 (218), and client 2 may send a test response to the speed test request to client 1 (219). Client 1 can check the response speed of Client 2. Similarly, client 2 may send a speed test request to client 1 (220) and may send a test response to client 2 driving speed test request to client 2 (221).
클라이언트 1와 클라이언트 2 사이에 P2P 통신 경로가 설정될 수 있다.A P2P communication path may be established between client 1 and client 2.
클라이언트 1은 클라이언트 2에게 공유키를 전송한다(222). Client 1 sends the shared key to client 2 (222).
클라이언트 1은 데이터 1을 공유키로 암호화할 수 있고, 클라이언트 2에게 암호화된 데이터 1을 전송할 수 있다(223). 클라이언트 2는 암호화된 데이터 1을 수신하고, 공유키를 이용하여 암호화된 데이터 1을 복호화한다. 클라이언트 2는 복호화 횟수 정보를 업데이트한다. 클라이언트 2는 확인 응답을 클라이언트 1로 전송할 수 있다(224). Client 1 may encrypt data 1 with a shared key and transmit encrypted data 1 to client 2 (223). Client 2 receives the encrypted data 1 and decrypts the encrypted data 1 using the shared key. Client 2 updates the decryption count information. Client 2 may send an acknowledgment to client 1 (224).
클라이언트 1은 데이터 1에 대한 확인 응답을 수신한 경우, 데이터 2를 공유키로 암호화하고, 암호화된 데이터 2를 클라이언트 2로 전송할 수 있다(225). 여기서, 클라이언트 2의 네트워크 주소가 변경 중인 경우(235), 클라이언트 2의 응답 속도는 속도 테스트에서 확인된 응답 속도보다 늦거나 클라이언트 2의 응답이 없을 수 있다.When the client 1 receives the acknowledgment for the data 1, the client 1 may encrypt the data 2 with the shared key and transmit the encrypted data 2 to the client 2 (225). Here, when the network address of the client 2 is being changed (235), the response speed of the client 2 may be lower than the response speed confirmed in the speed test or there may be no response from the client 2.
클라이언트 1은 암호화된 데이터 2에 대한 확인 응답을 속도 테스트에서 확인된 응답 속도보다 늦게 수신하거나 수신하지 못할 수 있다. 이 경우, 클라이언트 1은 매개 경로를 통해 암호화된 데이터 2를 서버에 전송할 수 있다(227). 서버는 매개 경로 또는 전용 방에 대응하는 메모리에 암호화된 데이터 2를 저장할 수 있다. Client 1 may or may not receive an acknowledgment for encrypted data 2 later than the response rate identified in the rate test. In this case, the client 1 may transmit the encrypted data 2 to the server through the intermediate path (227). The server may store encrypted data 2 in a memory corresponding to each path or dedicated room.
클라이언트 2의 네트워크 주소가 B에서 B'으로 변경된 경우, 클라이언트 2는 네트워크 주소가 변경되었음을 서버에 알릴 수 있다(228). 서버는 클라이언트 2의 네트워크 주소가 변경되었음을 클라이언트 1에 알릴 수 있다(229).If the network address of client 2 is changed from B to B ', client 2 may inform the server that the network address has changed (228). The server may inform client 1 that the network address of client 2 has changed (229).
클라이언트 2는 매개키를 보유하고 있으므로, 매개키로 서버와 연결할 수 있다(230). 서버는 암호화된 데이터 2를 클라이언트 2로 전송할 수 있다(231). 클라이언트 2는 암호화된 데이터 2를 수신하고, 공유키를 이용하여 복호화할 수 있다. 또한, 클라이언트 2는 복호화 횟수 정보를 업데이트할 수 있다.Since the client 2 has an intermediate key, the client 2 can connect to the server using the intermediate key (230). The server may send the encrypted data 2 to the client 2 (231). Client 2 may receive the encrypted data 2 and decrypt it using the shared key. In addition, the client 2 may update the decryption count information.
클라이언트 2는 확인 응답을 클라이언트 1로 전송할 수 있다(232).Client 2 may send an acknowledgment to client 1 (232).
클라이언트 1은 데이터 2에 대한 확인 응답을 수신한 경우, 클라이언트 2에게 공유키로 암호화된 데이터 3을 전송할 수 있다(233). P2P 통신 경로 A-B'을 통한 P2P 통신이 시작된다. 클라이언트 2는 데이터 3을 수신한 경우, 공유키로 데이터 3을 복호화할 수 있고, 복호화 횟수 정보를 업데이트할 수 있다. 클라이언트 2는 데이터 3에 대한 확인 응답을 클라이언트 1로 전송할 수 있다(234).When the client 1 receives the acknowledgment for the data 2, the client 1 may transmit data 3 encrypted with the shared key to the client 2 (233). P2P communication through the P2P communication path A-B 'is started. When the client 2 receives the data 3, the client 2 may decrypt the data 3 with the shared key, and update the decryption number information. Client 2 may send an acknowledgment for data 3 to client 1 (234).
도 2에 도시되지 않았으나, 클라이언트 2는 클라이언트 1에게 공유키로 암호화된 데이터를 전송할 수 있고, 클라이언트 1은 공유키를 이용하여 암호화된 데이터를 복호화할 수 있다. 클라이언트 1은 복호화 횟수 정보를 업데이트할 수 있다.Although not shown in FIG. 2, the client 2 may transmit data encrypted with the shared key to the client 1, and the client 1 may decrypt the encrypted data using the shared key. Client 1 may update the decoding count information.
도 1a 내지 도 1b를 통해 기술한 사항들은 도 2를 통해 기술한 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.The matters described with reference to FIGS. 1A to 1B may be applied to the matters described with reference to FIG. 2, and thus detailed descriptions thereof will be omitted.
도 3a 내지 도 3b는 일 실시예에 따른 통신 시스템을 설명하기 위한 블록도이다.3A to 3B are block diagrams illustrating a communication system according to an embodiment.
도 3a를 참조하면, 클라이언트(310)는 연결부(311)를 포함하고, 클라이언트(320)는 연결부(321)를 포함한다. 서버(330)는 감지부(331), 관리부(332), 및 매개부(333)를 포함한다.Referring to FIG. 3A, the client 310 includes a connector 311 and the client 320 includes a connector 321. The server 330 includes a detector 331, a manager 332, and an intermediary 333.
연결부(311) 및 연결부(321)는 P2P 통신이 가능한 통신 인터페이스를 포함할 수 있다.The connection unit 311 and the connection unit 321 may include a communication interface capable of P2P communication.
클라이언트(310)는 프로세서(미도시) 및 메모리(미도시)를 더 포함할 수 있다. The client 310 may further include a processor (not shown) and a memory (not shown).
프로세서는 연결부(311)를 제어하고, 메모리는 매개키를 저장할 수 있다. 구현에 따라, 매개키는 후술할 보안 통화 동글에 저장될 수 있다.The processor may control the connection unit 311, and the memory may store intermediate keys. Depending on the implementation, the intermediate key may be stored in a secure call dongle which will be described later.
클라이언트(320)는 프로세서(미도시) 및 메모리(미도시)를 더 포함할 수 있다. 프로세서는 연결부(321)를 제어하고, 메모리는 매개키를 저장할 수 있다. 구현에 따라, 매개키는 후술할 보안 통화 동글에 저장될 수 있다.The client 320 may further include a processor (not shown) and a memory (not shown). The processor controls the connection unit 321, and the memory may store intermediate keys. Depending on the implementation, the intermediate key may be stored in a secure call dongle which will be described later.
감지부(331), 관리부(332), 및 매개부(333)는 프로세서 또는 컨트롤러에 의해 구현될 수 있다.The detector 331, the manager 332, and the intermediary 333 may be implemented by a processor or a controller.
연결부(311)는 P2P 통신 요청을 서버(330)로 전송할 수 있고, 서버(330)는 P2P 통신 요청을 연결부(321)로 전송할 수 있다. 연결부(321)가 P2P 통신 요청을 수신한 경우, 매개부(333)에 접속할 수 있다. 매개부(333)는 연결부(321)가 접속하는 경우, 매개키를 생성할 수 있다. 매개부(333)는 연결부(321)로 매개키를 전송할 수 있다. 여기서, 연결부(321)는 매개부(333)와의 접속을 유지할 수 있다.The connection unit 311 may transmit a P2P communication request to the server 330, and the server 330 may transmit a P2P communication request to the connection unit 321. When the connection unit 321 receives the P2P communication request, the connection unit 321 may access the intermediate unit 333. The intermediate unit 333 may generate an intermediate key when the connection unit 321 connects. The intermediary unit 333 may transmit the intermediary key to the connection unit 321. Here, the connection unit 321 may maintain a connection with the intermediate unit 333.
연결부(321)는 매개키를 관리부(332)로 전송할 수 있고, 관리부(332)는 매개키 및 상대 클라이언트(330)의 네트워크 주소를 연결부(311)로 전송할 수 있다. 연결부(311)는 매개키를 매개부(333)로 전송할 수 있고, 매개키로 매개부(333)에 접속할 수 있다. 여기서, 연결부(311)는 매개부(333)와의 접속을 유지할 수 있다.The connection unit 321 may transmit the intermediate key to the management unit 332, and the management unit 332 may transmit the intermediate key and the network address of the counterpart client 330 to the connection unit 311. The connection unit 311 may transmit the intermediate key to the intermediate unit 333 and may be connected to the intermediate unit 333 using the intermediate key. Herein, the connection part 311 may maintain a connection with the intermediate part 333.
연결부(311) 및 연결부(321) 각각이 매개부(333)로의 접속을 유지할 수 있어 연결부(311)-매개부(333)-연결부(321)의 연결 관계를 갖는 매개 경로(또는 우회 경로)가 확보될 수 있다. 매개 경로는 연결부(311)와 연결부(321) 사이의 직접 경로, 즉, P2P 통신 경로의 단절에 대비하기 위한 경로이다. 또한, 매개 경로는 매개키에 대응하므로, 매개키를 보유한 클라이언트(310) 및 클라이언트(320)가 매개 경로를 이용할 수 있고, 다른 클라이언트는 매개 경로를 이용할 수 없다.Each of the connection portion 311 and the connection portion 321 can maintain a connection to the intermediate portion 333 so that the intermediate path (or bypass path) having a connection relationship between the connection portion 311-the mediation 333-the connection portion 321 can be obtained. Can be secured. Each path is a direct path between the connection part 311 and the connection part 321, that is, a path for preparing for disconnection of the P2P communication path. In addition, since the intermediate path corresponds to the intermediate key, the client 310 and the client 320 having the intermediate key can use the intermediate path, and other clients cannot use the intermediate path.
매개 경로가 확보된 경우, 연결부(311) 및 연결부(321)는 직접 경로를 통해 연결될 수 있다. 예를 들어, 클라이언트(310)의 네트워크 주소를 A라 하고, 클라이언트(320)의 네트워크 주소를 B라 할 때, 연결부(311) 및 연결부(321)는 P2P 통신 경로 A-B를 통해 서로 연결될 수 있다.When the intermediate path is secured, the connection part 311 and the connection part 321 may be connected through a direct path. For example, when a network address of the client 310 is called A and a network address of the client 320 is called B, the connection part 311 and the connection part 321 may be connected to each other through a P2P communication path A-B.
클라이언트(310) 및 클라이언트(320)는 공유키를 공유할 수 있다. Client 310 and client 320 may share a shared key.
클라이언트(310)는 클라이언트(320)로부터 공유키로 암호화된 데이터를 수신하고, 공유키를 이용하여 복호화할 수 있다. 클라이언트(310)는 복호화할 때마 복호화 횟수 정보를 업데이트할 수 있다. 마찬가지로, 클라이언트(320)는 클라이언트(310)로부터 공유키로 암호화된 데이터를 수신하고, 공유키를 이용하여 복호화할 수 있다. 클라이언트(320)는 복호화할 때마 복호화 횟수 정보를 업데이트할 수 있다.The client 310 may receive data encrypted with the shared key from the client 320 and decrypt the data using the shared key. The client 310 may update the decryption count information whenever decrypting. Similarly, the client 320 may receive data encrypted with the shared key from the client 310 and decrypt it using the shared key. The client 320 may update the decryption count information whenever decrypting.
클라이언트(310)의 복호화 횟수 정보는 메모리 및/또는 후술할 보안 통화 동글에 암호화되어 기록될 수 있다. 마찬가지로, 클라이언트(320)의 복호화 횟수 정보는 메모리 및/또는 보안 통화 동글에 암호화되어 기록될 수 있다.The decryption number information of the client 310 may be encrypted and recorded in a memory and / or a secure call dongle which will be described later. Similarly, the decryption number information of the client 320 may be encrypted and recorded in a memory and / or a secure call dongle.
일 실시예에 있어서, 클라이언트(320)의 네트워크 주소가 변경 중 일 수 있다. 이 경우, P2P 통신 경로 A-B가 단절될 수 있고, 연결부(321)는 연결부(311)가 전송한 데이터를 수신하지 못할 수 있다. 데이터가 누락될 수 있다. 이로 인해, 연결부(311)는 데이터에 대한 확인 응답을 수신하지 못할 수 있다. 연결부(311)는 데이터를 매개부(333)로 전송할 수 있다.In one embodiment, the network address of the client 320 may be changing. In this case, the P2P communication path A-B may be disconnected, and the connection unit 321 may not receive data transmitted by the connection unit 311. Data may be missing. As a result, the connection unit 311 may not receive an acknowledgment for the data. The connection unit 311 may transmit data to the intermediate unit 333.
클라이언트(320)의 네트워크 주소가 B에서 B'으로 변경된 경우, 연결부(321)는 감지부(331)에 클라이언트(320)의 네트워크 주소가 변경되었음을 알릴 수 있다. 감지부(331)는 클라이언트(320)의 네트워크 주소가 변경되었음을 관리부(332)에 알릴 수 있고, 관리부(332)는 클라이언트(320)의 네트워크 주소가 변경되었음을 연결부(311)에 알릴 수 있다.When the network address of the client 320 is changed from B to B ', the connection unit 321 may inform the sensing unit 331 that the network address of the client 320 has been changed. The sensing unit 331 may inform the management unit 332 that the network address of the client 320 has changed, and the management unit 332 may inform the connection unit 311 that the network address of the client 320 has changed.
클라이언트(320)의 네트워크 주소의 변경으로 인해 매개부(333)에 대한 연결부(321)의 접속은 끊어질 수 있다. 연결부(321)는 매개키를 매개부(333)에 전송하여 매개부(333)에 재접속을 시도할 수 있다. 매개부(333)는 클라이언트(320)와 대응하는 매개키를 수신하였으므로, 재접속을 허용할 수 있다. 연결부(321)가 매개부(333)에 재접속하는 경우, 연결부(321)는 데이터를 매개부(333)로부터 수신할 수 있다.The connection of the connection unit 321 to the intermediary unit 333 may be lost due to the change of the network address of the client 320. The connection unit 321 may attempt to reconnect to the intermediate unit 333 by transmitting the intermediate key to the intermediate unit 333. Since the intermediate unit 333 has received the intermediate key corresponding to the client 320, the intermediate unit 333 may allow reconnection. When the connection unit 321 reconnects to the intermediate unit 333, the connection unit 321 may receive data from the intermediate unit 333.
연결부(321)는 데이터에 대한 확인 응답을 연결부(311)로 전송할 수 있다.The connector 321 may transmit an acknowledgment for data to the connector 311.
도 1a 내지 도 2를 통해 기술된 사항들은 도 3a에 적용될 수 있으므로, 상세한 설명을 생략한다.The matters described with reference to FIGS. 1A through 2 may be applied to FIG. 3A, and thus a detailed description thereof will be omitted.
도 3b를 참조하면, 매개부(333)는 서버(330)와 물리적으로 구별될 수 있다. 또한, 매개부(333)는 네트워크 내에서 독립적인 장치일 수 있다.Referring to FIG. 3B, the intermediary 333 may be physically distinguished from the server 330. In addition, the intermediary unit 333 may be an independent device in the network.
도 1 내지 도 3a를 통해 기술된 사항들은 도 3b에 적용될 수 있으므로, 상세한 설명을 생략한다.The matters described with reference to FIGS. 1 to 3A may be applied to FIG. 3B, and thus detailed descriptions thereof will be omitted.
도 4는 일 실시예에 따른 통신 시스템의 동작을 설명하기 위한 도면이다.4 is a diagram for describing an operation of a communication system, according to an exemplary embodiment.
도 4를 참조하면, 클라이언트는 네트워크 주소 A에 맵핑되고, 상대 클라이언트는 네트워크 주소 B에 맵핑된다. 클라이언트와 상대 클라이언트는 P2P 통신 경로 A-B를 통해 통신한다.4, the client is mapped to network address A, and the counterpart client is mapped to network address B. Client and counterpart client communicate through P2P communication path A-B.
클라이언트는 상대 클라이언트에게 데이터 1을 전송할 수 있고(410), 상대 클라이언트는 데이터 1에 대한 확인 응답을 클라이언트로 전송할 수 있다(411).The client may transmit data 1 to the counterpart client 410, and the counterpart client may transmit an acknowledgment for data 1 to the client 411.
상대 클라이언트의 네트워크 주소가 B에서 B'으로 변경될 수 있다(420). 상대 클라이언트는 자신의 네트워크 주소가 변경되었음을 서버에 알릴 수 있고(421), 서버는 상대 클라이언트의 네트워크 주소가 변경되었음을 클라이언트에게 알릴 수 있다(422). 이에 따라, 클라이언트는 데이터 2를 네트워크 주소 B'에 맵핑된 상대 클라이언트로 전송할 수 있다(423). 즉, 클라이언트는 P2P 통신 경로 A-B'를 통해 데이터 2를 상대 클라이언트로 전송할 수 있다. 상대 클라이언트는 데이터 2에 대한 확인 응답을 클라이언트로 전송할 수 있다(424). 데이터 2에 대한 확인 응답을 수신한 클라이언트는 상대 클라이언트로 데이터 3을 전송할 수 있다(425). The network address of the counterpart client may be changed from B to B '(420). The counterpart client may inform the server that its network address has changed (421), and the server may inform the client that the network address of the counterpart client has changed (422). Accordingly, the client may transmit data 2 to the counterpart client mapped to the network address B '(423). That is, the client may transmit data 2 to the counterpart client through the P2P communication path A-B '. The counterpart client may send an acknowledgment for data 2 to the client (424). Upon receiving the acknowledgment for data 2, the client may transmit data 3 to the counterpart client (425).
상대 클라이언트의 네트워크 주소가 B'에서 B"으로 변경될 수 있다(430). 이 경우, 클라이언트는 상대 클라이언트로부터 데이터 3에 대한 확인 응답을 받지 못하거나 늦게 수신할 수 있다. 상대 클라이언트의 응답 속도가 느린 경우, 클라이언트는 데이터 3을 매개부로 전송할 수 있다(431). 상대 클라이언트는 네트워크 주소가 변경되었음을 서버에 알릴 수 있고(432), 서버는 클라이언트에게 상대 클라이언트의 네트워크 주소가 변경되었음을 클라이언트에 알릴 수 있다(433).The network address of the counterpart client may be changed from B 'to B "(430). In this case, the client may not receive an acknowledgment for data 3 from the counterpart client or may receive it late. If it is slow, the client may send data 3 intermediary 431. The counterpart client may inform the server that the network address has changed (432), and the server can inform the client that the client's network address has changed. There is (433).
상대 클라이언트는 매개키를 보유하고 있으므로, 매개키를 이용하여 매개부에 접속할 수 있다(434). 상대 클라이언트가 매개부에 접속하는 경우, 매개부는 데이터 3을 상대 클라이언트로 전송할 수 있다(435). 상대 클라이언트는 데이터 3에 대한 확인 응답을 클라이언트로 전송할 수 있다(436). 클라이언트는 이후 데이터를 P2P 통신 경로 A-B"를 통해 상대 클라이언트로 전송할 수 있다.Since the partner client has an intermediate key, the partner client can access the intermediate unit using the intermediate key (434). When the partner client accesses the intermediary, the intermediary may transmit data 3 to the counterpart client (435). The counterpart client may send an acknowledgment for data 3 to the client (436). The client may then transmit data to the counterpart client via the P2P communication path A-B ".
클라이언트 2의 IP 주소가 변경되면, P2P 통신 경로가 단절되어, 클라이언트 1과 클라이언트 2는 P2P 통신을 지속적으로 유지할 수 없다. 일 실시예에 따르면, P2P 통신 이전에, 매개 경로가 확보되었으므로, P2P 통신 경로가 단절되어도, 클라이언트 1 및 클라이언트 2는 매개부와 일시적으로 통신하여 매개부와 데이터를 송수신할 수 있다. 이로 인해, 데이터 누락이 방지될 수 있다. 또한, 네트워크 스루풋(network throughput)이 향상될 수 있다.If the IP address of client 2 is changed, the P2P communication path is disconnected, so that client 1 and client 2 cannot maintain P2P communication continuously. According to an embodiment, before the P2P communication, since the intermediate path is secured, even if the P2P communication path is disconnected, the client 1 and the client 2 may transmit and receive data with the intermediate unit by temporarily communicating with the intermediate unit. As a result, data loss can be prevented. In addition, network throughput may be improved.
도 1a 내지 도 3b를 통해 기술된 사항들은 도 4에 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.The matters described with reference to FIGS. 1A through 3B may be applied to the matters described with reference to FIG. 4, and thus detailed descriptions thereof will be omitted.
도 5는 일 실시예에 따른 통신 장치의 동작 방법을 설명하기 위한 순서도이다.5 is a flowchart illustrating a method of operating a communication device, according to an exemplary embodiment.
일 실시예에 따른 통신 장치는 위에서 설명한 매개부에 대응할 수 있다.The communication device according to an embodiment may correspond to the intermediate unit described above.
도 5를 참조하면, 통신 장치는 클라이언트와 상대 클라이언트간의 P2P(Peer to Peer) 통신에 대응하는 매개키를 생성한다(510).Referring to FIG. 5, the communication device generates an intermediate key corresponding to peer to peer (P2P) communication between a client and a counterpart client (510).
통신 장치는 매개키를 상대 클라이언트로 전송한다(520).The communication device transmits the intermediate key to the counterpart client (520).
통신 장치는 매개키에 대응하는 매개 경로를 확보한다(530).The communication device secures an intermediate path corresponding to the intermediate key (530).
상대 클라이언트의 네트워크 주소가 변경되어, 상대 클라이언트로 전송한 데이터에 대한 확인 응답을 수신하지 못한 상기 클라이언트로부터, 통신 장치는 매개 경로를 통해 데이터를 수신한다(540). 다시 말해, 클라이언트가 상대 클라이언트로 데이터를 전송하였으나, 상대 클라이언트의 네트워크 주소가 변경되어, 클라이언트가 상대 클라이언트로부터 데이터에 대한 확인 응답을 수신하지 못한 경우, 클라이언트는 데이터를 통신 장치로 전송할 수 있다.The communication device receives data through the intermediary path from the client whose network address of the counterpart client has changed and fails to receive an acknowledgment for the data sent to the counterpart client (540). In other words, when the client transmits data to the counterpart client, but the network address of the counterpart client changes and the client does not receive an acknowledgment of the data from the counterpart client, the client may transmit the data to the communication device.
통신 장치는 상대 클라이언트가 매개키를 이용하여 변경된 네트워크 주소로 접속하는 경우, 데이터를 상대 클라이언트로 전송한다(550).When the counterpart client accesses the changed network address using the intermediate key, the communication device transmits data to the counterpart client (550).
도 1a 내지 도 4를 통해 기술된 사항들은 도 5를 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.1A to 4 may apply to the matters described with reference to FIG. 5, and thus detailed descriptions thereof will be omitted.
도 6은 일 실시예에 따른 서버의 동작 방법을 설명하기 위한 순서도이다.6 is a flowchart illustrating a method of operating a server, according to an exemplary embodiment.
도 6을 참조하면, 서버는 클라이언트의 P2P 통신 요청을 수신하고, P2P 통신 요청을 상대 클라이언트로 전송한다(610).Referring to FIG. 6, the server receives a P2P communication request from the client and transmits the P2P communication request to the counterpart client (610).
서버는 상대 클라이언트가 접속하는 경우, 매개키를 생성하고, 매개키를 상대 클라이언트 및 클라이언트로 전송한다(620).When the other client connects, the server generates an intermediate key and transmits the intermediate key to the other client and the client (620).
서버는 클라이언트로부터 매개키를 수신하여 매개키에 대응하는 매개 경로를 확보한다(630).The server receives the intermediate key from the client to secure the intermediate path corresponding to the intermediate key (630).
상대 클라이언트의 네트워크 주소가 변경되어, 상기 상대 클라이언트로 전송한 데이터에 대한 확인 응답을 수신하지 못한 상기 클라이언트로부터, 서버는 매개 경로를 통해 데이터를 수신한다(640).Since the network address of the counterpart client is changed, the server receives the data through the intermediate path from the client that has not received the acknowledgment for the data transmitted to the counterpart client (640).
서버는 상대 클라이언트가 매개키를 이용하여 변경된 네트워크 주소로 재접속하는 경우, 데이터를 상대 클라이언트로 전송한다(650).When the counterpart client reconnects to the changed network address using the intermediate key, the server transmits data to the counterpart client (650).
도 1a 내지 도 4를 통해 기술된 사항들은 도 6을 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.1A to 4 may be applied to the matters described with reference to FIG. 6, and thus detailed descriptions thereof will be omitted.
도 7은 일 실시예에 따른 클라이언트의 동작 방법의 일례를 설명하기 위한 순서도이다.7 is a flowchart illustrating an example of a method of operating a client, according to an exemplary embodiment.
도 7을 참조하면, 클라이언트는 P2P 통신 요청을 서버로 전송한다(710).Referring to FIG. 7, the client transmits a P2P communication request to the server (710).
클라이언트는 클라이언트 자신과 상대 클라이언트의 통신을 매개하는 통신 매개 장치에 의해 생성된 매개키 및 상대 클라이언트의 네트워크 주소를 서버로부터 수신한다(720). 통신 매개 장치는 위에서 설명한 매개부와 대응할 수 있다.The client receives 720 from the server an intermediate key generated by the communication mediator for mediating communication between the client itself and the counterpart client and the network address of the counterpart client. The communication mediator may correspond to the mediator described above.
클라이언트는 매개키를 이용하여 통신 매개 장치와 연결한다(730).The client connects to the communication media device using the media key (730).
클라이언트는 네트워크 주소를 이용하여 상대 클라이언트에게 데이터를 전송한다(740).The client transmits data to the counterpart client using the network address (740).
상대 클라이언트의 네트워크 주소가 변경되어, 클라이언트가 상대 클라이언트에게 전송한 데이터에 대한 확인 응답을 수신하지 못한 경우, 통신 매개 장치로 데이터를 전송한다(750). 상대 클라이언트는 변경된 네트워크 주소로 매개키를 이용하여 통신 매개 장치에 접속하고, 통신 매개 장치로부터 데이터를 수신한다.If the network address of the counterpart client is changed and the client does not receive an acknowledgment for the data transmitted to the counterpart client, the data is transmitted to the communication mediator (750). The counterpart client connects to the communication mediator using the media key with the changed network address and receives data from the communication mediator.
클라이언트는 상대 클라이언트로부터 데이터에 대한 확인 응답을 수신한다(760).The client receives an acknowledgment for data from the counterpart client (760).
도 1a 내지 도 4를 통해 기술된 사항들은 도 7을 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.1A to 4 may be applied to the matters described with reference to FIG. 7, and thus detailed description thereof will be omitted.
도 8은 일 실시예에 따른 클라이언트의 동작 방법의 다른 일례를 설명하기 위한 순서도이다.8 is a flowchart illustrating another example of a method of operating a client, according to an exemplary embodiment.
도 8은 일 실시예에 따른 클라이언트의 동작 방법의 다른 일례를 설명하기 위한 순서도이다.8 is a flowchart illustrating another example of a method of operating a client, according to an exemplary embodiment.
도 8을 통해 설명되는 클라이언트는 도 1a 내지 도 2의 클라이언트 2와 대응할 수 있다.The client described with reference to FIG. 8 may correspond to client 2 of FIGS. 1A to 2.
도 8을 참조하면, 클라이언트는 요청 클라이언트의 P2P 통신 요청을 서버로부터 수신한 경우, 통신 매개 장치에 접속한다(810). 요청 클라이언트는 도 1a 내지 도 2의 클라이언트 1과 대응할 수 있다.Referring to FIG. 8, when a client receives a P2P communication request of a requesting client from a server, the client accesses a communication medium device (810). The requesting client may correspond to client 1 of FIGS. 1A-2.
클라이언트는 통신 매개 장치로부터 매개키를 수신한다(820). 통신 매개 장치는 위에서 설명한 매개부와 대응할 수 있다.The client receives an intermediate key from the communication intermediate device (820). The communication mediator may correspond to the mediator described above.
클라이언트의 네트워크 주소가 변경된 경우, 클라이언트는 매개키를 이용하여 통신 매개 장치에 재접속한다(830).If the network address of the client is changed, the client reconnects to the communication media device using the media key (830).
클라이언트의 네트워크 주소가 변경된 경우, 요청 클라이언트는 클라이언트로 전송한 데이터에 대한 확인 응답을 수신하지 못한다. 이 경우, 요청 클라이언트는 데이터를 통신 매개 장치로 전송한다. 통신 매개 장치는 데이터를 저장한다.If the network address of the client has changed, the requesting client does not receive an acknowledgment for the data sent to the client. In this case, the requesting client transmits data to the communication medium device. Communication mediated devices store data.
클라이언트는 통신 매개 장치로부터 데이터를 수신한다(840).The client receives the data from the communication mediating device (840).
클라이언트는 요청 클라이언트에게 데이터에 대한 확인 응답을 전송한다(850).The client sends an acknowledgment for the data to the requesting client (850).
도 1a 내지 도 4를 통해 기술된 사항들은 도 8을 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.1A to 4 may apply to the matters described with reference to FIG. 8, and thus detailed descriptions thereof will be omitted.
도 9는 일 실시예에 따른 클라이언트와 서버의 세션 유지를 설명하기 위한 흐름도이다.9 is a flowchart illustrating session maintenance between a client and a server, according to an exemplary embodiment.
도 9를 참조하면, 클라이언트(910)는 서버(911)에 접속한다(920). 단계(920)에서, 클라이언트(910)의 접속은 최초 접속일 수 있다. 서버(911)는 클라이언트(910)로부터 클라이언트(910)의 식별 정보를 수신할 수 있고, 시간값을 확인할 수 있다. 여기서, 시간값은 클라이언트(910)가 서버(911)에 접속한 시간을 나타낼 수 있다.Referring to FIG. 9, the client 910 connects to the server 911 (920). In step 920, the connection of the client 910 may be the initial connection. The server 911 may receive identification information of the client 910 from the client 910, and may check a time value. Here, the time value may represent the time that the client 910 accesses the server 911.
서버(911)는 자신의 암호화 기법인 E서버{}를 이용하여 클라이언트(910)의 식별 정보 및 시간값을 암호화할 수 있다. 예를 들어, 서버(911)는 세션키를 이용하여 클라이언트(910)의 식별 정보 및 시간값을 암호화할 수 있다.The server 911 may encrypt the identification information and the time value of the client 910 using its E server {}. For example, the server 911 may encrypt the identification information and the time value of the client 910 using the session key.
서버(911)는 클라이언트(910)에게 질문을 전송할 수 있다(921). 질문은 무작위로 생성될 수 있다. 예를 들어, 서버(911)는 암호화된 식별 정보 및 시간값, 즉, E서버{식별 정보, 시간값}을 질문으로서 클라이언트(910)에게 전송할 수 있다. 즉, 클라이언트(910)는 서버(911)로부터 E서버{식별 정보, 시간값}을 수신할 수 있다.The server 911 may transmit a question to the client 910 (921). The questions can be generated randomly. For example, the server 911 may transmit the encrypted identification information and the time value, that is, the E server {identification information, time value}, to the client 910 as a query. That is, the client 910 may receive the E server {identification information, time value} from the server 911.
클라이언트(910)는 서버(911)로부터 질문을 수신한 경우, 답을 서버(911)로 전송할 수 있다(922). 예를 들어, 클라이언트(910)는 자신의 암호화 기법인 E클라이언트{}를 이용하여 E서버{식별 정보, 시간값}을 암호화할 수 있고, E클라이언트{E서버{식별 정보, 시간값}}을 답으로서 서버(911)에 전송할 수 있다.When the client 910 receives the question from the server 911, the client 910 may transmit an answer to the server 911 (922). For example, the client 910 may encrypt the E server {identification information, time value} using E client {}, which is its encryption method, and the E client {E server {identification information, time value}}. In response, it may transmit to the server 911.
서버(911)는 E클라이언트{}에 대응하는 복호화를 통해 E클라이언트{E서버{식별 정보, 시간값}}로부터 E서버{식별 정보, 시간값}를 추출 또는 획득할 수 있다. 또한, 서버(911)는 E서버{식별 정보, 시간값}를 복호화하여 식별 정보 및 시간값을 추출 또는 획득할 수 있다. Server 911 may extract or acquire {E server identification information, the time value is generated from the client E {{E server identification information, the time value}} via the decoding corresponding to the client E {}. In addition, the server 911 may extract or obtain identification information and time value by decoding the E server {identification information, time value}.
서버(911)는 답이 질문에 대응하는지 확인할 수 있다(923). 예를 들어, 서버(911)는 E클라이언트{E서버{식별 정보, 시간값}}로부터 획득된 식별 정보 및 시간값이 단계(910)에서 수신된 식별 정보 및 확인된 시간값에 대응하는지 확인할 수 있다.The server 911 may check whether the answer corresponds to the question (923). For example, the server 911 may check whether the identification information and the time value obtained from the E client {E server {identification information, time value}} correspond to the identification information and the confirmed time value received in step 910. have.
답이 질문에 대응하는 경우, 서버(911)는 클라이언트(910)와 통신 세션을 유지할 수 있다(924). 세션은, 예를 들어, UDP 세션일 수 있다. 답이 질문에 대응하지 않는 경우, 서버(911)는 클라이언트(910)에게 재접속 요청을 전송할 수 있다(925).If the answer corresponds to the question, server 911 may maintain a communication session with client 910 (924). The session can be, for example, a UDP session. If the answer does not correspond to the question, the server 911 may send a reconnection request to the client 910 (925).
클라이언트(910)와 서버(911) 사이의 세션이 유지된 상태에서, 클라이언트(910)는 P2P 통신 요청을 서버(911)에 전송할 수 있다. 클라이언트(910)와 서버(911) 사이의 세션이 유지된 상태에서, 클라이언트(910)는 도 1a의 단계(110) 또는 도 2의 단계(210)를 실행할 수 있다.In a state in which a session between the client 910 and the server 911 is maintained, the client 910 may transmit a P2P communication request to the server 911. With the session maintained between the client 910 and the server 911, the client 910 may execute step 110 of FIG. 1A or step 210 of FIG. 2.
도 9를 통해 설명한 세션 유지는 도 1을 통해 설명한 클라이언트 2와 서버에 적용될 수 있다. 보다 구체적으로, 도 1의 단계(129)에서, 클라이언트 2는 서버에게 네트워크 주소가 변경되었음을 서버에게 알리기 위해 서버에 접속할 수 있고, 서버에 자신의 식별 정보를 전송할 수 있다. 여기서, 서버는 자신이 이미 알고 있는 클라이언트 2의 네트워크 주소와 다른 네트워크 주소에 맵핑된 제3자로부터 클라이언트 2의 식별 정보를 수신한다. 즉, 서버는 제3자가 클라이언트 2인지 해커인지 정확하게 알 수 없다. 서버는 E서버{클라이언트 2의 식별 정보, 시간값}을 질문으로서 제3자에게 전송할 수 있고, E클라이언트 2{E서버{클라이언트 2의 식별 정보, 시간값}}을 답으로서 수신할 수 있다. 서버는 E클라이언트 2{}에 대응하는 복호화 기법 및 E서버{}에 대응하는 복호화 기법을 이용하여 E클라이언트 2{E서버{상대 클라이언트의 식별 정보, 시간값}}로부터 클라이언트 2의 식별 정보 및 시간값을 추출할 수 있다. 즉, 답이 질문에 대응한다. 서버는 제3가 클라이언트 2임을 확인할 수 있고, 클라이언트 2와의 세션을 유지할 수 있다. 단계(130)에서, 서버는 클라이언트 2의 네트워크 주소가 변경되었음을 알릴 수 있다. 다시 말해, 서버는 클라이언트 2가 다른 네트워크 주소에 맵핑 되었음을 클라이언트 1에게 알릴 수 있다. The session maintenance described with reference to FIG. 9 may be applied to the client 2 and the server described with reference to FIG. 1. More specifically, in step 129 of FIG. 1, client 2 may connect to the server to inform the server that the network address has changed, and send its identification information to the server. Here, the server receives the identification information of the client 2 from a third party mapped to a network address different from that of the client 2 already known. In other words, the server does not know exactly whether the third party is Client 2 or a hacker. The server can send the E server {client 2's identification information, time value} to the third party as a question, and the E client 2 {E server {identification information of client 2, time value}} can be received as an answer. The server uses the decryption technique corresponding to E client 2 {} and the decryption technique corresponding to E server {} to identify and time client 2's identification information from E client 2 {E server {identification information, time value}} of E client 2. You can extract the value. That is, the answer corresponds to the question. The server may confirm that the third is Client 2 and maintain a session with Client 2. In step 130, the server may inform that Client 2's network address has changed. In other words, the server can inform Client 1 that Client 2 has been mapped to a different network address.
다른 실시예에 따르면, 통신 세션을 유지하기 위해 세션 식별자가 이용될 수 있다. 보다 구체적으로, 서버(911)는 P2P 통신 요청을 클라이언트(910)로부터 수신하는 경우, 세션 식별자를 클라이언트(910)에 할당할 수 있다. 세션 식별자는 네트워크 상에서 클라이언트(910)를 식별하는데 사용될 수 있다. 세션 식별자는 클라이언트(910)의 전송 단위(예를 들어, 클라이언트(910)가 서버(911), 매개부, 또는 상대 클라이언트와 주고받는 패킷)의 헤더에 포함될 수 있다. 클라이언트(910)의 네트워크 주소가 변경되어도 서버(911)가 세션 식별자를 포함하는 전송 단위를 수신하는 경우, 서버(911)는 클라이언트(910)와의 통신 세션을 유지할 수 있다.According to another embodiment, a session identifier may be used to maintain a communication session. More specifically, when receiving a P2P communication request from the client 910, the server 911 may assign a session identifier to the client 910. The session identifier can be used to identify the client 910 on the network. The session identifier may be included in a header of a transmission unit of the client 910 (eg, a packet that the client 910 exchanges with the server 911, an intermediary, or a counterpart client). Even when the network address of the client 910 is changed, when the server 911 receives a transmission unit including a session identifier, the server 911 may maintain a communication session with the client 910.
도 1a 내지 도 8을 통해 기술된 사항들은 도 9를 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다. 또한, 도 9를 통해 기술된 사항들은 도 1a 내지 도8을 통해 기술된 사항들에 적용될 수 있다.1A to 8 may apply to the matters described with reference to FIG. 9, and thus a detailed description thereof will be omitted. In addition, the matters described with reference to FIG. 9 may be applied to the matters described with reference to FIGS. 1A through 8.
도 10a 내지 도 10b는 일 실시예에 따른 클라이언트의 동작 방법의 다른 일례를 설명하기 위한 도면이다.10A and 10B are diagrams for describing another example of a method of operating a client, according to an exemplary embodiment.
도 10a를 참조하면, 클라이언트의 동작 방법에 대한 순서도가 도시된다.Referring to FIG. 10A, a flowchart of a method of operating a client is shown.
클라이언트는 상대 클라이언트와 P2P 통신 경로를 설정한다(1010).The client establishes a P2P communication path with the counterpart client (1010).
클라이언트는 상대 클라이언트에게 공유키를 전송한다(1020).The client transmits the shared key to the counterpart client (1020).
클라이언트는 P2P 통신 경로를 통해 공유키로 암호화된 데이터를 수신한다(1030).The client receives the data encrypted with the shared key through the P2P communication path (1030).
클라이언트는 암호화된 데이터를 공유키를 이용하여 복호화한다(1040).The client decrypts the encrypted data using the shared key (1040).
클라이언트는 데이터를 복호화한 경우, 클라이언트의 데이터 사용량에 대한 과금과 관련된 복호화 횟수 정보를 업데이트한다(1050).When the client decrypts the data, the client updates the decryption number information related to charging for the data usage of the client (1050).
클라이언트는 업데이트된 복호화 횟수 정보를 서버로 전송할 수 있다. The client may transmit the updated decryption number information to the server.
일 실시예에 있어서, 서버는 업데이트된 복호화 횟수 정보를 기초로 데이터 사용량을 결정할 수 있다. 예를 들어, 서버는 복호화 횟수 정보와 데이터 사용량 사이의 대응 관계가 기록된 테이블을 참조하여, 클라이언트의 데이터 사용량을 결정할 수 있다. 서버는 데이터 사용량을 과금 시스템으로 전송할 수 있다. 과금 시스템은 데이터 사용량을 이용하여 과금 정보를 생성할 수 있다.In one embodiment, the server may determine the data usage based on the updated number of decryption information. For example, the server may determine the data usage of the client by referring to a table in which a correspondence relationship between the number of decryption information and the data usage is recorded. The server can send the data usage to the charging system. The billing system may generate billing information using the data usage.
다른 실시예에 있어서, 서버는 업데이트된 복호화 횟수 정보를 기초로 과금 정보를 생성할 수 있다. 예를 들어, 서버는 복호화 횟수 정보와 과금 정보 사이의 대응 관계가 기록된 테이블을 참조하여, 과금 정보를 생성할 수 있다.In another embodiment, the server may generate the charging information based on the updated number of decryption information. For example, the server may generate charging information by referring to a table in which a correspondence relationship between decryption number information and charging information is recorded.
서버 및/또는 과금 시스템은 클라이언트의 데이터 사용량이 미리 정해진 사용량을 초과하는지 여부를 확인할 수 있다. 미리 정해진 사용량은 클라이언트의 사용자가 가입한 통신 요금제에 대응하는 데이터 쿼터(quota)일 수 있다. 즉, 미리 정해진 사용량은 클라이언트에 할당된 데이터 쿼터일 수 있다. 서버 및/또는 과금 시스템은 확인 결과 정보를 기초로 데이터 사용량에 대한 가이드(guide) 정보를 생성할 수 있다. 서버 및/또는 과금 시스템은 가이드 정보를 클라이언트로 전송할 수 있다.The server and / or billing system may check whether the data usage of the client exceeds a predetermined usage. The predetermined usage amount may be a data quota corresponding to a communication plan subscribed to by a user of the client. That is, the predetermined usage amount may be a data quota allocated to the client. The server and / or the billing system may generate guide information on data usage based on the verification result information. The server and / or billing system may send the guide information to the client.
가이드 정보는 클라이언트의 데이터 사용량이 미리 정해진 사용량을 초과하였는지 여부를 나타내는 초과 정보, 미리 정해진 사용량 중 데이터 사용량을 제외한 가용(available) 데이터 용량을 나타내는 잔량(remaining) 정보, 및 P2P 통신에 대한 대역폭 및 품질 중 적어도 하나에 대한 제한이 있는지 여부를 나타내는 제한 정보 중 적어도 하나를 포함할 수 있다. 예를 들어, 미리 정해진 사용량이 2GB(gigabyte)이고, 데이터 사용량이 1GB라 하자. 가이드 정보는 데이터 용량이 1GB 남아있다는 잔량 정보를 포함할 수 있다. 또한, 가이드 정보는 데이터 사용량이 미리 정해진 사용량을 초과하지 않음을 나타내는 초과 정보 및/또는 P2P 통신에 대한 대역폭 및 품질이 제한되지 않음을 나타내는 제한 정보를 포함할 수 있다. 다른 일례로, 미리 정해진 사용량이 2GB이고, 사용량 정보가 2.5GB라 하자. 가이드 정보는 사용량 정보가 미리 정해진 사용량을 초과했음을 나타내는 초과 정보, 가용 데이터 용량이 없음을 나타내는 잔량 정보, 및 P2P 통신에 대한 대역폭 및 품질 중 적어도 하나에 대한 제한이 있음을 나타내는 제한 정보를 포함할 수 있다. 또한, 가이드 정보는 미리 정해진 사용량을 초과한 데이터 사용량인 0.5GB는 추가로 과금될 것이라는 정보를 포함할 수 있다.The guide information includes excess information indicating whether the data usage of the client has exceeded the predetermined usage, remaining information indicating available data capacity excluding the data usage among the predetermined usage, and bandwidth and quality for P2P communication. It may include at least one of the restriction information indicating whether there is a restriction on at least one of. For example, a predetermined usage amount is 2 GB (gigabyte) and data usage is 1 GB. The guide information may include remaining amount information indicating that 1 GB of data capacity remains. In addition, the guide information may include excess information indicating that data usage does not exceed a predetermined usage amount and / or restriction information indicating that bandwidth and quality for P2P communication are not limited. As another example, assume that the predetermined usage amount is 2 GB and the usage information is 2.5 GB. The guide information may include excess information indicating that the usage information has exceeded a predetermined usage amount, remaining information indicating that there is no available data capacity, and restriction information indicating that there is a limitation on at least one of bandwidth and quality for P2P communication. have. In addition, the guide information may include information that 0.5GB, which is a data usage exceeding a predetermined usage amount, will be additionally charged.
클라이언트는 가이드 정보를 디스플레이에 시각적으로 표시할 수 있다.The client can visually display the guide information on the display.
일 실시예에 있어서, 클라이언트는 사용자의 입력 정보를 기초로, 가이드 정보 제공을 위한 요청을 서버로 전송할 수 있고, 서버는 가이드 정보를 클라이언트에 전송할 수 있다.In an embodiment, the client may transmit a request for providing guide information to the server based on the user's input information, and the server may transmit the guide information to the client.
일 실시예에 있어서, 클라이언트는 자신에 할당된 데이터 쿼터를 적어도 하나의 다른 클라이언트와 공유할 수 있다. 예를 들어, 클라이언트에 할당된 데이터 쿼터가 5GB라 하자. 클라이언트는 다른 클라이언트와 5GB의 데이터 쿼터를 공유할 수 있다. 다시 말해, 클라이언트는 공유 그룹을 형성하여 자신의 데이터 쿼터를 공유 그룹 내의 공유 클라이언트와 공유할 수 있다. 클라이언트는 공유 클라이언트의 데이터 사용량과 관련된 정보를 서버 및/또는 공유 클라이언트로부터 수신할 수 있고, 수신 정보를 기초로 클라이언트의 복호화 횟수 정보를 업데이트할 수 있다. 수신 정보는, 예를 들어, 공유 클라이언트가 P2P 통신을 통해 수신한 암호화된 데이터를 복호화할 때마다 업데이트한 복호화 횟수 정보를 포함할 수 있다.In one embodiment, a client may share its assigned data quota with at least one other client. For example, assume that the data quota allocated to clients is 5GB. Clients can share 5GB of data quota with other clients. In other words, a client may form a shared group to share its data quota with shared clients in the shared group. The client may receive information related to the data usage of the shared client from the server and / or the shared client, and update the decryption number information of the client based on the received information. The received information may include, for example, updated decryption number information each time the shared client decrypts the encrypted data received through the P2P communication.
도 1a 내지 도 9를 통해 기술된 사항들은 도 10a를 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.1A to 9 may apply to the matters described with reference to FIG. 10A, and thus detailed descriptions thereof will be omitted.
도 10b를 참조하면, 클라이언트 1은 클라이언트 2 내지 4 각각과 P2P 통신 경로를 설정하고, 각각의 P2P 통신 경로를 통해 데이터를 수신한다. 보다 구체적으로, 클라이언트 1은 클라이언트 2로부터 공유키1로 암호화된 데이터 a를 수신하고, 클라이언트 3으로부터 공유키 2로 암호화된 데이터 b를 수신하며, 클라이언트 4로부터 공유키 3으로 암호화된 데이터 c를 수신한다. 공유키 1 내지 3 각각은 서로 동일할 수 있다. 또는, 공유키 1 내지 3각각은 서로 다를 수 있다. 또는, 공유키 1 및 2는 서로 동일하고, 공유키 3과 다를 수 있다.Referring to FIG. 10B, the client 1 sets up a P2P communication path with each of the clients 2 to 4 and receives data through each P2P communication path. More specifically, client 1 receives data a encrypted with shared key 1 from client 2, receives data b encrypted with shared key 2 from client 3, and receives data c encrypted with shared key 3 from client 4 do. Each of the shared keys 1 to 3 may be identical to each other. Alternatively, the shared keys 1 to 3 may each be different. Alternatively, the shared keys 1 and 2 may be identical to each other and may be different from the shared key 3.
클라이언트 1은 공유키 1을 이용하여 데이터 a를 복호화할 수 있고, 복호화 횟수 정보를 업데이트할 수 있다. 클라이언트 1은 공유키 2를 이용하여 데이터 b를 복호화할 수 있고, 복호화 횟수 정보를 업데이트할 수 있다. 마찬가지로, 클라이언트 1은 공유키 3을 이용하여 데이터 c를 복호화할수 있고, 복호화 횟수 정보를 업데이트할 수 있다. 클라이언트 1이 클라이언트 2 내지 클라이언트 4 각각과 P2P 통신을 하기 전에 기록된 복호화 횟수 정보클라이언트 1가 n이라 하자. 복호화 횟수 정보클라이언트 1는 n+3으로 업데이트될 수 있다. Client 1 can decrypt data a using shared key 1 and update decryption number information. Client 1 can decrypt data b using shared key 2 and update the decryption count information. Similarly, the client 1 can decrypt the data c using the shared key 3 and update the decryption number information. Assume that the decoding number information client 1 recorded before the client 1 performs P2P communication with each of the clients 2 to 4 is n. The decryption count information client 1 may be updated to n + 3.
복호화 횟수 정보는 클라이언트 1의 데이터 사용량 또는 데이터 사용량에 대한 과금과 관련된 정보일 수 있다. 과금을 위해 클라이언트 1은 자신의 복호화 횟수 정보를 서버로 전송할 수 있다.The decryption count information may be information related to billing for data usage or data usage of the client 1. For charging, the client 1 may transmit its decryption number information to the server.
도 1a 내지 도 10a를 통해 기술된 사항들은 도 10b를 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.The matters described with reference to FIGS. 1A through 10A may be applied to the matters described with reference to FIG. 10B, and thus detailed descriptions thereof will be omitted.
도 11은 일 실시예에 따른 클라이언트에 할당된 데이터 쿼터의 공유를 설명하기 위한 도면이다.FIG. 11 illustrates a sharing of a data quota allocated to a client according to an exemplary embodiment.
도 11을 참조하면, 클라이언트(1110)는 자신의 데이터 쿼터를 공유 그룹(1120) 내의 공유 클라이언트와 공유할 수 있다.Referring to FIG. 11, the client 1110 may share its data quota with a sharing client in the sharing group 1120.
공유 그룹(1120)은 식별자를 기초로 형성될 수 있다. 보다 구체적으로, 클라이언트(1110)의 P2P 통신을 가능하게 하는 통신 소프트웨어에는 식별자가 할당된다. 클라이언트(1121 및 1122)의 P2P 통신을 가능하게 하는 통신 소프트웨어에는 식별자가 할당된다.The sharing group 1120 may be formed based on the identifier. More specifically, an identifier is assigned to communication software that enables P2P communication of the client 1110. Communication software that enables P2P communication of clients 1121 and 1122 is assigned an identifier.
클라이언트(1121) 및 클라이언트(1122)는 클라이언트(1110)를 부모 또는 마스터로 등록하기 위한 시각적 코드(예를 들어, QR 코드)를 디스플레이에 표시할 수 있다. 각각의 QR 코드는, 예를 들어, 클라이언트(1121) 및 클라이언트(1122) 각각에 대응하는 키가 인코딩된 것일 수 있다. Client 1121 and client 1122 may display on the display a visual code (eg, a QR code) for registering client 1110 as a parent or master. Each QR code may be, for example, an encoded key corresponding to each of client 1121 and client 1122.
클라이언트(1110)는 광학적 수단(예를 들어, 카메라)을 통해 시각적 코드를 캡쳐할 있고, 캡쳐한 QR 코드로부터 키를 추출할 수 있다. 클라이언트(1110)는 자신의 식별자 및 키를 서버로 전송할 수 있고, 서버는 키가 유효한지 확인할 수 있다. 예를 들어, 서버는 키의 사용 가능 횟수가 0인지 여부를 확인할 수 있다. 키가 유효한 경우, 서버는 클라이언트(1110)를 클라이언트(1121) 및 클라이언트(1122)의 마스터 또는 부모(parent)로 관리할 수 있고, 클라이언트(1121) 및 클라이언트(1122)를 클라이언트(1110)의 슬레이브 또는 차일드(child)로 관리할 수 있다. 클라이언트(1121) 및 클라이언트(1122)의 식별자는 클라이언트(1110)의 식별자와 그룹핑되어 관리될 수 있다.The client 1110 may capture the visual code via optical means (eg, a camera) and extract a key from the captured QR code. The client 1110 may send its identifier and key to the server, and the server may verify that the key is valid. For example, the server can check whether the number of available keys is zero. If the key is valid, the server may manage the client 1110 as the master or parent of the client 1121 and the client 1122, and the client 1121 and the client 1122 as slaves of the client 1110. Or it can be managed as a child. The identifiers of the client 1121 and the client 1122 may be managed by grouping with the identifiers of the client 1110.
또한, 서버는 키의 사용 가능 횟수를 업데이트할 수 있다.The server may also update the number of times the key is available.
도 11에 도시된 예에서, 클라이언트(1110)는 마스터이고, 클라이언트(1121 및 1122)는 슬레이브이다. 클라이언트(1121 및 1122)는 클라이언트(1110)에 할당된 데이터 쿼터를 공유할 수 있는 공유 클라이언트로 정의될 수 있다.In the example shown in FIG. 11, client 1110 is a master and clients 1121 and 1122 are slaves. Clients 1121 and 1122 may be defined as shared clients that can share the data quota assigned to client 1110.
공유 클라이언트(1121 및 1122)는 P2P 통신을 수행하여 암호화된 데이터를 수신할 수 있다. 공유 클라이언트(1121 및 1122)는 상대방과 공유한 공유키를 이용하여 데이터를 복호화할 수 있고, 복호화 횟수 정보를 업데이트할 수 있다. 공유 클라이언트(1121 및 1122)는 P2P 통신이 종료된 경우, 복호화 횟수 정보를 서버 및/또는 클라이언트(1110)로 전송할 수 있다. 클라이언트(1110)는 공유 클라이언트(1121 및 1122)의 데이터 사용량과 관련된 정보를 수신할 수 있고, 수신 정보를 기초로 자신의 복호화 횟수 정보를 업데이트할 수 있다. 예를 들어, 공유 클라이언트(1121) 및 공유 클라이언트(1122) 각각의 복호화 횟수 정보가 100 및 200이라 하자. 클라이언트(1110)는 공유 클라이언트(1121 및 1122)의 복호화 횟수 정보를 수신할 수 있고, 자신의 복호화 횟수 정보에 300을 더할 수 있다.The sharing clients 1121 and 1122 may receive the encrypted data by performing P2P communication. The shared clients 1121 and 1122 may decrypt data using the shared key shared with the other party, and update the decryption number information. When the P2P communication is terminated, the shared clients 1121 and 1122 may transmit the decryption number information to the server and / or the client 1110. The client 1110 may receive information related to data usage of the shared clients 1121 and 1122, and may update its decryption number information based on the received information. For example, it is assumed that decryption number information of each of the shared client 1121 and the shared client 1122 is 100 and 200, respectively. The client 1110 may receive decryption number information of the shared clients 1121 and 1122, and may add 300 to its decryption number information.
도 1 내지 도 10b를 통해 기술된 사항들은 도 11을 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.The matters described with reference to FIGS. 1 through 10B may be applied to the matters described with reference to FIG. 11, and thus detailed descriptions thereof will be omitted.
도 12는 일 실시예에 따른 클라이언트의 일례를 설명하기 위한 블록도이다.12 is a block diagram illustrating an example of a client according to an exemplary embodiment.
도 12를 참조하면, 클라이언트(1200)는 통신 인터페이스(1210) 및 컨트롤러(1220)를 포함한다. 또한, 클라이언트(1200)는 메모리(미도시)를 포함한다. 메모리는 통신 소프트웨어를 저장하고, 컨트롤러(1220)는 통신 소프트웨어를 실행한다.Referring to FIG. 12, the client 1200 includes a communication interface 1210 and a controller 1220. In addition, the client 1200 includes a memory (not shown). The memory stores communication software, and the controller 1220 executes the communication software.
통신 소프트웨어가 실행됨에 따라 통신 인터페이스(1210)의 동작 및 컨트롤러(12720)의 동작이 수행될 수 있다. 예를 들어, 통신 인터페이스(1210)는 상대 클라이언트와 P2P(Peer To Peer) 통신 경로를 설정한다. 통신 인터페이스(1210)는 상대 클라이언트에게 공유키를 전송하고, P2P 통신 경로를 통해 공유키로 암호화된 데이터를 수신한다. 컨트롤러(1220)는 암호화된 데이터를 공유키를 이용하여 복호화한다. 컨트롤러(1220)는 데이터를 복호화한 경우, 클라이언트의 데이터 사용량과 관련된 복호화 횟수 정보를 업데이트한다. 과금 기반 정보는 통신 소프트웨어를 통해 생성될 수 있다.As the communication software is executed, an operation of the communication interface 1210 and an operation of the controller 12720 may be performed. For example, the communication interface 1210 establishes a peer to peer (P2P) communication path with a counterpart client. The communication interface 1210 transmits a shared key to the counterpart client, and receives data encrypted with the shared key through a P2P communication path. The controller 1220 decrypts the encrypted data using the shared key. When the controller 1220 decrypts the data, the controller 1220 updates decryption number information related to data usage of the client. Billing-based information can be generated via communication software.
복호화 횟수 정보는 메모리 및/또는 보안 통화 동글에 저장될 수 있다.The decryption number information may be stored in a memory and / or a secure call dongle.
도 1 내지 도 11을 통해 기술된 사항들은 도 12를 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.1 to 11 may be applied to the items described with reference to FIG. 12, and thus detailed descriptions thereof will be omitted.
도 13은 일 실시예에 따른 보안 통화 동글의 일례를 설명하기 위한 도면이다.FIG. 13 illustrates an example of a secure call dongle according to an exemplary embodiment.
도 13을 참조하면, 클라이언트(1300) 및 보안 통화 동글(1310)의 일례가 도시된다.Referring to FIG. 13, an example of a client 1300 and a secure call dongle 1310 is shown.
보안 통화 동글(1310)은 클라이언트(1300)의 입출력 인터페이스에 착탈 가능한 형태일 수 있다. 입출력 인터페이스는, 마이크로 USB 포트, Apple®의 라이트닝 포트 등이 있다. 또한, 보안 통화 동글(1310)은 향후 개발되는 다양한 입출력 인터페이스에 호환되도록 설계될 수 있다.The secure call dongle 1310 may be detachable from the input / output interface of the client 1300. Input and output interfaces include a micro USB port and an Apple® Lightning port. In addition, the secure call dongle 1310 may be designed to be compatible with various input / output interfaces developed in the future.
보안 통화 동글(1310)과 클라이언트(1300)는 물리적 접촉없이 근거리 무선 통신을 통해 연결될 수 있다. 근거리 무선 통신은, 예를 들어, 블루투스, NFC, 또는 Wi-Fi 등이 있다. 근거리 무선 통신은 전술한 예로 한정되지 않는다.The secure call dongle 1310 and the client 1300 may be connected through short-range wireless communication without physical contact. Short-range wireless communication is, for example, Bluetooth, NFC, or Wi-Fi. Near field communication is not limited to the above-described example.
보안 통화 동글(1310)은 일정 용량의 메모리를 포함할 수 있다. 메모리에는 통신 소프트웨어, 통신 소프트웨어를 통해 통화한 이력, 메시징 이력, 메시지 내용, 첨부 파일 등이 저장될 수 있다.The secure call dongle 1310 may include a certain amount of memory. The memory may store communication software, a call history through the communication software, a messaging history, a message content, an attached file, and the like.
보안 통화 동글(1310)은 일정 용량의 배터리를 포함할 수 있다. 클라이언트(1300)의 배터리가 부족한 경우, 보안 통화 동글(1310)은 일정 시간 이상의 통화가 가능할 정도의 전력을 클라이언트(1300)로 공급할 수 있다. 여기서, 보안 통화 동글(1310)이 물리적 접촉없이 클라이언트(1300)와 연결된 경우, 보안 통화 동글(810)은 무선으로 전력을 클라이언트(1300)로 전송할 수 있다.The secure call dongle 1310 may include a battery of a predetermined capacity. When the battery of the client 1300 is low, the secure call dongle 1310 may supply power to the client 1300 to allow a call for a predetermined time or more. Here, when the secure call dongle 1310 is connected to the client 1300 without physical contact, the secure call dongle 810 may wirelessly transmit power to the client 1300.
보안 통화 동글(1310)이 클라이언트(1300)와 연결된 경우, 통신 소프트웨어가 클라이언트(1300)의 디스플레이에 시각적으로 표시될 수 있다. 다른 일례로, 보안 통화 동글(1310)이 클라이언트(1300)과 연결된 경우, 통신 소프트웨어가 실행될 수 있다. When the secure call dongle 1310 is connected with the client 1300, communication software may be visually displayed on the display of the client 1300. As another example, when the secure call dongle 1310 is connected with the client 1300, communication software may be executed.
통신 소프트웨어에 대응하는 식별자가 저장된 메모리를 포함하는 보안 통화 동글(1310)이 배포될 수 있다. 클라이언트(1300)에 통신 소프트웨어가 설치되고, 보안 통화 동글(1310)이 클라이언트(1300)에 연결되는 경우, 보안 통화에 필요한 식별자가 통신 소프트웨어에 할당될 수 있다.A secure call dongle 1310 may be distributed that includes a memory in which an identifier corresponding to the communication software is stored. When communication software is installed in the client 1300 and the secure call dongle 1310 is connected to the client 1300, an identifier required for the secure call may be allocated to the communication software.
보안 통화 동글(1310)에는 클라이언트(1300)의 복호화 횟수 정보가 저장될 수 있다. 예를 들어, 보안 통화 동글(1310)이 클라이언트(1300)와 연결된 상태에서 클라이언트(1300)는 P2P 통신을 수행하여 암호화된 데이터를 수신할 수 있고, 데이터를 복호화할 때마다 복호화 횟수 정보를 업데이트하여 보안 통화 동글(1310)에 저장할 수 있다.The secure call dongle 1310 may store decryption number information of the client 1300. For example, while the secure call dongle 1310 is connected with the client 1300, the client 1300 may receive the encrypted data by performing P2P communication, and update the decryption count information each time the data is decrypted. The secure call dongle 1310 may be stored.
보안 통화 동글(1310)에는 대화방을 통해 송수신한 메시지 및/또는 컨텐츠가 저장될 수 있다. 메시지 및/또는 컨텐츠 등의 데이터에는 속성이 정의되어 있어, 데이터는 보안 통화 동글(1310) 외부로 이동이 가능하거나 가능하지 않을 수 있다. 보안 통화 동글(1310)에 저장된 데이터에 대한 이벤트가 발생하는 경우, 사용자는 데이터의 원 소유자로부터 허가를 받아야 이벤트가 수행될 수 있다. 일례로, 클라이언트(1300)는 해당 파일의 원 소유자(또는 보안 관리자)로부터 해당 파일에 대한 이동 허가를 얻어야 보안 통화 동글(1310)에 저장된 파일을 외부로 전송할 수 있다. 해당 파일이 보안 통화 동글(1310)에 저장되어 있다는 것은 할당 받은 식별자(여기서, 식별자는 해당 파일에 할당된 식별자)가 서버에 기록되어 있다는 의미일 수 있고, 클라이언트(1300)는 해당 파일이 외부로 전송 또는 이동될 것이라는 메시지를 원 소유자(또는 보안 관리자)의 클라이언트에게 전송할 수 있다. 원 소유자(또는 보안 관리자)가 해당 파일의 전송 또는 이동을 승인하는 경우, 해당 파일의 속성이 재정의되거나 수정될 수 있다. 이에 따라, 해당 파일은 보안 통화 동글(1310) 외부로 전송되거나 이동될 수 있다.The secure call dongle 1310 may store messages and / or contents transmitted and received through a chat room. Attributes are defined in data such as messages and / or content, so the data may or may not be moved out of the secure call dongle 1310. When an event occurs for data stored in the secure call dongle 1310, the user may need to obtain permission from the original owner of the data to perform the event. For example, the client 1300 may transmit a file stored in the secure call dongle 1310 to the outside only by obtaining a movement permission for the file from the original owner (or security manager) of the file. If the file is stored in the secure call dongle 1310, it may mean that an assigned identifier (where the identifier is an identifier assigned to the file) is recorded on the server, and the client 1300 indicates that the file is stored externally. A message may be sent to the original owner (or security manager) 's client that it will be sent or moved. If the original owner (or security administrator) approves the transfer or movement of the file, the properties of the file may be overridden or modified. Accordingly, the file may be transmitted or moved outside the secure call dongle 1310.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the devices and components described in the embodiments are, for example, processors, controllers, arithmetic logic units (ALUs), digital signal processors, microcomputers, field programmable gate arrays (FPGAs). Can be implemented using one or more general purpose or special purpose computers, such as a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to the execution of the software. For convenience of explanation, one processing device may be described as being used, but one of ordinary skill in the art will appreciate that the processing device includes a plurality of processing elements and / or a plurality of types of processing elements. It can be seen that it may include. For example, the processing device may include a plurality of processors or one processor and one controller. In addition, other processing configurations are possible, such as parallel processors.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the above, and configure the processing device to operate as desired, or process it independently or collectively. You can command the device. Software and / or data may be any type of machine, component, physical device, virtual equipment, computer storage medium or device in order to be interpreted by or to provide instructions or data to the processing device. Or may be permanently or temporarily embodied in a signal wave to be transmitted. The software may be distributed over networked computer systems so that they may be stored or executed in a distributed manner. Software and data may be stored on one or more computer readable recording media.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be embodied in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the media may be those specially designed and constructed for the purposes of the embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described by the limited embodiments and the drawings as described above, various modifications and variations are possible to those skilled in the art from the above description. For example, the described techniques may be performed in a different order than the described method, and / or components of the described systems, structures, devices, circuits, etc. may be combined or combined in a different form than the described method, or other components. Or even if replaced or substituted by equivalents, an appropriate result can be achieved.
그러므로, 다른 구현들, 다른 실시예들 및 청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are within the scope of the following claims.

Claims (48)

  1. 클라이언트와 상대 클라이언트간의 P2P(Peer to Peer) 통신에 대응하는 매개키를 생성하는 단계;Generating an intermediate key corresponding to peer-to-peer communication between the client and the counterpart client;
    상기 매개키를 상기 상대 클라이언트로 전송하는 단계;Transmitting the intermediate key to the counterpart client;
    상기 매개키에 대응하는 매개 경로를 확보하는 단계;Securing an intermediate path corresponding to the intermediate key;
    상기 상대 클라이언트의 네트워크 주소가 변경되어, 상기 상대 클라이언트로 전송한 데이터에 대한 확인 응답을 수신하지 못한 상기 클라이언트로부터, 상기 매개 경로를 통해 상기 데이터를 수신하는 단계; 및Receiving the data through the intermediary path from the client whose network address of the counterpart client has been changed and has not received an acknowledgment for the data sent to the counterpart client; And
    상기 상대 클라이언트가 상기 매개키를 이용하여 접속하는 경우, 상기 데이터를 상기 상대 클라이언트로 전송하는 단계Transmitting the data to the counterpart client when the counterpart client connects using the intermediate key;
    를 포함하는,Including,
    통신 장치의 동작 방법.Method of operation of a communication device.
  2. 제1항에 있어서,The method of claim 1,
    상기 매개키를 생성하는 단계는,Generating the intermediate key,
    상기 클라이언트의 P2P 통신 요청을 서버로부터 전달받은 상기 상대 클라이언트와 연결되는 경우, 상기 매개키를 생성하는 단계Generating the intermediate key when connected to the counterpart client that has received the client's P2P communication request from the server;
    를 포함하는,Including,
    통신 장치의 동작 방법.Method of operation of a communication device.
  3. 제2항에 있어서,The method of claim 2,
    상기 서버는,The server,
    상기 상대 클라이언트로부터 상기 매개키를 수신하고, 상기 매개키를 상기 클라이언트로 전송하고,Receiving the intermediate key from the counterpart client, transmitting the intermediate key to the client,
    상기 매개 경로를 확보하는 단계는,Securing the intermediate path,
    상기 클라이언트로부터 상기 매개키를 수신한 경우, 상기 매개 경로를 확보하는 단계If the media key is received from the client, securing the media path
    를 포함하는,Including,
    통신 장치의 동작 방법.Method of operation of a communication device.
  4. 제3항에 있어서,The method of claim 3,
    상기 매개 경로는,The intermediate route is,
    상기 매개키를 보유한 상기 클라이언트 및 상기 상대 클라이언트의 전용 방(dedicated room)을 포함하는,A dedicated room of the client holding the median key and the counterpart client;
    통신 장치의 동작 방법.Method of operation of a communication device.
  5. 제3항에 있어서,The method of claim 3,
    상기 데이터를 상기 상대 클라이언트로 전송하는 단계는,The step of transmitting the data to the counterpart client,
    상기 변경된 네트워크 주소를 갖는 상기 상대 클라이언트로부터 상기 매개키를 포함하는 접속 요청을 수신하는 단계; 및Receiving a connection request including the intermediate key from the counterpart client having the changed network address; And
    상기 매개키를 기초로 상기 접속 요청에 따른 접속을 허용하는 단계Allowing access according to the access request based on the intermediate key
    를 포함하는,Including,
    통신 장치의 동작 방법.Method of operation of a communication device.
  6. 제1항에 있어서,The method of claim 1,
    상기 매개키는,The intermediate key is
    임의값에 대응하거나 상기 클라이언트 및 상기 상대 클라이언트의 고유 정보를 기초로 생성되는,Corresponding to an arbitrary value or generated based on unique information of the client and the counterpart client,
    통신 장치의 동작 방법.Method of operation of a communication device.
  7. 제1항에 있어서,The method of claim 1,
    상기 클라이언트는 상기 상대 클라이언트가 상기 통신 장치로부터 수신한 데이터에 대한 확인 응답을 수신하고, 상기 상대 클라이언트의 변경된 네트워크 주소로 이후 데이터를 전송하는,The client receives an acknowledgment for the data received by the counterpart client from the communication device, and subsequently transmits the data to the changed network address of the counterpart client.
    통신 장치의 동작 방법.Method of operation of a communication device.
  8. 서버의 동작 방법에 있어서,In the operation method of the server,
    클라이언트의 P2P 통신 요청을 수신하고, 상기 P2P 통신 요청을 상대 클라이언트로 전송하는 단계;Receiving a P2P communication request from a client and transmitting the P2P communication request to a counterpart client;
    상기 상대 클라이언트가 상기 서버에 접속하는 경우, 매개키를 생성하고, 상기 매개키를 상기 상대 클라이언트 및 상기 클라이언트로 전송하는 단계;When the counterpart client accesses the server, generating an intermediate key and transmitting the intermediate key to the counterpart client and the client;
    상기 클라이언트로부터 상기 매개키를 수신하여 상기 매개키에 대응하는 매개 경로매개 경로를 확보하는 단계;Receiving the intermediate key from the client to secure an intermediate path-mediated path corresponding to the intermediate key;
    상기 상대 클라이언트의 네트워크 주소가 변경되어, 상기 상대 클라이언트로 전송한 데이터에 대한 확인 응답을 수신하지 못한 상기 클라이언트로부터, 상기 매개 경로를 통해 상기 데이터를 수신하는 단계; 및Receiving the data through the intermediary path from the client whose network address of the counterpart client has been changed and has not received an acknowledgment for the data sent to the counterpart client; And
    상기 상대 클라이언트가 상기 매개키를 이용하여 재접속하는 경우, 상기 데이터를 상기 상대 클라이언트로 전송하는 단계Transmitting the data to the counterpart client when the counterpart client reconnects using the intermediate key;
    를 포함하는,Including,
    서버의 동작 방법.How the server works.
  9. 제8항에 있어서,The method of claim 8,
    상기 매개 경로는,The intermediate route is,
    상기 매개키를 보유한 상기 클라이언트 및 상기 상대 클라이언트의 전용 방(dedicated room)을 포함하는,A dedicated room of the client holding the median key and the counterpart client;
    서버의 동작 방법.How the server works.
  10. 제8항에 있어서,The method of claim 8,
    상기 데이터를 상기 상대 클라이언트로 전송하는 단계는,The step of transmitting the data to the counterpart client,
    상기 변경된 네트워크 주소를 갖는 상기 상대 클라이언트로부터 상기 매개키를 포함하는 재접속 요청을 수신하는 단계; 및Receiving a reconnection request including the intermediate key from the counterpart client having the changed network address; And
    상기 매개키를 기초로 상기 재접속 요청에 따른 접속을 허용하는 단계Allowing access according to the reconnection request based on the intermediate key
    를 포함하는,Including,
    서버의 동작 방법.How the server works.
  11. 제8항에 있어서,The method of claim 8,
    상기 상대 클라이언트의 상기 네트워크 주소가 변경된 경우, 상기 상대 클라이언트로부터 주소 변경 통지를 수신하는 단계; 및Receiving an address change notification from the counterpart client when the network address of the counterpart client changes; And
    상기 네트워크 주소의 변경을 상기 클라이언트에게 알리는 단계Notifying the client of the change of the network address
    를 더 포함하는,Further comprising,
    서버의 동작 방법.How the server works.
  12. 제8항에 있어서,The method of claim 8,
    상기 매개키는,The intermediate key is
    임의값에 대응하거나 상기 클라이언트 및 상기 상대 클라이언트의 고유 정보를 기초로 생성되는,Corresponding to an arbitrary value or generated based on unique information of the client and the counterpart client,
    서버의 동작 방법.How the server works.
  13. 제8항에 있어서,The method of claim 8,
    상기 클라이언트는 상기 상대 클라이언트가 수신한 데이터에 대한 확인 응답을 수신하고, 상기 상대 클라이언트의 변경된 네트워크 주소로 이후 데이터를 전송하는, The client receives an acknowledgment for the data received by the counterpart client, and subsequently transmits data to the changed network address of the counterpart client.
    서버의 동작 방법.How the server works.
  14. 제8항에 있어서,The method of claim 8,
    상기 클라이언트의 P2P 통신 요청을 수신하는 경우, 상기 클라이언트의 세션 식별자를 상기 클라이언트에 할당하는 단계Assigning a session identifier of the client to the client when receiving a P2P communication request from the client
    를 더 포함하는,Further comprising,
    서버의 동작 방법.How the server works.
  15. 제8항에 있어서,The method of claim 8,
    상기 P2P 통신 요청의 수신 이전에 접속한 상기 클라이언트에게 무작위로 생성된 질문을 전송하는 단계;Sending a randomly generated question to the client that connected before receiving the P2P communication request;
    상기 클라이언트로부터 답을 수신하는 단계; 및Receiving an answer from the client; And
    상기 답이 상기 질문에 대응하는지 확인하는 단계Confirming that the answer corresponds to the question
    를 더 포함하는,Further comprising,
    서버의 동작 방법.How the server works.
  16. 제15항에 있어서,The method of claim 15,
    상기 질문을 전송하는 단계는,Sending the question,
    상기 클라이언트로부터 수신된 식별 정보 및 상기 클라이언트의 접속 시간 정보를 암호화하여 생성된 제1 암호 정보를 상기 질문으로 전송하는 단계Transmitting the first cipher information generated by encrypting the identification information received from the client and the access time information of the client, to the question.
    를 포함하고,Including,
    상기 답을 수신하는 단계는,Receiving the answer,
    상기 제1 암호 정보를 암호화하여 생성된 제2 암호 정보를 상기 답으로 수신하는 단계Receiving, as the answer, second cryptographic information generated by encrypting the first cryptographic information.
    를 포함하고,Including,
    상기 답이 상기 질문에 대응하는지 확인하는 단계는,Checking whether the answer corresponds to the question,
    상기 제2 암호 정보를 복호화하여 추출된 추출 정보가 상기 식별 정보 및 상기 접속 시간 정보에 대응하는지 확인하는 단계Verifying whether the extracted extracted information corresponding to the identification information and the access time information is decrypted by decrypting the second cryptographic information;
    를 포함하는,Including,
    서버의 동작 방법.How the server works.
  17. 클라이언트의 동작 방법에 있어서,In the operation method of the client,
    P2P 통신 요청을 서버로 전송하는 단계;Sending a P2P communication request to a server;
    상기 클라이언트와 상대 클라이언트의 통신을 매개하는 통신 매개 장치에 의해 생성된 매개키 및 상기 상대 클라이언트의 네트워크 주소를 상기 서버로부터 수신하는 단계;Receiving, from the server, a media key generated by a communication mediator for mediating communication between the client and the counterpart client and a network address of the counterpart client;
    상기 매개키를 이용하여 상기 통신 매개 장치와 연결하는 단계;Connecting with the communication media device using the media key;
    상기 네트워크 주소를 이용하여 상기 상대 클라이언트에게 데이터를 전송하는 단계;Transmitting data to the counterpart client using the network address;
    상기 네트워크 주소가 변경되어, 상기 상대 클라이언트에게 전송한 데이터에 대한 확인 응답을 수신하지 못한 경우, 상기 데이터를 상기 통신 매개 장치로 전송하는 단계Transmitting the data to the communication medium device when the network address is changed and the acknowledgment of the data transmitted to the counterpart client is not received.
    를 포함하고,Including,
    상기 상대 클라이언트는, 상기 매개키를 이용하여 상기 통신 매개 장치에 접속하고, 상기 통신 매개 장치로부터 상기 데이터를 수신하는,The counterpart client connects to the communication media device using the media key and receives the data from the communication media device.
    클라이언트의 동작 방법.How the client works.
  18. 제17항에 있어서,The method of claim 17,
    상기 통신 매개 장치와 연결되는 경우, 상기 매개키에 대응하는 매개 경로가 확보되는,When connected with the communication medium device, a medium path corresponding to the medium key is secured,
    클라이언트의 동작 방법.How the client works.
  19. 제18항에 있어서,The method of claim 18,
    상기 매개 경로는,The intermediate route is,
    상기 매개키를 보유한 상기 클라이언트 및 상기 상대 클라이언트의 전용 방(dedicated room)을 포함하는,A dedicated room of the client holding the median key and the counterpart client;
    클라이언트의 동작 방법.How the client works.
  20. 제17항에 있어서,The method of claim 17,
    상기 서버로부터 상기 네트워크 주소가 변경되었다는 통지를 수신하는 단계Receiving a notification from the server that the network address has changed
    를 더 포함하는,Further comprising,
    클라이언트의 동작 방법.How the client works.
  21. 제17항에 있어서,The method of claim 17,
    상기 상대 클라이언트가 상기 통신 매개 장치로부터 수신한 데이터에 대한 확인 응답을 상기 상대 클라이언트로부터 수신하는 단계Receiving, by the counterpart client, an acknowledgment for data received from the communication medium device from the counterpart client;
    를 더 포함하는,Further comprising,
    클라이언트의 동작 방법.How the client works.
  22. 제17항에 있어서,The method of claim 17,
    상기 P2P 통신 경로를 생성하는 단계는,Generating the P2P communication path,
    상기 상대 클라이언트에게 속도 테스트 요청을 전송하는 단계;Sending a rate test request to the counterpart client;
    상기 상대 클라이언트로부터 상기 속도 테스트 요청에 대한 테스트 응답을 수신하는 단계; 및Receiving a test response to the speed test request from the counterpart client; And
    상기 테스트 응답을 기초로 상기 상대 클라이언트의 응답 시간을 확인하는 단계Confirming a response time of the counterpart client based on the test response
    를 포함하는,Including,
    클라이언트의 동작 방법.How the client works.
  23. 제22항에 있어서,The method of claim 22,
    상기 데이터를 전송하는 단계는,The step of transmitting the data,
    상기 확인 응답을 상기 응답 시간 이내에 수신하지 못한 경우, 상기 데이터를 상기 통신 매개 장치로 전송하는 단계If the acknowledgment is not received within the response time, transmitting the data to the communication medium device;
    를 포함하는,Including,
    클라이언트의 동작 방법.How the client works.
  24. 제17항에 있어서,The method of claim 17,
    상기 P2P 통신 요청의 전송 이전에 상기 서버로 접속하여 상기 서버로부터 무작위로 생성된 질문을 수신하는 단계; 및Accessing the server and receiving a randomly generated question from the server prior to sending the P2P communication request; And
    상기 서버로 답을 전송하는 단계Sending an answer to the server
    를 더 포함하는,Further comprising,
    클라이언트의 동작 방법.How the client works.
  25. 제24항에 있어서,The method of claim 24,
    상기 질문을 수신하는 단계는,Receiving the question,
    상기 서버로 상기 클라이언트의 식별 정보를 전송하는 단계; 및Transmitting identification information of the client to the server; And
    상기 식별 정보 및 상기 클라이언트의 접속 시간 정보가 암호화되어 생성된 제1 암호 정보를 상기 질문으로 수신하는 단계Receiving the first encryption information generated by encrypting the identification information and the access time information of the client as the question
    를 포함하고,Including,
    상기 답을 전송하는 단계는,The step of transmitting the answer,
    상기 제1 암호 정보를 암호화하여 생성된 제2 암호 정보를 상기 답으로 전송하는 단계Transmitting second encryption information generated by encrypting the first encryption information as the answer.
    를 포함하는,Including,
    클라이언트의 동작 방법.How the client works.
  26. 클라이언트의 동작 방법에 있어서,In the operation method of the client,
    요청 클라이언트의 P2P 통신 요청을 서버로부터 수신한 경우, 통신 매개 장치에 접속하는 단계;If a P2P communication request of the requesting client is received from the server, accessing the communication medium device;
    상기 통신 매개 장치로부터 매개키를 수신하는 단계;Receiving an intermediate key from the communication intermediate device;
    상기 클라이언트의 네트워크 주소가 변경된 경우, 상기 매개키를 이용하여 상기 통신 매개 장치에 재접속하는 단계;Reconnecting to the communication media device using the media key when the network address of the client is changed;
    상기 통신 매개 장치 -상기 통신 매개 장치는, 상기 클라이언트로 전송된 데이터에 대한 확인 응답을 수신하지 못한 상기 요청 클라이언트로부터, 상기 데이터를 수신하는- 로부터 상기 데이터를 수신하는 단계; 및Receiving the data from the communication medium device, receiving the data from the requesting client that has not received an acknowledgment for the data sent to the client; And
    상기 요청 클라이언트에게 상기 데이터에 대한 확인 응답을 전송하는 단계Sending an acknowledgment for the data to the requesting client
    를 포함하는,Including,
    클라이언트의 동작 방법.How the client works.
  27. 클라이언트와 상대 클라이언트간의 P2P(Peer to Peer) 통신에 대응하는 매개키를 생성하고, 상기 매개키에 대응하는 매개 경로를 확보하는 컨트롤러; 및A controller for generating an intermediate key corresponding to peer-to-peer communication between the client and the counterpart client, and for securing an intermediate path corresponding to the intermediate key; And
    상기 매개키를 상기 상대 클라이언트로 전송하고, 상기 상대 클라이언트의 네트워크 주소가 변경되어, 상기 상대 클라이언트로 전송한 데이터에 대한 확인 응답을 수신하지 못한 상기 클라이언트로부터, 상기 매개 경로를 통해 상기 데이터를 수신하며, 상기 상대 클라이언트가 상기 매개키를 이용하여 접속하는 경우, 상기 데이터를 상기 상대 클라이언트로 전송하는 통신부The media key is transmitted to the counterpart client, the network address of the counterpart client is changed, and the data is received through the intermediary path from the client that has not received an acknowledgment for the data transmitted to the counterpart client. A communication unit for transmitting the data to the counterpart client when the counterpart client connects using the intermediate key;
    를 포함하는,Including,
    통신 장치.Communication device.
  28. 클라이언트에 있어서,For the client,
    P2P 통신 요청을 서버로 전송하고, 상기 클라이언트와 상대 클라이언트의 통신을 매개하는 통신 매개 장치에 의해 생성된 매개키 및 상기 상대 클라이언트의 네트워크 주소를 상기 서버로부터 수신하며, 상기 매개키를 이용하여 상기 통신 매개 장치와 연결하고, 상기 네트워크 주소를 이용하여 상기 상대 클라이언트에게 데이터를 전송하고, 상기 네트워크 주소가 변경되어, 상기 상대 클라이언트에게 전송한 데이터에 대한 확인 응답을 수신하지 못한 경우, 상기 데이터를 상기 통신 매개 장치로 전송하는 연결부; 및Sends a P2P communication request to a server, receives a media key generated by a communication mediator for mediating communication between the client and the counterpart client and a network address of the counterpart client from the server, and uses the intermediary key to communicate Connecting to an intermediate device, transmitting data to the counterpart client using the network address, and when the network address is changed to receive an acknowledgment for the data transmitted to the counterpart client, the data is transmitted to the counterpart client. A connection for transmitting to the intermediate device; And
    상기 연결부를 제어하는 프로세서Processor for controlling the connection
    를 포함하고,Including,
    상기 상대 클라이언트는, 상기 매개키를 이용하여 상기 통신 매개 장치에 접속하고, 상기 통신 매개 장치로부터 상기 데이터를 수신하는,The counterpart client connects to the communication media device using the media key and receives the data from the communication media device.
    클라이언트.Client.
  29. 클라이언트에 있어서,For the client,
    요청 클라이언트의 P2P 통신 요청을 서버로부터 수신한 경우, 통신 매개 장치에 접속하고, 상기 통신 매개 장치로부터 매개키를 수신하며, 상기 클라이언트의 네트워크 주소가 변경된 경우, 상기 매개키를 이용하여 상기 통신 매개 장치에 재접속하고, 상기 통신 매개 장치 -상기 통신 매개 장치는, 상기 클라이언트로 전송된 데이터에 대한 확인 응답을 수신하지 못한 상기 요청 클라이언트로부터, 상기 데이터를 수신하는- 로부터 상기 데이터를 수신하고, 상기 요청 클라이언트에게 상기 데이터에 대한 확인 응답을 전송하는 연결부; 및When receiving the P2P communication request of the requesting client from the server, access the communication medium device, receive the medium key from the communication medium device, if the network address of the client is changed, the communication medium device using the medium key Reconnecting to the communication medium device, the communication medium device receiving the data from the requesting client that has not received an acknowledgment for the data sent to the client and receiving the data; A connection unit transmitting an acknowledgment for the data to the user; And
    상기 연결부를 제어하는 프로세서Processor for controlling the connection
    를 포함하는,Including,
    클라이언트.Client.
  30. 상대 클라이언트와 P2P(Peer To Peer) 통신 경로를 설정하는 단계;Establishing a peer to peer communication path with a counterpart client;
    상기 상대 클라이언트에게 공유키를 전송하는 단계;Transmitting a shared key to the counterpart client;
    상기 P2P 통신 경로를 통해 상기 공유키로 암호화된 데이터를 수신하는 단계;Receiving data encrypted with the shared key through the P2P communication path;
    상기 암호화된 데이터를 상기 공유키를 이용하여 복호화하는 단계; 및Decrypting the encrypted data using the shared key; And
    상기 데이터를 복호화한 경우, 클라이언트의 데이터 사용량과 관련된 복호화 횟수 정보를 업데이트하는 단계If the data is decrypted, updating decryption number information related to data usage of the client;
    를 포함하는,Including,
    클라이언트의 동작 방법.How the client works.
  31. 제30항에 있어서,The method of claim 30,
    업데이트된 복호화 횟수 정보를 서버로 전송하는 단계: 및Transmitting the updated decryption number information to the server: And
    상기 서버로부터 상기 데이터 사용량에 대한 가이드(guide) 정보를 수신하는 단계Receiving guide information on the data usage from the server
    를 더 포함하는,Further comprising,
    클라이언트의 동작 방법.How the client works.
  32. 제31항에 있어서,The method of claim 31, wherein
    상기 가이드 정보는,The guide information,
    상기 데이터 사용량이 미리 정해진 사용량을 초과하였는지 여부를 나타내는 초과 정보;Excess information indicating whether the data usage amount exceeds a predetermined usage amount;
    상기 미리 정해진 사용량 중 상기 데이터 사용량을 제외한 가용(available) 데이터 용량을 나타내는 잔량(remaining) 정보; 및Remaining information indicating available data capacity excluding the data usage amount among the predetermined usage amounts; And
    상기 클라이언트의 P2P 통신에 대한 대역폭 및 품질 중 적어도 하나에 대한 제한이 있는지 여부를 나타내는 제한 정보Restriction information indicating whether there is a restriction on at least one of bandwidth and quality for P2P communication of the client
    중 적어도 하나를 포함하는,Including at least one of,
    클라이언트의 동작 방법.How the client works.
  33. 제30항에 있어서,The method of claim 30,
    상기 클라이언트에 할당된 데이터 쿼터(quota)를 공유하는 공유 클라이언트의 데이터 사용량과 관련된 정보를 수신하는 단계; 및Receiving information related to data usage of a shared client sharing a data quota assigned to the client; And
    수신 정보를 기초로, 상기 복호화 횟수 정보를 업데이트하는 단계Updating the decryption number information based on the received information.
    를 더 포함하는,Further comprising,
    클라이언트의 동작 방법.How the client works.
  34. 제33항에 있어서,The method of claim 33, wherein
    상기 수신 정보는,The received information is,
    상기 공유 클라이언트가 P2P 통신을 통해 수신한 암호화된 데이터를 복호화할 때마다 업데이트한 복호화 횟수 정보Updated decryption number information each time the shared client decrypts the encrypted data received through the P2P communication
    를 포함하는,Including,
    클라이언트의 동작 방법.How the client works.
  35. 제30항에 있어서,The method of claim 30,
    상기 클라이언트의 네트워크 주소가 변경되는 경우, 상기 클라이언트의 네트워크 주소가 변경됨을 나타내는 변경 정보를 서버로 전송하는 단계;If the network address of the client changes, transmitting change information indicating that the network address of the client changes to a server;
    상기 P2P 통신 경로에 대응하는 매개 경로를 확보한 통신 매개 장치에 접속하는 단계; 및Accessing a communication mediation device that secures an intermediate path corresponding to the P2P communication path; And
    상기 통신 매개 장치로부터 상기 상대 클라이언트의 상기 공유키로 암호화된 다른 데이터를 수신하는 단계Receiving other data encrypted with the shared key of the counterpart client from the communication medium device;
    를 더 포함하고,More,
    상기 상대 클라이언트는,The counterpart client,
    상기 클라이언트로 전송한 상기 다른 데이터에 대한 확인 응답을 상기 클라이언트로부터 수신하지 못한 경우, 상기 다른 데이터를 상기 통신 매개 장치로 전송하는,If the acknowledgment for the other data sent to the client is not received from the client, to transmit the other data to the communication medium device,
    클라이언트의 동작 방법.How the client works.
  36. 제35항에 있어서,36. The method of claim 35 wherein
    상기 다른 데이터를 상기 공유키로 복호화하는 경우, 상기 복호화 횟수 정보를 업데이트하는 단계Updating the decryption number information when the other data is decrypted with the shared key.
    를 더 포함하는,Further comprising,
    클라이언트의 동작 방법.How the client works.
  37. 제30항에 있어서,The method of claim 30,
    상기 P2P 통신 경로를 설정하는 단계는,Setting the P2P communication path,
    P2P 통신 요청을 서버로 전송하는 단계;Sending a P2P communication request to a server;
    상기 클라이언트와 상기 상대 클라이언트의 통신을 매개하는 통신 매개 장치에 의해 생성된 매개키 및 상기 상대 클라이언트의 네트워크 주소를 상기 서버로부터 수신하는 단계;Receiving, from the server, a media key generated by a communication mediator for mediating communication between the client and the counterpart client and a network address of the counterpart client;
    상기 매개키를 이용하여 상기 통신 매개 장치에 접속하는 단계; 및Accessing the communication media device using the media key; And
    상기 통신 매개 장치에 접속한 경우, 상기 네트워크 주소를 기초로 상기 상대 클라이언트와 상기 P2P 통신 경로를 설정하는 단계Establishing a P2P communication path with the counterpart client based on the network address when connected to the communication medium device;
    를 포함하는,Including,
    클라이언트의 동작 방법.How the client works.
  38. 제30항에 있어서,The method of claim 30,
    상기 P2P 통신 경로를 설정하는 단계는,Setting the P2P communication path,
    상기 상대 클라이언트의 P2P 통신 요청을 서버로부터 수신하는 단계;Receiving a P2P communication request of the counterpart client from a server;
    상기 P2P 통신 요청을 수신하는 경우, 상기 클라이언트와 상기 상대 클라이언트의 통신을 매개하는 통신 매개 장치에 접속하는 단계;When receiving the P2P communication request, accessing a communication mediation device that mediates communication between the client and the counterpart client;
    상기 통신 매개 장치로부터 매개키를 수신하고, 상기 매개키를 상기 서버로 전송하는 단계;Receiving a media key from the communication media device and transmitting the media key to the server;
    상기 상대 클라이언트로부터 테스트 데이터를 수신하고, 상기 P2P 통신 경로를 설정하는 단계Receiving test data from the counterpart client and establishing the P2P communication path
    를 포함하고,Including,
    상기 상대 클라이언트는,The counterpart client,
    상기 서버로부터 상기 클라이언트의 네트워크 주소 및 상기 매개키를 수신하고, 상기 매개키를 이용하여 상기 통신 매개 장치에 접속하며, 상기 네트워크 주소를 이용하여 상기 클라이언트에게 상기 테스트 데이터를 전송하는,Receiving the network address and the intermediate key of the client from the server, accessing the communication intermediate apparatus using the intermediate key, and transmitting the test data to the client using the network address,
    클라이언트의 동작 방법.How the client works.
  39. 컴퓨팅 하드웨어가 제30항의 방법을 실행하도록 하는 인스트럭션들을 저장하는 컴퓨터 판독 가능한 저장 매체.A computer readable storage medium storing instructions for causing the computing hardware to execute the method of claim 30.
  40. 상대 클라이언트와 P2P(Peer To Peer) 통신 경로를 설정하고, 상기 상대 클라이언트에게 공유키를 전송하며, 상기 P2P 통신 경로를 통해 상기 공유키로 암호화된 데이터를 수신하는 통신 인터페이스; 및A communication interface for establishing a peer-to-peer communication path with a counterpart client, transmitting a shared key to the counterpart client, and receiving data encrypted with the shared key through the P2P communication path; And
    상기 암호화된 데이터를 상기 공유키를 이용하여 복호화하고, 상기 데이터를 복호화한 경우, 클라이언트의 데이터 사용량과 관련된 복호화 횟수 정보를 업데이트하는 컨트롤러A controller that decrypts the encrypted data using the shared key and updates decryption number information related to data usage of a client when the data is decrypted
    를 포함하는,Including,
    클라이언트.Client.
  41. 제40항에 있어서,The method of claim 40,
    상기 통신 인터페이스는,The communication interface,
    상기 복호화 횟수 정보를 서버로 전송하고, 상기 서버로부터 상기 데이터 사용량에 대한 가이드(guide) 정보를 수신하는,Transmitting the decryption number information to a server and receiving guide information on the data usage amount from the server,
    클라이언트.Client.
  42. 제41항에 있어서,The method of claim 41, wherein
    상기 가이드 정보는,The guide information,
    상기 데이터 사용량이 미리 정해진 사용량을 초과하였는지 여부를 나타내는 초과 정보;Excess information indicating whether the data usage amount exceeds a predetermined usage amount;
    상기 미리 정해진 사용량 중 상기 데이터 사용량을 제외한 가용(available) 데이터 용량을 나타내는 잔량(remaining) 정보; 및Remaining information indicating available data capacity excluding the data usage amount among the predetermined usage amounts; And
    상기 클라이언트의 P2P 통신에 대한 대역폭 및 품질 중 적어도 하나에 대한 제한이 있는지 여부를 나타내는 제한 정보Restriction information indicating whether there is a restriction on at least one of bandwidth and quality for P2P communication of the client
    중 적어도 하나를 포함하는,Including at least one of,
    클라이언트.Client.
  43. 제40항에 있어서,The method of claim 40,
    상기 통신 인터페이스는,The communication interface,
    상기 클라이언트에 할당된 데이터 쿼터(quota)를 공유하는 공유 클라이언트의 데이터 사용량과 관련된 정보를 수신하고,Receive information related to data usage of a shared client sharing a data quota assigned to the client,
    상기 컨트롤러는,The controller,
    수신 정보를 기초로, 상기 복호화 횟수 정보를 업데이트하는,Updating the decoding count information based on the received information;
    클라이언트.Client.
  44. 제43항에 있어서,The method of claim 43,
    상기 수신 정보는,The received information is,
    상기 공유 클라이언트가 P2P 통신을 통해 수신한 암호화된 데이터를 복호화할 때마다 업데이트한 복호화 횟수 정보Updated decryption number information each time the shared client decrypts the encrypted data received through the P2P communication
    를 포함하는,Including,
    클라이언트.Client.
  45. 제40항에 있어서,The method of claim 40,
    상기 통신 인터페이스는,The communication interface,
    상기 클라이언트의 네트워크 주소가 변경되는 경우, 상기 클라이언트의 네트워크 주소가 변경됨을 나타내는 변경 정보를 서버로 전송하고, 상기 P2P 통신 경로에 대응하는 매개 경로를 확보한 통신 매개 장치에 접속하며, 상기 통신 매개 장치로부터 상기 상대 클라이언트의 상기 공유키로 암호화된 다른 데이터를 수신하고,When the network address of the client is changed, the server transmits change information indicating that the network address of the client is changed to the server, accesses a communication mediator that secures an intermediate path corresponding to the P2P communication path, and the communication mediator Receiving other data encrypted with the shared key of the counterpart client from
    상기 상대 클라이언트는,The counterpart client,
    상기 클라이언트로 전송한 상기 다른 데이터에 대한 확인 응답을 상기 클라이언트로부터 수신하지 못한 경우, 상기 다른 데이터를 상기 통신 매개 장치로 전송하는,If the acknowledgment for the other data sent to the client is not received from the client, to transmit the other data to the communication medium device,
    클라이언트.Client.
  46. 제45항에 있어서,The method of claim 45,
    상기 컨트롤러는,The controller,
    상기 다른 데이터를 상기 공유키로 복호화하는 경우, 상기 복호화 횟수 정보를 업데이트하는,Updating the decryption number information when the other data is decrypted with the shared key;
    클라이언트.Client.
  47. 제40항에 있어서,The method of claim 40,
    상기 통신 인터페이스는,The communication interface,
    P2P 통신 요청을 서버로 전송하고, 상기 클라이언트와 상기 상대 클라이언트의 통신을 매개하는 통신 매개 장치에 의해 생성된 매개키 및 상기 상대 클라이언트의 네트워크 주소를 상기 서버로부터 수신하며, 상기 매개키를 이용하여 상기 통신 매개 장치에 접속하고, 상기 통신 매개 장치에 접속한 경우, 상기 네트워크 주소를 기초로 상기 상대 클라이언트와 상기 P2P 통신 경로를 설정하는,Sends a P2P communication request to a server, receives a media key generated by a communication mediator for mediating communication between the client and the counterpart client, and a network address of the counterpart client, using the media key Connecting to a communication medium device and, when connected to the communication medium device, establishing a P2P communication path with the counterpart client based on the network address;
    클라이언트.Client.
  48. 제40항에 있어서,The method of claim 40,
    상기 통신 인터페이스는, The communication interface,
    상기 상대 클라이언트의 P2P 통신 요청을 서버로부터 수신하고, 상기 P2P 통신 요청을 수신하는 경우, 상기 클라이언트와 상기 상대 클라이언트의 통신을 매개하는 통신 매개 장치에 접속하며, 상기 통신 매개 장치로부터 매개키를 수신하고, 상기 매개키를 상기 서버로 전송하고, 상기 상대 클라이언트로부터 테스트 데이터를 수신하고, 상기 P2P 통신 경로를 설정하며,Receiving a P2P communication request of the counterpart client from a server, and when receiving the P2P communication request, accesses a communication mediator that mediates communication between the client and the counterpart client, and receives an intermediate key from the communication mediator. Transmit the intermediate key to the server, receive test data from the counterpart client, establish the P2P communication path,
    상기 상대 클라이언트는,The counterpart client,
    상기 서버로부터 상기 클라이언트의 네트워크 주소 및 상기 매개키를 수신하고, 상기 매개키를 이용하여 상기 통신 매개 장치에 접속하며, 상기 네트워크 주소를 이용하여 상기 클라이언트에게 상기 테스트 데이터를 전송하는,Receiving the network address and the intermediate key of the client from the server, accessing the communication intermediate apparatus using the intermediate key, and transmitting the test data to the client using the network address,
    클라이언트.Client.
PCT/KR2016/007027 2015-06-30 2016-06-30 Routing method and network entity performing same WO2017003215A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201680050078.1A CN108141721A (en) 2015-06-30 2016-06-30 Method for routing and the network entity for performing this
US15/740,811 US10681755B2 (en) 2015-06-30 2016-06-30 Routing method and network entity performing same

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
KR10-2015-0092951 2015-06-30
KR20150092951 2015-06-30
KR10-2015-0098354 2015-07-10
KR20150098354 2015-07-10
KR10-2016-0018413 2016-02-17
KR1020160018413A KR101785385B1 (en) 2015-07-10 2016-02-17 Method of managing network route and network entity enabling the method
KR10-2016-0079956 2016-06-27
KR1020160079956A KR101888952B1 (en) 2015-06-30 2016-06-27 Client and operation method of client

Publications (2)

Publication Number Publication Date
WO2017003215A1 true WO2017003215A1 (en) 2017-01-05
WO2017003215A8 WO2017003215A8 (en) 2018-02-15

Family

ID=57608587

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2016/007027 WO2017003215A1 (en) 2015-06-30 2016-06-30 Routing method and network entity performing same

Country Status (1)

Country Link
WO (1) WO2017003215A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030008952A (en) * 2001-07-21 2003-01-29 주식회사 엠아이스트림 Communication system of tree type structure and method of the same
US20090225986A1 (en) * 2008-03-06 2009-09-10 International Business Machines Corporation Non-Interactive Hierarchical Identity-Based Key-Agreement
WO2013048038A2 (en) * 2011-09-26 2013-04-04 삼성에스디에스 주식회사 System and method for transmitting and receiving peer-to-peer messages using a media key, and managing the media key
KR20150047554A (en) * 2012-09-06 2015-05-04 코닌클리즈케 케이피엔 엔.브이. Establishing a device-to-device communication session
WO2015088296A1 (en) * 2013-12-15 2015-06-18 삼성전자 주식회사 Secure communication method and apparatus and multimedia device employing same

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030008952A (en) * 2001-07-21 2003-01-29 주식회사 엠아이스트림 Communication system of tree type structure and method of the same
US20090225986A1 (en) * 2008-03-06 2009-09-10 International Business Machines Corporation Non-Interactive Hierarchical Identity-Based Key-Agreement
WO2013048038A2 (en) * 2011-09-26 2013-04-04 삼성에스디에스 주식회사 System and method for transmitting and receiving peer-to-peer messages using a media key, and managing the media key
KR20150047554A (en) * 2012-09-06 2015-05-04 코닌클리즈케 케이피엔 엔.브이. Establishing a device-to-device communication session
WO2015088296A1 (en) * 2013-12-15 2015-06-18 삼성전자 주식회사 Secure communication method and apparatus and multimedia device employing same

Also Published As

Publication number Publication date
WO2017003215A8 (en) 2018-02-15

Similar Documents

Publication Publication Date Title
WO2020190016A1 (en) Method and device for providing authentication in network-based media processing (nbmp) system
WO2016024695A1 (en) Method and apparatus for profile download of group devices
WO2018008943A1 (en) Method and device for managing security according to service in wireless communication system
WO2016003200A1 (en) Method and apparatus for installing profile for euicc
WO2013025085A2 (en) Apparatus and method for supporting family cloud in cloud computing system
WO2015016627A1 (en) Method and device for connecting single ap device among multiple ap devices on same network to terminal
WO2020235782A1 (en) Method for authenticating personal identify in distributed environment
WO2014107045A1 (en) Method of sharing contents by using personal cloud device, and electronic device and personal cloud system using the same
WO2012141556A2 (en) Machine-to-machine node erase procedure
WO2020197221A1 (en) Communication method and communication device
WO2021040205A1 (en) Electronic device and method for transferring control command to target device by electronic device
WO2016039576A2 (en) Device and method for accessing multiple networks in wireless communication system
WO2016195199A1 (en) Method for processing request through polling channel in wireless communication system and apparatus therefor
WO2015157942A1 (en) Device and method for accessing wireless network
WO2017091021A1 (en) Smart home service server and control method therefor
WO2011155734A2 (en) Method and communication device for communicating with other devices
WO2017007132A1 (en) Method, apparatus, and system for monitoring encrypted communication session
WO2016013846A1 (en) Method for processing request message in wireless communication system and apparatus therefor
WO2015194836A1 (en) Key sharing method and device
WO2023177238A1 (en) Controller-based network connection control system, and method thereof
WO2014171727A1 (en) Apparatus and method for generating key hierarchy in wireless network
WO2018110775A1 (en) Electronic device authentication managing apparatus
WO2011037318A2 (en) Method for using rights to contents
WO2022245109A1 (en) Method and device for performing uwb secure ranging
WO2019151792A1 (en) Electronic device in which profile is installed and operating method for electronic device

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: 16818248

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15740811

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16818248

Country of ref document: EP

Kind code of ref document: A1