KR102347865B1 - 통신 시스템에서 tcp 프록시 장치를 이용한 통신 방법 및 장치 - Google Patents
통신 시스템에서 tcp 프록시 장치를 이용한 통신 방법 및 장치 Download PDFInfo
- Publication number
- KR102347865B1 KR102347865B1 KR1020170076888A KR20170076888A KR102347865B1 KR 102347865 B1 KR102347865 B1 KR 102347865B1 KR 1020170076888 A KR1020170076888 A KR 1020170076888A KR 20170076888 A KR20170076888 A KR 20170076888A KR 102347865 B1 KR102347865 B1 KR 102347865B1
- Authority
- KR
- South Korea
- Prior art keywords
- connection
- terminal
- proxy
- server
- proxy device
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/0864—Round trip delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H04L67/28—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/02—Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
- H04W84/10—Small scale networks; Flat hierarchical networks
- H04W84/12—WLAN [Wireless Local Area Networks]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
본 개시는 4G 시스템 이후 보다 높은 데이터 전송률을 지원하기 위한 5G 통신 시스템을 IoT 기술과 융합하는 통신 기법 및 그 시스템에 관한 것이다. 본 개시는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스 (예를 들어, 스마트 홈, 스마트 빌딩, 스마트 시티, 스마트 카 혹은 커넥티드 카, 헬스 케어, 디지털 교육, 소매업, 보안 및 안전 관련 서비스 등)에 적용될 수 있다.
본 발명에 따른 프록시 장치의 방법은 단말과 서버 사이의 무선 연결 구간에서의 패킷 손실률을 수신하는 단계, 상기 패킷 손실률이 미리 정해진 임계 값을 초과하는지 여부를 결정하는 단계, 상기 패킷 손실률이 상기 임계 값을 초과하는 경우, 상기 단말과 상기 서버 사이의 연결을 프록싱하는 단계를 포함하는 것을 특징으로 한다
본 발명에 따른 프록시 장치의 방법은 단말과 서버 사이의 무선 연결 구간에서의 패킷 손실률을 수신하는 단계, 상기 패킷 손실률이 미리 정해진 임계 값을 초과하는지 여부를 결정하는 단계, 상기 패킷 손실률이 상기 임계 값을 초과하는 경우, 상기 단말과 상기 서버 사이의 연결을 프록싱하는 단계를 포함하는 것을 특징으로 한다
Description
본 발명은 통신 시스템에 대한 것으로서, 보다 구체적으로, 전송 제어 프로토콜 (transmission control protocol: TCP) 프록시 장치를 이용한 통신 방법 및 장치에 관한 것이다.
4G 통신 시스템 상용화 이후 증가 추세에 있는 무선 데이터 트래픽 수요를 충족시키기 위해, 개선된 5G 통신 시스템 또는 pre-5G 통신 시스템을 개발하기 위한 노력이 이루어지고 있다. 이러한 이유로, 5G 통신 시스템 또는 pre-5G 통신 시스템은 4G 네트워크 이후 (Beyond 4G Network) 통신 시스템 또는 LTE 시스템 이후 (Post LTE) 이후의 시스템이라 불리어지고 있다. 높은 데이터 전송률을 달성하기 위해, 5G 통신 시스템은 초고주파(mmWave) 대역 (예를 들어, 60기가(60GHz) 대역과 같은)에서의 구현이 고려되고 있다. 초고주파 대역에서의 전파의 경로손실 완화 및 전파의 전달 거리를 증가시키기 위해, 5G 통신 시스템에서는 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO), 전차원 다중입출력(Full Dimensional MIMO: FD-MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 및 대규모 안테나 (large scale antenna) 기술들이 논의되고 있다. 또한 시스템의 네트워크 개선을 위해, 5G 통신 시스템에서는 진화된 소형 셀, 개선된 소형 셀 (advanced small cell), 클라우드 무선 액세스 네트워크 (cloud radio access network: cloud RAN), 초고밀도 네트워크 (ultra-dense network), 기기 간 통신 (Device to Device communication: D2D), 무선 백홀 (wireless backhaul), 이동 네트워크 (moving network), 협력 통신 (cooperative communication), CoMP (Coordinated Multi-Points), 및 수신 간섭제거 (interference cancellation) 등의 기술 개발이 이루어지고 있다. 이 밖에도, 5G 시스템에서는 진보된 코딩 변조(Advanced Coding Modulation: ACM) 방식인 FQAM (Hybrid FSK and QAM Modulation) 및 SWSC (Sliding Window Superposition Coding)과, 진보된 접속 기술인 FBMC(Filter Bank Multi Carrier), NOMA(non orthogonal multiple access), 및SCMA(sparse code multiple access) 등이 개발되고 있다.
한편, 인터넷은 인간이 정보를 생성하고 소비하는 인간 중심의 연결 망에서, 사물 등 분산된 구성 요소들 간에 정보를 주고 받아 처리하는 IoT(Internet of Things, 사물인터넷) 망으로 진화하고 있다. 클라우드 서버 등과의 연결을 통한 빅데이터(Big data) 처리 기술 등이 IoT 기술에 결합된 IoE (Internet of Everything) 기술도 대두되고 있다. IoT를 구현하기 위해서, 센싱 기술, 유무선 통신 및 네트워크 인프라, 서비스 인터페이스 기술, 및 보안 기술과 같은 기술 요소 들이 요구되어, 최근에는 사물간의 연결을 위한 센서 네트워크(sensor network), 사물 통신(Machine to Machine, M2M), MTC(Machine Type Communication)등의 기술이 연구되고 있다. IoT 환경에서는 연결된 사물들에서 생성된 데이터를 수집, 분석하여 인간의 삶에 새로운 가치를 창출하는 지능형 IT(Internet Technology) 서비스가 제공될 수 있다. IoT는 기존의 IT(information technology)기술과 다양한 산업 간의 융합 및 복합을 통하여 스마트홈, 스마트 빌딩, 스마트 시티, 스마트 카 혹은 커넥티드 카, 스마트 그리드, 헬스 케어, 스마트 가전, 첨단의료서비스 등의 분야에 응용될 수 있다.
이에, 5G 통신 시스템을 IoT 망에 적용하기 위한 다양한 시도들이 이루어지고 있다. 예를 들어, 센서 네트워크(sensor network), 사물 통신(Machine to Machine, M2M), MTC(Machine Type Communication)등의 기술이 5G 통신 기술이 빔 포밍, MIMO, 및 어레이 안테나 등의 기법에 의해 구현되고 있는 것이다. 앞서 설명한 빅데이터 처리 기술로써 클라우드 무선 액세스 네트워크(cloud RAN)가 적용되는 것도 5G 기술과 IoT 기술 융합의 일 예라고 할 수 있을 것이다.
한편, 인터넷 서비스를 위한 TCP 연결은 분할 연결 프록시 (split connection proxy, 이하 프록시 또는 프록시 장치)에 의해 서버와 단말 간의 연결이 서버와 프록시 장치 간의 연결과 프록시 장치와 단말 간의 연결로 분할될 수 있다.
다만, 이와 같이 프록시를 사용하는 경우, 서버와 단말 간의 TCP 연결의 종단 간 지연 시간이 늘어날 수 있으며, 이를 고사양의 시스템을 채택하여 해결하게 되는 경우에는 비용 상승의 문제가 발생할 수 있다.
이를 해결하기 위해 서버와 프록시 간, 프록시와 서버 간 두 개의 연결을 사용자 공간의 응용 계층을 통하지 않도록 하여 성능을 최대화하는 TCP 스플라이스 기술이 사용될 수 있다. 다만, TCP 스플라이스를 사용하는 경우, TCP 연결 분할에 의한 성능 이득이 저하될 수 있는 문제가 있다.
본 발명은 상술한 문제점을 해결하기 위해 제안된 것으로, 본 발명은 프록시 시스템에서 TCP 연결이 무선랜을 사용하는지 여부에 따라 프록시 동작을 수행하도록 하여 프록시 시스템의 성능을 높이는 것을 목적으로 한다.
또한, 본 발명은 무선 연결된 단말의 신호 품질에 따라 선택적으로 프록시 동작을 수행하도록 하여 시스템의 성능을 향상시키는 것을 목적으로 한다.
상기와 같은 문제점을 해결하기 위한 본 발명의 프록시의 방법은, 상기 프록시와 관련된 시스템 로드 값이 미리 정해진 조건을 만족하는지 여부를 판단하는 단계, 상기 시스템 로드 값이 미리 정해진 조건을 만족하는 경우, 단말과 상기 프록시 간의 연결이 무선 연결인지 여부를 확인하는 단계, 상기 연결이 무선 연결인 경우, 수신된 패킷을 분할 연결을 이용해 처리하는 단계, 및 상기 연결이 무선 연결이 아닌 경우, 상기 수신된 패킷을 포워딩하는 단계를 포함하는 것을 특징으로 한다.
또한, 상기와 같은 문제점을 해결하기 위한 본 발명의 프록시는, 신호를 송수신하는 송수신부; 및 상기 프록시와 관련된 시스템 로드 값이 미리 정해진 조건을 만족하는지 여부를 판단하고, 상기 시스템 로드 값이 미리 정해진 조건을 만족하는 경우, 단말과 상기 프록시 간의 연결이 무선 연결인지 여부를 확인하고, 상기 연결이 무선 연결인 경우, 수신된 패킷을 분할 연결을 이용해 처리하고, 상기 연결이 무선 연결이 아닌 경우, 상기 수신된 패킷을 포워딩하는 제어부를 포함하는 것을 특징으로 한다.
본 발명에 따르면, 프록시는 현재의 시스템 로드와 TCP 연결이 무선랜을 사용한 연결인지 여부에 따라 TCP 연결을 분할 연결하여 처리할 지, 응용 계층을 통하지 않고 포워딩할 지 여부를 결정함으로써 프록시 시스템의 성능을 높이고 지연을 방지할 수 있다.
또한, 본 발명에 따르면, 무선 연결 단말의 무선 상태에 따라 선택적인 프록싱을 통해 무선 구간의 성능을 향상 시킴으로써 네트워크를 사용하는 사용자의 네트워크 체감 품질을 향상시킬 수 있다.
도 1 은 본 발명의 실시예에 따른 프록시 시스템 및 다른 장치 간의 관계를 도시한 도면이다.
도 2는 본 발명의 실시예에 따른 프록시 시스템의 구성 및 다른 장치 간의 연결을 프로토콜 계층의 관점에서 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따라 프록시 연결 방법을 결정하는 과정을 도시한 도면이다.
도 3은 셀 재선택 과정에서의 문제점을 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따라 프록시 연결 방법을 결정하는 과정을 구체적으로 도시한 도면이다.
도 5a는 본 발명의 일 실시예에 따라 단말과 프록시 간 연결이 무선 연결인 지를 판단하는 방법을 도시한 도면이다.
도 5b는 유선 연결과 무선 연결의 RTT 분포의 차이를 도시한 도면이다.
도 6a 및 6b는 본 발명의 다른 실시예에 따라 프록시 연결 방법을 결정하는 과정을 도시한 도면이다.
도 7은 본 발명에 따른 프록시 장치의 구조를 도시한 도면이다.
도 8은 본 발명에 따른 댁 내 환경을 도시한 도면이다.
도 9는 본 발명에 따른 네트워크의 구조를 도시한 도면이다.
도 10은 본 발명에 따라 단말의 연결을 선택적으로 프록싱 하는 방법을 도시한 도면이다.
도 11은 본 발명에 따라 단말의 연결을 선택적으로 프록싱하는 방법을 도시한 순서도이다.
도 12는 본 발명에 따라 패킷 손실률을 확인하는 방법을 도시한 순서도이다.
도 13은 본 발명에 따라 단말의 연결을 선택적으로 프록싱 하는 다른 방법을 도시한 도면이다.
도 14는 본 발명에 따라 단말의 연결을 선택적으로 프록싱하는 다른 방법을 도시한 순서도이다.
도 15는 본 발명에 따라 단말에 전송하는 패킷의 시퀀스와 단말로부터 수신된 패킷의 시퀀스 번호 차이를 확인하는 방법을 도시한 순서도이다.
도 16은 본 발명에 따라 단말의 연결을 선택적으로 프록싱하는 또 다른 방법을 도시한 도면이다.
도 17은 본 발명에 따라 단말의 연결을 선택적으로 프록싱하는 또 다른 방법을 도시한 순서도이다.
도 18은 본 발명에 따른 프록시 장치의 구성을 도시한 도면이다.
도 2는 본 발명의 실시예에 따른 프록시 시스템의 구성 및 다른 장치 간의 연결을 프로토콜 계층의 관점에서 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따라 프록시 연결 방법을 결정하는 과정을 도시한 도면이다.
도 3은 셀 재선택 과정에서의 문제점을 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따라 프록시 연결 방법을 결정하는 과정을 구체적으로 도시한 도면이다.
도 5a는 본 발명의 일 실시예에 따라 단말과 프록시 간 연결이 무선 연결인 지를 판단하는 방법을 도시한 도면이다.
도 5b는 유선 연결과 무선 연결의 RTT 분포의 차이를 도시한 도면이다.
도 6a 및 6b는 본 발명의 다른 실시예에 따라 프록시 연결 방법을 결정하는 과정을 도시한 도면이다.
도 7은 본 발명에 따른 프록시 장치의 구조를 도시한 도면이다.
도 8은 본 발명에 따른 댁 내 환경을 도시한 도면이다.
도 9는 본 발명에 따른 네트워크의 구조를 도시한 도면이다.
도 10은 본 발명에 따라 단말의 연결을 선택적으로 프록싱 하는 방법을 도시한 도면이다.
도 11은 본 발명에 따라 단말의 연결을 선택적으로 프록싱하는 방법을 도시한 순서도이다.
도 12는 본 발명에 따라 패킷 손실률을 확인하는 방법을 도시한 순서도이다.
도 13은 본 발명에 따라 단말의 연결을 선택적으로 프록싱 하는 다른 방법을 도시한 도면이다.
도 14는 본 발명에 따라 단말의 연결을 선택적으로 프록싱하는 다른 방법을 도시한 순서도이다.
도 15는 본 발명에 따라 단말에 전송하는 패킷의 시퀀스와 단말로부터 수신된 패킷의 시퀀스 번호 차이를 확인하는 방법을 도시한 순서도이다.
도 16은 본 발명에 따라 단말의 연결을 선택적으로 프록싱하는 또 다른 방법을 도시한 도면이다.
도 17은 본 발명에 따라 단말의 연결을 선택적으로 프록싱하는 또 다른 방법을 도시한 순서도이다.
도 18은 본 발명에 따른 프록시 장치의 구성을 도시한 도면이다.
이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
실시 예를 설명함에 있어서 본 발명이 속하는 기술 분야에 익히 알려져 있고 본 발명과 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.
마찬가지 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성요소에는 동일한 참조 번호를 부여하였다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이 때, 본 실시 예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
또한 실시 예에서 방법을 설명하는 도면에서 설명의 순서가 반드시 실행의 순서와 대응되지는 않으며, 선후 관계가 변경되거나 병렬적으로 실행 될 수도 있다.
또한, 본 발명은 설명의 편의상 무선 통신 시스템의 경우를 예를 들어 설명하지만, 본 발명의 내용은 유선 통신 시스템에도 적용할 수 있다.
<제1 실시예>
상술한 바와 같이 인터넷 서비스를 위한 많은 TCP 연결은 프록시에 의하여 서버와 단말 간의 연결이 서버와 프록시 간 연결과 프록시와 단말 간의 연결 둘로 분할될 수 있다. 프록시는 HTTP 캐시에서부터 방화벽, 암호화 서버에 이르기까지 다양한 용도를 가지고 있으며, 특히 무선랜을 포함한 무선통신망을 이용하는 (또는, 경유하는) TCP 연결인 경우에 유용하게 사용된다. 이는 무선 망의 게이트웨이 근처에 설치되는 분할 연결 프록시가 무선 망에서 무선 채널의 변화 등으로 인해 발생하는 패킷 손실을 유선망의 혼잡 손실과 분리해주어 TCP 송신부 (TCP sender) 로 하여금 불필요한 혼잡 윈도우 (congestion window: cwnd) 의 감소를 하지 않도록 하는 이득이 발생하기 때문이다.
또한, 프록시 구현 방식에 따르면, 단말에서 실행중인 프로세스가 서버에 연결을 시도하면 단말 라이브러리가 연결 시도를 가로 채고 먼저 프록시 시스템에 연결하도록 리디렉션한다. 그런 다음 프록시 시스템은 서버와 단말 사이의 논리적 연결을 두 부분으로 분리한다.
상기 동작을 수행하는 과정에서 프록시는 성능 문제를 갖고 있다. 서버에서 단말로 데이터를 전송하기 위해 응용 계층의 프록시 프로세스는 프록시와 서버 간 연결에서 단말로 향하는 데이터를 읽어 (read), 이를 프록시와 단말 간 연결에 다시 쓴다 (write). TCP/IP 스택을 통해 데이터를 두 번 이동하는 과정에서 운영체제의 사용자 공간 (user space)과 커널 공간(kernel space)의 경계를 넘어서고 프로세스를 예약하는 데 드는 비용이 높기 때문에 프록시가 시스템의 병목 현상을 일으킬 수 있다. 이에 따라 프록시로 인해 서버와 단말 간 TCP 연결의 종단간 지연 시간이 늘어나는 부작용이 초래될 수 있으며, 이를 고사양의 시스템을 채택하여 해결하게 되는 경우에는 프록시 운용 주체의 비용 상승으로 이어지게 된다.
상기와 같은 프록시 시스템의 오버헤드를 감소시키기 위한 접근 방식 중 하나는 TCP 스플라이스(TCP Splice) 라고 부르는 기술로, 서버와 프록시 간, 그리고 프록시와 서버 간의 두 연결을 사용자 공간의 응용 계층을 통하지 않고 하위에서 달성함으로써 성능을 최대화하는 것이다. 즉, TCP 스플라이스는 패킷이 수신되면 헤더를 변경하고 프로토콜 스택을 통해 패킷을 사용자 공간으로 전달하지 않고 다시 전달하며, 그 효과는 마치 프록시가 패킷을 레이어 3.5 라우터처럼 릴레이할 수 있게 되는 것이다.
TCP 스플라이스의 이와 같은 동작은 프록시 시스템의 성능 향상을 가져오며, 또한 TCP 연결의 제어가 프록시가 개입하지 않았을 때와 마찬가지로 서버와 단말 간의 양단으로 옮겨지는 변화를 가져온다. 이는 프록시의 사용처에 따라 득이 될 수도 있겠으나, 상술한 바와 같이 무선통신망의 패킷 손실을 TCP의 혼잡 손실과 분리하여 TCP 의 성능 향상을 꾀하려는 사용처에는 큰 실이 된다.
따라서, 이하에서는 TCP 연결이 무선랜을 사용하는지 여부에 따라 프록시 동작을 수행하도록 하여 프록시 시스템의 성능을 높이는 방법을 제안한다.
도 1 은 본 발명의 실시예에 따른 프록시 시스템 및 다른 장치 간의 관계를 도시한 도면이다.
프록시 시스템은 단말과 서버 간의 연결 경로 상 중간에 위치하며, 복수의 단말과 복수의 서버 간의 복수의 연결에 관여할 수 있다.
도 1을 참고하면, 단말과 프록시 간의 연결 경로 상에는 단말 1 (110)과의 연결 같이 무선랜을 이용하는 (또는 경유하는) 연결이 있을 수 있으며, 단말 2 (120)와 같이 무선랜을 이용하지 않고 유선랜 등의 유선 연결로만 구성될 수 있다.
도 2는 본 발명의 실시예에 따른 프록시 시스템의 구성 및 다른 장치 간의 연결을 프로토콜 계층의 관점에서 도시한 도면이다.
본 발명의 프록시 시스템은 서버와 단말 간의 연결을 서버와 프록시 간 연결과 프록시와 단말 간의 연결 둘로 분할할 수 있다. 프록시 시스템의 사용자 공간에는 프록시 프로세스가 운용되며, 프록시 프로세스는 프록시와 서버 간 연결에서 단말로 향하는 데이터를 읽어 (read), 이를 프록시와 단말 간 연결에 다시 쓴다 (write).
이와 같이 프록시 시스템은 서버와 단말 간의 연결을 서버와 프록시 간의 연결과 프록시와 단말 간의 연결 둘로 분할함으로써, 단말과 프록시 시스템 사이의 무선 연결로 인한 패킷 손실이 발생하는 경우에도, 서버와 프록시 간의 혼잡 윈도우를 감소시키지 않을 수 있다. 즉, 프록시 시스템을 사용함으로써, 무선 채널의 변화 등으로 인해 발생하는 패킷 손실 (단말과 프록시 사이의 무선 연결로 인해 발생하는 패킷 손실)을 유선망의 혼잡 손실과 분리하여 불필요하게 cwnd를 감소시키지 않을 수 있다. 또한, 패킷 손실이 발생하는 경우, 단말은 프록시와의 연결을 통해 재전송을 수행할 수 있으며, 단말과 프록시 간의 연결의 왕복 시간 (round trip time: RTT) 값은 단말과 서버 사이의 RTT 값보다 작으므로, 재전송의 속도가 빨라질 수 있다.
프록시 시스템의 무선랜 판단부 (210)는 TCP 연결 생성 시에 측정된 단말과 프록시 간 연결의 왕복 시간 (round trip time: RTT) 값, 혹은 RTT 값의 변화 (variation), 상기 연결의 물리 포트 (네트워크 인터페이스)의 과거 재전송 발생율 중 하나 이상을 기준으로 단말과 프록시 간 연결이 무선랜을 이용한 것인지를 판단한다. 이에 대한 구체적인 내용은 후술한다.
프록시 시스템의 시스템 로드 감시부 (220)는 프록시 시스템이 단말과 서버 간의 TCP 연결을 매개함에 있어서 발생하는 부하의 정도를 모니터한다. 프록시 시스템은 댁내 장치 (customer-provided equipment: CPE)에 포함되거나 근접하여 위치할 수 있으며, 또는 별도의 위치에 존재할 수 있다. 이 때, 프록시 시스템이 댁내 장치에 위치한 경우, 시스템 로드 감시부는 댁내 장치의 부하의 정도를 모니터 할 수 있다. 또한, 프록시 시스템이 별도로 존재하는 경우, 시스템 로드 감시부는 프록시의 부하 정보를 모니터할 수도 있다.
프록시 시스템의 프록싱 결정부 (230)는 무선랜 판단부 (210)와 시스템 로드 감시부 (220)로부터 획득한 정보를 바탕으로 단말과 서버 간의 TCP 연결을 매개함에 있어 응용 계층의 프록시 프로세스를 종단으로 단말과 프록시 간의 연결과 프록시와 서버 간의 연결의 두 가지로 분할 연결할지, 사용자 공간의 프록시 프로세스를 이용하지 아니하고 커널 공간의 TCP 스택 내에서 수신 패킷의 헤더를 변경하여 전달하는 TCP 스플라이싱 (L3.5 포워딩)을 수행하거나 혹은 IP 스택 내에서 바로 다음 네트워크 인터페이스로 전달하는 레이어3 포워딩을 수행할지를 결정할 수 있다.
본 발명에서는 단말과 서버 사이의 연결을 프록시의 응용 계층을 종단으로 단말과 프록시 간의 연결과 프록시와 서버 간의 연결의 두 가지 연결로 분할하는 방법을 분할 연결 모드라 칭하고, TCP 스플라이싱 또는 레이어 3 포워딩을 하는 방법을 포워딩 모드라 칭할 수 있다. 이에 대한 구체적인 내용은 후술한다.
본 발명의 프록시 시스템은 크게 두 가지 종류의 운용 방법을 사용할 수 있다.
첫째는 한 번 TCP 연결의 프록시 연결 방법 (분할 연결, 레이어3.5 포워딩, 레이어3 포워딩)이 결정되면 연결이 종료될 때까지 프록시 방법이 변경되지 않는 방법이다.
둘째는 TCP 연결 도중 프록시 방법이 시스템 로드와 무선랜 경유 여부에 따라 분할 연결과 포워딩 (레이어 3 포워딩, 레이어 3.5 포워딩) 간 전환이 이루어질 수 있는 방법이다. 구체적인 내용은 이하에서 설명한다.
도 3은 본 발명의 일 실시예에 따라 프록시 연결 방법을 결정하는 과정을 도시한 도면이다.
도 3을 참고하면, 프록시는 S310 단계에서 현재의 시스템 로드 값이 미리 결정된 조건을 만족하는지 여부를 확인할 수 있다. 이 때, 프록시의 프록싱 결정부는 시스템 로드 감시부로부터 현재의 시스템 로드 값을 획득할 수 있다.
이 때, 상술한 바와 같이 프록시 시스템은 CPE 내부에 위치하거나, CPE와 근접한 장소에 위치하거나 또는 별도의 장소에 위치할 수 있다. 따라서, 시스템 로드 값은 프록시 시스템이 CPE 내부에 위치하는 경우 CPE의 로드 값을 의미할 수 있으며, 프록시 시스템이 별도로 위치하는 경우, 프록시 시스템의 로드 값을 의미할 수 있다. 따라서, 본 발명에서는 시스템의 로드 값을 프록시와 관련된 시스템의 로드 값이라 칭할 수 있다.
또한, 미리 결정된 조건이란, 시스템 로드 값이 분할 연결 지원이 가능한 상태를 의미할 수 있다. 즉, 미리 결정된 조건은 시스템 로드 값이 제1 임계 값보다는 크고 제2 임계 값보다는 작은 경우를 의미할 수 있다. 다만, 본 발명의 실시예가 이에 한정되는 것은 아니며, 미리 결정된 조건은 제1 임계 값의 설정 범위에 따라 제1 임계 값보다 큰 경우를 의미할 수도 있다.
시스템 로드 값이 미리 결정된 조건을 만족하는 경우, 프록시는 S320 단계에서 단말과 프록시 간의 연결이 무선 연결인지 여부를 확인할 수 있다.
한편, 시스템 로드 값이 미리 결정된 조건을 만족하지 않는 경우, 프록시는 시스템 로드 값에 따라 분할 연결 모드로 동작하거나, 포워딩 모드로 동작할 수 있다. 즉, 프록시는 시스템 로드 값에 따라 단말과 프록시 사이의 연결을 통해 송수신되는 데이터를 분할 연결로 처리하거나, 서버에 포워딩할 수 있다.
시스템 로드 값이 미리 결정된 조건을 만족하고, 단말과 프록시 간의 연결이 무선 연결인 경우, 프록시는 S330 단계에서 단말과 프록시 간의 연결에 대해 분할 연결 모드로 동작할 수 있다. 또는, 프록시는 단말과 프록시 간의 연결을 통해 송수신되는 데이터를 분할 연결로 처리할 수 있다.
반면, 단말과 프록시 간의 연결이 무선 연결이 아닌 경우, 프록시는 S340 단계에서 단말과 프록시 간의 연결에 대해 포워딩 모드로 동작할 수 있다. 또는, 프록시는 단말과 프록시 간의 연결을 통해 송수신되는 데이터를 서버에 포워딩할 수 있다.
도 4는 본 발명의 일 실시예에 따라 프록시 연결 방법을 결정하는 과정을 구체적으로 도시한 도면이다.
플로우 (또는, TCP 연결)가 시작되면 프록시는 현재의 시스템 로드 값을 확인할 수 있다. 구체적으로, 프록시의 프록싱 결정부는 시스템 로드 감시부로부터 현재의 시스템 로드 값을 획득할 수 있다.
그리고, 프록시는 S410 단계에서 확인된 시스템 로드 값을 제1 임계값과 비교할 수 있다.
시스템 로드 값이 제1 임계값보다 작은 경우, 현재 프록시 시스템에서 모든 플로우를 응용 계층의 프록시 프로세스를 종단으로 단말과 프록시 간의 연결과 프록시와 서버 간의 연결의 두 가지로 분할 연결하여 처리할 수 있을 정도로 시스템 자원에 여유가 있음을 의미한다.
따라서, 만약 시스템 로드가 제1 임계값보다 작은 경우에는 프록시는 단말과 서버 간 플로우를 매개함에 있어 응용 계층의 프록시 프로세스를 종단으로 단말과 프록시 간의 연결과 프록시와 서버 간의 연결의 두 가지로 분할 연결하여 처리할 수 있다. 즉, 프록시는 시스템 로드 값이 제1 임계 값보다 작은 경우, S440 단계에서 단말로부터 송수신되는 데이터를 분할 연결을 이용하여 서버와 송수신처리할 수 있다.
만약, 시스템 로드가 제1 임계 값보다 큰 경우에는 프록시는 시스템 로드를 제2 임계값과 비교할 수 있다. 이 때, 제2 임계값은 제1 임계값보다 큰 값으로 설정될 수 있다. 시스템 로드 값이 제2 임계값보다 크다는 것은 프록시 시스템이 더 이상 응용 계층의 프록시 프로세스를 종단으로 단말과 프록시 간의 연결과 프록시와 서버 간의 연결의 두 가지로 분할 연결하여 처리할 수 없을 정도에 도달하였음을 의미한다. 따라서 시스템 로드 값이 제2 임계 값보다 큰 경우, 프록시는 포워딩 모드로 동작할 수 있다. 즉, 프록시는 단말과 프록시 간의 연결을 통해 송수신되는 데이터를 포워딩 (레이어 3 포워딩 또는 레이어 3.5 포워딩)으로 처리할 수 있다.
만약, 시스템 로드 값이 제2 임계값 보다 작은 경우에는 시스템 로드가 중간 수준으로 전체 플로우를 사용자 공간의 프록시 프로세스에 의해 분할 연결할 수는 없으나 일부 플로우는 프록시 프로세스에 의해 분할 연결하고 나머지 일부 플로우는 레이어3 포워딩 혹은 레이어 3.5 포워딩이 가능한 상태를 의미한다.
따라서, 시스템 로드가 제2 임계값보다 작은 경우, 프록시는 S430 단계에서 단말과 프록시 간 연결이 무선랜 연결인지를 확인한다.
만약, 무선랜 연결인 경우에는, 프록시는 S440 단계에서 응용 계층의 프록시 프로세스를 종단으로 서버와 단말 사이의 연결을 분할하는 분할 연결 모드로 플로우를 처리할 수 있다.
반면, 단말과 프록시 간 연결이 무선랜 연결이 아닌 경우, 프록시는 S450 단계에서 포워딩 모드로 플로우를 처리할 수 있다.
본 실시예는 프록시 연결 방법 (분할 연결, 레이어3.5 포워딩, 레이어3 포워딩)이 결정되면 연결이 종료될 때까지 프록시 방법이 변경되지 않는 방법에 관련된 것으로, 프록시는 상기 과정을 통해 신규 생성된 단말과 프록시 간의 연결을 분할 연결 또는 포워딩으로 처리할 수 있다.
다만, 본 발명의 실시예가 이에 한정되는 것은 아니며, 프록시는 기존의 단말과 프록시 간의 연결을 분할 연결 또는 포워딩으로 전환하는 방법도 가능하다.
그리고, TCP 연결이 종료되는 경우에는, 프록시는 S460 단계에서 해당 플로우가 생성된 이후의 재전송율과 평균 RTT, RTT의 분산을 해당 플로우의 물리 포트 (네트워크 인터페이스) 혹은 IP 주소, 혹은 IP주소와 포트번호의 쌍에 대하여 기록하여 향후 참고할 수 있다.
도 5a는 본 발명의 일 실시예에 따라 단말과 프록시 간 연결이 무선 연결인 지를 판단하는 방법을 도시한 도면이다.
프록시의 무선랜 판단부는 S510 단계에서 플로우가 생성된 물리포트 (네트워크 인터페이스)에 대해 기록된 과거 평균 RTT가 제1 RTT 임계값 이상인지를 확인할 수 있다. 이 때, 과거 평균 RTT는 저장부에 저장된 과거의 모든 RTT 값을 평균한 값일 수도 있고, 최근에 기록된 RTT 부터 미리 정해진 개수의 RTT 값을 평균한 값일 수도 있다.
만약 평균 RTT가 제1 RTT 임계값 이상이면, 프록시는 S540 단계에서 해당 연결은 무선랜 연결인 것으로 판단할 수 있다.
이에 대한 구체적인 내용은 도 5b에서 설명한다.
도 5b는 유선 연결과 무선 연결의 RTT 분포의 차이를 도시한 도면이다.
도 5b를 참고하면, 유선 연결에 비해 무선 연결의 RTT 값이 큰 것을 확인할 수 있다. 따라서, 무선 연결에서의 RTT 값과 유선 연결 RTT 값을 이용하여 제1 RTT 임계값이 설정될 수 있다. 본 실시예에 따르면, 제1 RTT 임계 값은 예를 들어 1로 설정될 수 있다. 다만, 본 발명의 실시예가 이에 한정되는 것은 아니다.
따라서, 평균 RTT가 제1 RTT 임계값 이상인 경우, 프록시는 해당 연결이 무선랜 연결인 것으로 판단할 수 있다.
도 5a의 설명으로 복귀하면, 만약, 평균 RTT가 임계값 이하인 경우, 프록시는 S520 단계에서 플로우가 생성된 물리포트 (네트워크 인터페이스)에 대해 기록된 과거 RTT의 분산이 제2 RTT 임계값 이상인지를 확인할 수 있다. 이 때, RTT의 분산은 저장부에 저장된 모든 RTT 값의 분산 값일 수도 있고, 최근에 기록된 RTT 값부터 미리 정해진 개수에 대해 계산된 분산 값일 수도 있다.
만약, RTT의 분산 값이 제2 RTT 임계값 이상인 경우, 프록시는 S530 단계에서 해당 연결은 무선랜 연결인 것으로 판단할 수 있다.
만약, RTT의 분산 값이 제2 RTT 임계값 이하인 경우, 프록시는 S540 단계에서 플로우가 생성된 물리포트에 대해 기록된 재전송율이 재전송율 임계값 이상인지를 확인한다. 이 때, 재전송율은 기록된 모든 전체 전송횟수 및 재전송횟수로부터 계산된 값일 수 있으며, 또는 미리 정해진 최근 일정 시간 혹은 일정 전송 횟수 내의 전체전송횟수 및 재전송횟수 로부터 계산된 값일 수 있다.
만약, 재전송율이 재전송율 임계값 이상인 경우, 프록시는 S520 단계에서 해당 연결은 무선랜 연결인 것으로 판단할 수 있다.
반면, 재전송율이 임계값 이하인 경우, 프록시는 S550 단계에서 해당 연결은 무선랜 연결이 아닌 것으로 판단할 수 있다.
다만, 본 발명의 실시예가 이에 한정되는 것은 아니다. 프록시는 S510 단계 내지 S530 단계를 모두 수행하지 않고 적어도 하나의 조건만을 이용해 단말과 프록시 사이의 연결이 무선랜 연결인지 여부를 확인할 수 있다.
예를 들어, 프록시는 평균 RTT가 제1 RTT 임계 값 이상이면 해당 연결을 무선랜 연결로 판단하고, 평균 RTT가 제1 RTT 임계 값 미만이면 해당 연결을 무선랜 연결이 아닌 것으로 판단할 수 있다.
또한, 프록시는 S510 단계 내지 S530 단계 중 적어도 하나의 조건의 판단 순서를 변경하여 단말과 프록시 사이의 연결이 무선랜 연결인지 여부를 확인할 수 있다.
예를 들어, 프록시는 재전송율이 임계값 이상인지 여부를 판단하여 재전송율이 임계값 이상이면 단말과 프록시 사이의 연결을 무선랜 연결로 판단할 수 있다. 또한, 재전송율이 임계값 미만이면, 프록시는 RTT의 분산 값이 제2 RTT 임계값 이상인지 여부를 판단하여 해당 연결이 무선랜 연결인지 여부를 확인할 수 있다.
또한, CPE와 WIFI 라우터가 동일한 공간에 위치해 있을 수 있다. 따라서, 프록시 시스템은 WIFI 라우터로부터 해당 연결이 무선랜 연결인지 여부에 대한 정보를 직접 수신할 수 있다. 이와 같은 경우에는 상기의 과정을 수행하지 않고, 단말과 프록시 사이의 연결이 무선 연결인지 여부를 확인할 수 있다.
또한, 상기 처리 흐름에서 물리포트는 IP주소, 혹은 IP주소와 포트번호의 쌍으로 대신할 수 있다. 도 6a 및 6b는 본 발명의 다른 실시예에 따라 프록시 연결 방법을 결정하는 과정을 도시한 도면이다.
도 6을 참고하면, 프록시는 S610 단계에서 분할 연결 모드로 시작할 수 있다. 즉, 프록시는 단말과 서버 사이의 플로우를 분할 연결 모드로 시작하여 단말과 프록시 간 연결, 프록시와 서버 간 연결의 생성을 개시할 수 있다.
그리고, 프록시는 S620 단계에서 단말과 프록시 간의 연결이 무선랜 플로우인지 여부를 확인할 수 있다.
이를 위해 프록시는 단말과 프록시 간 연결 생성 과정에서 단말과 프록시 간 RTT를 측정할 수 있다. 이는 연결 생성 과정에서 프록시가 단말로 전송하는 SYN 패킷의 송신 시각과 단말이 이에 대해 프록시에 응답하는 ACK 패킷의 수신 시각의 차이를 이용하여 확인할 수 있다. 또한, 상기와 같이 단 한 차례의 패킷 교환으로 RTT를 측정하지 않고 몇 차례 패킷 교환을 더 수행한 후에 평균 RTT로서 측정하는 방법도 가능하다. 이렇게 확인된 RTT 값은 미리 정해진 RTT 임계값과 비교하여 RTT가 임계값보다 큰 경우 해당 플로우는 무선랜 플로우로 식별될 수 있다.
?첸?, 무선랜 플로우가 아닌 경우에는 분할 연결을 수행하더라도 시스템 로드가 커질 뿐 실제적인 이득이 크지 않다. 따라서, 프록시는 S630 단계에서 포워딩 모드로 전환할 수 있다. 즉, 프록시는 시스템 로드를 줄일 수 있는 TCP 스플라이스를 개시하여 수신된 패킷의 해더를 수정하여 반대편 연결에 전송하는 레이어 3.5 포워딩 모드로로 전환할 수 있다. 다만, 본 발명의 실시예가 이에 한정되는 것은 아니며, 프록시는 수신 패킷을 IP 스택 내에서 다음 네트워크 인터페이스로 전달하는 레이어 3 포워딩 모드로 전환할 수도 있다.
만약, 무선랜 플로우인 경우에는 프록시는 S640 단계에서 시스템 로드가 미리 정해진 제3 임계값 보다 작은 지를 판단할 수 있다. 본 도면에서 설명하는 제3 임계값은 도 3 또는 도 4에서 설명하는 제1 임계값과 동일하게 설정되거나 별개의 값으로 설정될 수 있다. 또한, 본 도면에서는 도 3 또는 도 4의 임계 값과 구분하기 위해 제3 임계 값이라는 용어를 사용하였으나, 용어는 변경될 수 있다.
만약, 시스템 로드 값이 제3 임계 값보다 작은 경우에는 프록시는 S650 단계에서 분할 연결 모드를 유지할 수 있다. 즉, 프록시는 수신 패킷을 분할 연결을 통해 다른 엔티티에 전송할 수 있다.
반면, 시스템 로드 값이 제3 임계값보다 큰 경우, 프록시는 S630 단계에서 해당 연결을 포워딩 모드로 전환할 수 있다.
즉, 시스템 로드 값이 제3 임계값보다 큰 경우, 해당 연결이 무선랜 플로우일지라도 프록시에서 빠르게 처리하지 못함에 따라 지연시간 증가 등의 부작용이 더 커질 수 있다. 따라서, 프록시는 해당 연결을 포워딩 모드로 전환할 수 있다. 즉, 프록시는 TCP 스플라이스를 개시하여 패킷의 헤더를 수정하여 반대편 연결에 전송하는 레이어 3.5 포워딩으로 전환할 수 있다.
이 후, 프록시는 S660 단계에서 미리 결정된 시간 (T1) 동안 프록시 시스템을 매개로 처리 중인 모든 플로우에 대하여 각각의 재전송 발생 빈도를 갱신할 수 있다.
그리고, 프록시는 S670 단계에서 시스템 로드 값이 제2 임계 값을 초과하는지 여부를 확인할 수 있다.
시스템 로드 값이 제4 임계값을 초과하는 경우에는 분할 연결 모드로 처리 중인 플로우의 일부를 포워딩 모드 (레이어 3.5 포워딩)로 전환하여 시스템의 부하를 줄일 필요가 있다.
따라서, 프록시는 S680 단계에서 무선랜 연결로 판단된 플로우 중 재전송 발생 빈도가 가장 낮은 플로우를 포워딩 모드 (레이어 3.5 포워딩)로 전환할 수 있다.
이 때, 제4 임계 값은 제3 임계 값과 동일한 값으로 설정되거나, 제3 임계 값에 기반하여 설정되거나 또는 제3 임계 값과 독립적인 값으로 설정될 수 있다.
예를 들어, 제4 임계 값이 제3 임계 값과 동일하게 설정되는 경우, 프록시는 시스템 로드가 제3 임계 값보다 작은 경우에는 분할 연결 모드를 유지하고, 시스템 로드가 제3 임계 값보다 커지는 경우, 일부의 무선랜 연결을 포워딩 모드로 전환할 수 있다.
또는, 제4 임계 값이 제3 임계 값과 동일하지 않게 설정되는 경우, 도 4에서와 같이 제4 임계 값은 제3 임계 값보다는 큰 값으로 설정될 수 있다.
따라서, 프록시는 분할 연결 모드로 설정된 플로우에 대해서는 시스템 로드가 제1 임계 값보다 커지는 경우에도 상기 모드를 변경하지 않을 수 있으며, 시스템 로드가 제2 임계 값보다 커지는 경우에 일부의 무선랜 연결을 포워딩 모드로 전환할 수 있다.
그리고, 프록시는 S690 단계에서 시스템 로드 값이 제5 임계 값 미만인지 여부를 확인할 수 있다. 프록시는 S670 단계에서 시스템 로드 값이 제4 임계 값 이하인 경우 또는 S680 단계에서 일부의 무선랜 연결을 포워딩 모드로 전환한 뒤에 시스템 로드가 제5 임계 값 미만인지 여부를 확인할 수 있다.
만약, 시스템 로드가 제5 임계값 미만인 경우에는 시스템의 부하가 낮으므로, 프록시는 S695 단계에서 무선 연결로 판단된 플로우 중 과거 재전송 발생 빈도가 가장 높은 플로우에 대하여 분할 연결 모드로 전환할 수 있다.
이 때, 제5 임계 값은 제4 임계 값에 기반하여 결정되거나 제4 임계 값과 독립적으로 결정될 수 있다. 또한, 제5 임계 값은 제4 임계 값보다 작은 값으로 설정될 수 있다. 또한, 제5 임계 값은 제3 임계 값보다는 큰 값으로 설정될 수 있다.
시스템 로드가 제5 임계값보다 크거나 상기 분할 연결 모드로의 전환 이후에는 프록시는 다시 미리 정해진 시간 (T1) 동안 프록시 시스템을 매개로 처리 중인 모든 플로우에 대하여 각각의 재전송 발생 빈도를 업데이트 한 후, 프록시 모드의 전환이 필요한지를 판단할 수 있다.
한편, 본 발명의 도 3, 4의 과정과 도 6a 및 6b의 과정은 결합되어 수행될 수 있다.
예를 들어, 도 4의 과정에서 프록시는 시스템 로드가 제1 임계 값보다 크고, 제2 임계 값보다 작으며, 무선랜 연결인 경우 분할 연결 모드로 동작할 수 있다.
이 때, 프록시는 도 6b에서와 같이 미리 정해진 시간 (T1) 동안 재전송 빈도를 갱신하고, 시스템 로드 값이 제2 임계 값보다 커지는지 여부를 확인할 수 있다. 이 때의 제2 임계 값은 도 4에서 설명한 제2 임계 값을 의미할 수 있다. 따라서, 시스템 로드 값이 제2 임계 값보다 커지는 경우, 프록시는 재전송 빈도가 가장 낮은 플로우를 포워딩 모드로 전환할 수 있다.
이 때, 제2 임계 값의 특성에 따라 모든 플로우를 포워딩 모드로 전환하거나 상술한 바와 같이 재전송 빈도가 가장 낮은 플로우를 포워딩 모드로 전환하는 방법이 가능하다. 예를 들어, 시스템 로드가 제2 임계 값을 초과하면 더 이상의 분할 연결 모드를 지원할 수 없도록 제2 임계 값이 설정되는 경우에는 모든 플로우를 포워딩 모드로 전환할 수 있다. 반면, 시스템 로드가 제2 임계 값을 초과하는 경우에도 일부의 분할 연결 모드를 지원할 수 있도록 제2 임계 값이 설정되는 경우, 일부의 플로우를 포워딩 모드로 전환할 수 있다.
그리고, 프록시는 제1 임계 값과 제2 임계 값 사이에 설정된 제3 임계 값과 시스템 로드를 비교하여 시스템 로드가 제3 임계 값보다 작은 경우, 재전송 빈도가 높은 플로우를 분할 연결 모드로 전환할 수 있다.
도 7은 본 발명에 따른 프록시 장치의 구조를 도시한 도면이다.
도 7을 참고하면, 프록시 장치는 송수신부 (710), 제어부 (720), 저장부 (730)을 포함할 수 있다. 본 발명에서 제어부는, 회로 또는 어플리케이션 특정 통합 회로 또는 적어도 하나의 프로세서라고 정의될 수 있다. 또한, 제어부는 무선랜 판단부 (721), 시스템 로드 감시부 (723), 프록싱 결정부 (725), 을 포함할 수 있다.
송수신부 (710)는 다른 네트워크 엔티티와 신호를 송수신할 수 있다. 송수신부(710)는 예를 들어, 단말로부터 패킷을 수신하고, 이를 서버에 전송할 수 있다.
제어부 (720)은 본 발명에서 제안하는 실시예에 따른 프록시 장치의 전반적인 동작을 제어할 수 있다. 예를 들어, 제어부 (720)는 상기에서 기술한 순서도에 따른 동작을 수행하도록 각 블록 간 신호 흐름을 제어할 수 있다.
구체적으로, 무선랜 판단부 (721)는 TCP 연결 생성 시에 측정된 단말과 프록시 간 연결의 RTT 값, 혹은 RTT 값의 변화 (variation), 상기 연결의 물리 포트 (네트워크 인터페이스)의 과거 재전송 발생율 중 하나 이상을 기준으로 단말과 프록시 간 연결이 무선랜을 이용한 것인지를 판단할 수 있다.
또한, 시스템 로드 감시부 (723)는 프록시 시스템이 단말과 서버 간의 TCP 연결을 매개함에 있어서 발생하는 부하의 정도를 모니터할 수 있다.
또한, 프록싱 결정부 (725)는 무선랜 판단부 (721)와 시스템 로드 감시부 (723)로부터 획득한 정보를 바탕으로 단말과 서버 간의 TCP 연결을 매개함에 있어 응용 계층의 프록시 프로세스를 종단으로 단말과 프록시 간의 연결과 프록시와 서버 간의 연결의 두 가지로 분할 연결할지, 사용자 공간의 프록시 프로세스를 이용하지 아니하고 커널 공간의 TCP 스택 내에서 수신 패킷의 헤더를 변경하여 전달하는 TCP 스플라이싱 (L3.5 포워딩)을 수행하거나 혹은 IP 스택 내에서 바로 다음 네트워크 인터페이스로 전달하는 레이어3 포워딩을 수행할지를 결정할 수 있다.
구체적으로, 제어부 (720)는 시스템 로드 감시부로부터 현재의 시스템 로드 값을 획득하고, 현재의 시스템 로드 값이 미리 결정된 조건을 만족하는지 여부를 확인할 수 있다.
시스템 로드 값이 미리 결정된 조건을 만족하는 경우, 제어부 (720)는 단말과 프록시 간의 연결이 무선 연결인지 여부를 확인할 수 있다.
이 때, 미리 결정된 조건이란, 시스템 로드 값이 제1 임계 값보다는 크고 제2 임계 값보다는 작은 경우를 의미할 수 있다. 다만, 본 발명의 실시예가 이에 한정되는 것은 아니며, 미리 결정된 조건은 제1 임계 값보다 큰 경우를 의미할 수도 있다.
한편, 시스템 로드 값이 미리 결정된 조건을 만족하지 않는 경우, 제어부 (720)는 시스템 로드 값에 따라 분할 연결 모드로 동작하거나, 포워딩 모드로 동작할 수 있다. 즉, 제어부 (720)는 시스템 로드 값에 따라 단말과 프록시 사이의 연결을 통해 송수신되는 데이터를 분할 연결로 처리하거나, 서버에 포워딩할 수 있다.
시스템 로드 값이 미리 결정된 조건을 만족하고, 단말과 프록시 간의 연결이 무선 연결인 경우, 제어부 (720)는 단계에서 단말과 프록시 간의 연결에 대해 분할 연결 모드로 동작할 수 있다. 또는, 프록시는 단말과 프록시 간의 연결을 통해 송수신되는 데이터를 분할 연결로 처리할 수 있다.
반면, 단말과 프록시 간의 연결이 무선 연결이 아닌 경우, 제어부 (720)는 단말과 프록시 간의 연결에 대해 포워딩 모드로 동작할 수 있다. 또는, 프록시는 단말과 프록시 간의 연결을 통해 송수신되는 데이터를 서버에 포워딩할 수 있다.
또는, 제어부 (720)는 시스템 로드와 무선랜 연결인지 여부에 따라 분할 연결과 포워딩 모드의 전환을 수행할 수도 있다.
구체적으로, 제어부 (720)는 새로 생성된 플로우를 분할 연결 모드로 시작할 수 있다. 제어부 (720)는 단말과 프록시 간의 연결이 무선랜 플로우인지 여부를 확인할 수 있다. 판단 방법은 상술한 바와 동일하며, 이하에서는 생략한다.
?첸?, 무선랜 플로우가 아닌 경우에는 제어부 (720)는 해당 연결을 포워딩 모드로 전환할 수 있다.
만약, 무선랜 플로우인 경우에는 제어부 (720)는 시스템 로드가 미리 정해진 제1 임계값 보다 작은 지를 판단할 수 있다. 본 도면에서 설명하는 임계값은 도 3 또는 도 4에서 설명하는 임계값과 동일하게 설정되거나 별개의 값으로 설정될 수 있다.
만약, 시스템 로드 값이 제1 임계 값보다 작은 경우에는 제어부 (720)는 분할 연결 모드를 유지할 수 있다. 즉, 제어부 (720)는 수신 패킷을 분할 연결을 통해 다른 엔티티에 전송할 수 있다.
반면, 시스템 로드 값이 제1 임계값보다 큰 경우, 제어부 (720)는 해당 연결을 포워딩 모드로 전환할 수 있다.
이 후, 제어부 (720)는 미리 결정된 시간 (T1) 동안 프록시 시스템을 매개로 처리 중인 모든 플로우에 대하여 각각의 재전송 발생 빈도를 갱신할 수 있다.
그리고, 제어부 (720)는 시스템 로드 값이 제2 임계 값을 초과하는지 여부를 확인할 수 있다.
시스템 로드 값이 제2 임계값을 초과하는 경우에는 제어부 (720)는 무선랜 연결로 판단된 플로우 중 재전송 발생 빈도가 가장 낮은 플로우를 포워딩 모드 (레이어 3.5 포워딩)로 전환할 수 있다.
그리고, 제어부 (720)는 시스템 로드 값이 제3 임계 값 미만인지 여부를 확인할 수 있다. 만약, 시스템 로드가 제3 임계값 미만인 경우에는 시스템의 부하가 낮으므로, 제어부 (720)는 무선 연결로 판단된 플로우 중 과거 재전송 발생 빈도가 가장 높은 플로우에 대하여 분할 연결 모드로 전환할 수 있다.
시스템 로드가 제3 임계값보다 크거나 상기 분할 연결 모드로의 전환 이후에는 제어부 (720)는 다시 미리 정해진 시간 (T1) 동안 프록시 시스템을 매개로 처리 중인 모든 플로우에 대하여 각각의 재전송 발생 빈도를 업데이트 한 후, 프록시 모드의 전환이 필요한지를 판단할 수 있다.
또한, 이외에도 제어부 (720)는 본 발명에서 제안하는 프록시의 전반적인 동작을 제어할 수 있다.
저장부(730)는 상기 송수신부 (710)를 통해 송수신되는 정보 및 제어부 (720)을 통해 생성되는 정보 중 적어도 하나를 저장할 수 있다. 예를 들어, 저장부 (730)는 해당 플로우가 생성된 이후의 재전송율과 평균 RTT, RTT의 분산을 해당 플로우의 물리 포트 (네트워크 인터페이스) 혹은 IP 주소, 혹은 IP주소와 포트번호의 쌍에 대하여 기록할 수 있다. 또한, 저장부는 (730) 플로우의 재전송 빈도 등을 기록할 수 있다.
<제2 실시예>
한편, Wi-Fi 보급율 증가로 무선망을 통한 인터넷 사용이 일반화 되고 있으며, 대부분의 가전 제품들이 유선 또는 무선으로 인터넷에 연결되고 있다. 그러나 댁 내에 무선 로컬 영역 네트워크 (wireless local area network :WLAN) 접속 포인트 (Access Point: AP)로부터 떨어진 공간이나 벽에 의해 분리된 공간에서의 무선 연결 단말은 낮은 품질의 무선 망으로 인하여 TCP 성능 저하를 경험할 수 있다.
따라서, 성능 향상을 위한 기존의 유선에 적합한 TCP 혼잡 제어 (congestion control)의 기술이 아닌 유무선 통합 환경에 적합한 네트워크 혼잡 기술인 Split TCP 기술을 사용하여 WLAN AP를 사용하는 무선 연결 단말의 네트워크 사용자 체감 성능을 향상 시키고자 한다. 이 때, Split TCP 기술이란 상술한 바와 같이 서버와 단말 간의 연결을 서버와 프록시 장치 간의 연결과 프록시 장치와 단말 간의 연결로 분할하는 기술을 의미하는 것으로, 본 발명에서는 TCP connection split, 프록싱, 프록시 처리 등의 용어와 혼용하여 사용할 수 있다.
종래에는 인터넷 서비스 제공자 (internet service provider: ISP)의 모바일 브로드밴드 (Mobile Broadband, MBB) 운영에서, 서비스 게이트웨이 단말은 일반적으로 이동 단말기와 모바일 인터넷이 연결된 게이트웨이 상에 배치되어 정교한 제어 및 데이터 서비스 관리를 담당한다.
이러한 제어 및 데이터 서비스 관리를 위해 프록시 장치를 사용할 수 있다. 다시 설명하자면, 데이터 컨텐츠를 확인하고 콘텐트 관련 속성에 따른 서비스(광고삽입 등)를 제공하고자 애플리케이션 계층 (레이어)에서 데이터를 처리 할 수 있도록 프록시를 사용하고 있다.
이 때, proxy 사용 시 서비스 게이트웨이의 시스템 부하 증가로 성능 저하 문제가 있어 이를 해결 하고자 트래픽의 필요한 부분만 유동적으로 (flexible하게) proxy처리 운용에 대한 방안을 고려할 수 있다.
구체적으로, 상술한 바와 같이 모든 트래픽에 대해 proxy 처리를 하는 경우, 시스템 부하가 증가될 수 있다. 따라서, 모든 트래픽에 대해 proxy 처리를 수행하기 어렵다.
이로 인해, 데이터 콘텐츠를 분석하여 proxy 처리(애플리케이션에서 서비스 제공)가 필요하다고 판단하면 연결된 TCP connection을 분리하였다가 서비스를 제공한 후에는 다시 connection 연결하는 동작을 수행하는 방법을 고려할 수 있다. 다만, 이와 같은 방법을 사용하는 경우, 고속의 트래픽이나 지연시간에 민감한 데이터에 대해 연결 (Connection)을 끊었다가 이어주는 동작 중에 서버에 데이터 전송을 멈추게 하기 위해 수신 윈도우 (receive window)를 0으로 해서 보내게 되며, 이 때 사용자에게는 데이터 트래픽의 중단 현상이 발생하게 될 수 있다.
즉, 비디오 스트리밍 시청 중 proxy 처리를 위한 연결 해제 동작으로 인해 비디오 스트리밍의 멈춤이 현상이 발생하게 된다.
따라서, 상기의 방법을 사용하는 경우, 프록시를 통해 시스템 부하를 줄이는 효과는 있지만 사용자에게 서비스되는 트래픽의 멈춤 현상이 발생할 수 있는 문제점이 존재한다.
따라서, 본 발명은 낮은 품질의 무선 구간에 있는 무선 연결 단말 (또는 디바이스)의 플로우 (flow)의 성능 향상을 위해 해당 단말의 플로우 (flow)에 대해 선택적으로 proxy 운용을 제공하여 사용자 체감 품질을 향상 시키는 방법을 제안한다.
또한, 본 발명은 가정 내 WLAN AP로부터 벽으로 분리된 공간이나 거리가 먼 공간 또는 다른 무선 단말의 전파 간섭으로 인한 무선 구간에 품질이 떨어지는 장소에 있는 사용자의 단말에 대해 선택적으로 프록시 처리를 수행함으로써 TCP 성능을 효과적으로 향상 시키고 사용자 체감도를 향상 시키는 방법을 제안 한다.
도 8은 본 발명에 따른 댁 내 환경을 도시한 도면이다.
도 8을 참고하면, 인터넷 서버 (810)와 홈 라우터 (또는, 댁 내 장치, CPE 또는 홈 게이트웨이) (820)는 유선으로 연결될 수 있다. 또한, 댁 내에는 Wi-Fi AP (도는 WLAN AP) (830)가 위치하여 다른 단말들이 상기 Wi-Fi AP를 통해 무선으로 인터넷에 연결될 수 있다.
다만, 상술한 바와 같이 댁 내 물리적으로 분리된 공간이나 거리가 먼 공간 또는 다른 단말의 전파 간섭으로 인해 패킷 손실률이 증가하는 경우가 문제될 수 있으며, 모든 플로우에 프록시 처리를 하는 경우 시스템에 부하가 발생할 수 있다. 따라서, 이를 해결하기 위한 방법이 필요하며, 구체적인 내용은 후술한다.
한편, 상술한 바와 같이 프록시 장치는 상술한 바와 같이 댁 내 장치의 내부에 위치하거나 별도의 장소에 위치할 수 있다. 또한, 홈 라우터와 Wi-Fi AP는 하나의 장치로 구성(또는 통합된 형태로 구성)되거나 분리된 형태로 구성될 수 있다.
도 9는 본 발명에 따른 네트워크의 구조를 도시한 도면이다.
도 9를 참고하면, 홈 게이트웨이(라우터) (930)는 컨텐츠 서비스를 제공하는 서버 (910)와 무선 연결 단말 (920)인 클라이언트 사이에 위치할 수 있으며, 일반적으로 서버 (910)와 단말 (920)간의 TCP 연결을 감지하고 데이터를 서버 (910)와 단말 (920)로 전송할 수 있다.
이 때, 홈 게이트웨이(라우터) (930)에는 네트워크 성능을 향상시키기 위한 프록시 장치(931)와 무선 연결 단말의 무선 구간 품질을 측정하는 무선 품질 감지 (Radio quality detection) 모듈 (또는 무선 품질 감지부) (932)로 구성될 수 있다.
무선 품질 관리 모듈 (932)은 네트워크 레이어 (933)의 트래픽을 관리 및 모니터링 기능을 담당한다. 무선 품질 관리 모듈은 (932) 네트워크 레이어에서 전송되는 트래픽의 연결 정보를 관리하고 연결마다 전송되는 트래픽 양과 패킷 수, 패킷 시퀀스 정보를 관리할 수 있다.
무선 품질 관리 모듈 (932)은 서버로부터 수신하여 클라이언트로 전송되는 패킷을 모니터링하고 손실된 시퀀스 정보는 별도로 관리한다. 또한, 클라이언트로부터 수신된 ACK 패킷을 모니터링 하고 손실로 인한 ACK 패킷의 손실 시퀀스 정보가 있을 경우 서버로부터 받은 패킷 중 손실된 패킷의 시퀀스 정보와 비교하여 시퀀스 정보가 일치 하지 않은 경우 무선 구간의 패킷 손실을 판단할 수 있다. 그리고, 무선 품질 관리 모듈 (932)은 패킷 손실율이 임계 값을 초과 하게 되면 해당 flow의 단말이 품질이 저하된 무선 구간에 놓였다고 판단할 수 있다.
따라서, 무선 품질 관리 모듈 (932)은 패킷 손실율이 임계 값을 초과하는 플로우의 단말이 품질이 저하된 무선 구간에 위치하고 있음을 알리는 정보를 프록시 장치 (931)에 전달할 수 있으며, 프록시 장치 (931)는 해당 flow에 대해 Proxy 처리가 되도록 네트워크 계층 (network layer)에 지시를 내려서 network layer가 패킷을 가로채어 proxy로 전송하도록 할 수 있다. 이 때, 프록시 장치가 네트워크 계층에 전송하는 정보에는 특정 IP 주소를 포함하는 패킷에 대해서는 네트워크 계층이 프록시에 전송할 것을 지시하는 규칙과 관련된 정보가 포함될 수 있다.
구체적으로, 무선 품질 감지 모듈은 품질이 저하된 구간에 위치한 단말의 플로우 정보를 네트워크 계층 에이전트와 프록시에 전달하고 프록시는 해당 플로우에 대해 프록싱 처리를 한다.
따라서, 프록시 (Proxy)는 Network layer에서 전송된 패킷에 대해 ACK를 생성하여 Network layer로 내려보내 서버로 전송하게 한다. 그리고, 프록시는 서버로부터 받은 패킷은 그대로 클라이언트로 전송한다. 이와 같은 과정을 프록시 처리 또는 프록싱이라 할 수 있다.
이와 같이 본원발명의 무선 감지 모듈은 패킷 손실율을 계산하고 이를 프록시에 전달할 수 있으며, 프록시는 상기 패킷 손실율이 임계 값을 초과할 경우, 네트워크 (계층) 에이전트에 신호를 보내 플로우를 프록시로 올리도록 지시할 수 있다.
또한, 본 도면에서는 프록시 장치와 무선 품질 감지 모듈이 모두 홈 게이트웨이에 포함되는 것으로 도시하였으나, 프록시 장치와 무선 품질 감지 모듈은 각각 홈 게이트웨이가 위치한 장소와 다른 장소에 독립적으로 위치할 수 있으며, 또는 댁 내에 위치하는 기기들 중 적어도 하나에 포함될 수 있다. 또한, 무선 품질 감지 모듈은 프록시 장치에 포함될 수도 있다. 이하에서는 프록시 장치 및 무선 품질 감지 모듈이 홈 게이트웨이에 포함되어 있는 경우를 예를 들어 설명한다.
한편, 홈 게이트웨이(라우터)는 Wi-Fi AP와 분리된 형태와 Wi-Fi AP와 통합된 형태로 구분할 수 있다. 이 때, Wi-Fi AP는 연결된 단말 정보를 알 수 있다. 본 발명에서는 프록시 장치가 홈 게이트웨이에 포함되어 있는 경우를 예를 들어 설명하므로, 홈 게이트웨이가 Wi-Fi AP와 분리된 경우와 통합된 경우로 구분하여 설명한다. 하지만, 프록시 장치가 홈 게이트웨이에 포함되어 있지 않은 경우에는 프록시 장치가 Wi-Fi AP와 분리된 형태와 통합된 형태로 구분하여 설명할 수도 있다.
상술한 바와 같이 프록시 장치는 무선 연결 단말의 모든 네트워크 flow에 대해 proxy 처리를 해주어 항상 향상된 네트워크 성능을 제공하면 이상적지만, 앞서 언급한 바와 같이 proxy처리로 인하여 시스템 부하가 증가하여 시스템 열화 현상이 발생할 수 있다. 따라서 가장 proxy 처리를 제공할 필요가 있는 flow에 대해 proxy를 선택적으로 제공하고자 한다.
또한, Wi-Fi AP와 가까운 장소 또는 무선 상태가 좋은 구간에 있는 단말에 대해 네트워크 성능 향상을 위한 proxy 처리는 효과가 크지 않다. 즉, 무선 상태가 좋은 구간에 있는 단말에 대한 Proxy 처리가 없어도 무선 연결 단말에서 필요로 하는 네트워크 성능(대역폭)을 제공할 수 있다. 따라서 무선 상태가 안 좋은 구간에 있는 무선 연결 단말에 대해 프록시 처리를 수행하여 트래픽 손실로 인한 네트워크 성능 저하를 해결하고 네트워크 성능을 높여서 사용자 체감을 향상 시키고자 한다.
도 10은 본 발명에 따라 단말의 연결을 선택적으로 프록싱 하는 방법을 도시한 도면이다.
본 도면에서는 Wi-Fi AP와 홈 게이트웨이가 분리된 경우에 무선 연결을 선택적으로 프록싱하는 방법을 설명한다. Wi-Fi AP와 분리된 형태의 홈 게이트웨이는 무선 연결된 단말의 정보를 알 수 없는 형태로서 무선 연결 단말의 무선 상태를 판단하기 어렵다.
따라서, 무선 품질 감지 모듈은 무선 구간에서의 패킷 손실률을 측정할 수 있다. 무선 품질 감지 모듈은 단말로부터 수신되는 중복 ACK (duplication ACK, 이하 DupACK) 패킷의 개수를 측정할 수 있으며, 이를 통해 손실된 패킷의 수를 확인할 수 있다. 또한, 무선 품지 감지 모듈은 단말에 전송되는 전체 패킷의 수를 확인할 수 있으며, 손실된 패킷의 수와 전체 패킷의 수를 이용하여 무선 구간에서의 패킷 손실률을 확인할 수 있다.
따라서, 프록시 장치는 상기 패킷 손실률을 확인하고, 패킷 손실률이 임계 값을 초과하는지 여부를 확인하여 해당 플로우를 갖는 단말의 TCP 연결을 프록싱 할 수 있다.
도 10을 참고하면, 댁 내에 단말 1 (1010)과 단말 2 (1020)가 위치하는 상황을 가정한다. 이 때, 단말 1 (1010)은 단말 2 (1020)에 비해 WiFi AP와의 거리가 가까운 것을 확인할 수 있다. 또한, 단말 1 (1010)의 패킷 손실률 (DupACK 발생율)은 0.3%인 반면, 단말 2의 패킷 손실률 (DupACK 발생율)은 1.6%로, Wifi AP와의 거리가 먼 단말의 패킷 손실률이 크다는 것을 확인할 수 있다.
이 때, 패킷 손실률의 임계 값이 1%라 가정하면, 단말 2의 패킷 손실률이 임계 값을 초과한다. 따라서, 프록시 장치는 단말 2의 TCP 연결을 프록싱할 수 있다.
도 11은 본 발명에 따라 단말의 연결을 선택적으로 프록싱하는 방법을 도시한 순서도이다.
도 11을 참고하면, 프록시 장치는 S1110 단계에서 무선 연결 감지 모듈로부터 단말의 무선 연결에 대한 패킷 손실률을 수신할 수 있다.
다만, 상술한 바와 같이, 프록시 장치가 무선 연결 감지 모듈을 포함하고 있는 경우, 프록시 장치는 단말의 무선 연결에 대한 패킷 손실률을 확인할 수 있다.
패킷 손실률을 확인하는 구체적인 방법은 후술한다.
그리고, 프록시 장치는 S1120 단계에서 패킷 손실률이 임계 값을 초과하는지 여부를 확인할 수 있다.
패킷 손실률이 임계 값을 초과하는 경우, 프록시 장치는 S1130 단계에서 패킷 손실률이 임계 값을 초과하는 연결에 대해 프록싱을 수행할 수 있다.
구체적으로, 프록시 장치는 홈 게이트웨이의 네트워크 계층에 해당 연결을 통해 송수신되는 패킷을 프록시 장치로 전송할 것을 알리는 정보를 전송할 수 있다.
따라서, 프록시 장치는 network layer Agent로 제어 메시지를 전달할 수 있다. 따라서, 상기 제어 메시지를 수신한 Network layer Agent는 해당 flow를 가로채어 애플리케이션 레이어에 있는 프록시 장치로 전송할 수 있으며, 프록시 장치는 이를 단말에 전송할 수 있다. 또한, 프록시 장치는 수신된 패킷에 대해 Ack 메시지를 생성하여 Network layer를 통해 서버로 전송할 수 있다. 이와 같이, 서버와 단말의 연결을 분리하여 성능을 향상시킬 수 있다.
한편, 패킷 손실률이 임계 값을 초과하지 않는 경우, 프록시 장치는 기존 연결을 유지하고, S1110 단계로 돌아가 이후 시점의 패킷 손실률을 수신할 수 있다.
도 12는 본 발명에 따라 패킷 손실률을 확인하는 방법을 도시한 순서도이다.
무선 품질 감지 모듈은 S1210 단계에서 단말과 서버 간 TCP 연결을 감지할 수 있다. 또한, 무선 품질 감지 모듈은 각 TCP 연결 별로 IP 정보, 송신/수신 패킷 수와 양 방향 트래픽 양, 그리고 TCP 데이터 시퀀스 정보 등을 모니터링 한다.
또한, 무선 품질 감지 모듈은 서버에서 전송되는 TCP 데이터의 시퀀스 정보를 모니터링 하고 손실된 시퀀스 정보는 별도 저장소에 저장한다.
그리고, 무선 품질 감지 모듈은 S1220 단계에서 손실된 패킷의 수를 확인할 수 있다. 단말로부터 수신되는 DupACK의 개수를 측정하고, 상기 DupACK의 개수에 기반하여 손실된 패킷의 수를 확인할 수 있다.
그리고, 무선 감지 모듈은 S1230 단계에서 패킷 손실률을 측정할 수 있다.
무선 감지 모듈은 TCP 연결 별로 단말에 전송한 패킷의 수를 알 수 있다. 따라서, 무선 감지 모듈은 상기에서 확인한 손실된 패킷의 수와 단말에 전송한 패킷의 수를 기반으로 패킷 손실률을 측정할 수 있다.
그리고, 무선 품질 감지 모듈은 S1240 단계에서 패킷 손실률을 프록시 장치에 전송할 수 있다.
다만, 본 발명의 실시예가 이에 한정되는 것은 아니다. 무선 감지 모듈은 단말로부터 전송한 패킷 수를 확인하고, 단말로부터 수신된 dupACK의 개수에 기반해 손실된 패킷 수를 확인하며, 이를 프록시 장치에 전송할 수 있다. 이와 같은 경우, 프록시 장치가 패킷 손실률을 계산하여 해당 연결에 대한 프록싱 여부를 결정할 수도 있다.
일반적으로 무선 망에서는 패킷 손실 발생이 많다. Wi-Fi AP와 가까운 장소이며 간섭도 없는 구간에서도 패킷 손실은 발생한다. 따라서 무선 구간의 품질이 낮은 곳에 있는 것을 판단하기 위해서 일정 량의 패킷 손실 발생율, 즉 패킷 손실을 허용되는 패킷 손실를 임계치를 지정하여 패킷 손실률이 임계치를 초과할 경우 무선 상태가 좋지 않다고 판단 할 수 있다.
따라서, 프록시 장치는 무선 연결 단말의 무선 구간 패킷 손실율이 사전에 지정된 임계치를 초과할 경우 해당 Flow를 수신하는 단말의 무선 상태가 좋지 않다고 판단하여 프록시 장치는 해당 flow에 대해 proxy 처리를 결정할 수 있다.
도 13은 본 발명에 따라 단말의 연결을 선택적으로 프록싱 하는 다른 방법을 도시한 도면이다.
본 도면에서는 Wi-Fi AP와 홈 게이트웨이가 분리된 경우에 무선 연결을 선택적으로 프록싱하는 방법을 설명한다.
본 도면에서 무선 품질 감지 모듈은 패킷 시퀀스 번호를 기반으로 무선 상태를 감지할 수 있다. 구체적으로, 무선 품질 감지 모듈은 서버가 단말로 전송하는 패킷 시퀀스 번호 (data packet sequence number: DSN)과 단말이 서버에 전송하는 ACK 시퀀스 번호 (ACK sequence number: ASN)을 모니터링할 수 있다.
그리고, 무선 품질 감지 모듈은 특정 시간에서 DSN과 ASN을 비교하여 시퀀스 번호의 차이를 계산할 수 있다. 이 때 DSN과 ASN의 차이 값을 net sequence number (NSN) 또는 시퀀스 번호 차이 값이라 칭할 수 있다. 따라서, 무선 품질 감지 모듈은 상기 NSN 값에 따라 무선 구간의 품질 상태를 판단할 수 있다.
예를 들어, 무선 품질 감지 모듈은 특정 시간에서의 DSN과 ASN의 차이가 임계 값보다 크면 무선 구간의 품질 상태 좋지 않다고 판단할 수 있다. 송신된 패킷의 시퀀스 번호와 ACK이 수신된 시퀀스 번호의 차이가 크다는 것은 패킷 전송이 원활하지 못함을 의미하기 때문이다.
또는, 무선 품질 감지 모듈은 DSN과 ASN의 차이 값의 변화율이 임계 변화율보다 큰 경우에 무선 구간의 품질 상태가 좋지 않다고 판단할 수 있다. 이 때, DSN과 ASN의 차이 값의 변화율은 미리 정해진 시간 구간 동안 측정될 수 있다.
또는, DSN과 ASN의 차이 값의 변화율이 임계 변화율을 일정 시간 동안 초과하는 경우, 무선 품질 감지 모듈은 무선 구간의 품질 상태가 좋지 않다고 판단할 수 있다.
또는, 무선 품질 감지 모듈은 DSN과 ASN의 차이 값의 평균이 임계 값보다 큰 경우에 무선 구간의 품질 상태가 좋지 않다고 판단할 수 있다.
본 발명에서는 상기 시퀀스 번호의 차이 값, 시퀀스 번호의 차이 값의 변화율, 시퀀스 차이 값의 평균 값 등을 시퀀스 번호의 차이 관련 정보라 칭한다.
따라서, 프록시 장치는 무선 구간의 품질 상태가 좋지 않음을 확인하고, 품질 상태가 좋지 않은 무선 연결을 갖는 단말의 TCP 연결을 프록싱 할 수 있다.
도 14는 본 발명에 따라 단말의 연결을 선택적으로 프록싱하는 다른 방법을 도시한 순서도이다.
도 14를 참고하면, 프록시 장치는 S1410 단계에서 서버가 단말에 전송하는 패킷의 시퀀스 번호와 서버가 단말로부터 수신하는 ACK 패킷의 시퀀스 번호의 차이에 대한 정보 (이하, 시퀀스 번호 차이 관련 정보)를 수신할 수 있다.
다만, 상술한 바와 같이, 프록시 장치가 무선 연결 감지 모듈을 포함하고 있는 경우, 프록시 장치는 시퀀스 번호 차이 관련 정보를 확인할 수 있다.
시퀀스 번호 차이 관련 정보를 확인하는 구체적인 방법은 후술한다.
그리고, 프록시 장치는 S1420 단계에서 시퀀스 번호 차이 관련 정보가 임계 값을 초과하는지 여부를 확인할 수 있다.
구체적으로, 프록시 장치는 시퀀스 번호의 차이 값이 임계 값을 초과하는지 여부를 확인할 수 있다. 또는, 프록시 장치는 시퀀스 번호의 차이 값의 변화율이 임계 값을 초과하는지 여부를 확인하거나, 시퀀스 번호 차이 값의 평균 값이 임계 값을 초과하는지 여부를 확인할 수 있다.
시퀀스 번호 차이 관련 정보가 임계 값을 초과하는 경우, 프록시 장치는 S1430 단계에서 시퀀스 번호 차이 값이 임계 값을 초과하는 연결에 대해 프록싱을 수행할 수 있다. 이 때, 프록시는 홈 게이트웨이의 네트워크 계층 에이전트로 해당 플로우 정보를 전달하고, 네트워크 계층 에이전트는 해당 플로우를 프록시 장치로 전송할 수 있다. 이 때 상기 플로우 정보에는 해당 연결을 통해 송수신되는 패킷을 프록시 장치로 전송할 것을 알리는 정보를 전송할 수 있다.
따라서, 프록시 장치는 network layer Agent로 제어 메시지를 전달한다. Network layer Agent는 해당 flow를 가로채어 애플리케이션 레이어에 있는 프록시 장치로 전송할 수 있으며, 프록시 장치는 이를 단말에 전송할 수 있다. 또한, 프록시 장치는 수신된 패킷에 대해 Ack 메시지를 생성하여 Network layer를 통해 서버로 전송할 수 있다. 이와 같이, 서버와 단말의 연결을 분리하여 성능을 향상시킬 수 있다.
한편, 시퀀스 번호 차이 관련 정보가 임계 값을 초과하지 않는 경우, 프록시 장치는 기존 연결을 유지하고, S1410 단계로 돌아가 이후 시점의 시퀀스 번호 차이 값을 수신할 수 있다.
도 15는 본 발명에 따라 단말에 전송하는 패킷의 시퀀스와 단말로부터 수신된 패킷의 시퀀스 번호 차이를 확인하는 방법을 도시한 순서도이다.
무선 품질 감지 모듈은 S1510 단계에서 단말과 서버 간 TCP 연결을 감지할 수 있다. 또한, 무선 품질 감지 모듈은 각 TCP 연결 별로 IP 정보, 송신/수신 패킷 수와 양 방향 트래픽 양, 그리고 TCP 데이터 시퀀스 정보 등을 모니터링 한다.
그리고, 무선 품질 감지 모듈은 S1520 단계에서 단말로 전송되는 패킷의 시퀀스 정보를 기록할 수 있다.
그리고, 무선 품질 감지 모듈은 S1530 단계에서 단말로부터 수신되는 패킷의 시퀀스 정보를 기록할 수 있다.
그리고, 무선 감지 모듈은 특정 시점에서 상기 서버에서 전송되는 패킷의 시퀀스 번호와 단말로부터 수신되는 패킷의 시퀀스 정보의 차이를 계산할 수 있다.
또는, 무선 감지 모듈은 미리 정해진 구간 동안 서버에서 전송되는 패킷의 시퀀스 번호와 단말로부터 수신되는 패킷의 시퀀스 정보의 차이의 변화율 정보를 계산할 수 있다.
또는, 무선 감지 모듈은 미리 정해진 구간 동안 서버에서 전송되는 패킷의 시퀀스 번호와 단말로부터 수신되는 패킷의 시퀀스 정보의 차이의 평균 값을 계산할 수 있다.
그리고, 무선 품질 감지 모듈은 S1540 단계에서 상기 계산된 정보인 시퀀스 번호 차이 관련 정보를 프록시 장치에 전송할 수 있다.
도 16은 본 발명에 따라 단말의 연결을 선택적으로 프록싱하는 또 다른 방법을 도시한 도면이다.
본 도면에서는 Wi-Fi AP와 홈 게이트웨이가 통합된 경우에 무선 연결을 선택적으로 프록싱하는 방법을 설명한다. 또한, 본 도면에서는 Wi-Fi AP와 홈 게이트웨이 사이에 인터페이스가 존재하여 정보를 송수신할 수 있는 경우의 프록싱 방법을 포함할 수 있다. Wi-Fi AP와 통합된 형태의 홈 게이트웨이 또는 Wi-Fi AP와의 인터페이스가 존재하는 홈 게이트웨이는 무선 연결된 단말의 정보를 알 수 있으므로, 무선 연결 단말의 무선 상태를 판단할 수 있다.
따라서, 프록시 장치는 단말의 무선 상태 관련 정보가 설정된 임계 값보다 낮은 경우, 해당 단말의 연결을 프록싱할 수 있다. 이 때, 무선 상태 관련 정보에는 수신 신호 강도 지시자 (received signal strength indicator: RSSI) 및 신호 대 잡음 비 (signal to noise ratio: SNR) 등이 포함될 수 있으며, 임계 값보다 낮은 무선 상태 정보를 갖는 단말을 감지하는 경우, 프록시 장치는 해당 단말의 연결을 프록싱할 수 있다.
이 때, 프록시 장치는 상기 단말을 관리 리스트에 저장하고, 상기 관리 리스트에 포함된 단말로부터 패킷이 수신되는 경우, 해당 패킷을 프록시 장치를 통해 처리할 수 있다.
도 16을 참고하면, 댁 내에 단말 1 (1610)과 단말 2 (1620)가 위치하는 상황을 가정한다. 이 때, 단말 1은 -60dB보다 작은 신호 세기를 가지며, 단말 2는 -40dB보다 작은 신호 세기를 가질 수 있다.
이 때, 프록시 장치는 단말 1을 저품질의 무선 구간에 위치한 단말이라고 판단할 수 있으며, 단말 2를 고품질의 무선 구간에 위치한 단말이라고 판단할 수 있다. 따라서, 프록시 장치는 단말 1을 관리 리스트에 저장한 뒤, 단말 1에 패킷이 전송되는 경우, 해당 패킷을 프록시 장치를 통해 처리할 수 있다.
이 때, 본 발명에서는 단말과 서버 사이에 최초 연결 시에 프록시 장치가 상기 단말의 무선 상태를 파악하여 프록시를 통한 분할 연결을 할 것인지 여부를 판단할 수 있다. 구체적으로, 단말로부터 TCP 연결을 위한 동기 패킷 (syn 패킷)이 전송되는 경우에, 프록시 장치는 단말의 무선 상태에 따라 분할 연결을 할 것인지 여부를 판단할 수 있다.
또는, 단말과 서버 사이에 연결이 설립된 이후에 단말의 이동으로 인해 무선 상태가 나빠진 경우, 프록시 장치는 단말의 무선 상태를 파악하여 단말과 서버 사이의 연결을 프록싱할 수도 있다.
도 17은 본 발명에 따라 단말의 연결을 선택적으로 프록싱하는 또 다른 방법을 도시한 순서도이다.
도 17을 참고하면, 프록시 장치는 S1710 단계에서 무선으로 연결된 단말의 무선 상태 정보를 획득할 수 있다. Wi-Fi AP는 무선으로 연결된 단말의 무선 정보를 획득할 수 있으며, 본 실시예에서는 Wi-Fi AP와 프록시가 통합된 형태 또는 Wi-Fi AP와 프록시 사이에 인터페이스가 존재하는 경우이므로, 프록시 장치 역시 무선 정보를 획득할 수 있다. 이 때, 무선 정보는 IP 정보, SSID 정보, OS명, 기기명, RSSI, Tx/Rx Rate 정보(MCS 정보), SNR 등이 해당된다.
한편, Wi-Fi AP에 의해 감지된 무선 연결 단말 정보는 무선 품질 감지 모듈에서 관리된다.
그리고, 프록시 장치는 S1720 단계에서 무선 품질이 낮은 단말을 확인할 수 있다. 프록시 장치는 RSSI 또는 MCS 등의 무선 상태 관련 정보와 임계 값을 비교하여 무선 품질이 낮은 단말을 확인할 수 있다.
그리고, 프록시 장치는 S1730 단계에서 무선 품질이 낮은 단말의 리스트를 저장할 수 있다. 구체적으로, 프록시 장치는 무선 연결 단말 중에 설정된 임계치 이하의 RSSI 정보와 SNR, Tx/Rx Rate 정보를 갖는 단말을 관리 리스트에 저장 및 관리를 할 수 있다.
이 후, 프록시 장치는 S1740 단계에서 새로운 TCP 연결이 감지되는지 여부를 확인할 수 있다. 프록시 장치는 새로운 TCP syn 패킷이 감지되는 경우, 새로운 TCP 연결이 감지되는 것으로 확인할 수 있다. 또한, 프록시 장치는 상기 syn 패킷을 통해 연결을 요청한 단말의 IP 주소를 확인할 수 있다.
그리고, 프록시 장치는 S1750 단계에서 새로운 연결을 요청한 단말이 무선 품질이 낮은 단말인지 여부를 확인할 수 있다. 프록시 장치는 새로운 TCP 연결을 요청한 단말의 IP 주소가 상기 관리 리스트에 포함되었는지 판단할 수 있다.
관리 리스트에 있는 단말로부터 TCP syn 패킷이 수신된 경우, 프록시 장치는 S1760 단계에서 해당 연결을 프록싱할 수 있다. 즉, 프록시 장치는 network layer agent에 control 메시지를 전송하여 해당 단말에 전송되는 패킷을 프록시 장치를 통해 전송되도록 한다.
한편, Proxy로 처리되는 Flow가 계속 전송되는 기간에 무선 연결 단말이 고 품질의 무선 구간으로 이동한 경우 해당 flow는 그대로 proxy 처리를 유지 한다. 새로 유입 되는 flow에 대해서는 proxy 처리를 하지 않고 network layer에서 그대로 포워딩 시킬 수 있다.
한편, 관리 리스트에 없는 단말로부터 TCP syn 패킷이 수신된 경우, 단말과 서버 사이에 TCP 연결이 생성될 수 있다. 다만, 이와 같은 경우에도 프록시 장치는 S1720 단계로 돌아가 단말의 무선 품질이 저하되는지 여부를 확인할 수 있다. 따라서, 단말의 무선 품질이 낮아지는 경우, 프록시 장치는 해당 단말을 관리 리스트에 저장할 수 있으며, 기존 TCP 연결을 프록싱할 수 있다. 또는, 새로운 플로우에 대해서만 프록시 처리를 할 수도 있다.
한편, 본 발명은 제1 실시예 및 제2 실시예에서 제안하는 내용을 혼용하여 적용될 수 있다. 예를 들어, 프록시 장치는 단말과의 연결이 무선 연결인지 여부를 판단한 뒤 (제1 실시예), 상기 무선 연결 중 패킷 손실률이 임계 값보다 높은 무선 연결에 대해서만 프록싱을 수행 (제2 실시예)할 수도 있다.
도 18은 본 발명에 따른 프록시 장치의 구성을 도시한 도면이다.
도 18을 참고하면, 프록시 장치는 송수신부 (1810), 제어부 (1820), 저장부 (1830)을 포함할 수 있다. 본 발명에서 제어부는, 회로 또는 어플리케이션 특정 통합 회로 또는 적어도 하나의 프로세서라고 정의될 수 있다.
송수신부 (1810)는 다른 네트워크 엔티티와 신호를 송수신할 수 있다. 송수신부(1810)는 예를 들어, 서버로부터 패킷을 수신하고, 이를 단말에 전송할 수 있다. 또한, 송수신부 (1810)는 생성된 ACK을 서버에 전송할 수 있다.
또한, 송수신부 (1810)는 무선 품질 감지 모듈로부터 패킷 손실률, 시퀀스 번호 차이 값과 같은 정보를 수신할 수 있다.
제어부 (1820)은 본 발명에서 제안하는 실시예에 따른 프록시 장치의 전반적인 동작을 제어할 수 있다. 예를 들어, 제어부 (1820)는 상기에서 기술한 순서도에 따른 동작을 수행하도록 각 블록 간 신호 흐름을 제어할 수 있다.
구체적으로, 제어부 (1820)는 무선 품질 감지 모듈로부터 패킷 손실률 정보를 수신하고, 상기 패킷 손실률이 임계 값을 초과하는 지 여부를 이용하여 해당 단말의 연결을 프록싱할 것인지 여부를 결정할 수 있다.
또는, 제어부 (1820)는 무선 품질 감지 모듈로부터 시퀀스 번호 차이 값에 대한 정보를 수신하고, 상기 정보가 임계 값을 초과하는 지 여부를 이용하여 해당 단말의 연결을 프록싱할 것인지 여부를 결정할 수 있다.
또는, 제어부 (1820)는 WI-Fi AP로부터 단말의 무선 상태에 대한 정보를 수신하고, 상기 정보가 임계 값 보다 작은지 여부를 이용하여 해당 단말의 연결을 프록싱할 것인지 여부를 결정할 수 있다.
또한, 이외에도 제어부 (1820)는 본 발명에서 제안하는 프록시 장치의 전반적인 동작을 제어할 수 있으며, 구체적인 내용은 생략한다.
저장부(1830)는 상기 송수신부 (1810)를 통해 송수신되는 정보 및 제어부 (1820)을 통해 생성되는 정보 중 적어도 하나를 저장할 수 있다. 예를 들어, 저장부 (1830)는 무선 품질 감지 모듈을 통해 수신된 정보를 저장할 수 있으며, 서버로부터 수신된 패킷에 대한 정보를 저장할 수 있다. 또한, 저장부 (1830)는 WIFI AP로부터 획득한 IP 정보, SSID 정보, OS명, 기기명, RSSI, Tx/Rx Rate 정보(MCS 정보), SNR 등 단말의 무선 정보를 저장할 수 있다.
한편, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.
Claims (12)
- 통신 시스템에서 프록시(proxy) 장치에 의해 수행되는 방법에 있어서,
시스템 부하 값을 식별하는 과정;
상기 시스템 부하 값이 미리 결정된 제1 임계 값보다 작은 경우, 상기 프록시 장치와 단말 사이의 연결 유형을 식별하는 과정;
상기 연결 유형이 무선 연결인 경우, 서버와 상기 프록시 장치 간의 제1 연결과 상기 프록시 장치와 상기 단말 간의 제2 연결을 상기 프록시 장치의 사용자 공간을 통해 연결하는 분할 연결 모드로 동작하는 과정; 및
상기 연결 유형이 무선 연결이 아닌 경우, 상기 제1 연결과 상기 제2 연결을 상기 프록시 장치의 커널 공간을 통해 연결하는 포워딩 모드로 동작하는 과정을 포함하는 방법.
- 제1항에 있어서,
상기 단말과 상기 서버 사이의 연결에 대해 패킷 손실률을 식별하는 과정;
상기 패킷 손실률이 미리 결정된 제2 임계 값을 초과하는지 여부를 식별하는 과정; 및
상기 패킷 손실률이 상기 미리 결정된 제2 임계 값을 초과하는 경우, 상기 단말과 상기 서버 사이의 연결에 대해 상기 분할 연결 모드로 동작하는 과정을 더 포함하는 방법.
- 제2항에 있어서, 상기 패킷 손실률을 식별하는 과정은,
상기 단말에게 전송되는 패킷들의 전체 개수를 식별하는 과정;
상기 단말에게 전송되는 패킷들 중에서 손실된 패킷의 개수를 식별하는 과정; 및
상기 손실된 패킷의 개수 및 상기 전체 개수에 기반하여, 상기 패킷 손실률을 식별하는 과정을 더 포함하는 방법.
- 제1항에 있어서, 상기 연결 유형을 식별하는 과정은,
RTT(round trip time)에 기반하여 상기 연결 유형을 식별하는 과정을 더 포함하는 방법.
- 제1항에 있어서,
미리 결정된 시간에 대해 재전송율을 식별하는 과정; 및
상기 식별된 재전송율에 기반하여, 상기 단말과 상기 서버 사이의 연결에 대해 상기 분할 연결 모드로 동작할지 여부를 결정하는 과정을 더 포함하는 방법.
- 제2항에 있어서, 상기 패킷 손실률을 식별하는 과정은,
상기 단말로부터 수신된 패킷들의 SN(sequence number)들과 상기 단말에게 전송된 패킷들의 SN들의 평균적인 차이를 계산하는 과정;
상기 평균적인 차이가 미리 결정된 값을 초과하는 경우, 상기 단말과 상기 서버 사이의 연결에 대해 상기 분할 연결 모드로 동작하는 과정을 더 포함하는 방법.
- 통신 시스템에서 프록시(proxy) 장치에 있어서,
송수신기; 및
프로세서를 포함하고, 상기 프로세서는,
시스템 부하 값을 식별하고,
상기 시스템 부하 값이 미리 결정된 제1 임계 값보다 작은 경우, 상기 프록시 장치와 단말 사이의 연결 유형을 식별하고,
상기 연결 유형이 무선 연결인 경우, 서버와 상기 프록시 장치 간의 제1 연결과 상기 프록시 장치와 상기 단말 간의 제2 연결을 상기 프록시 장치의 사용자 공간을 통해 연결하는 분할 연결 모드로 동작하고,
상기 연결 유형이 무선 연결이 아닌 경우, 상기 제1 연결과 상기 제2 연결을 상기 프록시 장치의 커널 공간을 통해 연결하는 포워딩 모드로 동작하도록 구성되는 프록시 장치.
- 제7항에 있어서, 상기 프로세서는,
상기 단말과 상기 서버 사이의 연결에 대해 패킷 손실률을 식별하고,
상기 패킷 손실률이 미리 결정된 제2 임계 값은 초과하는지 여부를 식별하고,
상기 패킷 손실률이 상기 미리 결정된 제2 임계 값을 초과하는 경우, 상기 단말과 사익 서버 사이의 연결에 대해 상기 분할 연결 모드로 동작하도록 구성되는 프록시 장치.
- 제8항에 있어서, 상기 프로세서는,
상기 단말에게 전송되는 패킷들의 전체 개수를 식별하고,
상기 단말에게 전송되는 패킷들 중에서 손실된 패킷의 개수를 식별하고,
상기 손실된 패킷의 개수 및 상기 전체 개수에 기반하여, 상기 패킷 손실률을 식별하도록 구성되는 프록시 장치.
- 제7항에 있어서, 상기 프로세서는,
RTT(round trip time)에 기반하여 상기 연결 유형을 식별하도록 구성되는 프록시 장치.
- 제7항에 있어서, 상기 프로세서는,
미리 결정된 시간에 대해 재전송율을 식별하고,
상기 식별된 재전송율에 기반하여, 상기 단말과 상기 서버 사이의 연결에 대해 상기 분할 연결 모드로 동작할지 여부를 결정하도록 구성되는 프록시 장치.
- 제8항에 있어서, 상기 프로세서는,
상기 단말로부터 수신된 패킷들의 SN(sequence number)들과 상기 단말에게 전송된 패킷들의 SN들의 평균적인 차이를 계산하고,
상기 평균적인 차이가 미리 결정된 값을 초과하는 경우, 상기 단말과 상기 서버 사이의 연결에 대해 상기 분할 연결 모드로 동작하도록 구성되는 프록시 장치.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/982,695 US10693800B2 (en) | 2017-05-17 | 2018-05-17 | TCP proxy device-assisted communication method and apparatus in wireless communication |
PCT/KR2018/005685 WO2018212613A1 (en) | 2017-05-17 | 2018-05-17 | Tcp proxy device-assisted communication method and apparatus in wireless communication |
EP18801919.4A EP3586483B1 (en) | 2017-05-17 | 2018-05-17 | Tcp proxy device-assisted communication method and apparatus in wireless communication |
CN201880032320.1A CN110637446B (zh) | 2017-05-17 | 2018-05-17 | 无线通信中tcp代理设备辅助的通信方法和装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170061217 | 2017-05-17 | ||
KR20170061217 | 2017-05-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180126351A KR20180126351A (ko) | 2018-11-27 |
KR102347865B1 true KR102347865B1 (ko) | 2022-01-06 |
Family
ID=64603502
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170076888A KR102347865B1 (ko) | 2017-05-17 | 2017-06-16 | 통신 시스템에서 tcp 프록시 장치를 이용한 통신 방법 및 장치 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP3586483B1 (ko) |
KR (1) | KR102347865B1 (ko) |
CN (1) | CN110637446B (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI738205B (zh) * | 2020-02-06 | 2021-09-01 | 鑽贏雲股份有限公司 | 雲端代理執行程式系統及其執行方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140036674A1 (en) * | 2012-07-31 | 2014-02-06 | International Business Machines Corporation | Split transport control protocol (tcp) flow control management in a cellular broadband network |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102342144B1 (ko) * | 2014-12-01 | 2021-12-22 | 삼성전자주식회사 | 통신 시스템에서 분리된 tcp 연결을 설정하는 방법 및 장치와 이를 위한 핸드 오버 지원 방법 및 장치 |
CN105897615A (zh) * | 2015-09-14 | 2016-08-24 | 乐视云计算有限公司 | 一种数据传输方法及装置 |
-
2017
- 2017-06-16 KR KR1020170076888A patent/KR102347865B1/ko active IP Right Grant
-
2018
- 2018-05-17 EP EP18801919.4A patent/EP3586483B1/en active Active
- 2018-05-17 CN CN201880032320.1A patent/CN110637446B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140036674A1 (en) * | 2012-07-31 | 2014-02-06 | International Business Machines Corporation | Split transport control protocol (tcp) flow control management in a cellular broadband network |
Also Published As
Publication number | Publication date |
---|---|
EP3586483A4 (en) | 2020-02-26 |
EP3586483A1 (en) | 2020-01-01 |
EP3586483B1 (en) | 2021-09-15 |
CN110637446A (zh) | 2019-12-31 |
KR20180126351A (ko) | 2018-11-27 |
CN110637446B (zh) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10693800B2 (en) | TCP proxy device-assisted communication method and apparatus in wireless communication | |
JP6977090B2 (ja) | 信頼できる通信のための冗長リンク | |
EP3955487B1 (en) | Adapting communication parameters to link conditions, traffic types, and/or priorities | |
US9253015B2 (en) | Transparent proxy architecture for multi-path data connections | |
EP3163936A1 (en) | Enhancing network topology information for a self-organizing network | |
TW202123729A (zh) | 多存取點(ap)網路中基於簡檔的客戶端引導 | |
KR102356912B1 (ko) | 통신 시스템에서 tcp ack 전송 방법 및 장치 | |
JP2013531933A (ja) | メッシュネットワークでの協調通信を可能とするための群知能を利用した方法 | |
WO2018203136A1 (en) | System and method for connection and hand-over management across networks and ssids | |
CN101478484A (zh) | 路由选择的方法、设备及通信系统 | |
JP6205707B2 (ja) | 無線通信システム、無線通信制御方法、アクセス制御装置、及び、無線基地局 | |
JP6446574B2 (ja) | Wlanにおける装置、方法、コンピュータ・プログラム及び記憶媒体 | |
KR102347865B1 (ko) | 통신 시스템에서 tcp 프록시 장치를 이용한 통신 방법 및 장치 | |
CN113711649B (zh) | 通信装置、通信方法和通信程序 | |
JP2018148478A (ja) | 制御装置、移動通信システム、及び制御方法 | |
JP6315896B2 (ja) | 通信制御方法、通信制御プログラムおよび通信制御装置 | |
US12069515B2 (en) | Techniques for managing access combinations for multiple access protocol data unit sessions | |
Karimi et al. | Achieving high-performance cellular data Services with multi-network access | |
CN115914082B (zh) | 数据传输方法、系统、节点设备、转发设备及存储介质 | |
WO2024049832A1 (en) | Systems and methods for media delivery in cooperative device-to-device communications | |
WO2023168084A1 (en) | Methods, architectures, apparatuses and systems for enabling wireless reliability and availability in multi-domain deployments | |
Liu et al. | An SDN-based WLAN system for terminal mobility: Design and implementation |
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 |