KR102560594B1 - 무선 통신 시스템에서 패킷을 송신하기 위한 장치 및 방법 - Google Patents

무선 통신 시스템에서 패킷을 송신하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR102560594B1
KR102560594B1 KR1020160054688A KR20160054688A KR102560594B1 KR 102560594 B1 KR102560594 B1 KR 102560594B1 KR 1020160054688 A KR1020160054688 A KR 1020160054688A KR 20160054688 A KR20160054688 A KR 20160054688A KR 102560594 B1 KR102560594 B1 KR 102560594B1
Authority
KR
South Korea
Prior art keywords
value
buffer
packets
transmission
amount
Prior art date
Application number
KR1020160054688A
Other languages
English (en)
Other versions
KR20170124813A (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 KR1020160054688A priority Critical patent/KR102560594B1/ko
Priority to US15/586,150 priority patent/US20170324672A1/en
Publication of KR20170124813A publication Critical patent/KR20170124813A/ko
Application granted granted Critical
Publication of KR102560594B1 publication Critical patent/KR102560594B1/ko

Links

Images

Classifications

    • 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/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
    • 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
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • H04L47/323Discarding or blocking control packets, e.g. ACK packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/321Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers
    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/02Arrangements for optimising operational condition
    • 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
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/0278Traffic management, e.g. flow control or congestion control using buffer status reports
    • 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/0289Congestion control

Landscapes

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

Abstract

본 개시는 LTE(Long Term Evolution)와 같은 4G(4th generation) 통신 시스템 이후 보다 높은 데이터 전송률을 지원하기 위한 5G(5th generation) 또는 pre-5G 통신 시스템에 관련된 것이다. 일 실시 예에 따른 송신 장치의 동작 방법은 응용 계층(application layer)으로부터 버퍼(buffer)로 전달되는 패킷(packets) 양을 결정하는 과정과, 상기 버퍼로부터 전송 계층(transport layer)으로 전달되는 패킷의 양을 결정하는 과정과, 상기 응용 계층으로부터 버퍼로 전달되는 패킷 양과 상기 버퍼로부터 전송 계층으로 전달되는 패킷의 양을 기초로 상기 응용 계층으로부터 상기 버퍼로 패킷 전달의 차단/개방을 제어하는 과정을 포함한다.

Description

무선 통신 시스템에서 패킷을 송신하기 위한 장치 및 방법{APPARATUS AND METHOD FOR TRANSMITTING PACKETS IN WIRELESS COMMUNICATION SYSTEM}
일반적으로, 아래 설명들은 무선 통신 시스템에서 패킷(packets) 송신에 관한 것으로, 보다 구체적으로 패킷의 송신에 있어서 지연 시간 감소를 위한 장치 및 방법에 관한 것이다.
4G(4th generation) 통신 시스템 상용화 이후 증가 추세에 있는 무선 데이터 트래픽 수요를 충족시키기 위해, 개선된 5G(5th generation) 통신 시스템 또는 pre-5G 통신 시스템을 개발하기 위한 노력이 이루어지고 있다. 이러한 이유로, 5G 통신 시스템 또는 pre-5G 통신 시스템은 4G 네트워크 이후(Beyond 4G Network) 통신 시스템 또는 LTE(Long Term Evolution) 시스템 이후(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 Frequency Shift Keying and Quadrature Amplitude Modulation) 및 SWSC(Sliding Window Superposition Coding)과, 진보된 접속 기술인 FBMC(Filter Bank Multi Carrier), NOMA(Non Orthogonal Multiple Access), 및 SCMA(Sparse Code Multiple Access) 등이 개발되고 있다.
전송 제어 프로토콜(transmission control protocol, TCP) 알고리즘을 설계 함에 있어 고려하는 최우선 목표는 주어진 네트워크의 가용 대역폭(available bandwidth)을 단시간 내에 탐색(probing) 하여, 가용 대역폭의 활용율(utilization) 을 최대로 높이는 것이었다. 이를 위해 대다수의 TCP는 제어를 시작함과 동시에 공격적으로 네트워크에 주입하는 패킷(pakets) 양을 늘려 최대 가용 대역폭을 짧은 시간에 찾아내는 동작을 수행한다. 이때, 네트워크에 주입하고자 하는 양 만큼의 패킷을 송신단에서 충분히 확보하지 못한다면, 전송한 패킷에 대한 Ack(acknowledge) 메시지를 기반으로 전송 윈도우(congestion window, CWND)의 크기를 제어하는 TCP의 특성상, TCP는 전송률을 충분히 증가시킬 수 없다.
일 실시 예는 무선 통신 시스템에서 송신단의 동작 방법 및 장치를 제공한다.
다른 실시 예는 무선 통신 시스템의 송신단에서 전송 지연을 감소시키기 위한 장치 및 방법을 제공한다.
또 다른 실시 예는 무선 통신 시스템의 송신단에서 TCP(transmission control protocol) 소켓의 송신 버퍼에서의 지연을 감소시키기 위한 장치 및 방법을 제공한다.
또 다른 실시 예는 무선 통신 시스템의 송신단에서 지연 감소를 위한 TCP 소켓의 구조를 제공한다.
또 다른 실시 예는 무선 통신 시스템에서 TCP 소켓의 송신 버퍼의 패킷 양을 제어하는 장치 및 방법을 제공한다.
또 다른 실시 예는 무선 통신 시스템의 송신단에서 TCP 소켓의 송신 버퍼의 차단/개방(blocking/non-blocking)을 제어하기 위한 장치 및 방법을 제공한다.
일 실시 예에 따른 송신 장치의 동작 방법은, 응용 계층으로부터 버퍼로 전달되는 패킷 양을 결정하는 과정과, 상기 버퍼로부터 전송 계층으로 전달되는 패킷의 양을 결정하는 과정과, 상기 응용 계층으로부터 버퍼로 전달되는 패킷 양과 상기 버퍼로부터 전송 계층으로 전달되는 패킷의 양을 기초로 상기 응용 계층으로부터 상기 버퍼로의 패킷 전달을 차단(blocking)하는 과정을 포함한다.
다른 실시 예에 따른 송신 장치는, 패킷을 일시적으로 저장하기 위한 버퍼(buffer)와, 응용 계층으로부터 상기 버퍼로 전달되는 패킷 양과 상기 버퍼로부터 전송 계층으로 전달되는 패킷 양을 기초로 상기 버퍼로의 패킷 전달을 차단하는 제어부를 포함한다.
다양한 실시 예들에 따르면, 송신단의 버퍼(buffer)에서의 지연 시간이 감소된다.
본 개시에 대한 보다 완전한 이해를 위해, 첨부된 도면을 참조하여 아래의 설명이 이루어진다. 도면에서 동일한 참조번호는 동일한 구성요소를 나타낸다.
도 1은 무선 통신 네트워크 환경을 도시한다.
도 2는 패킷의 전송에 있어서 어플리케이션 레벨에서의 종단 간(end-to-end) 지연을 개략적으로 나타낸다.
도 3은 일 실시 예에 따른 TCP(transmission control protocol) 소켓의 송신 버퍼 구조를 나타낸다.
도 4는 일 실시 예에 따른 송신단의 기능적 블록 구성을 나타낸다.
도 5는 일 실시 예에 따른 제어부의 기능적 블록 구성을 나타낸다.
도 6은 일 실시 예에 따른 송신단의 동작 흐름을 나타낸다.
도 7은 일 실시 예에 따른 송신단의 다른 동작 흐름을 도시한다.
본 개시에서 사용되는 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 개시에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 개시에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 개시에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 개시에서 정의된 용어일지라도 본 개시의 실시 예들을 배제하도록 해석될 수 없다.
이하에서 설명되는 다양한 실시 예들은 하드웨어적인 접근 방법을 예시로서 설명된다. 하지만, 다양한 실시 예들에서는 하드웨어와 소프트웨어를 모두 사용하는 기술을 포함하고 있으므로, 다양한 실시 예들이 소프트웨어 기반의 접근 방법을 제외하는 것은 아니다.
본 개시는 무선 통신 시스템에서 패킷의 송신 시 지연을 감소시키기 위한 장치 및 방법에 대해 설명한다. 여기서 감소대상이 되는 지연은, 송신단 또는 송신 장치에서 발생되는 것으로써 보다 구체적으로 송신 버퍼에서의 버퍼링에 의해 발생되는 것이 그 대상이 된다.
도 1은 무선 네트워크 환경을 도시 한다. 도 1은 일 실시 예에 따른 무선 네트워크 환경 100의 일 예를 도시하고 있다. 도 1에 도시된 무선 네트워크 환경 100은 단지 예시를 위한 것에 지나지 않는다. 본 발명의 범위를 벗어남이 없이, 무선 네트워크 환경 100의 다른 예들이 사용될 수도 있다.
무선 네트워크 환경 100은 NodeB 101, NodeB 102 및 NodeB 103을 포함한다. NodeB 101은 NodeB 102 및 NodeB 103과 통신한다. NodeB 101은 인터넷, 사설(proprietary) IP(Internet Protocol) 네트워크, 또는 다른 데이터 네트워크와 같은 IP 네트워크 130과도 또한 통신한다.
네트워크 타입에 의존하여, "TP(transmission point)", "BS(base station)", "AP(access point)", 또는 "eNodeB(eNB)"와 같은 다른 잘 알려진 용어들을 "NodeB" 대신에 사용할 수도 있다. 편의상, 본 명세서에서는 원격 단말들에 무선 액세스를 제공하는 네트워크 인프라 컴포넌트(network infrastructure component)들을 지칭하는데 NodeB란 용어를 사용하기로 한다.
편의상, 이하 NodeB에 무선으로 액세스하는 원격 무선 단말을 지시하기 위해 "사용자 단말" 또는 "UE(user equipment)"란 용어가 사용되는 바, 이는 UE가 이동 장치(예컨대, 휴대 전화)이든 아니면 UE를 통상대로 고정 장치(예컨대, 데스크톱 PC, 자판기 등)로 보든 불문한다. 다른 시스템들에서는, "MS(mobile station)","SS(subscriber station)", "RT(remote terminal)", "WT(wireless terminal)" 등과 같은 다른 잘 알려진 용어들을 "사용자 단말" 대신에 사용할 수도 있다.
NodeB 102는 NodeB 102의 커버리지 영역(coverage area) 120 내에 있는 제1 다수의 UE들에 네트워크 130에 대한 무선 광대역 액세스를 제공한다. 제1 다수의 UE들은 중소기업에 위치할 수 있는 UE 111; 대기업에 위치할 수 있는 UE 112; 와이파이 핫스팟(WiFi hotspot)에 위치할 수 있는 UE 113; 제1 주택에 위치할 수 있는 UE 114; 제2 주택에 위치할 수 있는 UE 115; 및 휴대 전화, 무선 랩톱, 무선 PDA 등과 같은 이동 장치일 수 있는 UE 116을 포함한다. UE들 111 내지 116은 비록 그에 한정되는 것은 아니지만 이동 전화, 이동 PDA, 및 MS와 같은 무선 통신 장치일 수 있다.
NodeB 103은 NodeB 103의 커버리지 영역 내에 있는 제 다수의 UE들에 무선 광대역 액세스를 제공한다. 제2 다수의 UE들은 UE 115 및 UE 116을 포함한다. 일부 실시 예들에서는, NodeB들 101 내지 103 중의 하나 이상이 본 발명의 실시 예들에서 설명되는 것과 같은 PDCCH들의 제어 채널 요소들을 사용하기 위한 기법들을 비롯한 LTE 또는 LTE-A 기법들을 사용하여 서로 통신하고 UE들 111 내지 116과 통신할 수 있다.
점선들은 커버리지 영역들 120 및 125의 개략적인 범위들을 나타내는데, 그들은 단지 예시와 설명의 목적으로 개략적인 원형으로 도시되어 있다. 기지국들과 관련된 커버리지 영역들, 예컨대 커버리지 영역들 120 및 125는 기지국들의 구성과 자연 및 인공 장애물들과 관련된 무선 환경의 변화들에 의존하여 불규칙한 형상들을 비롯한 다른 형상들을 가질 수도 있음을 분명히 알아야 할 것이다.
도 1은 무선 네트워크 환경 100의 일례를 도시하고 있지만, 도 1에 대해 다양한 변경들이 이뤄질 수 있다. 예컨대, 유선 네트워크와 같은 다른 타입의 데이터 네트워크가 무선 네트워크 환경 100을 대체할 수 있다. 유선 네트워크에서는, 네트워크 단말들이 NodeB들(101-103)과 UE들(111-116)을 대체할 수 있다. 유선 연결들이 도 1에 도시된 무선 연결들을 대체할 수 있다.
다양한 실시 예들에서, 송신단은 단말이 될 수 있다. 상기 단말은 휴대용 전자 장치(portable electronic device)일 수 있으며, 스마트폰(smart phone), 휴대용 단말기(portable terminal), 이동 전화(mobile phone), 이동 패드(mobile pad), 미디어 플레이어(media player), 태블릿 컴퓨터(tablet computer), 핸드헬드 컴퓨터(handheld computer) 또는 PDA(Personal Digital Assistant) 중 하나일 수 있다. 또한, 상기 전자 장치는 상술한 장치들 중 둘 이상의 기능들을 결합한 장치일 수 있다.
도 2는 패킷의 전송에 있어서 어플리케이션 레벨(application level)에서의 종단 간(end-to-end) 지연을 개략적으로 나타낸다.
도 2에서 송신단 210은 기지국, 단말 및 서버 장치 중 적어도 하나가 될 수 있다. 또한 수신단 250은 기지국, 단말 및 서버 장치 중 적어도 하나가 될 수 있다. 예를 들어 단말간 D2D(device-to-device) 통신을 가정하는 경우, 송신단 210은 제1 단말, 수신단 250은 제2 단말이 될 수 있다. 상기 송신단 및 수신단은 각각 송신 장치 및 수신 장치로 지칭될 수 있다.
도 2를 참조하면, 송신단 210과 수신단 250 사이의 종단 간(end-to-end) 어플리케이션 전송 지연 시간은 변수 D로 표현 된다. 다양한 실시 예들은 전송 지연 시간 D의 감소 방안을 제안한다.
도 2를 참조하면, 송신단 210과 수신단 250 사이의 전송 객체가 되는 패킷 (packets)이 어플리케이션 211에서 생성된다. 상기 패킷은 어플리케이션 211로부터, 전송을 위한 목적으로, 전송 제어 프로토콜(transmission control protocol, 이하 'TCP') 소켓(socket) 213으로 전달된다. TCP 소켓 213은 송신 버퍼(send buffer)를 구비하고 있고, 상기 패킷은 상기 송신 버퍼에 일시적으로 저장된다. 즉, 상기 패킷은 수신단 250으로부터 Ack(acknowledge) 메시지를 수신하기 전까지 TCP 소켓의 송신 버퍼에 저장된다.
송신 버퍼에 일시적으로 저장된 상기 패킷은 수신단 250으로 전송을 위해 TCP 전송 계층 215로 전달 된다. 만약 어플리케이션 211이 생성한 패킷이 TCP 소켓 213에 전달되는 순간 네트워크로 전송이 이루어 진다면, 상기 패킷이 송신단 210에서 수신단 250까지 전달되는 지연 시간 D는 순수하게 네트워크 지연 시간 D2만을 포함하게 된다. 하지만, TCP 소켓 213의 송신 버퍼에서 TCP 전송 계층 215로 패킷이 전달되는 과정에서 충분한 양의 패킷이 TCP 전송 계층 215로 전달되지 못하는 경우, 전송 지연이 발생될 수 있다. 본 개시에서, 이러한 지연은 송신단 소켓 지연 시간 D1으로 정의된다.
수신단 250에서는 네트워크를 통해 패킷을 수신한다. 수신단 250은 TCP 계층 255를 통해 수신된 패킷을 TCP 소켓 253으로 전달하고 이 과정에서 수신단 소켓 지연 D3가 발생된다.
어플리케이션 전송 지연 시간 D는 아래의 수학식 1과 같이 나타낼 수 있다.
Figure 112016042758962-pat00001
상기 수학식 1에서, D는 송신단과 수신단 사이의 어플리케이션 전송 지연 시간, D1은 송신단 소켓 지연 시간, D2는 네트워크 지연 시간, D3는 수신단 소켓 지연 시간을 의미한다.
만약 송신단 소켓 지연 시간 D1이 상대적으로 큰 경우, 네트워크 지연 시간 D2보다 긴 시간을 송신단 210 자체에서 패킷이 대기해야 하는 치명적인 문제가 발생될 수 있다. 본 개시는 송신단 210과 수신단 250 사이의 어플리케이션 전송 지연 시간 D의 감축을 그 목표로 한다. 보다 구체적으로 다양한 실시 예들은 전송 지연 시간 D에서, 송신단 소켓 지연 시간 D1의 감축을 그 목표로 한다.
TCP 소켓 213의 송신 버퍼에 쌓여 있는 패킷들이 송신단 210 내에서 일으키는 송신단 소켓 지연 시간 D1을 없애고자 할 때, 송신 버퍼의 크기를 작게 고정하거나 자동 튜닝(auto-tuning)과 같은 방식으로 동작시키지만 최대값을 제한하는 기법이 사용될 수 있다.
하지만 송신 버퍼의 크기를 제한하는 기법은 전송률 저하의 문제를 발생 시킬 수 있다. 구체적으로 송신 버퍼가 N 개의 패킷을 가지고 있을 때, 이중 1개의 패킷이 네트워크를 통해 전송이 되면, 해당 패킷은 'packets in flight' 로 분류되어, Ack 메시지를 받을 때까지, 송신 버퍼내의 공간을 차지하고 있게 된다. 이는 해당 패킷이 손실되었을 경우 재전송을 쉽게 하기 위함이다. 만약 정상적으로 ack 메시지를 수신한 경우 해당 패킷은 송신 버퍼에서 비로소 삭제된다. 그 후 전송 윈도우 제어 기법에 따라, 송신 버퍼는 새로운 패킷을 저장소 (즉, 어플리케이션으로부터)에서 불러오게 된다. 간단한 예로, TCP New Reno의 slowstart 구간에서는 1개의 Ack 메시지에 대해 2개의 패킷을 불러오게 된다. 이러한 과정이 타임 슬라이딩(time sliding)이 이루어지며 진행되는데, 만약 송신 버퍼가 특정 크기로 고정되어 있다면, 추가 패킷을 더 이상 불러올 수 없는 상황이 발생하게 된다. 즉, 송신단 210은 Ack 메시지를 수신한 1개의 패킷을 삭제하면서 발생한 공간은 채울 수 있으나 그 이상은 불러올 수 없다. 이로 인해, 송신 버퍼에 의해 크기가 제약될 수 밖에 없는 전송 윈도우는 특정 값 이상으로 커질 수 없게 되며, 가용 대역폭을 최대로 활용하지 못하는 전송률 저하 현상이 발생될 수 있다.
다양한 실시 예들은 기존의 송신 버퍼 제어 기법을 탈피하여, 송신 버퍼에서의 지연시간을 획기적으로 낮추는 방법을 제안한다. 궁극적으로는 송신 버퍼에서의 지연시간을 0ms 에 근접시키는 것을 목표로 하며, 이를 통해 송신단 210의 어플리케이션 211이 순간적으로 생성한 패킷을 네트워크 지연 시간 D2 이외에 불필요한 추가 지연 없이 수신단 250으로 전달하는 것을 목표로 한다.
다양한 실시 예들은 TCP 전송단에서의 동작과 관련되어 있다. 본 개시는 2개의 구성 즉, 전송 어플리케이션, TCP 프로토콜 스택을 가지는 커널(kernel)을 포함한다. 여기서 전송 어플리케이션은 TCP 소켓 프로그래밍을 사용하는 모든 어플리케이션을 의미한다.
일반적인 TCP 소켓 프로그래밍은 TCP 프로토콜 스택 내에 존재하는 TCP 소켓에서 송신 버퍼를 관리하므로, 본 개시의 구성요소에 전송 어플리케이션이 포함될 수 있는 것은 그 구조의 특이성에 기인한다. 단, 전송 어플리케이션을 제외하고 TCP 프로토콜 스택을 가지는 커널 만으로도 본 개시를 구현하는 것도 가능하다.
다양한 실시 예들에 따르는 구현 방법은 크게 두 가지로 구분 될 수 있다. 첫째, 다양한 실시 예들은 커널 정보를 참조하는 어플리케이션 프로그래밍을 통해 구현될 수 있다. 둘째, 다양한 실시 예들은 커널 내부의 정보만을 사용하는 TCP 소켓 프로그래밍을 통해 구현될 수 있다. 여기서, 커널 정보를 참조하는 어플리케이션 프로그래밍을 통한 구현에 대해 집중적으로 기술한다. 하지만 커널 정보를 참조하는 어플리케이션 프로그래밍을 통한 구현에 대한 개시는 커널 내부의 정보만을 사용하는 TCP 소켓 프로그래밍을 통한 구현에 적용 될 수 있음을 직관적으로 알 수 있다. 따라서 그 기술은 생략한다.
일 실시 예에 따른 기법은 일반적인 TCP 소켓 프로그래밍(programing)에서 TCP 소켓을 통해 데이터를 전송하는 아래의 프로그래밍 코드(code)에 대한 수정을 요구한다. 이하 표 1과 같은 코드워드(codeword)는 어플리케이션 내에서 존재할 수 있다.
while(1) {
write(socket, buffer, n);
}
상기 코드의 의미는 TCP 소켓 소켓(즉, 소켓의 송신 버퍼)에 n 바이트의 데이터를 복사하라는 의미이며, 이는 즉, 어플리케이션이 가지고 있는 데이터 중 n 바이트를 TCP 소켓의 송신 버퍼로 이동시키라는 의미이다. 이때, TCP 소켓은 차단(blocking)과 개방(non-blocking)으로 동작할 수 있다. TCP 소켓이 차단으로 동작할 경우, TCP 소켓의 송신 버퍼가 가득 차 있으면, write() 명령의 다음 절차는 진행될 수 없게 된다. 또한 송신 버퍼가 가득 차 있는 상황에서, TCP 소켓이 개방으로 동작하는 경우, write() 명령의 다음 절차가 진행될 수 있으나, 여전히 데이터를 송신 버퍼로 보낼 수는 없다.
위와 같이 동작하는 TCP 소켓의 송신 버퍼에서의 소켓 지연 시간 D1을 줄이기 위해, 송신 버퍼의 크기를 작은 상수로 결정하는 것은 앞서 설명한 바와 같이 전송률 저하의 문제로 인해 바람직하지 않다.
따라서 다양한 실시 예들은 도 3과 같은 구조의 송신 버퍼를 가지는 TCP 소켓을 제안 한다.
도 3을 참조하면, 송신단 210은 주어진 TCP 소켓에 대해 시간 t까지 상기 TCP 소켓을 통해 커널 301(즉, 송신 버퍼 305)에서 네트워크 303으로 전송한 패킷의 총 바이트(byte) 수를 관리할 수 있다. 시간 t까지 상기 TCP 소켓을 통해 커널 301에서 네트워크 303으로 전송된 패킷의 총 바이트 수를 K(t)로 지칭될 수 있다. 송신단 210은 시간 t에 대한 K(t)를 측정할 수 있다.
또한, 송신단 210은 어플리케이션 307로부터 소켓(즉, 송신 버퍼 305)에 전송된 총 바이트 수를 관리할 수 있다. 시간 t까지 어플리케이션 307로부터 소켓(즉, 송신 버퍼 305)에 전송된 총 바이트 수를 이를 W(t)로 지칭할 수 있다. 송신단 210은 시간 t에 대한 W(t)를 측정할 수 있다.
일 실시 예에 따르면, 송신단 210은 W(t)-K(t) 값을 관찰 및 측정할 수 있다. 송신단 210은 측정된 W(t)-K(t) 값을 기초로 어플리케이션 307로부터 소켓(즉, 송신 버퍼 305)으로의 패킷 전송을 제어할 수 있다. 이를 통해 송신단 210은 송신 버퍼 305에 실질적으로 쌓여 있는 패킷의 양과 이로 인한 지연시간을 조절 또는 제어 할 수 있다.
즉, 송신 버퍼 305의 크기는 더 이상 중요하지 아니할 수 있다. 본 개시는 송신 버퍼 305의 크기는 큰 값으로 두고, 송신 버퍼 305 내에 실질적으로 채워지는 패킷의 양을 제어하는 것에만 관련된다.
도 3은 송신단 210의 제어에 따라 송신 버퍼 305에 실질적으로 채워지는 패킷의 양을 epsilon(ε) 309로 설정된 상황을 나타낸다. 단, 여기서 송신 버퍼 305에 채워져 있는 패킷의 총량은 epsilon(ε) 309 만이 아니고, 네트워크로 전송 중이지만 아직 Ack 메시지를 받지 못한 패킷의 양을 나타내는 'packets in flight' 311을 포함하는 것에 유의하여야 한다.
본 개시의 구현을 위한 목적으로, 송신단 210은 아래와 같은 프로그램 코드를 사용할 수 있다. 즉, 송신단 210은 어플리케이션 207을 통해 이하 표 2와 같은 프로그램 코드를 사용할 수 있다.
while (1) {
if (W_t - K_t < epsilon)
write(socket, buffer, n);
}
상기 프로그램 코드를 참조하면, 큰 값으로 설정된 송신 버퍼의 크기 때문에 write() 함수는 더 이상 송신 버퍼 305에 의해 차단되지 않는다. 즉, 송신 버퍼 305는 W(t)-K(t)에 대한 조건에 의해서 차단되거나 개방된다. 예를 들어 W(t)-K(t) 값이 미리 정의된 309보다 작은 경우 송신단 210은 송신 버퍼를 개방하고 어플리케이션으로부터 전달되는 패킷으로 채울 수 있다. 반대로 W(t)-K(t) 값이 미리 정의된 309보다 크거나 같은 경우 송신단 210은 상기 송신 버퍼를 차단할 수 있다.
어플리케이션 307에서 K(t)를 호출하기 위해서는 시스템 콜의 구현이 필요하며, 해당 시스템 콜은 커널 내의 TCP 스택에서 네트워크로 내보낸 패킷의 총량을 카운트 하는 형식으로 구현될 수 있다.
또한, 다른 실시 예에 따라 송신단 210이 W(t)-K(t)를 제어하는 조건은 아래 수학식 2를 통해 일반화될 수 있다.
Figure 112016042758962-pat00004
상기 수학식 2에서, RTT(t) 는 시간 t 에서 해당 세션이 겪는 왕복 지연 시간(round trip time)을 의미하며, Tput(t)는 네트워크 전송률(throughput)을 의미한다.
상기 수학식 2가 갖는 의미는, TCP 소켓에 버퍼링하는 패킷의 양, 즉, 송신 버퍼에 채워지는 패킷의 양을 왕복 지연시간 RTT(t)와 전송률 Tput(t)을 기반으로 제어함으로써, 주어진 상황에 적합한 저 지연 시스템을 만들 수 있다는 것이다.
즉, 송신단 210은 W(t)-K(t)와 f(RTT(t), Tput(t))의 비교를 통해 송신 버퍼 305의 차단/개방을 제어할 수 있다. 상기 f(RTT(t), Tput(t))는 소켓 제어를 위한 기준 값으로 지칭 될 수 있다.
예를 들어, 상기 네트워크 전송률 Tput(t)이 높은 네트워크 환경을 가정하는 경우, 상기 수학식 2의 우변의 값은 크게 결정될 수 있고, 결과적으로 송신단 210에 의해 송신 버퍼에 채워지는 패킷의 양은 크게 결정될 수 있다. 그 결과 송신 버퍼가 개방될 수 있다. 반대로 네트워크 전송률 Tput(t)이 낮은 네트워크 환경을 가정하는 경우, 상기 수학식 2의 우변의 값은 작게 결정될 수 있고, 결과적으로 송신단 210에 의해 송신 버퍼에 채워지는 패킷의 양은 작게 결정될 수 있다. 그 결과 송신 버퍼가 차단될 수 있다.
다른 예로, 상기 왕복 지연 시간 RTT(t)가 큰 네트워크 환경을 가정할 수 있다. 이 경우, 상기 수학식 2에서 우변의 값은 작게 결정될 수 있다. 그에 따라 송신단 210에 의해 송신 버퍼에 채워지는 패킷의 양은 작게 결정될 수 있고 그 결과 송신 버퍼가 차단될 수 있다. 반대로 상기 왕복 지연 시간 RTT(t)가 작은 네트워크 환경을 가정할 수 있다. 이 경우, 상기 수학식 2에서 우변의 값은 크게 결정될 수 있다. 그에 따라 송신단 210에 의해 송신 버퍼에 채워지는 패킷의 양은 크게 결정될 수 있고 그 결과 송신 버퍼가 개방될 수 있다.
앞서 언급된 것과 같이 본 개시는 송신 장치 210에서 어플리케이션과 커널의 협업(collaboration)을 통해 구현될 수 있고, 또는 단지 커널 내의 변형 만으로도 구현될 수 있다. 이는 어플리케이션으로부터 소켓이 전달받은 W(t)를 카운트하는 함수 또는 측정하는 함수를 커널 내에 두는 것만으로 가능해지며, 어플리케이션은 기존과 동일한 방식으로 write() 함수를 호출하면 된다.
일 실시 예에 따른 송신 지연 시간 감축을 위한 송신 장치의 동작 방법은 응용 계층으로부터 버퍼로 전달되는 패킷 양을 결정하는 과정과, 상기 버퍼로부터 전송 계층으로 전달되는 패킷의 양을 결정하는 과정과, 상기 응용 계층으로부터 버퍼로 전달되는 패킷 양과 상기 버퍼로부터 전송 계층으로 전달되는 패킷의 양을 기초로 상기 응용 계층으로부터 상기 버퍼로의 패킷 전달을 차단(blocking)하는 과정을 포함한다.
다른 실시 예에 따른 상기 패킷 전달을 차단하는 과정은, 상기 응용 계층으로부터 버퍼로 전달되는 패킷 양과 상기 버퍼로부터 전송 계층으로 전달되는 패킷의 양의 차이 값을 결정하는 과정과, 상기 차이 값을 기초로 상기 버퍼로 패킷 전달의 차단 여부를 판단하는 과정을 포함한다.
또 다른 실시 예에 따른 상기 패킷 전달을 차단하는 과정은, 상기 차이 값과 임계 값을 비교하는 과정과, 상기 차이 값이 상기 임계 값보다 크거나 같은 경우 상기 버퍼로의 패킷 전달을 차단하는 과정을 포함한다.
또 다른 실시 예에 따른 상기 패킷 전달을 차단하는 과정은, 상기 차이 값 및 왕복 지연 시간(round trip time)을 기초로 상기 패킷 전달의 차단 여부를 판단하는 과정을 포함한다.
또 다른 실시 예에 따른 상기 패킷 전달을 차단하는 과정은, 상기 차이 값과 네트워크 전송률(throughput)을 기초로 상기 패킷 전달의 차단 여부를 판단하는 과정을 포함한다.
또 다른 실시 예에 따른 상기 응용 계층으로부터 상기 버퍼로 전달되는 패킷 양과 상기 버퍼로부터 상기 전송 계층으로 전달되는 패킷 양은 시간 함수로 결정된다.
또 다른 실시 예에 따른 송신 장치의 동작 방법은, 왕복 지연 시간(round trip time) 및 네트워크 전송률(throughput)을 독립 변수로 하는 함수 값 f(RTT(t), Tput(t))을 결정하는 과정을 더 포함한다.
또 다른 실시 예에 따른 상기 패킷 전달을 차단하는 과정은, 상기 차이 값과 상기 함수 값 f(RTT(t), Tput(t))의 비교에 기초하여 상기 패킷 전달의 차단 여부를 판단하는 과정을 포함한다.
도 4는 일 실시 예에 따른 송신단 210의 기능적 블록 구성을 나타낸다. 상기 송신단 210은 송신 장치, 기지국(장치), 단말(장치), 서버(장치) 등으로 지칭될 수 있다. 도 4를 참조하면, 송신단 210은 제어부 410, 어플리케이션 계층 430, 송신 버퍼 450 및 전송 계층 470을 포함할 수 있다.
상기 제어부 410은 송신단 210의 동작 전반을 제어할 수 있다. 제어부 410은 송신단 210을 구성하는 모든 구성 요소들의 상태 및 동작을 제어할 수 있다. 제어부 410은 패킷의 송신을 위해 어플리케이션 계층 430에서 변형된 프로그램 코드를 생성을 제어할 수 있다. 구체적으로 제어부 410은 어플리케이션 계층 430에서 W(t)-K(t)값을 기초로 변형된 코드를 생성하도록 제어할 수 있다. 제어부 410은 상기 변형된 프로그램 코드를 기초로 어플리케이션 계층 430에서 TCP 소켓의 송신 버퍼 450에 패킷을 전달할지 여부를 결정할 수 있다. 일 실시 예에 따라 제어부 410은 수학식 2에 따라 어플리케이션 계층 430에서 TCP 소켓의 송신 버퍼 450에 패킷을 전달할지 여부를 결정할 수 있다.
어플리케이션 계층 430은 미리 설정된 프로그램 및 수신단 210의 사용자 입력에 따라 패킷을 생성할 수 있다. 상기 생성된 패킷이 전송의 객체가 될 때, 어플리케이션 계층 430은 제어부 410의 제어에 따라 생성된 패킷을 TCP 소켓의 송신 버퍼 450에 전달할 수 있다. 즉, 어플리케이션 계층 430은 변형된 프로그램 코드를 통해 제어부 410의 제어에 따라 TCP 소켓의 송신버퍼의 차단/개방을 제어 할 수 있다.
TCP 소켓의 송신 버퍼 450은 제어부 410의 제어에 따라 어플리케이션 계층 430에서 생성된 패킷을 네트워크를 통해 송신단 250으로 전송하기 위한 목적으로 일시적으로 저장할 수 있다. 송신 버퍼 450은 어플리케이션 계층의 변형된 프로그램 코드를 기초로 제어부 410의 제어에 따라 차단/개방 될 수 있다. 송신 버퍼 450은 제어부 410의 제어에 따라 저장된 패킷을 전송 계층 470으로 전달할 수 있다. 송신 버퍼 450은 네트워크를 통해 송신된 패킷에 대하여 수신단 250으로부터 Ack 메시지를 수신하는 경우, 제어부 410의 제어에 따라 상기 송신된 패킷을 삭제할 수 있다.
전송 계층 470은 제어부 470의 제어에 따라 송신단 210과 수신단 250 사이의 패킷의 투과적인 전송 기능을 제공하는 역할을 수행할 수 있다.
도 5는 일 실시 예에 따른 제어부의 기능적 블록 구성을 나타낸다. 상기 블록 구성은 도 4에 도시된 상기 제어부 410에 대응될 수 있다.
도 5를 참조하면, 제어부는 제1 측정부 530, 제2 측정부 550 및 결정부 510를 포함한다. 제1 측정부 530는 어플리케이션 계층에서 생성된 패킷이 TCP 소켓의 버퍼로 전달되는 양 W를 측정 또는 결정할 수 있다. 상기 W는 시간 함수 W(t)로 표현될 수 있다. 즉, 제1 측정부는 시간 t까지 어플리케이션 계층에서 TCP 소켓의 버퍼로 전달되는 패킷의 양 W(t)를 측정 또는 결정 할 수 있다.
제2 측정부 550은 TCP 소켓의 송신 버퍼에서 네트워크로 전송된 패킷의 총 양 K를 측정 또는 결정할 수 있다. 상기 K는 시간함수 K(t)로 표현될 수 있다. 즉, 제2 측정부는 시간 t까지 TCP 소켓의 송신 버퍼에서 네트워크로 전송된 패킷의 총 양 K(t)를 측정 또는 결정할 수 있다.
결정부 510은 TCP 소켓의 송신 버퍼의 차단/개방을 제어할 수 있다. 구체적으로 결정부 510은 상기 W(t) 및 K(t)를 기초로 송신 버퍼의 차단/개방을 제어할 수 있다. 구체적으로 결정부 510은 W(t)-K(t) 값을 기초로 송신 버퍼의 차단/개방을 제어할 수 있다. 일 실시 예에 따라, 결정부 510은 상기 W(t)-K(t) 값을 미리 정의된 상수 값 과 비교를 통해 송신 버퍼의 차단/개방을 제어할 수 있다. 즉, 결정부 510은 상기 W(t)-K(t) 값이 epsilon(ε)보다 작다고 판단되는 경우 송신 버퍼를 개방할 수 있다. 반대로 결정부 510은 상기 W(t)-K(t) 값이 보다 크다고 판단되는 경우, 송신 버퍼를 차단할 수 있다.
다른 실시 예에 따라, 결정부 510은 상기 왕복 지연시간 RTT(t) 및 네트워크 전송률 Tput(t)을 기초로 송신 버퍼의 차단/개방을 제어할 수 있다. 결정부 510은 송신 버퍼의 차단/개방을 제어하기 위해 함수 f(RTT(t), Tput(t))를 결정할 수 있다. 상기 f(RTT(t), Tput(t))는 왕복 지연시간 RTT(t) 및 네트워크 전송률 Tput(t)을 독립변수로 한다. 예를 들어, 네트워크 상태에 따라 왕복 지연 시간 RTT(t)가 비교적 큰 경우 f(RTT(t), Tput(t))는 작은 값이 되고, RTT(t)가 비교적 작은 경우 f(RTT(t), Tput(t))는 큰 값이 될 수 있다. 이는 RTT(t)가 큰 경우 네트워크에서 패킷 전송이 원활하지 않음을 나타내기 때문이다. 다른 예로, 네트워크 상태에 따라 네트워크 전송률 Tput(t)이 비교적 큰 경우, f(RTT(t), Tput(t))는 큰 값이 되고, Tput(t)이 비교적 작은 경우, f(RTT(t), Tput(t))는 작은 값이 될 수 있다. 이는 Tput(t)가 큰 경우, 네트워크에서 패킷 전송이 원활함을 나타내기 때문이다.
결정부 510은 W(t)-K(t) 및 f(RTT(t), Tput(t))을 비교하여 송신 버퍼의 차단/개방을 제어할 수 있다. 결정부 510은 수학식 2를 이용하여 송신 버퍼의 차단/개방을 제어할 수 있다. 예를 들어 W(t)-K(t) 값이 f(RTT(t), Tput(t)) 값보다 작은 경우, 결정부 510은 송신 버퍼의 개방을 결정할 수 있다. 반대로 W(t)-K(t) 값이 f(RTT(t), Tput(t)) 값보다 작은 크거나 같은 경우 결정부 510은 송신 버퍼의 차단을 결정할 수 있다.
도 6은 일 실시 예에 따른 송신단의 동작 흐름을 나타낸다. 도 6의 송신단은 도 2의 송신단 210에 대응된다.
도 6을 참조하면, 송신단 210은 601 단계에서 TCP 소켓의 송신 버퍼로 전달되는 패킷의 양 W를 결정할 수 있다. 송신단 210은 어플리케이션 계층에서 생성된 패킷이, 수신단 250으로 송신되기 위한 목적으로, TCP 소켓의 송신 버퍼로 전달되는 양 W를 결정할 수 있다. 상기 W는 시간 함수 W(t)로 표현될 수 있다. 즉, 송신단 210은 시간 t까지의 송신 버퍼로의 패킷 전달 양 W(t)를 결정할 수 있다.
송신단 210은 603 단계에서 TCP 소켓의 송신 버퍼에서 네트워크로 전달되는 패킷의 양 K를 결정할 수 있다. 상기 K는 시간 함수 K(t)로 표현될 수 있다. 즉, 송신단 210은 시간 t까지의 송신 버퍼에서 네트워크로 전달되는 패킷의 양 K(t)를 결정할 수 있다.
송신단 210은 605 단계에서 송신 버퍼의 패킷양을 제어할 수 있다. 송신단 210은 상기 W(t) 및 K(t)를 이용하여 송신 버퍼의 차단/개방을 제어할 수 있다. 예를 들어, 송신단 210은 W(t)-K(t) 값을 미리 정의된 상수 값 과 비교를 통해 송신 버퍼의 차단/개방을 제어할 수 있다. 구체적인 동작 방법은 도 5에서 설명된 것과 같다. 다른 예로 송신단 210은 왕복 지연시간 RTT(t) 및 네트워크 전송률 Tput(t)을 독립변수로 하는 f(RTT(t), Tput(t))를 정의하고, 상기 함수를 W(t)-K(t) 값과 비교하여 송신 버퍼의 차단/개방을 제어할 수 있다. 구체적인 동작 방법은 도 5에서 설명된 것과 같다.
도 7은 일 실시 예에 따른 송신단의 다른 동작 흐름을 도시한다. 도 7의 송신단은 도 2의 송신단 210에 대응된다.
도 7에서 송신 버퍼로 전달되는 패킷 양 W를 결정하는 단계 701 및 송신 버퍼에서 전달된 패킷 양 K를 결정하는 단계 703은 도 6의 601 및 603 단계와 동일하다. 따라서 구체적인 설명은 생략한다.
송신단 210은 705 단계에서 W(t)-K(t) 값이 f(RTT(t), Tput(t)) 값보다 더 작은지 여부를 결정한다. 구체적으로 송신단 210은 701 단계에서 결정된 W(t)와 703 단계에서 결정된 K(t)를 이용하여 W(t)-K(t) 값을 결정할 수 있다. 그리고 송신단 210은 왕복 지연시간 RTT(t) 및 네트워크 전송률 Tput(t)을 독립변수로 하는 f(RTT(t), Tput(t))를 결정할 수 있다. 결과적으로 송신단 210은 W(t)-K(t) 값이 f(RTT(t), Tput(t)) 값보다 더 작은지 여부를 결정할 수 있다.
705 단계에서 W(t)-K(t) 값이 f(RTT(t), Tput(t)) 값보다 더 작다고 결정된 경우, 송신단 210은 707 단계에서 TCP 소켓의 송신 버퍼의 개방을 결정할 수 있다.
반대로 W(t)-K(t) 값이 f(RTT(t), Tput(t)) 값보다 더 크거나 같다고 결정된 경우, 송신단 210은 709 단계에서 송신 버퍼의 차단을 결정할 수 있다.
저장 장치 및 저장 미디어는, 실행될 때 일 실시 예들을 구현하는 명령어들을 포함하는 그로그램 또는 프로그램들을 저장하기에 적절한 기계-판독 가능 저장 수단의 실시 예들이다. 실시 예들은 본 명세서의 청구항들 중 어느 하나에 청구된 바와 같은 장치 또는 방법을 구현하기 위한 코드를 포함하는 프로그램, 및 그러한 프로그램을 저장하는 기계-판독 가능 저장 매체를 제공한다. 나아가, 그러한 프로그램들은 유선 또는 무선 연결을 통해 전달되는 통신 신호와 같은 어떠한 매체에 의해 전자적으로 전달될 수 있으며, 실시 예들은 동등한 것을 적절히 포함한다.
본 개시의 청구항 또는 명세서에 기재된 실시 예들에 따른 방법들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될(implemented) 수 있다.
소프트웨어로 구현하는 경우, 하나 이상의 프로그램(소프트웨어 모듈)을 저장하는 컴퓨터 판독 가능 저장 매체가 제공될 수 있다. 컴퓨터 판독 가능 저장 매체에 저장되는 하나 이상의 프로그램은, 전자 장치(device) 내의 하나 이상의 프로세서에 의해 실행 가능하도록 구성된다(configured for execution). 하나 이상의 프로그램은, 전자 장치로 하여금 본 개시의 청구항 또는 명세서에 기재된 실시 예들에 따른 방법들을 실행하게 하는 명령어(instructions)를 포함한다.
이러한 프로그램(소프트웨어 모듈, 소프트웨어)은 랜덤 액세스 메모리 (random access memory), 플래시(flash) 메모리를 포함하는 불휘발성(non-volatile) 메모리, 롬(ROM: Read Only Memory), 전기적 삭제가능 프로그램가능 롬(EEPROM: Electrically Erasable Programmable Read Only Memory), 자기 디스크 저장 장치(magnetic disc storage device), 컴팩트 디스크 롬(CD-ROM: Compact Disc-ROM), 디지털 다목적 디스크(DVDs: Digital Versatile Discs) 또는 다른 형태의 광학 저장 장치, 마그네틱 카세트(magnetic cassette)에 저장될 수 있다. 또는, 이들의 일부 또는 전부의 조합으로 구성된 메모리에 저장될 수 있다. 또한, 각각의 구성 메모리는 다수 개 포함될 수도 있다.
또한, 상기 프로그램은 인터넷(Internet), 인트라넷(Intranet), LAN(Local Area Network), WLAN(Wide LAN), 또는 SAN(Storage Area Network)과 같은 통신 네트워크, 또는 이들의 조합으로 구성된 통신 네트워크를 통하여 접근(access)할 수 있는 부착 가능한(attachable) 저장 장치(storage device)에 저장될 수 있다. 이러한 저장 장치는 외부 포트를 통하여 본 개시의 실시 예를 수행하는 장치에 접속할 수 있다. 또한, 통신 네트워크상의 별도의 저장장치가 본 개시의 실시 예를 수행하는 장치에 접속할 수도 있다.
상술한 본 개시의 구체적인 실시 예들에서, 개시에 포함되는 구성 요소는 제시된 구체적인 실시 예에 따라 단수 또는 복수로 표현되었다. 그러나, 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 본 개시가 단수 또는 복수의 구성 요소에 제한되는 것은 아니며, 복수로 표현된 구성 요소라 하더라도 단수로 구성되거나, 단수로 표현된 구성 요소라 하더라도 복수로 구성될 수 있다.
한편 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (15)

  1. 송신 장치의 동작 방법에 있어서,
    응용 계층으로부터 TCP(transmission control protocol)의 버퍼에게 전달되는 패킷의 양에 기반하여 제1 값을 식별하는 단계;
    상기 버퍼로부터 전송 계층에게 전달되는 패킷의 양에 기반하여 게2 값을 식별하는 단계;
    상기 제1 값과 제2 값의 차이 값에 기반하여 제3 값을 식별하는 단계;
    상기 제3 값에 기반하여, 수신 장치로부터 ACK(acknowledge) 메시지를 수신하기 전까지 상기 버퍼에 저장된 총 패킷들의 양을 결정하는 단계;
    상기 제3 값이, 왕복 지연 시간(round trip time, RTT) 및 네트워크 전송률(throughput)을 포함하는 독립 변수들에 기반하여 결정되는 임계 값보다 크거나 같은 지 여부를 결정하는 단계;
    상기 제3 값이 상기 임계 값보다 크거나 같은 경우, 상기 응용 계층으로부터 버퍼에게 전달되는 패킷을 차단(blocking)하는 단계;
    상기 제3 값이 상기 임계 값보다 작은 경우, 상기 응용 계층으로부터 버퍼에게 전달되는 패킷을 개방하는 단계; 및
    상기 ACK 메시지를 수신한 경우, 상기 버퍼로부터, 상기 총 패킷들 중 상기 ACK 메시지와 관련된 적어도 하나의 패킷을 삭제하는 단계를 포함하는 방법.
  2. 삭제
  3. 삭제
  4. 청구항 1에 있어서,
    상기 임계 값은 상기 왕복 지연 시간(round trip time)의 값과 비례하는 방법.
  5. 청구항 1에 있어서,
    상기 임계 값은 상기 네트워크 전송률(throughput)의 값과 반비례하는 방법.
  6. 청구항 1에 있어서,
    상기 왕복 지연 시간(round trip time) 및 상기 네트워크 전송률(throughput)은 상기 송신 장치와 상기 수신 장치 사이의 네트워크 전송에 기반하여 결정되는 방법.
  7. 삭제
  8. 삭제
  9. 송신 장치에 있어서,
    패킷을 일시적으로 저장하기 위한 버퍼(buffer); 및
    적어도 하나의 프로세서(processor)를 포함하고,
    상기 적어도 하나의 프로세서는,
    응용 계층으로부터 TCP(transmission control protocol)의 상기 버퍼에게 전달되는 패킷의 양에 기반하여 제1 값을 식별하고,
    상기 버퍼로부터 전송 계층에게 전달되는 패킷 양에 기반하여 제2 값을 식별하고,
    상기 제1 값과 제2 값의 차이 값에 기반하여 제3 값을 식별하고,
    상기 제3 값에 기반하여, 수신 장치로부터 ACK(acknowledge) 메시지를 수신하기 전까지 상기 버퍼에 저장된 총 패킷들의 양을 결정하고,
    상기 제3 값이, 왕복 지연 시간(round trip time, RTT) 및 네트워크 전송률(throughput)을 포함하는 독립 변수들에 기반하여 결정되는 임계 값보다 크거나 같은 지 여부를 결정하고,
    상기 제3 값이 상기 임계 값보다 크거나 같은 경우, 상기 응용 계층으로부터 버퍼에게 전달되는 패킷을 차단(blocking)하고,
    상기 제3 값이 상기 임계 값보다 작은 경우, 상기 응용 계층으로부터 버퍼에게 전달되는 패킷을 개방하고, 및
    상기 ACK 메시지를 수신한 경우, 상기 버퍼로부터, 상기 총 패킷들 중 상기 ACK 메시지와 관련된 적어도 하나의 패킷을 삭제하도록 구성되는 장치.
  10. 삭제
  11. 삭제
  12. 청구항 9에 있어서,
    상기 임계 값은 상기 왕복 지연 시간(round trip time)의 값과 비례하는 장치.
  13. 청구항 9에 있어서,
    상기 임계 값은 상기 네트워크 전송률(throughput)의 값과 반비례하는 장치.
  14. 청구항 9에 있어서,
    상기 왕복 지연 시간(round trip time) 및 상기 네트워크 전송률(throughput)은 상기 송신 장치와 상기 수신 장치 사이의 네트워크 전송에 기반하여 결정되는 장치.

  15. 삭제
KR1020160054688A 2016-05-03 2016-05-03 무선 통신 시스템에서 패킷을 송신하기 위한 장치 및 방법 KR102560594B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160054688A KR102560594B1 (ko) 2016-05-03 2016-05-03 무선 통신 시스템에서 패킷을 송신하기 위한 장치 및 방법
US15/586,150 US20170324672A1 (en) 2016-05-03 2017-05-03 Device and method for transmitting packet in wireless communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160054688A KR102560594B1 (ko) 2016-05-03 2016-05-03 무선 통신 시스템에서 패킷을 송신하기 위한 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20170124813A KR20170124813A (ko) 2017-11-13
KR102560594B1 true KR102560594B1 (ko) 2023-07-27

Family

ID=60243719

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160054688A KR102560594B1 (ko) 2016-05-03 2016-05-03 무선 통신 시스템에서 패킷을 송신하기 위한 장치 및 방법

Country Status (2)

Country Link
US (1) US20170324672A1 (ko)
KR (1) KR102560594B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11070654B2 (en) * 2019-10-03 2021-07-20 EMC IP Holding Company LLC Sockets for shared link applications

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3413788B2 (ja) * 1997-09-25 2003-06-09 日本電信電話株式会社 層間のフロー制御を行う通信プロトコルを持つ通信方法およびデータ通信端末
US7380006B2 (en) * 2000-12-14 2008-05-27 Microsoft Corporation Method for automatic tuning of TCP receive window based on a determined bandwidth
EP1249972A1 (en) * 2001-04-09 2002-10-16 Telefonaktiebolaget L M Ericsson (Publ) Method of controlling a queue buffer
JP2002325093A (ja) * 2001-04-26 2002-11-08 Fujitsu Ltd 帯域制御方法及び装置、並びに帯域制御システム
US6829662B2 (en) * 2001-06-27 2004-12-07 International Business Machines Corporation Dynamically optimizing the tuning of sockets across indeterminate environments
US8423643B2 (en) * 2003-11-19 2013-04-16 International Business Machines Corporation Autonomic assignment of communication buffers by aggregating system profiles
JP4446166B2 (ja) * 2004-10-14 2010-04-07 ソニー株式会社 送信装置および方法、記録媒体、プログラム、並びに制御装置
US7630307B1 (en) * 2005-08-18 2009-12-08 At&T Intellectual Property Ii, Lp Arrangement for minimizing data overflow by managing data buffer occupancy, especially suitable for fibre channel environments
US9344533B2 (en) * 2012-10-23 2016-05-17 Microsoft Technology Licensing, Llc Receive window auto-tuning
US8787163B1 (en) * 2010-02-24 2014-07-22 Marvell International Ltd. Method and apparatus for adjusting the size of a buffer in a network node based on latency
US8687491B2 (en) * 2011-04-05 2014-04-01 Vss Monitoring, Inc. Systems, apparatus, and methods for managing an overflow of data packets received by a switch
US8976661B2 (en) * 2012-01-11 2015-03-10 Nec Laboratories America, Inc. Network self-protection
US9185045B1 (en) * 2015-05-01 2015-11-10 Ubitus, Inc. Transport protocol for interactive real-time media

Also Published As

Publication number Publication date
KR20170124813A (ko) 2017-11-13
US20170324672A1 (en) 2017-11-09

Similar Documents

Publication Publication Date Title
KR102372453B1 (ko) 구성 가능한 빔 장애 이벤트 설계
RU2658586C2 (ru) Pdcp и управление потоком для разделенного однонаправленного канала
US10602400B2 (en) Enhancement of PDCP status report
KR102500134B1 (ko) 무선 통신 시스템에서 패킷 데이터 정보를 송수신하기 위한 장치 및 방법
JP2017526302A (ja) 無線ネットワーク内の多重接続性
CN105934980A (zh) 用于双连接的上行链路传输
JP2022543104A (ja) 送信パラメータの設定
WO2018019498A1 (en) Mitigation of rate matching errors in a wireless network
JP6485979B2 (ja) 送信保護
US10028155B2 (en) Buffer management for wireless networks
WO2016138937A1 (en) Connection suspend and resume requests for wireless network
CN109891782A (zh) 实现无线通信系统中的冗余分组副本的有效处理
CN108353306A (zh) 用于减少时延机制的阈值
US9974059B2 (en) Method and apparatus for control information transmission
EP3319257B1 (en) Lossless bearer reconfiguration from use of longer to shorter sequence number
KR102543360B1 (ko) 무선 통신 시스템에서 패킷을 처리하기 위한 장치 및 방법
US20240154715A1 (en) Wireless communication method and apparatus
KR102560594B1 (ko) 무선 통신 시스템에서 패킷을 송신하기 위한 장치 및 방법
WO2017016606A1 (en) Acknowledgement message with piggy-backed buffer status report for wireless network
KR20210095173A (ko) 차세대 이동통신 시스템에서 복수의 무선 전송 기법에 대한 단말 능력을 보고하는 방법 및 장치
KR102627046B1 (ko) 물리적 업링크 제어 채널 충돌을 처리하기 위한 디바이스 및 방법
CN111357223B (zh) 一种通信的方法、装置和计算机可读存储介质
WO2020128750A1 (en) Reducing uplink scheduling latency and overhead for standard packet sizes
WO2017076454A1 (en) Initiating measuring, reporting and/or use of secondary path delay to allocate packets or bearers among primary path and secondary path in wireless network
WO2017034520A1 (en) Extent of out-of-sequence indication for multi-connectivity

Legal Events

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