KR102087735B1 - 중계 프록시 서버, 이를 이용한 데이터 전송 중계 방법 및 데이터 전송시스템 - Google Patents

중계 프록시 서버, 이를 이용한 데이터 전송 중계 방법 및 데이터 전송시스템 Download PDF

Info

Publication number
KR102087735B1
KR102087735B1 KR1020130142598A KR20130142598A KR102087735B1 KR 102087735 B1 KR102087735 B1 KR 102087735B1 KR 1020130142598 A KR1020130142598 A KR 1020130142598A KR 20130142598 A KR20130142598 A KR 20130142598A KR 102087735 B1 KR102087735 B1 KR 102087735B1
Authority
KR
South Korea
Prior art keywords
tunneling
data packet
virtual network
terminal
server
Prior art date
Application number
KR1020130142598A
Other languages
English (en)
Other versions
KR20150059248A (ko
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 삼성에스디에스 주식회사
Priority to KR1020130142598A priority Critical patent/KR102087735B1/ko
Publication of KR20150059248A publication Critical patent/KR20150059248A/ko
Application granted granted Critical
Publication of KR102087735B1 publication Critical patent/KR102087735B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

중계 프록시 서버 및 이를 이용한 데이터 전송 방법과 시스템이 개시된다. 본 발명의 일 실시예에 따른 데이터 전송 시스템은, 제1 단말기와 연결되는 제1 터널링 서버; 상기 제1 단말기와 기본 TCP 연결된 제2 단말기와 연결되는 제2 터널링 서버; 및 상기 제1 터널링 서버와 제1 가상 네트워크를 연결하고, 상기 제2 터널링 서버와 제2 가상 네트워크를 연결하며, 상기 제1 터널링 서버로부터 상기 제1 가상 네트워크를 통하여 수신되는 데이터 패킷을 상기 제2 가상 네트워크를 통해 상기 제2 터널링 서버로 전송하는 중계 프록시 서버를 포함한다.

Description

중계 프록시 서버, 이를 이용한 데이터 전송 중계 방법 및 데이터 전송시스템{RELAY PROXY SERVER, METHOD FOR RELAYING DATA TRANSMISSION AND DATA TRANSMISSION SYSTEM}
본 발명의 실시예는 데이터 전송 기술에 관한 것으로서, 보다 상세하게는 중계 프록시 서버 및 이를 이용한 데이터 전송 방법과 시스템에 관한 것이다.
일반적으로, TCP(Transmission Control Protocol) 연결 시 단위 시간당 데이터 전송량(Throughput)은 수신 윈도우(RWND)/라운드 트립 타임(RTT)으로 제한되게 된다.
도 1은 일반적인 TCP 연결 시 단위 시간당 데이터 전송량을 구하는 상태를 나타낸 도면이다. 도 1을 참조하면, 클라이언트(10)와 웹 서버(20) 간에 TCP 연결이 이루어진 경우, 단위 시간당 데이터 전송량은 Min(CWND, RWND)/RTT로 나타낼 수 있다. 여기서, CWND(Congestion Window)는 네트워크 통신망의 혼잡 상태에 따라 전송 노드가 조절하는 윈도우 크기를 말하고, RWND(Receive Window)는 수신 노드의 윈도우 크기를 말하며, RTT(Round Trip Time)은 전송 노드와 수신 노드 간의 데이터 패킷의 왕복 시간을 말한다. 일반적으로 CWND ≫ RWND 이므로, 단위 시간당 데이터 전송량은 RWND/RTT으로 나타낼 수 있다. RWND는 수신 노드의 상황에 따라 달라지나 단위 시간당 데이터 전송량의 이론적인 최대값을 구하기 위해 RWND의 최대값인 64K byte를 이용하기로 한다. RWND가 64 Kbyte이고, 클라이언트(10)와 웹 서버(20) 간의 RTT가 400ms인 경우, 단위 시간당 데이터 전송량은 (64 Kbyte × 8bit)/0.4s = 1310720 bps = 1.25 Mbps가 된다.
이와 같이, 단위 시간당 데이터 전송량은 RWND/RTT에 의해 제한되는데, 이러한 문제를 해결하기 위해 티씨피 스플라이싱(TCP SPLICING) 기법이 제안된 바 있다. 티씨피 스플라이싱 기법은 두 개의 서로 다른 TCP 연결을 서로 이어주는 기법을 말한다.
도 2는 티씨피 스플라이싱 기법을 통해 단위 시간당 데이터 전송량을 향상시키는 상태를 나타낸 도면이다.
도 2를 참조하면, 클라이언트(10)와 웹 서버(20) 사이에 프록시 서버(30)를 두고 티씨피 스플라이싱 기법을 적용하면, 클라이언트(10)와 프록시 서버(30) 간에 TCP 연결이 이루어지고, 웹 서버(20)와 프록시 서버(30) 간에 또 다른 TCP 연결이 이루어지게 된다. 이 두 개의 TCP 연결을 프록시 서버(30)가 이어주게 된다. 각 TCP 연결의 RTT가 200ms인 경우, 각 TCP 연결의 단위 시간당 데이터 전송량은 (64 Kbyte × 8bit)/0.2s = 2621440 bps = 2.5 Mbps가 된다.
단위 시간당 데이터 전송량이 각각 2.5 Mbps인 두 개의 TCP 연결이 프록시 서버(30)에 의해 연결되므로, 클라이언트(10)와 웹 서버(20) 간의 단위 시간당 데이터 전송량은 2.5 Mbps로 유지되게 된다. 이와 같이, 티씨피 스플라이싱 기법을 사용하면, TCP 연결 시 RTT를 줄일 수 있어 단위 시간당 데이터 전송량을 증가시킬 수 있게 된다.
그러나, 티씨피 스플라이싱 기법은 반드시 프록시 서버를 거쳐야 하기 때문에, 클라이언트(10)에서 프록시 서버(30)에 접속한 후 프록시 서버(30)가 다시 웹 서버(20)에 접속하는 형태로 프록시 설정을 해주어야 한다. 그러나, 일반 사용자가 이러한 프록시 설정을 하는 것은 어렵고 번거로운 작업이라는 문제가 있으며, FTP 등 다른 데이터 전송 프로그램에서는 적용할 수 없다는 문제점이 있다.
삭제
본 발명의 실시예는 별도의 설정 또는 프로그램의 변경 없이 단위 시간당 데이터 전송량을 증가시킬 수 있는 중계 프록시 서버 및 이를 이용한 데이터 전송 방법과 시스템을 제공하고자 한다.
본 발명의 일 실시예에 따른 데이터 전송 시스템은, 제1 단말기와 연결되는 제1 터널링 서버; 상기 제1 단말기와의 기본 TCP 연결을 통해 상기 제1 단말기로부터 데이터 패킷을 수신하는 제2 단말기와 연결되는 제2 터널링 서버; 및상기 제1 터널링 서버와 제1 가상 네트워크를 형성하고, 상기 제2 터널링 서버와 제2 가상 네트워크를 형성하며, 상기 제1 터널링 서버로부터 상기 제1 가상 네트워크를 통하여 수신되는 데이터 패킷을 상기 제2 가상 네트워크를 통해 상기 제2 터널링 서버로 전송하는 중계 프록시 서버를 포함한다.
상기 제1 터널링 서버는, 상기 제1 단말기로부터 상기 데이터 패킷을 수신하고, 수신된 상기 데이터 패킷을 캡슐화하여 상기 제1 가상 네트워크를 통해 상기 중계 프록시 서버로 송신할 수 있다.
상기 제1 터널링 서버는, 상기 중계 프록시 서버와 제1 터널링 연결을 수립하고, 상기 제1 터널링 연결에 대응되는 제1 가상 네트워크 헤더를 수신된 상기 데이터 패킷에 부가함으로써 상기 데이터 패킷을 캡슐화할 수 있다.
상기 중계 프록시 서버는, 상기 제1 터널링 서버로부터 수신된 캡슐화된 데이터 패킷을 재캡슐화하여 상기 제2 가상 네트워크를 통해 상기 제2 터널링 서버로 송신할 수 있다.
상기 중계 프록시 서버는, 상기 수신된 캡슐화된 데이터 패킷을 캡슐 해제(Decapsulation)하고, 캡슐 해제된 상기 데이터 패킷으로부터 획득한 기본 TCP 정보를 이용하여 상기 기본 TCP 연결을 종단 처리하며, 상기 제2 터널링 서버와 제2 터널링 연결을 수립하고, 캡슐 해제된 데이터 패킷에 상기 제2 터널링 연결에 대응되는 제2 가상 네트워크 헤더를 부가하여 제2 터널링 서버로 송신할 수 있다.
상기 제2터널링 서버는,상기 중계 프록시 서버로부터 수신된 재캡슐화된 데이터 패킷을 캡슐 해제(decapsulation)하고, 캡슐 해제된 상기 데이터 패킷을 상기 제2 단말기로 송신할 수 있다.
한편, 본 발명의 일 실시예에 따른 중계 프록시 서버는, 제1 단말기 및 상기 제1 단말기와의 기본 TCP 연결을 통해 상기 제1 단말기로부터 데이터 패킷을 수신하는 제2 단말기 간의 상기 데이터 패킷 송수신을 중계하는 중계 프록시 서버로서, 상기 제1 단말기에 연결된 제1 터널링 서버와 제1 가상 네트워크를 형성하고, 상기 제1 가상 네트워크를 통해 상기 제1 터널링 서버로부터 캡슐화된 상기 데이터 패킷을 수신하는 제1 가상 네트워크 연결부; 상기 제1 가상 네트워크 연결부를 통해 수신된 상기 캡슐화된 데이터 패킷을 재캡슐화 하는 재캡슐화부; 및 상기 제2 단말기에 연결된 제2 터널링 서버와 제2 가상 네트워크를 형성하고, 재캡슐화된 상기 데이터 패킷을 상기 제2 가상 네트워크를 통해 상기 제2 터널링 서버로 송신하는 제2 가상 네트워크 연결부를 포함한다.
상기 제1 가상 네트워크 연결부는, 상기 제1 터널링 서버와 제1 터널링 연결을 수립하고, 상기 제1 터널링 연결에 대응되는 제1 가상 네트워크 헤더가 부가됨으로써 캡슐화된 데이터 패킷을 상기 제1 터널링 서버로부터 수신할 수 있다.
상기 제2 가상 네트워크 연결부는, 상기 제2 터널링 서버와 제2 터널링 연결을 수립하며, 상기 재캡슐화부는, 상기 캡슐화된 데이터 패킷을 캡슐 해제(Decapsulation)하고, 캡슐 해제된 상기 데이터 패킷으로부터 획득한 기본 TCP 정보를 이용하여 상기 기본 TCP 연결을 종단 처리하며, 캡슐 해제된 상기 데이터 패킷에 상기 제2 터널링 연결에 대응되는 제2 가상 네트워크 헤더를 추가함으로써 상기 캡슐화된 데이터 패킷을 재캡슐화할 수 있다.
한편, 본 발명의 일 실시예에 따른 데이터 전송 중계 방법은, 제1 단말기 및 상기 제1 단말기와의 기본 TCP 연결을 통해 상기 제1 단말기로부터 데이터 패킷을 수신하는 제2 단말기 간의 데이터 전송을 중계하기 위한 방법으로서, 제1 가상 네트워크 연결부에서, 상기 제1 단말기에 연결된 제1 터널링 서버와 제1 가상 네트워크를 형성하고, 상기 제1 가상 네트워크를 통해 상기 제1 터널링 서버로부터 캡슐화된 데이터 패킷을 수신하는 단계; 재캡슐화부에서, 상기 제1 가상 네트워크 연결부를 통해 수신된 상기 캡슐화된 데이터 패킷을 재캡슐화하는 단계; 및 제2 가상 네트워크 연결부에서, 상기 제2 단말기에 연결된 제2 터널링 서버와 제2 가상 네트워크를 형성하고, 재캡슐화된 상기 데이터 패킷을 상기 제2 가상 네트워크를 통해 상기 제2 터널링 서버로 송신하는 단계를 포함할 수 있다.
상기 캡슐화된 데이터 패킷을 수신하는 단계는, 상기 제1 터널링 서버와 제1 터널링 연결을 수립하는 단계; 및 상기 제1 터널링 연결에 대응되는 제1 가상 네트워크 헤더가 부가됨으로써 캡슐화된 데이터 패킷을 상기 제1 터널링 서버로부터 수신하는 단계를 더 포함할 수 있다.
상기 제2 가상 네트워크 연결부는, 상기 제2 터널링 서버와 제2 터널링 연결을 수립하며, 상기 재캡슐화 단계는, 상기 캡슐화된 데이터 패킷을 캡슐 해제(Decapsulation)하는 단계; 캡슐 해제된 상기 데이터 패킷으로부터 획득한 기본 TCP 정보를 이용하여 상기 기본 TCP 연결을 종단 처리하는 단계; 및 캡슐 해제된 상기 데이터 패킷에 상기 제2 터널링 연결에 대응되는 제2 가상 네트워크 헤더를 추가함으로써 상기 캡슐화된 데이터 패킷을 재캡슐화하는 단계를 더 포함할 수 있다.
본 발명의 실시예에 의하면, 제1 단말기와 제2 단말기 사이에 중계 프록시 서버를 통해 티씨피 스플라이싱 기법을 적용함으로써, 제1 단말기와 제2 단말기 간의 라운드 트립 타임을 줄일 수 있으며, 그로 인해 단위 시간당 데이터 전송량을 증가시킬 수 있게 된다. 이때, 중계 프록시 서버는 제1 단말기에 연결된 제1 터널링 서버 및 제2 단말기에 연결된 제2 터널링 서버를 통해 각각 가상 네트워크를 형성하고 두 개의 가상 네트워크 사이에서 TCP 연결을 가로채 사용자에게 투명한 프록시 기능을 수행하기 때문에, 제1 단말기 또는 제2 단말기의 사용자 측에서 프록시 설정을 변경하거나 데이터 전송 프로그램을 수정 또는 변경하지 않아도 된다.
도 1은 일반적인 TCP 연결 시 단위 시간당 데이터 전송량을 구하는 상태를 나타낸 도면
도 2는 티씨피 스플라이싱 기법을 통해 단위 시간당 데이터 전송량을 향상시키는 상태를 나타낸 도면
도 3은 터널링 프로토콜을 이용하여 오버레이 네트워크를 구현하는 상태를 나타낸 도면
도 4는 본 발명의 일 실시예에 따른 데이터 전송 시스템의 구성을 나타낸 도면
도 5는 본 발명의 일 실시예에 따른 중계 프록시 서버의 구성을 나타낸 도면
이하, 도 3 내지 도 5를 참조하여 본 발명의 중계 프록시 서버 및 이를 이용한 데이터 전송 방법과 시스템의 구체적인 실시예를 설명하기로 한다. 그러나 이는 예시적 실시예에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명의 기술적 사상은 청구범위에 의해 결정되며, 이하 실시예는 진보적인 본 발명의 기술적 사상을 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 효율적으로 설명하기 위한 일 수단일 뿐이다.
본 발명의 실시예에서는프록시 설정 또는 응용 프로그램의 변경 없이 티씨피 스플라이싱 기법을 적용하기 위해, 터널링 프로토콜(Tunneling Protocol)을 통한 오버레이 네트워크(Overlay Network)를 이용하도록 구성된다. 오버레이 네트워크를 이용하면 프록시 설정 또는 응용 프로그램의 변경 없이 특정 서버로 향하는 트래픽의라우팅 경로가 지정된 임의의 서버를 거치도록 할 수 있게 된다.
도 3은 터널링 프로토콜을 이용하여 오버레이 네트워크를 구현하는 상태를 나타낸 도면이다.도 3을 참조하면, 클라이언트(50)와 서버(60) 사이에서 실제적인 라우팅 경로는 클라이언트(50) → R1 → R2 → R3 → R4 → R5 → 서버(60)가 된다. 여기서, R1, R2, R3, R4, R5는 라우터를 나타낸다. 여기서, 이러한 라우팅 경로 밖에 위치하는 라우터 R6과 라우터 R1 및 라우터 R5 사이를 각각 터널링 프로토콜을 이용하여 연결하여 오버레이 네트워크를 형성하면, 클라이언트(50)와 서버(60) 사이에 클라이언트(50) → R1 → R6 → R5 → 서버(60)로 이어지는 논리적 라우팅 경로를 만들 수 있게 된다. 본 발명의 실시예에서는 터널링 프로토콜을 이용하여 오버레이 네트워크를 구성하고, 클라이언트와 서버 사이에 티씨피 스플라이싱 기법이 적용된 중계 프록시 서버를 둠으로써, 클라이언트와 서버 사이의 라운드 트립 타임(RTT)을 줄이고 단위 시간당 데이터 전송량을 증가시킬 수 있게 된다.
도 4는 본 발명의 일 실시예에 따른 데이터 전송 시스템의 구성을 나타낸 도면이다.
도 4를 참조하면, 데이터 전송 시스템(100)은 제1 단말기(102), 제1 터널링 서버(104), 중계 프록시 서버(106), 제2 터널링 서버(108), 및 제2 단말기(110)를 포함한다. 여기서, 해당 네트워크에는 4개의 라우터(R1, R2, R3, R4)가 존재하는 것으로 가정하기로 한다. 라우터 R1, 라우터 R2, 라우터 R3는 각각 제1 터널링 서버(104), 중계 프록시 서버(106), 및 제2 터널링 서버(108)에 연결될 수 있다. 이 경우, 제1 터널링 서버(104)는 라우터 R1을 통해 데이터를 송신 및 수신하고, 중계 프록시 서버(106)는 라우터 R2를 통해 데이터를 송신 및 수신하며, 제2 터널링 서버(108)는 라우터 R3를 통해 데이터를 송신 및 수신하게 된다. 이하 본 발명의 명세서에서는, 제1 터널링 서버(104), 중계 프록시 서버(106), 및 제2 터널링 서버(108)가 각각 라우터 R1, 라우터 R2, 및 라우터 R3를 통해 데이터를 송신 및 수신하는 것을 제1 터널링 서버(104), 중계 프록시 서버(106), 및 제2 터널링 서버(108)가 데이터를 송신 및 수신하는 것으로 간단히 표현하기로 한다.
제1 단말기(102)와 제2 단말기(110) 간의 기본적인 라우팅 경로는 제1 단말기(102) →라우터 R1 →라우터 R4 →라우터 R3 → 제2 단말기(110)인 것으로 가정한다. 제1 단말기(102) 및 제2 단말기(110) 간에는 상기 기본적인 라우팅 경로를 통해 TCP 연결이 이루어지게 된다. 여기서, 기본 라우팅 경로 밖에 위치하는 라우터 R2와 라우터 R1 및 라우터 R3 사이에 터널링 프로토콜을 이용한 오버레이 네트워크(즉, 가상 네트워크)를 형성하기 위해 라우터 R1, 라우터 R2, 라우터 R3의 위치에 각각 제1 터널링 서버(104), 중계 프록시 서버(106), 및 제2 터널링 서버(108)를 구축할 수 있다. 제1 터널링 서버(104), 중계 프록시 서버(106), 및 제2 터널링 서버(108)는 네트워크에 구축되어 있는 기존의 서버를 이용할 수도 있다. 중계 프록시 서버(106)는 제1 단말기(102)와 제2 단말기(110) 사이에 티씨피 스플라이싱 기법을 적용하기 위한 서버이다. 본 발명의 실시예에서는 중계 프록시 서버(106)와 제1 터널링 서버(104) 및 제2 터널링 서버(108) 간에 각각 터널링 연결을 통한 가상 네트워크를 형성함으로써, 제1 단말기(102)와 제2 단말기(110) 간에 제1 단말기(102) →라우터 R1 →라우터 R2 →라우터 R3 → 제2 단말기(110)의 논리적 라우팅 경로를 형성할 수 있게 된다.
이하, 데이터 전송 시스템(100)을 이용하여 제1 단말기(102)가 제2 단말기(110)로 데이터 패킷을 전송하는 과정에 대해 살펴보기로 한다. 즉, 제1 단말기(102) 및 제2 단말기(110) 간에 상기 기본적인 라우팅 경로에 의한 TCP 연결(이하, 기본 TCP 연결이라 함)이 이루어져 있는 경우, 상기 가상 네트워크 및 티씨피 스플라이싱 기법에 의해 형성된 논리적 라우팅 경로에 따라 데이터 패킷이 전송되는 과정에 대해 살펴보기로 한다.
먼저, 중계 프록시 서버(106)는 제1 터널링 서버(104)와 제1 가상 네트워크를 형성하고(①), 제2 터널링 서버(108)와 제2 가상 네트워크를 형성한다(②). 중계 프록시 서버(106)는 터널링 프로토콜을 이용하여 제1 터널링 서버(104)와 제1 가상 네트워크(즉, 오버레이 네트워크)를 형성하고, 제2 터널링 서버(108)와 제2 가상 네트워크를 형성할 수 있다. 이와 같이, 제1 가상 네트워크 및 제2 가상 네트워크를 형성함으로써, 제1 터널링 서버(104)와 중계 프록시 서버(106) 간에 제1 터널링 연결이 이루어지고, 중계 프록시 서버(106)와 제2 터널링 서버(110) 간에 제2 터널링 연결이 이루어지게 된다. 이때, 상기 제1 터널링 연결 및 제2 터널링 연결은 예를 들어 TCP를 이용하여 수행될 수 있다. 이 경우 상기 제1 터널링 연결 및 제2 터널링 연결은 각각 제1 TCP 연결 및 제2 TCP 연결이 될 수 있다.
다음으로, 제1 단말기(102)는 데이터 패킷을 생성하여 제1 터널링 서버(104)로 전달한다(③). 제1 단말기(102)는 제2 단말기(110)와 맺은 기본 TCP 연결에 따라 데이터 패킷을 생성하게 된다. 해당 데이터 패킷의 최종 목적지는 제2 단말기(110)이므로, 제1 단말기(102)는 데이터 패킷의 헤더의 목적지 필드에 제2 단말기(110)의 주소를 기록하고, 출발지 필드에 제1 단말기(102)의 주소를 기록하게 된다.
다음으로, 제1 터널링 서버(104)는 제1 단말기(102)로부터 수신한 데이터 패킷을 캡슐화하고, 캡슐화된 패킷을 제1 가상 네트워크를 통해 중계 프록시 서버(106)로 전송한다(④). 구체적으로, 제1 터널링 서버(104)는 제1 단말기(102)로부터 수신한 데이터 패킷에 헤더를 추가하여 캡슐화(Encapsulation) 할 수 있다. 이때, 추가된 헤더의 목적지 필드에는 중계 프록시 서버(106)의 주소가 기록되고, 출발지 필드에는 제1 터널링 서버(104)의 주소가 기록될 수 있다. 즉, 제1 터널링 서버(104)는 제1 가상 네트워크를 통해 중계 프록시 서버(106)와 제1 터널링 연결을 이루고 있는데, 제1 단말기(102)로부터 수신한 데이터 패킷의 목적지는 제2 단말기(110)로 되어 있으므로, 상기 수신한 데이터 패킷을 중계 프록시 서버(106)로 전송하기 위해 상기 수신한 데이터 패킷을 캡슐화하여 전송한다.
다음으로, 중계 프록시 서버(106)는 제1 터널링 서버(104)로부터 캡슐화 된 데이터 패킷 수신하고, 이를 재캡슐화 하여 제2 터널링 서버(108)로 전송한다(⑤). 구체적으로, 중계 프록시 서버(106)는 제1 터널링 서버(104)로부터 수신한 캡슐화 된 데이터 패킷을 캡슐 해제(Decapsulation)하여 추가된 제1 가상 네트워크 헤더를 제거한다.
이후, 중계 프록시 서버(106)는 상기 캡슐 해제된 데이터 패킷으로부터 상기 기본 TCP 연결 정보를 획득한 뒤, 이를 이용하여상기 기본 TCP 연결을 종단 처리한다. 중계 프록시 서버(106)는 상기 수신한 캡슐화된 데이터 패킷을 캡슐 해제한 후 상기 기본 TCP 연결에 대한 ACK 신호를 제1 터널링 서버(104)를 통해 제1 단말기(102)로 전송하여 기본 TCP 연결을 종단 처리할 수 있다. 이 경우, 제1 단말기(102)는 데이터 패킷에 대한 전송 처리가 완료된 것으로 판단할 수 있다. 즉 본 발명의 실시예에서, 제1 단말기(102)에서 제2 단말기(110)로 전송되는 데이터 패킷은 1차적으로 중계 프록시 서버(106)에서 종단 처리되며, 이후 중계 프록시 서버(106)는 티씨피 스플라이싱 기법을 이용한 별도의 TCP 연결을 통해 상기 데이터 패킷을 제2 단말기(110)로 송신하게 된다. 따라서 제1 단말기(102)로서는 제2 단말기(110)보다 가까운 중계 프록시 서버(106)로 데이터 패킷을 전달하는 것 만으로 데이터 전송이 완료되는 것과 같은 효과를 가지게 되는 바, 데이터 전송의 효율이 향상될 수 있다.
다음으로, 중계 프록시 서버(106)는 상기 데이터 패킷에 새롭게 제2 가상 네트워크 헤더를 추가하여 이를 재캡슐화한다. 이때, 추가된 헤더의 목적지 필드에는 제2 터널링 서버(108)의 주소가 기록되고, 출발지 필드에는 중계 프록시 서버(106)의 주소가 기록될 수 있다. 여기서, 중계 프록시 서버(106)는 제1 터널링 서버(104)로부터 수신한 캡슐화된 데이터 패킷을 캡슐 해제하고 상기 기본 TCP 연결을 종단 처리하며 상기 데이터 패킷을 재캡슐화 함으로써, 제1 단말기(102)와 중계 프록시 서버(106) 사이의 제1 터널링 연결(제1 TCP 연결)과 제2 단말기(110)와 중계 프록시 서버(106) 사이의 제2 터널링 연결(제2 TCP 연결)을 서로 이어주는 티씨피 스플라이싱을 수행하게 된다.
다음으로, 제2 터널링 서버(108)는 중계 프록시 서버(106)로부터 수신한 재캡슐화 된 데이터 패킷을 캡슐 해제(Decapsulation)하여 제2 단말기(110)로 전송한다(⑥). 구체적으로, 제2 터널링 서버(108)는 중계 프록시 서버(106)로부터 수신한 재캡슐화 된 데이터 패킷에서 새롭게 추가된 헤더를 제거한 후 원래의 데이터 패킷(즉, 제1 단말기(102)가 생성한 데이터 패킷)을 제2 단말기(110)로 전송할 수 있다. 여기서, 재캡슐화 시 새롭게 추가된 헤더를 제거하면, 원래의 데이터 패킷의 헤더에는 목적지가 제2 단말기(110)의 주소로 기록되어 있으므로, 제2 터널링 서버(108)는 원래의 데이터 패킷을 제2 단말기(110)로 전송하게 된다.
여기서, 제1 단말기(102)와 제2 단말기(110) 간의 기본적인 라우팅 경로(제1 단말기(102) →라우터 R1 →라우터 R4 →라우터 R3 → 제2 단말기(110))에 의한 라운드 트립 타임(RTT)이 400ms이고, 제1 터널링 연결에 의한 제1 단말기(102)와 중계 프록시 서버(106)간의 라운드 트립 타임 및 제2 터널링 연결에 의한 중계 프록시 서버(106)와 제2 단말기(110) 간의 라운드 트립 타임은 각각 200ms라고 가정하자. 이 경우 중계 프록시 서버(106)를 통한 티씨피 스플라이싱 기법이 적용됨으로써, 제1 단말기(102)와 제2 단말기(110) 간의 전체 라운드 트립 타임은 200ms로 줄어들 수 있게 된다. 즉, 제1 단말기(102)와 제2 단말기(110) 간에 기본적인 라우팅 경로를 통해 데이터를 전송하는 경우 단위 시간당 데이터 전송량(즉, (64 Kbyte * 8bit)/0.4s)은 최대 1.25 Mbps가 되나, 본 발명의 실시예에 의하면 단위 시간당 데이터 전송량(즉, (64 Kbyte * 8bit)/0.2s)은 최대 2.5 Mbps로 증가하게 된다. 그리고, 본 발명의 실시예에서는 제1 터널링 서버(104) 및 제2 터널링 서버(108)를 통해 중계 프록시 서버(106)와 각각 가상 네트워크를 형성하여 TCP 연결이 이루어지기 때문에, 제1 단말기(102) 또는 제2 단말기(110)의 사용자 측에서 프록시 설정을 변경하거나 데이터 전송 프로그램을 수정 또는 변경하지 않아도 된다.
도 5는 본 발명의 일 실시예에 따른 중계 프록시 서버의 구성을 나타낸 도면이다.
도 5를 참조하면, 중계 프록시 서버(106)는 제1 가상 네트워크 연결부(121), 제2 가상 네트워크 연결부(124), 및 재캡슐화부(127)를 포함한다.
제1 가상 네트워크 연결부(121)는 제1 터널링 서버(104)와 제1 가상 네트워크를 형성한다. 이때, 제1 가상 네트워크 연결부(121)는 터널링 프로토콜을 이용하여 제1 터널링 서버(104)와 제1 가상 네트워크를 형성할 수 있다. 이 경우, 제1 가상 네트워크 연결부(121)는 제1 터널링 서버(104)와 제1 터널링 연결을 이루게 된다. 제1 가상 네트워크 연결부(121)는 제1 터널링 서버(104)로부터 캡슐화된 데이터 패킷을 수신할 수 있다.
제2 가상 네트워크 연결부(124)는 제2 터널링 서버(108)와 제2 가상 네트워크를 형성한다. 이때, 제2 가상 네트워크 연결부(124)는 터널링 프로토콜을 이용하여 제2 터널링 서버(108)와 제2 가상 네트워크를 형성할 수 있다. 이 경우, 제2 가상 네트워크 연결부(124)는 제2 터널링 서버(108)와 제2 터널링 연결을 이루게 된다. 제2 가상 네트워크 연결부(124)는 재캡슐화부(127)에 의해 재캡슐화 된 데이터 패킷을 제2 터널링 서버(108)와 전송할 수 있다.
재캡슐화부(127)는 제1 가상 네트워크 연결부(121)가 제1 터널링 서버(104)로부터 수신한 캡슐화된 데이터 패킷을 재캡슐화한다. 구체적으로, 재캡슐화부(127)는 제1 터널링 서버(104)로부터 수신한 캡슐화된 데이터 패킷을 캡슐 해제(Decapsulation)하여 추가된 헤더를 제거할 수 있다. 다음으로, 재캡슐화부(127)는 기본 TCP 연결에 대한 ACK 신호를 제1 가상 네트워크 연결부(121)를 통해 제1 터널링 서버(104)로 전송하여 기본 TCP 연결을 종단 처리할 수 있다. 다음으로, 재캡슐화부(127)는 데이터 패킷에 새롭게 헤더를 추가하여 재캡슐화 할 수 있다. 이때, 재캡슐화부(127)는 새롭게 추가된 헤더의 목적지 필드에 제2 가상 네트워크 연결부(124)와 제2 터널링 연결을 이루고 있는 제2 터널링 서버(108)의 주소를 기록할 수 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 데이터 전송 시스템
102: 제1 단말기
104: 제1 터널링 서버
106: 중계 프록시 서버
108: 제2 터널링 서버
110: 제2 단말기
121: 제1 가상 네트워크 연결부
124: 제2 가상 네트워크 연결부
127: 재캡슐화부

Claims (12)

  1. 제1 단말기와 연결되는 제1 터널링 서버;
    상기 제1 단말기와의 기본 TCP 연결을 통해 상기 제1 단말기로부터 데이터 패킷을 수신하는 제2 단말기와 연결되는 제2 터널링 서버; 및
    상기 제1 터널링 서버와 제1 가상 네트워크를 형성하고, 상기 제2 터널링 서버와 제2 가상 네트워크를 형성하며, 상기 제1 터널링 서버로부터 상기 제1 가상 네트워크를 통하여 수신되는 데이터 패킷을 상기 제2 가상 네트워크를 통해 상기 제2 터널링 서버로 전송하는 중계 프록시 서버를 포함하며,
    상기 중계 프록시 서버는,
    상기 제1 단말기와 상기 제2 단말기 간의 상기 기본 TCP 연결을 이루는 기본적인 라우팅 경로 밖에 위치하는 라우터와 연결되고, 상기 제1 단말기와 상기 제2 단말기 간에 상기 기본적인 라우팅 경로가 아닌 상기 제1 가상 네트워크 및 상기 제2 가상 네트워크에 의한 논리적 라우팅 경로에 따라 데이터 패킷이 전송되도록 하는, 데이터 전송 시스템.
  2. 청구항 1에 있어서,
    상기 제1 터널링 서버는, 상기 제1 단말기로부터 상기 데이터 패킷을 수신하고, 수신된 상기 데이터 패킷을 캡슐화하여 상기 제1 가상 네트워크를 통해 상기 중계 프록시 서버로 송신하는, 데이터 전송 시스템.
  3. 청구항 2에 있어서,
    상기 제1 터널링 서버는, 상기 중계 프록시 서버와 제1 터널링 연결을 수립하고, 상기 제1 터널링 연결에 대응되는 제1 가상 네트워크 헤더를 수신된 상기 데이터 패킷에 부가함으로써 상기 데이터 패킷을 캡슐화하는, 데이터 전송 시스템.
  4. 청구항 3에 있어서,
    상기 중계 프록시 서버는, 상기 제1 터널링 서버로부터 수신된 캡슐화된 데이터 패킷을 재캡슐화하여 상기 제2 가상 네트워크를 통해 상기 제2 터널링 서버로 송신하는, 데이터 전송 시스템.
  5. 청구항 4에 있어서,
    상기 중계 프록시 서버는, 상기 수신된 캡슐화된 데이터 패킷을 캡슐 해제(Decapsulation)하고,
    캡슐 해제된 상기 데이터 패킷으로부터 획득한 기본 TCP 정보를 이용하여 상기 기본 TCP 연결을 종단 처리하며,
    상기 제2 터널링 서버와 제2 터널링 연결을 수립하고, 캡슐 해제된 데이터 패킷에 상기 제2 터널링 연결에 대응되는 제2 가상 네트워크 헤더를 부가하여 제2 터널링 서버로 송신하는, 데이터 전송 시스템.
  6. 청구항 4에 있어서,
    상기 제2 터널링 서버는,
    상기 중계 프록시 서버로부터 수신된 재캡슐화된 데이터 패킷을 캡슐 해제(decapsulation)하고, 캡슐 해제된 상기 데이터 패킷을 상기 제2 단말기로 송신하는, 데이터 전송 시스템.
  7. 제1 단말기 및 상기 제1 단말기와의 기본 TCP 연결을 통해 상기 제1 단말기로부터 데이터 패킷을 수신하는 제2 단말기 간의 상기 데이터 패킷 송수신을 중계하는 중계 프록시 서버로서,
    상기 제1 단말기에 연결된 제1 터널링 서버와 제1 가상 네트워크를 형성하고, 상기 제1 가상 네트워크를 통해 상기 제1 터널링 서버로부터 캡슐화된 상기 데이터 패킷을 수신하는 제1 가상 네트워크 연결부;
    상기 제1 가상 네트워크 연결부를 통해 수신된 상기 캡슐화된 데이터 패킷을 재캡슐화하는 재캡슐화부; 및
    상기 제2 단말기에 연결된 제2 터널링 서버와 제2 가상 네트워크를 형성하고, 재캡슐화된 상기 데이터 패킷을 상기 제2 가상 네트워크를 통해 상기 제2 터널링 서버로 송신하는 제2 가상 네트워크 연결부를 포함하고,
    상기 중계 프록시 서버는,
    상기 제1 단말기와 상기 제2 단말기 간의 상기 기본 TCP 연결을 이루는 기본적인 라우팅 경로 밖에 위치하는 라우터와 연결되고, 상기 제1 단말기와 상기 제2 단말기 간에 상기 기본적인 라우팅 경로가 아닌 상기 제1 가상 네트워크 및 상기 제2 가상 네트워크에 의한 논리적 라우팅 경로에 따라 데이터 패킷이 전송되도록 하는, 중계 프록시 서버.
  8. 청구항 7에 있어서,
    상기 제1 가상 네트워크 연결부는, 상기 제1 터널링 서버와 제1 터널링 연결을 수립하고, 상기 제1 터널링 연결에 대응되는 제1 가상 네트워크 헤더가 부가됨으로써 캡슐화된 데이터 패킷을 상기 제1 터널링 서버로부터 수신하는, 중계 프록시 서버.
  9. 청구항 8에 있어서,
    상기 제2 가상 네트워크 연결부는, 상기 제2 터널링 서버와 제2 터널링 연결을 수립하며,
    상기 재캡슐화부는, 상기 캡슐화된 데이터 패킷을 캡슐 해제(Decapsulation)하고,
    캡슐 해제된 상기 데이터 패킷으로부터 획득한 기본 TCP 정보를 이용하여 상기 기본 TCP 연결을 종단 처리하며,
    캡슐 해제된 상기 데이터 패킷에 상기 제2 터널링 연결에 대응되는 제2 가상 네트워크 헤더를 추가함으로써 상기 캡슐화된 데이터 패킷을 재캡슐화하는, 중계 프록시 서버.
  10. 제1 단말기 및 상기 제1 단말기와의 기본 TCP 연결을 통해 상기 제1 단말기로부터 데이터 패킷을 수신하는 제2 단말기 간의 데이터 전송을 중계하기 위한 중계 프록시 서버를 이용한 데이터 전송 중계 방법으로서,
    제1 가상 네트워크 연결부에서, 상기 제1 단말기에 연결된 제1 터널링 서버와 제1 가상 네트워크를 형성하고, 상기 제1 가상 네트워크를 통해 상기 제1 터널링 서버로부터 캡슐화된 데이터 패킷을 수신하는 단계;
    재캡슐화부에서, 상기 제1 가상 네트워크 연결부를 통해 수신된 상기 캡슐화된 데이터 패킷을 재캡슐화하는 단계; 및
    제2 가상 네트워크 연결부에서, 상기 제2 단말기에 연결된 제2 터널링 서버와 제2 가상 네트워크를 형성하고, 재캡슐화된 상기 데이터 패킷을 상기 제2 가상 네트워크를 통해 상기 제2 터널링 서버로 송신하는 단계를 포함하며,
    상기 중계 프록시 서버는,
    상기 제1 단말기와 상기 제2 단말기 간의 상기 기본 TCP 연결을 이루는 기본적인 라우팅 경로 밖에 위치하는 라우터와 연결되고, 상기 제1 단말기와 상기 제2 단말기 간에 상기 기본적인 라우팅 경로가 아닌 상기 제1 가상 네트워크 및 상기 제2 가상 네트워크에 의한 논리적 라우팅 경로에 따라 데이터 패킷이 전송되도록 하는, 데이터 전송 중계 방법.
  11. 청구항 10에 있어서,
    상기 캡슐화된 데이터 패킷을 수신하는 단계는,
    상기 제1 터널링 서버와 제1 터널링 연결을 수립하는 단계; 및
    상기 제1 터널링 연결에 대응되는 제1 가상 네트워크 헤더가 부가됨으로써 캡슐화된 데이터 패킷을 상기 제1 터널링 서버로부터 수신하는 단계를 더 포함하는, 데이터 전송 중계 방법.
  12. 청구항 11에 있어서,
    상기 제2 가상 네트워크 연결부는, 상기 제2 터널링 서버와 제2 터널링 연결을 수립하며,
    상기 재캡슐화하는 단계는, 상기 캡슐화된 데이터 패킷을 캡슐 해제(Decapsulation)하는 단계;
    캡슐 해제된 상기 데이터 패킷으로부터 획득한 기본 TCP 정보를 이용하여 상기 기본 TCP 연결을 종단 처리하는 단계; 및
    캡슐 해제된 상기 데이터 패킷에 상기 제2 터널링 연결에 대응되는 제2 가상 네트워크 헤더를 추가함으로써 상기 캡슐화된 데이터 패킷을 재캡슐화하는 단계를 더 포함하는, 데이터 전송 중계 방법.
KR1020130142598A 2013-11-22 2013-11-22 중계 프록시 서버, 이를 이용한 데이터 전송 중계 방법 및 데이터 전송시스템 KR102087735B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130142598A KR102087735B1 (ko) 2013-11-22 2013-11-22 중계 프록시 서버, 이를 이용한 데이터 전송 중계 방법 및 데이터 전송시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130142598A KR102087735B1 (ko) 2013-11-22 2013-11-22 중계 프록시 서버, 이를 이용한 데이터 전송 중계 방법 및 데이터 전송시스템

Publications (2)

Publication Number Publication Date
KR20150059248A KR20150059248A (ko) 2015-06-01
KR102087735B1 true KR102087735B1 (ko) 2020-03-11

Family

ID=53490369

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130142598A KR102087735B1 (ko) 2013-11-22 2013-11-22 중계 프록시 서버, 이를 이용한 데이터 전송 중계 방법 및 데이터 전송시스템

Country Status (1)

Country Link
KR (1) KR102087735B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102383998B1 (ko) 2021-04-05 2022-04-08 주식회사 틸코블렛 Ip주소를 관리하는 프록시 서버가 포함된 정보수집 대행 시스템

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102527186B1 (ko) * 2016-04-27 2023-04-28 삼성에스디에스 주식회사 가상화 시뮬레이터 및 이를 구비하는 빌딩 관리 시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009093308A1 (ja) * 2008-01-22 2009-07-30 Ntt Pc Communications, Inc. 接続制御方法、接続制御サーバ装置、接続制御クライアント装置、及びプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8004973B2 (en) * 2006-04-25 2011-08-23 Citrix Systems, Inc. Virtual inline configuration for a network device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009093308A1 (ja) * 2008-01-22 2009-07-30 Ntt Pc Communications, Inc. 接続制御方法、接続制御サーバ装置、接続制御クライアント装置、及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102383998B1 (ko) 2021-04-05 2022-04-08 주식회사 틸코블렛 Ip주소를 관리하는 프록시 서버가 포함된 정보수집 대행 시스템

Also Published As

Publication number Publication date
KR20150059248A (ko) 2015-06-01

Similar Documents

Publication Publication Date Title
KR102226366B1 (ko) 패킷 프로세싱 방법 및 디바이스
US8250643B2 (en) Communication device, communication system, communication method, and program
JP4669536B2 (ja) 送信方法、トンネル終端装置、コンピュータプログラム
US10085253B2 (en) Methods and apparatus for controlling wireless access points
CN107995052B (zh) 用于针对有线和无线节点的公共控制协议的方法和设备
KR101694082B1 (ko) 소프트웨어-정의된 네트워크 오버레이
JP5580706B2 (ja) 再送制御プロトコルを用いるデータ転送装置、プログラム及び方法
WO2019007209A1 (zh) 一种多路径数据传输处理方法及网络设备
US11824685B2 (en) Method for implementing GRE tunnel, access point and gateway
JP7050094B2 (ja) パケット送信方法、プロキシサーバ、およびコンピュータ読取り可能記憶媒体
CN109936492A (zh) 一种通过隧道传输报文的方法、装置和系统
CN108282391B (zh) 一种vxlan报文分片方法和装置
KR102087735B1 (ko) 중계 프록시 서버, 이를 이용한 데이터 전송 중계 방법 및 데이터 전송시스템
WO2014131334A1 (zh) 一种多链路融合方法及设备
TW202249464A (zh) 使用網際網路協定網路於蜂巢式資料封包路由的方法
CN103368841A (zh) 报文转发方法和装置
JP5699985B2 (ja) Tcp通信高速化装置
CN114424599B (zh) 用于传输基于会话的包的方法和系统
CN105991307B (zh) 一种远程控制路由器的方法和装置
JP5752644B2 (ja) 通信路終端装置、データサイズ決定方法およびデータサイズ決定プログラム
CN113726635A (zh) 一种报文处理方法、装置及电子设备
CN115065734A (zh) 一种数据处理方法、装置及芯片
CN117480855A (zh) 用于路由蜂窝数据数据包的ip网络的改进使用
JP2017152787A (ja) 通信装置および通信システム
TW201421948A (zh) 多重鏈路介接系統及其多重鏈路介接方法

Legal Events

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