KR101730404B1 - Method of managing network route and network entity enabling the method - Google Patents

Method of managing network route and network entity enabling the method Download PDF

Info

Publication number
KR101730404B1
KR101730404B1 KR1020160138226A KR20160138226A KR101730404B1 KR 101730404 B1 KR101730404 B1 KR 101730404B1 KR 1020160138226 A KR1020160138226 A KR 1020160138226A KR 20160138226 A KR20160138226 A KR 20160138226A KR 101730404 B1 KR101730404 B1 KR 101730404B1
Authority
KR
South Korea
Prior art keywords
client
communication
data
server
intermediary
Prior art date
Application number
KR1020160138226A
Other languages
Korean (ko)
Other versions
KR20170007215A (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
Application filed by 주식회사 투아이피 filed Critical 주식회사 투아이피
Publication of KR20170007215A publication Critical patent/KR20170007215A/en
Application granted granted Critical
Publication of KR101730404B1 publication Critical patent/KR101730404B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/70Routing based on monitoring results
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/0205Traffic management, e.g. flow control or congestion control at the air interface
    • 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
    • H04W76/023

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

통신 장치의 동작 방법이 개시된다. 일 실시예는 클라이언트와 상대 클라이언트간의 P2P(Peer to Peer) 통신에 대응하는 매개키를 생성하고, 상기 매개키를 상기 상대 클라이언트로 전송하며, 상기 매개키에 대응하는 매개 경로를 확보하고, 상기 상대 클라이언트의 네트워크 주소가 변경되어, 상기 상대 클라이언트로 전송한 데이터에 대한 확인 응답을 수신하지 못한 상기 클라이언트로부터, 상기 매개 경로를 통해 상기 데이터를 수신하고, 상기 상대 클라이언트가 상기 매개키를 이용하여 상기 변경된 네트워크 주소로 접속하는 경우, 상기 데이터를 상기 상대 클라이언트로 전송하는 단계를 포함한다.A method of operating a communication device is disclosed. One embodiment generates an intermediate key corresponding to peer-to-peer (P2P) communication between a client and a counterpart client, transmits the intermediate key to the counterpart client, secures an intermediate path corresponding to the intermediate key, Receiving the data through the intermediary path from the client that has not received an acknowledgment of the data transmitted to the counterpart client by changing the network address of the client, And transmitting the data to the correspondent client when accessing the network address.

Description

네트워크 경로를 관리하는 방법 및 이를 수행하는 네트워크 엔티티{METHOD OF MANAGING NETWORK ROUTE AND NETWORK ENTITY ENABLING THE METHOD}METHOD OF MANAGING NETWORK ROUTE AND NETWORK ENTITY ENABLING THE METHOD [0002]

아래 실시예들은 네트워크 경로를 관리하는 방법 및 이를 수행하는 네트워크 엔티티에 관한 것이다.The following embodiments are directed to a method for managing a network path and a network entity for performing the method.

최근에, 음성 통화 기반의 레거시 통신 요금 방식이 데이터 기반의 방식으로 전환되고 있다. 통신 시장은 과거 아날로그 방식의 1G(generation)에서 디지털 방식의 2G(디지털)로, 2G에서 데이터 통신을 위한 3G로, 3G보다 데이터 전송 대역폭이 확장된 4G로 진화되어 왔다.Recently, a legacy communication charge scheme based on voice call is being converted into a data based scheme. The telecommunication market has evolved from the analog 1G (generation) to the digital 2G (digital), from 2G to 3G for data communication, and to 4G, which has expanded data transmission bandwidth over 3G.

최근 이동통신 기술은 5G를 타겟으로 한다. 5G로의 발전을 위해 통신 대역폭의 확장뿐 아니라 데이터 전송 속도의 향상이 필요하다. 데이터 전송 속도의 향상을 위해 다양한 통신 방식이 응용될 수 있다. The latest mobile communication technology targets 5G. In order to develop into 5G, it is necessary not only to expand the communication bandwidth but also to improve the data transmission speed. Various communication methods can be applied to improve data transmission speed.

다양한 통신 방식 중 P2P(Peer to Peer) 또는 릴레이를 이용한 방식을 이용하는 경우, 음성 통화를 지원할 수 있는 정도의 QoS(Quality of Service)를 보장하기 위한 네트워크 라우팅 기법이 요구된다.
관련 선행기술로 한국공개공보 제10-2008-0066502호(발명의 명칭: P2P 오버레이 네트워크 상에서 무선 노드의 기능을 처리하는 프록싱 처리 방법 및 서버, 출원인: 삼성전자)가 있다.
When using peer to peer (P2P) or relay among various communication methods, a network routing technique is required to guarantee quality of service (QoS) to support voice call.
Korean Patent Publication No. 10-2008-0066502 entitled " proxying processing method and server for processing the function of a wireless node on a P2P overlay network ", Applicant: Samsung Electronics).

일 측에 따른 통신 장치의 동작 방법은 클라이언트와 상대 클라이언트간의 P2P(Peer to Peer) 통신에 대응하는 매개키를 생성하는 단계; 상기 매개키를 상기 상대 클라이언트로 전송하는 단계; 상기 매개키에 대응하는 매개 경로를 확보하는 단계; 상기 상대 클라이언트의 네트워크 주소가 변경되어, 상기 상대 클라이언트로 전송한 데이터에 대한 확인 응답을 수신하지 못한 상기 클라이언트로부터, 상기 매개 경로를 통해 상기 데이터를 수신하는 단계; 및 상기 상대 클라이언트가 상기 매개키를 이용하여 접속하는 경우, 상기 데이터를 상기 상대 클라이언트로 전송하는 단계를 포함한다.A method of operating a communication device according to one side comprises: generating an intermediate key corresponding to peer-to-peer communication between a client and a counterpart client; Transmitting the intermediary key to the counterpart client; Securing an intermediate path corresponding to the intermediate key; Receiving the data through the intermediary path from the client which has not received an acknowledgment of data transmitted to the counterpart client due to a change of the network address of the counterpart client; And transmitting the data to the counterpart client when the counterpart client makes a connection using the intermediary key.

상기 매개키를 생성하는 단계는, 상기 클라이언트의 P2P 통신 요청을 서버로부터 전달받은 상기 상대 클라이언트와 연결되는 경우, 상기 매개키를 생성하는 단계를 포함할 수 있다.The generating of the intermediate key may include generating the intermediate key when the P2P communication request of the client is connected to the counterpart client received from the server.

상기 서버는, 상기 상대 클라이언트로부터 상기 매개키를 수신하고, 상기 매개키를 상기 클라이언트로 전송할 수 있고, 상기 매개 경로를 확보하는 단계는, 상기 클라이언트로부터 상기 매개키를 수신한 경우, 상기 매개 경로를 확보하는 단계를 포함할 수 있다.Wherein the server receives the intermediary key from the counterpart client and can transmit the intermediary key to the client, and the step of securing the intermediary path comprises: when receiving the intermediary key from the client, And the like.

상기 매개 경로는, 상기 매개키를 보유한 상기 클라이언트 및 상기 상대 클라이언트의 전용 방(dedicated room)을 포함할 수 있다.The intermediary path may include a dedicated room of the client having the intermediary key and the counterpart client.

상기 데이터를 상기 상대 클라이언트로 전송하는 단계는, 상기 변경된 네트워크 주소를 갖는 상기 상대 클라이언트로부터 상기 매개키를 포함하는 접속 요청을 수신하는 단계; 및 상기 매개키를 기초로 상기 접속 요청에 따른 접속을 허용하는 단계를 포함할 수 있다.Wherein the transmitting the data to the counterpart client comprises: receiving a connection request including the intermediary key from the counterpart client having the changed network address; And allowing the connection according to the connection request based on the intermediate key.

상기 매개키는, 임의값에 대응하거나 상기 클라이언트 및 상기 상대 클라이언트의 고유 정보를 기초로 생성될 수 있다.The intermediate key may be generated based on a unique value of the client or the relative client, corresponding to a certain value.

상기 클라이언트는 상기 상대 클라이언트가 상기 통신 장치로부터 수신한 데이터에 대한 확인 응답을 수신할 수 있고, 상기 상대 클라이언트의 변경된 네트워크 주소로 이후 데이터를 전송할 수 있다.The client may receive an acknowledgment of the data received from the correspondent client from the communication device and may transmit subsequent data to the changed network address of the correspondent client.

일 측에 따른 서버의 동작 방법은 클라이언트의 P2P 통신 요청을 수신하고, 상기 P2P 통신 요청을 상대 클라이언트로 전송하는 단계; 상기 상대 클라이언트가 상기 서버에 접속하는 경우, 매개키를 생성하고, 상기 매개키를 상기 상대 클라이언트 및 상기 클라이언트로 전송하는 단계; 상기 클라이언트로부터 상기 매개키를 수신하여 상기 매개키에 대응하는 매개 회선을 확보하는 단계; 상기 상대 클라이언트의 네트워크 주소가 변경되어, 상기 상대 클라이언트로 전송한 데이터에 대한 확인 응답을 수신하지 못한 상기 클라이언트로부터, 상기 매개 회선을 통해 상기 데이터를 수신하는 단계; 및 상기 상대 클라이언트가 상기 매개키를 이용하여 재접속하는 경우, 상기 데이터를 상기 상대 클라이언트로 전송하는 단계를 포함한다.A method of operating a server according to one side includes receiving a P2P communication request from a client and transmitting the P2P communication request to a counterpart client; Generating an intermediary key when the opponent client connects to the server, and transmitting the intermediary key to the opponent client and the client; Receiving the intermediate key from the client to secure an intermediate line corresponding to the intermediate key; Receiving the data through the intermediate line from the client which has not received an acknowledgment of the data transmitted to the counterpart client due to the change of the network address of the counterpart client; And transmitting the data to the counterpart client when the counterpart client reconnects with the intermediary key.

상기 매개 경로는, 상기 매개키를 보유한 상기 클라이언트 및 상기 상대 클라이언트의 전용 방(dedicated room)을 포함할 수 있다.The intermediary path may include a dedicated room of the client having the intermediary key and the counterpart client.

상기 데이터를 상기 상대 클라이언트로 전송하는 단계는, 상기 변경된 네트워크 주소를 갖는 상기 상대 클라이언트로부터 상기 매개키를 포함하는 재접속 요청을 수신하는 단계; 및 상기 매개키를 기초로 상기 재접속 요청에 따른 접속을 허용하는 단계를 포함할 수 있다.Wherein the transmitting the data to the counterpart client comprises: receiving a reconnection request including the intermediary key from the counterpart client having the changed network address; And allowing the connection 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 has changed; And informing the client of the change of the network address.

상기 매개키는, 임의값에 대응하거나 상기 클라이언트 및 상기 상대 클라이언트의 고유 정보를 기초로 생성될 수 있다.The intermediate key may be generated based on a unique value of the client or the relative client, corresponding to a certain value.

상기 클라이언트는 상기 상대 클라이언트가 수신한 데이터에 대한 확인 응답을 수신할 수 있고, 상기 상대 클라이언트의 변경된 네트워크 주소로 이후 데이터를 전송할 수 있다.The client may receive an acknowledgment of data received by the counterpart client and may transmit data to the counterpart client at a changed network address.

