KR101046105B1 - Computer program manufacturing, resource demand adjustment methods, and end systems - Google Patents

Computer program manufacturing, resource demand adjustment methods, and end systems Download PDF

Info

Publication number
KR101046105B1
KR101046105B1 KR1020040005115A KR20040005115A KR101046105B1 KR 101046105 B1 KR101046105 B1 KR 101046105B1 KR 1020040005115 A KR1020040005115 A KR 1020040005115A KR 20040005115 A KR20040005115 A KR 20040005115A KR 101046105 B1 KR101046105 B1 KR 101046105B1
Authority
KR
South Korea
Prior art keywords
resource
congestion
initial
determining
indication
Prior art date
Application number
KR1020040005115A
Other languages
Korean (ko)
Other versions
KR20040068880A (en
Inventor
피터비. 키
디난에스. 구나워데나
로렌트 마소울리에
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20040068880A publication Critical patent/KR20040068880A/en
Application granted granted Critical
Publication of KR101046105B1 publication Critical patent/KR101046105B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • 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/12Avoiding congestion; Recovering from congestion
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time traffic
    • 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/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • 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/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/31Flow control; Congestion control by tagging of packets, e.g. using discard eligibility [DE] bits

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Real time communications over a network are adjusted to improve the quality of service (QoS) under incipient congestion conditions. The system detects incipient network congestion and feeds back information regarding the incipient congestion back to the transmitter. Based on this information, the transmission rate is altered appropriately using a control algorithm, which computes the altered transmission rate based on a weight parameter, a gain parameter, and information from a congestion report. The altered transmission rate improves the transmitter's use of the available bandwidth to maintain an acceptable QoS at the receiver.

Description

컴퓨터 프로그램 제조품, 리소스 요구 조정 방법 및 엔드 시스템{REACTIVE BANDWIDTH CONTROL FOR STREAMING DATA}Computer program products, resource needs adjustment methods, and end systems {REACTIVE BANDWIDTH CONTROL FOR STREAMING DATA}

도 1은 본 발명의 실시예에 있어서 예시적인 엔드 투 엔드 시스템(end to end system)을 도시하는 도면.1 illustrates an exemplary end to end system in an embodiment of the invention.

도 2는 본 발명의 실시예에 있어서 예시적인 엔드 시스템을 도시하는 도면.2 illustrates an exemplary end system in an embodiment of the invention.

도 3은 본 발명의 실시예에 있어서 예시적인 중간 장치를 도시하는 도면.3 illustrates an exemplary intermediate apparatus in an embodiment of the invention.

도 4는 본 발명의 실시예에 있어서 각종 장치들 사이의 메시징 및 동작들을 도시하는 도면.4 illustrates messaging and operations between various devices in an embodiment of the invention.

도 5는 본 발명의 실시예에 있어서 데이터 스트리밍 환경의 리액티브 대역폭 제어에 대한 동작을 도시하는 도면.FIG. 5 illustrates operation for reactive bandwidth control in a data streaming environment in an embodiment of the invention. FIG.

도 6은 본 발명의 실시예에 있어서 이득 파라미터를 설정하는 동작들을 도시하는 도면.6 illustrates operations for setting a gain parameter in an embodiment of the present invention.

도 7은 본 발명의 실시예에 있어서 전송 레이트를 갱신하는 동작들을 도시하는 도면.7 illustrates operations for updating a transmission rate in an embodiment of the present invention.

도 8은 본 발명의 실시예를 구현하기 위해 사용되는 예시적인 시스템을 도시하는 도면.8 illustrates an exemplary system used to implement an embodiment of the present invention.

〈도면의 주요 부분에 대한 부호의 설명〉 Description of the Related Art                 

21 : 프로세싱 유닛21: processing unit

32 : 하드 디스크 드라이브 인터페이스32: hard disk drive interface

53 : 네트워크 인터페이스53: network interface

51 : LAN51: LAN

54 : WAN54: WAN

본 발명은 일반적으로 네트워크 통신에 관한 것으로, 특히 네트워크 통신시 대역폭 사용의 제어에 관한 것이다.FIELD OF THE INVENTION The present invention generally relates to network communications, and more particularly to control of bandwidth usage in network communications.

스트리밍 비디오 및 오디오 플레이어 등의 많은 최근의 멀티미디어 어플리케이션들은 원래 부착형 로컬 저장 장치(예를 들면 CD 또는 하드 디스크)로부터 또는 고품질의 낮은 레이턴시 네트워크(예를 들면, 경미하게 부하가 걸린 근거리 통신망 즉 LAN)를 통해 동작하도록 고안되었다. 그러나, WAN 등의 보다 낮은 품질의 네트워크를 통해 실행되는 경우, 네트워크 혼잡으로부터 발생하는 패킷 소실 및 레이턴시는 종종 열악한 QoS(Quality of Service)로 설명되는 열악한 사용자 경험을 제공할만큼 충분히 멀티미디어 어플리케이션의 실시간 동작을 종종 손상시킨다. 예를 들면, 비디오 프레임이 소실될 수 있고, 또는 비디오 및 오디오 동기화가 변질될 수 있어, 멀티미디어 성능의 질이 저하된다.Many modern multimedia applications, such as streaming video and audio players, are originally from attached local storage devices (e.g. CDs or hard disks) or high quality low latency networks (e.g., lightly loaded local area networks or LANs). It is designed to work through. However, when running over a lower quality network, such as a WAN, packet loss and latency resulting from network congestion is sufficient to provide real-time operation of multimedia applications to provide a poor user experience, often described as poor quality of service (QoS). Often damages. For example, video frames may be lost, or video and audio synchronization may be compromised, resulting in poor quality of multimedia performance.

이 문제를 처리하기 위해, 몇몇 현재의 멀티미디어 어플리케이션은 네트워크 조건에 따라 그 전송 레이트를 바꾸도록 개발되었다. 하나의 접근법은 소실된 패킷의 검출에 응답하여 전송 레이트를 변경한다. 특히, 스트리밍 멀티미디어와 같은 실시간 어플리케이션에 대해서는, RTP(Real Time Protocol)가 QoS를 모니터하고 소실된 패킷 검출에 기초하여 참가 정보를 전송하기 위해 관련 RTCP(Real Time Control Protocol)로 특정된다. 다른 접근법은 데이터 소실을 피하거나 최소화하기 위해 네트워킹 장치에서 버퍼링되는 패킷의 수를 증가시킨다. 이들 향상된 버퍼링 방식에는 포워드 에러 정정도 사용될 수 있다. 또 다른 접근법은 "보틀넥(bottlenect)" 링크의 예상된 대역폭을 추정하고 이에 따라 전송 레이트를 통계적으로 설정하고자 한다.To address this problem, some current multimedia applications have been developed to change their transmission rate according to network conditions. One approach is to change the transmission rate in response to the detection of lost packets. In particular, for real-time applications such as streaming multimedia, the Real Time Protocol (RTP) is specified with the associated Real Time Control Protocol (RTCP) to monitor QoS and send participation information based on lost packet detection. Another approach increases the number of packets buffered at the networking device to avoid or minimize data loss. Forward error correction may also be used in these enhanced buffering schemes. Another approach is to estimate the expected bandwidth of a "bottlenect" link and to statistically set the transmission rate accordingly.

그러나, 이들 현존하는 접근법들은 불충분하다, 제1 접근법은 소실된 패킷의 검출에 달려 있기 때문에, 문제를 해결하기 위한 시도는 사용자가 초기의 패킷 소실을 경험하지 않도록 방지하기에 너무 늦다. 버퍼링을 증가시키는 제2 접근법은 데이터 소실을 많은 송신 큐에 의해 도입되는 증가된 레이턴시로 대체한다. 또한, 제2 접근법은 시청각 이동 전화 또는 시계 등의 제한된 버퍼 메모리를 갖는 장치에 대해 문제가 된다. 제3 접근법은 보틀넥에서 가용 대역폭을 공유하는 다수의 어플리케이션에 의해 도입된 동적 혼잡의 변화 또는 본래의 가변 대역폭 보틀넥(예를 들면 무선 링크)을 처리하지 못한다.However, these existing approaches are insufficient, since the first approach depends on the detection of lost packets, the attempt to solve the problem is too late to prevent the user from experiencing initial packet loss. The second approach to increasing buffering replaces data loss with increased latency introduced by many transmit queues. The second approach is also problematic for devices with limited buffer memory, such as audiovisual mobile phones or watches. The third approach does not deal with changes in dynamic congestion or inherent variable bandwidth bottlenecks (e.g. wireless links) introduced by multiple applications that share available bandwidth in the bottleneck.

또한, 현존하는 접근법은 특히 멀티미디오 어플리케이션에서 흔하게 사용되고 있는 실시간 통신에 대한 초기 혼잡에 응답하는 리액티브 대역폭 제어를 처리하 지 못한다.In addition, existing approaches do not address reactive bandwidth control in response to initial congestion for real-time communications, which is commonly used especially in multimedia applications.

본 발명의 실시예들은 탄력적인 지연 감지형 멀티미디어(elastic - delay - sensitive - multimedia)에 적합한 피드백을 사용하여 가용 네트워크 대역폭의 가중된 페어 공유(fair-share)를 트래킹함으로써 상기 문제를 해결한다. 시스템은 초기 네트워크 혼잡을 검출하고, 정보를 송신기로 피드백함으로써 송신기가 네트워크에서 초기 혼잡에 적응가능하도록 한다. 초기 혼잡은 아직 발생되지 않은(예를 들면 아직 패킷이 소실되거나 또는 레이턴시가 수용 불가능하게 되지 않은) 혼잡에 관한 것이다. 이 정보에 기초하여 송신 레이트가 적절하게 변경된다. 제어 알고리즘은 가중 파라미터, 이득 파라미터, 및 혼잡 레포트로부터의 정보에 기초하여 변경된 송신 레이트를 산출한다. 변경된 송신 레이트는 수신기에서 수용 가능한 QoS를 유지하도록 가용 대역폭에 대한 송신기의 사용을 개선시킨다.Embodiments of the present invention solve this problem by tracking the weighted pair-share of available network bandwidth using feedback suitable for elastic-delay-sensitive-multimedia. The system detects initial network congestion and feeds information back to the transmitter to make the transmitter adaptable to initial congestion in the network. Initial congestion relates to congestion that has not yet occurred (e.g., no packets are yet lost or latency is not acceptable). Based on this information, the transmission rate is appropriately changed. The control algorithm calculates the changed transmission rate based on the weight parameter, the gain parameter, and the information from the congestion report. The altered transmission rate improves the use of the transmitter for the available bandwidth to maintain acceptable QoS at the receiver.

본 발명의 구현시, 제조물은 컴퓨터 프로그램 제품으로서 제공된다. 컴퓨터 프로그램 제품의 일 실시예는 컴퓨터 시스템에 의해 판독가능한 컴퓨터 프로그램 저장 매체를 제공하며, 중간 장치에 의해 검출된 초기 리소스 혼잡의 표시에 기초하여 리소스 소비자에 의한 가용 리소스에 대한 리소스 요구를 조정하는 컴퓨터 프로그램을 인코딩한다. 컴퓨터 프로그램 제품의 또 다른 실시예는 컴퓨팅 시스템에 의해 캐리어 웨이브로 구현되는 컴퓨터 데이터 신호에 제공될 수 있으며, 중간 장치에 의해 검출된 초기 리소스 혼잡의 표시에 기초하여 리소스 소비자에 의한 가용 리소스에 대한 리소스 요구를 조정하는 컴퓨터 프로그램을 인코딩한다. In the implementation of the invention, the article of manufacture is provided as a computer program product. One embodiment of a computer program product provides a computer program storage medium readable by a computer system, the computer adjusting a resource request for available resources by a resource consumer based on an indication of an initial resource congestion detected by an intermediate apparatus. Encode the program. Another embodiment of a computer program product may be provided in a computer data signal implemented in a carrier wave by a computing system, the resource for available resources by a resource consumer based on an indication of an initial resource congestion detected by an intermediate device. Encode a computer program to handle the needs.                     

컴퓨터 프로그램 제품은 중간 장치에 의해 검출된 초기 리소스 혼잡의 표시에 기초하여 리소스 소비자에 의한 가용 리소스에 대한 리소스 요구를 조정하는 컴퓨터 프로세스를, 컴퓨터 시스템 상에서 실행하기 위해 컴퓨터 프로그램을 인코딩한다. 리소스 소비자와 관련된 가용 리소스의 페어 공유에 관한 가중 파라미터가 결정된다. 초기 리소스 혼잡의 표시가 수신된다. 초기 리소스 혼잡의 표시에 기초하여, 중간 장치를 통해 리소스 소비자에 의한 리소스 요구시 조정의 크기에 대한 이득 파라미터가 결정된다. 리소스 소비자에 의한 가용 리소스의 사용을 조정하기 위해 가중 파라미터 및 이득 파라미터에 기초하여 새로운 리소스 요구가 산출된다.The computer program product encodes a computer program to execute on a computer system a computer process that adjusts resource requirements for available resources by a resource consumer based on an indication of initial resource congestion detected by the intermediate apparatus. Weighting parameters regarding pair sharing of available resources associated with a resource consumer are determined. An indication of initial resource congestion is received. Based on the indication of the initial resource congestion, a gain parameter for the amount of coordination upon resource demand by the resource consumer via the intermediate apparatus is determined. New resource requirements are calculated based on weighting parameters and gain parameters to coordinate the use of available resources by resource consumers.

또 다른 실시예에서, 중간 장치에 의해 검출된 초기 리소스 혼잡의 표시에 기초하여 리소스 소비자에 의한 가용 리소스에 대한 리소스 요구를 조정하는 방법이 제공된다. 리소스 소비자와 관련된 가용 리소스의 페어 공유에 관한 가중 파라미터가 결정된다. 초기 리소스 혼잡의 표시가 수신된다. 초기 리소스 혼잡의 표시에 기초하여, 중간 장치를 통해 리소스 소비자에 의한 리소스 요구시 조정의 크기에 대한 이득 파라미터가 결정된다. 리소스 소비자에 의한 가용 리소스의 사용을 조정하기 위해 가중 파라미터 및 이득 파라미터에 기초하여 새로운 리소스 요구가 산출된다.In yet another embodiment, a method is provided for adjusting resource demand for available resources by a resource consumer based on an indication of initial resource congestion detected by an intermediate device. Weighting parameters regarding pair sharing of available resources associated with a resource consumer are determined. An indication of initial resource congestion is received. Based on the indication of the initial resource congestion, a gain parameter for the amount of coordination upon resource demand by the resource consumer via the intermediate apparatus is determined. New resource requirements are calculated based on weighting parameters and gain parameters to coordinate the use of available resources by resource consumers.

또 다른 실시예에서, 하나의 방법은 초기 리소스 혼잡의 표시를 네트워크의 송신기에 제공한다. 초기 리소스 혼잡의 표시는 네트워크의 중간 장치에 의해 제공된 ECN(Explicit Congestion Notification) 마킹 정보에 기초한다. 중간장치로 부터 수신된 ECN 마킹 정보는 트래킹된다. 트래킹 동작에 응답하여, 초기 리소스 혼잡을 나타내는 혼잡 레포트를 생성하도록 ECN 마킹 정보가 디코딩된다. 혼잡 레포트는 송신기에 전달된다.In another embodiment, one method provides an indication of initial resource congestion to a transmitter of a network. The indication of initial resource congestion is based on explicit congestion notification (ECN) marking information provided by intermediate devices in the network. ECN marking information received from the intermediate device is tracked. In response to the tracking operation, the ECN marking information is decoded to generate a congestion report indicating initial resource congestion. Congestion reports are sent to the transmitter.

또 다른 컴퓨터 프로그램 제품 실시예는 초기 리소스 혼잡의 표시를 네트워크의 송신기에 제공한다. 초기 리소스 혼잡의 표시는 네트워크의 중간 장치에 의해 제공된 ECN 마킹 정보에 기초한다. 중간장치로부터 수신된 ECN 마킹 정보는 트래킹된다. 트래킹 동작에 응답하여, 초기 리소스 혼잡을 나타내는 혼잡 레포트를 생성하도록 ECN 마킹 정보가 디코딩된다. 혼잡 레포트는 송신기에 전달된다.Another computer program product embodiment provides an indication of initial resource congestion to a transmitter of a network. The indication of initial resource congestion is based on the ECN marking information provided by the intermediate device of the network. ECN marking information received from the intermediate device is tracked. In response to the tracking operation, the ECN marking information is decoded to generate a congestion report indicating initial resource congestion. Congestion reports are sent to the transmitter.

또 다른 실시예에서, 엔드 시스템은 중간 장치에 의해 검출된 초기 리소스 혼잡의 표시에 기초하여 리소스 소비자에 의한 가용 리소스에 대한 리소스 요구를 조정하기 위해 리액티브 대역폭 제어를 제공한다. 네트워크 전송층 모듈은 초기 리소스 혼잡의 표시를 수신한다. WTP 모듈은 리소스 소비자와 관련된 가용 리소스의 페어 공유에 관한 가중 파라미터를 결정한다. WTP 모듈은 또한 초기 리소스 혼잡의 표시에 기초하여, 중간 장치를 통해 리소스 소비자에 의한 리소스 요구시 조정의 크기에 관한 이득 파라미터를 결정한다. 또한, WTP 모듈은 리소스 소비자에 의한 가용 리소스의 사용을 조정하기 위해 가중 파라미터 및 이득 파라미터에 기초하여 새로운 리소스 요구를 산출한다.In another embodiment, the end system provides reactive bandwidth control to adjust the resource demand for available resources by the resource consumer based on the indication of initial resource congestion detected by the intermediate apparatus. The network transport layer module receives an indication of initial resource congestion. The WTP module determines weighting parameters related to pair sharing of available resources associated with a resource consumer. The WTP module also determines a gain parameter regarding the amount of coordination upon resource demand by the resource consumer via the intermediate device based on the indication of the initial resource congestion. In addition, the WTP module calculates a new resource request based on weighting parameters and gain parameters to coordinate the use of available resources by the resource consumer.

또 다른 실시예에서, 엔드 시스템은 초기 리소스 혼잡의 표시를 네트워크의 송신기에 제공한다. 초기 리소스 혼잡의 표시는 네트워크의 중간 장치에 의해 제공된 ECN 마킹 정보에 기초한다. 마크 피드백 코덱은 초기 리소스 혼잡을 나타내 는 혼잡 레포트를 생성하도록 ECN 마킹 정보를 디코딩한다. 마크 트래킹 모듈은 중간장치로부터 수신된 ECN 마킹 정보를 트래킹하여 ECN 마킹 정보를 마크 피드백 코덱으로 보낸다.In another embodiment, the end system provides an indication of initial resource congestion to the transmitter of the network. The indication of initial resource congestion is based on the ECN marking information provided by the intermediate device of the network. The mark feedback codec decodes the ECN marking information to produce a congestion report that indicates initial resource congestion. The mark tracking module tracks the ECN marking information received from the intermediate apparatus and sends the ECN marking information to the mark feedback codec.

본 발명을 특징지우는 상기 및 각종 다른 특징 뿐만 아니라 다른 이점들은 다음의 상세한 설명 및 관련된 도면 설명을 이해함으로써 명백하게 될 것이다.These and various other features as well as other advantages characterizing the invention will be apparent from an understanding of the following detailed description and the accompanying drawings.

네트워크를 통한 실시간 통신은 초기 혼잡 조건 하에서 QoS를 개선하도록 조정된다. 시스템은 초기 네트워크 혼잡을 검출하고 초기 혼잡에 관한 정보를 송신기로 다시 피드백한다. 이 정보에 기초하여, 송신 레이트는 가중 파라미터, 이득 파라미터, 및 혼잡 레포트로부터의 정보에 기초하여 변경된 송신 레이트를 산출하는, 제어 알고리즘을 적절히 사용하여 변경된다. 변경된 송신 레이트는 송신기의 가용 대역폭에 대한 사용을 개선하여 수신기에서 수용가능한 QoS를 유지한다.Real-time communication over the network is coordinated to improve QoS under initial congestion conditions. The system detects initial network congestion and feeds back information about the initial congestion back to the transmitter. Based on this information, the transmission rate is changed appropriately using a control algorithm that yields a changed transmission rate based on the information from the weighting parameter, gain parameter, and congestion report. The modified transmission rate improves the use of the transmitter's available bandwidth to maintain acceptable QoS at the receiver.

리액티브 대역폭 제어는, 무선 네트워트의 송신 전력의 제어, 분산 컴퓨팅 어플리케이션에서의 프로세싱 요구의 조정, 및 저장 어프리케이션에서의 저장 요구의 조정을 포함하지만 이에 제한되지 않는 다양한 구성에 적용될 수 있음을 이해해야 한다. 일반적으로, 포괄적인 리소스 사용은 초기 리소스 혼잡(예를 들면 과부하) 표시에 응답하여 제어될 수 있다.It should be understood that reactive bandwidth control can be applied to a variety of configurations including, but not limited to, controlling the transmit power of a wireless network, adjusting processing requirements in distributed computing applications, and adjusting storage requirements in storage applications. . In general, comprehensive resource usage can be controlled in response to an initial resource congestion (eg, overload) indication.

많은 네트워크 통신은 "실시간" 또는 "비실시간" 통신으로서 범주화될 수 있다. 예를 들면, HTML(HyperText Markup Language) 문서를 포함하는 HTTP(HyperText Transfer Protocol) 응답과 같은 파일 전송은 비실시간 통신으로 생각될 수 있다. 많은 비실시간 어플리케이션에서, TCP(Transmission Control Protocol) 는 통신의 제어에 적합하다. TCP는 가장 흔한 전송층 프로토콜이며 그 기반 프로토콜로서 IP(Internet Protocol)에 기초하고 있다. 이러한 것으로서, TCP/IP는 "인터넷 프로토콜 기반의 전송 제어 프로토콜(Transmission Control Protocol over Internet Protocol)"을 의미한다. TCP는 접속 지향형이고 IP 패킷 스위치형 네트워크를 통해 신뢰성있는 통신을 제공한다. 네트워크 혼잡 또는 다른 통신 이벤트에 의해 패킷이 소실되면, TCP는 패킷 소실에 대한 정보를 검출 및 피드백하기 위한 알고리즘을 지정하여 송신기가 소실된 패킷을 의도된 수신기로 재송신할 수 있게 한다. 이러한 방식으로, TCP는 송신기와 수신기 사이의 100% 신뢰성있는 통신을 목표로 하며, 이는 파일 전송 어플리케이션에 결정적이다(예를 들면 소실된 패킷을 전달하지 못하면 변질된 파일이 수신됨).Many network communications can be categorized as "real-time" or "non-real-time" communications. For example, a file transfer, such as a HyperText Transfer Protocol (HTTP) response containing a HyperText Markup Language (HTML) document, can be thought of as non real-time communication. In many non real-time applications, Transmission Control Protocol (TCP) is suitable for controlling communications. TCP is the most common transport layer protocol and is based on IP (Internet Protocol) as its underlying protocol. As such, TCP / IP means "Transmission Control Protocol over Internet Protocol." TCP is connection-oriented and provides reliable communication over IP packet switched networks. If a packet is lost due to network congestion or other communication event, TCP may specify an algorithm for detecting and feeding back information about packet loss, allowing the transmitter to retransmit the lost packet to the intended receiver. In this way, TCP aims at 100% reliable communication between the transmitter and the receiver, which is crucial for file transfer applications (e.g., corrupted files are received if a missing packet is not delivered).

그러나, 많은 멀티미디어 어플리케이션은 실시간 스트리밍 미디어 어프리케이션이며, 적절한 데이터 패킷의 수신이 수용가능한 어플리케이션의 동작에 결정적이다. 또한, 100 % 신뢰도는 필요없다. 일반적으로 패킷의 늦은 도착 또는 재전송에 앞서 멀티미디어 어플리케이션을 지연시키는 것보다, 송신되거나 또는 실제로 지연된 패킷을 잃어버리는 것이 바람직하다. 예를 들면, 비디오 스트림의 패킷이 전송시 소실되거나 또는 매우 지연되면, 수신기가 궁극적으로 잘못된 패킷을 수신할 수 있도록 비디오 데이터를 계속 플레이하는 것보다는 이어지는 데이터를 계속 스트리밍하는 것이 더 중요하다.However, many multimedia applications are real-time streaming media applications and the receipt of appropriate data packets is critical to the operation of the application that is acceptable. Also, 100% reliability is not necessary. It is generally desirable to lose a transmitted or actually delayed packet rather than delay the multimedia application prior to late arrival or retransmission of the packet. For example, if a packet in the video stream is lost or very delayed in transmission, it is more important to continue streaming the subsequent data than to continue playing the video data so that the receiver can ultimately receive the wrong packet.

이러한 것으로서, 많은 실시간 네트워크 통신은 UDP(User Datagram Protocol)에 의존한다. UDP는 인터넷 네트워크층, 전송층, 및 세션층에 대한 통신 프로토콜이다. TCP와 같이, UDP는 IP와 함께 사용된다. 그러나, TCP와 달리, UDP는 접속되지 않으며 신뢰성있는 통신을 보장하지 않는다. 수신 어플리케이션은 필요하다면 임의의 에러를 처리하거나 신뢰성 있는 전송을 위해 검사를 하게 된다.As such, many real-time network communications rely on User Datagram Protocol (UDP). UDP is a communication protocol for the Internet network layer, transport layer, and session layer. Like TCP, UDP is used with IP. However, unlike TCP, UDP is not connected and does not guarantee reliable communication. The receiving application can handle any errors or check for reliable transmission if necessary.

도 1은 본 발명의 실시예에 있어서 예시적인 엔트 투 엔트 시스템 도면을 나타낸다. WAN(100)이 도시되지만, 본 발명의 실시예들은 LAN을 포함하는 다른 네트워크 타입에도 적용가능하다. WAN에서는, 대역폭 이용이 일반적으로 네트워크 백본(backbone)으로 갈수록 감소하며 혼잡은 거의 드물거나 없다. 일반적으로 링크의 한쪽과 다른쪽 사이에 중요한 대역폭 불균등(disparity)이 존재하는 보틀넥(bottlenecks)이 가장 흔하게 발견된다. 이 불균등에 의해 일반적으로 하부 대역폭 링크가 과부하된 경우 패킷 큐잉(queuing)이 과도하게 된다. 따라서, 보틀넷은 액세스 링크(예를 들면, LAN이 비교적 혼잡하지 않은 네트워크 세그먼트 또는 백본에 접속하는 WAN의 한 점)에 빈번히 존재한다. 예를 들면, DSL(Digital Subscriber Line) 접속 또는 공동 인트라넷으로의 소규모 공유 회선이 전형적인 보틀넥이다.1 illustrates an exemplary end-to-end system diagram in an embodiment of the invention. Although WAN 100 is shown, embodiments of the present invention are applicable to other network types, including LANs. In a WAN, bandwidth utilization generally decreases toward the network backbone, with little or no congestion. In general, bottlenecks are found most often with significant bandwidth disparity between one side and the other side of the link. This inequality generally results in excessive packet queuing when the lower bandwidth link is overloaded. Thus, bottlenets are frequently present in access links (e.g., a point in a WAN that connects to a backbone or network segment where the LAN is relatively congested). For example, a DSL (Digital Subscriber Line) connection or a small shared line to a common intranet is a typical bottleneck.

제1 엔드 시스템(101)은 네트워크(100)에 결합되며, 이는 카메라(104)로부터 서브젝트(108)의 비디오 데이터를 수신한다. 디스플레이(112)는 엔드 시스템(102)으로부터 수신된 비디오 데이터 스트림으로부터 서브젝트(110)을 표시한다. 제2 엔드 시스템(102)은 네트워크(100)에 결합되며, 이는 카메라(106)로부터 서브젝트(110)의 비디오 데이터를 수신한다. 디스플레이(114)는 엔드 시스템(101)으로부터 수신된 비디오 데이터 스트림으로부터 서브젝트(108)를 표시한다. 예시적인 엔드 시스템은 범용 컴퓨터 또는 핸드 헬드 장치일 수 있지만, 본 발명의 범위 내에서 통신 키오스크, 이동 전화기, 및 다른 특정 목적의 장치를 포함하는 다른 엔드 시스템이 고려된다. 또한, 네트워크(100)는 2 이상의 엔드 시스템을 함께 통신 링크할 수 있고, 다수의 송신용 엔드 시스템(transmitting end system) 및 수신용 엔드 시스템(receiving end system)은 주어진 통신 세션에 결합될 수 있다.The first end system 101 is coupled to the network 100, which receives video data of the subject 108 from the camera 104. Display 112 displays subject 110 from a video data stream received from end system 102. The second end system 102 is coupled to the network 100, which receives video data of the subject 110 from the camera 106. Display 114 displays subject 108 from the video data stream received from end system 101. Exemplary end systems may be general purpose computers or hand held devices, but other end systems are contemplated, including communication kiosks, mobile phones, and other specific purpose devices within the scope of the present invention. In addition, the network 100 may communicate link two or more end systems together, and multiple transmitting end systems and receiving end systems may be coupled to a given communication session.

이어지는 설명 부분은 수신용 엔드 시스템(102) 상에 서브젝트(108)를 디스플레이하기 위해 송신용 엔드 시스템(101)으로부터 나오는 비디오 데이터 스트림에 초점을 맞추고 있다. 그러나, 반대의 비디오 데이터 스트림은 엔드 시스템(102)로부터 나와서 엔드 시스템(101) 상에 서브젝트(110)를 디스플레이하며, 이는 본 발명에 따라 제어될 수 있음을 이해해야 한다. 또한, 대응하는 오디오 데이터 스트림은, 본 발명에 따라 제어될 수 있으며, 비디오 데이터 스트림에 대한 대응부로서 엔드 시스템들 사이에서 전달될 수 있다.The description that follows focuses on the video data stream coming from the transmitting end system 101 to display the subject 108 on the receiving end system 102. However, it should be understood that the opposite video data stream emerges from the end system 102 and displays the subject 110 on the end system 101, which can be controlled in accordance with the present invention. In addition, the corresponding audio data stream can be controlled according to the invention and can be passed between end systems as a counterpart to the video data stream.

2개의 엔드 시스템(101 및 102) 사이의 네트워크(100) 상에서, 적어도 하나의 라우터(116)가 초기 네트워크 혼잡을 검출하도록 동작한다. 라우터(116)는 도시된 실시예에서 혼잡을 검출하는 예시적인 중간 네트워크 장치이다. 다른 예시적인 중간 네트워크 장치는 게이트웨이, 방화벽, 및 프록시 서버를 포함할 수 있지만, 이에 제한되지 않는다. 라인(118)과 같은 부분적인 라인들은 라우터(116)도 다른 네트워크 장치를 포함하는 다른 통신 흐름으로부터 데이터를 송수신할 수 있음을 나타낸다. 모든 이러한 통신 흐름은 라우터(116)가 경험하는 혼잡에 영향을 줄 수 있다. On the network 100 between the two end systems 101 and 102, at least one router 116 operates to detect initial network congestion. Router 116 is an exemplary intermediate network device that detects congestion in the illustrated embodiment. Other exemplary intermediate network devices may include, but are not limited to, gateways, firewalls, and proxy servers. Partial lines, such as line 118, indicate that router 116 can also send and receive data from other communication flows, including other network devices. All these communication flows can affect the congestion experienced by router 116.                     

도시된 실시예에서, 라우터(116)는 ECN(Explicit Congestion Notification) 마킹을 지원하며, ECT(ECN Capable Transport) 데이터 흐름에 대한 패킷을 마킹한다. 몇몇 실시예에서, ECT 데이터 흐름은 퍼 IP 흐름(per IP flow)에 기초하여 지정된다. 따라서, 엔드 시스템(101)과 엔드 시스템(102) 사이의 ECT 데이터 흐름을 식별하기 위해, 엔드 시스템(101)과 같은 송신용 엔드 시스템과 엔드 시스템(102)과 같은 수신용 엔드 시스템 사이에는 통지 프로토콜이 존재한다. 송신용 엔드 시스템(101)은 그 송신 동작이 네트워크의 가용 대역폭(즉, 리소스)을 소비하기 때문에 "리소스 소비자(resource consumer)"라고 칭해질 수 있다.In the illustrated embodiment, the router 116 supports Explicit Congestion Notification (ECN) marking and marks packets for ECN Capable Transport (ECT) data flow. In some embodiments, the ECT data flow is specified based on per IP flow. Thus, in order to identify the ECT data flow between the end system 101 and the end system 102, a notification protocol is established between a transmitting end system such as the end system 101 and a receiving end system such as the end system 102. This exists. The transmitting end system 101 may be referred to as a "resource consumer" because its transmission operation consumes the available bandwidth (ie, resource) of the network.

멀티미디어 스트림의 송신기로서의 그 수용력에 있어서, 송신용 엔드 시스템(101)은 그것이 ECT 장치임을 표시함으로써 초기 혼잡에 반응할 수 있음을 알린다. 응답에서, 수신용 엔드 시스템(102)은 그것도 ECT 장치임을 알린다. 이와 같이 함으로써, 수신용 엔드 시스템(102)은 인입 비디오 데이터 스트리밍으로부터 검출하는 ECN 정보를 피드백하는데 동의한다. 이 동의에 의해 엔드 시스템은 비디오 데이터 스트리밍의 리액티브 대역폭 제어를 수용할 수 있다. 그 후, 송신용 엔드 시스템(101)은 ECT 플래그를 세션의 모든 인출 IP 패킷 상에 설정하고, 라우터(116)가 ECT 데이터 흐름에 대한 패킷을 마킹할 수 있음을 라우터(116)에게 알린다.In terms of its capacity as a transmitter of the multimedia stream, the transmitting end system 101 indicates that it can respond to initial congestion by indicating that it is an ECT device. In response, the receiving end system 102 indicates that it is also an ECT device. By doing so, the receiving end system 102 agrees to feed back the ECN information that it detects from the incoming video data streaming. This agreement allows the end system to accommodate reactive bandwidth control of video data streaming. The transmitting end system 101 then sets the ECT flag on all outgoing IP packets of the session and informs the router 116 that the router 116 can mark the packet for the ECT data flow.

다른 실시예에서, 송신용 엔드 시스템(101)으로부터의 모든 ECN 송신은 ECT로서 마킹된다. 이 실시예에서, 송신용 엔드 시스템(101)은 수신된 임의의 혼잡 레포트에 반응할 수 있다. 혼잡 레포트가 전혀 수신되지 않으면, 송신용 엔드 시 스템(101)은 그 부재가 혼잡의 결여 또는 ECT 수신기의 결여에 의한 것인지를 식별할 필요가 없다. 송신기의 부분에서는 거동의 변화가 요구되지 않는다.In another embodiment, all ECN transmissions from the transmitting end system 101 are marked as ECT. In this embodiment, the transmitting end system 101 may respond to any congestion reports received. If no congestion report is received, the transmitting end system 101 does not need to identify whether the absence is due to lack of congestion or lack of an ECT receiver. In the part of the transmitter no change in behavior is required.

일 실시예에서, 라우터(116)가 초기 혼잡을 검출하면, 라우터(116)는 "CE(Congestion Experienced)"를 표시하도록 ECN 플래그를 설정함으로써 IP 패킷을 마킹한다. ECN 마킹은 IP 헤더에서 2개의 예비 비트를 이용한다. 2개의 ECN 비트는 IPv6 클래스 옥테트에 대응하는 구형의 서비스 바이트에 있는 이전의 예비 필드에 있다. 이 바이트는 현재 DiffServ 필드로서 지정되며, 여기서 처음 6개의 비트는 DS(DiffServ)를 형성하며 마지막 2개의 비트는 실험적 사용을 위해 승인된다 이들 마지막 2개의 비트는 혼잡 통지를 인코드하는데 사용된다: 2개의 비트는 ECN 부정(cheating)(예를 들면, 부정은 혼잡 통지의 삭제를 포함함)에 대하여 특정 형태가 검출될 수 있게 하는 임시 능력을 부여하는 혼잡 정보용의 1 비트를 필수적으로 인코드한다. 이 실시예에서, 인코딩은 다음과 같이 정의되지만, 1비트 또는 2비트 이상을 포함하는 인코딩 방식을 포함하는 다른 특정 인코딩도 본 발명의 범위를 벗어나지는 않을 것이다: In one embodiment, when router 116 detects initial congestion, router 116 marks the IP packet by setting the ECN flag to indicate “Congestion Experienced”. ECN marking uses two reserved bits in the IP header. Two ECN bits are in the previous reserved field in the old service byte corresponding to the IPv6 class octet. This byte is currently specified as a DiffServ field, where the first six bits form a DS (DiffServ) and the last two bits are accepted for experimental use. These last two bits are used to encode congestion notification: 2 Bits essentially encode one bit for congestion information that provides a temporary capability for certain forms to be detected for ECN cheating (e.g., negation includes deletion of congestion notification). . In this embodiment, the encoding is defined as follows, but other specific encodings, including encoding schemes that include more than one bit or two bits, will not be beyond the scope of the present invention:

1. 송신용 엔드 시스템(101)은 전송이 ECN 가능하지 않음을 나타내기 위해 ECN 비트를 (00)으로 설정한다.1. The transmitting end system 101 sets the ECN bit to (00) to indicate that the transmission is not ECN capable.

2. 송신용 엔드 시스템(101)은 전송이 ECN 가능함을 나타내기 위해 ECN 비트를 (01) 또는 (10)으로 설정한다 - "ECT 플래그 설정". 엔드 시스템은 특정 비트 (01) 또는 (10)의 선택을 위해 특정 전략을 호출할 수 있다. 예를 들면:2. The transmitting end system 101 sets the ECN bit to (01) or (10) to indicate that the transmission is ECN capable-set "ECT flag". The end system may invoke a particular strategy for the selection of a particular bit (01) or (10). For example:

a. (0,1)에 대하여 다른 사용을 허용하도록 (1,0)을 항상 선택하라 a. Always select (1,0) to allow other uses for (0,1)                     

b. 유사 랜덤 알고리즘을 호출함으로써 (1,0)과 (0,1) 사이에서 무작위적으로 선택하여 불가능(non-capability)을 생성.b. Create a non-capability by randomly choosing between (1,0) and (0,1) by calling a pseudo-random algorithm.

3. 라우터(116)는 초기 혼잡의 검출을 표시하기 위해 ECN 비트를 (11)로 설정한다.3. Router 116 sets the ECN bit to 11 to indicate detection of initial congestion.

패킷이 라우터(116)의 출력 큐에 도달하면, 라우터(116)는 현재의 혼잡 상태에 기초하여 3개의 잠재적인 포워딩 액션중 하나를 수행하도록 결정한다:When a packet reaches the output queue of router 116, router 116 decides to perform one of three potential forwarding actions based on the current congestion condition:

1. 변경되지 않은 패킷을 포워드1. Forward unchanged packets

2. ECN 비트가 (11)로 변경된 패킷을 포워드2. Forward the packet with the ECN bit changed to (11).

3. 패킷을 드롭시킴3. Drop the packet

라우터(116)가 혼잡 표시 임계값을 위반하면, 라우터(116)는 초기 네트워크 혼잡을 검출한 것으로 간주된다. 이 CE 조건이 존재하면, 라우터(116)는 IP 패킷을 "마킹"하여 그 목적지를 향하여 각 패킷을 포워딩하기 전에 CE 조건을 표시한다. 예시적인 ECN 가능 라우터는 Cisco IOS 릴리즈 12.2.8(4) 또는 그 이상을 포함한다.If router 116 violates the congestion indication threshold, router 116 is considered to have detected initial network congestion. If this CE condition exists, router 116 "marks" the IP packet and indicates the CE condition before forwarding each packet towards its destination. Exemplary ECN capable routers include Cisco IOS Release 12.2.8 (4) or later.

검출 및 마킹의 구현은 RED(Random Early Detection)와 같은 각종 AQM(Active Queue Mamagement), 또는 가상 큐(Virtual Queue)를 포함하지만 제한되지 않는 각종 기술을 포함할 수 있다.Implementations of detection and marking may include various technologies, including but not limited to various Active Queue MAMagements (AQMs), such as Random Early Detection (RED), or Virtual Queues.

마킹된 패킷을 수신하는 경우, 수신용 엔드 시스템(102)은 송신용 엔드 시스템(101)에 주기적으로 피드백을 송신하여 혼잡 마크가 수신되었음을 표시한다. 이 피드백(예를 들면, 혼잡 레포트)에 기초하여, 송신용 엔드 시스템(101)은 라우터(116)에서의 대역폭 사용을 보다 최적화하기 위해 그 송신 레이트를 (위 또는 아래로) 변경한다. 이 변경의 하나의 목적은 라우터(116)에서 네트워크 혼잡에 의해 야기되는 패킷 소실이 최소로 되거나 없도록 하는 최고 송신 레이트를 찾는 것이다.Upon receiving the marked packet, the receiving end system 102 periodically sends feedback to the transmitting end system 101 to indicate that a congestion mark has been received. Based on this feedback (eg, congestion report), the transmitting end system 101 changes its transmission rate (up or down) to further optimize bandwidth usage at the router 116. One purpose of this change is to find the highest transmission rate that minimizes or eliminates packet loss caused by network congestion at router 116.

도 2는 본 발명의 실시예에 있어서 예시적인 엔드 시스템을 도시한다. 엔드 시스템(200)은 네트워크(220)를 통해 다른 엔드 시스템(도시하지 않음)과 결합된다. 적어도 하나의 네트워크 중간 장치(도시하지 않음)는 2개의 엔드 시스템 사이에 논리적으로 배치된다. 엔드 시스템은 사용자 인터페이스(202)를 통해 멀티미디어 정보를 렌더링하는 렌더러(216), 및 아날로그 멀티미디어 정보를 디지털화하는 디지타이저(218)를 포함한다. 멀티미디어 코덱(204)은 디지타이저(218)로부터 디지털화된 멀티미디어 데이터 뿐만 아니라, 또 다른 엔드 시스템으로부터 네트워크(220) 및 RTP 모듈(208)을 통해 수신된 멀티미디어 데이터를 수신한다. 또한, 멀티미디어 코덱(204)은 RTP 모듈(208) 및 네트워크(220)를 통해 멀티미디어 데이터를 다른 엔드 시스템으로 송신한다.2 illustrates an exemplary end system in an embodiment of the invention. End system 200 is coupled with other end systems (not shown) via network 220. At least one network intermediate device (not shown) is logically disposed between the two end systems. The end system includes a renderer 216 that renders the multimedia information through the user interface 202, and a digitizer 218 that digitizes the analog multimedia information. The multimedia codec 204 receives multimedia data digitized from the digitizer 218, as well as multimedia data received via the network 220 and the RTP module 208 from another end system. The multimedia codec 204 also transmits multimedia data to other end systems via the RTP module 208 and the network 220.

네트워크 전송층 모듈(222)은 마킹/마크 트래킹 모듈(224)을 포함하며, 송신용 엔드 시스템에서는 인출 IP 패킷을 ECT로서 마킹하고 수신용 엔드 시스템에서는 인입 IP 패킷에서 검출된 ECN 마크를 트래킹하여 그들을 마크 피드백 코덱(212)으로 보낸다.The network transport layer module 222 includes a marking / mark tracking module 224, in which the sending end system marks the outgoing IP packet as an ECT and in the receiving end system tracks the ECN mark detected in the incoming IP packet. A mark feedback codec 212.

RTCP 모듈(210)은 ECT 패킷을 디코드하며, 송신용 엔드 시스템으로 다시 송신하기 위해 혼잡 레포트를 인코드하는 마크 피드백 코덱(212)을 포함한다. 마크 피드백 코덱(212)에 의해 디코드된 마킹 정보는 WTP 모듈에 의해 수신되며, 이는 마킹 정보에 기초하여 가용 대역폭을 추정한다. 추정된 가용 대역폭의 값은 미디어 컨트롤러까지 전달되며, 이는 가용 대역폭 추정 및 다른 발견법에 기초한 네트워크 데이터 로드를 변경하기 위해 미디어 지정 액션을 취한다. 도시된 실시예에서, 미디어 컨트롤러는 멀티미디어 코덱(204)을 통해 송신 레이트를 조정하고 디지타이저(218)를 통해 디지타이저 성능을 조정하여 송신 레이트를 추정된 가용 대역폭과 관련시킬 수 있다.RTCP module 210 includes a mark feedback codec 212 that decodes ECT packets and encodes congestion reports for transmission back to the transmitting end system. The marking information decoded by the mark feedback codec 212 is received by the WTP module, which estimates the available bandwidth based on the marking information. The value of the estimated available bandwidth is passed up to the media controller, which takes a media specific action to change the network data load based on the available bandwidth estimation and other heuristics. In the illustrated embodiment, the media controller may adjust the transmission rate via the multimedia codec 204 and the digitizer performance through the digitizer 218 to associate the transmission rate with the estimated available bandwidth.

미디어 컨트롤러는 송신 레이트를 조정하기 위해 여러가지 방법을 이용할 수 있다. 예를 들면, 일 실시예에서, 코덱은 양자화 레벨을 직접 변경하여 품질을 조정함으로써 송신 레이트를 변경한다. 다른 실시예에서, 몇몇 형태의 계층화된 코딩이 사용되면, 미디어 컨트롤러는 층을 가감하여 송신 레이트를 변경할 수 있다. 다른 실시예에서, 송신 레이트의 빈번한 변경을 피하기 위해, 일단 가용 대역폭 추정이 이전 추정과 충분히 상이하면 미디어 컨트롤러는 단지 송신 레이트를 변경하기로 결정할 수 있다.The media controller can use various methods to adjust the transmission rate. For example, in one embodiment, the codec changes the transmission rate by directly changing the quantization level to adjust the quality. In another embodiment, if some form of layered coding is used, the media controller can change the transmission rate by adding or subtracting layers. In another embodiment, to avoid frequent changes in the transmission rate, the media controller may only decide to change the transmission rate once the available bandwidth estimate is sufficiently different from the previous estimate.

도 3은 본 발명의 실시예에 있어서 예시적인 중간 장치를 도시한다. 라우터와 같은 중간 장치는 일반적으로 인입 ECT 패킷을 수신하고, 적합하다면 그것들을 마킹하여 목적지 시스템으로 보낸다. 중간 장치는 또한 네트워크 혼잡이 패킷을 보증한다면 패킷을 누락시킬 수도 있다.3 illustrates an exemplary intermediate apparatus in an embodiment of the invention. Intermediate devices, such as routers, generally receive incoming ECT packets and, if appropriate, mark them and send them to the destination system. The intermediate device may also drop the packet if network congestion warrants the packet.

중간 장치(300)는 메모리의 큐와 같은 물리적 패킷 큐(302)를 포함한다. 인입 패킷(308)은 물리적 패킷 큐(302)에서 수신된다. 중간 장치(300)는 또한 패킷 마킹 가상 큐(304)를 포함하며, 이는 물리적 패킷 큐(302)의 인입 패킷들을 트래킹한다. 가상 큐(304)에 있는 패킷(310)의 수가 프리셋 혼잡 임계값(312)을 초과하면, 패킷 관리 모듈(306)은 임계값(312)의 초과시 수신되는 패킷들을 목적지 시스템으로 보내기 전에 마킹한다. 또한 다른 마킹 알고리즘이 본 발명의 범위 내에서 신호 초기 혼잡에 사용될 수 있음을 이해해야 한다.Intermediate device 300 includes a physical packet queue 302, such as a queue of memory. Incoming packet 308 is received in physical packet queue 302. The intermediate apparatus 300 also includes a packet marking virtual queue 304, which tracks incoming packets of the physical packet queue 302. If the number of packets 310 in the virtual queue 304 exceeds the preset congestion threshold 312, the packet management module 306 marks incoming packets upon exceeding the threshold 312 before sending them to the destination system. It should also be understood that other marking algorithms may be used for signal initial congestion within the scope of the present invention.

도 4는 본 발명의 실시예에 있어서 각종 장치들 사이의 메시징 및 동작을 도시한다. 메시징은 송신용 엔드 시스템, 중간 장치, 및 수신용 엔드 시스템을 포함하는 시스템을 통해 통신하는 것으로서 도 4에 도시된다. 중간 장치는 예를 들면 라우터, 게이트웨이 등의 함께 결합된 다수의 중간 장치를 나타낼 수 있음을 이해해야 한다.4 illustrates messaging and operation between various devices in an embodiment of the present invention. Messaging is shown in FIG. 4 as communicating via a system including a transmitting end system, an intermediate apparatus, and a receiving end system. It should be understood that an intermediate device may represent a number of intermediate devices coupled together, for example, routers, gateways, and the like.

주어진 RTC 세션(420)에서, ECT 표시 동작(400)은 송신용 엔드 시스템이 ECT 장치임을 하나 이상의 수신기에 광고한다. 이는 상기한 바와 같이 초기 개시 동안 ECT 플래그를 설정함으로써 행해진다. 수신용 엔드 시스템의 ECT 수신 동작(402)은 송신용 엔드 시스템으로부터 ECT 광고를 수신하고 ECT 표시 동작(404)에서 수신용 엔드 시스템이 ECT 장치임을 송신용 엔드 시스템에 통지하도록 응답한다. 이 통지는 ECT 수신 동작(406)에서 송신용 엔드 시스템에 의해 수신된다. 상술한 바와 같이, 다른 송신용 엔드 시스템은 초기에 ECT 수신기가 동작(400, 402, 404, 및 406)을 생략함으로써 특정 데이터 흐름에 있다고 가정할 수 있다.In a given RTC session 420, the ECT indication operation 400 advertises to one or more receivers that the transmitting end system is an ECT device. This is done by setting the ECT flag during initial startup as described above. The ECT receiving operation 402 of the receiving end system responds to receive the ECT advertisement from the transmitting end system and to notify the transmitting end system that the receiving end system is an ECT device in the ECT indication operation 404. This notification is received by the transmitting end system in the ECT receive operation 406. As mentioned above, other transmitting end systems may initially assume that the ECT receiver is in a particular data flow by omitting operations 400, 402, 404, and 406.

송신용 엔드 시스템이 ECT 수신 동작(406)에서 수신용 엔드 시스템으로부터 이 신호를 수신하면, 송신용 엔드 시스템은 ECT 데이터 흐름이 수신용 엔드 시스템 에 의해 성립되었다고 판정하고 특정 IP 데이터 흐름이 ECT 데이터 흐름임을 이해하기 시작한다. 그 후, 송신 동작(408)은 송신된 IP 패킷의 ECN 비트를 (10) 또는 (01)로 설정함으로써 하나 이상의 ECT 패킷을 송신한다. 이들 ECT 패킷은 초기 송신 레이트(예를 들면 "리소스 요구"의 타입)로 송신된다. 일 실시예에서, 초기 송신 레이트는 초기 가용 대역폭 추정, 사용자 입력, 및 시스템 구성들 또는 방법들 중 적어도 하나에 기초한다. 다른 예시적인 리소스 요구는 전력에 대한 요구(무선 시스템의 경우), 메모리 또는 프로세싱 리소스에 대한 요구 등일 수 있으나 이에 제한되지 않는다. 예를 들면 관련 오디오 및 비디오와 같이 2개의 RTP 흐름이 있는 경우, 각 흐름의 패킷들은 이와 같이 마킹된다. 몇몇 실시예에서는, RTCP 대역폭 사용은 RTC에 의해 관리될 수 있기 때문에 RTCP 제어 흐름이 "ECN 인식"으로서 마킹되도록 하는 것이 적합하다.When the transmitting end system receives this signal from the receiving end system in the ECT receive operation 406, the transmitting end system determines that the ECT data flow has been established by the receiving end system and a particular IP data flow is generated by the ECT data flow. I begin to understand that. The transmit operation 408 then transmits one or more ECT packets by setting the ECN bit of the transmitted IP packet to (10) or (01). These ECT packets are transmitted at an initial transmission rate (eg, a type of "resource request"). In one embodiment, the initial transmission rate is based on at least one of the initial available bandwidth estimation, user input, and system configurations or methods. Other example resource requirements may be, but are not limited to, demands on power (in the case of wireless systems), demands on memory or processing resources, and the like. If there are two RTP flows, for example related audio and video, the packets of each flow are marked as such. In some embodiments, it is appropriate to allow RTCP control flows to be marked as "ECN aware" because RTCP bandwidth usage can be managed by the RTC.

중간 장치는 초기 리소스 혼잡을 검출하면, "혼잡을 경험함(Congestion Experienced)"을 표시하기 위해 ECT 패킷을 마킹하여 그 패킷을 마킹 동작(410)에서 수신용 엔드 시스템으로 보낸다. 수신용 엔드 시스템은 수신 동작(412)에서 마킹된 패킷을 수신한다. 수신용 엔드 시스템은 편집 동작(413)에서 마킹된 패킷 정보로부터 혼잡 레포트를 생성한다. 피드백 동작(414)에서, 수신용 엔드 시스템은 혼잡 레포트를 송신용 엔드 시스템에 다시 보낸다. 동작(408, 410, 412)는 피드백 동작(414)이 발생하기 전에 여러번 발생할 수 있다(즉, 다수의 마킹된 패킷으로부터의 정보는 그것이 송신용 엔드 시스템에 송신되기 전에 혼잡 레포트에 포함될 수 있다). 이들 동작에서 엔드 시스템들 사이의 ECT 통신의 잠재적인(그리고 가능성 있는) 다양성은 그 데이터 흐름에서 넓은 화살표로 표시된다. 또한, 각종 실시예에서, 편집 동작(413)은 각 마켓 패킷을 수신할 때 또는 각종 간격을 두고 발생할 수 있다.When the intermediate device detects the initial resource congestion, it marks the ECT packet to indicate "Congestion Experienced" and sends the packet to the receiving end system in marking operation 410. The receiving end system receives the marked packet at receive operation 412. The receiving end system generates a congestion report from the packet information marked at edit operation 413. In feedback operation 414, the receiving end system sends a congestion report back to the transmitting end system. Operations 408, 410, 412 may occur multiple times before feedback operation 414 occurs (ie, information from multiple marked packets may be included in the congestion report before it is sent to the transmitting end system). . In these operations the potential (and potential) variety of ECT communication between end systems is indicated by a wide arrow in the data flow. Further, in various embodiments, the editing operation 413 may occur when receiving each market packet or at various intervals.

수신 엔드 시스템은 RTCP 제어 채널을 통해 혼잡 레포트를 송신용 엔드 시스템에 다시 보낸다. 일 실시예에서, 혼잡 레포트는 다음과 같은 형태를 취한다.The receiving end system sends a congestion report back to the transmitting end system via the RTCP control channel. In one embodiment, the congestion report takes the form:

필드명Field name 저장 사이즈Storage size 설명Explanation SSRCSSRC DWORDDWORD 혼잡이 보고되는 IP 흐름과 관련된 RTP 흐름의 SSRC(Synchronization Source) 식별자Synchronization Source (SSRC) identifier of the RTP flow associated with the IP flow for which congestion is reported APP_EXT_NameAPP_EXT_Name DWORDDWORD 0x45434e52 'E"C"N"R'0x45434e52 'E "C" N "R' Id_numId_num DWORDDWORD 혼잡 레포트에 대한 시퀀스 수. 시퀀스 수는 이 SSRC에 대해 송신된 각 혼잡 레포트에 따라 단조 증가한다.Number of sequences for congestion reports. The number of sequences increases monotonically with each congestion report sent for this SSRC. MarksMarks DWORDDWORD 마지막 혼잡 레포트 이래로 나타나는 마킹된 패킷의 수The number of marked packets since the last congestion report. ProtoProto WORDWORD 이 SSRC와 관련된 IP 프로토콜 수Number of IP protocols associated with this SSRC DestportDestport WORDWORD SSRC와 관련된 목적지(UDP) 포트Destination (UDP) port associated with SSRC MarksByteMarksByte DWORDDWORD 마지막 혼잡 레포트 이래로 마킹된 수신 바이트의 수The number of received bytes marked since the last congestion report. MarksTotal BytesMarksTotal Bytes DWORDDWORD 이 SSRC의 RTP 세션의 개시 이래로 마킹된 수신 바이트의 총수The total number of received bytes marked since the beginning of this SSRC's RTP session. RxBytesRxBytes DWORDDWORD 마지막 혼잡 레포트 이래로 마킹되지 않은 수신 바이트의 수Number of received bytes unmarked since last congestion report RxTotalBytesRxTotalBytes DWORDDWORD SSRC의 RTP 세션의 개시 이래로 마킹되지 않은 수신 바이트의 총수The total number of unmarked received bytes since the start of the SSRC's RTP session.

혼잡 레포트는 RR(Receiver Report)이 수신용 엔드 시스템의 목적지 RTC 세션에 의해 생성될 때마다 송신된다. 이 ECN 증가는 내부 RR-간격의 변화에 대하여 확고하며 고정된 내부 -RR 기간에 구속되지 않기 때문에, 증가하는 대역폭 가용성의 빠른 보고를 보장한다. 다른 실시예에서, 필드 Marks, Id_num, Proto, 및 Destport는 삭제될 수 있으며, RTCP 수신기 레포트에 대해 16 바이트의 현실적인 오버헤드를 산출한다.Congestion reports are sent each time a RR (Receiver Report) is generated by the destination RTC session of the receiving end system. This ECN increase is robust against changes in the internal RR-interval and is not tied to a fixed internal -RR period, thus ensuring fast reporting of increasing bandwidth availability. In another embodiment, the fields Marks, Id_num, Proto, and Destport may be deleted, yielding a realistic overhead of 16 bytes for the RTCP receiver report.

수신 동작(416)은 혼잡 레포트를 수신하고, 혼잡 레포트를 (마크 피드백 코덱에서) 디코드하여, WTP(weight-per-mark) 모듈에 수신된 정보를 보내는데, 이는 대역폭 추정량이다. WTP 모듈은 초기 추정, 혼잡 레포트에 보고된 조건, 및 각종 다른 접속 파라미터에 기초하여 새로운 가용 대역폭 추정을 추정 동작(417)에서 산출한다. 이 새로운 가용 대역폭 추정은 관련된 SSRC에 대한 미디어 컨트롤러 모듈에 보고되며, 이는 미디어 지정 액션을 취하여 새로운 가용 대역폭 추정 및 다른 접근법에 기초하여 리소스 요구를 (변경된 송신 레이트의 형태로) 변경한다. 비록 여기서는 송신용 엔드 시스템에 의해 산출되는 것으로 기재되지만, 다른 실시예에서는 새로운 가용 대역폭 추정 및 새로운 리소스 요구가 수신용 엔드 시스템, 중간 장치, 또는 별도의 중재기나 혼잡 관리자에 의해 산출될 수 있다.Receive operation 416 receives the congestion report, decodes the congestion report (in the mark feedback codec) and sends the received information to a weight-per-mark (WTP) module, which is a bandwidth estimate. The WTP module calculates in operation 417 a new available bandwidth estimate based on the initial estimate, the conditions reported in the congestion report, and various other connection parameters. This new available bandwidth estimate is reported to the media controller module for the associated SSRC, which takes a media specific action to change resource requirements (in the form of a changed transmission rate) based on the new available bandwidth estimate and other approaches. Although described herein as being calculated by the transmitting end system, in other embodiments, a new available bandwidth estimate and new resource request may be calculated by the receiving end system, the intermediate apparatus, or a separate arbiter or congestion manager.

WTP 모듈은 혼잡 레포트에 따라 새로운 가용 대역폭 추정을 결정하기 위해 WTP 알고리즘을 구현한다. 송신용 엔드 시스템(예를 들면, 트래픽 소스 또는 송신기)은 n번째 측정 시간 간격 동안 고정된 평균 xn을 갖는 레이트로 ECT 패킷을 송신하며. 여기서 측정 시간 간격의 길이는 MTI이다. 수신용 엔드 시스템(예를 들면, 트래픽 목적지 또는 수신기)은 마킹된 패킷의 수 mn 및 그 간격 동안 송신된 패킷 sn의 수 모두를 송신기로 피드백한다. 혼잡 레포트 정보로부터 도출될 수 있는 이 두개의 비는 대응하는 마크 확률 추정(pn)을 나타낸다.The WTP module implements a WTP algorithm to determine new available bandwidth estimates based on congestion reports. The transmitting end system (eg, traffic source or transmitter) transmits the ECT packet at a rate with a fixed average x n for the nth measurement time interval. Where the length of the measurement time interval is MTI. The receiving end system (eg, traffic destination or receiver) feeds back both the number of marked packets m n and the number of packets s n transmitted during the interval to the transmitter. These two ratios, which can be derived from the congestion report information, represent the corresponding mark probability estimates p n .

Figure 112004003199011-pat00001
Figure 112004003199011-pat00001

일 실시예에서, 가상 큐 마킹 알고리즘이 사용된다. 리소스의 실제 용량보다 작은 용량을 갖는 가상 큐가 시뮬레이트된다. 가상 큐에 대기하고 있는 적어도 B개의 패킷이 있는 임의의 인입 패킷이 마킹된다. B의 예시적인 값은 10이지만, 다른 B값도 본 발명의 범위 내에서 고려된다.In one embodiment, a virtual queue marking algorithm is used. Virtual queues with a capacity less than the actual capacity of the resource are simulated. Any incoming packet with at least B packets waiting in the virtual queue is marked. An exemplary value of B is 10, but other B values are also contemplated within the scope of the present invention.

변경된 송신 레이트는 가중 파라미터 w 및 이득 파라미터 k를 사용하여 송신 레이트를 조정하는 제어 알고리즘에 의해 결정되며, 혼잡 레포트에서는 경우에 따라 수신기로부터 피드백이 다시 송신된다. 일 실시예에서, 가중 파라미터 w(WTP 파라미터라고도 칭함)는 송신용 엔드 시스템과 관련되며, 예상된 마킹 확률 Pexpected에 기초하여 실현될 수 있는 타겟 송신 레이트를 반영한다:The changed transmission rate is determined by a control algorithm that adjusts the transmission rate using the weighting parameter w and the gain parameter k, and in the congestion report feedback is sent back from the receiver as the case may be. In one embodiment, the weighting parameter w (also called the WTP parameter) is associated with the transmitting end system and reflects a target transmission rate that can be realized based on the expected marking probability P expected :

Figure 112004003199011-pat00002
Figure 112004003199011-pat00002

이와 같이 하여, 가중 파라미터는 송신 엔드 시스템에 의해 예상된 가용 대역폭의 가중된 페어 공유를 나타낸다. 또한, 가중화 파라미터는 다음과 같다: 이것은 주어진 수(N)의 TCP 접속에 의해 예상되는 레이트를 모방하도록 xtarget을 설정함으로써 결정될 수 있다. 3개의 가능한 구성은 후술되며, 여기서 MSS는 IETF RFC 879에서 정의된 바와 같이, TCP에 대한 최대 세그먼트 사이즈를 바이트로 나타내며, 이는 IP 최대 데이터그램 사이즈 마이너스 40이다. 이 MSS 파라미터는 TCP 옵션으로서 설정될 수 있기 때문에, MSS는 송신기와 수신기 사이의 TCP 접속에 대한 MSS와 관련될 수 있다. MSS의 디폴트값은, TCP 옵션에 설정되어 있지 않다면, 536이다.In this way, the weighting parameter represents the weighted pair sharing of the available bandwidth expected by the transmitting end system. In addition, the weighting parameters are as follows: This can be determined by setting x target to mimic the rate expected by a given number of TCP connections. Three possible configurations are described below, where MSS represents the maximum segment size in bytes, in bytes, as defined in IETF RFC 879, which is minus 40 the IP maximum datagram size. Since this MSS parameter can be set as a TCP option, the MSS can be associated with the MSS for the TCP connection between the transmitter and the receiver. The default value of the MSS is 536 unless it is set in the TCP option.

Figure 112004003199011-pat00003
Figure 112004003199011-pat00003

가중 파라미터는 퍼 어플리케이션(per-application) 또는 퍼 시스템(per-system)에 기초한 방식으로 설정될 수 있다. 이것은 또한 사용자 입력을 포함하는 다른 연산 파라미터에 의해 영향을 받을 수 있다.The weight parameters may be set in a manner based on per-application or per-system. This may also be affected by other operational parameters including user input.

이 가중 파라미터에 기초하여, 새로운 송신 레이트 xn+1이 다음과 같이 계산된다:Based on this weighting parameter, the new transmission rate x n + 1 is calculated as follows:

Figure 112010079003970-pat00025
Figure 112010079003970-pat00025

상기 알고리즘은, 이득 파라미터 k가 하기 2개의 조건을 만족하는 경우, 타겟 레이트의 근처에 있는 국부적으로 안정한 새로운 송신 레이트를 제공한다.The algorithm provides a locally stable new transmission rate near the target rate when the gain parameter k satisfies the following two conditions.

Figure 112004003199011-pat00005
Figure 112004003199011-pat00005

여기서 r은 RTT(Round Trip Time) 기간에 대한 MTI(Measurement Time Inerval) 기간의 비이다. 따라서, k의 수용가능한 값은 다음과 같이 계산될 수 있 다:Where r is the ratio of Measurement Time Inerval (MTI) period to Round Trip Time (RTT) period. Thus, an acceptable value of k can be calculated as follows:

Figure 112004003199011-pat00006
Figure 112004003199011-pat00006

이득 파라미터는 초기 리소스 혼잡의 표시에 기초하여, 중간 장치를 통해 송신용 엔드 시스템에 의한 리소스 요구(예를 들면, 송신 레이트)의 조정 크기에 영향을 준다. 더 작은 송신 레이트에 대하여, 상기 식에 의해 리턴되는 xn+1의 최대값 및 소정의 최소 레이트를 취함으로써 보다 새로운 송신 레이트가 달성될 수 있다. 이 제한은 양이 아닌(non-positive) 새로운 송신 레이트의 리턴을 방해한다.The gain parameter affects the size of the adjustment of the resource request (eg, transmission rate) by the transmitting end system via the intermediate apparatus based on the indication of the initial resource congestion. For smaller transmission rates, newer transmission rates can be achieved by taking the maximum value of x n + 1 and the predetermined minimum rate returned by the above equation. This limit prevents the return of a new non-positive transmission rate.

도 5는 본 발명의 실시예에 있어서 데이터 스트리밍 환경의 리액티브 대역폭 제어에 대한 동작을 도시한다. 관계 동작(500)은 송신용 엔드 시스템과 수신용 엔드 시스템 사이의 ECT 관계를 성립한다. 다른 실시예에서, 이 관계 동작(500)은 완전히 생략될 수 있으며 송신용 엔드 시스템은 단지 ECT 수신용 엔드 시스템이 전송을 수신하고 임의의 초기 혼잡 발행을 다시 보고할 것이라고 추측한다.5 illustrates operations for reactive bandwidth control of a data streaming environment in an embodiment of the invention. Relationship operation 500 establishes an ECT relationship between the transmitting end system and the receiving end system. In another embodiment, this relational operation 500 may be omitted entirely and the transmitting end system assumes that the ECT receiving end system will only receive the transmission and report back any initial congestion issuance.

가중 파라미터 결정 동작(502)은 가중 파라미터를 결정한다.The weight parameter determination operation 502 determines the weight parameter.

소비 동작(504)은 지정된 리소스 요구에서 가용 리소스를 소비한다(즉, 송신기는 지정된 초기 전송 레이트로 송신한다). 그 후, 수신 동작(506)은 혼잡 레포트와 같은 초기 리소스 혼잡의 표시를 수신한다. 이득 파라미터 결정 동작(508)은 이득 파라미터를 결정한다. 산출 동작(510)은 새로운 리소스 요구를 산출하여 소비 동작(504)으로 제공한다. Consumption operation 504 consumes available resources at the specified resource request (ie, the transmitter transmits at the specified initial transmission rate). Receive operation 506 then receives an indication of initial resource congestion, such as a congestion report. Gain parameter determination operation 508 determines a gain parameter. The calculating operation 510 calculates and provides a new resource request to the consuming operation 504.                     

도 6은 본 발명의 실시예에서 이득 파라미터를 설정하는 동작을 도시한다. 산출 동작(608)은 혼잡 레포트의 수신에 응답하여 새로운 이득 팩터를 산출하기 위해 다수의 입력을 수신한다. 결정 동작(600)은 패킷의 수를 나타내는 마킹 파라미터 B를 결정하며, RTP 패킷은 중간 네트워크 장치의 큐와 만나기를 예상한다. 추정 동작(602)은 RTT를 추정한다(일반적으로 RTT에 대한 초기의 추정이 받아들여진다). 일 실시예에서, RTT는 수신기, 송신기, 또는 예를 들어 RTCP를 사용하는 제어 채널 지정 수단에 의해 추정된다. 다른 실시예에서, RTT 추정은, 예를 들어 지수함수적으로 가중된 이동 평균이 현재 추정을 이전 것과 결합시키는데 사용되는, TCP RTT 추정량에서 사용되는 것과 동일한 기술에 기초할 수 있다. 본 발명의 다른 실시예에서는 RTT의 다른 추정 방법이 사용될 수 있다.6 illustrates the operation of setting gain parameters in an embodiment of the present invention. The calculating operation 608 receives a number of inputs to calculate a new gain factor in response to receiving the congestion report. The decision operation 600 determines the marking parameter B, which indicates the number of packets, and expects the RTP packet to meet the queue of the intermediate network device. Estimation operation 602 estimates the RTT (generally an initial estimate for the RTT is accepted). In one embodiment, the RTT is estimated by a receiver, transmitter, or control channel designation means using, for example, RTCP. In another embodiment, the RTT estimate may be based on the same technique used in the TCP RTT estimator, for example, where an exponentially weighted moving average is used to combine the current estimate with the previous one. In another embodiment of the present invention, another estimation method of RTT may be used.

수신 동작(604)은 제어 패킷(예를 들면 혼잡 레포트)을 수신한다. 다른 추정 동작(606)은 측정 시간 간격(예를 들면, 2개의 연속적인 혼잡 레포트의 수신 사이의 시간)을 추정한다. 산출 동작(608)은 새로운 이득 팩터를 산출하며, 이는 리턴 동작(610)의 결과로서 리턴된다. 새로운 이득 파라미터를 결정하는데 사용되는 알고리즘의 예는 도 4와 관련하여 설명되고, 이득 파라미터 k는

Figure 112004003199011-pat00007
에 의해 얻어진다.Receive operation 604 receives a control packet (eg, a congestion report). Another estimation operation 606 estimates the measurement time interval (e.g., the time between receipt of two consecutive congestion reports). Calculation operation 608 calculates a new gain factor, which is returned as a result of return operation 610. An example of the algorithm used to determine the new gain parameter is described in relation to FIG. 4, where the gain parameter k is
Figure 112004003199011-pat00007
Obtained by

도 7은 본 발명의 실시예에서 송신 레이트를 갱신하는 동작을 설명한다. 산출 동작(706 및 708)은 혼잡 레포트의 수신에 응답하여 새로운 리소스 요구를 산출하기 위해 다수의 입력을 수신한다. 결정 동작(700)은 초기 리소스 요구(예를 들 면 초기 송신 레이트)를 결정한다. 예를 들면, 송신용 엔드 시스템은 값을 저장하는 메모리 위치를 액세스함으로써 초기 송신 레이트를 결정할 수 있다.7 illustrates an operation of updating a transmission rate in an embodiment of the present invention. Computation operations 706 and 708 receive a plurality of inputs for calculating a new resource request in response to receiving the congestion report. Decision operation 700 determines an initial resource request (eg, initial transmission rate). For example, the transmitting end system can determine the initial transmission rate by accessing a memory location that stores values.

다른 결정 동작(702)은 도 4 및 도 6을 참조하여 설명된 바와 같이 산출될 수 있는 현재의 이득 파라미터, 및 미리 산출되거나 저장된 값으로 메모리 위치를 액세스하는 등의 방법 또는 다른 수단에 의해 결정된 가중 파라미터를 결정한다. 수신 동작(704)은 혼잡 레포트와 같은 제어 패킷을 수신하며, 이는 MTI 동안 송신된 패킷의 수 sn 및 마킹된 패킷의 수 mn 모두를 포함할 수 있다. 그 후, 산출 동작(706)은 제어 패킷의 정보에 기초하여 새로운 마킹 레벨 pn(즉, 새로운 마크 확률 추정)을 산출한다. 새로운 이득 파라미터를 결정하는데 사용되는 알고리즘의 예는 도 4를 참조하여 설명되고, 여기서 새로운 마킹 레벨 pn

Figure 112010079003970-pat00008
에 의해 얻어진다. 다른 산출 동작(708)은 새로운 리소스 요구(즉, 새로운 송신 레이트) xn+1을 산출한다. 새로운 이득 파라미터를 결정하는데 사용되는 알고리즘의 예는 도 4를 참조하여 설명되고, 여기서 새로운 리소스 요구, xn+1
Figure 112010079003970-pat00026
에 의해 풀린다. 도시된 실시예의 제한 동작(710)에서, 리소스 요구 제한, 즉 xn+1=Max(xn+1, xmin)이고, 여기서 xmin은 엔드 시스템에 의해 허용되는 현재의 최소 리소스 요구를 나타낸다. 리턴 동작(712)은 값 xn+1를 새로운 리소스 요구 결과로서 리턴한다.Another decision operation 702 may include a current gain parameter that may be calculated as described with reference to FIGS. 4 and 6, and a weight determined by a method or other means, such as accessing the memory location with a pre-calculated or stored value. Determine the parameters. Receive operation 704 receives a control packet, such as a congestion report, which may include both the number s n of packets sent and the number m n of packets marked during MTI. The calculating operation 706 then calculates a new marking level p n (ie, a new mark probability estimate) based on the information in the control packet. An example of the algorithm used to determine the new gain parameter is described with reference to FIG. 4, where the new marking level p n is
Figure 112010079003970-pat00008
Obtained by Another calculation operation 708 calculates a new resource request (ie, a new transmission rate) x n + 1 . An example of the algorithm used to determine the new gain parameter is described with reference to FIG. 4, where the new resource request, x n + 1 is
Figure 112010079003970-pat00026
Unlocked by In the limiting operation 710 of the illustrated embodiment, the resource request limit, i.e., x n + 1 = Max (x n + 1 , x min ), where x min represents the current minimum resource demand allowed by the end system. . Return operation 712 returns the value x n + 1 as a result of the new resource request.

본 발명을 구현하기 위한 도 8의 예시적인 하드웨어 및 동작 환경은, 프로세싱 유닛(21), 시스템 메모리(22), 및 시스템 메모리를 포함하는 각종 시스템 컴포넌트를 프로세싱 유닛(21)에 동작 결합시키는 시스템 버스(23)를 포함하는, 컴퓨터(20) 형태의 범용 컴퓨팅 장치를 포함한다. 하나 또는 그 이상의 프로세싱 유닛(21)이 존재할 수 있기 때문에, 컴퓨터(20)의 프로세서는 단일 CPU(central-processing unit), 또는 흔히 병렬 프로세싱 환경으로 지칭되는 복수의 프로세싱 유닛을 포함한다. 컴퓨터(20)는 종래의 컴퓨터, 분산 컴퓨터, 또는 다른 종류의 컴퓨터일 수 있으나, 본 발명은 이에 제한되지 않는다. The example hardware and operating environment of FIG. 8 for implementing the present invention includes a system bus for operatively coupling various system components to processing unit 21, including processing unit 21, system memory 22, and system memory. A general purpose computing device in the form of a computer 20, including 23. Since there may be one or more processing units 21, the processor of the computer 20 includes a single central-processing unit, or a plurality of processing units, often referred to as a parallel processing environment. The computer 20 may be a conventional computer, a distributed computer, or another type of computer, but the present invention is not limited thereto.

시스템 버스(23)는 메모리 버스 또는 메모리 컨트롤러, 주변회로 버스, 및 임의의 각종 버스 아키텍쳐를 사용하는 로컬 버스를 포함한 여러 종류의 버스 구조 중 어느 것일 수 있다. 시스템 메모리는 또한 간단히 메모리라 칭해질 수 있고, ROM(24) 및 RAM(25)을 포함한다. BIOS(basic input/output system : 26)은 기동시와 같이, 컴퓨터(20) 내의 소자들 사이에서 정보를 전송하도록 돕는 기본적인 루틴을 포함하며, ROM(24)에 저장된다. 컴퓨터(20)는 도시되지 않는 하드 디스크에 대한 판독 및 기입용의 하드 디스크 드라이브(27), 제거 가능 자기 디스크(29)에 대한 판독 및 기록용의 자기 디스크 드라이브(28), 및 CD-ROM 또는 다른 광매체와 같은 제거 가능 광 디스크(31)에 대한 판독 및 기입용의 광디스크 드라이브(30)를 더 포함한다. The system bus 23 can be any of a variety of bus structures, including a memory bus or a memory controller, a peripheral circuit bus, and a local bus using any of a variety of bus architectures. System memory may also be referred to simply as memory, and includes a ROM 24 and a RAM 25. The basic input / output system (BIOS) 26 includes basic routines to help transfer information between elements in the computer 20, such as at startup, and is stored in the ROM 24. The computer 20 includes a hard disk drive 27 for reading and writing to a hard disk not shown, a magnetic disk drive 28 for reading and writing to a removable magnetic disk 29, and a CD-ROM or It further includes an optical disc drive 30 for reading and writing to a removable optical disc 31, such as another optical medium.                     

하드 디스크 드라이브(27), 자기 디스크 드라이브(28), 및 광디스크 드라이브(30)는 하드 디스크 드라이브 인터페이스(32), 자기 디스크 드라이브 인터페이스(33), 및 광디스크 드라이브 인터페이스(34)에 의해 시스템 버스(23)에 각각 접속된다. 드라이브 및 그와 관련된 컴퓨터 판독가능 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 및 컴퓨터(20)에 대한 다른 데이터의 불휘발성 저장을 제공한다. 당업자들은 자기 카세트, 플래시 메모리 카드, DVD, 베르노울리 카트리지, RAM, ROM, 등과 같이 컴퓨터에 의해 액세스 가능한 데이터를 저장할 수 있는 임의 형태의 컴퓨터 판독가능한 매체가 예시적인 동작 환경에서 사용될 수 있음을 이해해야 한다.The hard disk drive 27, the magnetic disk drive 28, and the optical disk drive 30 are connected to the system bus 23 by the hard disk drive interface 32, the magnetic disk drive interface 33, and the optical disk drive interface 34. Respectively). The drive and its associated computer readable medium provide nonvolatile storage of computer readable instructions, data structures, program modules, and other data for the computer 20. Those skilled in the art should understand that any form of computer readable media capable of storing computer accessible data, such as magnetic cassettes, flash memory cards, DVDs, Bernoulli cartridges, RAM, ROM, etc., may be used in the exemplary operating environment. do.

다수의 프로그램 모듈은 하드 디스크, 자기 디스크(29), 광디스크(31), ROM(24), 또는 RAM(25) 상에 저장될 수 있으며, 오퍼레이팅 시스템(35), 하나 이상의 어플리케이션 프로그램(36), 다른 프로그램 모듈(37), 및 프로그램 데이터(38)를 포함한다. 사용자는 커맨드 및 정보를 키보드(40) 및 포인팅 장치(42)와 같은 입력 장치를 통해 퍼스널 컴퓨터(20)에 입력할 수 있다. 다른 입력 장치(도시하지 않음)는 마이크로폰, 조이스틱, 게임 패드, 위성 접시, 스캐너 등을 포함할 수 있다. 이들 및 다른 입력 장치들은 종종 시스템 버스에 접속되는 직렬 포트 인터페이스(46)를 통해 프로세싱 유닛(21)에 접속되지만, 병렬 포트, 게임 포트, 또는 USB와 같은 다른 인터페이스에 의해 접속될 수 있다. 모니터(47) 또는 다른 형태의 디스플레이 장치는 또한 비디오 어댑터(48)와 같은 인터페이스를 통해 시스템 버스(23)에 접속된다. 모이터 외에, 컴퓨터는 일반적으로 스피커 및 프린터와 같 은 주변 출력 장치(도시하지 않음)를 포함한다.The plurality of program modules may be stored on a hard disk, magnetic disk 29, optical disk 31, ROM 24, or RAM 25, operating system 35, one or more application programs 36, Another program module 37, and program data 38. A user may enter commands and information into the personal computer 20 through input devices such as keyboard 40 and pointing device 42. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 21 via a serial port interface 46 that is connected to the system bus, but may be connected by parallel ports, game ports, or other interfaces such as USB. The monitor 47 or other type of display device is also connected to the system bus 23 via an interface such as a video adapter 48. In addition to the motor, the computer generally includes peripheral output devices (not shown) such as speakers and printers.

컴퓨터(20)는 원격 컴퓨터(49)와 같은 하나 이상의 원격 컴퓨터에 대한 논리 접속을 사용하는 네트워크 환경에서 동작할 수 있다. 이들 논리 접속은 컴퓨터(20) 또는 그 일부에 결합된 통신 장치에 의해 실현되나, 본 발명은 특정 유형의 통신 장치에 제한되지 않는다. 원격 컴퓨터(49)는 또 다른 컴퓨터, 서버, 라우터, 네트워크 PC, 클라이언트, 피어 장치 또는 다른 공통 네트워크 노드일 수 있으며, 일반적으로 컴퓨터(20)와 관련하여 상술한 소자들의 대부분 또는 모두를 포함하지만, 도 8에는 단지 메모리 저장 장치(50)만이 도시된다. 도 8에 도시된 논리 접속은 LAN(51) 및 WAN(52)을 포함한다. 이러한 네트워킹 환경은 모든 유형의 네트워크인, 오피스 네트워크, 기업형 컴퓨터 네트워크, 인트라넷 및 인터넷에 흔히 존재한다.Computer 20 may operate in a network environment using logical connections to one or more remote computers, such as remote computer 49. These logical connections are realized by a communication device coupled to the computer 20 or a portion thereof, but the present invention is not limited to a particular type of communication device. Remote computer 49 may be another computer, server, router, network PC, client, peer device, or other common network node, and generally includes most or all of the elements described above with respect to computer 20, Only memory storage device 50 is shown in FIG. The logical connection shown in FIG. 8 includes a LAN 51 and a WAN 52. Such networking environments are commonplace in all types of networks, office networks, enterprise computer networks, intranets and the Internet.

LAN 네트워킹 환경에서 사용되는 경우, 컴퓨터(20)는 통신 장치의 일종인 네트워크 인터페이스 또는 어댑터(53)를 통해 로컬 네트워크(51)에 접속된다. WAN 네트워킹 환경에서 사용되는 경우, 컴퓨터(20)는 일반적으로 모뎀(54), 일종의 통신 장치, 또는 WAN(52)을 통해 통신을 확립하는 다른 유형의 통신 장치를 포함한다. 모뎀(54)은 내장 또는 외장될 수 있고, 직렬 포트 인터페이스(46)를 통해 시스템 버스(23)에 접속된다. 네트워크 환경에서, 퍼스널 컴퓨터(20)와 관련하여 도시된 프로그램 모듈, 또는 그 부분들은 원격 메모리 저장 장치에 저장될 수 있다. 도시된 네트워크 접속은 예시적이며 컴퓨터 사이에서 통신 링크를 확립하기 위해 통신 장치 및 다른 수단이 사용될 수 있다. When used in a LAN networking environment, the computer 20 is connected to the local network 51 via a network interface or adapter 53, which is a kind of communication device. When used in a WAN networking environment, the computer 20 generally includes a modem 54, a type of communication device, or another type of communication device that establishes communication over the WAN 52. Modem 54 may be internal or external and is connected to system bus 23 via serial port interface 46. In a networked environment, program modules depicted in connection with the personal computer 20, or portions thereof, may be stored in the remote memory storage device. The network connection shown is exemplary and communication device and other means may be used to establish a communication link between the computers.                     

본 발명의 실시예에서, 마크 피드백 코덱, WTP 모듈, 또는 마킹/마크 트래킹 모듈은 오퍼레이팅 시스템(35), 어플리케이션 프로그램(36), 또는 다른 프로그램 모듈(37)의 일부로서 포함될 수 있다. 가중 파라미터, 리소스 요구값, 혼잡 레포트, 및 패킷은 프로그램 데이터(38)로서 저장될 수 있다.In an embodiment of the invention, the mark feedback codec, WTP module, or marking / mark tracking module may be included as part of operating system 35, application program 36, or other program module 37. Weighting parameters, resource requirements, congestion reports, and packets may be stored as program data 38.

여기에 기재된 발명의 실시예들은 하나 이상의 컴퓨터 시스템의 논리 단계로서 구현된다. 본 발명의 논리 동작은 (1) 하나 이상의 컴퓨터 시스템에서 실행하는 프로세서 구현 단계의 시퀀스로서 (2) 하나 이상의 컴퓨터 시스템 내에서 내부 접속된 기계 모듈로서 구현된다. 구현은 발명을 구현하는 컴퓨터 시스템의 성능 요건에 따른 선택의 문제이다. 따라서, 여기에 기재된 발명의 실시예를 구성하는 논리 동작은 동작, 단계, 오브젝트, 또는 모듈로 다양하게 지칭된다.Embodiments of the invention described herein are implemented as logical steps of one or more computer systems. The logical operation of the present invention is implemented as (1) a sequence of processor implementation steps executed in one or more computer systems, and (2) as a machine module connected internally in one or more computer systems. Implementation is a matter of choice dependent on the performance requirements of the computer system implementing the invention. Thus, the logical operations making up the embodiments of the invention described herein are referred to variously as operations, steps, objects, or modules.

상기 명세서, 예 및 데이터는 본 발명의 예시적인 실시예의 구조 및 사용에 대한 완전한 설명을 제공한다. 발명의 많은 실시예들은 발명의 정신 및 범위로부터 벗어나지 않도록 이루어지기 때문에 본 발명은 이하에 첨부된 클레임 내에 있게 된다.The above specification, examples and data provide a complete description of the structure and use of exemplary embodiments of the invention. Since many embodiments of the invention are made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.

본 발명에 의하면, 네트워크를 통한 실시간 통신은 초기 혼잡 조건 하에서 QoS(quality of sercive)를 향상시키기 위해 조정되고, 시스템은 초기 네트워크 혼잡을 검출하여 초기 혼잡에 대한 정보를 송신기로 다시 피드백하며, 이 정보에 기초하여, 가중 파라미터, 이득 파라미터, 및 혼잡 레포트로부터의 정보에 따라 변경된 송신 레이트를 산출하는 제어 알고리즘을 적절히 이용함으로써 송신 레이트가 적절히 변경되기 때문에, 변경된 송신 레이트는 수신기에서 수용 가능한 QoS를 유지하도록 가용 대역폭에 대한 송신기의 사용을 개선시킨다.According to the present invention, real-time communication over a network is coordinated to improve quality of service (QoS) under initial congestion conditions, and the system detects initial network congestion and feeds back information about the initial congestion back to the transmitter, which information Based on the weighted parameter, the gain parameter, and the changed transmission rate so that the transmission rate is appropriately changed by appropriately using a control algorithm that calculates the changed transmission rate according to the information from the congestion report, so that the changed transmission rate is maintained at an acceptable QoS at the receiver. Improve the use of the transmitter for the available bandwidth.

Claims (30)

중간 장치(intermediary device)에 의해 검출된 초기 리소스 혼잡(incipient resource congestion)의 표시에 기초하여 리소스 소비자에 의한 가용 리소스에 대한 리소스 요구를 조정하는 컴퓨터 프로세스를 컴퓨터 시스템 상에서 실행하기 위한 컴퓨터 프로그램을 저장한 하나 이상의 컴퓨터 판독가능 기록 매체로서,Storing a computer program for executing a computer process on a computer system that adjusts resource demands for available resources by a resource consumer based on an indication of incipient resource congestion detected by an intermediate device. One or more computer readable recording media, 상기 컴퓨터 프로세스는,The computer process, 상기 리소스 소비자와 관련된 가용 리소스의 공유(share)에 관한 가중 파라미터(weight parameter)를 결정하는 단계;Determining a weight parameter relating to a share of available resources associated with the resource consumer; 상기 초기 리소스 혼잡의 표시를 수신하는 단계;Receiving an indication of the initial resource congestion; 상기 초기 리소스 혼잡의 표시에 기초하여, 상기 중간 장치를 통해 상기 리소스 소비자에 의한 리소스 요구의 조정 크기에 대한 이득 파라미터를 결정하는 단계 - 상기 이득 파라미터(k)를 결정하는 단계는, Based on the indication of the initial resource congestion, determining, via the intermediate apparatus, a gain parameter for the coordination amount of resource demand by the resource consumer-determining the gain parameter k,
Figure 112010079003970-pat00018
Figure 112010079003970-pat00018
를 산출(computing)하는 단계를 포함하며,Computing the (computing), 여기서 B는 상기 중간 장치의 큐에서 예상된 패킷들의 개수이고, MTI(Measurement Time Interval)는 초기 리소스 혼잡의 두 개의 연속적인 표시의 수신 사이의 시간의 길이이고, RTT는 왕복 시간(Round Trip Time)임 - ;Where B is the number of packets expected in the intermediate device's queue, Measurement Time Interval (MTI) is the length of time between receipt of two consecutive indications of initial resource congestion, and RTT is Round Trip Time Im-; 상기 리소스 소비자에 의한 가용 리소스의 사용을 조정하기 위해 상기 가중 파라미터 및 상기 이득 파라미터에 기초하여 새로운 리소스 요구를 산출하는(computing) 단계; 및Computing a new resource request based on the weighting parameter and the gain parameter to adjust the use of available resources by the resource consumer; And 산출된 상기 요구에 기초하여 상기 가용 리소스의 상기 리소스 소비자에 의한 사용을 조정하는 단계Adjusting usage by the resource consumer of the available resource based on the calculated request 를 포함하는 하나 이상의 컴퓨터 판독가능 기록 매체.One or more computer readable recording media comprising.
제1항에 있어서,The method of claim 1, 상기 가중 파라미터를 결정하는 단계는,Determining the weighting parameter, 상기 리소스 소비자와 관련된 타겟 리소스 요구에 기초하여 상기 가중 파라미터를 결정하는 단계를 포함하는 하나 이상의 컴퓨터 판독가능 기록 매체.Determining the weighting parameter based on a target resource request associated with the resource consumer. 제1항에 있어서,The method of claim 1, 상기 가중 파라미터를 결정하는 단계는,Determining the weighting parameter, 하나 이상의 TCP 접속들 중 소정 횟수의 접속을 통해 예상된 리소스 요구에 기초하여 상기 가중 파라미터를 결정하는 단계를 포함하는 하나 이상의 컴퓨터 판독가능 기록 매체.And determining the weighting parameter based on an expected resource request over a predetermined number of connections of one or more TCP connections. 제1항에 있어서,The method of claim 1, 상기 초기 리소스 혼잡의 표시를 수신하는 단계는,Receiving the indication of the initial resource congestion, 혼잡 레포트(congestion report)를 수신하는 단계를 포함하는 하나 이상의 컴퓨터 판독가능 기록 매체.At least one computer readable recording medium comprising receiving a congestion report. 제1항에 있어서,The method of claim 1, 상기 초기 혼잡의 표시를 수신하는 단계는,Receiving the indication of the initial congestion, 측정 시간 간격 동안 수신단 장치(receiving end device)에 의해 수신되는 패킷의 카운트를 수신하는 단계; 및Receiving a count of packets received by a receiving end device during a measurement time interval; And 측정 시간 간격 동안 수신단 장치에 의해 수신되는 마킹된 패킷의 카운트를 수신하는 단계Receiving a count of marked packets received by the receiving device during the measurement time interval. 를 포함하는 하나 이상의 컴퓨터 판독가능 기록 매체.One or more computer readable recording media comprising. 삭제delete 제1항에 있어서,The method of claim 1, 상기 새로운 리소스 요구를 산출하는 단계는, 상기 이득 파라미터, 상기 가중 파라미터, 상기 초기 리소스 요구, 및 상기 초기 리소스 혼잡의 표시에 기초하여 새로운 리소스 요구를 산출하는 단계를 포함하는 하나 이상의 컴퓨터 판독가능 기록 매체.Calculating the new resource request includes calculating a new resource request based on the gain parameter, the weighting parameter, the initial resource request, and the indication of the initial resource congestion. . 제1항에 있어서,The method of claim 1, 상기 리소스 소비자는 송신단 장치(transmitting end device)를 포함하고, 상기 리소스 요구는 상기 송신단 장치의 송신 레이트(rate)를 나타내는 하나 이상의 컴퓨터 판독가능 기록 매체.At least one computer readable recording medium comprising a transmitting end device, the resource request indicating a transmission rate of the transmitting end device. 제1항에 있어서,The method of claim 1, 상기 새로운 리소스 요구는 수신단 장치의 능력에 의존하는 하나 이상의 컴퓨터 판독가능 기록 매체.At least one computer readable recording medium, said new resource request being dependent upon the capabilities of a receiving end device. 제1항에 있어서,The method of claim 1, 상기 컴퓨터 프로세스는 예상된 마크 확률을 결정하는 단계를 더 포함하는 하나 이상의 컴퓨터 판독가능 기록 매체.And the computer process further comprises determining an expected mark probability. 제10항에 있어서,The method of claim 10, 상기 예상된 마크 확률을 결정하는 단계는 상기 초기 리소스 혼잡의 표시에 기초하여 상기 예상된 마크 확률을 추정하는 단계를 포함하는 하나 이상의 컴퓨터 판독가능 기록 매체.And determining the expected mark probability comprises estimating the expected mark probability based on the indication of the initial resource congestion. 제1항에 있어서, 상기 가중 파라미터(w)를 결정하는 단계는, The method of claim 1, wherein the determining of the weighting parameter w comprises:
Figure 112010079003970-pat00019
Figure 112010079003970-pat00019
를 산출하는 단계를 포함하고,Calculating a; 여기서 Xtarget은 소정의 TCP 접속수(N)에 의해 예상된 전송 레이트이고, Pexpected는 예상된 마크 확률인, 하나 이상의 컴퓨터 판독가능 기록 매체.Wherein X target is the expected transmission rate by a given number of TCP connections (N), and P expected is the expected mark probability.
제1항에 있어서, 상기 새로운 리소스 요구(Xn+1)를 산출하는 단계는,The method of claim 1, wherein calculating the new resource request (X n + 1 ) comprises:
Figure 112010079003970-pat00027
Figure 112010079003970-pat00027
를 산출하는 단계를 포함하고,Calculating a; 여기서 Xn은 측정 시간 간격 n에서의 리소스 요구이고, k는 상기 이득 파라미터이고, w는 상기 가중 파라미터이고, pn은 상기 측정 시간 간격 n에서의 마크 확률 추정인, 하나 이상의 컴퓨터 판독가능 기록 매체.Wherein X n is a resource requirement in measurement time interval n, k is the gain parameter, w is the weighting parameter, and p n is a mark probability estimate in the measurement time interval n .
제13항에 있어서, 산출된 상기 새로운 리소스 요구가 사전정의된 최소 리소스 요구보다 작을 경우에는 상기 사전정의된 최소 리소스 요구가 상기 새로운 리소스 요구로서 사용되는 하나 이상의 컴퓨터 판독가능 기록 매체.16. The one or more computer-readable media of claim 13, wherein the predefined minimum resource request is used as the new resource request if the calculated new resource request is less than a predefined minimum resource request. 중간 장치에 의해 검출된 초기 리소스 혼잡의 표시에 기초하여 리소스 소비자에 의한 가용 리소스에 대한 리소스 요구를 조정하는 방법으로서 - 상기 방법은 컴퓨팅 장치에 의해 수행됨 -, A method of adjusting resource demand for available resources by a resource consumer based on an indication of an initial resource congestion detected by an intermediate device, the method being performed by a computing device; 상기 리소스 소비자와 관련된 가용 리소스의 공유에 관한 가중 파라미터를 결정하는 단계 - 상기 가중 파라미터(w)를 결정하는 단계는, Determining a weighting parameter relating to the sharing of available resources associated with the resource consumer, wherein determining the weighting parameter w comprises:
Figure 112010079003970-pat00021
Figure 112010079003970-pat00021
를 산출하는 단계를 포함하고,Calculating a; 여기서 Xtarget은 소정의 TCP 접속수(N)에 의해 예상된 전송 레이트이고, Pexpected는 예상된 마크 확률임 - ;Where X target is the expected transmission rate by a predetermined number of TCP connections (N), and P expected is the expected mark probability; 상기 초기 리소스 혼잡의 표시를 수신하는 단계;Receiving an indication of the initial resource congestion; 상기 초기 리소스 혼잡의 표시에 기초하여, 상기 중간 장치를 통해 상기 리소스 소비자에 의한 리소스 요구의 조정 크기에 대한 이득 파라미터를 결정하는 단계;Based on the indication of the initial resource congestion, determining, via the intermediate apparatus, a gain parameter for an adjustment magnitude of resource demand by the resource consumer; 상기 리소스 소비자에 의한 가용 리소스의 사용을 조정하기 위해 상기 가중 파라미터 및 상기 이득 파라미터에 기초하여 새로운 리소스 요구를 산출하는 단계; 및Calculating a new resource request based on the weighting parameter and the gain parameter to adjust the use of available resources by the resource consumer; And 산출된 상기 요구에 기초하여 상기 가용 리소스의 상기 리소스 소비자에 의한 사용을 조정하는 단계Adjusting usage by the resource consumer of the available resource based on the calculated request 를 포함하는 리소스 요구 조정 방법.Resource demand adjustment method comprising a.
제15항에 있어서,The method of claim 15, 상기 가중 파라미터를 결정하는 단계는,Determining the weighting parameter, 송신단 장치와 관련된 타겟 리소스 요구에 기초하여 상기 가중 파라미터를 결정하는 단계를 포함하는 리소스 요구 조정 방법.Determining the weighting parameter based on a target resource request associated with a transmitting end device. 제15항에 있어서,The method of claim 15, 상기 가중 파라미터를 결정하는 단계는,Determining the weighting parameter, 하나 이상의 TCP 접속들 중 소정 횟수의 접속을 통해 예상된 리소스 요구에 기초하여 상기 가중 파라미터를 결정하는 단계를 포함하는 리소스 요구 조정 방법.Determining the weighting parameter based on an expected resource request over a predetermined number of connections among one or more TCP connections. 제15항에 있어서,The method of claim 15, 상기 초기 혼잡의 표시를 수신하는 단계는,Receiving the indication of the initial congestion, 혼잡 레포트를 수신하는 단계를 포함하는 리소스 요구 조정 방법.Receiving a congestion report. 제15항에 있어서,The method of claim 15, 상기 초기 혼잡의 표시를 수신하는 단계는,Receiving the indication of the initial congestion, 측정 시간 간격 동안 수신단 장치에 의해 수신되는 패킷의 카운트를 수신하는 단계; 및Receiving a count of packets received by the receiving end device during the measurement time interval; And 측정 시간 간격 동안 수신단 장치에 의해 수신되는 마킹된 패킷의 카운트를 수신하는 단계Receiving a count of marked packets received by the receiving device during the measurement time interval. 를 포함하는 리소스 요구 조정 방법.Resource demand adjustment method comprising a. 제15항에 있어서,The method of claim 15, 상기 이득 파라미터를 결정하는 단계는,Determining the gain parameter,
Figure 112010079003970-pat00028
Figure 112010079003970-pat00028
를 산출하는 단계를 포함하며,Calculating a; 여기서 B는 상기 중간 장치의 큐에서 예상된 패킷들의 개수이고, MTI(Measurement Time Interval)는 초기 리소스 혼잡의 두 개의 연속적인 표시의 수신 사이의 시간의 길이이고, RTT는 왕복 시간인, 리소스 요구 조정 방법.Where B is the number of packets expected in the intermediate device's queue, Measurement Time Interval (MTI) is the length of time between receipt of two consecutive indications of initial resource congestion, and RTT is round trip time. Way.
제15항에 있어서,The method of claim 15, 상기 새로운 리소스 요구를 산출하는 단계는, 상기 이득 파라미터, 상기 가중 파라미터, 상기 초기 리소스 요구, 및 상기 초기 리소스 혼잡의 표시에 기초하여 새로운 리소스 요구를 산출하는 단계를 포함하는 리소스 요구 조정 방법.And calculating the new resource request comprises calculating a new resource request based on the gain parameter, the weighting parameter, the initial resource request, and the indication of the initial resource congestion. 제15항에 있어서,The method of claim 15, 상기 리소스 소비자는 송신단 장치를 포함하고, 상기 리소스 요구는 상기 송신단 장치의 송신 레이트를 나타내는 리소스 요구 조정 방법.And the resource consumer comprises a transmitting end device, wherein the resource request indicates a transmission rate of the transmitting end device. 제15항에 있어서,The method of claim 15, 상기 새로운 리소스 요구는 수신단 장치의 능력에 의존하는 리소스 요구 조정 방법.And the new resource request depends on the capabilities of the receiving end device. 제15항에 있어서,The method of claim 15, 예상된 마크 확률을 결정하는 단계를 더 포함하는 리소스 요구 조정 방법.And determining the expected mark probability. 제24항에 있어서,The method of claim 24, 상기 예상된 마크 확률을 결정하는 단계는 상기 초기 리소스 혼잡의 표시에 기초하여 예상된 마크 확률을 추정하는 단계를 포함하는 리소스 요구 조정 방법.And determining the expected mark probability comprises estimating an expected mark probability based on the indication of the initial resource congestion. 제15항에 있어서, The method of claim 15, 상기 이득 파라미터(k)를 결정하는 단계는, Determining the gain parameter k,
Figure 112008090782839-pat00022
Figure 112008090782839-pat00022
를 산출하는 단계를 포함하고,Calculating a; 여기서 B는 상기 중간 장치의 큐에서 예상된 패킷들의 개수이고, MTI(Measurement Time Interval)는 초기 리소스 혼잡의 두 개의 연속적인 표시의 수신 사이의 시간의 길이이고, RTT는 왕복 시간(Round Trip Time)인,Where B is the number of packets expected in the intermediate device's queue, Measurement Time Interval (MTI) is the length of time between receipt of two consecutive indications of initial resource congestion, and RTT is Round Trip Time sign, 리소스 요구 조정 방법.How resource needs are adjusted.
중간 장치에 의해 검출된 초기 리소스 혼잡의 표시에 기초하여 리소스 소비자에 의한 가용 리소스에 대한 리소스 요구를 조정하기 위해 리액티브 대역폭 제어(reactive bandwidth control)를 제공하는 엔드 시스템(end system)으로서,An end system that provides reactive bandwidth control to adjust resource demand for available resources by a resource consumer based on an indication of initial resource congestion detected by an intermediate device, 상기 초기 리소스 혼잡의 표시를 수신하는 네트워크 전송층 모듈; 및A network transport layer module for receiving an indication of the initial resource congestion; And 상기 리소스 소비자와 관련된 가용 리소스의 공유에 관한 가중 파라미터를 결정하고, 상기 초기 리소스 혼잡의 표시에 기초하여, 상기 중간 장치를 통해 리소스 소비자에 의한 리소스 요구의 조정 크기에 대한 이득 파라미터를 결정하고, 리소스 소비자에 의한 가용 리소스의 사용을 조정하기 위해 상기 가중 파라미터 및 상기 이득 파라미터에 기초하여 새로운 리소스 요구를 산출하고, 상기 산출된 요구에 기초하여 상기 가용 리소스의 상기 리소스 소비자에 의한 사용을 조정하는, WTP(weight-per-mark) 모듈을 포함하고,Determine weighting parameters relating to the sharing of available resources associated with the resource consumer, and based on the indication of the initial resource congestion, determine a gain parameter for the coordination size of resource demands by resource consumers via the intermediate device, A WTP that calculates a new resource request based on the weighting parameter and the gain parameter to adjust the use of available resources by a consumer, and adjusts the use of the available resource by the resource consumer based on the calculated request. (weight-per-mark) module, 상기 새로운 리소스를 산출하는 것은,Computing the new resource,
Figure 112010079003970-pat00029
Figure 112010079003970-pat00029
인데, 여기서 Xn은 측정 시간 간격 n에서의 리소스 요구이고, k는 상기 이득 파라미터이고, w는 상기 가중 파라미터이고, pn은 상기 측정 시간 간격 n에서의 마크 확률 추정인,Where X n is the resource requirement in measurement time interval n, k is the gain parameter, w is the weighting parameter, and p n is the mark probability estimate in the measurement time interval n, 엔드 시스템.End system.
제27항에 있어서,The method of claim 27, 상기 리소스 소비자의 새로운 리소스 요구를 제공하는(applying) 미디어 컨트롤러를 더 포함하는 엔드 시스템.And a media controller applying the new resource request of the resource consumer. 제27항에 있어서, The method of claim 27, 인출 IP 패킷(outgoing IP packets)을 ECN(Explicit Congestion Notification) 가능으로서 마킹하는 마킹 모듈을 더 포함하는 엔드 시스템.And a marking module for marking outgoing IP packets as Explicit Congestion Notification (ECN) capable. 제27항에 있어서,The method of claim 27, 상기 이득 파라미터(k)를 결정하는 것은, Determining the gain parameter k,
Figure 112008090782839-pat00024
Figure 112008090782839-pat00024
를 산출하는 것을 포함하고,Calculating a, 여기서 B는 상기 중간 장치의 큐에서 예상된 패킷들의 개수이고, MTI(Measurement Time Interval)는 초기 리소스 혼잡의 두 연속적인 표시의 수신 사이의 시간의 길이이고, RTT는 왕복 시간(Round Trip Time)인,Where B is the number of packets expected in the intermediate device's queue, Measurement Time Interval (MTI) is the length of time between receipt of two consecutive indications of initial resource congestion, and RTT is the Round Trip Time. , 엔드 시스템.End system.
KR1020040005115A 2003-01-27 2004-01-27 Computer program manufacturing, resource demand adjustment methods, and end systems KR101046105B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/351,800 2003-01-27
US10/351,800 US7225267B2 (en) 2003-01-27 2003-01-27 Reactive bandwidth control for streaming data

Publications (2)

Publication Number Publication Date
KR20040068880A KR20040068880A (en) 2004-08-02
KR101046105B1 true KR101046105B1 (en) 2011-07-01

Family

ID=32594963

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040005115A KR101046105B1 (en) 2003-01-27 2004-01-27 Computer program manufacturing, resource demand adjustment methods, and end systems

Country Status (8)

Country Link
US (1) US7225267B2 (en)
EP (1) EP1441288B1 (en)
JP (1) JP4448341B2 (en)
KR (1) KR101046105B1 (en)
CN (1) CN100446466C (en)
AT (1) ATE428140T1 (en)
BR (1) BRPI0400085A (en)
DE (1) DE60327040D1 (en)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2851708B1 (en) * 2003-02-24 2005-05-27 At & T Corp METHOD FOR TRANSMITTING HIGH PRIORITY PACKETS IN AN IP TRANSMISSION NETWORK
US7400588B2 (en) * 2003-08-01 2008-07-15 Thomson Licensing Dynamic rate adaptation using neural networks for transmitting video data
US20050060424A1 (en) * 2003-09-15 2005-03-17 Sachin Garg Congestion management in telecommunications networks
US20050060423A1 (en) * 2003-09-15 2005-03-17 Sachin Garg Congestion management in telecommunications networks
US7478158B1 (en) * 2004-03-01 2009-01-13 Adobe Systems Incorporated Bandwidth management system
US7706782B1 (en) 2004-03-01 2010-04-27 Adobe Systems Incorporated System and method for developing information for a wireless information system
US7822428B1 (en) 2004-03-01 2010-10-26 Adobe Systems Incorporated Mobile rich media information system
US7174385B2 (en) * 2004-09-03 2007-02-06 Microsoft Corporation System and method for receiver-driven streaming in a peer-to-peer network
JP4649242B2 (en) * 2005-03-16 2011-03-09 株式会社日立製作所 Terminal adapter device
DE112006001591T5 (en) * 2005-06-15 2008-04-30 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive mobile telephony voice transport over an internet protocol network
TWI276334B (en) 2005-09-16 2007-03-11 Ind Tech Res Inst Methods for allocating transmission bandwidths of a network
GB0519521D0 (en) * 2005-09-24 2005-11-02 Ibm A dynamic bandwidth manager
CN1941681B (en) * 2005-09-30 2012-01-25 财团法人工业技术研究院 Internet wide band distribution
US20070124494A1 (en) * 2005-11-28 2007-05-31 Harris John M Method and apparatus to facilitate improving a perceived quality of experience with respect to delivery of a file transfer
US9219686B2 (en) * 2006-03-31 2015-12-22 Alcatel Lucent Network load balancing and overload control
US8451910B1 (en) * 2006-07-13 2013-05-28 Logitech Europe S.A. Wireless multimedia device with real time adjustment of packet retry function and bit rate modulation
US20080043643A1 (en) * 2006-07-25 2008-02-21 Thielman Jeffrey L Video encoder adjustment based on latency
US20080069135A1 (en) * 2006-09-19 2008-03-20 International Business Machines Corporation Discreet control of data network resiliency
US8630256B2 (en) * 2006-12-05 2014-01-14 Qualcomm Incorporated Method and system for reducing backhaul utilization during base station handoff in wireless networks
US8305914B2 (en) * 2007-04-30 2012-11-06 Hewlett-Packard Development Company, L.P. Method for signal adjustment through latency control
US8812712B2 (en) * 2007-08-24 2014-08-19 Alcatel Lucent Proxy-driven content rate selection for streaming media servers
US8407364B2 (en) * 2007-10-25 2013-03-26 Cisco Technology, Inc. Apparatus and method for providing a congestion measurement in a network
JP4989512B2 (en) * 2008-02-22 2012-08-01 キヤノン株式会社 Management apparatus and control method thereof
GB2461244A (en) * 2008-02-29 2009-12-30 Francis P Kelly Network congestion control with feedback to adjust flow rates of source nodes.
US20090238070A1 (en) * 2008-03-20 2009-09-24 Nuova Systems, Inc. Method and system to adjust cn control loop parameters at a congestion point
US20110035442A1 (en) * 2008-04-10 2011-02-10 Telefonaktiebolaget Lm Ericsson (Publ) Adaption of Metadata Based on Network Conditions
GB0809014D0 (en) * 2008-05-17 2008-06-25 Slever Solutions Ltd Improvements in and relating to the management of data congestion in a data network
US8059541B2 (en) 2008-05-22 2011-11-15 Microsoft Corporation End-host based network management system
US20100017530A1 (en) * 2008-06-23 2010-01-21 Hitachi, Ltd. Priority-Based Physical Layer Transmission Rate Control For Video Streaming Over Wireless Networks
JP5353494B2 (en) * 2009-07-03 2013-11-27 富士通株式会社 Communication device and communication method
EP2296324A1 (en) * 2009-09-14 2011-03-16 Thomson Licensing, Inc. Distributed flow mechanism for peer-to-peer streaming
US9007914B2 (en) * 2009-09-30 2015-04-14 Qualcomm Incorporated Methods and apparatus for enabling rate adaptation across network configurations
US9001663B2 (en) * 2010-02-26 2015-04-07 Microsoft Corporation Communication transport optimized for data center environment
US20110282980A1 (en) * 2010-05-11 2011-11-17 Udaya Kumar Dynamic protection of a resource during sudden surges in traffic
EP2410699A1 (en) * 2010-07-20 2012-01-25 Alcatel Lucent A method of controlling a quality of a service in a computer network, corresponding computer program product, and data storage device therefor
US20120087245A1 (en) 2010-10-06 2012-04-12 Qualcomm Incorporated Methods and apparatus for ecn receiver driven congestion control
US8595374B2 (en) 2010-12-08 2013-11-26 At&T Intellectual Property I, L.P. Method and apparatus for capacity dimensioning in a communication network
EP2664178B1 (en) * 2011-01-12 2015-03-11 Telefonaktiebolaget LM Ericsson (PUBL) Adaptive relative bit-rate manager for TCP depending flow control
US20120278441A1 (en) * 2011-04-28 2012-11-01 Futurewei Technologies, Inc. System and Method for Quality of Experience Estimation
US9772958B2 (en) * 2011-10-31 2017-09-26 Hewlett Packard Enterprise Development Lp Methods and apparatus to control generation of memory access requests
KR101922552B1 (en) * 2011-12-06 2018-11-29 삼성전자주식회사 Method amd apparatus for controlling traffic using adaptive streaming in multimedia content content transmission system
US9247448B2 (en) 2012-08-27 2016-01-26 Qualcomm Incorporated Device and method for adaptive rate multimedia communications on a wireless network
US9456383B2 (en) * 2012-08-27 2016-09-27 Qualcomm Incorporated Device and method for adaptive rate multimedia communications on a wireless network
US9215174B2 (en) * 2012-10-18 2015-12-15 Broadcom Corporation Oversubscription buffer management
US10616086B2 (en) 2012-12-27 2020-04-07 Navidia Corporation Network adaptive latency reduction through frame rate control
US8953452B2 (en) * 2013-05-16 2015-02-10 Cisco Technology, Inc. Enhancing performance of rapid channel changes and other playback positioning changes in adaptive streaming
EP2833589A1 (en) 2013-08-02 2015-02-04 Alcatel Lucent Intermediate node, an end node, and method for avoiding latency in a packet-switched network
JP6307615B2 (en) * 2013-09-06 2018-04-04 ヴィド スケール インコーポレイテッド Queue management based on user experience quality for routers for real-time video applications
CN103997434B (en) * 2014-05-21 2017-12-05 华为技术有限公司 The detection method and relevant device of network transmission situation
DE102014220428A1 (en) * 2014-10-08 2016-04-14 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Setting data rates in a video camera system
US9661530B2 (en) * 2014-12-12 2017-05-23 Apple Inc. Data traffic bearer selection based on backhaul statistics
EP3113428A1 (en) * 2015-06-30 2017-01-04 Alcatel Lucent A network node for checking compliance of a plurality of macro-flows
US10104511B2 (en) * 2015-11-13 2018-10-16 Raytheon Company Recommendations and notifications over limited connections
US10601681B2 (en) 2017-03-20 2020-03-24 International Business Machines Corporation Optimizing streaming graph topology based on service level agreement
US11005770B2 (en) * 2019-06-16 2021-05-11 Mellanox Technologies Tlv Ltd. Listing congestion notification packet generation by switch
CN110401511B (en) * 2019-07-25 2021-11-12 广州市百果园信息技术有限公司 Method, device, equipment and storage medium for determining transmission rate
CN111147395B (en) * 2019-12-25 2022-05-24 中国联合网络通信集团有限公司 Network resource adjusting method and device
EP3907943B1 (en) 2020-05-05 2022-04-27 Axis AB Round-trip estimation
US11616730B1 (en) * 2021-10-01 2023-03-28 Compira Labs Ltd. System and method for adapting transmission rate computation by a content transmitter
CN115277654B (en) * 2022-07-19 2024-02-27 宁波菊风***软件有限公司 Bandwidth resource allocation system of RTC system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0748141A2 (en) 1995-06-05 1996-12-11 AT&T IPM Corp. Congestion control system and method for packet switched networks providing max-min fairness
WO2002007381A2 (en) 2000-07-18 2002-01-24 Alcatel Domain based congestion management
US20020181394A1 (en) 2000-08-31 2002-12-05 David Partain Bandwidth broker for cellular radio access networks

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2038646C (en) 1990-03-20 1995-02-07 Katsumi Oomuro Atm communication system with optimal traffic control by changing the allocated bandwidth
US6192406B1 (en) * 1997-06-13 2001-02-20 At&T Corp. Startup management system and method for networks
US6424624B1 (en) * 1997-10-16 2002-07-23 Cisco Technology, Inc. Method and system for implementing congestion detection and flow control in high speed digital network
SG87029A1 (en) * 1999-05-08 2002-03-19 Kent Ridge Digital Labs Dynamically delayed acknowledgement transmission system
US7058723B2 (en) * 2000-03-14 2006-06-06 Adaptec, Inc. Congestion control for internet protocol storage
US6671724B1 (en) * 2000-03-21 2003-12-30 Centrisoft Corporation Software, systems and methods for managing a distributed network
JP4657433B2 (en) * 2000-10-02 2011-03-23 富士通株式会社 Bandwidth control service management device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0748141A2 (en) 1995-06-05 1996-12-11 AT&T IPM Corp. Congestion control system and method for packet switched networks providing max-min fairness
WO2002007381A2 (en) 2000-07-18 2002-01-24 Alcatel Domain based congestion management
US20020181394A1 (en) 2000-08-31 2002-12-05 David Partain Bandwidth broker for cellular radio access networks

Also Published As

Publication number Publication date
EP1441288A2 (en) 2004-07-28
JP2004236316A (en) 2004-08-19
DE60327040D1 (en) 2009-05-20
EP1441288B1 (en) 2009-04-08
JP4448341B2 (en) 2010-04-07
BRPI0400085A (en) 2004-09-14
CN100446466C (en) 2008-12-24
EP1441288A3 (en) 2006-08-09
CN1518283A (en) 2004-08-04
US20040148423A1 (en) 2004-07-29
ATE428140T1 (en) 2009-04-15
US7225267B2 (en) 2007-05-29
KR20040068880A (en) 2004-08-02

Similar Documents

Publication Publication Date Title
KR101046105B1 (en) Computer program manufacturing, resource demand adjustment methods, and end systems
US11044290B2 (en) TCP cross traffic rate control
US8171123B2 (en) Network bandwidth detection and distribution
US20100005178A1 (en) Method and system for firewall friendly real-time communication
US20050021830A1 (en) Data communications method and system using buffer size to calculate transmission rate for congestion control
WO2002033896A2 (en) Method and apparatus for characterizing the quality of a network path
Baldo et al. RTCP feedback based transmission rate control for 3G wireless multimedia streaming
US20020075895A1 (en) Transmission rate controller and transmission rate control method
Goel et al. Low-latency adaptive streaming over TCP
US20060002425A1 (en) Determining available bandwidth in a network
US10574706B2 (en) Method and system for upload optimization
Papadimitriou et al. SSVP: A congestion control scheme for real-time video streaming
EP1687955B1 (en) Feedback provision using general nack report blocks and loss rle report blocks
JP5533177B2 (en) Packet loss rate estimation device, packet loss rate estimation method, packet loss rate estimation program, and communication system
Papadimitriou et al. A rate control scheme for adaptive video streaming over the internet
Hisamatsu et al. Non bandwidth-intrusive video streaming over TCP
Hsiao et al. Streaming video over TCP with receiver-based delay control
Kadhum et al. Congestion-aware TCP-friendly system for multimedia transmission based on UDP
JP2005184494A (en) Data communication management method
KR102491033B1 (en) Round-trip estimation
Vu et al. Dynamic packet size mechanism (DPSM) for multimedia in wireless networks
Kadhum et al. Responsive user datagram protocol-based system for multimedia transmission
Rajiullah et al. Performance analysis and improvement of PR-SCTP for small messages
Papadimitriou et al. Performance Evaluation of Real-Time Transport with Link-layer Retransmissions in Wired/Wireless Networks.
Cai A thin-layer protocol for utilizing multiple paths

Legal Events

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

Payment date: 20140516

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee