KR20170032025A - 전자 장치 및 그의 전송 제어 프로토콜(transmission control protocol: TCP) 제어 방법 - Google Patents

전자 장치 및 그의 전송 제어 프로토콜(transmission control protocol: TCP) 제어 방법 Download PDF

Info

Publication number
KR20170032025A
KR20170032025A KR1020150129755A KR20150129755A KR20170032025A KR 20170032025 A KR20170032025 A KR 20170032025A KR 1020150129755 A KR1020150129755 A KR 1020150129755A KR 20150129755 A KR20150129755 A KR 20150129755A KR 20170032025 A KR20170032025 A KR 20170032025A
Authority
KR
South Korea
Prior art keywords
electronic device
window size
value
physical layer
reference value
Prior art date
Application number
KR1020150129755A
Other languages
English (en)
Other versions
KR102496060B1 (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 KR1020150129755A priority Critical patent/KR102496060B1/ko
Priority to US15/263,904 priority patent/US10244425B2/en
Publication of KR20170032025A publication Critical patent/KR20170032025A/ko
Application granted granted Critical
Publication of KR102496060B1 publication Critical patent/KR102496060B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping
    • H04L47/225Determination of shaping rate, e.g. using a moving window
    • 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/0273Traffic management, e.g. flow control or congestion control adapting protocols for flow control or congestion control to wireless environment, e.g. adapting transmission control protocol [TCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • 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/0231Traffic management, e.g. flow control or congestion control based on communication conditions
    • H04W28/0236Traffic management, e.g. flow control or congestion control based on communication conditions radio quality, e.g. interference, losses or delay
    • 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/10Flow control between communication endpoints
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0888Throughput
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • 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/0231Traffic management, e.g. flow control or congestion control based on communication conditions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Telephone Function (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 개시의 다양한 실시예에 따른 전자 장치는 통신 회로, 상기 통신 회로와 전기적으로 연결된 프로세서, 및 상기 프로세서와 전기적으로 연결된 메모리를 포함하고, 상기 메모리는, 실행 시에, 상기 프로세서가, 측정된 패킷 왕복 시간(round trip time: RTT)을 기반으로 수신 윈도우 크기의 기준값을 설정하고, 상기 전자 장치와 다른 전자 장치의 무선 채널과 관련된 물리 계층 파라미터를 확인하고, 상기 물리 계층 파라미터 및 상기 기준값을 기반으로 수신 윈도우 크기를 결정하고, 데이터 수신에 따른 응답 메시지 전송 시 상기 결정된 수신 윈도우 크기를 상기 다른 전자 장치에 전송하도록 하는 인스트럭션들을 포함할 수 있다.

Description

전자 장치 및 그의 전송 제어 프로토콜(transmission control protocol: TCP) 제어 방법 {Electronic device and method for control a transmission control protocol}
본 개시는 TCP 제어 방법에 관한 것으로, 보다 구체적으로 전자 장치의 수신 윈도우 크기를 동적으로 변경하여 TCP 전송을 최적화하는 방법 및 장치에 관한 것이다.
전자 장치 간에 통신을 수행하기 위해서는 통신에 참여하는 각각의 전자 장치가 특정한 통신 프로토콜을 지원해야 하며, 많이 사용되는 통신 프로토콜 중 하나가 전송 제어 프로토콜(transmission control protocol: TCP)이다.
전송 제어 프로토콜은 고성능 네트워크나 고성능 전자 장치 환경을 염두하고 설계된 것이 아니며, 대역폭을 공평하게 나누어 쓰고자 하는 목적으로 형평성에 중점을 두고 설계되었다.
한편, 전송 제어 프로토콜을 사용하여 통신을 수행하는 경우, 송신 장치가 전송하는 패킷의 양이 TCP 성능에 영향을 미칠 수 있다. 예를 들어, 네트워크 상황에 비해 전송하는 패킷의 양이 과도하게 많은 경우, 버퍼링에 의해 패킷 왕복 시간이 길어질 수 있는 반면, 네트워크 상황에 비해 전송하는 패킷의 양이 과도하게 적은 경우, 시간당 데이터 전송량이 감소할 수 있다. 따라서, TCP를 사용하여 통신을 수행할 때 TCP 성능을 최적화하는 방법이 필요하다.
예를 들어, 송신 장치는 수신 장치로부터 acknowledge (ACK) 을 수신하지 않아도 한번에 전송할 수 있는 패킷의 양을 의미하는 송신 윈도우(send window: swnd) 크기를 조절하여 네트워크로 전송하는 패킷의 양을 조절함으로써, TCP 성능의 향상시킬 수 있다.
그런데 송신 윈도우 크기는 ACK을 전송하기 전 한번에 받을 수 있는 패킷의 양을 의미하는 수신 윈도우(receive window: rwnd) 크기를 초과할 수 없다. 따라서, 송신 윈도우 크기를 조절하는 구성에서는 네트워크 상황이 좋은 경우에도 수신 윈도우 크기를 초과하는 양의 패킷을 전송할 수 없으며 이에 따라 TCP 전송이 최적화 되지 못하는 문제점이 있다.
이에 반해, 본 개시의 다양한 실시예들은 패킷 왕복 시간 및 물리 계층의 파라미터를 이용하여 수신 윈도우의 크기를 동적으로 변경함으로써 네트워크 상황에 따라 수신 윈도우의 크기를 동적으로 조절할 수 있다.
본 개시의 다양한 실시예에 따른 전자 장치는 통신 회로, 상기 통신 회로와 전기적으로 연결된 프로세서, 및 상기 프로세서와 전기적으로 연결된 메모리를 포함하고, 상기 메모리는, 실행 시에, 상기 프로세서가, 측정된 패킷 왕복 시간(round trip time: RTT)을 기반으로 수신 윈도우 크기의 기준값을 설정하고, 상기 전자 장치와 다른 전자 장치의 무선 채널과 관련된 물리 계층 파라미터를 확인하고, 상기 물리 계층 파라미터 및 상기 기준값을 기반으로 수신 윈도우 크기를 결정하고, 데이터 수신에 따른 응답 메시지 전송 시 상기 결정된 수신 윈도우 크기를 상기 다른 전자 장치에 전송하도록 하는 인스트럭션들을 포함할 수 있다.
또한, 본 개시의 다양한 실시예에 따른 전자 장치의 전송 제어 프로토콜(transmission control protocol: TCP) 제어 방법은 측정된 패킷 왕복 시간(round trip time: RTT)을 기반으로 수신 윈도우 크기 기준 값을 설정하는 동작, 상기 전자 장치와 다른 전자 장치의 무선 채널과 관련된 물리 계층 파라미터를 확인하는 동작, 상기 물리 계층 파라미터 및 상기 수신 윈도우 크기의 기준 값을 기반으로 수신 윈도우 크기를 결정하는 동작, 및 데이터 수신에 따른 응답 메시지 전송 시 상기 결정된 수신 윈도우 크기를 상기 다른 전자 장치에 전송하는 동작을 포함할 수 있다.
본 개시의 다양한 실시예에 따른 전자 장치에 따르면, 전자 장치는 패킷 왕복 시간 물리 계층 파라미터를 이용하여 수신 윈도우 크기를 동적으로 변경함으로써, 네트워크 상황에 따라 시간당 데이터 전송량을 효과적으로 증가시킬 수 있다.
도 1는 본 개시의 다양한 실시예들에 따른 전자 장치를 포함하는 네트워크 환경을 도시한다.
도 2는 본 개시의 다양한 실시예들에 따른 전자 장치의 블록도이다.
도 3은 본 개시의 다양한 실시예에 따른 프로그램 모듈의 블록도이다.
도 4는 본 개시의 다양한 실시예에 따른 전자 장치의 블록도를 도시한 도면이다.
도 5는 본 개시의 다양한 실시예에 따른 전자 장치의 TCP 통신 과정을 도시한 순서도이다.
도 6은 본 개시의 다양한 실시예에 따라 전자 장치가 수신 윈도우 크기를 결정하는 과정을 도시한 도면이다.
도 7은 본 개시의 다양한 실시예에 따른 전자 장치의 수신 윈도우 크기 기준 값을 결정하는 과정을 도시한 도면이다.
도 7a는 본 개시의 다양한 실시예에 따른 전자 장치의 제 1 구간에서 RTT 최대 값과 제 1 RTT 최소 값을 결정하는 과정을 도시한 도면이다.
도 7b는 본 개시의 다양한 실시예에 따른 제 2 구간에서 제 2 RTT 최소 값을 결정하는 과정을 도시한 도면이다.
도 7c는 본 개시의 다양한 실시예에 따라 전자 장치가 수신 윈도우 크기 기준 값을 결정하는 과정을 도시한 도면이다.
도 8은 본 개시의 다양한 실시예에 따라, 전자 장치가 물리 계층 파라미터를 이용하여 수신 윈도우 크기를 결정하는 과정을 도시한 순서도이다.
도 9는 본 개시의 다양한 실시예에 따라 전자 장치가 물리 계층 파라미터를 이용하여 수신 윈도우 크기를 결정하는 다른 과정을 도시한 순서도이다.
도 10는 본 개시의 다양한 실시예에 따라 전자 장치가 물리 계층 파라미터를 이용하여 수신 윈도우 크기를 결정하는 또 다른 과정을 도시한 순서도이다.
이하, 본 문서의 다양한 실시예들이 첨부된 도면을 참조하여 기재된다. 실시예 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B" 또는 "A 및/또는 B 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1," "제 2," "첫째," 또는 "둘째,"등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다.
본 문서에서, "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, 하드웨어적 또는 소프트웨어적으로 "~에 적합한," "~하는 능력을 가지는," "~하도록 변경된," "~하도록 만들어진," "~를 할 수 있는," 또는 "~하도록 설계된"과 상호 호환적으로(interchangeably) 사용될 수 있다. 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(예: CPU 또는 application processor)를 의미할 수 있다.
본 문서의 다양한 실시예들에 따른 전자 장치는, 예를 들면, 스마트폰, 태블릿 PC, 이동 전화기, 영상 전화기, 전자책 리더기, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 워크스테이션, 서버, PDA, PMP(portable multimedia player), MP3 플레이어, 의료기기, 카메라, 또는 웨어러블 장치 중 적어도 하나를 포함할 수 있다. 웨어러블 장치는 액세서리형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD)), 직물 또는 의류 일체형(예: 전자 의복), 신체 부착형(예: 스킨 패드 또는 문신), 또는 생체 이식형 회로 중 적어도 하나를 포함할 수 있다. 어떤 실시예들에서, 전자 장치는, 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스, 홈 오토매이션 컨트롤 패널, 보안 컨트롤 패널, 미디어 박스(예: 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM), 게임 콘솔(예: XboxTM, PlayStationTM), 전자 사전, 전자 키, 캠코더, 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
다른 실시예에서, 전자 장치는, 각종 의료기기(예: 각종 휴대용 의료측정기기(혈당 측정기, 심박 측정기, 혈압 측정기, 또는 체온 측정기 등), MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 또는 초음파기 등), 네비게이션 장치, 위성 항법 시스템(GNSS(global navigation satellite system)), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트 장치, 선박용 전자 장비(예: 선박용 항법 장치, 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 차량용 헤드 유닛(head unit), 산업용 또는 가정용 로봇, 드론(drone), 금융 기관의 ATM, 상점의 POS(point of sales), 또는 사물 인터넷 장치 (예: 전구, 각종 센서, 스프링클러 장치, 화재 경보기, 온도조절기, 가로등, 토스터, 운동기구, 온수탱크, 히터, 보일러 등) 중 적어도 하나를 포함할 수 있다. 어떤 실시예에 따르면, 전자 장치는 가구, 건물/구조물 또는 자동차의 일부, 전자 보드(electronic board), 전자 사인 수신 장치(electronic signature receiving device), 프로젝터, 또는 각종 계측 기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 다양한 실시예에서, 전자 장치는 플렉서블하거나, 또는 전술한 다양한 장치들 중 둘 이상의 조합일 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다. 본 문서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
도 1을 참조하여, 다양한 실시예에서의, 네트워크 환경(100) 내의 전자 장치(101)가 기재된다. 전자 장치(101)는 버스(110), 프로세서(120), 메모리(130), 입출력 인터페이스(150), 디스플레이(160), 및 통신 인터페이스(170)를 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)는, 구성요소들 중 적어도 하나를 생략하거나 다른 구성요소를 추가적으로 구비할 수 있다. 버스(110)는 구성요소들(110-170)을 서로 연결하고, 구성요소들 간의 통신(예: 제어 메시지 또는 데이터)을 전달하는 회로를 포함할 수 있다. 프로세서(120)는, 중앙처리장치, 어플리케이션 프로세서, 또는 커뮤니케이션 프로세서(communication processor(CP)) 중 하나 또는 그 이상을 포함할 수 있다. 프로세서(120)는, 예를 들면, 전자 장치(101)의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다.
메모리(130)는, 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리(130)는, 예를 들면, 전자 장치(101)의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 한 실시예에 따르면, 메모리(130)는 소프트웨어 및/또는 프로그램(140)을 저장할 수 있다. 프로그램(140)은, 예를 들면, 커널(141), 미들웨어(143), 어플리케이션 프로그래밍 인터페이스(API)(145), 및/또는 어플리케이션 프로그램(또는 "어플리케이션")(147) 등을 포함할 수 있다. 커널(141), 미들웨어(143), 또는 API(145)의 적어도 일부는, 운영 시스템으로 지칭될 수 있다. 커널(141)은, 예를 들면, 다른 프로그램들(예: 미들웨어(143), API(145), 또는 어플리케이션 프로그램(147))에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들(예: 버스(110), 프로세서(120), 또는 메모리(130) 등)을 제어 또는 관리할 수 있다. 또한, 커널(141)은 미들웨어(143), API(145), 또는 어플리케이션 프로그램(147)에서 전자 장치(101)의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
미들웨어(143)는, 예를 들면, API(145) 또는 어플리케이션 프로그램(147)이 커널(141)과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다. 또한, 미들웨어(143)는 어플리케이션 프로그램(147)으로부터 수신된 하나 이상의 작업 요청들을 우선 순위에 따라 처리할 수 있다. 예를 들면, 미들웨어(143)는 어플리케이션 프로그램(147) 중 적어도 하나에 전자 장치(101)의 시스템 리소스(예: 버스(110), 프로세서(120), 또는 메모리(130) 등)를 사용할 수 있는 우선 순위를 부여하고, 상기 하나 이상의 작업 요청들을 처리할 수 있다. API(145)는 어플리케이션(147)이 커널(141) 또는 미들웨어(143)에서 제공되는 기능을 제어하기 위한 인터페이스로, 예를 들면, 파일 제어, 창 제어, 영상 처리, 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수(예: 명령어)를 포함할 수 있다. 입출력 인터페이스(150)는, 예를 들면, 사용자 또는 다른 외부 기기로부터 입력된 명령 또는 데이터를 전자 장치(101)의 다른 구성요소(들)에 전달하거나, 또는 전자 장치(101)의 다른 구성요소(들)로부터 수신된 명령 또는 데이터를 사용자 또는 다른 외부 기기로 출력할 수 있다.
디스플레이(160)는, 예를 들면, 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 마이크로 전자기계 시스템 (MEMS) 디스플레이, 또는 전자종이(electronic paper) 디스플레이를 포함할 수 있다. 디스플레이(160)는, 예를 들면, 사용자에게 각종 콘텐츠(예: 텍스트, 이미지, 비디오, 아이콘, 및/또는 심볼 등)을 표시할 수 있다. 디스플레이(160)는, 터치 스크린을 포함할 수 있으며, 예를 들면, 전자 펜 또는 사용자의 신체의 일부를 이용한 터치, 제스쳐, 근접, 또는 호버링 입력을 수신할 수 있다. 통신 인터페이스(170)는, 예를 들면, 전자 장치(101)와 외부 장치(예: 제 1 외부 전자 장치(102), 제 2 외부 전자 장치(104), 또는 서버(106)) 간의 통신을 설정할 수 있다. 예를 들면, 통신 인터페이스(170)는 무선 통신 또는 유선 통신을 통해서 네트워크(162)에 연결되어 외부 장치(예: 제 2 외부 전자 장치(104) 또는 서버(106))와 통신할 수 있다.
무선 통신은, 예를 들면, LTE, LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 사용하는 셀룰러 통신을 포함할 수 있다. 한 실시예에 따르면, 무선 통신은, 예를 들면, WiFi(wireless fidelity), 블루투스, 블루투스 저전력(BLE), 지그비(Zigbee), NFC(near field communication), 자력 시큐어 트랜스미션(Magnetic Secure Transmission), 라디오 프리퀀시(RF), 또는 보디 에어리어 네트워크(BAN) 중 적어도 하나를 포함할 수 있다. 한실시예에 따르면, 무선 통신은 GNSS를 포함할 수 있다. GNSS는, 예를 들면, GPS(Global Positioning System), Glonass(Global Navigation Satellite System), Beidou Navigation Satellite System(이하 “Beidou”) 또는 Galileo, the European global satellite-based navigation system일 수 있다. 이하, 본 문서에서는, “GPS”는 “GNSS”와 상호 호환적으로 사용될 수 있다. 유선 통신은, 예를 들면, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard232), 전력선 통신, 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함할 수 있다. 네트워크(162)는 텔레커뮤니케이션 네트워크, 예를 들면, 컴퓨터 네트워크(예: LAN 또는 WAN), 인터넷, 또는 텔레폰 네트워크 중 적어도 하나를 포함할 수 있다.
제 1 및 제 2 외부 전자 장치(102, 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 다양한 실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 전자 장치(예: 전자 장치(102,104), 또는 서버(106)에서 실행될 수 있다. 한 실시예에 따르면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 다른 장치(예: 전자 장치(102, 104), 또는 서버(106))에게 요청할 수 있다. 다른 전자 장치(예: 전자 장치(102, 104), 또는 서버(106))는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
도 2는 다양한 실시예에 따른 전자 장치(201)의 블록도이다. 전자 장치(201)는, 예를 들면, 도 1에 도시된 전자 장치(101)의 전체 또는 일부를 포함할 수 있다. 전자 장치(201)는 하나 이상의 프로세서(예: AP)(210), 통신 모듈(220), (가입자 식별 모듈(224), 메모리(230), 센서 모듈(240), 입력 장치(250), 디스플레이(260), 인터페이스(270), 오디오 모듈(280), 카메라 모듈(291), 전력 관리 모듈(295), 배터리(296), 인디케이터(297), 및 모터(298) 를 포함할 수 있다.
프로세서(210)는, 예를 들면, 운영 체제 또는 응용 프로그램을 구동하여 프로세서(210)에 연결된 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 프로세서(210)는, 예를 들면, SoC(system on chip) 로 구현될 수 있다. 한 실시예에 따르면, 프로세서(210)는 GPU(graphic processing unit) 및/또는 이미지 신호 프로세서를 더 포함할 수 있다. 프로세서(210)는 도 2에 도시된 구성요소들 중 적어도 일부(예: 셀룰러 모듈(221))를 포함할 수도 있다. 프로세서(210) 는 다른 구성요소들(예: 비휘발성 메모리) 중 적어도 하나로부터 수신된 명령 또는 데이터를 휘발성 메모리에 로드)하여 처리하고, 결과 데이터를 비휘발성 메모리에 저장할 수 있다.
통신 모듈(220)(예: 통신 인터페이스(170))와 동일 또는 유사한 구성을 가질 수 있다. 통신 모듈(220)은, 예를 들면, 셀룰러 모듈(221), WiFi 모듈(223), 블루투스 모듈(225), GNSS 모듈(227), NFC 모듈(228) 및 RF 모듈(229)를 포함할 수 있다. 셀룰러 모듈(221)은, 예를 들면, 통신망을 통해서 음성 통화, 영상 통화, 문자 서비스, 또는 인터넷 서비스 등을 제공할 수 있다. 한 실시예에 따르면, 셀룰러 모듈(221)은 가입자 식별 모듈(예: SIM 카드)(224)을 이용하여 통신 네트워크 내에서 전자 장치(201)의 구별 및 인증을 수행할 수 있다. 한 실시예에 따르면, 셀룰러 모듈(221)은 프로세서(210)가 제공할 수 있는 기능 중 적어도 일부 기능을 수행할 수 있다. 한 실시예에 따르면, 셀룰러 모듈(221)은 커뮤니케이션 프로세서(CP)를 포함할 수 있다. 어떤 실시예에 따르면, 셀룰러 모듈(221), WiFi 모듈(223), 블루투스 모듈(225), GNSS 모듈(227) 또는 NFC 모듈(228) 중 적어도 일부(예: 두 개 이상)는 하나의 integrated chip(IC) 또는 IC 패키지 내에 포함될 수 있다. RF 모듈(229)은, 예를 들면, 통신 신호(예: RF 신호)를 송수신할 수 있다. RF 모듈(229)은, 예를 들면, 트랜시버, PAM(power amp module), 주파수 필터, LNA(low noise amplifier), 또는 안테나 등을 포함할 수 있다. 다른 실시예에 따르면, 셀룰러 모듈(221), WiFi 모듈(223), 블루투스 모듈(225), GNSS 모듈(227) 또는 NFC 모듈(228) 중 적어도 하나는 별개의 RF 모듈을 통하여 RF 신호를 송수신할 수 있다. 가입자 식별 모듈(224)은, 예를 들면, 가입자 식별 모듈을 포함하는 카드 또는 임베디드 SIM을 포함할 수 있으며, 고유한 식별 정보(예: ICCID(integrated circuit card identifier)) 또는 가입자 정보(예: IMSI(international mobile subscriber identity))를 포함할 수 있다.
메모리(230)(예: 메모리(130))는, 예를 들면, 내장 메모리(232) 또는 외장 메모리(234)를 포함할 수 있다. 내장 메모리(232)는, 예를 들면, 휘발성 메모리(예: DRAM, SRAM, 또는 SDRAM 등), 비휘발성 메모리(예: OTPROM(one time programmable ROM), PROM, EPROM, EEPROM, mask ROM, flash ROM, 플래시 메모리, 하드 드라이브, 또는 솔리드 스테이트 드라이브 (SSD) 중 적어도 하나를 포함할 수 있다. 외장 메모리(234)는 플래시 드라이브(flash drive), 예를 들면, CF(compact flash), SD(secure digital), Micro-SD, Mini-SD, xD(extreme digital), MMC(multi-media card) 또는 메모리 스틱 등을 포함할 수 있다. 외장 메모리(234)는 다양한 인터페이스를 통하여 전자 장치(201)와 기능적으로 또는 물리적으로 연결될 수 있다.
센서 모듈(240)은, 예를 들면, 물리량을 계측하거나 전자 장치(201)의 작동 상태를 감지하여, 계측 또는 감지된 정보를 전기 신호로 변환할 수 있다. 센서 모듈(240)은, 예를 들면, 제스처 센서(240A), 자이로 센서(240B), 기압 센서(240C), 마그네틱 센서(240D), 가속도 센서(240E), 그립 센서(240F), 근접 센서(240G), 컬러(color) 센서(240H)(예: RGB(red, green, blue) 센서), 생체 센서(240I), 온/습도 센서(240J), 조도 센서(240K), 또는 UV(ultra violet) 센서(240M) 중의 적어도 하나를 포함할 수 있다. 추가적으로 또는 대체적으로, 센서 모듈(240)은, 예를 들면, 후각(e-nose) 센서, 일렉트로마이오그라피(EMG) 센서, 일렉트로엔씨팔로그램(EEG) 센서, 일렉트로카디오그램(ECG) 센서, IR(infrared) 센서, 홍채 센서 및/또는 지문 센서를 포함할 수 있다. 센서 모듈(240)은 그 안에 속한 적어도 하나 이상의 센서들을 제어하기 위한 제어 회로를 더 포함할 수 있다. 어떤 실시예에서는, 전자 장치(201)는 프로세서(210)의 일부로서 또는 별도로, 센서 모듈(240)을 제어하도록 구성된 프로세서를 더 포함하여, 프로세서(210)가 슬립(sleep) 상태에 있는 동안, 센서 모듈(240)을 제어할 수 있다.
입력 장치(250)는, 예를 들면, 터치 패널(252), (디지털) 펜 센서(254), 키(256), 또는 초음파 입력 장치(258)를 포함할 수 있다. 터치 패널(252)은, 예를 들면, 정전식, 감압식, 적외선 방식, 또는 초음파 방식 중 적어도 하나의 방식을 사용할 수 있다. 또한, 터치 패널(252)은 제어 회로를 더 포함할 수도 있다. 터치 패널(252)은 택타일 레이어(tactile layer)를 더 포함하여, 사용자에게 촉각 반응을 제공할 수 있다. (디지털) 펜 센서(254)는, 예를 들면, 터치 패널의 일부이거나, 별도의 인식용 쉬트를 포함할 수 있다. 키(256)는, 예를 들면, 물리적인 버튼, 광학식 키, 또는 키패드를 포함할 수 있다. 초음파 입력 장치(258)는 마이크(예: 마이크(288))를 통해, 입력 도구에서 발생된 초음파를 감지하여, 상기 감지된 초음파에 대응하는 데이터를 확인할 수 있다.
디스플레이(260)(예: 디스플레이(160))는 패널(262), 홀로그램 장치(264), 프로젝터(266), 및/또는 이들을 제어하기 위한 제어 회로를 포함할 수 있다. 패널(262)은, 예를 들면, 유연하게, 투명하게, 또는 착용할 수 있게 구현될 수 있다. 패널(262)은 터치 패널(252)과 하나 이상의 모듈로 구성될 수 있다. 홀로그램 장치(264)는 빛의 간섭을 이용하여 입체 영상을 허공에 보여줄 수 있다. 프로젝터(266)는 스크린에 빛을 투사하여 영상을 표시할 수 있다. 스크린은, 예를 들면, 전자 장치(201)의 내부 또는 외부에 위치할 수 있다. 인터페이스(270)는, 예를 들면, HDMI(272), USB(274), 광 인터페이스(optical interface)(276), 또는 D-sub(D-subminiature)(278)를 포함할 수 있다. 인터페이스(270)는, 예를 들면, 도 1에 도시된 통신 인터페이스(170)에 포함될 수 있다. 추가적으로 또는 대체적으로, 인터페이스(270)는, 예를 들면, MHL(mobile high-definition link) 인터페이스, SD카드/MMC(multi-media card) 인터페이스, 또는 IrDA(infrared data association) 규격 인터페이스를 포함할 수 있다.
오디오 모듈(280)은, 예를 들면, 소리와 전기 신호를 쌍방향으로 변환시킬 수 있다. 오디오 모듈(280)의 적어도 일부 구성요소는, 예를 들면, 도 1 에 도시된 입출력 인터페이스(145)에 포함될 수 있다. 오디오 모듈(280)은, 예를 들면, 스피커(282), 리시버(284), 이어폰(286), 또는 마이크(288) 등을 통해 입력 또는 출력되는 소리 정보를 처리할 수 있다. 카메라 모듈(291)은, 예를 들면, 정지 영상 및 동영상을 촬영할 수 있는 장치로서, 한 실시예에 따르면, 하나 이상의 이미지 센서(예: 전면 센서 또는 후면 센서), 렌즈, 이미지 시그널 프로세서(ISP), 또는 플래시(예: LED 또는 xenon lamp 등)를 포함할 수 있다. 전력 관리 모듈(295)은, 예를 들면, 전자 장치(201)의 전력을 관리할 수 있다. 한 실시예에 따르면, 전력 관리 모듈(295)은 PMIC(power management integrated circuit), 충전 IC, 또는 배터리 또는 연료 게이지를 포함할 수 있다. PMIC는, 유선 및/또는 무선 충전 방식을 가질 수 있다. 무선 충전 방식은, 예를 들면, 자기공명 방식, 자기유도 방식 또는 전자기파 방식 등을 포함하며, 무선 충전을 위한 부가적인 회로, 예를 들면, 코일 루프, 공진 회로, 또는 정류기 등을 더 포함할 수 있다. 배터리 게이지는, 예를 들면, 배터리(296)의 잔량, 충전 중 전압, 전류, 또는 온도를 측정할 수 있다. 배터리(296)는, 예를 들면, 충전식 전지 및/또는 태양 전지를 포함할 수 있다.
인디케이터(297)는 전자 장치(201) 또는 그 일부(예: 프로세서(210))의 특정 상태, 예를 들면, 부팅 상태, 메시지 상태 또는 충전 상태 등을 표시할 수 있다. 모터(298)는 전기적 신호를 기계적 진동으로 변환할 수 있고, 진동, 또는 햅틱 효과 등을 발생시킬 수 있다. 전자 장치(201)는, 예를 들면, DMB(digital multimedia broadcasting), DVB(digital video broadcasting), 또는 미디어플로(mediaFloTM) 등의 규격에 따른 미디어 데이터를 처리할 수 있는 모바일 TV 지원 장치(예: GPU)를 포함할 수 있다. 본 문서에서 기술된 구성요소들 각각은 하나 또는 그 이상의 부품(component)으로 구성될 수 있으며, 해당 구성요소의 명칭은 전자 장치의 종류에 따라서 달라질 수 있다. 다양한 실시예에서, 전자 장치(예: 전자 장치(201))는 일부 구성요소가 생략되거나, 추가적인 구성요소를 더 포함하거나, 또는, 구성요소들 중 일부가 결합되어 하나의 개체로 구성되되, 결합 이전의 해당 구성요소들의 기능을 동일하게 수행할 수 있다.
도 3은 다양한 실시예에 따른 프로그램 모듈의 블록도이다. 한 실시예에 따르면, 프로그램 모듈(310)(예: 프로그램(140))은 전자 장치(예: 전자 장치(101))에 관련된 자원을 제어하는 운영 체제 및/또는 운영 체제 상에서 구동되는 다양한 어플리케이션(예: 어플리케이션 프로그램(147))을 포함할 수 있다. 운영 체제는, 예를 들면, AndroidTM, iOSTM, WindowsTM, SymbianTM, TizenTM, 또는 BadaTM를 포함할 수 있다. 도 3을 참조하면, 프로그램 모듈(310)은 커널(320)(예: 커널(141)), 미들웨어(330)(예: 미들웨어(143)), (API(360)(예: API(145)), 및/또는 어플리케이션(370)(예: 어플리케이션 프로그램(147))을 포함할 수 있다. 프로그램 모듈(310)의 적어도 일부는 전자 장치 상에 프리로드 되거나, 외부 전자 장치(예: 전자 장치(102, 104), 서버(106) 등)로부터 다운로드 가능하다.
커널(320)은, 예를 들면, 시스템 리소스 매니저(321) 및/또는 디바이스 드라이버(323)를 포함할 수 있다. 시스템 리소스 매니저(321)는 시스템 리소스의 제어, 할당, 또는 회수를 수행할 수 있다. 한 실시예에 따르면, 시스템 리소스 매니저(321)는 프로세스 관리부, 메모리 관리부, 또는 파일 시스템 관리부를 포함할 수 있다. 디바이스 드라이버(323)는, 예를 들면, 디스플레이 드라이버, 카메라 드라이버, 블루투스 드라이버, 공유 메모리 드라이버, USB 드라이버, 키패드 드라이버, WiFi 드라이버, 오디오 드라이버, 또는 IPC(inter-process communication) 드라이버를 포함할 수 있다. 미들웨어(330)는, 예를 들면, 어플리케이션(370)이 공통적으로 필요로 하는 기능을 제공하거나, 어플리케이션(370)이 전자 장치 내부의 제한된 시스템 자원을 사용할 수 있도록 API(360)를 통해 다양한 기능들을 어플리케이션(370)으로 제공할 수 있다. 한 실시예에 따르면, 미들웨어(330) 는 런타임 라이브러리(335), 어플리케이션 매니저(341), 윈도우 매니저(342), 멀티미디어 매니저(343), 리소스 매니저(344), 파워 매니저(345), 데이터베이스 매니저(346), 패키지 매니저(347), 커넥티비티 매니저(348), 노티피케이션 매니저(349), 로케이션 매니저(350), 그래픽 매니저(351), 또는 시큐리티 매니저(352) 중 적어도 하나를 포함할 수 있다.
런타임 라이브러리(335)는, 예를 들면, 어플리케이션(370)이 실행되는 동안에 프로그래밍 언어를 통해 새로운 기능을 추가하기 위해 컴파일러가 사용하는 라이브러리 모듈을 포함할 수 있다. 런타임 라이브러리(335)는 입출력 관리, 메모리 관리, 또는 산술 함수 처리를 수행할 수 있다. 어플리케이션 매니저(341)는, 예를 들면, 어플리케이션(370)의 생명 주기를 관리할 수 있다. 윈도우 매니저(342)는 화면에서 사용되는 GUI 자원을 관리할 수 있다. 멀티미디어 매니저(343)는 미디어 파일들의 재생에 필요한 포맷을 파악하고, 해당 포맷에 맞는 코덱을 이용하여 미디어 파일의 인코딩 또는 디코딩을 수행할 수 있다. 리소스 매니저(344)는 어플리케이션(370)의 소스 코드 또는 메모리의 공간을 관리할 수 있다. 파워 매니저(345)는, 예를 들면, 배터리의 용량 또는 전원을 관리하고, 전자 장치의 동작에 필요한 전력 정보를 제공할 수 있다. 한 실시예에 따르면, 파워 매니저(345)는 바이오스(BIOS: basic input/output system)와 연동할 수 있다. 데이터베이스 매니저(346)는, 예를 들면, 어플리케이션(370)에서 사용될 데이터베이스를 생성, 검색, 또는 변경할 수 있다. 패키지 매니저(347)는 패키지 파일의 형태로 배포되는 어플리케이션의 설치 또는 갱신을 관리할 수 있다.
커넥티비티 매니저(348)는, 예를 들면, 무선 연결을 관리할 수 있다. 노티피케이션 매니저(349)는, 예를 들면, 도착 메시지, 약속, 근접성 알림 등의 이벤트를 사용자에게 제공할 수 있다. 로케이션 매니저(350)는, 예를 들면, 전자 장치의 위치 정보를 관리할 수 있다. 그래픽 매니저(351)는, 예를 들면, 사용자에게 제공될 그래픽 효과 또는 이와 관련된 사용자 인터페이스를 관리할 수 있다. 보안 매니저(352)는, 예를 들면, 시스템 보안 또는 사용자 인증을 제공할 수 있다. 한 실시예에 따르면, 미들웨어(330)는 전자 장치의 음성 또는 영상 통화 기능을 관리하기 위한 통화(telephony) 매니저 또는 전술된 구성요소들의 기능들의 조합을 형성할 수 있는 하는 미들웨어 모듈을 포함할 수 있다. 한 실시예에 따르면, 미들웨어(330)는 운영 체제의 종류 별로 특화된 모듈을 제공할 수 있다. 미들웨어(330)는 동적으로 기존의 구성요소를 일부 삭제하거나 새로운 구성요소들을 추가할 수 있다. API(360)는, 예를 들면, API 프로그래밍 함수들의 집합으로, 운영 체제에 따라 다른 구성으로 제공될 수 있다. 예를 들면, 안드로이드 또는 iOS의 경우, 플랫폼 별로 하나의 API 셋을 제공할 수 있으며, 타이젠의 경우, 플랫폼 별로 두 개 이상의 API 셋을 제공할 수 있다.
어플리케이션(370)은, 예를 들면, 홈(371), 다이얼러(372), SMS/MMS(373), IM(instant message)(374), 브라우저(375), 카메라(376), 알람(377), 컨택트(378), 음성 다이얼(379), 이메일(380), 달력(381), 미디어 플레이어(382), 앨범(383), 와치(384), 헬스 케어(예: 운동량 또는 혈당 등을 측정), 또는 환경 정보(예: 기압, 습도, 또는 온도 정보) 제공 어플리케이션을 포함할 수 있다. 한 실시예에 따르면, 어플리케이션(370)은 전자 장치와 외부 전자 장치 사이의 정보 교환을 지원할 수 있는 정보 교환 어플리케이션을 포함할 수 있다. 정보 교환 어플리케이션은, 예를 들면, 외부 전자 장치에 특정 정보를 전달하기 위한 노티피케이션 릴레이 어플리케이션, 또는 외부 전자 장치를 관리하기 위한 장치 관리 어플리케이션을 포함할 수 있다. 예를 들면, 알림 전달 어플리케이션은 전자 장치의 다른 어플리케이션에서 발생된 알림 정보를 외부 전자 장치로 전달하거나, 또는 외부 전자 장치로부터 알림 정보를 수신하여 사용자에게 제공할 수 있다. 장치 관리 어플리케이션은, 예를 들면, 전자 장치와 통신하는 외부 전자 장치의 기능(예: 외부 전자 장치 자체(또는, 일부 구성 부품)의 턴-온/턴-오프 또는 디스플레이의 밝기(또는, 해상도) 조절), 또는 외부 전자 장치에서 동작하는 어플리케이션을 설치, 삭제, 또는 갱신할 수 있다. 한 실시예에 따르면, 어플리케이션(370)은 외부 전자 장치의 속성에 따라 지정된 어플리케이션(예: 모바일 의료 기기의 건강 관리 어플리케이션)을 포함할 수 있다. 한 실시예에 따르면, 어플리케이션(370)은 외부 전자 장치로부터 수신된 어플리케이션을 포함할 수 있다. 프로그램 모듈(310)의 적어도 일부는 소프트웨어, 펌웨어, 하드웨어(예: 프로세서(210)), 또는 이들 중 적어도 둘 이상의 조합으로 구현(예: 실행)될 수 있으며, 하나 이상의 기능을 수행하기 위한 모듈, 프로그램, 루틴, 명령어 세트 또는 프로세스를 포함할 수 있다.
본 개시의 다양한 실시예들에 따르면, 이하에서 설명하는 전자 장치는 도 1 내지 도 3에 개시된 전자 장치의 구성요소들 전부 또는 일부를 포함할 수 있다.
도 4는 본 개시의 다양한 실시예에 따른 전자 장치(400)의 블록도를 도시한 도면이다.
본 개시의 다양한 실시예에 따르면, 전자 장치(400)는 도 1 내지 도 2에 도시된 전자 장치(101, 201)와 동일 또는 유사한 구성요소를 포함할 수 있다. 예를 들어, 전자 장치(400)은 도 1 내지 도 2에 도시된 전자 장치(101, 201)의 구성요소 중 전부 또는 일부를 포함할 수 있다.
본 개시의 다양한 실시예에 따르면, 전자 장치(400)는 통신부(410), 프로세서(420), 저장부(430)를 포함할 수 있다.
본 개시의 다양한 실시예에 따르면, 통신부(410)는 다른 네트워크 엔티티와 신호를 송수신할 수 있다. 예를 들어, 전자 장치의 통신부(410)는 기지국으로부터 전송 제어 프로토콜(transmission control protocol: TCP, 이하 TCP라 칭한다)을 수립하기 위한 메시지를 송수신할 수 있다. 또한, 통신부(410)는 기지국과 데이터를 송수신 할 수 있다.
본 개시의 다양한 실시예에 따르면, 프로세서(420)는 어플리케이션 프로세서(application processor: AP, 이하 AP라 칭한다)(421), 통신 프로세서(communication processor: CP, 이하 CP라 칭한다)(423), 센서(425) 및 센서 허브(427)를 포함할 수 있다.
본 개시의 다양한 실시예에 따르면, AP(421)는 물리 계층 파라미터 처리부와 동적 수신 윈도우 크기 제어부를 포함할 수 있다.
상기 물리 계층 파라미터 처리부는 미리 저장된 주기에 따라 CP(423)에 채널 상태 정보를 요청하여 채널 상태 정보를 수신할 수 있다.
채널 상태 정보는 예를 들어, 시간당 데이터 전송량(throughput: TP), 셀 부하 측정 값, 기준 신호 수신 전력(reference signal receive power: RSRP), 기준 신호 수신 품질(reference signal receive quality: RSRQ), 수신 신호 강도 표시(receive signal strength indicator: RSSI) 등을 포함할 수 있다.
상기 채널 상태 정보는 무선 링크 또는 무선 채널에서 측정된 정보로서 물리 계층에서 측정되는 파라미터(이하, 물리 계층 파라미터)를 포함할 수 있다.
동적 수신 윈도우 크기 제어부는 송신 장치로부터 수신되는 데이터의 패킷 왕복 시간(round trip time: RTT, 이하 RTT와 혼용하여 사용할 수 있다)을 이용하여 수신 윈도우 크기 기준 값을 설정할 수 있다.
또한, 동적 수신 윈도우 크기 제어부는 상기 CP(423)으로부터 수신된 물리 계층 파라미터 및 설정된 수신 윈도우 크기 기준 값을 이용하여 수신 윈도우의 크기를 조절할 수 있다.
물리 계층 파라미터는 순시적으로 측정될 수 있는 파라미터인 바, 채널 상황에 따라 급격하게 변경되거나 수시로 변경될 수 있다. 따라서, 물리 계층 파라미터만을 이용해 수신 윈도우의 크기를 조절하는 경우 수신 윈도우 크기가 급격하게 변경되거나 수시로 변경될 수 있다. 따라서, 본 개시의 다양한 실시예에 따르면, 전자 장치는 패킷 왕복 시간을 이용하여 수신 윈도우 크기 기준 값을 결정하고, 물리 계층 파라미터를 이용해 상기 기준 값을 변경시킴으로써 수신 윈도우 크기를 결정할 수 있다.
예를 들어, 전자 장치는 500, 1000, 1500과 같이 500 단위로 증감시켜 수신 윈도우 크기 기준 값을 설정할 수 있다. 여기서 수신 윈도우 크기는 수신 가능한 패킷의 갯수이며, 패킷 하나의 크기는 TCP 연결 수립 시 정해진 최대 세그먼트 크기 (Maximum Segment Size) 크기일 수 있다. 또한, 수신 윈도우 크기 기준 값이 1500으로 설정된 경우, 전자 장치는 물리 계층 파라미터를 이용하여 상기 수신 윈도우 크기 기준 값을 100단위로 증감시킴으로써 수신 윈도우 크기를 결정할 수 있다. 다만, 상기 예에서는 전자 장치가 500 단위로 윈도우 크기 기준 값을 설정하는 방법을 예시하였으나, 이에 한정되는 것은 아니다. 즉, 전자 장치는 여러 가지 다른 수치들을 단위로 하여 윈도우 기준 값을 설정할 수 있다. 수신 윈도우 크기 기준 값을 설정하는 방법 및 물리 계층 파라미터를 이용하여 수신 윈도우 크기를 결정하는 구체적인 방법은 후술한다.
또한, 동적 수신 윈도우 크기 제어부는 기준 채널 파라미터를 설정할 수 있다. 상기 기준 채널 파라미터는 물리 계층 파라미터와 비교하여 채널 상태의 변경 여부를 판단하고, 수신 윈도우 크기를 변경할 지 여부를 결정하는 데 사용되는 파라미터를 의미할 수 있다.
따라서, 동적 수신 윈도우 크기 제어부는 TCP 연결 이후 최초로 수신된 물리 계층 파라미터를 기준 채널 파라미터로 설정하고 AP의 채널 상태 정보 요청에 따라 획득된 물리 계층 파라미터와 비교하여 수신 윈도우 크기를 변경할지 여부를 결정할 수 있다.
또한, 동적 수신 윈도우 크기 제어부는 지속적으로 수신되는 물리 계층 파라미터의 평균 값을 기준 채널 파라미터로 설정하고 AP의 채널 상태 정보 요청에 따라 획득된 물리 계층 파라미터와 비교하여 수신 윈도우 크기를 변경할지 여부를 결정할 수 있다.
본 개시의 다양한 실시예에 따르면, CP(423)는 물리 계층 파라미터 처리부 및 통신 프로세서 상황 제공부를 포함할 수 있다.
본 개시의 다양한 실시예에 따르면, 상기 물리 계층 파라미터 처리부는 지속적으로 또는 미리 설정된 주기에 따라 또는 특정 이벤트 발생 시 비 주기적으로 채널 상태를 측정하여 채널 상태 정보를 획득할 수 있다. 또한, 물리 계층 파라미터 처리부는 AP로부터 채널 상태 정보 요청을 수신하는 경우, 획득한 채널 상태 정보를 AP에 전송할 수 있다.
본 개시의 다양한 실시예에 따르면, 통신 프로세서 상황 제공부는 센서(425) 및 센서 허브(427)를 이용해 판단된 전자 장치의 이동성에 관련된 정보를 수신할 수 있다. 또한, 통신 프로세서 상황 제공부는 AP의 채널 상태 정보 요청에 따라 수신된 전자 장치의 이동성에 관련된 정보를 AP에 전송할 수 있다. 또한, 통신 프로세서 상황 제공부는 전자 장치의 이동성에 관련된 정보에 셀 관련 정보(예를 들면, 핸드오버에 관련된 정보)를 추가한 정보를 AP에 전송할 수 있다.
본 개시의 다양한 실시예에 따르면, 센서(425) 및 센서 허브(427)는 전자 장치의 이동성을 판단하고, 상기 정보를 통신 프로세서 상황 제공부에 제공할 수 있다. 상기 센서(425) 및 센서 허브(427)는 가속 센서, 조도 센서, 지자기 센서, WiFi AP 신호, 셀룰러 네트워크의 셀 변경 등을 이용하여 전자 장치의 이동성을 확인할 수 있다.
예를 들어, 전자 장치가 이동 중인 경우에는 상기 전자 장치는 서빙 기지국으로부터 급격하게 멀어질 수 있으며, 핸드오버가 수 차례 발생할 수 있어, 채널 상태가 급격하게 변경되거나 수시로 변경될 가능성이 크다. 따라서, 전자 장치는 채널 상태가 변경되는 경우에도 센서(425) 및 센서 허브(427)를 통해 전자 장치의 이동성을 판단하여, 전자 장치가 이동 중이라고 판단되는 경우에는 수신 윈도우 크기를 조절하지 않을 수 있다. 그리고 전자 장치는 채널 상태가 안정화될 때까지 채널 상태를 지속적으로 모니터링 할 수 있으며, 채널 상태가 안정화 된 이후에 수신 윈도우 크기를 조절할 수 있다.
이와 같이, 전자 장치는 상기 전자 장치의 이동성을 기반으로 수신 윈도우 크기를 조절할 수 있으며, 구체적인 내용은 후술한다.
본 개시의 다양한 실시예에 따르면, 저장부(430)는 수신 윈도우 크기를 결정하기 위해 필요한 파라미터를 저장하고 있을 수 있다.
예를 들어, 저장부(430)는 AP(421)가 CP(423)에 채널 상태 정보를 요청하기 위해 필요한 주기 및 CP가 채널 상태를 측정하기 위한 주기를 저장할 수 있다. 또한, 저장부(430)는 TCP 연결 이후 AP가 최초로 수신한 물리 계층 파라미터를 기준 채널 파라미터로 설정하여 저장할 수 있다. 또한, 저장부(430)는 지속적으로 수신되는 물리 계층 파라미터의 평균 값을 기준 채널 파라미터로 설정하여 저장할 수 있다.
또한, 저장부(430)는 수신 윈도우 크기 기준 값을 설정하기 위해 필요한 임계 값 범위를 설정할 수 있다.
본 개시의 다양한 실시예들에 따른 저장부(430)는 실행 시에, 상기 프로세서가, 측정된 패킷 왕복 시간(round trip time: RTT)을 기반으로 수신 윈도우 크기 기준 값을 설정하고, 상기 전자 장치와 다른 전자 장치의 무선 채널과 관련된 물리 계층 파라미터를 확인하고, 상기 물리 계층 파라미터 및 상기 수신 윈도우 크기의 기준 값을 기반으로 수신 윈도우 크기를 결정하고, 데이터 수신에 따른 응답 메시지 전송 시 상기 결정된 수신 윈도우 크기를 상기 다른 전자 장치에 전송하도록 하는 인스트럭션들을 포함할 수 있다.
본 개시의 다양한 실시예들에 따른 저장부(430)는, 실행 시에 상기 프로세서가, 상기 물리 계층 파라미터에 따라 상기 설정된 수신 윈도우 크기 기준 값을 증가 또는 감소 시키도록 하는 인스트럭션들을 포함할 수 있다.
본 개시의 다양한 실시예들에 따른 저장부(430)는, 실행 시에 상기 프로세서가, 상기 물리 계층 파라미터가 미리 설정된 기준 채널 파라미터 범위의 최소 값 미만인 경우, 상기 설정된 수신 윈도우 크기 기준 값에서 상기 일정 값을 감소시키고, 상기 물리 계층 파라미터가 미리 설정된 기준 채널 파라미터 범위의 최대 값을 초과하는 경우, 상기 설정된 수신 윈도우 크기 기준 값에서 상기 일정 값을 증가시키도록 하는 인스트럭션들을 포함할 수 있다.
본 개시의 다양한 실시예들에 따른 저장부(430)는, 실행 시에 상기 프로세서가, 단말의 이동성에 관한 정보 및 핸드오버에 관한 정보 중 적어도 하나를 기초로 상기 수신 윈도우 크기를 결정하도록 하는 인스트럭션들을 포함할 수 있다.
본 개시의 다양한 실시예들에 따른 저장부(430)는, 실행 시에 상기 프로세서가, 단말과 기지국 사이의 데이터 전송률 및 기지국과 서버 사이의 데이터 전송률에 기반하여 상기 수신 윈도우 크기를 결정하도록 하는 인스트럭션들을 포함할 수 있다.
본 개시의 다양한 실시예들에 따른 저장부(430)는, 실행 시에 상기 프로세서가, 제 1 구간에서 측정된 RTT 최소 값과 제 2 구간에서 측정된 RTT의 최소 값의 차가 미리 설정된 범위의 최대 값을 초과하는 경우, 상기 수신 윈도우 크기 기준 값을 증가시키고, 상기 제 1 구간에서 측정된 RTT 최소 값과 상기 제 2 구간에서 측정된 RTT의 최소 값의 차가 미리 설정된 범위의 최소 값 미만인 경우, 상기 수신 윈도우 크기 기준 값을 감소시키도록 하는 인스트럭션들을 포함할 수 있다.
도 5는 본 개시의 다양한 실시예들에 따른 전자 장치의 TCP 통신 과정을 도시한 순서도이다.
본 개시의 다양한 실시예에 따르면, 수신 장치는 S510 단계에서 송신 장치에 TCP 연결을 요청하기 위해 SYN 메시지를 전송할 수 있다. 본 실시예에서는 설명의 편의를 위하여 데이터를 다운로드하는 주체를 수신 장치라 칭하지만, 본 개시의 범위가 이에 한정되는 것은 아니며, 상기 수신 장치가 데이터를 전송하는 경우에는 송신 장치가 될 수 있다.
송신 장치는 S511 단계에서 상기 연결 요청 메시지에 대한 응답 메시지를 전송할 수 있다. 송신 장치가 연결 요청 메시지를 성공적으로 수신한 경우, 송신 장치는 S511 단계에서 SYN 메시지에 포함된 정보와 ACK 이 포함된 응답 메시지를 수신 장치에 전송할 수 있다.
상기 응답 메시지를 성공적으로 수신한 경우, 수신 장치는 S512 단계에서 수신된 응답 메시지에 대한 응답 메시지에 ACK을 포함시켜 전송할 수 있다. 이 때, 수신 장치는 ACK을 송신하기 전에 한 번에 수신할 수 있는 데이터의 양을 의미하는 수신 윈도우 크기를 상기 ACK과 함께 응답 메시지에 포함시켜 전송할 수 있다. 이와 같은 과정을 통해 송신 장치와 수신 장치 사이에 TCP 연결이 수립될 수 있다.
TCP 연결이 수립된 이후, 수신 장치는 S520 단계에서 데이터의 전송을 요청하기 위한 메시지를 송신 장치에 전송할 수 있다. 예를 들어, 수신 장치가 웹 페이지 관련 데이터를 요청하는 경우, 상기 수신 장치는 http request를 전송할 수 있다.
상기 요청을 성공적으로 수신한 경우, 송신 장치는 S525 단계에서 ACK과 수신 윈도우 크기를 포함한 응답 메시지를 수신 장치에 전송할 수 있다.
또한, 상기 http request를 수신한 송신 장치는 S530 단계에서 상기 요청에 따라 데이터를 수신 장치에 전송할 수 있다.
수신 장치는 S535단계에서 데이터를 수신하고, 이에 대한 응답 메시지를 송신 장치에 전송한다. 수신 장치가 데이터를 수신하지 못한 경우에는 응답 메시지에 NACK을 포함시켜 전송하거나 혹은 바로 재전송을 하는 반면, 수신 장치가 데이터를 성공적으로 수신한 경우에는 응답 메시지에 ACK을 포함시켜 전송할 수 있다. 또한, 수신 장치는 데이터를 성공적으로 수신한 경우, 응답 메시지에 수신 윈도우 크기를 포함시켜 전송할 수 있다. 본 도면에서는 수신 장치가 데이터를 성공적으로 수신한 경우를 예를 들어 설명한다.
응답 메시지를 수신한 송신 장치는 응답 메시지에 포함된 수신 윈도우 크기와 송신 장치의 혼잡 윈도우 크기 및 버퍼에 쌓여있는 데이터 양을 고려하여 송신 윈도우 크기를 결정할 수 있다. 이 때, 수신 장치가 한 번에 수신할 수 있는 양보다 더 많은 데이터를 전송하는 경우, 데이터가 유실될 가능성이 높아지기 때문에 송신 장치는 상기 송신 윈도우 크기가 수신된 수신 윈도우 크기보다 작도록 설정할 수 있다.
송신 장치는 S540 단계에서 결정된 송신 윈도우 크기에 따라 데이터를 전송할 수 있으며, 수신 장치는 S545 단계에서 상기 데이터를 수신하고, 응답메시지에 ACK 및 수신 윈도우 크기를 포함시켜 송신 장치에 전송할 수 있다.
수신 장치와 송신 장치는 상기 과정을 반복 수행하여 통신 하며, 데이터의 전송이 완료된 경우, 수신 장치는 S550 단계에서 송신 장치와의 연결을 해제하기 위해 FIN 패킷을 송신 장치에 전송할 수 있다.
이를 수신한 송신 장치는 S551 단계에서 FIN 패킷과 ACK 정보가 포함된 연결 해제 수락 메시지를 수신 장치에 전송하여 상기 연결 해제 요구를 수락할 수 있다.
상기 연결 해제 수락 메시지를 수신한 수신 장치는 S552 단계에서 상기 연결 수락 메시지를 성공적으로 수신하였음을 나타내는 ACK 정보가 포함된 메시지를 송신 장치에 전송할 수 있다. 이와 같은 과정을 통해 수신 장치와 송신 장치 사이에 TCP 연결이 해제될 수 있다.
도 6은 본 개시의 다양한 실시예에 따라 전자 장치가 수신 윈도우 크기를 결정하는 과정을 도시한 도면이다.
본 개시의 일 실시예에 따르면, 수신 장치는 송신 장치와 TCP 연결을 수립(TCP connection establishment)한다. TCP 연결을 수립하는 과정은 도 5에서 설명한 S510 단계 내지 S512 단계와 유사하며, 구체적인 내용은 생략한다.
본 개시의 다양한 실시예에 따르면, 송신 장치는 TCP 연결을 수립한 후 S610 단계에서 수신 장치로 TCP 데이터를 전송할 수 있다. TCP 데이터를 수신한 수신 장치는 S611 단계에서 수신 윈도우 크기가 포함된 응답 메시지(이하, TCP ACK이라는 용어와 혼용하여 사용할 수 있다)를 송신 장치에 송신할 수 있다.
수신 윈도우 크기를 설정하기 전 수신된 TCP 데이터에 대한 응답 메시지를 송신하기 위해, 수신 윈도우 크기는 미리 정해진 값으로 수신 장치에 저장되어 있을 수 있다. 따라서, 수신 윈도우 크기가 설정되지 않은 경우 수신 장치는 저장된 수신 윈도우 크기를 응답 메시지에 포함시켜 송신할 수 있다. 또한, 수신 장치는 수신 윈도우 크기 기준 값이 설정되지 않는 경우, 상기 미리 저장된 수신 윈도우 크기를 수신 윈도우 크기 기준 값으로 설정할 수 있다.
본 개시의 다양한 실시예에 따르면 수신 장치가 수신 윈도우 크기 기준 값을 설정하기 전까지 수신 장치는 복수 회의 TCP 데이터를 수신할 수 있으며, 이에 대한 TCP ACK에 미리 설정된 수신 윈도우 크기를 포함시켜 전송할 수 있다.
본 개시의 다양한 실시예에 따르면, TCP ACK을 수신한 송신 장치는 상기 TCP ACK에 포함된 수신 윈도우 크기까지 송신 윈도우 크기를 증가시킬 수 있다. 다만, 송신 윈도우 크기는 수신 윈도우 크기를 초과할 수 없으며, 본 발명에서 송신 윈도우 크기가 수신 윈도우 크기보다 작은 구간을 제 1 구간, 송신 윈도우 크기가 수신 윈도우 크기에 도달한 이후 구간을 제 2 구간이라고 칭할 수 있다.
본 개시의 일 실시예에 따르면, 수신 장치는 S620 단계에서 제 1 구간 동안 수신된 적어도 하나의 패킷에 대한 패킷 왕복 시간을 계산하고, 상기 계산된 패킷 왕복 시간 중 최대 값과 최소 값을 결정할 수 있다. 상기 제 1구간 동안 결정된 패킷 왕복 시간의 최대 값을 RTT 최대 값, 패킷 왕복 시간의 최소 값을 제 1 RTT 최소 값이라 칭할 수 있다.
이 후, 수신 장치는 S630 단계에서 제 1구간이 종료되었는지 판단하고, 제 1 구간이 종료된 경우 S640 단계에서 제 1 구간에서 결정된 RTT 최대 값보다 긴 시간 동안 수신되는 적어도 하나 이상의 패킷에 대해 패킷 왕복 시간을 측정할 수 있다. 이 때, 제 2 구간에서 측정된 패킷 왕복 시간의 최소 값을 제 2 RTT 최소 값이라 칭할 수 있다.
또한, 수신 장치는 상기 RTT 최대 값 보다 긴 시간 동안 패킷 왕복 시간을 측정하여 제 2 RTT 최소 값보다 작은 값이 측정되는 경우, 상기 제 2 RTT 최소 값을 업데이트 할 수 있다.
상기와 같이 제 1 RTT 최소 값 및 제 2 RTT 최소 값을 결정한 수신 장치는 S650 단계에서 제 1 RTT 최소 값 및 제 2 RTT 최소 값을 이용하여 수신 윈도우 크기 기준 값을 결정할 수 있다.
예를 들면, 수신 장치는 미리 정해진 주기에 따라 또는 제 2 RTT 최소 값이 업데이트된 경우 수신 윈도우 크기 기준 값을 결정할 수 있으며, 수신 윈도우 크기 기준 값을 결정하는 구체적인 방법은 아래와 같다.
수신 장치는 제 2 RTT 최소 값이 결정된 경우, 상기 제 2 RTT 최소 값과 제 1 RTT 최소 값의 차가 미리 설정된 임계 값 범위 내에 있는 지 여부를 판단할 수 있다.
상기 제 2 RTT 최소 값과 제 1 RTT 최소 값의 차가 미리 설정된 임계 값 범위에 포함된다고 판단되는 경우, 수신 장치는 수신 윈도우 크기 기준 값을 변경하지 않을 수 있다.
반면, 제 2 RTT 최소 값과 제 1 RTT 최소 값의 차가 미리 설정된 임계 값 범위의 최대 값을 초과하는 경우, 수신 장치는 수신 윈도우 크기 기준 값이 높게 설정되어 있다고 판단하고, 수신 윈도우 크기의 기준 값을 미리 정해진 크기만큼 감소시킬 수 있다.
또한, 제 2 RTT 최소 값과 제 1 RTT 최소 값의 차가 미리 설정된 임계 값 범위의 최소 값 미만인 경우, 수신 장치는 수신 윈도우 크기 기준 값이 작게 설정되어 있다고 판단하여, 상기 수신 윈도우 크기 기준 값을 미리 정해진 크기만큼 증가 시킬 수 있다.
예를 들어, 수신 윈도우 크기 기준 값은 500 단위로 증감될 수 있다. 따라서, 수신 장치에 설정된 수신 윈도우 크기 기준 값이 1000이고 제 2 RTT 최소 값과 제 1 RTT 최소 값의 차가 미리 설정된 임계 값 범위의 최대 값을 초과하는 경우 수신 장치는 상기 수신 윈도우 크기 기준 값을 500으로 감소시킬 수 있다. 반면, 수신 장치에 설정된 수신 윈도우 크기 기준 값이 1000이고 제 2 RTT 최소 값과 제 1 RTT 최소 값의 차가 미리 설정된 임계 값 범위의 최소 값 미만인 경우, 수신 장치는 수신 윈도우 크기 기준 값을 1500으로 증가시킬 수 있다.
이 후, 수신 장치는 상기 변경된 수신 윈도우 크기 기준 값에 따라 제 1 구간 및 제 2 구간 동안의 RTT 최소 값을 결정하고, 제 1 RTT 최소 값과 제 2 RTT 최소 값의 차가 상기 미리 결정된 임계 값 범위에 포함될 때까지 상기 S620 ~ S640 의 일부 또는 전체 과정 을 반복할 수 있다.
이 후, 수신 장치는 증가된 수신 윈도우 크기 기준 값에 따라 새로운 RTT 최소 값을 측정하여 제 1 RTT 최소 값과 제 2 RTT 최소 값의 차가 미리 설정된 임계 값 범위에 포함될 때까지 상기 S620 ~ S640 의 일부 또는 전체 과정을 반복할 수 있다.
상기와 같은 과정을 통해 수신 장치는 수신 윈도우 크기 기준 값을 설정할 수 있다.
다만, 상기와 같이 패킷 왕복 시간을 이용하여 수신 윈도우의 크기를 결정하는 경우, 패킷 왕복 시간을 측정하기 위해 ACK을 전송하고 그에 따른 패킷이 수신되어야 한다. 하지만, 패킷 왕복 시간은 상대적으로 긴 시간 동안 측정되기 때문에, 상기 방법으로는 급변하는 네트워크 상황에 따라 수신 윈도우의 크기를 동적으로 변경시킬 수 없다는 문제점이 있다.
따라서, 본 개시의 다양한 실시예에 따르면, 상기 수신 장치는 물리 계층 파라미터를 이용하여 수신 윈도우 크기를 동적으로 결정한다. 다만, 물리 계층 파라미터는 네트워크 상황에 의해 급변하는 특성을 가지며, 물리 계층 파라미터만을 사용하는 경우, 수신 윈도우의 크기가 급변하는 문제점이 발생할 수 있다. 따라서, 본 개시의 다양한 실시예에서는 수신 윈도우 크기 기준 값을 설정하고 물리 계층 파라미터에 따라 상기 수신 윈도우 크기 기준 값에서 일정한 값을 증감시킴으로써 수신 윈도우 크기를 결정하는 것을 특징으로 한다.
본 개시의 일 실시예에 따르면, 수신 장치에 포함된 AP는 S650 단계에서 미리 정해진 주기에 따라 상기 수신 장치에 포함된 CP에 채널 상태 정보의 전송을 요청할 수 있다. 이 때, 채널 상태 정보는 무선 링크 또는 무선 채널에서 측정된 정보로서 물리 계층에서 측정되는 파라미터(이하, 물리 계층 파라미터)를 포함할 수 있다.
상기 요청에 따라, CP는 측정된 채널 상태 정보를 AP에 전송할 수 있다. 본 개시의 일 실시예에 따르면, 상기 채널 정보는 시간당 데이터 전송량(throughput: 이하 TP라는 용어와 혼용하여 사용 할 수 있다), 셀 부하 측정 값, 기준 신호 수신 전력(reference signal receive power: RSRP), 기준 신호 수신 품질(reference signal receive quality: RSRQ), 수신 신호 강도 표시(receive signal strength indicator: RSSI) 등을 포함할 수 있다.
상기 채널 정보를 수신한 AP는 S660 단계에서 상기 수신된 채널 정보가 최초의 채널 정보인 경우, 수신된 채널 정보를 기준 채널 파라미터로 저장할 수 있다. 또는, AP는 수신된 채널 정보의 평균 값을 기준 채널 파라미터로 저장할 수 있다. 수신 장치는 기준 채널 파라미터를 저장하고 측정된 물리 채널 파라미터와 비교하여 수신 윈도우 크기를 동적으로 변경시키는 데 사용할 수 있다.
이 후, 수신 장치는 S670 단계에서 송신 장치로부터 TCP 데이터를 수신하는 경우, S650 단계에서 수신 윈도우 크기 기준 값이 설정되었는 바, S671 단계에서 TCP ACK과 설정된 수신 윈도우 크기 기준 값을 수신 윈도우 크기로 포함시켜 송신 장치에 전송할 수 있다.
또한, 수신 장치는 S680 단계에서 적어도 하나 이상의 TCP 데이터를 수신하고 상기 수신 윈도우 크기 기준 값 결정 단계를 반복 수행할 수 있다. 예를 들어, 수신 장치는 수신된 TCP 데이터로부터 패킷 왕복 시간을 측정하여 최소 RTT 값이 업데이트되는 경우, 수신 윈도우 크기 기준 값을 결정하는 과정을 반복적으로 수행할 수 있다.
본 개시의 다양한 실시예에 따르면, 채널 상태 정보를 요청하기 위해 미리 정해진 주기가 다시 도래하는 경우, 수신 장치의 AP는 S690 단계에서 CP에 채널 상태 정보를 요청하여, 채널 상태 정보를 수신할 수 있다.
상기 채널 상태 정보는 무선 링크 또는 무선 채널에 관련된 파라미터로서 물리 계층 파라미터라는 용어와 혼용하여 사용할 수 있다.
물리 계층 파라미터를 획득한 수신 장치는 S695 단계에서 설정된 수신 윈도우 크기 기준 값 및 상기 물리 계층 파라미터를 수신 윈도우 크기를 동적으로 결정할 수 있다.
예를 들어, 수신 윈도우 크기 기준 값이 1500으로 설정된 경우, 수신 장치는 상기 물리 게층 파라미터에 따라 100 단위로 상기 수신 윈도우 크기 기준 값을 증감 시킴으로써 수신 윈도우 크기를 결정할 수 있다.
물리 계층 파라미터를 이용하여 수신 윈도우 크기를 결정하는 구체적인 내용은 후술한다.
이 후, 수신 장치는 상기 과정을 반복하여 수신 윈도우 크기를 동적으로 결정할 수 있으며, 상기 과정을 통해 TCP 전송의 시간당 데이터 전송량을 효과적으로 증가시킬 수 있다.
또한, 핸드 오버나 경로 변경과 같은 이벤트가 발생하는 경우, 수신 장치는 수신 윈도우 크기를 결정하기 위한 상기 과정을 반복하여 수행할 수 있다.
도 7은 본 개시의 다양한 실시예에 따른 전자 장치의 수신 윈도우 크기 기준 값을 결정하는 과정을 도시한 도면이다.
도 7a는 본 개시의 다양한 실시예에 따른 전자 장치의 제 1 구간에서 RTT 최대 값과 제 1 RTT 최소 값을 결정하는 과정을 도시한 도면이다.
도 7a를 참고하면, 본 개시의 다양한 실시예에 따른 전자 장치는 S711 단계에서 데이터를 수신하고, S712 단계에서 상기 수신된 데이터를 이용하여 패킷 왕복 시간을 측정할 수 있다.
그리고 전자 장치는 S713 단계에서 상기 측정된 패킷 왕복 시간이 제 1 RTT 최소 값보다 작은 값인지 여부를 판단할 수 있다. 상기 측정된 패킷 왕복 시간이 제 1 RTT 최소 값보다 작다고 판단된 경우, 상기 전자 장치는 S714 단계에서 제 1 RTT 최소 값을 상기 측정된 패킷 왕복 시간으로 업데이트 할 수 있다. 그리고 전자 장치는 S717 단계에서 송신 윈도우 크기와 수신 윈도우 크기가 동일한지 여부를 판단할 수 있다.
반면, 상기 측정된 패킷 왕복 시간이 제 1 RTT 최소 값보다 크다고 판단된 경우, 전자 장치는 S715 단계에서 측정된 패킷 왕복 시간이 RTT 최대 값보다 큰지 여부를 판단할 수 있다. 측정된 패킷 왕복 시간이 RTT 최대 값보다 크다고 판단된 경우, 상기 전자 장치는 S716 단계에서 RTT 최대 값을 측정된 패킷 왕복 시간으로 업데이트할 수 있다.
이 후, 전자 장치는 S717 단계에서 송신 윈도우 크기가 수신 윈도우 크기의 최대 값과 동일한지 여부를 판단할 수 있다. 송신 윈도우 크기가 수신 윈도우 크기의 값에 도달하지 못한 경우, 상기 전자 장치는 S718 단계에서 또 다른 데이터의 수신을 대기할 수 있다.
반면, 송신 윈도우 크기가 수신 윈도우 크기와 동일한 경우, 전자 장치는 제 1 구간에서의 패킷 왕복 시간 측정을 중단하고 제 2 구간으로 진입할 수 있다.
도 7b는 본 개시의 다양한 실시예에 따른 제 2 구간에서 제 2 RTT 최소 값을 결정하는 과정을 도시한 도면이다.
도 7b를 참고하면, 제 2 구간으로 진입한 전자 장치는 S731 단계에서 제 2 RTT 최소 값을 리셋할 수 있다.
본 개시의 다양한 실시예에 따른 전자 장치는 S732 단계에서 데이터를 수신하고, S733 단계에서 상기 수신된 데이터를 이용하여 패킷 왕복 시간을 측정할 수 있다.
그리고, 전자 장치는 S734 단계에서 상기 측정된 패킷 왕복 시간이 제 2 RTT 최소 값보다 작은 값인지 여부를 판단할 수 있다. 상기 측정된 패킷 왕복 시간이 제 2 RTT 최소 값보다 작다고 판단된 경우, 상기 전자 장치는 S735 단계에서 제 2 RTT 최소 값을 상기 측정된 패킷 왕복 시간으로 업데이트할 수 있다. 다만, 제 2 RTT 최소 값을 리셋 한 후, 최초의 데이터 수신 시에는 전자 장치는 S734 단계를 생략하고 측정된 패킷 왕복 시간을 제 2 RTT 최소 값으로 설정할 수 있다.
이 후, 전자 장치는 S736 단계에서 미리 설정된 시간이 경과했는지 여부를 판단할 수 있다. 상기 미리 설정된 시간은 도 7a에서 결정된 RTT 최대 값보다 긴 시간으로 설정될 수 있다.
미리 설정된 시간이 경과하지 않았다고 판단되는 경우, 전자 장치는 S737 단계에서 다음 데이터의 수신을 대기할 수 있다.
반면, 미리 설정된 시간이 경과했다고 판단되는 경우, 전자 장치는 제 2 구간에서의 패킷 왕복 시간 측정을 종료하고, 수신 윈도우 크기 기준 값을 결정하는 과정을 수행할 수 있다.
도 7c는 본 개시의 다양한 실시예에 따라 전자 장치가 수신 윈도우 크기 기준 값을 결정하는 과정을 도시한 도면이다.
도 7c를 참고하면, 전자 장치는 S751 단계 및 S752 단계에서 제 1 구간 및 제 2 구간을 통해 제 1 RTT 최소 값 및 제 2 RTT 최소 값을 결정할 수 있다. 상기 과정은 도 7a 및 도 7b에서 설명한 바와 동일하며, 구체적인 설명은 생략한다.
본 개시의 일 실시예에 따르면, 전자 장치는 S753 단계에서 상기 결정된 제 2 RTT 최소 값과 제 1 RTT 최소 값의 차가 미리 정해진 임계 값 범위에 포함되는 지 여부를 판단할 수 있다.
예를 들어, 상기 미리 정해진 임계 값 범위의 최소 값과 최대 값을 각각 제 1 임계 값, 제 2 임계 값이라 하면, 전자 장치는 S753 단계에서 제 2 RTT 최소 값과 제 1 RTT 최소 값의 차가 제 1 임계 값보다 작은지 여부를 판단할 수 있다. 제 2 RTT 최소 값과 제 1 RTT 최소 값의 차가 제 1 임계 값보다 작다고 판단된 경우, 전자 장치는 채널을 충분히 사용하지 못하는 상태(이하, under-utilization 상태라 칭한다)라고 판단할 수 있다. under-utilization 상태란 채널 상황에 비해 데이터의 송수신량이 적은 경우를 의미할 수 있다.
따라서, 제 2 RTT 최소 값과 제 1 RTT 최소 값의 차가 제 1 임계 값보다 작다고 판단된 경우, 전자 장치는 S754 단계에서 수신 윈도우 크기 기준 값을 증가시킬 수 있다. 이와 같이 수신 윈도우 크기 기준 값을 증가시키는 경우, 송신 장치는 송신 윈도우 크기를 증가시켜 한 번에 전송하는 데이터 패킷의 양을 증가시킬 수 있으며, 시간당 데이터 전송량을 증가시킬 수 있다.
반면, 제 2 RTT 최소 값과 제 1 RTT 최소 값의 차가 제 1 임계 값보다 작지 않다고 판단된 경우, 상기 전자 장치는 S755 단계에서 제 2 RTT 최소 값과 제 1 RTT 최소 값의 차가 제 2 임계 값보다 큰지 여부를 판단할 수 있다.
제 2 RTT 최소 값과 제 1 RTT 최소 값의 차가 제 2 임계 값보다 크다고 판단된 경우, 전자 장치는 채널을 과도하게 사용하는 상태(이하, over-utilization 상태라 칭한다)라고 판단할 수 있다. over-utilization 상태란 채널 상황에 비해 데이터의 송수신량이 많은 경우를 의미할수 있다.
따라서, 제 2 RTT 최소 값과 제 1 RTT 최소 값의 차가 제 2 임계 값보다 크다고 판단된 경우, 전자 장치는 S756 단계에서 상기 수신 윈도우 크기 기준 값을 감소시킬 수 있다. 이와 같이 수신 윈도우 크기 기준 값을 감소시키는 경우, 송신 장치는 송신 윈도우 크기를 감소시켜 한 번에 전송하는 데이터 패킷의 양을 감소시킬 수 있으며, 패킷 왕복 시간을 감소시킬 수 있다.
이 후, 전자 장치는 S751 단계로 돌아가 제 1 구간 및 제 2 구간에서의 패킷 왕복 시간 최소 값을 결정하고, 제 2 RTT 최소 값과 제 1 RTT 최소 값의 차가 임계 값 범위에 포함될 때까지 상기 과정을 반복 수행할 수 있다.
상기 과정에 의해 제 2 RTT 최소 값과 제 1 RTT 최소 값의 차가 임계 값 범위에 포함되는 경우, 전자 장치는 제 2 RTT 최소 값과 제 1 RTT 최소 값의 차가 임계 값 범위에 포함되도록 하는 수신 윈도우 크기를 수신 윈도우 크기 기준 값으로 설정할 수 있다.
도 8a은 본 개시의 다양한 실시예에 따라, 전자 장치가 물리 계층 측정 성능을 이용하여 수신 윈도우 크기를 결정하는 과정을 도시한 순서도이다.
본 개시의 일 실시예에 따르면, 전자 장치는 수신하는 데이터에 대한 패킷 왕복 시간을 계산할 수 있다. 또한, 전자 장치는 상기 계산된 패킷 왕복 시간을 이용하여 수신 윈도우 크기 기준 값을 설정할 수 있다.
전자 장치는 패킷 왕복 시간의 최소 값이 업데이트 되는 경우, 미리 설정된 주기, 또는 채널 상태가 급격하게 변경되는 경우 상기 수신 윈도우 크기 기준 값을 재설정할 수 있다.
또한, 전자 장치는 S810 단계에서 채널 상태를 모니터링 할 수 있다. 구체적으로, 전자 장치에 포함된 CP가 지속적으로 채널 상태를 모니터링 하여 채널 상태 정보를 측정하며, 전자 장치에 포함된 AP는 미리 정해진 주기에 따라 상기 채널 상태 정보를 요청하여 수신할 수 있다.
상기 채널 상태 정보는 예를 들어, 시간당 데이터 전송량(throughput: TP), 셀 부하 측정 값, 기준 신호 수신 전력(reference signal receive power: RSRP), 기준 신호 수신 품질(reference signal receive quality: RSRQ), 수신 신호 강도 표시(receive signal strength indicator: RSSI) 등을 포함할 수 있다.
상기 채널 상태 정보는 무선 링크 또는 무선 채널에서 측정된 정보로서 물리 계층 파라미터를 포함할 수 있다.
채널 상태 정보를 획득한 전자 장치는 S820 단계에서 획득된 채널 상태 정보를 이용해 채널 상태가 변경되었는지 여부를 판단할 수 있다.
본 개시의 일 실시예에 따르면, 전자 장치는 수신 윈도우 기준 값 설정 시의 채널 상태 정보를 기준 채널 파라미터로 설정할 수 있다. 또는, 전자 장치는 수신된 채널 상태 정보의 일정 시간 동안의 평균 값을 기준 채널 파라미터로 저장할 수 있다.
따라서, 전자 장치는 획득된 물리 계층 파라미터와 상기 기준 채널 파라미터를 비교하여 채널 상태의 변경 여부를 판단할 수 있다. 예를 들어, 상기 채널 상태의 변경 여부는 획득된 물리 계층 파라미터와 기준 채널 파라미터의 차가 미리 설정된 임계 값을 초과하는 지 여부를 통해 판단할 수 있다.
판단 결과 채널 상태가 변경되지 않았다고 판단되는 경우, 전자 장치는 S810 단계로 돌아가 채널 상태를 모니터링 할 수 있다.
판단 결과 채널 상태가 변경되었다고 판단된 경우에도 서버로부터 수신하는 데이터가 없는 경우에도 채널에서 측정한 데이터 전송률이 감소할 수 있기 때문에, 전자 장치는 TCP 플로우 내에서 TCP 데이터가 지속적으로 전송되고 있는 지 여부를 수신 판단할 수 있다.
상기 판단 결과 TCP 데이터가 지속적으로 전송되지 않는 경우, 수신 윈도우 크기를 변경할 필요가 없으며, 전자 장치는 S810 단계로 돌아가 채널 상태를 모니터링 할 수 있다.
반면, 채널 상태가 변경되었으며, TCP 데이터가 지속적으로 전송되는 경우, 전자 장치는 S830 단계에서 상기 채널 상태의 변경이 일시적인지 여부를 확인할 수 있다. 상기 채널 상태의 변경이 일시적이라고 판단되는 경우 전자 장치는 수신 윈도우 크기를 변화시키지 않고 S810 단계로 돌아가 채널 상태가 안정화될 때까지 채널 상태를 지속적으로 모니터링할 수 있다.
반면, 채널 상태의 변경이 일시적이지 않다고 판단된 경우, 전자 장치는 수신 윈도우 크기를 변화시키기 위한 과정을 수행할 수 있다.
예를 들어, 상기 채널 상태의 변경이 셀 로딩의 변경에 의한 것이라고 판단된 경우, 전자 장치는 상기 채널 상태의 변경이 일시적이지 않은 것으로 판단하여, 수신 윈도우 크기를 변화시키기 위한 과정을 수행할 수 있다.
예를 들어, 채널 상태의 변경이 셀 로딩의 변경에 의한 것인지 여부를 판단하기 위해 전자 장치는 할당된 MCS(modulation and coding scheme) 레벨 및 자원 블록(resource block: RB)의 크기 및 일정 시간 동안 할당된 양을 관찰 하는 것을 통해 시간당 데이터 전송량을 계산할 수 있다. 구체적으로, 전자 장치는 MCS 레벨 및 자원 블록 정보와 함께 전송 블록 사이즈 테이블을 이용하여 1ms 서브프레임 동안 전송되는 데이터의 양을 계산하고 일정시간, 예를 들어 100ms 동안 실제로 할당된 양을 관찰함으로써, 시간당 데이터 전송량을 계산할 수 있다.
또한, 전자 장치는 획득된 RSRP와 RSSI를 이용하여 수신 신호 간 상관 관계를 나타내는 파라미터 r을 하기의 수학식 1을 이용하여 계산할 수 있다.
[수학식 1]
Figure pat00001
이 때, 상기 x는 RSRP, y는 RSSI, n은 샘플의 수를 의미할 수 있다. 상기 파라미터 r이 높은 값을 갖는 경우, RSRP와 RSSI는 높은 상관 관계를 가지며, RSRP와 RSSI는 유사한 형태로 변할 수 있다. 반면, 상기 파라미터 r이 낮은 값을 갖는 경우, RSRP와 RSSI는 낮은 상관 관계를 가지며, RSRP와 RSSI는 독립적으로 변할 수 있다.
전자 장치는 상기 시간당 데이터 전송량이 감소하는 경우, 상기 파라미터 r이 미리 정해진 임계 값보다 큰 지 여부를 판단할 수 있다.
파라미터 r이 임계 값보다 크다고 판단된 경우, RSRP와 RSSI는 높은 상관 관계를 가지며, 이는 셀 간 간섭(inter-cell interference)이 크지 않다는 것을 의미하므로, 전자 장치는 상기 시간당 데이터 전송량의 감소는 셀 로딩에 의한 것이라고 판단할 수 있다. 따라서, 전자 장치는 상기 채널 상태의 변경이 일시적이 아니라고 판단하여 이후 과정을 진행할 수 있다.
반면, 파라미터 r이 임계 값보다 작다고 판단된 경우, RSRP와 RSSI의 상관 관계가 작으며, 이는 셀 간 간섭이 크다는 것을 의미하므로, 전자 장치는 상기 시간당 데이터 전송량이 셀 간 간섭에 의한 것이라고 판단할 수 있다. 따라서, 전자 장치는 상기 채널 상태의 변경이 일시적이라고 판단하고, S810 단계로 돌아가 데이터를 수신할 수 있다.
상술한 내용은 채널 상태의 변경이 일시적인지 여부를 판단하기 위한 일 예시일 뿐, 전자 장치는 다양한 방법으로 채널 상태의 변경이 일시적인지 여부를 판단할 수 있다.
채널 상태의 변경이 일시적이지 않은 것으로 판단된 경우, 전자 장치는 기준 측정 성능과 물리 계층 측정 성능를 비교하여 수신 윈도우 크기를 감소시킬 것인지 여부를 판단할 수 있다.
구체적으로, 전자 장치는 기준 채널 파라미터를 이용하여 기준 측정 성능을 결정하고, 물리 계층 파라미터를 이용하여 물리 계층 측정 성능을 결정할 수 있다. 예를 들어, 전자 장치는 기준 채널 파라미터로 저장되어 있는 시간당 데이터 전송량을 이용하여 기준 측정 성능을 결정하고, CP에 의해 측정된 시간당 데이터 전송량을 이용하여 물리 계층 측정 성능을 결정할 수 있다. 또는, 전자 장치는 기준 채널 파라미터로 저장되어 있는 RSSI, RSRP 를 이용하여 기준 측정 성능을 결정하고, 물리 계층 파라미터로 획득된 RSSI, RSRP를 이용하여 물리 계층 측정 성능을 결정할 수 있다.
따라서, 전자 장치는 S840 단계에서 상기 결정된 기준 측정 성능에 미리 설정된 값을 감산한 값이 획득된 물리 계층 측정 성능을 초과하는지 여부를 판단할 수 있다.
판단 결과 획득된 물리 계층 측정 성능이 작은 경우, 전자 장치는 S850 단계에서 설정된 수신 윈도우 크기 기준 값에서 미리 정해진 크기만큼 감소시킨 값을 수신 윈도우 크기로 설정할 수 있다.
반면, 판단 결과 물리 계층 측정 성능이 크다고 판단된 경우, 전자 장치는 S860 단계에서 기준 측정 성능에 미리 설정된 값을 더한 값이 획득된 물리 계층 측정 성능 보다 작은 지 여부를 판단할 수 있다.
판단 결과 획득된 물리 계층 측정 성능이 큰 경우, 전자 장치는 S870 단계에서 설정된 수신 윈도우 크기 기준 값에서 미리 정해진 크기만큼 증가시킨 값을 수신 윈도우 크기로 설정할 수 있다.
수신 윈도우 크기를 동적으로 제어하거나 또는, S860 단계의 판단 결과 물리 계층 측정 성능이 작은 경우, 전자 장치는 S880 단계에서 무선 링크 기반 제어를 중단할 것인지 여부를 판단할 수 있다.
중단하지 않는 것으로 판단된 경우, 전자 장치는 S810 단계에서 채널 상태를 모니터링 하는 반면, 중단하는 것으로 판단된 경우, 전자 장치는 상기 TCP 제어 과정을 종료한다.
도 8b은 본 개시의 다양한 실시예에 따라, 전자 장치가 시간당 데이터 전송량을 이용하여 수신 윈도우 크기를 결정하는 과정을 도시한 순서도이다.
본 개시의 다양한 실시예에 따르면, 전자 장치는 S891 단계에서 채널 상태를 모니터링할 수 있다. 전자 장치에 포함된 AP는 미리 정해진 주기에 따라 채널 상태 정보를 요청하여 수신할 수 있으며, 전자 장치는 S892 단계에서 획득된 채널 상태 정보를 이용하여 채널 상태가 변경되었는 지 여부를 판단할 수 있다.
채널 상태가 변경되었다고 판단된 경우, 전자 장치는 S893 단계에서 채널 상태 변경이 일시적인지 여부를 판단할 수 있다.
상기 S891 단계 내지 S893 단계는 도 8a의 S810 단계 내지 S830 단계와 동일하여 구체적인 내용은 생략한다.
채널 상태가 일시적이 아니라고 판단된 경우, 전자 장치는 물리 계층 측정 성능과 기준 측정 성능을 비교해 수신 윈도우 크기를 증가 시킬 지 여부를 판단할 수 있다. 구체적으로, 전자 장치는 획득된 물리 계층 파라미터와 저장되어 있는 기준 채널 파라미터를 이용하여 수신 윈도우 크기를 동적으로 제어할 수 있다.
기준 채널 파라미터에는 및 물리 계층 파라미터에는 시간당 데이터 전송량, 셀 부하 측정 값, 기준 신호 수신 전력(reference signal receive power: RSRP), 기준 신호 수신 품질(reference signal receive quality: RSRQ), 수신 신호 강도 표시(receive signal strength indicator: RSSI)가 포함될 수 있으며, 전자 장치는 상기 파라미터 중 적어도 하나를 이용하여 수신 윈도우 크기를 증가시킬 지 여부를 판단할 수 있다.
본 실시예에서는 시간당 데이터 전송량을 이용하여 수신 윈도우 크기를 증가시킬 지 여부를 판단하는 것을 예로 설명하지만 본 개시의 범위가 이에 한정되는 것은 아니다.
전자 장치는 S894 단계에서 획득된 물리 계층 파라미터에 포함된 시간당 데이터 전송량(이하, 획득된 시간당 데이터 전송량이라 칭할 수 있다)이 기준 채널 파라미터에 포함된 시간당 데이터 전송량(이하, 기준 시간당 데이터 전송량이라 칭할 수 있다)에서 미리 설정된 값을 감산한 값보다 작은지 여부를 판단할 수 있다.
판단 결과 획득된 시간당 데이터 전송량이 기준 시간당 데이터 전송량에서 미리 설정된 값을 감산한 값보다 작은 경우, 전자 장치는 S895 단계에서 수신 윈도우 크기 기준 값을 감소시키고 상기 감소된 값을 수신 윈도우 크기로 설정할 수 있다.
반면, 판단 결과 획득된 시간당 데이터 전송량이 기준 시간당 데이터 전송량에서 미리 설정된 값을 감산한 값보다 큰 경우, 전자 장치는 S896 단계에서 획득된 시간당 데이터 전송량이 기준 시간당 데이터 전송량에서 미리 설정된 값을 더한 값보다 큰지 여부를 판단할 수 있다.
판단 결과 획득된 시간당 데이터 전송량이 기준 시간당 데이터 전송량에서 미리 설정된 값을 더한 값보다 큰 경우, 전자 장치는 S897 단계에서 수신 윈도우 크기 기준 값을 증가 시키고, 상기 증가된 값을 수신 윈도우 크기로 설정할 수 있다.
수신 윈도우 크기를 동적으로 제어한 이후, 또는 S896 단계의 판단 결과 획득된 시간당 데이터 전송량이 기준 시간당 데이터 전송량에서 미리 설정된 값을 더한 값보다 작은 경우, 전자 장치는 S898 단계에서 무선 링크 기반 제어를 중단할 지 여부를 판단할 수 있다.
중단하지 않는 것으로 판단된 경우, 전자 장치는 S891 단계에서 채널 상태를 모니터링 하는 반면, 중단하는 것으로 판단된 경우, 전자 장치는 상기 TCP 제어 과정을 종료한다.
도 9는 본 개시의 다양한 실시예에 따라 전자 장치가 물리 계층 파라미터를 이용하여 수신 윈도우 크기를 결정하는 다른 과정을 도시한 순서도이다.
본 개시의 일 실시예에 따르면, 전자 장치는 S910 단계에서 채널 상태를 모니터링 할 수 있다. 채널 상태 정보를 획득한 전자 장치는 S920 단계에서 획득된 채널 상태 정보를 이용해 채널 상태가 변경되었는지 여부를 판단할 수 있다. 상기 과정은 도 8의 S810 내지 S820 단계에서 서술한 내용과 유사하며, 구체적인 내용은 생략한다.
판단 결과 채널 상태가 변경되지 않았다고 판단되는 경우, 전자 장치는 S910 단계로 돌아가 채널 상태를 모니터링 할 수 있다.
반면, 채널 상태가 변경되었다고 판단된 경우, 전자 장치는 S930 단계에서 상기 채널 상태의 변경이 일시적인지 여부를 확인할 수 있다. 본 실시예에서는 채널 상태의 변경이 일시적인지 여부를 확인하기 위해 상기 전자 장치의 이동성을 판단한다.
예를 들어, 전자 장치에 포함된 센서 또는 CP는 가속 센서 등을 이용해 전자 장치의 이동성을 판단할 수 있다.
판단 결과 상기 전자 장치가 이동 중이라고 판단된 경우, 전자 장치가 이동 중인 경우에는 채널 상태가 급격하게 변경되거나 수시로 변경될 가능성이 크며, 이에 따른 수신 윈도우 크기 역시 급격하게 변경될 가능성이 크다. 따라서, 전자 장치는 수신 윈도우 크기를 변화시키지 않고 S910 단계로 돌아가 채널 상태가 안정화될 때까지 채널 상태를 지속적으로 모니터링 할 수 있다. 또한, 전자 장치는 물리 계층 파라미터만을 이용하여 수신 윈도우 크기를 동적으로 제어할 수 있다.
반면, 전자 장치가 이동 중이 아니라고 판단된 경우, 전자 장치는 S940 단계에서 네트워크 상황을 확인할 수 있다. 본 개시의 일 실시예에 따르면, 전자 장치는 S940 단계에서 기지국과의 시그널링을 이용하여 이종망 또는 동종망간 핸드오버가 발생하는지 여부를 판단할 수 있다.
기지국과의 특정 시그널링 관찰을 통해, 전자 장치는 S950 단계에서 이종 망간 핸드오버가 수행되었는 지 판단할 수 있다. 예를 들어, 전자 장치는 기지국으로부터 수신되는 핸드오버 명령을 포함하는 메시지를 이용하여 이종 망간 핸드오버가 수행되었는지 여부를 판단할 수 있다. 이종 망간 핸드오버가 수행된 경우, 대역폭 등 네트워크의 특성이 변경되기 때문에 전자 장치는 수신 윈도우 크기 기준 값을 재설정할 필요가 있다. 따라서, 전자 장치는 S960 단계에서 수신 윈도우 크기 기준 값을 업데이트할 수 있다.
이 때 전자 장치는 망의 특성에 따라 수신 윈도우 크기 기준 값을 미리 정해진 값으로 설정할 수 있다. 또는, 전자 장치는 수신 윈도우 크기 기준 값을 미리 정해진 값으로 설정한 다음 상술한 바와 같이 패킷 왕복 시간을 이용하여 수신 윈도우 크기 기준 값을 설정할 수 있다.
그리고 전자 장치는 수신 윈도우 크기 기준 값을 업데이트 한 이후에도 S980 단계에서 무선 링크를 기반(물리 계층 파라미터를 기반)으로 수신 윈도우 크기를 제어할 수 있다.
예를 들어, 3g 망에서 LTE 망으로 핸드오버 한 경우, 전자 장치는 수신 윈도우 크기 기준 값을 미리 정해진 값인 1500으로 설정할 수 있다. 또는, 전자 장치는 수신 윈도우 크기 기준 값을 미리 정해진 값인 1500으로 설정한 다음, 제 1구간 및 제 2 구간에서의 RTT 최소 값을 이용하여 수신 윈도우 크기 기준 값을 설정할 수 있다. 수신 윈도우 크기 기준 값을 설정한, 전자 장치는 물리 계층 파라미터를 참고하여 결정된 수신 윈도우 기준 값에서 100단위로 증감하여 수신 윈도우 크기를 결정할 수 있다.
반면, S950 단계에서 이종 망간 핸드오버가 수행되지 않았다고 판단되는 경우 전자 장치는 S970 단계에서 동종 망간 핸드오버가 수행되었는지 여부를 판단한다. 동종 망간 핸드오버가 수행되지 않은 경우, 전자 장치는 이동성이 없고, 셀 [위치]의 변경도 없기 때문에 수신 윈도우 크기를 변경하지 않고 S910 단계로 돌아가 채널 상태를 모니터링할 수 있다.
반면, 동종 망간 핸드오버가 수행된 경우, 전자 장치는 S980 단계에서 무선 링크를 기반으로 수신 윈도우 크기를 제어할 수 있다. 즉, 전자 장치는 무선 링크(또는 무선 채널)과 관련된 물리 계층 파라미터를 이용하여 수신 윈도우 크기를 동적으로 제어할 수 있다.
동종 망간 핸드오버가 수행되는 경우에는 네트워크 특성이 크게 변하지 않기 때문에 수신 윈도우 크기 기준 값을 유지한 채 물리 계층 파라미터를 통해 판단된 채널 상태를 통해 수신 윈도우 크기를 동적으로 제어할 수 있다. 다만, 동종 망간 핸드오버가 수행되는 경우에도 셀이 변경되는 경우 네트워크 특성이 변경될 수 있으며, 이와 같은 경우 전자 장치는 수신 윈도우 크기 기준 값을 재설정할 수 있다.
이 후, 전자 장치는 S990 단계에서 무선 링크 기반 제어를 중단할 것인지 여부를 판단할 수 있다. 구체적으로, 전자 장치는 동종 망간 핸드오버 및 이종 망간 핸드오버가 모두 수행되지 않은 것으로 판단된 경우 또는 동종 망간 핸드오버나 이종 망간 핸드오버가 발생하여 물리 계층 파라미터에 기반하여 수신 윈도우 크기를 동적으로 제어한 이후에 무선 링크 기반 제어를 중단할 것인지 여부를 판단할 수 있다.
중단하지 않는 것으로 판단된 경우, 전자 장치는 S910 단계에서 채널 상태를 모니터링하는 반면, 중단하는 것으로 판단된 경우, 전자 장치는 상기 TCP 제어 과정을 종료할 수 있다.
본 개시의 다른 실시예에 따르면, 전자 장치는 하기와 같은 과정을 통해 수신 윈도우 크기를 조절할 수 있다.
도 10은 본 개시의 다양한 실시예에 따라 전자 장치가 물리 계층 파라미터를 이용하여 수신 윈도우 크기를 결정하는 또 다른 과정을 도시한 순서도이다.
본 개시의 일 실시예에 따르면, 전자 장치는 S1010 단계에서 채널 상태를 모니터링 할 수 있다. 또한, 채널 상태 정보를 획득한 전자 장치는 S1020 단계에서 획득된 채널 정보를 이용해 채널 상태 또는 네트워크 상태가 변경되었는지 여부를 판단할 수 있다. 상기 과정은 도 8의 S810 내지 S820 단계에서 서술한 내용과 유사하며, 구체적인 내용은 생략한다.
판단 결과 채널 상태가 변경되지 않았다고 판단되는 경우, 전자 장치는 S1010 단계로 돌아가 채널 상태를 모니터링 할 수 있다.
반면, 채널 상태가 변경되었다고 판단된 경우, 전자 장치는 S1030 단계에서 기지국과 단말 사이의 다운스트림 데이터 전송률을 의미하는 r1과 서버와 기지국 사이의 업스트림 데이터 전송률을 의미하는 r2를 계산하여 비교한다. 상기 r1과 r2의 차이가 기지국에서의 버퍼링 정도를 의미할 것인 바, 전자 장치는 상기 r1과 r2를 비교하여 수신 윈도우 크기를 증가시킬 것인지 여부를 결정할 수 있다.
이 때, r1과 r2를 계산하는 방법은 아래와 같다.
본 개시의 일 실시예에 따르면, r1은 기지국의 데이터 전송률을 의미할 수 있으며 상기 값은 전자 장치의 통신 프로세서에 의해 측정되는 시간당 데이터 전송량(TP)를 통해 판단될 수 있다.
본 개시의 일 실시예에 따르면, r2는 기지국의 데이터 수신율을 의미할 수 있으며, 하기의 수학식 2에 의해 계산될 수 있다.
[수학식 2]
r2 = k*mss/Tin
이 때, k 값은 ACK가 전송된 패킷의 수를 의미할 수 있다. 상기 k 값은 송신 윈도우 크기를 의미할 수 있으며, 상기 값은 전자 장치가 미리 정해진 알고리즘에 의해 추정할 수 있다.
또한, mss는 최대 세그먼트 크기(maximum segment size: MSS)를 의미하며 데이터 패킷 하나의 크기를 의미할 수 있다. 상기 mss 값은 TCP 연결 프로토콜을 수립할 때 전송되는 SYN에 포함될 수 있다.
또한, Tin은 단말이 ACK을 전송하여, 서버가 상기 ACK에 의해 데이터를 전송하여 기지국에 도달하는 시간을 의미하는 것으로, 제 1 RTT 최소 값에서 1/r1을 감산한 값을 의미할 수 있다.
상기 계산 후, 전자 장치는 계산된 r1과 r2를 비교하여 수신 윈도우 크기를 결정할 수 있다.
구체적으로, 전자 장치는 S1040 단계에서 r1이 r2에 미리 정해진 값을 더한 값보다 큰지 여부를 판단할 수 있다.
r1이 r2에 미리 정해진 값을 더한 값보다 크다고 판단된 경우, 기지국이 단말에 전송하는 데이터 전송률이 높으므로, 전자 장치는 S1050 단계에서 설정된 수신 윈도우 크기 기준 값에서 미리 정해진 크기만큼 증가시킨 값을 수신 윈도우 크기로 설정할 수 있다.
반면, r1이 r2에 미리 정해진 값을 더한 값보다 크지 않다고 판단된 경우, 전자 장치는 S1060 단계에서 r1이 r2에 미리 정해진 값을 감산한 값보다 작은지 여부를 판단할 수 있다.
r1이 r2에 미리 정해진 값을 감산한 값보다 작다고 판단된 경우, 기지국이 단말에 전송하는 데이터 전송률이 낮으므로, 전자 장치는 S1070 단계에서 설정된 수신 윈도우 크기 기준 값에서 미리 정해진 크기만큼 감산한 값을 수신 윈도우 크기로 설정할 수 있다.
이 때, 상기 설정된 수신 윈도우 크기 기준 값은 전자 장치가 수신하는 데이터에 대한 패킷 왕복 시간을 이용하여 설정될 수 있으며, 구체적인 내용은 상술한 바와 같다.
또한, 상기 수신 윈도우 크기 기준 값은 패킷 왕복 시간의 최소 값이 업데이트 되는 경우, 미리 설정된 주기, 또는 채널 상태가 급격하게 변경되는 경우 재설정될 수 있다.
또한, TCP 연결 후 수신 윈도우 크기 기준 값이 설정되어 있지 않은 경우에는 전자 장치는 미리 저장된 값을 수신 윈도우 크기 기준 값으로 사용할 수 있다.
전자 장치는 S1060 단계에서 판단 결과 r1이 r2에 미리 정해진 값을 감산한 값보다 큰 경우 , 또는 수신 윈도우 크기를 동적으로 제어한 이후, S1080 단계에서 동적 제어를 중단할 것인지 여부를 판단할 수 있다.
중단하지 않는 것으로 판단된 경우, 전자 장치는 S1010 단계에서 채널 상태를 모니터링하는 반면, 중단하는 것으로 판단된 경우, 전자 장치는 상기 TCP 제어 과정을 종료할 수 있다.
본 개시의 다양한 실시예들에 따르면, 전자 장치의 전송 제어 프로토콜(transmission control protocol: TCP) 제어 방법은, 측정된 패킷 왕복 시간(round trip time: RTT)을 기반으로 수신 윈도우 크기 기준 값을 설정하는 단계, 상기 전자 장치와 다른 전자 장치의 무선 채널과 관련된 물리 계층 파라미터를 확인하는 단계, 상기 물리 계층 파라미터 및 상기 수신 윈도우 크기의 기준 값을 기반으로 수신 윈도우 크기를 결정하는 단계, 및 데이터 수신에 따른 응답 메시지 전송 시 상기 결정된 수신 윈도우 크기를 상기 다른 전자 장치에 전송하는 단계를 포함할 수 있다.
본 개시의 다양한 실시예들에 따르면, 상기 물리 계층 파라미터는 무선 채널과 관련된 것을 특징으로 할 수 있다.
본 개시의 다양한 실시예들에 따르면, 상기 물리 계층 파라미터는 시간당 데이터 전송량 , 기준 신호 수신 전력, 기준 신호 수신 품질, 수신 신호 강도 표시 중 적어도 하나를 포함할 수 있다.
본 개시의 다양한 실시예들에 따르면, 전자 장치의 TCP 제어 방법은, 상기 물리 계층 파라미터에 따라 상기 설정된 수신 윈도우 크기 기준 값을 증가 또는 감소 시키는 단계를 더 포함할 수 있다.
본 개시의 다양한 실시예들에 따르면, 전자 장치의 TCP 제어 방법은, 상기 물리 계층 측정 성능이 미리 설정된 기준 채널 측정 성능이 범위의 최소 값 미만인 경우, 상기 설정된 수신 윈도우 크기 기준 값을 감소시키는 단계 및 상기 물리 계층 측정 성능이 미리 설정된 기준 채널] 측정 성능이 범위의 최대 값을 초과하는 경우, 상기 설정된 수신 윈도우 크기 기준 값을 증가시키는 단계를 포함할 수 있다.
본 개시의 다양한 실시예들에 따르면, 전자 장치의 TCP 제어 방법은, 단말의 이동성에 관한 정보 및 핸드오버에 관한 정보 중 적어도 하나를 기초로 수신 윈도우 크기를 결정하는 단계를 포함할 수 있다.
본 개시의 다양한 실시예들에 따르면, 전자 장치의 TCP 제어 방법은, 단말과 기지국 사이의 데이터 전송률 및 기지국과 서버 사이의 데이터 전송률에 기반하여 상기 수신 윈도우 크기를 결정하는 단계를 포함할 수 있다.
본 개시의 다양한 실시예들에 따르면, 전자 장치의 TCP 제어 방법은, 제 1 구간에서 측정된 RTT 최소 값과 제 2 구간에서 측정된 RTT의 최소 값의 차가 미리 설정된 범위의 최대 값을 초과하는 경우, 상기 수신 윈도우 크기 기준 값을 증가시키는 단계 및
상기 제 1 구간에서 측정된 RTT 최소 값과 상기 제 2 구간에서 측정된 RTT의 최소 값의 차가 미리 설정된 범위의 최소 값 미만인 경우, 상기 수신 윈도우 크기 기준 값을 감소시키는 단계를 포함할 수 있다.
본 개시의 다양한 실시예에 따르면, 전자 장치는 수신 윈도우 크기를 동적으로 제어함으로써 파일 다운로드 또는 스트리밍 시 최대의 시간당 데이터 전송량을 얻을 수 있다. 또한, 전자 장치는 수신 윈도우 크기를 동적으로 제어함으로써 패킷 왕복 시간이 중요한 화상 통화 등의 어플리케이션을 실행시, 패킷 왕복 시간을 감소시키고 시간당 데이터 전송량을 증가시킬 수 있다. 또한, 전자 장치는 수신 윈도우 크기를 불필요하게 크게 설정하여 발생하는 메모리 낭비를 감소시킬 수 있다.
또한, 전자 장치는 수신 윈도우 크기를 동적으로 제어함으로써 서버가 상대적으로 멀리 위치해 있는 경우, 시간당 데이터 전송량을 유지하면서 패킷 왕복 시간을 감소시킬 수 있다.
반면, 전자 장치는 수신 윈도우 크기를 동적으로 제어함으로써 서버가 상대적으로 멀리 위치해 있는 경우, 패킷 왕복 시간을 유지하면서 시간당 데이터 전송량을 증가시킬 수 있다.
본 문서에서 사용된 용어 "모듈"은, 예를 들면, 하드웨어, 소프트웨어 또는 펌웨어(firmware) 중 하나 또는 둘 이상의 조합을 포함하는 단위(unit)를 의미할 수 있다. "모듈"은, 예를 들면, 유닛(unit), 로직(logic), 논리 블록(logical block), 부품(component), 또는 회로(circuit) 등의 용어와 바꾸어 사용(interchangeably use)될 수 있다. "모듈"은, 일체로 구성된 부품의 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수도 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있다. 예를 들면,"모듈"은, 알려졌거나 앞으로 개발될, 어떤 동작들을 수행하는 ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays) 또는 프로그램 가능 논리 장치(programmable-logic device) 중 적어도 하나를 포함할 수 있다.
다양한 실시예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는, 예컨대, 프로그램 모듈의 형태로 컴퓨터로 읽을 수 있는 저장매체(computer-readable storage media)에 저장된 명령어로 구현될 수 있다. 상기 명령어가 프로세서(예: 프로세서(120))에 의해 실행될 경우, 상기 하나 이상의 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 읽을 수 있는 저장매체는, 예를 들면, 메모리(130)가 될 수 있다.
컴퓨터로 판독 가능한 기록 매체는, 하드디스크, 플로피디스크, 마그네틱 매체(magnetic media)(예: 자기테이프), 광기록 매체(optical media)(예: CD-ROM(compact disc read only memory), DVD(digital versatile disc), 자기-광 매체(magneto-optical media)(예: 플롭티컬 디스크(floptical disk)), 하드웨어 장치(예: ROM(read only memory), RAM(random access memory), 또는 플래시 메모리 등) 등을 포함할 수 있다. 또한, 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 다양한 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지다.
다양한 실시예에 따른 모듈 또는 프로그램 모듈은 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 다양한 실시예에 따른 모듈, 프로그램 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱(heuristic)한 방법으로 실행될 수 있다. 또한, 일부 동작은 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다. 그리고 본 문서에 개시된 실시예는 개시된, 기술 내용의 설명 및 이해를 위해 제시된 것이며, 본 문서에서 기재된 기술의 범위를 한정하는 것은 아니다. 따라서, 본 문서의 범위는, 본 문서의 기술적 사상에 근거한 모든 변경 또는 다양한 다른 실시예를 포함하는 것으로 해석되어야 한다.

Claims (16)

  1. 전송 제어 프로토콜(transmission control protocol: TCP) 제어하기 위한 전자 장치에 있어서,
    통신 회로;
    상기 통신 회로와 전기적으로 연결된 프로세서, 및 상기 프로세서와 전기적으로 연결된 메모리를 포함하고,
    상기 메모리는, 실행 시에, 상기 프로세서가, 측정된 패킷 왕복 시간(round trip time: RTT)을 기반으로 수신 윈도우 크기의 기준값을 설정하고, 상기 전자 장치와 다른 전자 장치의 무선 채널과 관련된 물리 계층 파라미터를 확인하고, 상기 물리 계층 파라미터 및 상기 기준값을 기반으로 수신 윈도우 크기를 결정하고, 데이터 수신에 따른 응답 메시지 전송 시 상기 결정된 수신 윈도우 크기를 상기 다른 전자 장치에 전송하도록 하는 인스트럭션들을 포함하는 것을 특징으로 하는 전자 장치.
  2. 제 1항에 있어서,
    상기 인스트럭션들은, 상기 프로세서가
    미리 정해진 주기에 따라 상기 물리 계층 파라미터를 확인하도록 하는 인스트럭션을 더 포함하는 것을 특징으로 하는 전자 장치.
  3. 제 1항에 있어서,
    상기 물리 계층 파라미터는 시간당 데이터 전송량, 기준 신호 수신 전력, 기준 신호 수신 품질, 및 수신 신호 강도 표시 중 적어도 하나를 포함하는 것을 특징으로 하는 전자 장치.
  4. 제 2항에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,
    상기 물리 계층 파라미터에 따라 상기 설정된 기준값을 증가 또는 감소 시키도록 하는 인스트럭션을 더 포함하는 것을 특징으로 하는 전자 장치.
  5. 제 4항에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,
    상기 물리 계층 파라미터가 미리 설정된 기준 채널 파라미터 범위의 최소 값 미만인 경우, 상기 설정된 수신 윈도우 크기 기준 값을 감소시키고, 상기 물리 계층 파라미터가 상기 미리 설정된 기준 채널 파라미터 범위의 최대 값을 초과하는 경우, 상기 설정된 수신 윈도우 크기 기준 값을 증가시키도록 하는 인스트럭션을 더 포함하는 것을 특징으로 하는 전자 장치.
  6. 제 1항에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,
    단말의 이동성에 관한 정보 및 핸드오버에 관한 정보 중 적어도 하나를 기초로 상기 수신 윈도우 크기를 결정하도록 하는 인스트럭션을 더 포함하는 것을 특징으로 하는 전자 장치.
  7. 제 1항에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,
    단말과 기지국 사이의 데이터 전송률, 및 상기 기지국과 서버 사이의 데이터 전송률에 기반하여 상기 수신 윈도우 크기를 결정하도록 하는 인스트럭션을 더 포함하는 것을 특징으로 하는 전자 장치.
  8. 제 1항에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,
    제 1 구간에서 측정된 RTT 최소 값과 제 2 구간에서 측정된 RTT의 최소 값의 차가 미리 설정된 범위의 최대 값을 초과하는 경우, 상기 수신 윈도우 크기 기준 값을 증가시키고, 상기 제 1 구간에서 측정된 RTT 최소 값과 상기 제 2 구간에서 측정된 RTT의 최소 값의 차가 상기 미리 설정된 범위의 최소 값 미만인 경우, 상기 수신 윈도우 크기 기준 값을 감소시키는 것을 특징으로 하는 전자 장치.
  9. 전자 장치의 전송 제어 프로토콜(transmission control protocol: TCP) 제어 방법에 있어서,
    측정된 패킷 왕복 시간(round trip time: RTT)을 기반으로 수신 윈도우 크기 기준 값을 설정하는 단계;
    상기 전자 장치와 다른 전자 장치의 무선 채널과 관련된 물리 계층 파라미터를 확인하는 단계;
    상기 물리 계층 파라미터 및 상기 수신 윈도우 크기의 기준 값을 기반으로 수신 윈도우 크기를 결정하는 단계; 및
    데이터 수신에 따른 응답 메시지 전송 시 상기 결정된 수신 윈도우 크기를 상기 다른 전자 장치에 전송하는 단계를 포함하는 것을 특징으로 하는 TCP 제어 방법.
  10. 제 9항에 있어서,
    상기 확인 단계는,
    미리 정해진 주기에 따라 상기 물리 계층 파라미터를 확인하는 것을 특징으로 하는 TCP 제어 방법.
  11. 제 9항에 있어서,
    상기 물리 계층 파라미터는 시간당 데이터 전송량, 기준 신호 수신 전력, 기준 신호 수신 품질, 수신 신호 강도 표시 중 적어도 하나를 포함하는 것을 특징으로 하는 TCP 제어 방법.
  12. 제 10항에 있어서,
    상기 결정 단계는,
    상기 물리 계층 파라미터에 따라 상기 설정된 수신 윈도우 크기 기준 값을 증가 또는 감소 시키는 것을 특징으로 하는 TCP 제어 방법.
  13. 제 12항에 있어서,
    상기 결정 단계는,
    상기 물리 계층 파라미터가 미리 설정된 기준 채널 파라미터 범위의 최소 값 미만인 경우, 상기 설정된 수신 윈도우 크기 기준 값을 감소시키는 단계; 및
    상기 물리 계층 파라미터가 상기 미리 설정된 기준 채널 파라미터 범위의 최대 값을 초과하는 경우, 상기 설정된 수신 윈도우 크기 기준 값을 증가시키는 단계를 포함하는 것을 특징으로 하는 TCP 제어 방법.
  14. 제 10항에 있어서,
    상기 결정 단계는,
    단말의 이동성에 관한 정보 및 핸드오버에 관한 정보 중 적어도 하나를 기초로 상기 수신 윈도우 크기를 결정하는 것을 특징으로 하는 TCP 제어 방법.
  15. 제 10항에 있어서,
    상기 결정 단계는,
    단말과 기지국 사이의 데이터 전송률 및 상기 기지국과 서버 사이의 데이터 전송률에 기반하여 상기 수신 윈도우 크기를 결정하는 것을 특징으로 하는 TCP 제어 방법.
  16. 제 9항에 있어서,
    상기 수신 윈도우 크기 기준 값 설정 단계는,
    제 1 구간에서 측정된 RTT 최소 값과 제 2 구간에서 측정된 RTT의 최소 값의 차가 미리 설정된 범위의 최대 값을 초과하는 경우, 상기 수신 윈도우 크기 기준 값을 증가시키는 단계; 및
    상기 제 1 구간에서 측정된 RTT 최소 값과 상기 제 2 구간에서 측정된 RTT의 최소 값의 차가 상기 미리 설정된 범위의 최소 값 미만인 경우, 상기 수신 윈도우 크기 기준 값을 감소시키는 단계를 포함하는 것을 특징으로 하는 TCP 제어 방법.
KR1020150129755A 2015-09-14 2015-09-14 전자 장치 및 그의 전송 제어 프로토콜(transmission control protocol: TCP) 제어 방법 KR102496060B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150129755A KR102496060B1 (ko) 2015-09-14 2015-09-14 전자 장치 및 그의 전송 제어 프로토콜(transmission control protocol: TCP) 제어 방법
US15/263,904 US10244425B2 (en) 2015-09-14 2016-09-13 Electronic device and method for controlling transmission control protocol thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150129755A KR102496060B1 (ko) 2015-09-14 2015-09-14 전자 장치 및 그의 전송 제어 프로토콜(transmission control protocol: TCP) 제어 방법

Publications (2)

Publication Number Publication Date
KR20170032025A true KR20170032025A (ko) 2017-03-22
KR102496060B1 KR102496060B1 (ko) 2023-02-07

Family

ID=58237245

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150129755A KR102496060B1 (ko) 2015-09-14 2015-09-14 전자 장치 및 그의 전송 제어 프로토콜(transmission control protocol: TCP) 제어 방법

Country Status (2)

Country Link
US (1) US10244425B2 (ko)
KR (1) KR102496060B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200073814A (ko) * 2018-12-14 2020-06-24 울산과학기술원 패킷 전송 방법 및 장치

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017027196A (ja) * 2015-07-17 2017-02-02 株式会社リコー 通信装置、電力制御方法、及び電力制御プログラム
KR102318055B1 (ko) * 2017-03-29 2021-10-27 삼성전자 주식회사 전자 장치 및 전자 장치의 근거리 통신 커버리지 보상 방법
DE102017004888B4 (de) * 2017-05-20 2018-11-29 Diehl Metering Systems Gmbh Verfahren zum Betrieb eines Versorgungssystems
US11470569B2 (en) * 2017-11-21 2022-10-11 Qualcomm Incorporated Uplink transmissions without uplink timing control and measurement
CN110838888A (zh) * 2018-08-16 2020-02-25 中国电信股份有限公司 数据处理方法、装置、系统和计算机可读存储介质
US10887432B2 (en) * 2019-05-20 2021-01-05 Google Llc Trip time estimation for transport control protocol
CN112188476B (zh) * 2020-09-09 2023-04-28 芯象半导体科技(北京)有限公司 通信方法、通信装置、移动终端和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030038020A (ko) * 2001-11-08 2003-05-16 삼성전자주식회사 이동 통신시스템의 기지국 제어기와 기지국간 패킷 데이터재전송 방법 및 장치
KR20080079410A (ko) * 2007-02-27 2008-09-01 한국정보통신대학교 산학협력단 지속적인 혼잡감지를 이용한 tcp 혼잡제어방법
US20140044046A1 (en) * 2012-08-13 2014-02-13 Apple Inc. Reducing packet loss at a wireless communication device due to a connection interruption
US20140115186A1 (en) * 2012-10-23 2014-04-24 Microsoft Corporation Receive window auto-tuning
KR20140073377A (ko) * 2012-12-06 2014-06-16 주식회사 팬택 이종 네트워크 무선 통신 시스템에서 확장 베어러 제어 방법 및 그 장치

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6473793B1 (en) * 1994-06-08 2002-10-29 Hughes Electronics Corporation Method and apparatus for selectively allocating and enforcing bandwidth usage requirements on network users
US7082467B2 (en) * 2000-02-10 2006-07-25 Hughes Network Systems Method and device for selective transport level spoofing based on information in transport level packet
US6904286B1 (en) * 2001-07-18 2005-06-07 Cisco Technology, Inc. Method and system of integrated rate control for a traffic flow across wireline and wireless networks
US7218645B2 (en) * 2002-02-19 2007-05-15 Broadcom Corporation Method and apparatus optimizing a radio link
US20060114836A1 (en) * 2004-08-20 2006-06-01 Sofie Pollin Method for operating a combined multimedia -telecom system
US20080132234A1 (en) * 2006-11-30 2008-06-05 Motorola, Inc. Apparatus and method for utilizing the transport layer to provide measurement opportunities for the physical layer in a multi-mode network
US8310920B2 (en) * 2007-03-02 2012-11-13 Saratoga Data Systems, Inc. Method and system for accelerating transmission of data between network devices
US20100054123A1 (en) * 2008-08-30 2010-03-04 Liu Yong Method and device for hign utilization and efficient flow control over networks with long transmission latency
US8374091B2 (en) * 2009-03-26 2013-02-12 Empire Technology Development Llc TCP extension and variants for handling heterogeneous applications
US8340099B2 (en) * 2009-07-15 2012-12-25 Microsoft Corporation Control of background data transfers
US9065885B2 (en) * 2010-06-02 2015-06-23 Ebay Inc. Method and system for detecting slow page load
US9112691B2 (en) * 2010-08-13 2015-08-18 Qualcomm Incorporated Methods and systems for downlink flow control in a wireless communication system
US20120201151A1 (en) * 2011-02-08 2012-08-09 Renesas Mobile Corporation Layer 2 ACK And NACK Status Reporting
US10547555B2 (en) 2011-10-04 2020-01-28 North Carolina State University Methods, systems, and computer readable media for reducing Wi-Fi scanning using cellular network to Wi-Fi access point mapping information
KR20150035745A (ko) * 2012-06-26 2015-04-07 더 거버닝 카운실 오브 더 유니버시티 오브 토론토 라디오 맵의 동적 생성을 위한 시스템, 방법 그리고 컴퓨터 프로그램
US9124547B2 (en) * 2012-07-31 2015-09-01 Hewlett-Packard Development Company, L.P. System and method for enforcing uplink wireless medium usage in wireless networks
US20150236966A1 (en) * 2014-02-18 2015-08-20 Alcatel-Lucent Usa Inc. Control of congestion window size of an information transmission connection
US9641399B1 (en) * 2014-10-14 2017-05-02 Jpmorgan Chase Bank, N.A. Application and infrastructure performance analysis and forecasting system and method
US9929956B2 (en) * 2015-02-26 2018-03-27 Citrix Systems, Inc. System for bandwidth optimization with initial congestion window determination

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030038020A (ko) * 2001-11-08 2003-05-16 삼성전자주식회사 이동 통신시스템의 기지국 제어기와 기지국간 패킷 데이터재전송 방법 및 장치
KR20080079410A (ko) * 2007-02-27 2008-09-01 한국정보통신대학교 산학협력단 지속적인 혼잡감지를 이용한 tcp 혼잡제어방법
US20140044046A1 (en) * 2012-08-13 2014-02-13 Apple Inc. Reducing packet loss at a wireless communication device due to a connection interruption
US20140115186A1 (en) * 2012-10-23 2014-04-24 Microsoft Corporation Receive window auto-tuning
KR20140073377A (ko) * 2012-12-06 2014-06-16 주식회사 팬택 이종 네트워크 무선 통신 시스템에서 확장 베어러 제어 방법 및 그 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Dawei Gao 외 4 명, ‘TCP SPC: Statistic Process Control for Enhanced Transport over Wireless Links’, IEEE GLOBECOM 2008, (2008.11.30.)* *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200073814A (ko) * 2018-12-14 2020-06-24 울산과학기술원 패킷 전송 방법 및 장치

Also Published As

Publication number Publication date
US10244425B2 (en) 2019-03-26
KR102496060B1 (ko) 2023-02-07
US20170078913A1 (en) 2017-03-16

Similar Documents

Publication Publication Date Title
KR102496060B1 (ko) 전자 장치 및 그의 전송 제어 프로토콜(transmission control protocol: TCP) 제어 방법
US10667153B2 (en) Network selection method and apparatus therefor
KR102661725B1 (ko) 전력을 제어하기 위한 장치 및 방법
US10771854B2 (en) Video streaming apparatus and method in electronic device
US10853026B2 (en) Method and apparatus for streaming audio by using wireless link
KR102292050B1 (ko) 데이터 전송 방법 및 이를 수행하는 전자 장치
KR102642689B1 (ko) 전자 장치 및 그 트래픽 제어 방법
US9967830B2 (en) Method for controlling content transmission and electronic device for supporting the same
KR20170096849A (ko) 전자 장치 및 전자 장치의 영상 공유 제어 방법
KR20170058597A (ko) 무선 통신 방법 및 이를 제공하는 전자 장치
KR20170038331A (ko) 전자 장치 및 그의 무선 통신 수행 방법
KR20160123652A (ko) 전자 장치 및 전자 장치의 통신 운영 방법
KR20180087046A (ko) 전자 장치 및 전자 장치의 테더링 연결 방법
KR20150104014A (ko) 로컬 무선 네트워크에서 점대점 미디어 스트리밍을 제어하는 방법 및 장치
KR20180020401A (ko) 통신망 연결 제어 방법, 저장 매체 및 이를 위한 전자 장치
US11146958B2 (en) Method and electronic device for performing wireless communication by using channel list
KR102420198B1 (ko) 장치 대 장치 간 통신에서 송신 전력을 제어하기 위한 전자 장치 및 방법
KR20170087350A (ko) 전자 장치 및 전자 장치의 동작 방법
KR20170111230A (ko) 통신 기능을 제공하는 방법 및 이를 위한 전자 장치
KR20180110517A (ko) 전자 장치 및 전자 장치의 근거리 통신 커버리지 보상 방법
US11109239B2 (en) Method for communication in unlicensed band and apparatus for same
KR20180045182A (ko) 전자 장치 및 전자 장치의 통신 방법
KR20170001481A (ko) 전자 장치 및 전자 장치의 통신 방법
KR20160105031A (ko) 전자 장치의 동작 방법 및 전자 장치
KR20170011189A (ko) 전자 장치 및 전자 장치의 통신 충돌 회피 방법

Legal Events

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