상기 클라이언트의 P2P 통신 요청을 수신하는 경우, 상기 클라이언트의 세션 식별자를 상기 클라이언트에 할당하는 단계를 더 포함할 수 있다.And when the P2P communication request of the client is received, allocating a session identifier of the client to the client.

상기 P2P 통신 요청의 수신 이전에 접속한 상기 클라이언트에게 무작위로 생성된 질문을 전송하는 단계; 상기 클라이언트로부터 답을 수신하는 단계; 및 상기 답이 상기 질문에 대응하는지 확인하는 단계를 더 포함할 수 있다.Sending a randomly generated query to the connected client 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 step of transmitting the query may include transmitting identification information received from the client and first cryptographic information generated by encrypting connection time information of the client to the query, May include receiving the second cryptographic information generated by encrypting the first cryptographic information with the answer, and the step of verifying that the answer corresponds to the question may include decrypting the second cryptographic information And checking whether the extracted information corresponds to the identification information and the connection time information.

일 측에 따른 클라이언트의 동작 방법은 P2P 통신 요청을 서버로 전송하는 단계; 상기 클라이언트와 상대 클라이언트의 통신을 매개하는 통신 매개 장치에 의해 생성된 매개키 및 상기 상대 클라이언트의 네트워크 주소를 상기 서버로부터 수신하는 단계; 상기 매개키를 이용하여 상기 통신 매개 장치와 연결하는 단계; 상기 네트워크 주소를 이용하여 상기 상대 클라이언트에게 데이터를 전송하는 단계; 상기 네트워크 주소가 변경되어, 상기 상대 클라이언트에게 전송한 데이터에 대한 확인 응답을 수신하지 못한 경우, 상기 데이터를 상기 통신 매개 장치로 전송하는 단계를 포함하고, 상기 상대 클라이언트는, 상기 매개키를 이용하여 상기 통신 매개 장치에 접속하고, 상기 통신 매개 장치로부터 상기 데이터를 수신한다.A method of operating a client according to one side comprises: transmitting a P2P communication request to a server; Receiving from the server an intermediate key generated by a communication intermediary device that mediates communication between the client and the counterpart client and a network address of the counterpart client; Communicating with the communication intermediary device using the intermediary key; Transmitting data to the counterpart client using the network address; And transmitting the data to the communication intermediate apparatus when the network address is changed and an acknowledgment of the data transmitted to the counterpart client is not received, To the communication mediator, and receives the data from the communication mediator.

상기 통신 매개 장치와 연결되는 경우, 상기 매개키에 대응하는 매개 경로가 확보될 수 있다.When connected to the communication mediator, an intermediate path corresponding to the intermediate key can be secured.

상기 매개 경로는, 상기 매개키를 보유한 상기 클라이언트 및 상기 상대 클라이언트의 전용 방(dedicated room)을 포함할 수 있다.The intermediary path may include a dedicated room of the client having the intermediary key and the counterpart client.

상기 서버로부터 상기 네트워크 주소가 변경되었다는 통지를 수신하는 단계를 더 포함할 수 있다.And receiving a notification from the server that the network address has been changed.

상기 상대 클라이언트가 상기 통신 매개 장치로부터 수신한 데이터에 대한 확인 응답을 상기 상대 클라이언트로부터 수신하는 단계를 더 포함할 수 있다.And receiving an acknowledgment from the counterpart client of the data received from the counterpart client by the counterpart client.

상기 P2P 통신 경로를 생성하는 단계는, 상기 상대 클라이언트에게 속도 테스트 요청을 전송하는 단계; 상기 상대 클라이언트로부터 상기 속도 테스트 요청에 대한 테스트 응답을 수신하는 단계; 및 상기 테스트 응답을 기초로 상기 상대 클라이언트의 응답 시간을 확인하는 단계를 포함할 수 있다.The step of generating the P2P communication path includes: transmitting a speed test request to the counterpart client; Receiving a test response for the speed test request from the counterpart client; And checking the response time of the counterpart client based on the test response.

상기 데이터를 전송하는 단계는, 상기 확인 응답을 상기 응답 시간 이내에 수신하지 못한 경우, 상기 데이터를 상기 통신 매개 장치로 전송하는 단계를 포함할 수 있다.The step of transmitting the data may include transmitting the data to the communication mediator if the acknowledgment is not received within the response time.

상기 P2P 통신 요청의 전송 이전에 상기 서버로 접속하여 상기 서버로부터 무작위로 생성된 질문을 수신하는 단계; 및 상기 서버로 답을 전송하는 단계를 더 포함할 수 있다.Accessing the server before receiving the P2P communication request and receiving a randomly generated query from the server; And sending an answer to the server.

상기 질문을 수신하는 단계는, 상기 서버로 상기 클라이언트의 식별 정보를 전송하는 단계; 및 상기 식별 정보 및 상기 클라이언트의 접속 시간 정보가 암호화되어 생성된 제1 암호 정보를 상기 질문으로 수신하는 단계를 포함할 수 있고, 상기 답을 전송하는 단계는, 상기 제1 암호 정보를 암호화하여 생성된 제2 암호 정보를 상기 답으로 전송하는 단계를 포함할 수 있다.The step of receiving the query comprises: transmitting identification information of the client to the server; And receiving the identification information and the first cryptographic information generated by encrypting the connection time information of the client with the query, and the step of transmitting the answer includes generating and encrypting the first cryptographic information And transmitting the second cipher information to the mobile terminal.

다른 일 측에 따른 클라이언트의 동작 방법은 요청 클라이언트의 P2P 통신 요청을 서버로부터 수신한 경우, 통신 매개 장치에 접속하는 단계; 상기 통신 매개 장치로부터 매개키를 수신하는 단계; 상기 클라이언트의 네트워크 주소가 변경된 경우, 상기 매개키를 이용하여 상기 통신 매개 장치에 재접속하는 단계; 상기 통신 매개 장치 -상기 통신 매개 장치는, 상기 클라이언트로 전송된 데이터에 대한 확인 응답을 수신하지 못한 상기 요청 클라이언트로부터, 상기 데이터를 수신하는- 로부터 상기 데이터를 수신하는 단계; 및 상기 요청 클라이언트에게 상기 데이터에 대한 확인 응답을 전송하는 단계를 포함한다.A method of operating a client according to another party includes the steps of connecting to a communication intermediate apparatus when receiving a P2P communication request of a requesting client from a server; Receiving an intermediary key from the communication intermediary device; Reconnecting to the communication intermediary device using the intermediary key if the network address of the client has changed; Receiving the data from a requesting client that has not received an acknowledgment for the data sent to the client; receiving the data from the requesting client; And transmitting an acknowledgment for the data to the requesting client.

일 측에 따른 통신 장치는 클라이언트와 상대 클라이언트간의 P2P(Peer to Peer) 통신에 대응하는 매개키를 생성하고, 상기 매개키에 대응하는 매개 경로를 확보하는 컨트롤러; 및 상기 매개키를 상기 상대 클라이언트로 전송하고, 상기 상대 클라이언트의 네트워크 주소가 변경되어, 상기 상대 클라이언트로 전송한 데이터에 대한 확인 응답을 수신하지 못한 상기 클라이언트로부터, 상기 매개 경로를 통해 상기 데이터를 수신하며, 상기 상대 클라이언트가 상기 매개키를 이용하여 접속하는 경우, 상기 데이터를 상기 상대 클라이언트로 전송하는 통신부를 포함한다.A communication device according to one side generates an intermediate key corresponding to peer-to-peer (P2P) communication between the client and the other client, and secures an intermediate path corresponding to the intermediate key; And transmitting the intermediate key from the client which has not received an acknowledgment of the data transmitted to the counterpart client by changing the network address of the counterpart client, And a communication unit for transmitting the data to the counterpart client when the counterpart client connects using the intermediary key.

일 측에 따른 클라이언트 장치는 P2P 통신 요청을 서버로 전송하고, 상기 클라이언트 장치와 상대 클라이언트 장치의 통신을 매개하는 통신 매개 장치에 의해 생성된 매개키 및 상기 상대 클라이언트 장치의 네트워크 주소를 상기 서버로부터 수신하며, 상기 매개키를 이용하여 상기 통신 매개 장치와 연결하고, 상기 네트워크 주소를 이용하여 상기 상대 클라이언트 장치에게 데이터를 전송하고, 상기 네트워크 주소가 변경되어, 상기 상대 클라이언트 장치에게 전송한 데이터에 대한 확인 응답을 수신하지 못한 경우, 상기 데이터를 상기 통신 매개 장치로 전송하는 연결부; 및 상기 연결부를 제어하는 프로세서를 포함하고, 상기 상대 클라이언트 장치는, 상기 매개키를 이용하여 상기 통신 매개 장치에 접속하고, 상기 통신 매개 장치로부터 상기 데이터를 수신한다.A client device according to one side transmits a P2P communication request to a server and receives an intermediate key generated by a communication intermediate apparatus for mediating communication between the client apparatus and a counterpart client apparatus and a network address of the counterpart client apparatus from the server And transmitting the data to the counterpart client device by using the network address and transmitting the data to the counterpart client device when the network address is changed, A connection for transmitting the data to the communication mediator when the response is not received; And a processor for controlling the connection, wherein the partner client device uses the intermediary key to connect to the communication intermediary device and receives the data from the communication intermediary.

다른 일 측에 따른 클라이언트 장치는 요청 클라이언트 장치의 P2P 통신 요청을 서버로부터 수신한 경우, 통신 매개 장치에 접속하고, 상기 통신 매개 장치로부터 매개키를 수신하며, 상기 클라이언트 장치의 네트워크 주소가 변경된 경우, 상기 매개키를 이용하여 상기 통신 매개 장치에 재접속하고, 상기 통신 매개 장치 -상기 통신 매개 장치는, 상기 클라이언트 장치로 전송된 데이터에 대한 확인 응답을 수신하지 못한 상기 요청 클라이언트로 장치부터, 상기 데이터를 수신하는- 로부터 상기 데이터를 수신하고, 상기 요청 클라이언트 장치에게 상기 데이터에 대한 확인 응답을 전송하는 연결부; 및 상기 연결부를 제어하는 프로세서를 포함한다.Wherein the client device according to another party connects to the communication intermediary device when receiving a P2P communication request from the server of the requesting client device, receives the intermediary key from the communication intermediary device, and when the network address of the client device is changed, Wherein the communication mediator, the communication mediator, sends the data from the device to the requesting client that has not received an acknowledgment for the data sent to the client device A connection unit for receiving the data from the receiving-side and transmitting an acknowledgment for the data to the requesting client device; And a processor for controlling the connection portion.

도 1은 일 실시예에 따른 통신 시스템의 동작의 일례를 설명하기 위한 흐름도이다.
도 2는 일 실시예에 따른 통신 시스템의 동작의 다른 일례를 설명하기 위한 흐름도이다.
도 3a 내지 도 3b는 일 실시예에 따른 통신 시스템을 설명하기 위한 블록도이다.
도 4는 일 실시예에 따른 통신 시스템의 동작을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 통신 장치의 동작 방법을 설명하기 위한 순서도이다.
도 6은 일 실시예에 따른 서버의 동작 방법을 설명하기 위한 순서도이다.
도 7은 일 실시예에 따른 클라이언트의 동작 방법의 일례를 설명하기 위한 순서도이다.
도 8은 일 실시예에 따른 클라이언트의 동작 방법의 다른 일례를 설명하기 위한 순서도이다.
도 9는 일 실시예에 따른 클라이언트와 서버의 세션 유지를 설명하기 위한 흐름도이다.
1 is a flowchart for explaining an example of the operation of the communication system according to one embodiment.
2 is a flowchart for explaining another example of the operation of the communication system according to one embodiment.
3A and 3B are block diagrams for explaining a communication system according to an embodiment.
4 is a diagram for explaining the operation of the communication system according to one embodiment.
5 is a flowchart illustrating an operation method of a communication apparatus according to an embodiment.
6 is a flowchart illustrating an operation method of a server according to an embodiment of the present invention.
7 is a flowchart illustrating an example of a method of operating a client according to an embodiment.
8 is a flowchart for explaining another example of the operation method of the client according to the embodiment.
FIG. 9 is a flowchart illustrating a session maintenance between a client and a server according to an exemplary embodiment of the present invention. Referring to FIG.

이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings.

아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Various modifications may be made to the embodiments described below. It is to be understood that the embodiments described below are not intended to limit the embodiments, but include all modifications, equivalents, and alternatives to them.

실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are used only to illustrate specific embodiments and are not intended to limit the embodiments. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises" or "having" and the like refer to the presence of stated features, integers, steps, operations, elements, components, or combinations thereof, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations 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 to which this embodiment belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as ideal or overly formal in the sense of the art unless explicitly defined herein Do not.

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In the following description of the present invention with reference to the accompanying drawings, the same components are denoted by the same reference numerals regardless of the reference numerals, and redundant explanations thereof will be omitted. In the following description of the embodiments, a detailed description of related arts will be omitted if it is determined that the gist of the embodiments may be unnecessarily blurred.

도 1은 일 실시예에 따른 통신 시스템의 동작의 일례를 설명하기 위한 흐름도이다.1 is a flowchart for explaining an example of the operation of the communication system according to one embodiment.

도 1을 참조하면, 일 실시예에 따른 통신 시스템은 클라이언트(110), 서버(111), 매개부(112), 및 상대 클라이언트(113)를 포함한다.1, a communication system according to an embodiment includes a client 110, a server 111, an intermediate unit 112, and a relative client 113. [

도 1에 도시되지 않았으나, 서버(111)는 클라이언트(110) 및 상대 클라이언트(113) 각각과 통신 세션(예를 들어, UDP(User Datagram Protocol) 세션)을 설정할 수 있다.Although not shown in FIG. 1, the server 111 may establish a communication session (e.g., a User Datagram Protocol (UDP) session) with each of the client 110 and the relative client 113.

클라이언트(110)는 통신 요청을 서버(111)로 전송한다(120). 예를 들어, 클라이언트(110)는 상대 클라이언트(113)와 P2P(Peer to Peer) 통신을 하기 위해 P2P 통신 요청을 통신 세션을 통해 서버(111)로 전송할 수 있다. The client 110 transmits a communication request to the server 111 (120). For example, the client 110 may transmit a P2P communication request to the server 111 through a communication session to perform peer-to-peer (P2P) communication with the peer client 113. [

서버(111)는 클라이언트(110)의 통신 요청을 상대 클라이언트(113)로 전송할 수 있다(121).The server 111 may transmit the communication request of the client 110 to the correspondent client 113 (121).

상대 클라이언트(113)는 클라이언트(110)의 통신 요청을 수신한 경우, 매개부(112)와 연결할 수 있다(122). 보다 구체적으로, 상대 클라이언트(113)가 클라이언트(110)의 통신 요청을 서버(111)로부터 수신한 경우, 상대 클라이언트(113)는 매개부(112)에 접속을 시도할 수 있고, 매개부(112)는 상대 클라이언트(113)의 접속을 허용할 수 있다.The relative client 113 may connect 122 with the intermediary 112 when receiving a communication request from the client 110. [ More specifically, when the counterpart client 113 receives a communication request of the client 110 from the server 111, the counterpart client 113 can attempt to connect to the intermediary part 112, May allow the connection of the counterpart client 113. [

일 실시예에 따르면, 매개부(112)는 서버(111)와 물리적으로 구별되는 장치로, 네트워크 상에서 독립적인 장치일 수 있다. 또한, 구현에 따라 매개부(112)는 서버(111)에 포함될 수 있고, 서버(111) 내에서 논리적으로 구분되는 복수의 유닛들 중 어느 하나일 수 있다.According to one embodiment, the intermediate unit 112 is an apparatus that is physically distinct from the server 111, and may be a device that is independent on the network. In addition, the intermediate unit 112 may be included in the server 111 and may be any of a plurality of units logically divided in the server 111 according to the implementation.

매개부(112)는 상대 클라이언트(113)와 연결되는 경우, 매개키를 생성한다(123). 예를 들어, 매개부(112)는 임의값을 갖는 매개키를 생성할 수 있다. 또한, 매개부(112)는 클라이언트(110) 및/또는 상대 클라이언트(113)의 고유 정보를 기초로 매개키를 생성할 수 있다. 고유 정보는, 예를 들어, 클라이언트(110) 및 상대 클라이언트(113) 각각에 할당된 식별 정보를 포함할 수 있다.When the mediating unit 112 is connected to the counterpart client 113, the mediating unit 112 generates the mediating key (123). For example, the intermediate unit 112 may generate an intermediate key having an arbitrary value. In addition, the mediating unit 112 may generate an intermediate key based on the unique information of the client 110 and / or the relative client 113. [ The unique information may include identification information assigned to each of the client 110 and the counterpart client 113, for example.

매개부(112)는 매개키를 상대 클라이언트(113)로 전송한다(124).The intermediate unit 112 transmits the intermediate key to the counterpart client 113 (124).

상대 클라이언트(113)는 매개키를 서버(111)로 전송한다(125).Relative client 113 transmits the intermediary key to server 111 (125).

서버(111)는 상대 클라이언트(113)의 네트워크 주소 및 매개키를 클라이언트(110)로 전송한다(126). 네트워크 주소는, 예를 들어, IP(Internet Protocol) 주소를 포함할 수 있다.The server 111 transmits the network address and the intermediate key of the correspondent client 113 to the client 110 (126). The network address may include, for example, an IP (Internet Protocol) address.

클라이언트(110)는 매개키를 매개부(112)에 전송한다(127). 클라이언트(110)는 매개키를 매개부(112)에 전송하여 매개부(112)에 접속할 수 있다.The client 110 transmits the intermediate key to the intermediate unit 112 (127). The client 110 may connect to the intermediary 112 by sending the intermediary key to the intermediary 112.

매개부(112)는 클라이언트(110)로부터 매개키를 수신한 경우, 매개 경로를 확보한다(128). 매개 경로는 클라이언트(110)와 상대 클라이언트(113) 사이의 P2P 통신 경로의 단절에 대비하기 위한 경로이다. 일 실시예에 있어서, 매개 경로는 매개키를 보유한 클라이언트(110)와 상대 클라이언트(113)의 전용 방(dedicated room)을 포함할 수 있다. 매개 경로의 확보는 매개부(112)에 전용 방이 생성됨을 의미할 수 있다. 매개부(112)가 클라이언트로(110)부터 매개키를 수신하는 경우, 매개부(112)는 클라이언트(110) 및 상대 클라이언트(113)가 참여할 수 있고, 다른 클라이언트는 참여할 수 없는 전용 방을 생성할 수 있다.When receiving the intermediate key from the client 110, the intermediate unit 112 acquires an intermediate path (128). The intermediary path is a path for preparing for the disconnection of the P2P communication path between the client 110 and the counterpart client 113. [ In one embodiment, the intermediary path may include a dedicated room of the client 110 having the intermediary key and a counterpart client 113. Securing an intermediate path may mean that a private room is created in the intermediate unit 112. When the intermediate unit 112 receives the intermediate key from the client 110, the intermediate unit 112 creates a private room in which the client 110 and the relative client 113 can participate and the other client can not participate can do.

클라이언트(110)는 매개부(112)와 연결된 경우, 상대 클라이언트(113)에게 속도 테스트 요청을 전송할 수 있다(129). 클라이언트(110)는 상대 클라이언트(113)의 네트워크 주소를 알고 있으므로, 상대 클라이언트(113)의 네트워크 주소로 속도 테스트 요청을 전송할 수 있다.If the client 110 is connected to the intermediary 112, the client 110 may transmit a speed test request to the partner client 113 (129). Since the client 110 knows the network address of the correspondent client 113, the client 110 can transmit the speed test request to the network address of the correspondent client 113.

상대 클라이언트(113)는 속도 테스트 요청에 대한 테스트 응답을 클라이언트(110)로 전송할 수 있다(130). 클라이언트(110)는 상대 클라이언트(113)의 응답 시간을 확인할 수 있다. 클라이언트(110)는 클라이언트(110)와 상대 클라이언트(113) 사이의 P2P 통신 속도를 확인할 수 있다.The relative client 113 may send a test response to the speed test request to the client 110 (130). The client 110 can confirm the response time of the partner client 113. [ The client 110 can confirm the P2P communication speed between the client 110 and the counterpart client 113. [

상대 클라이언트(113)는 클라이언트(110)에게 속도 테스트 요청을 전송할 수 있다(131). 클라이언트(110)는 상대 클라이언트에게 속도 테스트 요청에 대한 테스트 응답을 전송할 수 있다(132). 상대 클라이언트(113)는 클라이언트의 응답 시간을 확인할 수 있다.The relative client 113 may send a speed test request to the client 110 (131). The client 110 may send 132 a test response to the speed test request to the other client. The relative client 113 can confirm the response time of the client.

상대 클라이언트(113)의 속도 테스트는 클라이언트(110)의 속도 테스트와 동시에 수행될 수 있다.The speed test of the relative client 113 can be performed simultaneously with the speed test of the client 110. [

일 실시예에 있어서, 클라이언트(110) 및/또는 상대 클라이언트(113)의 속도 테스트는 미리 정해진 횟수만큼 반복될 수 있다. 예를 들어, 속도 테스트는 2회 또는 2회 이상 반복될 수 있다. 클라이언트(110)는 상대 클라이언트(113)로부터 테스트 응답을 수신하면 상대 클라이언트(113)로 추가 속도 테스트 요청을 전송할 수 있다. 상대 클라이언트(113)는 클라이언트(110)로 추가 속도 테스트 요청에 대한 테스트 응답을 전송할 수 있다. 반복된 속도 테스트를 기초로 클라이언트(110)는 상대 클라이언트(113)의 평균 응답 시간을 확인할 수 있다. 마찬가지로, 반복된 속도 테스트를 기초로 상대 클라이언트(113)는 클라이언트(110)의 평균 응답 시간을 확인할 수 있다.In one embodiment, the speed test of client 110 and / or relative client 113 may be repeated a predetermined number of times. For example, the speed test may be repeated two or more times. When the client 110 receives the test response from the partner client 113, the client 110 may transmit the additional rate test request to the partner client 113. The relative client 113 may send a test response to the additional speed test request to the client 110. Based on the repeated speed test, the client 110 can confirm the average response time of the counterpart client 113. Similarly, the relative client 113 can confirm the average response time of the client 110 based on the repeated speed test.

클라이언트(110)는 상대 클라이언트(113)에게 데이터 1을 전송할 수 있다(133). 데이터 1은 전체 데이터 중 데이터 조각(fragment)일 수 있다. 클라이언트(110)가 네트워크 주소 A로 맵핑되고, 상대 클라이언트(113)가 네트워크 주소 B로 맵핑된다고 하자. 클라이언트(110)는 P2P 통신 경로 A-B를 통해 상대 클라이언트(113)에게 데이터 1을 전송할 수 있다. 상대 클라이언트(113)가 데이터 1을 수신한 경우, 상대 클라이언트(113)는 데이터 1에 대한 확인 응답을 클라이언트(110)로 전송할 수 있다(134).The client 110 may transmit data 1 to the counterpart client 113 (133). Data 1 may be a data fragment of the entire data. Assume that client 110 is mapped to network address A and the other client 113 is mapped to network address B. The client 110 can transmit the data 1 to the counterpart client 113 via the P2P communication path A-B. If the opponent client 113 has received data 1, the opponent client 113 may send an acknowledgment of the data 1 to the client 110 (134).

클라이언트(110)는 데이터 1에 대한 확인 응답을 수신한 경우, 상대 클라이언트(113)에게 데이터 2를 전송할 수 있다(135). 데이터 2는 전체 데이터 중 데이터 조각일 수 있다. 클라이언트(110)는 네트워크 주소 B로 데이터 2를 전송할 수 있다. 여기서, 상대 클라이언트(113)의 이동 등으로 인해 상대 클라이언트(113)의 네트워크 주소가 변경 중이라 하자(136). 상대 클라이언트(113)의 네트워크 주소가 변경 중인 경우, 클라이언트(110)는 상대 클라이언트(113)로부터 데이터 2에 대한 확인 응답을 응답 시간(또는 평균 응답 시간)보다 늦게 수신하거나 수신하지 못할 수 있다. 이 경우, 클라이언트(110)는 데이터 2를 매개부(112)로 전송할 수 있다(137). 클라이언트(110)는 데이터 2에 대한 확인 응답을 속도 테스트 단계에서 확인한 응답 시간 이내에 수신하지 못한 경우, 데이터 2를 매개부(112)로 전송할 수 있다.When the client 110 receives the acknowledgment for the data 1, it can send the data 2 to the counterpart client 113 (135). Data 2 may be a piece of data among the entire data. Client 110 may send data 2 to network address B. [ Here, it is assumed that the network address of the counterpart client 113 is being changed due to the movement of the counterpart client 113 (136). If the network address of the counterpart client 113 is changing, the client 110 may not receive or receive an acknowledgment of the data 2 from the counterpart client 113 later than the response time (or the average response time). In this case, client 110 may send data 2 to intermediary 112 (137). If the client 110 fails to receive an acknowledgment for the data 2 within the response time determined in the speed test step, the client 110 may transmit the data 2 to the intermediate unit 112.

매개부(112)는 데이터 2를 클라이언트(110)로부터 수신한 경우, 데이터 2를 메모리에 저장한다. 메모리는, 예를 들어, 매개 경로 또는 전용 방에 대응하는 메모리를 포함할 수 있다. When receiving the data 2 from the client 110, the intermediate unit 112 stores the data 2 in the memory. The memory may include, for example, a memory corresponding to an intermediate path or a dedicated room.

상대 클라이언트(113)는 네트워크 주소의 변경이 완료된 경우, 네트워크 주소가 변경되었음을 서버(111)에게 알릴 수 있다(138). 상대 클라이언트(113)의 네트워크 주소가 B에서 B'로 변경된 경우, 상대 클라이언트(113)는 네트워크 주소가 B에서 B'로 변경되었음을 서버(111)에 알릴 수 있다. 일 실시예에 있어서, 서버는 B'으로 맵핑된 네트워크 엔티티(network entity)가 상대 클라이언트(113)인지 확인하기 위해 상대 클라이언트(113)와 질문 및 답 과정을 수행할 수 있다. 질문 및 답 과정은 도 9를 통해 후술한다.When the change of the network address is completed, the relative client 113 can notify the server 111 that the network address has been changed (138). When the network address of the partner client 113 is changed from B to B ', the partner client 113 can inform the server 111 that the network address has changed from B to B'. In one embodiment, the server may perform a query and answer procedure with the counterpart client 113 to ascertain whether the network entity mapped to B 'is the counterpart client 113. The question and answer procedure will be described later with reference to FIG.

또한, 상대 클라이언트(113)의 네트워크 주소가 변경된 경우, 상대 클라이언트(113)의 네트워크 주소의 변경 전에 설정된 서버(111)와의 통신 세션이 유지되는 것은 어려울 수 있다. 일 실시예에 있어서, 서버(111)는 질문 및 답 과정을 통해 상대 클라이언트(113)와의 통신 세션을 유지할 수 있다.Also, when the network address of the counterpart client 113 is changed, it may be difficult to maintain a communication session with the server 111 set before the change of the network address of the counterpart client 113. In one embodiment, the server 111 may maintain a communication session with the counterpart client 113 via a question and answer process.

변경된 네트워크 주소로 맵핑된 네트워크 엔티티의 확인 및 통신 세션의 유지는 도 9를 통해 후술한다.Identification of the network entity mapped to the changed network address and maintenance of the communication session will be described later with reference to FIG.

서버(111)는 상대 클라이언트(113)의 네트워크 주소가 변경되었음을 클라이언트(110)에게 알릴 수 있다(139).The server 111 may inform the client 110 that the network address of the partner client 113 has been changed (139).

네트워크 주소가 B'으로 맵핑된 상대 클라이언트(113)는 매개키로 매개부(112)와 연결한다(140). 달리 표현하면, 상대 클라이언트(113)는 매개키를 매개부(112)로 전송하여 매개부(112)에 접속을 시도할 수 있고, 매개부(112는 상대 클라이언트(113)의 접속을 허용할 수 있다. 이에 따라, 상대 클라이언트(113)는 매개부(112)와 연결될 수 있다. 변경된 네트워크 주소를 통해 상대 클라이언트(113)가 매개부(112)와 연결되는 경우, 매개부(112)는 상대 클라이언트(113)에게 데이터 2를 전송할 수 있다(141). 예를 들어, 상대 클라이언트(113)는 매개키를 이용하여 전용 방에 참여할 수 있다. 상태 클라이언트(113)가 전용 방에 참여하는 경우, 상태 클라이언트(113)는 전용 방에 대응하는 메모리에 저장된 데이터 2를 수신할 수 있다.The relative client 113 whose network address is mapped to B 'is connected to the intermediate unit 112 via the intermediate key (140). In other words, the opponent client 113 may send an intermediary key to the intermediary 112 to attempt to connect to the intermediary 112, and the intermediary 112 may allow access of the opponent client 113 The relative client 113 can be connected to the intermediate unit 112. When the other client 113 is connected to the intermediate unit 112 via the changed network address, For example, the relative client 113 may participate in the private room using the intermediary key. If the state client 113 participates in the private room, The client 113 can receive the data 2 stored in the memory corresponding to the private room.

상태 클라이언트(113)는 데이터 2를 수신하는 경우, 데이터 2에 대한 확인 응답을 클라이언트(110)로 전송할 수 있다(142).If the state client 113 receives data 2, it may send an acknowledgment for data 2 to the client 110 (142).

클라이언트(110)는 데이터 2에 대한 확인 응답을 수신하는 경우, 데이터 3을 상대 클라이언트(113)로 전송할 수 있다(143). P2P 통신 경로가 A-B에서 A-B'으로 변경된다. 상대 클라이언트(113)는 데이터 3에 대한 확인 응답을 클라이언트(110)로 전송할 수 있다(144).If client 110 receives an acknowledgment for data 2, it may send data 3 to the other client 113 (143). P2P communication path is changed from A-B to A-B '. Relative client 113 may send an acknowledgment for data 3 to client 110 (144).

클라이언트(110)와 상대 클라이언트(113) 사이의 P2P 통신 경로가 확보되었으나, 클라이언트(110) 및/또는 상대 클라이언트(113)의 IP 주소가 변경되면, 클라이언트(110)와 상대 클라이언트(113)는 P2P 통신을 지속적으로 유지할 수 없다. 일 실시예에 따르면, P2P 통신 경로에 대응하는 매개 경로가 확보될 수 있고, P2P 통신 경로가 단절되어도 클라이언트(110)와 상대 클라이언트(113)는 매개 경로를 이용할 수 있다. 이에 따라, 네트워크 스루풋(network throughput)이 향상될 수 있다.When the P2P communication path between the client 110 and the peer client 113 is secured but the IP address of the client 110 and / or the peer client 113 is changed, the P2P communication path between the client 110 and the peer client 113 is P2P Communication can not be maintained continuously. According to one embodiment, an intermediate path corresponding to the P2P communication path can be secured, and the client 110 and the counterpart client 113 can use the intermediate path even if the P2P communication path is disconnected. Thus, the network throughput can be improved.

도 2는 일 실시예에 따른 통신 시스템의 동작의 다른 일례를 설명하기 위한 흐름도이다.2 is a flowchart for explaining another example of the operation of the communication system according to one embodiment.

도 2를 참조하면, 통신 시스템은 클라이언트(210), 서버(211), 및 상대 클라이언트(212)를 포함한다. 도 1을 통해 설명한 매개부는 서버(211)에 포함될 수 있다. 2, the communication system includes a client 210, a server 211, and a relative client 212. [ The mediating unit described with reference to FIG. 1 may be included in the server 211.

클라이언트(210)는 서버(211)로 통신 요청을 전송할 수 있다(220). 서버(211)는 클라이언트(210)의 통신 요청을 상대 클라이언트(212)로 전송할 수 있다(221).The client 210 may send a communication request to the server 211 (220). The server 211 may transmit the communication request of the client 210 to the correspondent client 212 (221).

클라이언트(210)의 통신 요청을 수신한 상대 클라이언트(212)는 서버(211)와 연결할 수 있다(222). 달리 표현하면, 상대 클라이언트(212)는 서버(211)에 접속할 수 있다.The partner client 212 receiving the communication request of the client 210 may connect with the server 211 (222). In other words, the relative client 212 can connect to the server 211.

서버(211)는 상대 클라이언트(212)가 접속한 경우, 매개키를 생성할 수 있다(223). 서버(211)는 매개키를 상대 클라이언트(212)로 전송할 수 있다(224).The server 211 may generate an intermediary key when the partner client 212 is connected (223). The server 211 may send the intermediary key to the partner client 212 (224).

서버(211)는 매개키 및 상대 클라이언트(212)의 네트워크 주소를 클라이언트(210)로 전송할 수 있다(225). 여기서, 클라이언트(210)의 네트워크 주소를 A라하고, 상대 클라이언트(212)의 네트워크 주소를 B라 하자. 클라이언트(210)는 상대 클라이언트(212)의 네트워크 주소를 알 수 있다.The server 211 may transmit the intermediary key and the network address of the partner client 212 to the client 210 (225). Here, the network address of the client 210 is A and the network address of the partner client 212 is B. The client 210 can know the network address of the partner client 212.

클라이언트(210)는 매개키를 서버(211)로 전송할 수 있다(226). 매개키를 수신한 서버(211)는 매개키에 대응하는 매개 회선을 확보할 수 있다(227). 위에서 설명한 것처럼, 매개 회선의 확보는 매개키를 보유한 클라이언트(210) 및 상대 클라이언트(212)의 전용 방이 서버(211)에 생성되는 것을 의미할 수 있다.The client 210 may send the intermediary key to the server 211 (226). The server 211 receiving the intermediate key may secure an intermediate line corresponding to the intermediate key (227). As described above, the securing of the intermediate line may mean that a private room of the client 210 holding the intermediate key and the counterpart client 212 is generated in the server 211. [

클라이언트(210)는 상대 클라이언트(212)에게 속도 테스트 요청을 전송할 수 있고(228), 상대 클라이언트(212)는 속도 테스트 요청에 대한 테스트 응답을 클라이언트(210)로 전송할 수 있다(229). 클라이언트(210)는 상대 클라이언트(212)의 응답 속도를 확인할 수 있다. 마찬가지로, 상대 클라이언트(212)는 클라이언트(210)에게 속도 테스트 요청을 전송할 수 있고(230), 클라이언트(210)는 속도 테스트 요청에 대한 테스트 응답을 상대 클라이언트(212)로 전송할 수 있다(231).The client 210 may send 228 a rate test request to the counterpart client 212 and the counterpart client 212 may send 229 a test response to the rate test request to the client 210. The client 210 can confirm the response speed of the partner client 212. [ Similarly, the relative client 212 may send 230 a speed test request to the client 210 and the client 210 may send 231 a test response to the rate test request to the counterpart client 212.

속도 테스트가 종료된 경우, 클라이언트(210)는 상대 클라이언트(212)에게 데이터 1을 전송할 수 있다(232). 클라이언트(210)는 P2P 통신 경로 A-B를 통해 상대 클라이언트(212)에게 데이터 1을 전송할 수 있다. 상대 클라이언트(212)는 데이터 1에 대한 확인 응답을 클라이언트(210)로 전송할 수 있다(233).If the speed test is terminated, the client 210 may send data 1 to the partner client 212 (232). The client 210 may send the data 1 to the other client 212 via the P2P communication path A-B. Relative client 212 may send an acknowledgment for data 1 to client 210 (233).

데이터 1에 대한 확인 응답을 수신한 클라이언트(210)는 데이터 2를 상대 클라이언트(212)로 전송할 수 있다(234). 여기서, 상대 클라이언트(212)의 네트워크 주소가 변경 중인 경우(235), 상대 클라이언트(212)의 응답 속도는 속도 테스트에서 확인된 응답 속도보다 늦거나 상대 클라이언트(212)의 응답이 없을 수 있다.Upon receiving the acknowledgment for data 1, client 210 may send data 2 to relative client 212 (234). Here, if the network address of the counterpart client 212 is being changed (235), the response rate of the counterpart client 212 may be later than the response speed confirmed in the speed test or there may be no response of the counterpart client 212.

클라이언트(210)는 데이터 2에 대한 확인 응답을 속도 테스트에서 확인된 응답 속도보다 늦게 수신하거나 수신하지 못할 수 있다. 이 경우, 클라이언트(210)는 데이터 2를 서버(211)에 전송할 수 있다(236). 서버(211)는 매개 경로 또는 전용 방에 대응하는 메모리에 데이터 2를 저장할 수 있다.The client 210 may not receive or receive an acknowledgment for data 2 later than the acknowledgment rate confirmed in the speed test. In this case, client 210 may send data 2 to server 211 (236). The server 211 may store the data 2 in the memory corresponding to the intermediate path or the dedicated room.

상대 클라이언트(212)의 네트워크 주소가 B에서 B'으로 변경된 경우, 상대 클라이언트(212)는 네트워크 주소가 변경되었음을 서버(211)에 알릴 수 있다(237). 서버(211)는 상대 클라이언트(212)의 네트워크 주소가 변경되었음을 클라이언트(210)에 알릴 수 있다(238).If the network address of the peer client 212 is changed from B to B ', the peer client 212 may inform the server 211 that the network address has been changed (237). The server 211 may inform the client 210 that the network address of the partner client 212 has been changed (238).

상대 클라이언트(212)는 매개키를 보유하고 있으므로, 매개키로 서버(211)와 연결할 수 있다(239). 서버(211)는 매개 경로를 통해 데이터 2를 상대 클라이언트(212)로 전송할 수 있다(240).Since the relative client 212 has an intermediary key, it can connect to the server 211 with an intermediary key (239). The server 211 may send data 2 to the peer client 212 via an intermediary path (240).

상대 클라이언트(212)는 데이터 2에 대한 확인 응답을 클라이언트(210)로 전송할 수 있다(241).Relative client 212 may send an acknowledgment for data 2 to client 210 (241).

데이터 2에 대한 확인 응답을 수신한 클라이언트(210)는 상대 클라이언트(212)로 데이터 3을 전송할 수 있다(242). P2P 통신 경로 A-B'을 통한 P2P 통신이 시작된다. 데이터 3을 수신한 상대 클라이언트(212)는 데이터 3에 대한 확인 응답을 클라이언트(210)로 전송할 수 있다(243).Receiving the acknowledgment for data 2, client 210 may send data 3 to its counterpart client 212 (242). P2P communication via P2P communication path A-B 'is started. Relative client 212 receiving data 3 may send an acknowledgment for data 3 to client 210 (243).

도 1을 통해 기술한 사항들은 도 2를 통해 기술한 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.Since the matters described in FIG. 1 can be applied to the matters described in FIG. 2, detailed description will be omitted.

도 3a 내지 도 3b는 일 실시예에 따른 통신 시스템을 설명하기 위한 블록도이다.3A and 3B are block diagrams for explaining a communication system according to an embodiment.

도 3a를 참조하면, 클라이언트 장치(310)는 연결부(311)를 포함하고, 상대 클라이언트 장치(320)는 연결부(321)를 포함한다. 서버(330)는 감지부(331), 관리부(332), 및 매개부(333)를 포함한다.Referring to FIG. 3A, the client device 310 includes a connection unit 311 and the partner client apparatus 320 includes a connection unit 321. The server 330 includes a sensing unit 331, a management unit 332, and an intermediate unit 333.

연결부(311) 및 연결부(321)는 통신 인터페이스를 포함할 수 있다.The connection unit 311 and the connection unit 321 may include a communication interface.

클라이언트 장치(310)는 프로세서(미도시) 및 메모리(미도시)를 더 포함할 수 있다. 프로세서는 연결부(311)를 제어하고, 메모리는 매개키를 저장할 수 있다.The client device 310 may further include a processor (not shown) and a memory (not shown). The processor controls the connection 311 and the memory can store the intermediate key.

클라이언트 장치(320)는 프로세서(미도시) 및 메모리(미도시)를 더 포함할 수 있다. 프로세서는 연결부(321)를 제어하고, 메모리는 매개키를 저장할 수 있다.The client device 320 may further include a processor (not shown) and a memory (not shown). The processor controls the connection 321 and the memory can store the intermediate key.

감지부(331), 관리부(332), 및 매개부(333)는 프로세서 또는 컨트롤러에 의해 구현될 수 있다.The sensing unit 331, the management unit 332, and the intermediate unit 333 may be implemented by a processor or a controller.

연결부(311)는 P2P 통신 요청을 서버(330)로 전송할 수 있고, 서버(330)는 P2P 통신 요청을 연결부(321)로 전송할 수 있다. 연결부(321)는 매개부(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. [ The connection portion 321 can be connected to the intermediate portion 333 and the intermediate portion 333 can generate the intermediate key when the connection portion 321 is connected. The intermediate unit 333 can transmit the intermediate key to the connection unit 321. Here, the connection portion 321 can maintain the connection with the intermediate portion 333.

연결부(321)는 매개키를 관리부(332)로 전송할 수 있고, 관리부(332)는 매개키 및 상대 클라이언트 장치(330)의 네트워크 주소를 연결부(311)로 전송할 수 있다. 연결부(311)는 매개키를 매개부(333)로 전송할 수 있고, 매개키로 매개부(333)에 접속할 수 있다. 여기서, 연결부(311)는 매개부(333)와의 접속을 유지할 수 있다.The connection unit 321 can transmit the intermediate key to the management unit 332 and the management unit 332 can transmit the intermediate key and the network address of the counterpart client apparatus 330 to the connection unit 311. The connection unit 311 can transmit the intermediate key to the intermediate unit 333 and can connect to the intermediate unit 333 with the intermediate key. Here, the connection portion 311 can maintain the connection with the intermediate portion 333.

연결부(311) 및 연결부(321) 각각이 매개부(333)로의 접속을 유지할 수 있어 연결부(311)-매개부(333)-연결부(321)의 연결 관계를 갖는 매개 경로(또는 우회 경로)가 확보될 수 있다. 매개 경로는 연결부(311)와 연결부(321) 사이의 직접 경로, 즉, P2P 통신 경로의 단절에 대비하기 위한 경로이다. 또한, 매개 경로는 매개키에 대응할 수 있으므로, 매개키를 보유한 클라이언트 장치(310) 및 상대 클라이언트 장치(320)가 매개 경로를 이용할 수 있고, 다른 클라이언트 장치는 매개 경로를 이용할 수 없다.The connecting portion 311 and the connecting portion 321 can maintain the connection to the intermediate portion 333 so that the intermediate path (or bypass path) having the connection relationship of the connecting portion 311-the intermediate portion 333-the connecting portion 321 Can be secured. The intermediate path is a path for preparing for a direct path between the connection unit 311 and the connection unit 321, that is, for disconnection of the P2P communication path. In addition, since the intermediary path can correspond to the intermediary key, the client device 310 and the counterpart client device 320 holding the intermediary key can use the intermediary path, and the intermediary path can not be used by the other client apparatus.

매개 경로가 확보된 경우, 연결부(311) 및 연결부(321)는 직접 경로를 통해 연결될 수 있다. 예를 들어, 클라이언트 장치(310)의 네트워크 주소를 A라 하고, 상대 클라이언트 장치(320)의 네트워크 주소를 B라 할 때, 연결부(311) 및 연결부(321)는 P2P 통신 경로 A-B를 통해 서로 연결될 수 있다.When the intermediate path is secured, the connection unit 311 and the connection unit 321 can be connected through a direct path. For example, when the network address of the client apparatus 310 is A and the network address of the partner client apparatus 320 is B, the connection unit 311 and the connection unit 321 are connected to each other via the P2P communication path AB .

상대 클라이언트 장치(320)의 네트워크 주소가 변경 중일 수 있다. 이 경우, P2P 통신 경로 A-B가 단절될 수 있고, 연결부(321)는 연결부(311)가 전송한 데이터를 수신하지 못할 수 있다. 데이터가 누락될 수 있다. 이로 인해, 연결부(311)는 데이터에 대한 확인 응답을 수신하지 못할 수 있다. 연결부(311)는 데이터를 매개부(333)로 전송할 수 있다.The network address of the partner client device 320 may be changing. In this case, the P2P communication path A-B may be disconnected, and the connection unit 321 may not receive the 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 can transmit data to the mediating unit 333.

상대 클라이언트 장치(320)의 네트워크 주소가 B에서 B'으로 변경된 경우, 연결부(321)는 감지부(331)에 상대 클라이언트 장치(320)의 네트워크 주소가 변경되었음을 알릴 수 있다. 감지부(331)는 상대 클라이언트 장치(320)의 네트워크 주소가 변경되었음을 관리부(332)에 알릴 수 있고, 관리부(332)는 상대 클라이언트 장치(320)의 네트워크 주소가 변경되었음을 연결부(311)에 알릴 수 있다.When the network address of the partner client apparatus 320 is changed from B to B ', the connection unit 321 may inform the sensing unit 331 that the network address of the partner client apparatus 320 has been changed. The detection unit 331 can notify the management unit 332 that the network address of the partner client apparatus 320 has been changed and the management unit 332 notifies the connection unit 311 that the network address of the partner client apparatus 320 has been changed .

상대 클라이언트 장치(320)의 네트워크 주소의 변경으로 인해 매개부(333)에 대한 연결부(321)의 접속은 끊어질 수 있다. 연결부(321)는 매개키를 매개부(333)에 전송하여 매개부(333)에 재접속을 시도할 수 있다. 매개부(333)는 상대 클라이언트 장치(320)와 대응하는 매개키를 수신하였으므로, 매개부(333)의 재접속을 허용할 수 있다. 연결부(321)가 매개부(333)에 재접속하는 경우, 연결부(321)는 데이터를 매개부(333)로부터 수신할 수 있다.The connection of the connection portion 321 to the intermediate portion 333 may be disconnected due to the change of the network address of the other client device 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 mediating unit 333 has received the mediating key corresponding to the counterpart client apparatus 320, the mediating unit 333 can allow the mediating unit 333 to be reconnected. When the connection unit 321 reconnects to the intermediate unit 333, the connection unit 321 can receive data from the intermediate unit 333.

연결부(321)는 데이터에 대한 확인 응답을 연결부(311)로 전송할 수 있다.The connection unit 321 may transmit an acknowledgment of the data to the connection unit 311.

도 1 내지 도 2를 통해 기술된 사항들은 도 3a에 적용될 수 있으므로, 상세한 설명을 생략한다.Since the matters described with reference to Figs. 1 and 2 can be applied to Fig. 3A, detailed description will be omitted.

도 3b를 참조하면, 매개부(333)는 서버(330)와 물리적으로 구별될 수 있다. 또한, 매개부(333)는 네트워크 내에서 독립적인 장치일 수 있다.Referring to FIG. 3B, the intermediate unit 333 can be physically distinguished from the server 330. In addition, the intermediate unit 333 may be an independent apparatus in the network.

도 1 내지 도 3a를 통해 기술된 사항들은 도 3b에 적용될 수 있으므로, 상세한 설명을 생략한다.Since the matters described with reference to Figs. 1 to 3A can be applied to Fig. 3B, detailed description will be omitted.

도 4는 일 실시예에 따른 통신 시스템의 동작을 설명하기 위한 도면이다.4 is a diagram for explaining the operation of the communication system according to one embodiment.

도 4를 참조하면, 클라이언트는 네트워크 주소 A에 맵핑되고, 상대 클라이언트는 네트워크 주소 B에 맵핑된다. 클라이언트와 상대 클라이언트는 P2P 통신 경로 A-B를 통해 통신한다.Referring to FIG. 4, the client is mapped to network address A and the other client is mapped to network address B. The client and the relative client communicate through the P2P communication path A-B.

클라이언트는 상대 클라이언트에게 데이터 1을 전송할 수 있고(410), 상대 클라이언트는 데이터 1에 대한 확인 응답을 클라이언트로 전송할 수 있다(411).The client may send data 1 to the remote client 410 and the remote client may send an acknowledgment for the 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 other client may be changed from B to B '(420). The relative client can inform the server that its network address has changed (421), and the server can notify the client that the network address of the other client has been changed (422). Accordingly, the client may send data 2 to a relative client mapped to network address B '(423). That is, the client can transmit data 2 to the other client via the P2P communication path A-B '. The relative client may send an acknowledgment for data 2 to the client (424). The client receiving the acknowledgment for data 2 may send data 3 to the other client (425).

상대 클라이언트의 네트워크 주소가 B'에서 B"으로 변경될 수 있다(430). 이 경우, 클라이언트는 상대 클라이언트로부터 데이터 3에 대한 확인 응답을 받지 못하거나 늦게 수신할 수 있다. 상대 클라이언트의 응답 속도가 느린 경우, 클라이언트는 데이터 3을 매개부로 전송할 수 있다(431). 상대 클라이언트는 네트워크 주소가 변경되었음을 서버에 알릴 수 있고(432), 서버는 클라이언트에게 상대 클라이언트의 네트워크 주소가 변경되었음을 클라이언트에 알릴 수 있다(433).The network address of the other client may be changed from B 'to B' '430. In this case, the client may not receive an acknowledgment of data 3 from the other client or may receive it later. If so, the client may send data 3 to the intermediary (431). The relative client may inform the server that the network address has changed (432) and the server may inform the client that the relative client's network address has changed (433).

상대 클라이언트는 매개키를 보유하고 있으므로, 매개키를 이용하여 매개부에 접속할 수 있다(434). 상대 클라이언트가 매개부에 접속하는 경우, 매개부는 데이터 3을 상대 클라이언트로 전송할 수 있다(435). 상대 클라이언트는 데이터 3에 대한 확인 응답을 클라이언트로 전송할 수 있다(436). 클라이언트는 이후 데이터를 P2P 통신 경로 A-B"를 통해 상대 클라이언트로 전송할 수 있다.Since the relative client has the intermediate key, it can access the intermediate using the intermediate key (434). If the opponent client connects to the intermediary, the intermediary may send data 3 to the opponent client (435). The relative client may send an acknowledgment for data 3 to the client (436). The client can then send the data to the other client via the P2P communication path A-B ".

도 5는 일 실시예에 따른 통신 장치의 동작 방법을 설명하기 위한 순서도이다.5 is a flowchart illustrating an operation method of a communication apparatus according to an embodiment.

일 실시예에 따른 통신 장치는 위에서 설명한 매개부에 대응할 수 있다.The communication device according to one embodiment may correspond to the above-described mediator.

도 5를 참조하면, 통신 장치는 클라이언트와 상대 클라이언트간의 P2P(Peer to Peer) 통신에 대응하는 매개키를 생성한다(510).Referring to FIG. 5, the communication device generates an intermediate key corresponding to peer-to-peer communication between a client and a counterpart client (510).

통신 장치는 매개키를 상대 클라이언트로 전송한다(520).The communication device transmits the intermediate key to the partner client (520).

통신 장치는 매개키에 대응하는 매개 경로를 확보한다(530).The communication device obtains an intermediate path corresponding to the intermediate key (530).

상대 클라이언트의 네트워크 주소가 변경되어, 상대 클라이언트로 전송한 데이터에 대한 확인 응답을 수신하지 못한 상기 클라이언트로부터, 통신 장치는 매개 경로를 통해 데이터를 수신한다(540).The communication device receives the data through the intermediary path from the client that has not received the acknowledgment of the data transmitted to the counterpart client due to the change of the network address of the counterpart client (540).

통신 장치는 상대 클라이언트가 매개키를 이용하여 변경된 네트워크 주소로 접속하는 경우, 데이터를 상대 클라이언트로 전송한다(550).When the correspondent client accesses the changed network address using the intermediary key, the communication device transmits the data to the other client (550).

도 1 내지 도 4를 통해 기술된 사항들은 도 5를 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.1 through 4 can be applied to the matters described with reference to FIG. 5, so that a detailed description will be omitted.

도 6은 일 실시예에 따른 서버의 동작 방법을 설명하기 위한 순서도이다.6 is a flowchart illustrating an operation method of a server according to an embodiment of the present invention.

도 6을 참조하면, 서버는 클라이언트의 P2P 통신 요청을 수신하고, P2P 통신 요청을 상대 클라이언트로 전송한다(610).Referring to FIG. 6, the server receives a P2P communication request from a client and transmits a P2P communication request to a partner client (610).

서버는 상대 클라이언트가 접속하는 경우, 매개키를 생성하고, 매개키를 상대 클라이언트 및 클라이언트로 전송한다(620).When the client accesses the server, 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 and obtains an intermediate line corresponding to the intermediate key (630).

상대 클라이언트의 네트워크 주소가 변경되어, 상기 상대 클라이언트로 전송한 데이터에 대한 확인 응답을 수신하지 못한 상기 클라이언트로부터, 서버는 매개 회선을 통해 데이터를 수신한다(640).In step 640, the server receives the data through the intermediate line from the client that has not received the acknowledgment of the data transmitted to the counterpart client due to the change of the network address of the counterpart client.

서버는 상대 클라이언트가 매개키를 이용하여 변경된 네트워크 주소로 재접속하는 경우, 데이터를 상대 클라이언트로 전송한다(650).The server transmits 650 data to the other client when the other client uses the intermediary key to reconnect to the changed network address.

도 1 내지 도 4를 통해 기술된 사항들은 도 6을 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.1 through 4 can be applied to the matters described with reference to FIG. 6, so that a detailed description will be omitted.

도 7은 일 실시예에 따른 클라이언트의 동작 방법의 일례를 설명하기 위한 순서도이다.7 is a flowchart illustrating an example of a method of operating a client according to an embodiment.

도 7을 참조하면, 클라이언트는 P2P 통신 요청을 서버로 전송한다(710).Referring to FIG. 7, the client transmits a P2P communication request to the server (710).

클라이언트는 클라이언트 자신과 상대 클라이언트의 통신을 매개하는 통신 매개 장치에 의해 생성된 매개키 및 상대 클라이언트의 네트워크 주소를 서버로부터 수신한다(720).The client receives (720) the intermediate key generated by the communication intermediary device that mediates communication between the client itself and the partner client and the network address of the partner client from the server.

클라이언트는 매개키를 이용하여 통신 매개 장치와 연결한다(730).The client connects 730 with the communication intermediary device using the intermediary key.

클라이언트는 네트워크 주소를 이용하여 상대 클라이언트에게 데이터를 전송한다(740).The client transmits data to the other client using the network address (740).

상대 클라이언트의 네트워크 주소가 변경되어, 클라이언트가 상대 클라이언트에게 전송한 데이터에 대한 확인 응답을 수신하지 못한 경우, 통신 매개 장치로 데이터를 전송한다(750). 상대 클라이언트는 변경된 네트워크 주소로 매개키를 이용하여 통신 매개 장치에 접속하고, 통신 매개 장치로부터 데이터를 수신한다.If the network address of the other client is changed and the client does not receive an acknowledgment for the data transmitted to the other client, the data is transmitted to the communication mediator (750). The relative client connects to the communication intermediary device using the intermediate key with the changed network address, and receives data from the communication intermediate apparatus.

클라이언트는 상대 클라이언트로부터 데이터에 대한 확인 응답을 수신한다(760).The client receives an acknowledgment for the data from the partner client (760).

도 1 내지 도 4를 통해 기술된 사항들은 도 7을 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.1 through 4 can be applied to the matters described with reference to FIG. 7, and thus a detailed description thereof will be omitted.

도 8은 일 실시예에 따른 클라이언트의 동작 방법의 다른 일례를 설명하기 위한 순서도이다.8 is a flowchart for explaining another example of the operation method of the client according to the embodiment.

도 8을 통해 설명되는 클라이언트는 도 1 내지 도 7을 통해 설명한 상대 클라이언트에 대응된다.The client illustrated in FIG. 8 corresponds to the client illustrated in FIG. 1 through FIG.

도 8을 참조하면, 클라이언트는 요청 클라이언트의 P2P 통신 요청을 서버로부터 수신한 경우, 통신 매개 장치에 접속한다(810).Referring to FIG. 8, when a client receives a P2P communication request of a requesting client from a server, the client accesses a communication intermediate apparatus (810).

클라이언트는 통신 매개 장치로부터 매개키를 수신한다(820).The client receives the intermediate key from the communication intermediate device (820).

클라이언트의 네트워크 주소가 변경된 경우, 클라이언트는 매개키를 이용하여 통신 매개 장치에 재접속한다(830).If the client ' s network address has changed, the client re-connects 830 to the communication intermediary using the intermediary key.

클라이언트의 네트워크 주소가 변경된 경우, 요청 클라이언트는 클라이언트로 전송한 데이터에 대한 확인 응답을 수신하지 못한다. 이 경우, 요청 클라이언트는 데이터를 통신 매개 장치로 전송한다. 통신 매개 장치는 데이터를 저장한다.If the client's network address is changed, the requesting client does not receive an acknowledgment of the data sent to the client. In this case, the requesting client sends the data to the communication intermediary device. The communication mediator stores the data.

클라이언트는 통신 매개 장치로부터 데이터를 수신한다(840).The client receives data from the communication mediator (840).

클라이언트는 요청 클라이언트에게 데이터에 대한 확인 응답을 전송한다(850).The client sends an acknowledgment of the data to the requesting client (850).

도 1 내지 도 4를 통해 기술된 사항들은 도 8을 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.1 through 4 can be applied to the matters described with reference to FIG. 8, so that a detailed description will be omitted.

도 9는 일 실시예에 따른 클라이언트와 서버의 세션 유지를 설명하기 위한 흐름도이다.FIG. 9 is a flowchart illustrating a session maintenance between a client and a server according to an exemplary embodiment of the present invention. Referring to FIG.

도 9를 참조하면, 클라이언트(910)는 서버(911)에 접속한다(920). 단계(920)에서, 클라이언트(910)의 접속은 최초 접속일 수 있다. 서버(911)는 클라이언트(910)로부터 클라이언트(910)의 식별 정보를 수신할 수 있고, 시간값을 확인할 수 있다. 여기서, 시간값은 클라이언트(910)가 서버(911)에 접속한 시간을 나타낼 수 있다.9, the client 910 accesses the server 911 (920). At step 920, the connection of the client 910 may be the initial connection. The server 911 can receive the identification information of the client 910 from the client 910 and check the time value. Here, the time value may indicate the time when the client 910 accesses the server 911.

서버(911)는 자신의 암호화 기법인 E서버{}를 이용하여 클라이언트(910)의 식별 정보 및 시간값을 암호화할 수 있다.The server 911 can encrypt the identification information and the time value of the client 910 using the E server {}, which is its encryption technique.

서버(911)는 클라이언트(910)에게 질문을 전송할 수 있다(921). 질문은 무작위로 생성될 수 있다. 예를 들어, 서버(911)는 암호화된 식별 정보 및 시간값, 즉, E서버{식별 정보, 시간값}을 질문으로서 클라이언트(910)에게 전송할 수 있다. 즉, 클라이언트(910)는 서버(911)로부터 E서버{식별 정보, 시간값}을 수신할 수 있다.The server 911 may send a query to the client 910 (921). Questions can be randomly generated. For example, the server 911 may send the encrypted identification information and the time value, i.e., the E server (identification information, time value) to the client 910 as a query. That is, the client 910 can 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 a query from the server 911, it may send an answer to the server 911 (922). For example, the client 910 can encrypt the E- server (identification information, time value) using the E- client {}, which is its own encryption scheme, and the E- client {E- server {identification information, time value}} To the server 911 as an answer.

서버(911)는 E클라이언트{}에 대응하는 복호화를 통해 E클라이언트{E서버{식별 정보, 시간값}}로부터 E서버{식별 정보, 시간값}를 획득할 수 있다. 또한, 서버(911)는 E서버{식별 정보, 시간값}를 복호화하여 식별 정보 및 시간값을 획득할 수 있다.Server 911 may obtain the client E {{E server identification information, the time value}} E {server identification information, the time value is generated from the decoding through the corresponding client E {}. In addition, the server 911 can obtain the identification information and the time value by decoding the E server (identification information, time value).

서버(911)는 답이 질문에 대응하는지 확인할 수 있다(923). 예를 들어, 서버(911)는 E클라이언트{E서버{식별 정보, 시간값}}로부터 획득된 식별 정보 및 시간값이 단계(910)에서 수신된 식별 정보 및 확인된 시간값에 대응하는지 확인할 수 있다.The server 911 can confirm whether the answer corresponds to the question (923). For example, the server 911 can determine whether the identification information and the time value obtained from the E client {E- server {identification information, time value}} corresponds 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, the server 911 may maintain a communication session with the client 910 (924). The session may be, for example, a UDP session. If the answer does not correspond to the query, the server 911 may send a reconnection request to the client 910 (925).

클라이언트(910)와 서버(911) 사이의 세션이 유지된 상태에서, 클라이언트(910)는 P2P 통신 요청을 서버(911)에 전송할 수 있다. 클라이언트(910)와 서버(911) 사이의 세션이 유지된 상태에서, 클라이언트(910)는 도 1의 단계(120) 또는 도 2의 단계(220)를 실행할 수 있다.In a state where a session between the client 910 and the server 911 is maintained, the client 910 can transmit a P2P communication request to the server 911. [ With the session between client 910 and server 911 maintained, client 910 may execute step 120 of FIG. 1 or step 220 of FIG.

도 9를 통해 설명한 세션 유지는 도 1을 통해 설명한 상대 클라이언트와 서버에 적용될 수 있다. 보다 구체적으로, 도 1의 단계(138)에서, 상대 클라이언트는 서버에게 네트워크 주소가 변경되었음을 서버에게 알리기 위해 서버에 접속할 수 있고, 서버에 자신의 식별 정보를 전송할 수 있다. 여기서, 서버는 자신이 이미 알고 있는 상대 클라이언트의 네트워크 주소와 다른 네트워크 주소에 맵핑된 제3자로부터 상대 클라이언트의 식별 정보를 수신한다. 즉, 서버는 제3자가 상대 클라이언트인지 해커인지 정확하게 알 수 없다. 서버는 E서버{상대 클라이언트의 식별 정보, 시간값}을 질문으로서 제3자에게 전송할 수 있고, E상대 클라이언트{E서버{상대 클라이언트의 식별 정보, 시간값}}을 답으로서 수신할 수 있다. 서버는 E상대 클라이언트{}에 대응하는 복호화 기법 및 E서버{}에 대응하는 복호화 기법을 이용하여 E상대 클라이언트{E서버{상대 클라이언트의 식별 정보, 시간값}}로부터 상대 클라이언트의 식별 정보 및 시간값을 획득할 수 있다. 즉, 답이 질문에 대응한다. 서버는 제3가 상대 클라이언트임을 확인할 수 있고, 상대 클라이언트와의 세션을 유지할 수 있다. 단계(139)에서, 서버는 상대 클라이언트의 네트워크 주소가 변경되었음을 알릴 수 있다. 다시 말해, 서버는 상대 클라이언트가 다른 네트워크 주소에 맵핑 되었음을 클라이언트에게 알릴 수 있다. The session maintenance described with reference to FIG. 9 can be applied to the relative client and the server described with reference to FIG. More specifically, in step 138 of FIG. 1, the opponent client may contact the server to inform the server that the network address has changed and may send its identification information to the server. Here, the server receives the identification information of the partner client from a third party mapped to a network address different from the network address of the partner client which the server already knows. That is, the server can not know whether the third party is a relative client or a hacker. The server can receive an answer to E server, a question {opponents client identification information, time value} be transferred to a third party, E For client {E server {opponents client identification information and the time value}}. The server identification of the external client from E relative client {} decoding technique and E server {} decoding technique using the E relative client {E server {opponent client identification information, the time value} which corresponds to corresponding to the information, and time Value can be obtained. That is, the answer corresponds to the question. The server can confirm that the third client is a relative client and can maintain a session with the other client. At step 139, the server may notify that the network address of the other client has changed. In other words, the server can notify the client that the other client is mapped to another 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 the server 911 receives a P2P communication request from the client 910, the server 911 can assign a session identifier to the client 910. [ The session identifier may be used to identify the client 910 on the network. The session identifier may be included in the header of a transmission unit of the client 910 (e.g., a packet that the client 910 exchanges with the server 911, the intermediate unit, or the other client). The server 911 can maintain a communication session with the client 910 when the server 911 receives a transmission unit including the session identifier even if the network address of the client 910 is changed.

도 1 내지 도 8을 통해 기술된 사항들은 도 9를 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다. 또한, 도 9를 통해 기술된 사항들은 도 1 내지 도8을 통해 기술된 사항들에 적용될 수 있다.1 through 8 can be applied to the matters described with reference to FIG. 9, so that a detailed description will be omitted. In addition, the matters described with reference to FIG. 9 can be applied to the matters described in FIGS. 1 to 8. FIG.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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 apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA) , 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 execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(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 foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The 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 an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media 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 machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.

그러므로, 다른 구현들, 다른 실시예들 및 청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (12)

클라이언트의 동작 방법에 있어서,
P2P 통신 요청을 서버로 전송하는 단계;
상기 클라이언트와 상대 클라이언트의 통신을 매개하는 통신 매개 장치에 의해 생성된 매개키 및 상기 상대 클라이언트의 네트워크 주소를 상기 서버로부터 수신하는 단계;
상기 매개키를 이용하여 상기 통신 매개 장치와 연결하는 단계;
상기 통신 매개 장치와 연결되어 매개 경로가 확보된 경우, 상기 상대 클라이언트에게 속도 테스트를 요청하는 단계;
상기 상대 클라이언트로부터 상기 속도 테스트에 대한 테스트 응답을 수신하는 단계;
상기 테스트 응답을 이용하여 상기 상대 클라이언트의 응답 시간을 확인하는 단계;
상기 응답 시간을 확인한 경우, 상기 네트워크 주소를 이용하여 상기 상대 클라이언트에게 데이터를 전송하는 단계;
상기 상대 클라이언트에게 전송한 데이터에 대한 확인 응답을 상기 네트워크 주소의 변경으로 인해 수신하지 못한 경우, 상기 데이터를 상기 통신 매개 장치로 전송하는 단계
를 포함하고,
상기 상대 클라이언트는, 상기 매개키를 이용하여 상기 통신 매개 장치에 접속하고, 상기 통신 매개 장치로부터 상기 데이터를 수신하는,
클라이언트의 동작 방법.
In a method of operating a client,
Transmitting a P2P communication request to a server;
Receiving from the server an intermediate key generated by a communication intermediary device that mediates communication between the client and the counterpart client and a network address of the counterpart client;
Communicating with the communication intermediary device using the intermediary key;
Requesting a speed test to the correspondent client when an intermediary path is established by being connected to the communication mediator;
Receiving a test response for the speed test from the counterpart client;
Checking a response time of the corresponding client using the test response;
Transmitting the data to the counterpart client using the network address when the response time is confirmed;
And transmitting the data to the communication mediating device when an acknowledgment of the data transmitted to the other client is not received due to the change of the network address
Lt; / RTI >
The relative client is connected to the communication intermediary device using the intermediary key and receives the data from the communication intermediary device,
How the client works.
제1항에 있어서,
상기 통신 매개 장치와 연결되는 경우, 상기 매개키에 대응하는 매개 경로가 확보되는,
클라이언트의 동작 방법.
The method according to claim 1,
Wherein when an intermediate path corresponding to the intermediate key is secured,
How the client works.
제2항에 있어서,
상기 매개 경로는,
상기 매개키를 보유한 상기 클라이언트 및 상기 상대 클라이언트의 전용 방(dedicated room)을 포함하는,
클라이언트의 동작 방법.
3. The method of claim 2,
The intermediate path may comprise:
And a dedicated room of the client having the intermediate key and the corresponding client,
How the client works.
제1항에 있어서,
상기 데이터를 상기 통신 매개 장치로 전송한 후, 상기 서버로부터 상기 네트워크 주소가 변경되었다는 통지를 수신하는 단계
를 더 포함하는,
클라이언트의 동작 방법.
The method according to claim 1,
Transmitting the data to the communication mediator, and receiving a notification from the server that the network address has changed
≪ / RTI >
How the client works.
삭제delete 제1항에 있어서,
상기 데이터를 상기 통신 매개 장치로 전송하는 단계는,
상기 확인 응답을 상기 응답 시간 이내에 수신하지 못한 경우, 상기 데이터를 상기 통신 매개 장치로 전송하는 단계
를 포함하는,
클라이언트의 동작 방법.
The method according to claim 1,
Wherein the step of transmitting the data to the communication-
If the acknowledgment has not been received within the response time, transmitting the data to the communication intermediary device
/ RTI >
How the client works.
클라이언트 장치에 있어서,
P2P 통신 요청을 서버로 전송하고, 상기 클라이언트 장치와 상대 클라이언트 장치의 통신을 매개하는 통신 매개 장치에 의해 생성된 매개키 및 상기 상대 클라이언트 장치의 네트워크 주소를 상기 서버로부터 수신하며, 상기 매개키를 이용하여 상기 통신 매개 장치와 연결하고, 상기 통신 매개 장치와 연결되어 매개 경로가 확보된 경우, 상기 상대 클라이언트 장치에게 속도 테스트를 요청하고, 상기 상대 클라이언트 장치로부터 상기 속도 테스트에 대한 테스트 응답을 수신하며, 상기 테스트 응답을 이용하여 상기 상대 클라이언트 장치의 응답 시간을 확인하고, 상기 응답 시간을 확인한 경우, 상기 네트워크 주소를 이용하여 상기 상대 클라이언트 장치에게 데이터를 전송하고, 상기 네트워크 주소가 변경되어 상기 상대 클라이언트 장치에게 전송한 데이터에 대한 확인 응답을 수신하지 못한 경우, 상기 데이터를 상기 통신 매개 장치로 전송하는 연결부; 및
상기 연결부를 제어하는 프로세서
를 포함하고,
상기 상대 클라이언트 장치는, 상기 매개키를 이용하여 상기 통신 매개 장치에 접속하고, 상기 통신 매개 장치로부터 상기 데이터를 수신하는,
클라이언트 장치.
In a client device,
Receiving a peer-to-peer communication request from the server, and transmitting the peer-to-peer communication request to the server; receiving from the server an intermediate key generated by a communication intermediary apparatus that mediates communication between the client apparatus and the peer client apparatus and a network address of the peer client apparatus; A request for a speed test to the counterpart client device, a test response for the speed test from the counterpart client device, And transmits the data to the partner client device using the network address when the response time is confirmed by checking the response time of the partner client device using the test response, Sent to If you have not received an acknowledgment for the data, the connection for transmitting the data to the communication device parameters; And
A processor
Lt; / RTI >
Wherein the partner client device is further configured to: connect to the communication intermediary device using the intermediary key; and receive the data from the communication-
Client device.
제7항에 있어서,
상기 통신 매개 장치와 연결되는 경우, 상기 매개키에 대응하는 매개 경로가 확보되는,
클라이언트 장치.
8. The method of claim 7,
Wherein when an intermediate path corresponding to the intermediate key is secured,
Client device.
제8항에 있어서,
상기 매개 경로는,
상기 매개키를 보유한 상기 클라이언트 장치 및 상기 상대 클라이언트 장치의 전용 방(dedicated room)을 포함하는,
클라이언트 장치.
9. The method of claim 8,
The intermediate path may comprise:
And a dedicated room of the client device having the intermediary key and the counterpart client device.
Client device.
제7항에 있어서,
상기 클라이언트 장치는,
상기 데이터를 상기 통신 매개 장치로 전송한 후, 상기 서버로부터 상기 네트워크 주소가 변경되었다는 통지를 수신하는,
클라이언트 장치.
8. The method of claim 7,
The client device comprising:
Receiving a notification from the server that the network address has changed after transmitting the data to the communication mediator,
Client device.
삭제delete 제7항에 있어서,
상기 클라이언트 장치는,
상기 확인 응답을 상기 응답 시간 이내에 수신하지 못한 경우, 상기 데이터를 상기 통신 매개 장치로 전송하는,
클라이언트 장치.
8. The method of claim 7,
The client device comprising:
Transmitting the data to the communication mediator if the acknowledgment is not received within the response time,
Client device.
KR1020160138226A 2015-07-10 2016-10-24 Method of managing network route and network entity enabling the method KR101730404B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20150098354 2015-07-10
KR1020150098354 2015-07-10

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020160018413A Division KR101785385B1 (en) 2015-06-30 2016-02-17 Method of managing network route and network entity enabling the method

Publications (2)

Publication Number Publication Date
KR20170007215A KR20170007215A (en) 2017-01-18
KR101730404B1 true KR101730404B1 (en) 2017-05-11

Family

ID=57992485

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020160018413A KR101785385B1 (en) 2015-06-30 2016-02-17 Method of managing network route and network entity enabling the method
KR1020160138226A KR101730404B1 (en) 2015-07-10 2016-10-24 Method of managing network route and network entity enabling the method
KR1020160138217A KR101730403B1 (en) 2015-07-10 2016-10-24 Method of managing network route and network entity enabling the method
KR1020160138234A KR101730405B1 (en) 2015-07-10 2016-10-24 Method of managing network route and network entity enabling the method

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020160018413A KR101785385B1 (en) 2015-06-30 2016-02-17 Method of managing network route and network entity enabling the method

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020160138217A KR101730403B1 (en) 2015-07-10 2016-10-24 Method of managing network route and network entity enabling the method
KR1020160138234A KR101730405B1 (en) 2015-07-10 2016-10-24 Method of managing network route and network entity enabling the method

Country Status (1)

Country Link
KR (4) KR101785385B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101982312B1 (en) * 2017-02-10 2019-05-24 고려대학교 산학협력단 Method for wi-fi direct group formation with server support

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101240552B1 (en) * 2011-09-26 2013-03-11 삼성에스디에스 주식회사 System and method for managing media keys and for transmitting/receiving peer-to-peer messages using the media keys

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101240552B1 (en) * 2011-09-26 2013-03-11 삼성에스디에스 주식회사 System and method for managing media keys and for transmitting/receiving peer-to-peer messages using the media keys

Also Published As

Publication number Publication date
KR101730405B1 (en) 2017-04-26
KR20170007216A (en) 2017-01-18
KR20170007215A (en) 2017-01-18
KR20170007089A (en) 2017-01-18
KR101730403B1 (en) 2017-04-26
KR20170007214A (en) 2017-01-18
KR101785385B1 (en) 2017-10-16

Similar Documents

Publication Publication Date Title
CN110771118B (en) Seamless mobility and session continuity with TCP mobility options
US9565167B2 (en) Load balancing internet protocol security tunnels
CN107113319B (en) Method, device and system for responding in virtual network computing authentication and proxy server
US9344405B1 (en) Optimized transport layer security
KR102095893B1 (en) Service processing method and device
US10897509B2 (en) Dynamic detection of inactive virtual private network clients
CN110870277A (en) Introducing middleboxes into secure communication between a client and a server
US20170149748A1 (en) Secure Group Messaging and Data Steaming
US9231907B2 (en) Method for establishing connection between communication apparatuses, communication apparatus, and server apparatus
CN110191052B (en) Cross-protocol network transmission method and system
US9049012B2 (en) Secured cryptographic communication system
CN107104919B (en) Firewall equipment and processing method of Stream Control Transmission Protocol (SCTP) message
US10630479B2 (en) Network communication method having function of recovering terminal session
KR101730404B1 (en) Method of managing network route and network entity enabling the method
KR101971995B1 (en) Method for decryping secure sockets layer for security
JP2010278556A (en) Apparatus and method for transmission and reception of packet
US11979230B1 (en) Method and system for transmitting data over multiple paths
CN112470438B (en) Method for discovering intermediate functions and selecting a path between two communication devices
JP2014013972A (en) Communication device and communication method, communication system, and computer program
KR101888952B1 (en) Client and operation method of client
CN111797417A (en) File uploading method and device, storage medium and electronic device
JP6762735B2 (en) Terminal-to-terminal communication system, terminal-to-terminal communication method, and computer program
KR101771992B1 (en) Operation method of server and client, server enabling the operation method, and client apparatus enabling the operation method
KR101594897B1 (en) Secure Communication System and Method for Building a Secure Communication Session between Lightweight Things
JP2022059829A (en) Communication system, communication method, and communication program

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant