KR20010074883A - 적은 대기 시간 통신 시스템 및 그 방법 - Google Patents

적은 대기 시간 통신 시스템 및 그 방법 Download PDF

Info

Publication number
KR20010074883A
KR20010074883A KR1020017002653A KR20017002653A KR20010074883A KR 20010074883 A KR20010074883 A KR 20010074883A KR 1020017002653 A KR1020017002653 A KR 1020017002653A KR 20017002653 A KR20017002653 A KR 20017002653A KR 20010074883 A KR20010074883 A KR 20010074883A
Authority
KR
South Korea
Prior art keywords
data
amount
communication system
transmission
transmitting
Prior art date
Application number
KR1020017002653A
Other languages
English (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 KR20010074883A publication Critical patent/KR20010074883A/ko

Links

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
    • 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/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
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/006Networks other than PSTN/ISDN providing telephone service, e.g. Voice over Internet Protocol (VoIP), including next generation networks with a packet-switched transport layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명에 따라, 실시간 오디오 및 비디오 등의 실시간 통신에 적용될 수 있는 적은 대기 시간의 큰 처리량 통신 시스템은 피드백을 사용하여 목표량에 이르기까지 송신 용도와 수신 용도 사이에 전송 중인 전체적인 데이터를 제어한다. 결과적으로, 시스템은 이 시스템과 연관된 모뎀(52) 및 기타 버퍼가 항상 충만될 때 그것이 행한 것과 거의 동일한 처리량으로 작동하지만, 실질적으로 충만되지 않은 모뎀 및 기타 버퍼에 의해 보다 느려진 대기 시간으로 작동한다. 이 시스템은 TCP 및 UDP 프로토콜에 따라 모뎀-대-모뎀 전화 통신 및 인터넷 통신 모두에 적용될 수 있다. 이 시스템은 UDP 프로토콜과 함께 사용하기 위한 순방향 에러 정정 및 재전송 도식을 포함하고, 가상 채널과 연관시켜 사용하기 위한 스케줄링 프로토콜을 포함하기도 한다.

Description

적은 대기 시간 통신 시스템 및 그 방법{System and method for low latency communication}
도 1에 나타낸 바와 같이, 컴퓨터들 사이에 데이터를 전송하기 위한 대표적인 시스템(10)은 송신 컴퓨터(14)로부터 데이터를 변조시키고 변조된 데이터를 전화 시스템(16) 상으로 전송하는 송신 모뎀(12)을 포함한다. 이어서, 수신 모뎀(18)은 수신 컴퓨터(20)에 의해 사용하기 위해 변조된 데이터를 수신하고 복조시킨다.
대표적인 데이터 전송 시스템(10)의 성능은 처리량, 대기 시간, 및 지터에 의하여 특성화될 수 있다. "처리량"은 주어진 기간 동안 송신 컴퓨터(14)에 의해 송신된 데이터의 양을 의미한다. "대기 시간"은 수신 컴퓨터(20)에 도달하기 위해 송신 컴퓨터(14)에 의해 송신된 데이터의 일부(일반적으로 "패킷"이라 칭함)를 취하는 데 소요되는 시간의 양을 의미한다. 더욱이, "지터"는 존재하는 경우 데이터패킷의 송신 및 후속하는 수신 중에 발생하는 대기 시간의 변화를 의미한다.
실시간 이외의 용도에서, 데이터 전송 시스템(10)을 위해 가장 중요한 성능 특성은 통상적으로 처리량이다. 따라서, 예를 들면, 시스템(10)을 통해 팩시밀리 송신 및 수신할 때, 팩시밀리 송신하는 데 소요되는 전체적인 시간의 양을 최소화하는 데(즉, 최대화시킨 처리량) 중점을 두고 있고, 단, 팩시밀리를 구성하는 개개의 데이터 패킷을 송수신하는 데 소요되는 시간을 최소화하거나(즉, 대기 시간), 또는 다른 것에 비해 하나의 데이터 패킷을 송수신하는 데 소요되는 시간의 변화를 최소화하는 데(즉, 지터) 있어서 거의 중점을 두지 않거나 또는 전혀 중점을 두고 있지 않다.
이와는 대조적으로, 실시간 용도는 최대화시킨 처리량에 동일하게 중점을 두는 경향이 있지만, 이들은 전형적으로 지터 및 대기 시간을 최소화시키는 데 역시 중점을 둔다. 예를 들면, 시스템(10)을 통한 실시간 오디오 전송을 고려하자. 봅(Bob)이 송신 컴퓨터(14)에 접속된 마이크로폰(도시하지 않음)으로 말하고, 시스템(10)에 관련된 특정 전송 지연 후, 메어리(Mary)는 수신 컴퓨터(20)에 접속된 스피커(도시하지 않음)에서 나오는 봅의 음성을 듣게 된다. 봅의 음성을 가능한 한 "실제" 방식으로 듣기 위해, 메어리는 송신 컴퓨터(14)가 봅의 음성을 송신하는 데 소요되는 시간의 양(즉, 최대화시킨 처리량)을 최소화하는 것을 염려하지 않는다: 과도한 지터는 메어리가 봅의 음성을 듣는 피치를 두드러지고 부자연스럽게 변화시킬 수 있고, 축음기로부터 나오는 음악의 피치는 축음기의 턴테이블이 너무 느리거나 너무 빠르게 변화하는 경우에 훨씬 더 부자연스럽게 변화하기 때문에 메어리는지터를 최소화시킬 것을 염려한다. 또한, 상기 전송이 쌍방향 전송이어서 메어리가 봅에게 말할 수도 있는 경우, 과도한 대기 시간은 봅 및 메어리 모두에 대해 이들이 행한 진술과 이들이 그 진술을 수신하는 응답 사이에 부자연스런 지연을 유발할 수 있기 때문에, 메어리 및 봅 모두는 대기 시간을 최소화시킬 것을 또한 염려한다.
따라서, 그러한 실시간 용도의 적은 지터 및 적은 대기 시간에 대한 필요성을 다루기 위해 적어도 3가지 종래의 통신 프로토콜이 개발되어 왔다.
"H.324 멀티미디어 통신 표준"이라 칭하는 제 1 프로토콜은 특징과 연관된 지연을 제거하기 위해 최신 모뎀에서 에러 정정 및 데이터 압축 하드웨어 특징을 턴오프할 것을 제안하고 있다. 불행하게도, 이들 하드웨어 피처를 턴오프시키는 것은 컴퓨터 프로세서에 심한 연산 부하를 야기시키는 소프트웨어의 동일한 특징을 구현시킬 것을 필요로 한다. 또한, 하드웨어 에러 정정 및 데이터 압축을 제거하는 것은 시작 및 종료 비트가 모뎀에 의해 송신된 데이터 스트림에 부가되는 것을 요하고, 그에 따라 모뎀의 처리량을 적어도 20% 감소시킨다.
"V.80 표준"이라 칭하는 제 2 프로토콜은 송신 컴퓨터(14)가 모뎀(12)의 내부 버퍼에 체류하는 미전송 데이터의 양을 판정하기 위해 송신 모뎀(12)을 폴링하는 시스템을 제안하고 있다. 이어서, 송신 컴퓨터(14)는 그에 따른 내부 버퍼의 최대 임계값(즉, 버퍼 내에서 허용된 미전송 데이터의 최대량)을 제어한다. V.80 표준은 모뎀(12)의 내부 버퍼의 최대 임계값을 조절함으로써 송신 모뎀(12)의 대기 시간을 조절하지만, 그것은 송수신 컴퓨터(14 및 20)의 컴퓨터 운영 시스템에서 버퍼와 연관된 대기 시간을 조절할 필요성 또는 전화 시스템(16)의 버퍼와 연관된 대기 시간을 조절할 필요성을 고려하지 않는다. V.80 표준은 또한 하드웨어에서 구현되어야 할 필요성을 경험하고, 이는 그것이 현재 사용중인 대다수의 모뎀에 부가될 수 없음을 의미한다.
인터넷 상의 실시간 용도를 고려할 때 적은 지터 및 적은 대기 시간에 대한 필요성이 역시 야기된다. "H.323 표준"이라 칭하는 제 3 프로토콜은 인터넷 상의 적은 대기 시간 통신을 다루기 위해 개발되었다. 이러한 표준은 가장 보편적으로 사용되는 전송 제어 프로토콜(TCP) 대신에 인터넷 상의 실시간 통신을 위해 다른 프로토콜인 사용자 데이터그램 프로토콜(UDP)의 사용을 제안한다. H.323 표준은 UDP가 TCP에 의해 요구되는 수신기로부터 송신기로의 인식 전송을 없앴고, 그에 따라 정체를 감소시키고 송신기로부터 수신기로 데이터의 실시간 전송을 가속화시켰기 때문에 TCP 대신에 실시간 용도로 UDP의 사용을 제안한다. 불행하게도, 많은 실시간 용도의 요건중의 하나는 송신된 데이터의 전달을 보증하는 것이고, UDP에서 인식 송신의 결여는 송신된 데이터의 전달이 인식 없이 보증될 수 없기 때문에 인터넷에 기초한 실시간 용도에 대한 선택을 신뢰할 수 없게 한다.
따라서, 당업계에서는 모뎀, 인터넷 및 유사한 통신 시스템 상의 적은 대기 시간 통신을 위한 시스템 및 그 방법이 요구된다. 그러한 시스템 및 방법은 상기 H.323, H.324 및 V.80 표준과 연관된 문제점들을 피할 수 있어야 한다.
본 발명은 모뎀 및 기타 통신 장치용 통신 프로토콜에 관한 것이며, 보다 상세하게는 전화선, 인터넷 통신 및 기타 통신 시스템 상의 직접적인 모뎀-대 모뎀 통신을 위한 적은 대기 시간, 큰 처리량의 통신 프로토콜을 구현하는 시스템 및 그 방법에 관한 것이다.
도 1은 컴퓨터 간에 데이터를 송신하기 위한 종래의 모뎀에 기초한 시스템을 도시하는 도면.
도 2는 전화선을 가로지르는 모뎀-대-모뎀 통신에서 평균 처리량과 평균 대기 시간 사이에서 발명자들이 발견한 관계를 도시하는 그래프.
도 3은 인터넷 통신에서 평균 처리량과 평균 대기 시간 사이에서 발명자들이 발견한 관계를 도시하는 그래프.
도 4는 본 발명에 따른 모뎀-대-모뎀 통신을 도시하는 블록도.
도 5는 도 4의 통신 시스템에서 구현된 적은 대기 시간 프로토콜을 도시하는 흐름도.
도 6a 및 6b는 도 5의 적은 대기 시간 프로토콜에서 개시 과정을 도시하는 흐름도.
도 7은 본 발명에 따른 데이터의 패킷화 및 토큰화를 도시하는 도면.
도 8은 본 발명에 따른 원형 버퍼를 도시하는 도면.
도 9는 본 발명에 따른 가상 채널을 갖는 모뎀-대-모뎀 통신 시스템을 도시하는 블록도.
도 10은 본 발명의 인터넷-기초 구현을 도시하는 도면.
도 11은 도 10의 인터넷-기초 구현의 UDP/IP 버전의 메시지 포맷을 도시하는 도면.
도 12a 내지 도 12m은 도 11의 UDP/IP 버전의 오퍼레이션을 도시하는 도면.
도 13은 본 발명에 따른 컴퓨터-판독 가능한 기억 매체를 도시하는 도면.
본 발명에 따른 통신 시스템을 운영하는 하나의 적은 대기 시간의 방법에서,통신 시스템이 운영해야 하는 송신 중인 데이터의 목표량이 먼저 선택된다. "송신 중인 데이터"는 무엇보다도 예를 들면 컴퓨터 시스템의 컴퓨터 용도에 의해 전송된 임의의 데이터를 의미하고, 예를 들면 전화선 또는 인터넷 등의 통신 채널에 의해 전송하는 컴퓨터 용도로부터 분리되는 통신 시스템의 다른 컴퓨터 용도에 대해 의도되지만 아직 그에 의해 수신되지 않는다. 송신 중인 데이터의 목표량은 통신 시스템이 비교적 큰 처리량 및 비교적 적은 대기 시간으로 운영될 수 있도록 선택된다. 송신 중인 데이터의 선택된 목표량에 따라, 통신 시스템을 통해 데이터 전송이 시작된다. 이어서, 피드백은 데이터의 전송 결과로서 내부에 제공된 송신 중인 데이터의 양을 나타내는 통신 시스템으로부터 수신된다. 이러한 피드백에 응답하여, 데이터의 전송은 통신 시스템에 제공된 송신 중인 데이터의 양이 송신 중인 데이터의 선택된 목표량을 초과하지 않도록 제어된다.
본 발명의 다른 실시예에서, 상기 방법은 컴퓨터-판독 가능한 기억 매체 상에 저장되고, 가상 채널을 포함하는 통신 시스템에서 구현되고, TCP/IP 및 UDP/IP 프로토콜을 포함하는 인터넷-기초 통신 시스템에서 구현된다.
본 발명의 또 다른 실시예에서, 컴퓨터 등의 전자 시스템은 시스템의 통신 채널을 통해 통신 시스템의 수신 사이트에 데이터를 송신하기 위한 장치(예, 모뎀)를 포함한다. 전자 시스템의 다른 장치는 예를 들면 통신 시스템이 운영해야 하는 송신 중인 데이터의 목표량을 선택하고, 데이터의 송신으로 초래되는 통신 시스템에 제공된 송신 중인 데이터의 양을 나타내는 수신 사이트로부터 피드백을 수신하고, 통신 시스템에 제공된 송신중인 데이터의 양이 송신중인 데이터의 선택된 목표량을 초과하지 않도록 수신된 피드백에 응답하여 통신 채널을 통해 데이터의 전송을 제거하기 위해 컴퓨터 프로그램에 의해 채택된다.
본 발명의 또 다른 실시예에서, 통신 시스템은 송신 사이트로서 상기 전자 시스템을 혼입하고, 또한 송신 사이트에 기재된 피드백을 제공하기 위한 장치를 갖는 수신 사이트를 혼입한다.
전화선 상의 모뎀-대-모뎀 통신에서 및 인터넷을 가로지르는 통신에서 평균 대기 시간과 평균 처리량 사이의 지금까지 공지되지 않은 관계를 먼저 기재할 것이다. 전화선을 가로지르는 모뎀-대-모뎀 통신에서 이러한 관계를 이용하는 발명자들의 적은 대기 시간 프로토콜을 구현하기 위한 시스템을 이어서 기재할 것이고, 그 후에 가상 채널 및 인터넷 통신을 포함하는 본 발명의 구현에 대한 설명이 뒤따른다.
처리량-대기 시간 관계
최대화 처리량에 관한 종래의 생각은 모뎀이 데이터를 전송할 수 있는 것보다 더 빨리 모뎀에 데이터를 기입함으로써 최대 처리량이 유일하게 달성될 수 있다는 것이다. 이는 모뎀의 내부 버퍼가 항상 충만한 것을 보장하고, 따라서 그러한 생각이 계속되어, 송신하기 위한 다음 기회가 발생할 때마다 데이터는 버퍼 내에서 항상 대기하고 있기 때문에 최대 처리량이 달성되는 것을 보장한다.
전화선을 가로지른 모뎀-대-모뎀 통신에서 평균 대기 시간에 대한 평균 처리량의 그래프로 도 2에 나타낸 바와 같이, 모뎀의 내부 버퍼가 충만된 오퍼레이션(22)의 일 지점은 사실상 평균 처리량을 최대화시키지 않고, 큰 평균 대기 시간의 비용으로 그와 같이 행한다. 그래프로부터 알 수 있듯이, 모뎀의 내부 버퍼가 충만되지 않은 오퍼레이션의 일 지점(24)("니(knee)" 포인트라 칭함)은 평균 처리량을 여전히 최대화시키지만, 훨씬 더 적은 평균 대기 시간을 제공하기도 한다. 이미 고찰한 바와 같이, 대기 시간을 최소화시키고, 그에 따라 지터를 최소화시키는 것은 실시간 용도에 대해 중요하고; 그리고 그것은 종래의 사고에 의해 권장된 지점(22) 대신에 니 포인트(24)에서 모뎀에 의해 작동됨으로써 평균 처리량에 의해 비용을 거의 들이지 않거나 또는 전혀 들이지 않고 달성될 수 있는 도 2의 그래프로부터 명백하다.
마찬가지로, 인터넷 통신에서 평균 대기 시간에 대한 평균 처리량의 그래프로 도 3에 나타낸 바와 같이, 모뎀의 내부 버퍼가 충만되는 오퍼레이션의 일 지점(26)은 큰 평균 대기 시간에 기인한다. 이와는 대조적으로, 모뎀의 내부 버퍼가 충만되지 않은 오퍼레이션의 일 지점(28)(역시 "니" 포인트라 칭함)은 오퍼레이션 지점(26)과 거의 동일한 평균 처리량을 여전히 제공하지만, 훨씬 더 적은 평균 대기 시간을 제공하기도 한다.
따라서, 본 발명은 예를 들면 평균 대기 시간에 대한 평균 처리량의 니 포인트에 모뎀에 기초한 시스템을 포함하는 통신 시스템을 운영하기 위한 순방향 장치 및 그 방법에 관한 것이다.
적은 대기 시간 프로토콜
도 4에 나타낸 바와 같이, 본 발명에 따른 통신 시스템(44)에서 한 쌍의 컴퓨터(40 및 42)는 통신 채널(50)을 통해 서로 데이터를 전하는 한 쌍의 컴퓨터 애플리케이션(46 및 48)을 포함한다.
본 발명을 컴퓨터에 관하여 기재할 것이지만, 본 발명의 기술 분야의 숙련자라면 본 발명이 도 2 및 3에 예시된 것들과 유사한 니 포인트 특성을 나타내고 적은 대기 시간 및 큰 처리량을 요하는 임의의 유형의 전자 장치들 사이의 통신에 동일하게 적용될 수 있음을 이해할 것이다. 또한, 본 발명이 통신 채널을 통해 다른 컴퓨터 애플리케이션에 따라 데이터를 교환하는 임의의 컴퓨터 애플리케이션에 적용될 수 있고, 애플리케이션은 소프트웨어, 하드웨어 또는 이들 모두로 구현되는지 여부를 이해해야 할 것이다. 마지막으로, 본 발명은 예를 들면 전화선, 스위칭 장비, 인터넷 라우터, 케이블선, 셀 방식 장비, 인공 위성 및 기타 디지털 방송 전파 채널, T1 채널 등을 포함하는 임의의 통신 채널에 적용될 수 있다.
통신 채널(50)의 양 단부 상의 모뎀(52 및 54)은 이들이 운영 시스템, 통신 드라이버 및 컴퓨터(40 및 42) 각각의 관련 버퍼(60 및 62)로부터 수신하는 아직 전송되어야 할 데이터를 기억하기 위한 내부 버퍼(56 및 58)를 포함한다. 물론, 그것은 본 발명이 모뎀에 기초한 시스템으로 제한되지 않음을 이해해야 할 것이다.
이러한 "아직 전송될" 데이터는 애플리케이션(46 및 48)에서 시작하고, 운영 시스템, 통신 드라이버 및 관련 버퍼(60 및 62)로의 그의 흐름은 상기한 니 포인트에서 시스템(44)의 오퍼레이션을 보장하기 위해 낮은 대기 시간 프로토콜(64 및 66)에 의해 모니터 및 조절된다. 낮은 대기 시간 프로토콜(64 및 66)은 소프트웨어로 구현되는 것으로서 여기 기재될 수 있지만, 그것은 하드웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수도 있음을 이해해야 할 것이다.
도 5에 보다 상세히 나타낸 바와 같이, 낮은 대기 시간 프로토콜(64)(프로토콜(66)(도 4)과 동일할 수 있음)은 일반적으로 일련의 개시 절차(68)를 포함하고, 이어서 컴퓨터 애플리케이션(46 및 48) 사이의 전송 중인 데이터를 추정하는 절차(70)("FIFO"라 칭함), 상기한 바의 니 포인트에서 시스템(44)(도 4)을 운영하기 위해 추정된 FIFO에 따라 데이터 전송을 조절하기 위한 절차(72)를 포함하는 루프가 뒤따른다.
FIFO는 애플리케이션(46 및 48) 중의 하나에 의해 전송되고, 애플리케이션(46 및 48) 중의 나머지에 대해 의도되지만 그에 의해 여전히 수신되지 않는 임의의 데이터를 포함하는 것을 이해해야 한다. 따라서, 예를 들면, FIFO는 운영 시스템 및 통신 드라이버 버퍼(60 및 62)(도 4), 모뎀 버퍼(56 및 68)(도 4), 및 통신 채널(50)과 연관된 임의의 버퍼(도 4)에 잔류하는 데이터를 포함한다.
개시 절차
도 6a에 나타낸 바와 같이, 개시 절차(68)는 모뎀(54)(도 4)과의 접속을 확립하는 모뎀(52)(도 4)으로 시작한다. 이어서, 모뎀(52 및 54)은 압축 불가능한 데이터의 블록(예, 3,600바이트)을 교환하고, 모뎀(54)의 접속률은 시작으로부터 그것이 모뎀(52)에 의해 수신됨에 따라 블록의 단부에 이르는 시간을 측정함으로써 산출된다. 모뎀(52)의 접속률은 블록이 모뎀(54)에 의해 수신되는 것에 대응하는 방식으로 산출된다. 이어서 산출된 접속률은 각각이 그 자신의 접속률을 알도록모뎀(52 및 54)에 의해 교환된다.
확립된 접속 및 산출되고 교환된 접속률에 의해, 개시 절차(68)는 오퍼레이션의 니 포인트를 결정하고, 이는 "최적 FIFO"라 칭한다. 초기에, 다른 디폴트 값이 마찬가지로 작동할 수 있더라도, FIFO는 512 바이트의 디폴트 값으로 (아래 기재되는 방식으로) 조절된다. 이러한 현재 FIFO에서 처리량을 측정하기 위해, 측정의 시작을 지시하는 이스케이프 문자가 모뎀(52)에 의해 전송된다. 이어서, 모뎀(52)은 고정된 수의 데이터 패킷을 송신하고, 모뎀(52)에 의해 달성된 처리량은 데이터 패킷이 모뎀(54)에 의해 수신됨에 따라 산출된다. 이어서, 이와 같이 산출된 처리량은 모뎀(54)에 의해 모뎀(52)으로 되 전송된다. 산출된 처리량이 접속률의 95% 미만인 경우, 현재 FIFO는 128바이트 만큼 증가되고, 처리량 측정은 반복된다. 대신에 산출된 처리량이 접속률의 95% 이상이고, 현재 FIFO에서 산출된 처리량이 이전의 FIFO에서 산출된 처리량과 동일한 경우, 현재 FIFO의 값은 최적 FIFO에 할당된다. 그렇지 않으면, 현재 FIFO는 128바이트만큼 감소하고, 처리량 측정은 반복된다.
이러한 알고리즘을 사용함으로써, 모뎀(52 및 54) 사이에 확립된 접속을 위한 최적 FIFO가 판정된다. 이러한 알고리즘을 위한 의사 부호는 다음과 같다:
물론, 상기한 바의 512바이트의 디폴트 FIFO 값 128바이트의 스텝-업 또는 스텝-다운 FIFO 값, 및 95%의 임계값 모두는 단지 대표적인 값이고, 본 발명은 오퍼레이션에 이들 값을 사용하는 것으로만 제한되지 않음을 이해해야 한다.
도 6b에 나타낸 바와 같이, 일단 최적 FIFO가 결정되면, 개시 절차(68)는 하나의 마스터 및 나머지 슬레이브를 선출하도록 난수를 교환하는 모뎀(52 및 54)에 의해 계속된다. 이어서, 마스터(예, 모뎀(52))는 1바이트를 모뎀(54)에 전송하고, 이는 그 바이트를 모뎀(52)에 되전송한다. 이어서, 일주 시간이 산출된다. 이어서, 마스터는 제 2 바이트를 송신하고, 일주 시간의 절반 동안 대기하고, 이어서 현재 시간을 기준 시간으로서 그 지점에 플래그한다. 슬레이브는 기준 시간으로서 제 2 바이트를 수신함에 따른 현재 시간을 마크한다. 이 지점에서, 2개의 모뎀(52 및 54)이 시간 내에 동기화된다.
상기 동기화 과정에 있어서, 모뎀(52)으로부터 모뎀(54)에 이르는 항해 시간은 모뎀(54)으로부터 모뎀(52)에 이르는 항해 시간과 동일하다는 임시적인 가정이 존재할 수 있음에 유의해야 한다. 이는 일반적으로 정확한 경우는 아닐 수 있지만, 상기 동기화 과정은 본 발명의 요건에 충분한 매우 저가의 공통 과정이다. 물론, 기타 보다 정확한 동기화 방법이 본 발명에 연계되어 사용될 수 있다. 또한, 컴퓨터(40 및 42)(도 4)의 독립적인 클록에서 드리프트는 일반적으로 장기간의 접속 세션 동안 고정된 간격으로(예, 30분마다) 모뎀(52 및 54)을 재동기화시킬 필요가 있다.
FIFO의 추정
도 7에 나타낸 바와 같이, FIFO를 추정하는 공정(70)(도 5)은 모뎀(52)에 의해 데이터를 전송하는 동안 시작한다. 애플리케이션(46)(도 4)으로부터 입력 데이터(74)의 연속 스트림은 데이터를 126바이트 부분으로 세분함으로써 패킷화된다. 1바이트 인식 토큰(76) 및 1바이트 타이밍 토큰(78)은 전송을 위한 일련의 128바이트 패킷을 형성하기 위해 각각의 126바이트 부분에 부가된다. 인식 및 타이밍 토큰(76 및 78)은 아래 보다 상세히 설명할 것이다.
도 8에 나타낸 바와 같이, 컴퓨터(40)(도 4)에서 원형의 시간 인덱스 버퍼(80)는 그의 256개의 셀(82) 각각 내의 모뎀(52)에 의해 전송된 전체 바이트 수의 기록을 저장한다. 각각의 셀(82)은 그의 데이터가 기입되는 시간에 따라 인덱스되고, 셀(82) 각각은 8초마다 중복 기입된다. 물론, 본 발명은 특정 수의 셀 또는 이들 셀에 의해 제공된 특정 초 수로 제한되지 않는다.
실시예는 버퍼(80)의 콘텐츠를 설명하는 데 도움이 되어야 한다. 9.0초의 통신 세션에 모뎀(52)은 전체 8킬로바이트를 송신한다고 가정하자. 결과적으로 8킬로바이트를 나타내는 수는 색인 번호(31)로 셀에 저장될 수 있다. 세션이 시작된지 12.0초 만에, 세션의 시작 이래 전송된 전체 바이트 수를 나타내는 수(예, 14킬로바이트)가 색인 번호(127)로 셀에 저장될 수 있다. 이러한 공정은 통신 세션의 시작으로부터 셀과 연관된 색인 번호로 나타낸 시간의 특정 지점에 이르기까지 모뎀(52)에 의해 송신된 전체 바이트 수를 모든 셀이 항상 함유하도록 연속적으로 발생한다. 버퍼(80)는 전송 중에 중복 기입되기 때문에, 초 단위로 버퍼(80)의 전체 길이(예, 8초 길이)는 전형적으로 전송된 패킷에 의해 경험되는 최대 대기 시간보다 더 길게 선택되어야 한다. 회로 버퍼(80)의 역할은 아래 보다 상세히 설명할 것이다.
모뎀(54)(도 4)은 그것이 모뎀(52)에 전송하는 데이터 패킷에 인식 및 타이밍 토큰을 부가함으로써 모뎀(52)(도 4)으로부터 데이터 패킷의 수신을 인식한다. 보다 상세하게는, 인식 토큰은 최종 인식 토큰이 전송되었기 때문에 모뎀(54)에 의해 수신된 바이트 수를 나타내는 1바이트 토큰이다. 수신된 바이트 수는 64바이트 단위의 인식 토큰으로 나타냄으로써, 예를 들면, 최종 인식 토큰이 전송되었기 때문에 128바이트가 수신된 경우, 현재 인식 토큰은 2진수로 [00000010]일 수 있다. 1 인식 토큰으로 인식될 수 있는 수신된 최대 바이트 수는 (28×64 = 16킬로바이트)이다. 물론, 약 8비트쯤(즉, 1바이트) 및 각각의 유니트로 나타낸 약 64바이트인 인식 토큰은 역시 본 발명에 따라 사용될 수 있다.
타이밍 토큰은 n개의 최소 유효 비트의 T와 동일한 1바이트 토큰이고, 이는 다음과 같이 산출된다,
T=[(현재 시간 - 기준 시간)×2n] ÷ S
여기서 "n"은 타이밍 토큰의 비트수(예, 8)이고, "S"는 원형 버퍼(80)(도 8)의 전체 초 수(예, 8)이다. 타이밍 토큰은 유일하게 n개의 최소 유효 비트 T를 사용하기 때문에, 타이밍 토큰은 원형 버퍼(80)와 마찬가지로 S초마다 "감겨진다." 따라서, 예를 들면, 현재 시간이 8.5초이고, 기준 시간이 0.0초인 경우, T=2진수로 [100010000]이고, 타이밍 토큰은 2진수로 [00010000]이다.
모뎀(52)이 인식 토큰 및 타이밍 토큰을 함유하는 모뎀(54)으로부터 데이터 패킷을 수신할 때, 프로토콜(64)(도 4)은 인식된 전체 바이트 수를 저장하는 인식 버퍼(도시하지 않음)에 인식 토큰으로 나타낸 인식된 전체 바이트 수를 컴퓨터(40)가 부가하게 하고, 수신된 가장 최근의 타이밍 토큰을 저장하는 타이밍 버퍼(도시하지 않음)를 컴퓨터(40)가 갱신하게 한다. 이어서, 프로토콜(64)은 타이밍 버퍼에 저장된 타이밍 토큰으로 색인된 원형 버퍼(80)(도 8)의 셀에 저장된 전송된 전체 바이트의 데이터로부터 인식 버퍼에 저장된 인식된 전체 바이트 수를 컴퓨터(40)가 감산하게 한다. 결과적으로, 모뎀(52)에 의해 수신된 가장 최근의 타이밍 토큰으로 나타낸 시간 현재의 모뎀(54)에 의해 인식된 전체 바이트 수는 동시 현재의 모뎀(52)에 의해 전송된 전체 바이트 수로부터 감산된다. 결과의 차이는 FIFO의 비교적 정확한 추정치, 즉, 타이밍 버퍼에 저장된 가장 최근의 타이밍 버퍼에 의해 제공된 시간 현재 모뎀(52)에 의해 송신되지만, 모뎀(54)에 의해 아직수신되지 않은 전체 바이트 수이다.
FIFO를 추정하기 위한 상기 공정은 신규한 데이터 패킷이 모뎀(52)에 의해서 (및 모뎀(54)에 의해서) 수신될 때마다 반복된다.
FIFO의 제어
일단 다시 도 5를 참조하면, 일단 FIFO를 추정하는 절차(70)가 완료되고, 필요에 따라 FIFO를 제어하는 절차(72)가 시작된다. 절차(72)는 다음과 같이 운영된다:
따라서, 128바이트의 "윈도우"가 상위 타겟 FIFO와 하위 타겟 FIFO 사이의 최적의 FIFO 둘레에 생성되고, 다음 패킷의 전송은 추정된 FIFO가 윈도우 밖인 경우 지연되거나 또는 진척된다. 본 명세서에 기재된 128바이트 크기의 윈도우가 유용한 것으로 밝혀졌지만, 다른 크기의 윈도우가 본 발명과 관련하여 사용될 수 있거나 또는 본 발명은 전혀 윈도우 없이 운영될 수 있다(하지만 이는 전송률의 빈번한 조정를 바람직하지 못하게 유도할 수 있음) 또한, 전송률이 임의의 변화로부터 피드백은 변화 사이트에 도달하도록 데이터 패킷의 일주 시간과 동일한 양의 시간을 취하기 때문에, 전송률의 모든 변화는 단지 FIFO의 제어에서 발진을 피하기 위해 최종 변화가 구현된 이래 데이터 패킷의 일주 시간과 동일한 시간이 소요된 후에만 구현된다.
실험은 상기 적은 대기 시간 프로토콜의 효율을 보여준다. 도 4의 시스템(44)을 사용하여 얻은 한가지 그러한 실험의 결과는 아래 표에 요약되어 있다.
128바이트 패킷을 위한 측정 프로토콜 부재 프로토콜 존재
평균 대기 시간(msec) 710 200
최대-최소 대기 시간(msec) 280 120
대기 시간의 표준 편차(msec) 80 20
평균 처리량(bps) 27,015 26,850
많은 변화가 상기 적은 대기 시간 프로토콜에서 가능하다. 예를 들면, 모뎀(52 및 54)(도 4) 사이의 모든 통신은 도 4에 나타낸 채널(50)로부터 분리된 전용 통신 채널에서 구현될 수 있다. 이러한 전용 통신 채널은 전용 가상 채널(아래 고찰하게 되는 것들) 또는 전용 물리적 채널(별개의 전화선 접속 등)일 수 있다. 또한, 이스케이프 문자에 의해 패킷화되지 않은 데이터 스트림 내의 그러한 토큰을 식별하는 등의 인식 및 타이밍 토큰을 전하는 다른 방법들이 사용될 수 있다. 마지막으로, 모뎀(52 및 54) 사이의 트래픽이 거의 또는 전체적으로 일방적인 경우, 적은 대기 시간 프로토콜은 반대 방향으로 선택된 간격으로 데이터 패킷을 자동으로 발생시키는 절차를 포함할 수 있으므로, 송신 모뎀은 상기 고찰한 인식 및 타이밍 토큰을 수신할 수 있다.
가상 채널
다중 컴퓨터 애플리케이션 간의 다중 통신 세션은 단일 물리적 통신 채널 상에서 함께 다중화될 수 있다. 그러한 세션은 "가상" 채널이라 칭한다. 이들 채널은 실시간 애플리케이션(예, 화상 회의)에 특히 유용하고, 상이한 데이터 유형(예, 음성, 비디오 및 텍스트 데이터)을 포함하는 다중 통신 세션이 사실상 동시에 진행될 수 있다.
도 9에 나타낸 바와 같이, 가상 채널을 포함하는 본 발명의 구현은 전화선 등의 통신 채널(98) 상의 모뎀(94 및 96)을 통해 통신하는 한 쌍의 컴퓨터(90 및 92)를 포함한다. 짝지은 컴퓨터 애플리케이션(100, 102), (104, 106), 및 (108, 110)은 가상 채널(하나의 그러한 채널(112)은 애플리케이션(100 및 102) 사이에 나타냄)을 통해 통신 채널(98) 상으로 서로 통신한다.
제어기(114 및 116)는 3개의 가상 채널(그중 하나만이 도시됨) 각각에 대해 상기 적은 대기 시간 프로토콜을 구현한다. 또한, 데이터를 송신할 때, 제어기(114 및 116)는 특정 가상 채널과 연관된 각각의 데이터 패킷의 시작점에 가상 채널 헤더를 부가한다. 이러한 헤더는 송신된 패킷과 연관된 특정 가상 채널을 식별한다. 가상 채널 헤더로 마크한 데이터 패킷을 수신함에 따라, 제어기(114 및 116)는 가상 채널과 연관된 컴퓨터 애플리케이션(예, 컴퓨터 애플리케이션(100))에 패킷을 라우트한다.
3개의 가상 채널들 사이에 통신 채널(98)에 대한 시간을 할당하기 위해, 비용 함수는 각각의 가상 채널에 대해 생성된다. 그러한 비용 함수는 동량의 시간 동안 전송을 대기하고 있는 상이한 가상 채널들로부터 데이터 패킷의 전송 우선권을 결정하고, 그러한 함수는 데이터 패킷이 전송 대기하는 전송 시간에 이르기까지 얼마나 빨리 이동하는지를 판정한다. 예를 들면, 화상 회의 애플리케이션에서 오디오, 비디오 및 데이터 채널에 대한 비용 함수는 다음과 같을 수 있다:
오디오 비용 = (지연 - 0.3)×2.5
데이터 비용 = (지연 - 1.0)×1.25
데이터 비용 = (지연 - 3.0)×1.0
여기서 "지연"은 전송을 위해 준비 된 데이터 패킷의 시간의 양에 데이터 패킷이 수신하는 데 소용될 시간의 추정량을 합한 것이다.
비용 함수를 사용하는 데 있어서, 제어기(114 및 116)는 상이한 가상 채널로부터 전송을 위한 다음 라인의 모든 데이터 패킷과 연관된 전체 비용이 최소화되는 방식으로 상이한 가상 채널들로부터 데이터 패킷의 전송을 계획한다. 실시예는 이를 분명히 하는 데 도움이 된다. 예를 들면, 다음 오디오 채널 데이터 패킷을 위한 지연은 1.3초이고, 다음 비디오 채널 데이터 패킷을 위한 지연은 2초이고, 다음 데이터 채널 데이터 패킷을 위한 지연은 3초라고 가정하자. 결과적으로, 현재 오디오 비용은 2.5이고, 현재 비디오 비용은 1.25이며, 현재 데이터 비용은 0.0이다. 따라서, 제어기(114 및 116)는 오디오, 비디오 및 데이터 비용 전체를 최소화하기 위해 오디오 채널로부터 다음 데이터 패킷을 전송할 수 있고, 그 후, 이는 전송을 위한 다음 데이터 패킷을 선택하기 위해 신규한 오디오, 비디오 및 데이터 비융을 산출할 수 있다. 물론, 상이한 가상 채널로부터 데이터 전달을 계획하는 다른 도식 역시 본 발명의 범위에 속하기도 한다.
제어기(114 및 116)는 상기 채널 스케줄링 프로토콜에 승인 제어 프로토콜을 부가함으로써 증대될 수 있다. 승인 제어 프로토콜은 신규 채널의 처리량 평균 대기 시간 및 평균 지터 요건이 통신 채널(98)의 커패시티 및 임의의 이미 확립된 가상 채널의 요건의 관점에서 조정될 수 있는 경우를 판정함으로써 신규 가상 채널이 부가될 수 있는지 여부를 제어할 수 있다. 또한, 통신 세션 동안 각각의 가상 채널에 대한 비용 함수를 능동적으로 변경시키는 수단이 제공됨으로써 그 세션 동안 성능이 최적화될 수 있다.
인터넷 애플리케이션
도 10에 나타낸 바와 같이, 본 발명에 따라 인터넷에 기초한 통신 시스템(120)은 인터넷에 기초한 접속부(126) 상에서 서로 데이터를 통신하는 컴퓨터(122 및 124)를 포함한다. 이를 설명하기 위한 목적으로, 인터넷에 대한 이들의 접속이 직접적인 T1 접속인 경우 모뎀에 대한 필요성을 컴퓨터(122 및 124)가 덜 수 있다는 것을 제외하고는, 적은 대기 시간 프로토콜의 구현에 관하여 컴퓨터(122 및 124)는 도 4의 컴퓨터(40 및 42)와 유사한 것으로서 고려될 수 있다.
본 발명에 따른 컴퓨터(122 및 124)에서 적은 대기 시간 프로토콜은 접속부(126)와 별개의 인식 TCP 접속부(128)에 의해 서로 통신한다. 물론, 컴퓨터(122 및 124)에서 구현된 적은 대기 시간 프로토콜은 예를 들면 접속부(126) 위에서 이미 기재한 토큰 또는 이스케이프 문자를 사용하는 것을 포함하는 다른 방식으로 서로 통신할 수 있다.
본 발명의 별개의 TCP 및 UDP 구현은 아래 기재할 것이다.
TCP/IP 구현
일단 도 10을 다시 참조하면, 접속부(126)는 TCP/IP 접속일 수 있다. 이러한 구현에서, 대부분의 프로토콜이 수신하는 컴퓨터에서 구현되는 수신기 소프트웨어 스레드(thread) 및 송신 컴퓨터에서 구현되는 송신 소프트웨어 스레드 및 핸들애크(handleAck) 소프트웨어 스레드를 사용하여 구현되는 것을 제외하고는, 적은 대기 시간 프로토콜은 도 1-8을 참조하여 상기한 바와 같이 구현된다.
송신 스레드는 하기 의사 부호에 따라 작동한다;
따라서, 패킷은 FIFO가 최적 FIFO를 초과할 때까지 송신기 스레드에 의해 연속적으로 전송되고, 그 시점에 송신기 스레드는 FIFO가 최적 FIFO 아래로 떨어질 때까지 다음 패킷의 전송을 지연시킨다.
수신기 스레드는 송신기 스레드로부터 패킷을 수신하고, 인식 접속부(128) 상으로 핸들애크 스레드(아래 기재함)에 인식 명령을 전송한다. 수신기 스레드에 대한 의사 부호는 아래와 같다.
송신 컴퓨터 내의 송신기 스레드가 송신기 측에 인식의 트랙을 유지하게 하도록, 수신 컴퓨터에서 수신기 스레드로부터 수신된 인식 패킷을 다루는 핸들애크 스레드가 제공된다. 이러한 스레드에 대한 의사 코드는 아래 주어져 있다.
UDP/IP 구현
일단 도 10을 다시 참조하면, 접속부(126)는 UDP/IP 접속일 수 있다. 이러한 구현에서, 대부분의 프로토콜이 수신하는 컴퓨터에서 구현되는 수신기 소프트웨어 스레드 및 고객 소프트웨어 스레드, 및 송신 컴퓨터에서 구현되는 송신 소프트웨어 스레드 및 핸들아크 소프트웨어 스레드를 사용하여 구현되는 것을 제외하고는, 적은 대기 시간 프로토콜은 도 1-8을 참조하여 상기한 바와 같이 구현된다. 또한, UDP/IP 구현은 아래 고찰하는 바와 같이, UDP/IP 프로토콜에서 인식 트래픽의 결여에 대해 보상하도록 순방향 에러 정정 및 재전송 기술을 필요로 한다.
송신 스레드에 대한 의사 부호는 다음과 같다:
따라서, 최종 전송 상태가 정상적이고, FIFO가 최적 FIFO를 초과하지 않는 경우, 송신기 스레드는 아래 보다 상세히 기재될 메시지를 계속 형성하고 전송한다. 대신에, 최종 전송 상태가 전송이 필요함을 나타내는 경우, 송신기 스레드는 아래 보다 상세히 기재할 재전송 메시지를 준비한다. 그렇지 않으면, FIFO가 최적 FIFO를 초과하는 경우, 송신기 스레드는 메시지를 형성하고 전송하는 것을 중지하고, 각성하여 대기한다.
도 11에 나타낸 바와 같이, 송신기 스레드는 "순방향 에러 정정"이라 칭하는 기술을 사용하여 메시지를 형성한다. 이러한 기술에 따라, 메시지 각각(예, 메시지 1)은 3개의 데이터 패킷(예, "1", "2" 및 "3")으로 구성되어 있다. 각각의 데이터 패킷은 3개의 상이하지만 순차적인 메시지를 3회 전송함으로써, 2개 이하의메시지가 상실되는 경우, 데이터 패킷은 재전송을 위한 필요성 없이 수신기 스레드에 의해 여전히 수신될 것이다(아래 기재할 것임). 물론, 각각의 메시지에서 패킷의 수는, 이러한 수치의 변화가 송신기 스레드에 의해 요구되는 처리량을 변화시킬지라도, 약 3개쯤일 수 있다.
도시된 메시지의 3개의 데이터 패킷은 각각 128바이트 길이이고, 메시지(예, 메시지 1) 각각은 메시지에 순차적인 수(예, "1", "2", "3")의 패킷을 함유하는 12바이트 헤더를 포함한다. 따라서, 각각의 메시지는 전체 (128 x 3 + 12 = 396바이트) 길이이다. 512바이트 이상의 메시지가 전형적으로 인터넷 라우터에 의해 단편화되기 때문에, 이러한 크기는 인터넷 상의 라우터에 의한 메시지의 단편화를 가능한 한 피하기 위해 선택되었다. 그러나, 보다 길거나 또는 보다 짧은 메시지가 대신에 본 발명과 관련하여 사용될 수 있다.
수신기 스레드의 의사 코드는 다음과 같다:
따라서, 수신기 스레드는 메시지를 수신하고, 이들을 고객 스레드(아래 기재함)에 의해 사용하기 위해 그의 버퍼 내에 둔다. 필요할 경우, 수신기 스레드는고객 스레드를 각성시켜 수신기 버퍼 내의 메시지를 검색하고 운영할 수 있게 한다. 또한, 데이터 패킷이 전송 중에 상실된 2개 이상의 연속적인 메시지의 결과로서 수신되지 않았기 때문에 재전송이 필요한 경우, 수신기 스레드는 메시지애크(MessageAck)를 통해 재전송을 요청하고, 이는 TCP 인식 접속부(128)의 반대 단부에서 핸들애크 스레드에 전송된 인식 메시지이다.
메시지애크는 4바이트 TYPE 필드에 이어 3개의 4바이트 시퀀스 번호를 포함한다. 전송이 성공적일 때, 3개의 시퀀스 번호는 가장 최근에 수신된 데이터 패킷의 시퀀스 번호이고, TYPE 필드는 0으로 설정되고, 이는 통상의 전송을 지시한다. 전송이 성공적이지 못할 때, 제 1 시퀀스 번호는 최종 데이터 패킷의 시퀀스 번호이고, 후자의 2개의 시퀀스 번호는 최종적으로 수신된 2개의 데이터 패킷의 시퀀스 번호이고, TYPE 필드는 1로 설정되며, 이는 재전송 요청을 지시한다. 물론, 메시지애크를 위한 다른 포맷들 역시 본 발명의 범위에 속할 수 있다.
고객 스레드를 위한 의사 부호는 다음과 같다:
"블록 패킷"은 고객 스레드가 필요로 하는 다음 데이터 패킷의 시퀀스 번호이다. 고객 스레드는 그것이 널(NULL)에 직면할 때까지 데이터 패킷을 복사하는 수신기 버퍼를 통해 그의 방식으로 작업하고, 그 시점에서 수신기 스레드가 보다 많은 데이터 패킷이 수신되었음을 통지할 때까지 그것은 잠자게 된다.
마지막으로, 핸들애크 스레드를 위한 의사 부호는 다음과 같다:
따라서, 핸들애크 스레드는 수신 스레드로부터 메시지애크를 수신하고, 재전송이 요청되는 경우, 그것은 FIFO를 0으로 맞추고, 필요한 재전송 정보를 송신기 스레드로 전한다. 그렇지 않으면, 핸들애크 스레드는 전달된 패킷 수(#)의 카운트를 갱신하고 최종 전송이 정상적이었음을 송신기 스레드에 통보한다. 핸들애크 스레드는 FIFO가 최적 FIFO를 초과하였기 때문에 송신기 스레드가 송신을 중지하였을 때 송신기 스레드를 각성시킬 책임이 있다.
송신기, 수신기, 고객 및 핸들애크 스레드의 오퍼레이션의 일부 실시예들은이들의 특징을 예시해야 한다.
도 12a에 나타낸 바와 같이, 송신기 스레드(150)는 데이터 패킷(1, 2 및 3)을 함유하는 메시지(1)를 수신기 스레드(152)에 송신하기 시작하고, 그에 따라 FIFO를 3으로 증가시키고, 이는 30인 최적 FIFO 이하에서 적격이다. 메시지(1)를 송신함에 따라, 송신기 스레드(150)는 3으로 전송된 패킷 수(#)의 카운트를 갱신한다. 수신기 스레드(152), 수신기 버퍼(154), 고객 스레드(156), 고객 버퍼(158) 및 핸들애크 스레드(160)의 오퍼레이션을 아래 기재할 것이다.
도 12b에 나타낸 바와 같이, 메시지(1)는 수신기 스레드(152)에 의해 수신되는 것이지만, 송신기 스레드(150)는 데이터 패킷(2, 3 및 4)으로 구성된 메시지(2)를 전송하고 6으로 전송된 패킷 수(#)를 갱신한다. 한편, 수신기 스레드(152)는 메시지(1)를 자신의 버퍼(154)에 저장하고 새로운 메시지가 도착하였음을 고객 스레드(156)에 통보한다. 수신기 스레드(152)는 수신된 패킷의 시퀀스 번호(예, 패킷 1, 2 및 3)에 따라 TCP 접속부(128)(역시 도 10 참조) 상으로 메시지애크(162)를 전송한다. 수신된 가장 큰 시퀀스 번호(즉, 3)와 블로킹 패킷(1) 사이의 차이가 BACKLOG보다 적기 때문에, 메시지애크의 TYPE 필드는 0으로 설정되고, 이는 성공적인 전송을 지시한다.
고객 스레드(156)는 패킷 번호(1, 2 및 3)를 그 자신의 버퍼(158)에 복사하고, 블로킹 패킷을 4로 갱신한다. 이는 보다 많은 데이터가 수신되었음을 통지하기 위해 수신기 스레드(152)를 대기시킨다. 한편, 핸들애크 스레드(160)는 메시지애크(162)를 수신하고 3으로 전달된 패킷 수(#)의 카운트를 갱신한다. 핸들애크스레드(160)는 최종 전송이 성공적이었음을 송신기 스레드(150)에 통보한다.
도 12c에 나타낸 바와 같이, FIFO가 최적 FIFO를 초과할 때, 송신기 스레드(150)는 송신을 중지하고, 각성하여 대기하고, 수신기 스레드(152)는 메시지를 계속 수신하고 메시지애크(162)를 전송한다. 결과적으로, FIFO가 강하함에 따라, 전달된 패킷 수(#)의 카운트는 증가하는 한편 전송된 패킷 수(#)의 카운트는 동일하게 유지된다. FIFO가 최적 FIFO 이하로 떨어질 때, 핸들애크 스레드(160)는 송신기 스레드(150)를 각성시키고, 이는 메시지 송신을 다시 시작하게 한다.
도 12d에 나타낸 바와 같이, 송신기 스레드(150)는 데이터 패킷(4, 5 및 6)으로 구성된 메시지(4)를 전송하고, 수신기 스레드(152)는 메시지(4)를 수신하고 이를 버퍼(154)에 저장하고, 고객 스레드(156)는 패킷(4, 5 및 6)을 그의 버퍼(158)에 복사하고 패킷(7)에 대해 대기한다. 도 12e에 나타낸 바와 같이, 패킷(5, 6 및 7)으로 구성된 송신기 스레드(150)로부터 다음 메시지(예, 메시지 5)가 인터넷 상에서 전송하는 동안 상실되는 일이 발생할 수 있다. 도 12f에 나타낸 바와 같이, 수신기 스레드(152)는 이를 알 길이 없고, 따라서 패킷(6, 7 및 8)으로 구성된 송신기 스레드(150)로부터 다음 메시지(예, 메시지 6)를 수신하고, 고객 스레드(156)를 각성시키고, 이는 수신기 버퍼(154) 내에서 패킷(7)을 발견하고 패킷(7 및 8)에 따라 그 자신의 버퍼(158)에 이를 복사한다.
도 12g에 나타낸 바와 같이, 송신기 스레드(150)는 패킷(12, 13 및 14)으로 구성된 메시지(10)를 송신하고, 수신기 스레드(152)는 메시지(10)를 수신하고, 고객 스레드(156)는 수신기 버퍼(154)로부터 그 자신의 버퍼(158)로 패킷(12, 13 및14)을 복사한다. 이어서, 고객 스레드(156)는 데이터 패킷(15)에 대해 대기한다. 도 12h 및 도 12i에 나타낸 바와 같이, 패킷(13, 14 및 15)(도 12h) 및 패킷(14, 15 및 16)(도 12i)으로 구성된 송신기 스레드(150)로부터 다음 2개의 메시지(예, 메시지 11 및 12)가 인터넷 상에서 상실되는 일이 발생할 수 있다. 도 12j에 나타낸 바와 같이, 수신기 스레드(152)는 이러한 상실을 알지 못하고, 따라서 패킷(15, 16 및 17)으로 구성된 송신기 스레드(150)로부터 다음 메시지(예, 메시지 13)를 수신하고, 고객 스레드(156)를 각성시키고, 이는 수신기 버퍼(154) 내에서 패킷(15)을 발견하고 이 패킷을 패킷(16 및 17)에 따라 그 자신의 버퍼(158)에 복사한다. 따라서, 2개의 연속적인 메시지가 상실되더라도, 에러는 재전송할 필요 없이 정정된다.
2개 이상의 순차적인 메시지가 상실될 때, 그렇더라도, 재전송이 필요하다. 예를 들면, 도 12k에 나타낸 바와 같이, 고객 스레드(156)는 패킷(22)에 대해 대기한다. 패킷(20, 21 및 22), (21, 22 및 23), 및 (22. 23 및 24)로 구성된 3개의 순차적인 메시지가 인터넷 상에서 상실되었다. 결과적으로, 수신기 스레드(152)가 수신한 다음 메시지는 데이터 패킷(23, 24 및 25) 및 (24, 25 및 26)으로 구성되어 있다. 블로킹 패킷(즉, 22)보다 적게 수신된 패킷의 가장 큰 시퀀스 번호(즉, 26)는 BACKLOG(즉, 4)와 동일하기 때문에, 수신기 스레드(152)는 패킷 손실을 감지하고, 블로킹 패킷 시퀀스 번호(즉, 22)를 포함하는 메시지애크(162)를 전송하고, 자신의 TYPE 필드를 1로 설정하여, 재전송 요청을 나타낸다. 핸들애크 스레드(160)는 이러한 메시지애크(162)를 수신하고 재전송이 필요함을 송신기 스레드(150)에통보한다. 도 12l에 나타낸 바와 같이, 송신기 스레드(150)는 패킷(26 및 27)에 따라 그의 다음 메시지에 이러한 패킷(즉, 패킷 22)을 채우고, 이러한 메시지를 수신기 스레드(152)에 전송한다. 도 12m에 나타낸 바와 같이, 수신기 스레드(152)는 송신된 패킷(즉, 패킷 22)을 수신하고, 고객 스레드(156)를 각성시키고, 이는 패킷을 그의 버퍼(158)에 복사한다. 결과적으로, 상실된 패킷이 복원된다.
여러 실험은 상기 본 발명의 TCP/IP 및 UDP/IP 구현의 효율을 보여준다. 도 10의 시스템(120)을 사용하여 얻은 하나의 그러한 실험의 결과는 하기 표에 요약한다.
통신 유형 적은 대기 시간 프로토콜 부재 하의 평균 대기 시간 적은 대기 시간 프로토콜 존재 하의 평균 대기 시간
TCP 800ms 120-180ms
UDP 700-800ms 100-150ms
도 13에 나타낸 바와 같이, 본 발명의 방법, 절차 및 공정에 따라 컴퓨터를 작동시키는 프로그램의 전부 또는 일부는 예를 들면 플로피 디스크, 하드 디스크, CD-ROM, RAM 메모리, 플래쉬 메모리, ROM 메모리 및 테이프 등의 컴퓨터-판독 가능한 기억 매체(180) 상에 저장될 수 있다.
본 발명을 특정 실시예를 참조하여 기재하였지만, 본 발명은 이들 기재된 실시예들로만 제한되지 않는다. 오히려, 본 발명은 첨부된 특허 청구의 범위에 의해서만 제한되고, 상기한 본 발명의 원리에 따라 운영되는 모든 등가의 장치 및 방법을 자신의 범위에 포함시킨다.

Claims (20)

  1. 통신 시스템 운영 방법에 있어서, 상기 방법은,
    통신 시스템이 운영해야 하는 전송 중인 데이터의 목표량을 선택하는 단계;
    통신 시스템에 데이터를 송신하는 단계;
    데이터의 송신으로부터 초래되는 내부에 제공된 전송 중인 데이터의 양을 나타내는 통신 시스템으로부터 피드백을 수신하는 단계; 및
    내부에 제공된 전송 중인 데이터의 양이 전송 중인 데이터의 선택된 목표량을 초과하지 않도록 수신된 피드백에 응답하여 통신 시스템에서 데이터 송신을 제어하는 단계를 포함하는, 통신 시스템 운영 방법.
  2. 제 1 항에 있어서, 상기 통신 시스템은 송신 사이트 및 수신 사이트를 갖고, 여기서 전송 중인 데이터의 목표량을 선택하는 것은
    송신 사이트로부터 실질적으로 압축 불가능한 데이터의 블록을 수신 사이트로 송신하는 단계;
    블록이 수신 사이트에 수신되는데 걸리는 시간의 양을 측정하고 블록이 수신되는 대응하는 접속률을 산출하는 단계;
    상기 수신 사이트로부터 산출된 접속률로 상기 송신 사이트에 송신하는 단계;
    내부에 제공된 전송 중인 데이터의 양이 일시적인 목표와 실질적으로 동일하도록 송신 사이트로부터 데이터의 송신을 제어하는 단계;
    송신 사이트로부터 고정량의 데이터를 수신 사이트로 송신하는 단계;
    고정량의 데이터가 수신 사이트에 수신되는데 걸리는 시간의 양을 측정하고 블록이 수신되는 대응하는 처리량을 산출하는 단계;
    상기 수신 사이트로부터 산출된 처리량을 상기 송신 사이트로 송신하는 단계;
    산출된 처리량이 산출된 접속률보다 실질적으로 적을 때, 일시 목표를 고정 단계량 만큼 증가시키고, 송신 사이트로부터 데이터의 송신을 제어하고, 고정량의 데이터를 송신하고, 고정량의 데이터가 수신되는데 걸리는 시간의 양을 측정하고, 수신 사이트로부터 산출된 처리량을 송신 사이트로 송신하는 작용을 반복하는 단계;
    산출된 처리량이 산출된 접속률과 실질적으로 동일하고 고정 단계량 만큼 감소된 일시 목표에 따라 이미 달성된 산출된 처리량과 상이할 때, 일시 목표를 고정 단계량 만큼 감소시키고, 송신 사이트로부터 데이터의 송신을 제어하고, 고정량의 데이터를 송신하고, 고정량의 데이터가 수신되는데 걸리는 시간의 양을 측정하고, 수신 사이트로부터 산출된 처리량을 송신 사이트로 송신하는 작용을 반복하는 단계; 및
    산출된 처리량이 산출된 접속률의 적어도 95%이고, 고정 단계량 만큼 감소된 일시 목표에 따라 이미 달성된 산출된 처리량과 실질적으로 동일할 때, 전송 중인 데이터의 목표량을 일시 목표로 설정하는 단계를 포함하는, 통신 시스템 운영 방법.
  3. 제 1 항에 있어서, 상기 통신 시스템은 송신 사이트 및 수신 사이트를 갖고, 상기 방법은 송수신 사이트들을 동기화시키는 것을 추가로 포함하고, 상기 동기화는,
    하나의 마스터와 나머지 슬레이브를 선출하기 위해 송수신 사이트들 사이에 난수를 교환하는 단계;
    마스터로부터 고정량의 데이터를 슬레이브로 송신하고 슬레이브로부터 고정량의 데이터를 마스터로 송신하는 단계;
    마스터로부터 고정량의 데이터를 슬레이브로 되(back) 일주하는 시간을 산출하는 단계;
    마스터로부터 고정량의 데이터를 슬레이브로 다시 송신하는 단계;
    고정량의 데이터를 다시 송신하기 때문에 산출된 일주 시간의 절반과 동일한 시간이 경과하였을 때, 마스터의 기준 시간으로서 마스터에서 현재 시간을 마크하는 단계; 및
    슬레이브가 고정량의 데이터를 다시 수신할 때, 슬레이브의 기준 시간으로서 슬레이브에서 현재 시간을 마크하는 단계를 포함하는, 통신 시스템 운영 방법.
  4. 제 1 항에 있어서, 상기 통신 시스템에서 데이터를 송신하는 것은 모뎀, 전화선, 스위칭 장비, 인터넷 라우터, 케이블선, 셀 방식 장비, 위성 통신, T1 라인,TCP/IP 접속, 및 UDP/IP 접속 중의 적어도 하나를 통해 데이터를 송신하는 단계를 포함하고, 데이터를 송신하는 것은 데이터를 패킷화하는 단계 및 순방향 에러 정정 도식에 따라 데이터의 고정된 수의 순차 전송들을 반복하는 단계 중의 적어도 하나를 포함하는, 통신 시스템 운영 방법.
  5. 제 1 항에 있어서, 상기 피드백을 수신하는 것은 전화선을 통해 데이터 패킷들에 첨부된 인식 및 타이밍 토큰들을 수신하는 단계, 전화선을 통해 끊임없는 데이터 스트림의 이스케이프 문자들에 의해 식별되는 인식 및 타이밍 토큰들을 수신하는 단계, 인터넷에 기초한 TCP 접속을 통해 순방향 에러 정정 및 재전송 도식에 따라 인식 메시지들을 수신하는 단계 중의 적어도 하나를 포함하는 것인 방법.
  6. 제 1 항에 있어서, 상기 데이터를 송신하고, 피드백을 수신하고, 데이터의 송신을 제어하는 것은 1개 이상의 컴퓨터 소프트웨어 스레드들에 의해 실행되는, 통신 시스템 운영 방법.
  7. 제 1 항에 있어서, 상기 데이터를 송신하는 것은 재전송 도식에 따라 데이터를 재전송하는 것을 포함하는, 통신 시스템 운영 방법.
  8. 제 1 항에 있어서, 상기 데이터의 송신을 제어하는 것은 수신된 피드백에 응답하여 데이터의 송신을 진행시키는 단계 및 지연시키는 단계 중의 적어도 하나를포함하는, 통신 시스템 운영 방법.
  9. 제 1 항에 있어서, 상기 통신 시스템은 적어도 제 1 및 제 2 가상 채널들을 갖고, 목표량을 선택하고, 데이터를 송신하고, 피드백을 수신하고 데이터의 송신을 제어하는 것은 제 1 가상 채널에 대하여 실행되고, 여기서, 상기 방법은,
    상기 통신 시스템의 제 2 가상 채널이 운영해야 하는 전송 중인 데이터의 목표량을 선택하는 단계;
    상기 통신 시스템의 제 2 가상 채널에 데이터를 송신하는 단계;
    데이터의 송신으로부터 초래되는 내부에 제공된 전송 중인 데이터의 양을 나타내는 통신 시스템의 제 2 가상 채널로부터 피드백을 수신하는 단계; 및
    내부에 제공된 전송 중인 데이터의 양이 제 2 가상 채널에 대해 선택된 전송 중인 데이터의 목표량을 초과하지 않도록 수신된 피드백에 응답하여 통신 시스템의 제 2 가상 채널에서 데이터의 송신을 제어하는 단계를 포함하는, 통신 시스템 운영 방법.
  10. 제 9 항에 있어서, 제 1 및 제 2 가상 채널들로 데이터를 송신하는 것은 제 1 및 제 2 가상 채널들과 연관된 지연 비용 함수들에 따라 제 1 및 제 2 가상 채널들로 데이터의 송신을 계획하는 것을 포함하는, 통신 시스템 운영 방법.
  11. 제 10 항에 있어서, 상기 지연 비용 함수들을 다이내믹하게 제어하는 것을더 포함하는, 통신 시스템 운영 방법.
  12. 제 1 항에 있어서, 상기 통신 시스템은 제 1 및 제 2의 독특한 통신 채널들을 갖고, 제 1 및 제 2의 독특한 통신 채널들은 물리적으로 독특한 채널들 및 독특한 가상 채널들 중의 하나이고, 데이터를 송신하는 것은 제 1 통신 채널을 통해 데이터를 송신하는 단계를 포함하고, 피드백을 수신하는 것은 제 2 통신 채널을 통해 피드백을 수신하는 단계를 포함하는, 통신 시스템 운영 방법.
  13. 통신 시스템의 운영 방법에 따라 전자 시스템을 작동시키기 위한 프로그램이 저장되는 컴퓨터-판독 가능한 기억 매체에 있어서, 상기 방법은,
    통신 시스템이 운영해야 하는 전송 중인 데이터의 목표량을 선택하는 단계;
    상기 통신 시스템에 데이터를 송신하는 단계;
    데이터의 송신으로부터 초래되는 내부에 제공된 전송 중인 데이터의 양을 나타내는 통신 시스템으로부터 피드백을 수신하는 단계; 및
    내부에 제공된 전송 중인 데이터의 양이 전송 중인 데이터의 선택된 목표량을 초과하지 않도록 수신된 피드백에 응답하여 상기 통신 시스템에서 데이터의 송신을 제어하는 단계를 포함하는, 컴퓨터-판독 가능한 기억 매체.
  14. 제 13 항에 있어서, 상기 컴퓨터-판독 가능한 기억 매체는 플로피 디스크, 하드 디스크, CD-ROM, RAM 메모리, ROM 메모리, 플래쉬 메모리 및 테이프를 포함하는 그룹으로부터 선택되는, 컴퓨터-판독 가능한 기억 매체.
  15. 송신 사이트, 수신 사이트 및 그들 사이의 통신을 위해 송수신 사이트들을 작동 가능하게 결합시키는 통신 채널을 포함하는 통신 시스템에 있어서,
    상기 송신 사이트는,
    상기 통신 채널을 통해 수신 사이트에 데이터를 송신하는 장치; 및
    데이터 송신 장치에 작동 가능하게 결합되고, 통신 시스템이 운영해야 하는 전송 중인 데이터의 목표량을 선택하고, 데이터의 송신으로부터 초래되는 통신 시스템에 제공된 전송 중인 데이터의 양을 나타내는 수신 사이트로부터 피드백을 수신하고; 통신 시스템에 제공된 전송 중인 데이터의 양이 전송 중인 데이터의 선택된 목표량을 초과하지 않도록 수신된 피드백에 응답하여 통신 채널을 통해 데이터의 송신을 제어하도록 채택된 장치를 포함하고,
    상기 수신 사이트는 피드백을 상기 송신 사이트로 송신하는 장치를 포함하는, 통신 시스템.
  16. 제 15 항에 있어서, 상기 송신 사이트 및 수신 사이트는 컴퓨터들을 포함하는, 통신 시스템.
  17. 제 15 항에 있어서, 상기 통신 채널은 모뎀, 전화선, 스위칭 장비, 인터넷 라우터, 케이블선, 셀 방식 장비, 위성 통신, T1 라인, TCP/IP 접속, 및 UDP/IP 접속 중의 적어도 하나를 포함하는, 통신 시스템.
  18. 제 15 항에 있어서, 상기 데이터 송신 장치는 모뎀을 포함하는, 통신 시스템.
  19. 제 15 항에 있어서, 전송 중인 데이터의 목표량을 선택하고, 피드백을 수신하고, 데이터의 송신을 제어하도록 채택된 장치는 송신 사이트에 실행하기 위한 컴퓨터 프로그램에 따라 채택되는, 통신 시스템.
  20. 수신 사이트 및 통신 채널을 갖는 통신 시스템에 있어서, 전자 시스템은,
    통신 채널을 통해 수신 사이트에 데이터를 송신하는 장치; 및
    데이터 송신 장치에 작동 가능하게 결합되고, 통신 시스템이 운영해야 하는 전송 중인 데이터의 목표량을 선택하고, 데이터의 송신으로부터 초래되는 통신 시스템에 제공된 전송 중인 데이터의 양을 나타내는 수신 사이트로부터 피드백을 수신하고; 통신 시스템에 제공된 전송 중인 데이터의 양이 전송 중인 데이터의 선택된 목표량을 초과하지 않도록 수신된 피드백에 응답하여 통신 채널을 통해 데이터의 송신을 제어하도록 채택된 장치를 포함하는, 통신 시스템.
KR1020017002653A 1998-09-01 1999-09-01 적은 대기 시간 통신 시스템 및 그 방법 KR20010074883A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/145,194 US6141324A (en) 1998-09-01 1998-09-01 System and method for low latency communication
US09/145,194 1998-09-01
PCT/US1999/020074 WO2000013357A1 (en) 1998-09-01 1999-09-01 System and method for low latency communication

Publications (1)

Publication Number Publication Date
KR20010074883A true KR20010074883A (ko) 2001-08-09

Family

ID=22512011

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017002653A KR20010074883A (ko) 1998-09-01 1999-09-01 적은 대기 시간 통신 시스템 및 그 방법

Country Status (8)

Country Link
US (1) US6141324A (ko)
EP (1) EP1110341A1 (ko)
JP (1) JP2002524915A (ko)
KR (1) KR20010074883A (ko)
AU (1) AU5800599A (ko)
CA (1) CA2340679A1 (ko)
IL (1) IL141733A0 (ko)
WO (1) WO2000013357A1 (ko)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69938094T2 (de) * 1998-11-30 2009-02-05 Matsushita Electric Industries Co. Ltd., Kadoma Paketwiederübertragungskontrolle mit Prioritätsinformationen
US6650652B1 (en) 1999-10-12 2003-11-18 Cisco Technology, Inc. Optimizing queuing of voice packet flows in a network
US6622161B1 (en) * 1999-11-02 2003-09-16 International Business Machines Corporation Information transfer applications
IL140504A0 (en) * 2000-02-03 2002-02-10 Bandwiz Inc Broadcast system
US6581183B1 (en) * 2000-03-30 2003-06-17 International Business Machines Corporation System and method for resynchronization of transmit and receive compression dictionaries
US6850092B2 (en) * 2000-06-09 2005-02-01 The Trustees Of Columbia University Low latency FIFO circuits for mixed asynchronous and synchronous systems
DE60119780T2 (de) * 2000-11-28 2007-05-03 Flash Networks Ltd. System und verfahren für eine übertragungsratensteuerung
ES2300288T3 (es) * 2001-05-04 2008-06-16 NOKIA SIEMENS NETWORKS GMBH & CO. KG Procedimiento para el control del flujo en varios emisores con una potencia de emision desconocida y/o diferente.
US7581048B1 (en) * 2001-06-29 2009-08-25 Emc Corporation Method and apparatus for providing continuous communication between computers
US6741603B2 (en) * 2001-07-09 2004-05-25 Overture Networks, Inc. Use of a circular buffer to assure in-order delivery of packets
US7174384B2 (en) * 2001-07-31 2007-02-06 Dinastech Ipr Limited Method for delivering large amounts of data with interactivity in an on-demand system
US7200669B2 (en) * 2001-07-31 2007-04-03 Dinastech Ipr Limited Method and system for delivering large amounts of data with interactivity in an on-demand system
US7574728B2 (en) * 2001-07-31 2009-08-11 Dinastech Ipr Limited System for delivering data over a network
US7162418B2 (en) * 2001-11-15 2007-01-09 Microsoft Corporation Presentation-quality buffering process for real-time audio
US7411901B1 (en) * 2002-03-12 2008-08-12 Extreme Networks, Inc. Method and apparatus for dynamically selecting timer durations
JP2006510255A (ja) * 2002-12-12 2006-03-23 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ストリーミング・アプリケーションにおけるパケット損失を循環バッファを用いて検出するシステムおよび方法
TW200423669A (en) * 2002-12-18 2004-11-01 Koninkl Philips Electronics Nv Dedicated encrypted virtual channel in a multi-channel serial communications interface
US7417993B1 (en) * 2003-01-29 2008-08-26 Sun Microsystems, Inc. Apparatus and method for high-throughput asynchronous communication
US20050152406A2 (en) * 2003-10-03 2005-07-14 Chauveau Claude J. Method and apparatus for measuring network timing and latency
US7674096B2 (en) * 2004-09-22 2010-03-09 Sundheim Gregroy S Portable, rotary vane vacuum pump with removable oil reservoir cartridge
US20060075449A1 (en) * 2004-09-24 2006-04-06 Cisco Technology, Inc. Distributed architecture for digital program insertion in video streams delivered over packet networks
US7870590B2 (en) * 2004-10-20 2011-01-11 Cisco Technology, Inc. System and method for fast start-up of live multicast streams transmitted over a packet network
US20060176832A1 (en) * 2005-02-04 2006-08-10 Sean Miceli Adaptive bit-rate adjustment of multimedia communications channels using transport control protocol
US7680047B2 (en) * 2005-11-22 2010-03-16 Cisco Technology, Inc. Maximum transmission unit tuning mechanism for a real-time transport protocol stream
US7965771B2 (en) 2006-02-27 2011-06-21 Cisco Technology, Inc. Method and apparatus for immediate display of multicast IPTV over a bandwidth constrained network
US8218654B2 (en) 2006-03-08 2012-07-10 Cisco Technology, Inc. Method for reducing channel change startup delays for multicast digital video streams
US7694002B2 (en) * 2006-04-07 2010-04-06 Cisco Technology, Inc. System and method for dynamically upgrading / downgrading a conference session
US8326927B2 (en) * 2006-05-23 2012-12-04 Cisco Technology, Inc. Method and apparatus for inviting non-rich media endpoints to join a conference sidebar session
US8122144B2 (en) 2006-06-27 2012-02-21 International Business Machines Corporation Reliable messaging using redundant message streams in a high speed, low latency data communications environment
US8676876B2 (en) * 2006-06-27 2014-03-18 International Business Machines Corporation Synchronizing an active feed adapter and a backup feed adapter in a high speed, low latency data communications environment
US8296778B2 (en) 2006-06-27 2012-10-23 International Business Machines Corporation Computer data communications in a high speed, low latency data communications environment
US8526336B2 (en) * 2006-08-09 2013-09-03 Cisco Technology, Inc. Conference resource allocation and dynamic reallocation
US8358763B2 (en) * 2006-08-21 2013-01-22 Cisco Technology, Inc. Camping on a conference or telephony port
US8031701B2 (en) 2006-09-11 2011-10-04 Cisco Technology, Inc. Retransmission-based stream repair and stream join
US8120637B2 (en) * 2006-09-20 2012-02-21 Cisco Technology, Inc. Virtual theater system for the home
US7847815B2 (en) * 2006-10-11 2010-12-07 Cisco Technology, Inc. Interaction based on facial recognition of conference participants
US7693190B2 (en) * 2006-11-22 2010-04-06 Cisco Technology, Inc. Lip synchronization for audio/video transmissions over a network
US8695015B2 (en) * 2006-12-06 2014-04-08 International Business Machines Corporation Application message conversion using a feed adapter
US8327381B2 (en) * 2006-12-12 2012-12-04 International Business Machines Corporation Referencing message elements in an application message in a messaging environment
US8121277B2 (en) * 2006-12-12 2012-02-21 Cisco Technology, Inc. Catch-up playback in a conferencing system
US8850451B2 (en) * 2006-12-12 2014-09-30 International Business Machines Corporation Subscribing for application messages in a multicast messaging environment
US8149261B2 (en) * 2007-01-10 2012-04-03 Cisco Technology, Inc. Integration of audio conference bridge with video multipoint control unit
US8769591B2 (en) 2007-02-12 2014-07-01 Cisco Technology, Inc. Fast channel change on a bandwidth constrained network
US8208003B2 (en) * 2007-03-23 2012-06-26 Cisco Technology, Inc. Minimizing fast video update requests in a video conferencing system
US7917912B2 (en) * 2007-03-27 2011-03-29 International Business Machines Corporation Filtering application messages in a high speed, low latency data communications environment
US20080253369A1 (en) 2007-04-16 2008-10-16 Cisco Technology, Inc. Monitoring and correcting upstream packet loss
US8139581B1 (en) 2007-04-19 2012-03-20 Owl Computing Technologies, Inc. Concurrent data transfer involving two or more transport layer protocols over a single one-way data link
US8289362B2 (en) * 2007-09-26 2012-10-16 Cisco Technology, Inc. Audio directionality control for a multi-display switched video conferencing system
FR2922391B1 (fr) * 2007-10-15 2009-12-04 Canon Kk Procede et dispositif de transmission de donnees
US8787153B2 (en) 2008-02-10 2014-07-22 Cisco Technology, Inc. Forward error correction based data recovery with path diversity
US8719823B2 (en) 2009-03-04 2014-05-06 Vmware, Inc. Managing latency introduced by virtualization
US8171154B2 (en) * 2009-09-29 2012-05-01 Net Power And Light, Inc. Method and system for low-latency transfer protocol
JP5633864B2 (ja) * 2010-12-28 2014-12-03 ヤマハ株式会社 タイミング合わせ方法、該タイミング合わせ方法を実現するためのプログラムおよび電子音楽装置
KR101747700B1 (ko) * 2011-01-11 2017-06-15 삼성전자주식회사 통신망을 이용한 원격 합주 방법 및 시스템
US9015555B2 (en) 2011-11-18 2015-04-21 Cisco Technology, Inc. System and method for multicast error recovery using sampled feedback
JP6064593B2 (ja) 2012-12-27 2017-01-25 富士通株式会社 プログラム、情報処理装置、及び通信方法
US10402113B2 (en) 2014-07-31 2019-09-03 Hewlett Packard Enterprise Development Lp Live migration of data
WO2016036347A1 (en) 2014-09-02 2016-03-10 Hewlett Packard Enterprise Development Lp Serializing access to fault tolerant memory
US10594442B2 (en) * 2014-10-24 2020-03-17 Hewlett Packard Enterprise Development Lp End-to-end negative acknowledgment
US10409681B2 (en) 2015-01-30 2019-09-10 Hewlett Packard Enterprise Development Lp Non-idempotent primitives in fault-tolerant memory
US10664369B2 (en) 2015-01-30 2020-05-26 Hewlett Packard Enterprise Development Lp Determine failed components in fault-tolerant memory
US10402287B2 (en) 2015-01-30 2019-09-03 Hewlett Packard Enterprise Development Lp Preventing data corruption and single point of failure in a fault-tolerant memory
WO2016159996A1 (en) 2015-03-31 2016-10-06 Hewlett Packard Enterprise Development Lp Preventing data corruption and single point of failure in fault-tolerant memory fabrics
KR20170087350A (ko) * 2016-01-20 2017-07-28 삼성전자주식회사 전자 장치 및 전자 장치의 동작 방법
US10645437B2 (en) * 2017-04-03 2020-05-05 Sling Media Pvt Ltd Systems and methods for achieving optimal network bitrate
US10389342B2 (en) 2017-06-28 2019-08-20 Hewlett Packard Enterprise Development Lp Comparator
US11503416B2 (en) 2021-01-07 2022-11-15 Semiconductor Components Industries, Llc Low-latency communication protocol for binaural applications

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5790776A (en) * 1992-12-17 1998-08-04 Tandem Computers Incorporated Apparatus for detecting divergence between a pair of duplexed, synchronized processor elements
US5633859A (en) * 1994-09-16 1997-05-27 The Ohio State University Method and apparatus for congestion management in computer networks using explicit rate indication
US5675576A (en) * 1995-06-05 1997-10-07 Lucent Technologies Inc. Concestion control system and method for packet switched networks providing max-min fairness
US5659541A (en) * 1995-07-12 1997-08-19 Lucent Technologies Inc. Reducing delay in packetized voice
US5777984A (en) * 1996-04-01 1998-07-07 Motorola Inc. Method and apparatus for controlling cell transmission rate in a cell based network in the presence of congestion
US5892754A (en) * 1996-06-07 1999-04-06 International Business Machines Corporation User controlled adaptive flow control for packet networks
US5719930A (en) * 1996-07-08 1998-02-17 Bell Canada Method of volume screening signalling messages in a telecommunication system

Also Published As

Publication number Publication date
US6141324A (en) 2000-10-31
EP1110341A1 (en) 2001-06-27
WO2000013357A9 (en) 2001-11-15
JP2002524915A (ja) 2002-08-06
AU5800599A (en) 2000-03-21
CA2340679A1 (en) 2000-03-09
WO2000013357A1 (en) 2000-03-09
IL141733A0 (en) 2002-03-10

Similar Documents

Publication Publication Date Title
KR20010074883A (ko) 적은 대기 시간 통신 시스템 및 그 방법
EP1606717B1 (en) Method and device for multimedia streaming
RU2367011C2 (ru) Устройство и способ передачи сигналов с упреждающей адаптацией скорости
EP1535419B1 (en) Method and devices for controlling retransmissions in data streaming
US7123617B1 (en) Radio link protocol enhancements for dynamic capacity wireless data channels
EP1122931B1 (en) Real-time media content synchronization and transmission in packet network apparatus and method
EP1236332B1 (en) Radio link protocol frame sorting mechanism for dynamic capacity wireless data channels
US7352700B2 (en) Methods and devices for maximizing the throughput of TCP/IP data along wireless links
US7190670B2 (en) Method and apparatus for multimedia streaming in a limited bandwidth network with a bottleneck link
JP2003515289A (ja) ストリーミングデータ受信器における復号器バッファの遅延割当量を制御するためのシステムと方法
JP2002319968A (ja) フロー制御システムおよび方法
US20020141353A1 (en) Method and device for improving a data throughput
EP1568180A2 (en) A method for enhancing transmission quality of streaming media
CN111327962B (zh) 播放控制方法、装置、设备及存储介质
JP2000183873A (ja) データ転送方法
US20130343183A1 (en) Wireless channel allocation in a base station processor
JP2007267082A (ja) データ送受信装置及びデータ送受信方法
EP1442564A1 (en) Inband controlling of a packet-based communications network
JP2003069613A (ja) データ品質保証システム
JP2008270951A (ja) データ通信装置
KR20100077418A (ko) 서비스 품질 향상을 위한pr―sctp 기반 실시간 멀티미디어 데이터 전송 방법
JP2006087010A (ja) 通信路制御装置およびそれを用いたネットワークシステム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application