KR20040035759A - 베스트-에포트 데이터의 스케줄링된 스트림밍을 위한 방법및 장치 - Google Patents

베스트-에포트 데이터의 스케줄링된 스트림밍을 위한 방법및 장치 Download PDF

Info

Publication number
KR20040035759A
KR20040035759A KR10-2004-7003588A KR20047003588A KR20040035759A KR 20040035759 A KR20040035759 A KR 20040035759A KR 20047003588 A KR20047003588 A KR 20047003588A KR 20040035759 A KR20040035759 A KR 20040035759A
Authority
KR
South Korea
Prior art keywords
packet
program
channel
initial data
received
Prior art date
Application number
KR10-2004-7003588A
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 KR20040035759A publication Critical patent/KR20040035759A/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
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • H04L12/1868Measures taken after transmission, e.g. acknowledgments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1848Time-out mechanisms
    • H04L1/1851Time-out mechanisms using multiple timers
    • 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/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets

Abstract

시스템(200)은 베이스-이포트 파일된 데이터 또는 프로그램을 채널 상으로 컨트롤러(350, 360, 370)의 하나에서 하나 또는 그이상의 클라이언트 노드(240)로 전송하는 것을 컨트롤하기 위하여 제공된다. 프로그램은 클라이언트 노드(240)가 상기 프로그램의 파일을 사용하는 법을 지시하는 정보를 갖는 그룹이다. 채널(202)은 가상적인 패스이다. 클라이언트 노드(240)는 별개의 방식으로 다른 채널(202)로부터 프로그램 파일을 수신할 수 있다. 채널은 채널 정보를 갖는다. 클라이언트 노드(240)는 수신된 데이터에 대하여 긍정적 응답을 다시 보내며, 수신되지 않은 데이터에 대하여 부정적 응답을 보낸다. 상기 부정적 응답은 패킷의 수를 줄이기 위하여 합체될 수 있다. 프로그램 파일과 긍정적 응답과 부정적 응답 메시지를 이송하는 패킷의 포맷은 특정된다.

Description

베스트-에포트 데이터의 스케줄링된 스트림밍을 위한 방법 및 장치{Method and System for Scheduled Streaming of Best Effort Data}
많은 네트워크(network)는 "베스트-에포트(best-effort)" 데이터 즉, 어떤 주어진 순간의 시간에 시스템의 최선의 노력으로 전달되는 데이터를 전달하는 것으로 알려져 있다. 이러한 베스트-는 데이터는 분할되어 주어진 속도로 정확하게 전송될 필요는 없으며, 임의의 속도 또는 가변적으로 변동하는 속도로 전송될 수 있다. 일반적으로 베스트-에포트 데이터가 네트워크 상으로 전달되도록 하는 노력은 정보의 유용성이나 효용에 영향을 주지 않는다.
흔히, 이용 가능한 또는 검색되어 쉽게 이용될 수 있는 베스트-에포트 데이터의 통신을 스케줄링하는 것이 바람직하다.
비디오 또는 오디오 시그널(이하, "오디오-비디오 시그널")을 전송할 수 있는 다수의 통신네트워크들로는 예를 들면, 지상방송네트워크, 케이블 네트워크와 위성네트워크가 알려져 있다. 이러한 네트워크의 각각은 또한 디지털 오디오-비디오 시그널을 전송할 수 있다. 또한 전화네트워크, 예를 들면, T1( 또는 더 고능력 라인들)과 소위 DSL 또는 디지털 가입자 루프 회선들(digital subscriber loop lines)을 사용하여 디지털 오디오-비디오 시그널을 전송하는 것이 가능하다.
상기 설명된 네트워크의 각각에서 오디오-비디오 시그널들은 실시간 내에 전송되도록, 즉 실시간 소진(consumption)을 위하여, 의도된다. 특히 디지털 오디오-비디오 시그널은 시그널의 소진(디코드 및 표현처리)속도와 매치(match)되는 공칭속도로 전송된다. 따라서 오디오-비디오 시그널이 초당 비디오의 30프레임이 전송되어야 한다면 비디오를 표현하는 디지털 정보는 초당 30프레임의 속도로 전송된다. 그러나 오디오-비디오 시그널 또는 컴포넌트 기본 스트림, 예를 들면 비디오시그널, 오디오시그널, 클로우즈드 캡션 문자 시그널(closed caption text signal) 등이 가변적으로 압축되는 경우에는 실질적인 순간 비트속도는 실제로 변동된다.어떤 일시적인 버퍼링이 오디오-비디오 시그널의 리시버(receiver)/디코더(decoder) 종단에 요구된다. 이러한 버퍼스페이스는 제한적이고 미리 결정된 크기이며 버퍼를 통한 디지털정보의 흐름(좀더 구체적으로 디지털 정보의 각 조각이 버퍼에 입력되고 제거되는 시간)은 엄격히 제어된다. 따라서 이러한 시그널들은 그들이 전송되는 속도와 동일한 공칭속도로 소진되는 것으로 간주될 수 있다.
위에서 언급된 바와 같이, 위에서 언급된 네트워크들의 하나에 의하여 전달되는 디지털 오디오-비디오 시그널은 가변적으로 압축된다. 예를 들면 비디오는 다음과 같은 표준:엠페그(Moving Picture Experts Group: 이하 'MPEG'라 함)-1, MPEG-2, MPEG-4, H.261, H.263, H.320, 제이페그(Joint Photographic Experts Group: 이하 'JPEG'라 함) 등: 의 어느 하나에 따라 압축될 수 있다. 마찬가지로 오디오는 다음과 같은 표준:"MP3"(MPEG-1 Layer Ⅲ), MPEG-2, AC-3, AC-4, G.720, ATRAC(adaptive transform acoustic coding), "MLP"(Meridian Lossless Packing), 델타-시그마(Delta-Sigma) 등:의 어느 하나에 따라서 압축될 수 있다. 만약 오디오-비디오 시그널이 가변적으로 압축된다면, 하나의 표현단위(presentation unit)를 표현하기 위하여 필요한 정보의 양 또는 재생시간의 주어진 단위(예를 들면, 비디오의 프레임 또는 필드(field), 오디오 프레임 등)는 표현단위에 따라 변하게 된다. 가변적으로 압축된 시그널들은 위에서 언급된 관련 출원에서 기술된 타이밍 및 스케줄링 제약들을 가진다. 하나 또는 그 이상의 오디오-비디오 시그널의 다중화시그널에서 각 기본 스트림은 주어진 오디오-비디오 시그널의 적정한 실시간소진이 가능하기 위해서는 준수되어야 하는 엄격한 분할되는 시간 전송스케줄을 갖는 것이라고 말하면 충분하다. 또한 스트림 내에서 주어진 오디오-비디오 시그널의 시간 스탬프(stamp)의 상대적 간격이 너무 많이 간섭되는 것과 이러한 시간 스탬프(stamp)의 값들이 어떤 상대적인 이동을 반영하도록 조정되는 것을 확신하도록 주의를 하여야 한다.
상기 네트워크들의 일부는 실시간 데이터뿐만 아니라 베스트-에포트 데이터를 전송할 수 있다. 여기서 베스트-에포트 데이터는 상기 기술된 제한과 무관하게 전송될 수 있는 어떤 종류의 데이터를 거의 포함한다.
이러한 데이터는 실행가능한(executable) 코드, 이메일메시지, 음악, 비디오메일, "전자프로그램 가이드(electronic program guide: 이하 'EPG'라 함)", 웹페이지를 포함하는 파일이 될 수 있다. 일반적으로 상기 언급된 형태의 각 데이터 스트림은 실시간 즉 전송되는 대로 소비되지 않거나 또는 실시간에 실행된다면 데이터 스트림의 전송 또는 표현에 있어서 휴지(pause)가 허용된다.
국제특허출원번호 제PCT/IB00/00605호는 양수인의 "제트브랜드(zBandTM)" 제품에 채용된 시스템을 게시하고 있다. 이 시스템에서, 광대역 통신 네트워크의 헤드엔드의 스케줄러(scheduler)는 개개의 베스트-에포트 스트림들의 전송을 스케줄하고, 그 스케줄에 따라 오디오-비디오 시그널로 삽입하기 위하여 그것들을 검색한다. 베스트-에포트 데이터 스트림들은 클라이언트 디바이스 또는 노드(node)에 수신되어 저장되며, 이것은 또한 양수인의 "제트브랜드" 제품의 부분으로 채용된다.클라이언트 노드는 거기에 저장된 베스트-에포트 데이터를 사용할 수 있다. 예를 들면 데이터가 새로운 "코어 이미지(core image)" 또는 클라이언트 노드를 오퍼레이팅하기 위한 실행가능 코드라면 클라이언트 노드는 그 코드를 실행한다. 데이터가 비디오 파일이라면, 비디오 파일은 클라이언트 노드의 오퍼레이터에 의하여 재생에 유용하게 만들어진다.
이러한 시스템을 개선하는 것이 바람직하다. 예를 들면 파일데이터의 다수의 코오퍼레이팅(cooperating), 셀프컨피겨링(self-configuring) 소스를 제공하는 것이 바람직하다. 또한 신뢰성 있는 베스트-에포트 데이터 전송이 가능한 것이 바람직하다. 또한 베스트-에포트 데이터를 수신하도록 클라이언트 노드의 특성을 개선하는 것이 바람직하다.
본 특허출원의 주제는 다음의 특허출원의 주제에 관련된 것이며, 다음의 특허출원 전부는 본 특허출원과 마찬가지로 동일한 양수인에게 양수되었다.
(1) "레지스 그레타캡(Regis Gratacap)" 및 "윌리엄 슬래터리(William Slattery)"가 1998년 1월 14일 출원한, 미국특허출원번호 09/007,212의 "Receipt and Dispatch Timing of Transport Packet in a Video Program Bearing Stream Remultiplexer"
(2) "레지스 그레타캡"이 1998년 1월 14일 출원한, 미국특허출원번호 09/007,334의 "Dynamic Video Program Bearing Stream Remultiplexer"
(3) "레지스 그레타캡"이 1998년 1월 14일 출원한, 미국특허출원번호 09/007,203의 "Re-timing of Video Program Bearing Streams Transmitted by an Asynchronous Communication Link"
(4) "로버트 로비네트(Robert Robinett)" 및 "레지스 그레타캡"이 1998년 1월 14일 출원한, 미국특허출원번호 09/007,211의 "Bandwidth Optimization of Video Program Bearing Transport Streams"
(5) "레지스 그레타캡" 및 "윌리엄 슬래터리"가 1998년 1월 14일 출원한, 미국특허출원번호 09/007,210의 "Network Distributed Remultiplexer for Video Program Bearing Transport Streams"
(6) "레지스 그레타캡"이 1998년 1월 14일 출원한, 미국특허출원번호 09/007,204의 "Remultiplexer for Video Program Bearing Transport Streams with Assisted Output Timing for Asynchronous Communication Output"
(7) "윌리엄 슬래터리" 및 "레지스 그레타캡"이 1998년 1월 14일 출원한, 미국특허출원번호 09/006,964의 "Remultiplexer for Video Program Bearing Transport Streams with Program Clock Reference Time Stamp Adjustment"
(8) "윌리엄 슬래터리" 및 "레지스 그레타캡"이 1998년 1월 14일 출원한, 미국특허출원번호 09/007,198의 "Remultiplexer Cache Architecture and Memory Organization for Storing Video Program Bearing Transport Packets and Descriptors"
(9) "윌리엄 슬래터리" 및 "레지스 그레타캡"이 1998년 1월 14일 출원한, 미국특허출원번호 09/007,199의 "Scrambling and Descrambling Control Word Control in a Remultiplexer for Video Program Bearing Transport Streams"
(10) "윌리엄 슬래터리"가 1998년 1월 14일 출원한, 미국특허출원번호 09/006,963의 "Reference Time Clock in a Remultiplexer for Video Program Bearing Transport Streams"
(11) "존 알. 믹, 주니어(John R. Mick, Jr.)"가 1999년 9월 9일 출원한, 미국특허출원번호 09/393,227의 "Remultiplexer Architecture for controlling theSupply of Data to be Combined With Constant End-to-End Delay Information"
(12) "마쉬드 엘리 압돌라히(Mashid Ellie Abdollahi)", "자바드 에스마일리(Javad Esmaeili)", 및 "산제이 브하티아(Sanjay Bhatia)"가 2001년 8월 20일 출원한, 미국특허출원번호 09/933,265의 "Controlling Multiple Nodes To Execute Messages Only Once"
(13) "마쉬드 엘리 압돌라히", "자바드 에스마일리", 및 "산제이 브하티아"가 2001년 8월 20일 출원한, 미국특허출원번호 09/933,260의 "Controlling Multiple Nodes Divided Into Groups"
(14) "마쉬드 엘리 압돌라히", "자바드 에스마일리", 및 "산제이 브하티아"가 2001년 8월 20일 출원한, 미국특허출원번호 09/933,264의 "Controlling Multiple Nodes Using SNMP"
이러한 문서들의 내용은 여기서 레퍼런스(reference)로서 편입된 것이다.
본 발명은 하나의 소스(source)로부터 통신을 위하여 하나 이상의 목적지 또는 수신노드로 베스트-에포트 데이터 파일의 전송을 스케줄링하는 것에 관한 것이다. 본 발명의 실시예에서 베스트-에포트 데이터는 방송네트워크에서 디지털 오디오-비디오 시그널과 함께 이송된다. 그러나 본 발명은 다른 타입의 네트워크에서도 적용될 수 있다.
다음의 구체적인 설명은, 실시예로서 주어지는 것이며, 본 발명을 단지 여기에 한정시키는 것은 아니며, 다음에 첨부되는 도면과 함께 최선으로 이해가 되도록 할 것이다.
도 1은 본 발명의 하나의 실시예에 따른 전체적인 네트워크 구조를 나타낸다.
도 2는 본 발명이 사용될 수 있는 예시적인 방송네트워크를 나타낸다.
도 3은 본 발명의 하나의 실시예에 따라 베스트-에포트 데이터를 전송패킷으로 포맷팅(formatting)하는 것을 도시한다..
도 4는 베스트이포트 데이터 소스의 기능적 블록도를 나타낸다.
도 5 내지 8은 서비스 채널 생성과 관련하여 리소스매니저와 결합된 그래픽 유저 인터페이스에 의하여 표시되는 다른 스크린 샷(screen shot)을 나타낸다.
도 9-11은 전송채널의 생성 또는 조정과 관련하여 리소스매니저와 결합된 그래픽 유저 인터페이스에 표시되는 일련의 스크린 샷을 나타낸다.
도 12-14는 패치 채널의 생성 또는 조정과 관련하여 리소스매니저와 결합된 그래픽 유저 인터페이스에 의하여 표시되는 스크린 샷을 나타낸다.
도 15-16은 오퍼레이터 콘솔의 GUI를 사용하여 표시될 수 있는 윈도우의 좌측과 우측을 각각 표시한다.
도 17은 오퍼레이터 콘솔의 그래픽 유저 인터페이스에 표시되는 프로그램 인스펙터 페인을 나타낸다.
도 18은 잡 인스펙터 페인을 나타낸다.
도 19는 클라이언트 노드의 실제적인 기능 블록도를 나타낸다.
도 20은 프로그램의 파일데이터를 이송하기 위한 패킷의 포맷을 나타낸다.
도 21은 ABC 서버에 의하여 수행되는 프로세스를 나타낸다.
도 22는 클라이언트 노드에 의하여 수행되는 프로세스를 나타낸다.
도 23A와 도 23B는 네트워크 요소에 의하여 수행되는 프로세스를 나타낸다.
도 24는 ABC 패킷의 포맷을 나타낸다.
도 25는 ANAK 패킷을 위한 옵션확장필드의 포맷을 나타낸다.
도 26은 ANAK 요구의 포맷을 나타낸다.
도 27은 ACK 패킷을 위한 옵션확장필드의 포맷을 나타낸다.
이러한 그리고 다른 목적은 본 발명에 따라 성취될 수 있다. 본 발명이 사용되는 예시적인 환경은 하나 이상의 수신 클라이언트 노드에 정보를 통신하는 복수의 컨트롤 노드를 포함하는 통신네트워크이다.
일 실시예에 따르면, 컨트롤 노드(control node)들 중 하나는 주컨트롤 노드(primary control node)로 선택되고 다른 컨트롤 노드는 보조컨트롤 노드(assistant control node)로 선택되며, 주컨트롤 노드와 보조컨트롤 노드가 연결된다. 잡(job)은 예정 시간에 실행되도록 예정되어 있다. 각 잡은 특정시간에 특정 채널로 전송되는 하나 또는 그이상의 특정프로그램을 열거한다. 프로그램은 유사한 방식으로 수신(클라이언트)노드에 의하여 사용될 수 있는 하나 이상의 파일의그룹과 수신(클라이언트) 노드가 파일들을 사용할 수 있는 방식을 열거하는 프로그램정보로 구성된다. 채널은 프로그램을 통신하는 개별적인 패스(path)이며 프로그램을 통신하는 방법을 열거하는 채널 정보를 가진다. 프로그램은 다른 채널 정보에 의하여 열거되는 복수의 다른 방식중의 하나로 통신될 수 있다. 잡이 보조컨트롤 노드의 하나에 의하여 실행되어야 한다면, 주컨트롤 노드는 상기 보조컨트롤 노드가 상기 잡을 실행하도록 하기 위하여 하나 이상의 메시지를 상기 보조컨트롤 노드로 발송한다. 지정된 컨트롤 노드는 잡의 스케줄된 시간에 잡의 특정 채널을 통하여 상기 잡의 적어도 하나의 프로그램을 하나 또는 이상의 수신노드에 통신하여 잡을 수행하게 된다.
오퍼레이터 콘솔(operator console)은 잡 스케줄링, 프로그램 및 다른 태스크(task)의 정의를 위하여 그래픽 유저 인터페이스(graphical user interface)를 제공할 수 있다. 일 실시예에 따르면 상기 그래픽 유저 인터페이스는 타임라인(time line)을 표시하는 첫 번째 표시가능영역과 상기 첫 번째 표시가능영역에 인접하며 복수의 지정된 페인(tabbed pane)을 표시하는 두 번째 표시가능영역을 갖는 디스플레이 스크린을 포함한다. 각 지정된 페인은 각 채널에 상응되며, 볼 수 있고 각 지정된 페인의 나머지가 보이도록 선택될 수 있는 부분을 가지고 있다. 지정된 페인이 보이게 될 때, 이것은 다른 지정된 페인의 다른 부분은 보이지 않게 한다. 각 지정된 페인이 선택될 때, 각 지정된 페인은 일정한 스케일의 시간 간격을 표시한다. 상기 보이는 지정된 페인은 실행을 위하여 스케줄된 잡을 상기 잡이 수행되는 시간을 표시하기 위하여 각 페인의 하나 이상의 시간 간격에 걸쳐 연장되는 솔리드 라인(solid line)으로 표시한다.
예시하는 바와 같이, 그래픽 유저 인터페이스는 또한 세 번째와 네 번째 표시 영역을 가질 수 있다. 상기 세 번째 표시가능영역은 선택할 수 있는 채널의 체계적인 리스트를 표시한다. 상기 네 번째 표시가능영역은 해당채널에서 데이터를 통신하는 각각의 방법을 지시하는 채널 정보를 포함하여 선택된 채널의 특성을 나타낸다. 매뉴얼 입력에 대응하여, 상기 세 번째 영역에 나열된 각 채널은 각각 독립적으로 선택된다. 상기 네 번째 영역은 상기 세 번째 표시가능영역에 나열된 채널 중에서 현재 선택된 어느 한 채널의 특성을 표시한다. 실례로, 상기 세 번째 표시가능영역은 또한 또는 선택적으로 선택할 수 있는 프로그램의 체계적인 리스트를 표시한다.
다른 실시예에 따르면, 수신된 프로그램 정보를 사용할 수 있는 클라이언트 노드(client node)는 메모리와 통신인터페이스 및 프로세서를 갖는다. 상기 통신인터페이스는 프로그램을 수신하기 위한 것이며, 여기서 각 프로그램은 상기 채널의 하나를 통하여 상기 클라이언트 노드에 수신된 하나 이상의 파일의 그룹으로 구성된다. 상기 채널은 클라이언트가 각 채널로부터 수신한 프로그램 정보를 개별적으로 접근 가능한 개체에 따라 상기 메모리에 따로따로 저장할 수 있도록 해준다. 상기 프로세서는 브로커 프로세스(broker process)와 세션 매니저 프로세스(session manager process)를 포함하는 다수의 프로세스를 수행하기 위한 것이다. 상기 세션매니저는 서비스 채널로 지정된 상기 특정한 하나의 채널에 대응하는 개체(object)로부터 다른 채널의 존재와 상기 채널의 각각에서 수신된 프로그램의 스케줄을 알려주는 정보를 검색한다. 상기 세션매니저는 상기 클라이언트가 가입한 각 채널의 통지를 발행한다. 상기 세션매니저의 통지에 대응하여, 상기 브로커는 클라이언트가 가입한 각 채널로부터 하나 이상의 (안내된)프로그램을 역다중화(demultiplex)하게 된다. 상기 브로커는 프로그램에서 개별적인 파일과 함께 이송되는 프로그램정보에 의하여 특정된 것에 따라 각 역다중화된 프로그램에 포함된 각 개별적인 파일을 사용한다.
예를 들면, 상기 브로커프로세서는 각 프로그램의 프로그램정보에 의하여 명기된 디렉토리(directory)에 각 수신된 프로그램 파일을 저장한다.
실시예로, 또한 상기 세션매니저는 상기 클라이언트가 가입된 각 프로그램을 지시하는 가입된 프로그램 개체를 유지한다. 상기 브로커 프로세스는 클라이언트가 가입한 상기 하나의 채널로부터 주어진 프로그램을 역다중화할지 여부를 판단하기 위하여 가입된 프로그램 개체에 접근한다.
실시예로, 상기 클라이언트 노드는 또한 디스플레이 장치와 매뉴얼 입력디바이스를 포함한다. 상기 공지정보는 클라이언트가 가입할 수 있는 각 채널과 상기 각 채널에 전송되는 프로그램의 스케줄을 지시한다. 더욱이 상기 프로세서는 상기 클라이언트 노드의 오퍼레이터에게 공지정보를 표시하는 가이드서버 프로세서를 실행한다. 또한 상기 가이드서버는 상기 매뉴얼입력디바이스를 통하여 오퍼레이터로부터 지시를 수신하며, 상기 매뉴얼입력 디바이스는 상기 특정한 채널과 상기 채널로부터 수신될 수 있는 상기 특정 프로그램에 가입하거나 탈퇴하는데 사용된다.
프로그램파일 데이터는 특정포맷의 패킷으로 전송될 수 있다. 하나의 실시예에 따르면, 상기 프로그램파일 데이터는 하나 이상의 패킷 시퀀스로 전송되며, 상기 시퀀스의 각 패킷은 하나의 시그널로 소스노드(예를 들면 컨트롤러 노드)로부터 수신노드(recipient node)로 전송된다. 상기 패킷 시퀀스의 첫 번째 패킷의 헤더(header)는 상기 패킷 시퀀스의 프로그램을 유일하게 식별하는 프로그램 식별자를 포함하는 프로그램식별자필드를 포함한다. 상기 패킷 시퀀스는 하나 이상의 데이터 트리플렛을 포함하는 페이로드(payload)를 포함하며, 상기 각 데이터 트리플렛은 태그(tag)와 길이 및 값 필드를 포함한다. 상기 태그필드에서 상기 태그는 상기 값 필드에서의 값을 유일하게 식별되며, 상기 길이필드에서의 길이는 하나의 데이터 워드(data word)에서 바로 다음에 따르는 데이터 트리플렛까지의 오프셋(offset)을 나타낸다. 제로 길이는 이 데이터 트리플렛에 이어지는 다음 데이터 트리플렛이 없음을 나타낸다. 상기 데이터 트리플렛 시퀀스의 값필드는 베스트이포트 프로그램의 하나의 각 파일에 대한 상기 시퀀스의 각 패킷에서의 파일데이터의 상호관계에 대한 정보를 포함한다.
예시하는 바와 같이, 상기 트리플렛의 값은 다음 중의 하나를 나타낼 수 있다. : (a) 파일 데이터에 대응하는 프로그램의 파일번호, (b) 파일에서의 정보의 총량, (c) 이 트리플렛을 포함하는 패킷에서 전송되는 파일데이터에 의하여 표시되는 파일 내에서의 오프셋, (d) 상기 파일의 최종 기록 시간, (e) 상기 프로그램을 위하여 전송될 것으로 기대되는 파일의 총수, (f) 상기 파일의 파일 이름, (g) 상기 파일을 위한 잡의 식별자(identifier).
네트워크 요소는 신뢰성있는 패킷통신을 돕기 위하여 컨트롤 노드와 수신클라이언트 노드 사이의 리턴패스(retrurn path)상에서 제공될 수 있다. 일 실시예에 따르면 클라이언트 노드는 특정 채널로부터 프로그램의 하나 이상의 파일의 초기 데이터의 수신을 준비한다. 상기 클라이언트 노드는 상기 초기데이터의 데이터워드의 다수의 레인지가 수신되지 않았음을 결정한다. 상기 클라이언트 노드는 데이터워드의 복수의 레인지가 수신되지 않았음을 나타내는 싱글패킷(single packet)을 발생한다. 그리고 나서 상기 클라이언트 노드는 상기 데이터워드의 복수의 레인지가 재전송되도록 할 수 있는 다른 노드에 리턴패스를 통하여 상기 싱글패킷을 전송한다.
다른 실시예에 따르면, 네트워크 요소는 상기 프로그램의 하나 이상의 상기 파일의 데이터워드의 하나 이상의 레인지의 수신을 반대로 확인하는 ANAK 패킷을 수신한다. 상기 네트워크 요소는 수신된 패킷과 관련된 정보를 저장하며, ANAK 패킷을 위한 타이머를 시동시킨다. 만약, 상기 타이머의 완료 전에, 미리 수신된 ANAK 패킷의 데이터워드의 레인지를 인터섹트하는 데이터워드의 하나 이상의 레인지의 부정적으로 응답하는 ANAK 패킷을 수신하며, 상기 네트워크 요소는 상기 ANAK 패킷의 레인지들을 합체하고 각각 상기 타이머를 재설정한다. 만약 상기 타이머가 만료된다면, 상기 네트워크 요소는 상기 합체된 레인지에서 초기 데이터의 모든 레인지를 재전송하도록 한다.
또 다른 실시예에 따르면, 컨트롤 노드는 상기 컨트롤 노드로부터 상기 클라이언트 노드로의 포워드 패스(forward path) 상에서 하나 이상의 클라이언트 노드로 파일의 초기데이터를 포함하는 다수의 패킷을 전송한다. 상기 컨트롤 노드는 하나 이상의 레인지의 데이터 워드가 적어도 하나의 클라이언트 노드에 의하여 수신되지 않았음을 나타내는 하나 이상의 부정적 응답 패킷을 수신한다. 상기 컨트롤 노드 멀티캐스트는 상기 하나 이상의 패킷에 의하여 표시되는 각 레인지에서 상기 초기 데이터를 포함하는 다수의 패킷의 각각을 재전송한다.
또 다른 실시예에 따르면, 패킷의 다수의 타입이 신뢰성있는 전송을 보조하기 위하여 제공된다. 각 패킷은 소스포트 필드(source port field), 목적지포트 필드(destination port field), 타입 필드(type field)를 포함한다. 상기 옵션타입 필드에서 ANAK 값은 상기 패킷이 비동기 부정적 응답 리스트 패킷이며, 이는 다른 패킷에서 초기 데이터의 레인지의 리스트를 수신하는데 실패하였음을 나타낸다. 옵션타입 필드에서 ACK 값은 상기 패킷이 다른 패킷에서 초기 데이터를 수신하였음을 응답하는 긍정적 응답 패킷을 나타낸다. 상기 패킷은 또한 어떤 특정 초기 데이터 패킷을 나타내는 값을 포함하는 필드의 시퀀스 번호를 포함한다.
네트워크 구조(network architecture)
도 1에서 보는 바와 같이, 패킷을 수송하는 베스트-에포트 데이터는 포워드패스(2)에 의하여 베스트-에포트 데이터의 하나 이상의 소스노드로부터 하나 이상의 수신노드(3)로 전송된다. 상기 수신노드는 상기 소스노드(들)로 연결되는 리턴패스(4)를 가질 수 있으며, 리턴패스는 상기 포워드 패스와 다르거나 동일할 수 있다. 아래에 보다 상세히 기술되는 옵션 네트워크 요소(5)는 일 실시예에 의하여 제시될 수 있으며, 적어도 패스(6)를 통하여 수신노드로부터 메시지를 수신할 수 있으며, 패스(7)를 통하여, 소스노드(들)로 메시지를 전송할 수 있다. 일 실시예에서 상기 네트워크 요소노드(5)는 수신노드로 직접 또는 패스(8)를 통하여 메시지를 보낼 수 있으며, 또는 소스노드(들)와 포워드 패스(2)를 통하여 보낼 수 있다. 다른 실시예에서 소스노드(들)는 상기 네트워크 요소노드(5)에 패스(9)를 통하여 메시지를 전송할 수 있으며, 이는 수신노드(3)에 전송하기 위한 것일 수 있다.
도 1은 전체적인 네트워크 구조이다. 이러한 네트워크는 실제로 하나 이상의 컴퓨터(예를 들면, PC컴퓨터 또는 다른 컴퓨터)와 소스노드(1)의 라우터(router)와 광역통신망(wide area network: 이하 'WAN'이라 함)과 상기 수신노드를 사용하여 구축되며, 상기 수신노드는 포워드패스(2) 및 리턴패스(4)와 컴퓨터들로 구성된다. 상기 WAN은 인터넷의 일부일 수 있다. 상기 네트워크 요소(5)는 컴퓨터와 패스(6,7, 8, 9)일 수 있으며, 또한 WAN에 의하여 구축될 수 있다. 여기서 컴퓨터에 의하여 구축되는 노드들은 프로세서와 메모리(디스크 드라이버와 같은 영구메모리, RAM IC와 같은 일시적 메모리)와 모니터와 매뉴얼 입력장치(예를 들면, 키보드, 마우스, 키패드 등)와 통신장치(예를 들면, 전화모뎀, 케이블모뎀, 네트워크 인터페이스 카드, 디지털 텔레비전 튜너카드 등)와 이러한 장치들을 상호 연결하는 버스를 갖는다.
다른 실시예에서, 본 발명은 디지털 오디오-비디오 시그널을 전송하기에 적합한 방송네트워크를 사용하여 구축될 수 있다. 이러한 네트워크는 베스트-에포트 데이터를 전송하기 위해서 사용될 수 있는 잉여 능력을 가질 수 있다.
도 2는 본 발명이 사용될 수 있는 예시적인 네트워크(200)를 나타낸다. 도 2의 상기 네트워크는 케이블 또는 지상 또는 위성 방송네트워크이다. 도 2에서 상기 방송네트워크(200)는 헤드엔드사이트(head end site)(201)와 포워드통신패스(forward communication path)(202), 다수의 원격 수신사이트들(203) 및 WAN 리턴패스(204)를 포함한다. 상기 헤드엔드사이트는 실질적으로 베스트-에포트 데이터 스트림서버(210), 베스트-에포트 데이터 스트림 인캡슐레이터/인젝터노드(214), WAN 라우터 노드(216), 다수의 네트워크 요소노드(205) 및 이러한 노드(210-216, 205)를 연결하는 근거리 네트워크(local area network : 이하 'LAN'이라 함)(218)를 포함한다. 상기 LAN(218)은 100BASE-T Ethernet 네트워크와 같은 하나 이상의 고속네트워크일 수 있다. 상기 인캡슐레이터/인젝터노드(214)는 캘리포니아 써니빌에 위치한 "스카이스트림 네트웍스 인크(SkyStream Networks IncTM)"사에 의하여 제공되고 있는 "소스 미디어 라우터(Source Media RouterTM)"를 포함할 수 있다. 상기 베스트-에포트 데이터스트림서버(210)는 "스카이스트림 네트웍스 인크"사에 의하여 제공되고 있는 "제트밴드(zBandTM)" "디렉터(DirectorTM)" 소프트웨어를 운용하는 하나 이상의 PC호환 컴퓨터일 수 있다. 이러한 베스트-에포트 데이터스트림서버(210)는 이하에서 더욱 상세히 기술될 것이다.
상기 WAN 라우터노드(216)는 캘리포니아 산조세에 위치한 "시스코 시스템스 인크(Cisco Systems IncTM)"사에 의하여 제공되는 7200TM시리즈 라우터와 같이 상업적으로 이용 가능한 라우터일 수 있다. 상기 WAN은 인터넷 또는 보안을 위하여 방화벽을 포함하는 가상사설통신망(virtual private network: 이하 'VPN'이라 함)과 같은 사적인 WAN과 공개적으로 접근할 수 있는 WAN일 수 있다. 또한 상기 리턴패스(204)는 위성채널 또는 지상채널과 같은 무선채널로서 구축될 수 있다.
상기 헤드엔드사이트(201)는 상기 인캡슐레이터/인젝터노드(214)로부터 출력되는 디지털시그널을 수신하기 위하여 연결된 모듈레이터(modulator)(220)를 포함할 수 있다. 상기 모듈레이터(220)는 상기 인캡슐레이터/인젝터노드(214)에서 제공되어 입력된 디지털시그널을 이송하는 시그널을 발생하는 어떤 적정한 모듈레이터일 수 있다. 상기 변조된 시그널은 전송된다.
도 2에서 보는 바와 같이, 상기 인캡슐레이터/인젝터노드(214)는전송스트림(transport stream)을 수신한다. 상기 전송스트림은 실질적으로 MPEG-2 표준에 따라 형성된 일련의 전송패킷이다. 각 전송패킷은 특정 단일스트림의 디지털정보를 포함하는 188바이트(byte) 패킷이다. 도시하는 바와 같이, 상기 입력된 전송스트림은 실질적으로 하나 이상의 리얼타임 프로그램을 형성하는 기본적인 스트림의 디지털데이터를 이송한다. 상기 인캡슐레이터/인젝터노드(214)는 위에서 언급된 엄격한 타이밍과 스케줄링 요구사항을 충족시키는 방식으로 베스트-에포트 데이터를 전송스트림으로 삽입할 수 있다.
상기 포워드패스(203)는 무선(air), 우주(space), 동축케이블, 광파이버, 동선 및 이러한 물리적(physical) 미디어 상에서 시그널을 이송하기 위한 적정한 전자장비의 조합에 의하여 구축될 수 있으며, 상기 특정 네트워크를 적합하게 하기 위하여 필요한 것이다.
상기 네트워크 요소 노드(205)는 상기 헤드엔드 사이트(201)에 위치될 수 있으며, 옵션으로 하나 이상의 다른 위치에 위치될 수 있다. 만약 다른 위치에 위치된다면, 그들은 WAN을 통하여 상기 헤드엔드 사이트(201)에 연결될 것이다. 본 분야에서 통상의 기술을 가진 자들은 다수의 다른 위치와 네트워크 요소 노드(205)의 물리적 연결들을 생각할 것이며, 이것은 아래에서 상세히 기술되는 바와 같이 그들이 통신하고 작동하게 한다.
각 수신사이트(203)는 하나 이상의 클라이언트 노드(240)를 가지며, 이러한 클라이언트 노드(204)는 "스카이스트림 네트웍스 인크"사에 의하여 제공되는 제트밴드(zBandTM) 클라이언트(ClientTM) 소프트웨어가 설치되는 PC호환 컴퓨터를 사용하여 구성된다. 어떤 경우에는, 상기 클라이언트사이트는 하나 이상의 라우터노드(230, 260)를 가진다. 예를 들면, 상기 시그널이 위성을 통하여 수신되면, 상기 라우터노드(230)는 "스카이스트림 네트웍스 인크"사로부터 제공되는 에지 미디어 라우터(Edge Media RouterTM)일 수 있다. 다른 하나로는, 상기 클라이언트 노드(240)는, 상기 헤드엔드 사이트(201)로부터 변조된 신호를 직접 수신하기 위하여, 캘리포니아의 밀피타스에 위치한 "브로드로직(BroadLogicTM)"사로부터 제공되는 "테라캐스트 디에티-100(TerraCast DAT-100TM)" 또는 "세텔라이트 익스프레스(Satellite ExpressTM)"와 같은 디지털 텔레비젼 수신카드가 장착될 수 있다. 상기 라우터(260)는 리턴패스(204)에 연결되기 위한 WAN 라우터일 수 있다. 상기 라우터(260)는 라우터(216)와 동일한 디자인일 수 있다. 다른 실시예에서는, 상기 수신사이트(203)는 무선 리턴패스와 같이 리턴패스(204)와 다른 종류일 수 있다.
네트워크(200)에서 통신 개요
다음은 네트워크(200)상에서의 기본 통신에 대하여 설명한다. 하나 이상의 디지털 오디오-비디오 시그널이 상기 인캡슐레이터/인젝터노드(214)에 입력된다. 상기 디지털 오디오-비디오 시그널은 MPEG-2 컴플라이언트 전송 스트림으로 입력되며, 이것은 상기 오디오-비디오 시그널을 포함하는 전송패킷의 인터리브 시퀀스(interleaved sequence)이다. 각 전송패킷은 4바이트 헤더를 갖는 188바이트 패킷이다. 상기 헤더는 13비트(bit)의 긴 패킷 식별자 또는 PID(packet identifier)이다. 각 PID는 하나의 특정스트림, 예를 들면, 기본 스트림 또는 오디오-비디오 시그널의 구성 시그널에 고유하게 할당된다. 주어진 PID를 갖는 전송패킷은 단지 상기 특정스트림의 데이터를 갖는다.
상기 인캡슐레이터/인젝터노드(214)는 위에서 기술한 구분적(piece-wise) 타이밍과 스케줄링 제약을 만족하는 입력된 전송패킷의 열에 다른 전송패킷을 삽입할 기회를 갖는다. 이러한 전송패킷은 베스트-에포트 데이터 스트리머(210)와 같이 다른 디바이스에 의하여 공급되는 데이터를 포함한다.
도 3은 베스트-에포트 데이터가 전송패깃으로 형성되는 방법을 도시한다. 주어진 데이터 스트림(102)의 X바이트(byte)의 유닛은 상기 베스트-에포트 데이터 스트리머(210)의 하나에서 얻어진다. 상기 정보의 유닛은 단순히 아래에서 기술하는 바와 같이 생성된 패킷의 전부 또는 부분의 바이트의 스트림이 될 수 있다. 상기 베스트-에포트 데이터 스트리머(210)는 전송 레이어 헤더(transport layer header: 이하 'TH'라 함)(106)와 네트워크 레이어 헤더(network layer header: 이하 'IPH'라 함)(104)를 상기 정보 유닛(102)에 추가한다. 상기 전송 헤더(106)는 사용자데이터그램프로토콜(user datagram protocol: 이하 'UDP'라 함) 또는 전송제어프로토콜(transmission control protocol: 이하 'TCP'라 함) 헤더가 될 수 있다. 다른 또 하나로서, 인터넷프로토콜(Internet Protocol: 이하 'IP'라 함) 터널링을 채용하고, 상기 전송 헤더(106)는 또한 상기 네트워크 레이어 헤더(104)에 부가하여 두 번째로 삽입된 네트워크 레이어(예를 들면, IP)헤더를 포함한다. 8바이트 UDP 전송 레이어 헤더(106)가 보여진다. 게다가 상기 네트워크 레이어 헤더(104)는 IP헤더이다. IP헤더는 패킷을 전송하는 노드의 IP 어드레스인 소스어드레스와 상기 패킷을 수신하는 노드 또는 노드들에 할당되는 어드레스인 목적지 어드레스를 포함한다. 목적지 어드레스는, 단지 하나의 노드에 할당된 유니캐스트 어드레스 또는 멀티캐스트 그룹에 가입된 다수의 노드에 할당된 멀티캐스트 어드레스가 될 수 있다.
이리하여, 생성된 상기 패킷은 정보유닛(102)과 헤더(104, 106)를 포함하며, 이더넷 피지컬 앤드 링크 레이어 프로토콜(Ethernet physical and link layer protocal)에 따라 생성된 하나 이상의 프레임으로 근거리통신망(Local Area Network: 이하 'LAN'이라 함)(218)을 통하여 상기 인캡슐레이터/인젝터노드(214)에 전송된다. 상기 인캡슐레이터/인젝터노드(214)는 단순히 그들이 도착하면 상기 프레임들로부터 정보를 추출한다.
다음에, 상기 인캡슐레이터/인젝터노드(214)는 12 바이트 MPEG 인캡슐레이터(MPE) 프로토콜 헤더(110)를 첨부하고, 상기한 MPE 프로토콜에 따라 선택적(OPT) 8 바이트 길이 필드(108)를 또한 첨부할 수 있다. MPE는 기준 문서 EN 301 192에서 디지털 비디오 방송(Digital Video Broadcast: 이하 'DVB'라 함) 기준에 의해 공표된 전송 패킷으로 데이터를 인캡슐하기 위한 기준이다. 상기 인캡슐레이터/인젝터노드(214)는 형성된 정보유닛을 184 바이트 길이의 전송 패킷 페이로드(112)로 세그먼트화 한다. 상기 인캡슐레이터/인젝터노드(214)는 각각의184 바이트 전송 패킷 페이로드(112)에 전송 스트림을 어태치(attach)한다. 상기 인캡슐레이터/인젝터노드(214)는 상기 전송 패킷이 베스트-에포트 데이터를 포함하고 있음을 나타내기 위하여 특별한 PID를 각 전송 스트림 헤더(114)로 삽입한다. 상기 인캡슐레이터/인젝터노드(214)는 출력 전송 스트림 내에 베스트-에포트 데이터를 포함하는 전송 패킷을 전송한다.
상기 모듈레이터(220)는 상기 전송 스트림을 하나 또는 그이상의 주파수 채널로 변조한다. 예시하는 바와 같이, 상기 모듈레이터(220)는 상기 모듈레이터(220)가 디지털 정보를 변조할 수 있는 각각의 주파수 채널 상으로 개개의 전송 스트림(도시하지 않음)을 수신할 수 있다. 위성 포워드 패스의 경우에, 상기 모듈레이터(220)는, 예를 들면 QPSK, 950 MHz ∼ 2,150MHz의 범위에 위치한 22MHz 광역주파수 채널에서 전송 스트림을 변조할 수 있다. 지상 포워드 패스(203)에서 상기 모듈레이터, 예를 들면 8-VSB 또는 OFDM,는 각각 ATSC 또는 DVB 표준에 따라 시그널을 7 또는 8 MHz 주파수 채널로 변조할 수 있다. 케이블 포워드 패스의 경우에, 상기 주파수 채널은 6, 7 또는 8 MHz이지만 64-QAM과 같이 다른 변조 기술이 사용될 수 있다. 상기 변조된 시그널은 상기 포워드 패스(202)를 통하여 상기 원거리 사이트(203)로 전송된다.
상기 원거리 사이트(203)에서, 각 라우터 노드(230) 또는 상기 변조된 시그널을 직접 수신하는 각 클라이언트 노드(240)는 특정한 주파수 채널에 동조되도록 구성된다. 예시하는 바와 같이, 상기 라우터 노드(230)는 베스트-에포트 데이터를 수송하는 주파수 채널로 동조된다. 상기 라우터 노드(230) 또는 클라이언트노드(240)는 상기 동조된 주파수 채널로부터 전송 스트림을 복조한다. 그리고 나서 상기 라우터 노드(230) 또는 클라이언트 노드(240)는 확인을 위하여 특정 PID 또는 PID 리스트 중의 하나를 갖는 전송 패킷을 필터링한다. 모든 다른 전송 패킷은 버려지거나 무시된다. 예시하는 바와 같이, 상기 라우터 노드(230)와 상기 클라이언트 노드(240)는 베스트-에포트 데이터를 수송하도록 할당되나, 동일한 PID를 갖는 전송 패킷을 선택하도록 구성된다. 상기 라우터 노드(230) 또는 상기 클라이언트 노드(240)는 각각의 페이로드(122)로부터 상기 헤더와 필드(110, 108, 104, 106, 102)를 포함하는 유닛 부분을 재생한다.
다음에 상기 라우터 노드(230) 또는 상기 클라이언트 노드(240)는 네트워크 레이어 헤더(104)에서 IP 목적지 어드레스를 조사한다. 만약 IP 목적지 어드레스가 상기 LAN을 통하여 상기 라우터 노드(230)에 연결된 상기 클라이언트 노드(240)의 하나 또는 상기 시그널을 직접 수신하는 상기 특정 클라이언트 노드(240)에 의하여 수신하기에 적당하다면, 상기 정부는 상기 패킷으로부터 재생된다. 만약 상기 IP 목적지 어드레스가 인식되지 않는 다면, 상기 라우터 노드(230) 또는 상기 클라이언트 노드(240)는 상기 유닛(102-110)을 버리거나 무시한다. 상기 라우터 노드(230)의 경우에는, 상기 재생된 정보는 상기 적절하게 연결된 클라이언트 노드에서 수신하기 위하여 상기 LAN을 통하여 전송된다. 그리고 나서, 상기 재생된 정보를 포함하는 각 클라이언트 노드(240)는 아래에 기술하는 대로 정보를 가공한다.
예시하는 바와 같이, 각 클라이언트 노드(240)는 워싱톤 레드몬드에 위치한마이크로소프트사에서 제공되는 윈도우즈(WindowsTM) 또는 윈도우즈 엔티(Windows NTTM) 또는 오프닝 커넥션과 이러한 커넥션에서 데이터를 수신하기 위한 소프트웨어를 제공하는 리눅스(LINUX)와 같은 오퍼레이팅 시스템을 실행한다. 즉, 상기 클라이언트 노드(240)를 위하여 제공되는 상기 소프트웨어는 특정 IP 어드레스와 UDP/IP 및 TCP/IP 포트를 목적으로 하는 정보를 수신하는 방법을 제공한다. 각 오픈 케넥션에서, 데이터는 만약 적정한 어드레스와 포트 조합을 포함한다면 자동으로 수신되며, 각 유일한 커넥션을 위한 데이터는 개별적으로 버퍼되고 상기 클라이언트 노드에서 실행되는 다른 프로세스에 의하여 유용되도록 만들어진다.
필요할 때, 상기 클라이언트 노드(240)는 또한 특정 네트워크 요소(205)와 통신할 수 있다. 상기 클라이언트 노드(240)는 패킷을 생성하고 그들을 직접 또는 연결된 라우터(260)와 상기 WAN을 통하여 상기 적정한 네트워크 요소(205)로 전송한다. 예를 들면, 만약 상기 WAN이 인터넷이면, TCP/IP 또는 UDP/IP가 통신을 위하여 사용될 수 있다. 상기 네트워크 요소(205)가 상기 클라이언트 노드(240)와 직접 통신을 위하여 비슷한 프로세스를 사용할 수 있다. 마찬가지로, 만약 상기 네트워크 요소(205)가 상기 베스트-에포트 데이터 소스(210)로부터 원거리에 있다면, 상기 네트워크 요소는 상기 베스트-에포트 데이터 소스(210)와 통신하기 위하여 비슷한 방법을 사용할 수 있다. 또한 상기 통신의 각각을 위하여 무선 채널을 사용하는 것이 가능하다.
컨트롤 노드 네트워크(CONTROL NODE NETWORK)
상기 베스트-에포트 데이터 소스는 적절하게 프로그램된 서버들의 조합과 PC호환 컴퓨터와 디스크 드라이버, 오퍼레이터 터미널 및 네트워크 장비로서 구현될 수 있다. 도 4는 상기 베스트-에포트 데이터 소스가 수행하는 기능을 이해하기 위하여 필요한 상기 베스트-에포트 데이터 소스의 기능 블록도를 나타낸다. 보는 바와 같이 3개의 컨트롤러, 즉, 주컨트롤러(350), 첫 번째 보조컨트롤러(360) 및 두 번째 보조컨트롤러(370)는 컨트롤러 네트워크(301)에 의하여 연결된다. 각 컨트롤러는, 예를 들면, 웹 모듈(352, 362, 372)과 큐(queue) 모듈(354, 364, 374)의 두 타입의 모듈을 가진다. 아래에서 보다 상세하게 기술하는 바와 같이, 상기 웹 모듈(352, 362, 372)은 "어그레이션(aggregration) 모듈" 즉 특정 URL 어드레스의 웹사이트로부터 정보를 검색하고 저장 및 가능한 차후의 전송을 위한 모듈이다. 상기 큐 모듈(354, 364, 374)은 전송 모듈 즉 정보를 전송하기 위한 모듈이다. 또한 오퍼레이터 콘솔(330), ABC 서버(380) 및 리소스 매니저(340)는 상기 컨트롤러 네트워크(301)에 연결된다. 데이터 네트워크(302)는 또한 주컨트롤러(350)와 오퍼레이터 콘솔(330) 및 리소스 매니저를 데이터베이스(310)에 연결하기 위하여 제공된다. 이 분야에서의 보통 기술의 하나는 여기서의 토론으로부터 상기 베스트-에포트 데이터 소스는 PC 호환 컴퓨터로 구성되므로 부가적인 프로세스와 모듈을 실행시킬 수 있다는 것을 쉽게 인정할 것이다.
아래의 토론으로부터 자명해 지는 것처럼, 상기 컨트롤러 네트워크(301)와 데이터 네트워크(302)는, 사실 자주는 아니지만, 다른 링크와의 명백한 물리적 네트워크 또는 물리적 연결일 필요는 없다. 오히려, 그들은 상기 같은 물리적 링크의 물리적 네트워크와 물리적 연결을 넘어선 별개의 가상 네트워크로서 구성된다. 상기 컨트롤러 네트워크(301)는 태스크를 요구하고 인식하며, 이벤트를 리포팅하고 이벤트를 로깅(logging)하기 위한 것이다. 상기 데이터 네트워크(302)는 여기에 직접 접근이 필요한 상기 구성요소들 사이에서 데이터베이스 정보를 통신하기 위한 것이다.
구현에 있어서, 상기 구성요소(350, 352, 354)의 각각은 하나의 PC호환 컴퓨터의 실행을 진행한다. 마찬가지로, 상기 구성요소(360, 362, 364)의 각각은 두 번째 PC 호환 컴퓨터의 실행을 프로세스하고 상기 구성요소(370, 372, 374)의 각각은 세 번째 PC 호환 컴퓨터의 실행을 진행한다. 전체적으로, 컨트롤러 프로세스(350)는 컨트롤 노드의 부분을 형성하는 하나의 PC 호환 컴퓨터에서 실행되는 웹과 큐 모듈(352, 354)과 결합되어 있다. 각 컨트롤 노드가 시작함에 따라, 상기 컨트롤러 프로세스(350, 360, 370)가 시작된다. 상기 컨트롤 프로세서(350)가 상기 웹 모듈(352, 362, 372)과 하나 이상의 각 큐 모듈(354, 364, 374)을 일으킨다. 상기 제어 프로세스, 예를 들면, 컨트롤러(360)는 내부 통신에 의하여 구축된 각 프로세스(362, 364)의 통신연결을 개방한다.
시작된 컨트롤 프로세스, 예를 들면, 상기 컨트롤 프로세스(350)는 또한 이미 실행되는 다른 컨트롤 프로세스를 위하여, 상기 컨트롤 프로세스가 실행되는 상기 PC 컴퓨터에 연결된 LAN(218)상에서 통신에 의하여 찾는다. 만약 다른 컨트롤 프로세스가 찾아지지 않는다면, 상기 주어진 제어 프로세스는 그 자체를 주컨트롤러로 지명된다. 예를 들면, 상기 컨트롤러(350)가 먼저 시작되었다고 가정하자. 이 컨트롤러(350)는 다른 컨트롤러를 찾을 수 없기 때문에 이 자체를 주컨트롤러로 지명할 것이다.
한편 상기 컨트롤러 프로세스, 예를 들면, 상기 컨트롤 프로세스(360)는 이미 실행중인 다른 컨트롤 프로세스, 예를 들면, 상기 제어 프로세스(350), 상기 새로운 컨트롤프로세스는 다른 컨트롤 프로세스(350)와 연결한다. 이러한 연결은 상기 PC 컴퓨터 상에서 상기 고유의 오퍼레이팅 시스템에 의하여 제공되는 서비스를 사용하여 TCP/IP 연결로서 개방될 수 있다. 연결은 또한 상기 주컨트롤 프로세스(350)에 각 스폰된(spawned) 모듈(362, 364)을 위하여 연결된다. 더욱이, 각 컨트롤 프로세스가 더해짐에 따라, 이는 다음으로 낮은 순서의 우선권 랭킹으로 할당된다. 이리하여, 만약 상기 컨트롤러(350)가 처음 시작된다면, 상기 컨트롤러(360)는 두 번째로 시작되고 상기 컨트롤러(370)는 세 번째로 시작된다면, 그들은 다음과 같은 순서로 랭크될 것이다. : 첫 번째-주컨트롤러(350), 두 번째-첫째 보조 컨트롤러(360), 세 번째-두 번째 보조 컨트롤러(370).
일단 하나의 커넥션이 상기 주컨트롤러(350)와 보조컨트롤러(360, 370)사이에 개방되면, 상기 주컨트롤러(350)는 주기적으로 상기 주컨트롤러(350)가 작동하고 있음을 나타내는 "하트비트(heartbeat)"메시지를 전송할 것이다. 만약 상기 다음 높은 순위의 컨트롤러, 예를 들면, 상기 첫 번째 보조 컨트롤러(360)가 미리 설정된 시간 간격 내에 상기 주컨트롤러(350)로부터 하트비트 메시지를 받는데 실패한다면, 상기 첫 번째 보조 컨트롤러는 상기 주컨트롤러(350)가 작동하지 않는다고짐작할 것이다. 그리고 나서 상기 첫 번째 보조 컨트롤러(360)는 상기 주컨트롤러의 역할을 짐작하고, 상기 주컨트롤러의 기능을 수행할 것이다(아래에서 기술함). 이리하여 상기 컨트롤러(350, 360, 370)의 랭크 순서는 작동실패가 발생할 경우에 컨트롤러를 대체하는 순서를 정의한다.
상기 오퍼레이터 콘솔 모듈(330)은 모니터 및 매뉴얼 입력디바이스(키보드와 마우스와 같은 포인터 디바이스)와 터미널 상에서 실행하는 프로세스이다. 예를 들면, 상기 오퍼레이터 콘솔 모듈(330)은 상기 주컨트롤러(350)로서 동일한 PC컴퓨터 상에서 실행될 수 있다. 대안적으로, 상기 오퍼레이터 콘솔 모듈(330)은 상기 데이터 네트워크(302) 및 주컨트롤러(350)로부터 지리적으로 멀리 떨어진 PC호환 컴퓨터 상에서 실행된다. 이러한 경우에, 상기 오퍼레이터 콘솔(330)은 WAN을 통하여 상기 데이터 네트워크(302)와 주컨트롤러(350)와 통신한다.
상기 리소스 매니저 모듈(340)은 또한 모니터 및 매뉴얼 입력디바이스로 터미널 상에서 실행되는 프로세스로 구축된다. 편리성을 위하여, 상기 리소스 매니저 모듈(340)과 오퍼레이터 콘솔(330)은 동일한 PC호환 컴퓨터에 설치될 수 있다.
상기 데이터베이스(310)는 하나 이상의 디스크와 적정한 서버하드웨어의 세트와 같이 고능력 저장 장치를 사용하여 구성된다. 다시 상기 데이터베이스 모듈(310)은 오퍼레이터 콘솔(330), 리소스 매니저(340)와/또는 주컨트롤러(350)와 같은 다른 구성요소와 마찬가지로 상기 동일한 PC 호환 컴퓨터에 결합될 수 있다.
상기 ABC서버(380)는 PC호환 컴퓨터 상에서 수행되는 프로세서로서 구축된다. 예를 들면, 상기 ABC서버(380)는 상기 주컨트롤러(350)와 동일한 또는 다른 컴퓨터 상에서 실행될 수 있다. 상기 ABC서버(380)는 클라이언트 노드(240)에 정보의 전달을 보증하기 위한 것이며, 아래에 상세하게 기술된다. 상기 ABC서버(380)는 자신의 큐 모듈(384)과 통신한다.
상기 데이터 네트워크(302)는 상기 데이터베이스(310)와 오퍼레이터 콘솔(330)과 주컨트롤러(350) 및 리소스 매니저(340)와 상호 연결되며, 연결을 통하여 이러한 디바이스를 연결하는 LAN 또는 다른 네트워크 상에서 통신하는 것에 의하여 구성될 수 있다. 예시하는 바와 같이, 상기 데이터베이스(310)의 모든 변화는 상기 데이터 네트워크(302)상에서 상기 다른 구성요소(330, 340, 350)에 통신된다. 이리하여, 만약 상기 리소스 매니저(340)가 변화를 상기 데이터베이스(310)(이러한 변화는 상기 주컨트롤러(350)에 입력하게 되면, 그것은 상기 변화를 상기 데이터베이스(310)에 기록한다.)에 입력하게 되면, 상기 변화는 상기 프로세스(330)에 통신된다. 이리하여, 상기 오퍼레이터 콘솔(330)은 상기 변화를 인지하게 될 것이며, 상기 데이터베이스(310)에서 상기 변화를 표시하거나 또는 이용할 수 있게 될 것이다.
리소스 매니저-채널을 정의함(RESOURCE MANAGER-DEFINING CHANNELS)
상기 리소스 매니저는 통신채널을 셋업하기 위하여 사용될 수 있다. 여기서, 채널은 베스트-에포트 데이터의 통신을 위한 가상의 패스이며, 베스트-에포트 데이터가 통신되는 방법을 열거한다. 각 채널은 베스트-에포트 데이터의 분리 가능한 수신을 위하여 제공된다. 채널을 구성하는 편리한 방법은 다른 IP어드레스와/또는전송 레이어(TCP 또는 UDP)포트에 의한 것이다. 이것은 상기 많은 PC호환 컴퓨터의 오퍼레이팅 시스템이 이러한 변수에 기초한 패킷데이터의 수신 및 분리를 지원하기 때문이다. 이러한 통신서비스는 약간 또는 거의 변경 없이 쉽게 사용될 수 있다.
예시하는 바와 같이, 상기 소스매니저(340)는 세 가지 형태의 채널 즉, 베스트-에포트 데이터의 전송을 위한 전송채널, 다른 노드로부터의 베스트-에포트 데이터를 검색 및 집합을 위한 패치(fetch)채널, 안내메시지를 전송하기 위한 서비스채널을 생성할 수 있다.
도 5 내지 8은 서비스채널의 생성과 관련하여 상기 리소스매니저(340)와 결합하는 그래픽 유저 인터페이스에 의하여 표시되는 여러 가지의 스크린 샷(screen shot)을 나타낸다. 먼저 400은 지금까지 정의된 서비스, 전송 및 패치채널을 나타내는 계통도를 언급한다. 다음으로 401, 402, 403은 윈도우의 여러 가지 표시되는 뷰(view)를 나타낸다. 특히 각 뷰는 여러 가지의 탭이 오퍼레이터에 의하여 선택될 때 표시되는 윈도우를 나타낸다. 상기 일반적인 탭이 선택될 때 뷰 401은 윈도우 내에 표시된다. 이 뷰 401내에서, 상기 오퍼레이터는 서비스채널의 이름 또는 식별자(401-1), 서비스채널의 설명(401-2), 서비스채널의 최대 대역폭(bandwidth)(401-3)을 입력할 수 있다. 상기 오퍼레이터는 또한 각 컨트롤러(350, 360, 또는 370)와 결합된 채널노드 박스(401-4)를 체크할 수 있다. 보여진 바와 같이, 단지 하나의 컨트롤러만이 "agimac"으로 명명되어 활성화되며, 따라서 단지 하나의 노드만이 특정될 수 있다. 이 후자의 정보는 컨트롤러(350, 360, 및/또는 370)가 이 서비스채널 상에서 정보를 전송하도록 지정될 수 있다는 것을 나타낸다.
뷰 402는 "전송" 탭이 선택되었을 때 윈도우에 표시된다. 이 뷰 402에서 상기 오퍼레이터는 "채널엔드 포인트(Channel end point)"(402-1), 컨텐츠 패킷타이저(content packetizer)(402-2), 네트워크 프로토콜(402-3), 타겟IP 어드레스(402-4), 타겟IP포트(402-5) 그리고 타겟 멀티캐스트 유지시간(402-6)을 특정할 수 있다. 상기 채널엔드 포인트(402-1)는 채널상으로 어떠한 노드가 정보를 수신할 것인가를 특정한다. 뷰 402에서, 상기 클라이언트 노드(420)는 특정된다. 상기 채널 패킷타이저는 프로그램 파일데이터를 패킷으로 포맷하기 위한 프로토콜을 특정한다. 상기 패킷은 TCP/IP, UDT/IP등과 같은 인터넷상에서 전송되는 다른 패킷의 페이로드(payload)를 형성한다. 예를 들면, 여기서 정의되는 하나의 프로토콜만이 특정될 수 있다. 상기 네트워크 프로토콜(402-2)은 베스트-에포트 데이터 즉, IP멀티캐스트를 순방향 오류 정정과 함께 전송하기 위한 네트워크 레이어 프로토콜이다. 이것은, 아래에서 기술하는 바와 같이, 포맷된 패킷을 포함하는 파일 데이터를 이송하기 위한 네트워크 레이어 인캡슐레이션을 특정한다. 타겟IP 어드레스(402-4)와 타겟 IP 포트는 이 채널상으로 통신하기 위하여 생성된 IP 패킷내에서 특정되는 IP어드레스와 IP포트이다. 타겟 멀티캐스트 유지시간(402-6)은 패킷을 폐기(dropping) 전에 패킷을 얼마나 오랫동안 유지할 것인가를 특정하기 위한 것이다. 예를 들면, "멀티캐스트 티티엘(Multicast TTL)" 명명법과 이의 변수 사용을 정의하는 잘 알려진 표준에 따르면, 이것은 홉카운트(hop count)로서 특정될 수 있다.
뷰 403은 이 서비스 채널이 안내할 프로그램과 채널을 선택하기 위한 것이다. 보는 바와 같이, add">"과 delete">"와 add all"All>"과 delete all"All<" 버튼은 안내할 특정 프로그램과 채널을 선택하기 위하여 제공된다. 상기 서비스 채널은 서비스 안내메시지를 이송하기 위한 특별한 채널이다. 이러한 메시지는 서비스안내프로토콜(Service Announcement Protocol: 이하 "SAP"라 함)과 세션 설명 프로토콜(Session Description Protocol: 이하 "SDP"라 함)에 따른다. RFC 2974(2000년 10월), "엠.핸드레이(M.Handley)", "씨.퍼킨스(C.Perkins)", "이.휄란(E.Whelan)"의 "세션공고 프로토콜(Session Announcement Protocol)"; 및 RFC 2327(1998년 4월), "엠.핸드레이", "브이.제이콥슨(V.Jacobson)"의 "세션기술 프로토콜(SDP: Session Description Protocol)"을 보라. 이러한 채널에서 이송된 프로그램뿐만 아니라 다른 채널도 안내될 수 있다. 여기서 프로그램은 수신클라이언트 노드에 의하여 사용될 수 있는 하나 또는 그이상의 파일의 그룹을 갖는 시그널이며, 유사한 프로그램정보를 포함한다. 상기 프로그램 정보는, 아래에서 기술하는 바와 같이, 파일의 그룹이 비슷한 방식으로 어떻게 사용될 수 있는가를 나타내는 메타데이터(meta-data)이다.
도 9 내지 도 11은 전송채널을 생성 또는 변경하는 것과 관련하여 상기 소스매니저와 연결된 그래픽 유저 인터페이스 상에 묘사된 일련의 뷰 501, 502, 503, 504를 나타낸다. 상기 레퍼런스 501은 "전송채널(Transmit Channel) #1"로 명명된 전송채널을 나타내는 계통도를 일반적으로 언급한다. 뷰 502는 "General"로 붙여진 탭이 상기 오퍼레이터에 의하여 선택될 때 윈도우에 표시되는 것을 나타낸다. 상기 "General" 탭이 선택될 때 상기 오퍼레이터는 전송채널의 이름(502-1), 설명(502-2), 최대 대역폭(502-3)을 입력할 수 있고, 이 전송채널로 데이터를 전송하는 것이허락된 각 컨트롤러(350, 360, 370)를 위한 박스를 체크할 수 있다.
뷰 503은 상기 오퍼레이터가 상기 "전송탭"을 선택할 때 윈도우가 표시하는 것을 나타낸다. 뷰 503에서 상기 오퍼레이터는 채널엔드 포인트(503-1), 컨텐츠 패킷타이저(503-2), 네트워크 프로토콜(503-3), 상기 채널이 신뢰할 수 있을지 여부(503-4), 상기 채널이 멀티플렉싱을 지원하는지 여부(503-5), 가입(subscription) 타입(503-6), 타겟IP 어드레스(503-7), 타겟IP 포트(503-8), 타켓 멀티개스팅 유지시간(503-9)을 입력할 수 있다. 체크박스(503-4)는 아래에서 기술되는 PGM 프로토콜에 비동기 백채널(asynchronous back channel : ABC) 확장을 채용할 통신을 유발하는 것을 체크될 수 있다. 체크박스(503-5)는 상기 채널이 상기 동일한 채널상으로 둘 또는 그이상의 프로그램의 데이터를 멀티플렉싱할 수 있는지를 체크할 수 있다. 체크되었을 때, 다수의 프로그램은 상기 특정프로그램의 패킷이 상기 동일한 채널상으로 멀티프렉싱된 타임디비젼인 동시통신을 위하여 특정될 수 있다. 필드 503-6에서 특정될 수 있는 가입타입은 "public", "private"와 "mandatory"를 포함한다. 강제가입(mandatory subscription)은 모든 클라이언트 노드(240)가 여기에 전송되는 정보를 받기 위하여 이 채널에 자동적으로 가입할 것을 요구한다. 퍼블릭가입은 모든 클라이언트 노드(240)가 이 채널의 유용성을 나타내는 안내를 수신할 수 있게 한다. 그러나, 상기 채널에 대한 가입은 자동이 아니다 - 클라이언트 노드(240)는 여기에 이송되는 베스트-에포트 데이터를 수신하기 위하여 그것들에 신중하게 가입을 하여야 한다. 프라이빗(private)가입은 모든 클라이언트 노드(240)에 안내된다. 그러나 단지 타겟이 된 확실한 클라이언트 노드(240)만이 그들의 오퍼레이터에게 이 채널의 유용성을 표시할 수 있다. 마찬가지로, 단지 타겟이 된 클라이언트 노드(240)만이 이채널에 가입할 수 있다. 다른 필드(field)(503-1, 503-2, 503-3, 503-7, 503-8, 503-9)는 그들의 기술이 반복되지 않지만 위에서 언급된 필드와 유사하다.
뷰 504는 상기 오퍼레이터가 상기 "진보된 탭(advanced tab)"을 선택할 때 윈도우가 표시하는 것을 나타낸다. 이 뷰에서, 상기 오퍼레이터가 에러 정정을 위한 패리티(parity) 정보(504-1)와 패리티 정보를 보내기 위한 지연(delay)(504-2)을 포함하는 전송된 그룹의 퍼센트를 특정할 수 있다. 더욱이 상기 오퍼레이터는 하나 또는 그이상의 클라이언트가 이 채널상으로 데이터의 초기(original) 통신을 받지 않았다는 메시지에 대응하여 재전송을 위하여 버퍼할 정보의 양을 특정할 수 있다. 이것은 상기 오퍼레이터가 슬라이더를 패리티의 양을 증가시키기 위하여 오른쪽으로 드래그하거나 패리티의 양을 감소시키기 위하여 왼쪽으로 드래그하여 이루어진다. 이것은 교대로 각각 "버퍼된 시간(time buffered) 값을 증가 또는 감소시킨다. 상기 버퍼된 시간 값은 전송될 수 있는 데이터의 얼마만큼이 버퍼되었는가를 나타내며, 버퍼된 데이터의 양은 이 시간에 대역폭을 곱한 것과 같게된다.
도 12 내지 14는 뷰 601-603을 나타내며, 뷰 601-603은 패치채널을 생성하거나 변조할 때 상기 리소스매니저(340)와 연결된 그래픽 유저 인터페이스를 나타낸다. 뷰 601은 일반적으로 "패치채널(Fetch Channel) #1"로 명명된 패치채널이 상기 오퍼레이터에 의하여 선택될 때 채널의 계통도를 나타낸다. 상기 채널이 선택될 때 또는 오퍼레이터가 새로운 패치채널을 생성하도록 선택할 때, 뷰 602 또는 603에서보는 바와 같이, 윈도우가 표시된다. 뷰 602는 "general"로 라벨링된 탭이 오퍼레이터에 의하여 선택될 때 윈도우에 나타나는 것을 표시한다. 상기 뷰에서, 상기 오퍼레이터는 이름(602-1), 설명(description)(602-2), 최대 대역폭(602-3), 상기 채널을 지원하는 모듈(602-4)을 선택하거나 변경할 수 있다. 상기 필드(603-4)는 모듈의 특정한 타입 즉 상기 채널을 사용하여 통신하는 웹모듈(352, 362, 372)을 선택하기 위한 것이다. 예를 들면, 상기 웹모듈(352, 362, 372)은 이러한 타입의 채널을 지원한다. 오퍼레이터는 또한 이 패치채널 상으로 통신할 수 있는 상기 컨트롤러(350, 360, 370)의 박스(602-5)를 체크할 수 있다.
뷰 603은 상기 오퍼레이터가 상기 "방화벽 옵션(Fire Wall Options)" 탭을 선택할 때 윈도우에 나타나는 것을 표시한다. 오퍼레이터는 다양한 박스(603-1, 603-4)를 체크할 수 있으며, 필드(603-2, 603-3)(체크박스 603-1이 체크되었을 때)와 필드(603-5, 603-6)(체크박스 603-4가 체크되었을 때), 방화벽의 사용과 관계되는 필드(603-7)를 위한 정보를 입력할 수 있다. 이러한 옵션은 다른 잘 알려진 프로토콜에 관련되며 여기서는 더 이상 기술하지 않는다.
상기 리소스매니저(340)가 채널을 생성할 때, 리소스매니저(340)는 상기 컨트롤 네트워크(301)를 통하여 주컨트롤러(305)에 통지한다. 상기 주컨트롤러(305)는 상기 채널에 유일한 32-비트 채널 식별자를 부여하며, 데이터 네트워크를 통하여 상기 데이터베이스(310)에 상기 생성된 채널과 관련된 정보를 저장한다. 새로운 채널의 유용성에 대한 메시지가 상기 데이터베이스(310)로부터 상기 오퍼레이터 콘솔(330)과 리소스매니저(340) 및 상기 주컨트롤러(350)에 통신된다.
오퍼레이터 콘솔-프로그램을 정의하고 잡(job)을 스케줄링함.(OPERATOR CONSOLE-DEFINING PROGRAMS AND SCHEDULING JOBS)
도 15 내지 16은 상기 오퍼레이터 콘솔(330)의 GUI를 사용하여 표시될 수 있는 윈도우의 좌측과 우측을 각각 나타낸다. 윈도우의 좌측은 메뉴바(701), 정의된 채널과 프로그램의 계통도를 표시하는 좌측상단영역(702), 표시가 변하는 좌측하단영역을 갖는다. 상기 오퍼레이터 콘솔(330)의 오퍼레이터는 영역(702)에 있는 계통도에서 채널 또는 프로그램을 선택할 수 있으며, 이것에 의하여 선택된 아이템과 연결된 특성이 상기 좌측하단의 영역(703)에 나타나도록 한다. 도 15에서 나타낸 예에서, 상기 채널 "패치채널#1"이 영역(702)에서 선택된다. 이는 영역(703)에 이 패치채널의 특성이 표시되도록 한다.
새로운 프로그램이 영역(702)에서 표시되는 계통도에 있는 엔트리(entry) "프로그램" 상에서 선택(오른쪽 클릭)되어 생성될 수 있다. 팝업메뉴가 표시되어 유저가 "새로운 표준프로그램 파일" 또는 "새로운 웹사이트 프로그램"을 선택하도록 한다. 예를 들면, 두 가지 타입의 프로그램, 즉, 로컬로 유지되는 파일을 이송하는 프로그램인 표준파일 프로그램, 먼저 검색되고 파일데이터로서 전송되어야 하는 웹사이트 정보를 위한 프로그램이 지원된다. 이것은 프로그램 인스펙터 페인(715)이, 도 17에 표시한 바와 같이, 영역(703)에서 표시되도록 한다. 상기 페인(715)이 표시될 때, 오퍼레이터는 다음과 같은 프로그램정보 변수 : 프로그램의 이름(715-1), 프로그램의 설명(715-2), 프로그램이 안내되는 방법(715-8),즉 퍼블릭, 프리이빗,필수(mandatory), 수신노드에서 프로그램 파일이 저장되어야 하는 타겟 폴더(즉 이 프로그램을 수신하고 가입하기 위하여 목적된 클라이언트 노드(240)), 트랜잭션 로그가 상기 프로그램을 위하여 유지되어야 하는지 여부를 표시하는 체크박스(715-10), 만료일(715-12), 시작 명령어(715-13), 주이미지와 보조이미지(715-14, 715-15)를 입력하거나 변경할 수 있다. 상기 프로그램 인스펙터 페인(715)은 또한 상태(715-3), 활성화(active) 잡(이 프로그램에서 현재 실행중인 잡의 수), 프로그램 크기(이 프로그램을 위하여 전송된 모든 파일의 바이트 총수)(715-5), 타입정보(표준 파일 또는 웹사이트)(715-7)를 표시한다. 파일이 프로그램에 추가됨에 따라 또는 상기 프로그램이 잡에서 스케줄링됨에 따라 이러한 변수는 상기 데이터 네트워크(302)에 의하여 자동으로 업데이트된다.
상기 안내필드(715-8)는 오퍼레이터가 프로그램을 위한 가입과 안내를 선택할 수 있도록 하여준다. 필수(mandatory) 프로그램은 모든 클라이언트 노드(240)에 안내되며 모든 클라이언트 노드(240)는 프로그램의 파일을 수신하도록 요구받는다. 퍼블릭 프로그램은 모든 클라이언트 노드에 안내되며 모든 클라이언트 노드(240)는 이것에 가입할 수 있다. 그러나 단지 이 프로그램에 가입한 이러한 클라이언트 노드(240)만이 상기 프로그램의 파일을 수신하고 이용할 것이다. 프라이빗 프로그램이 안내될 때 단지 특정되고 타겟된 클라이언트 노드(240)만이 이것에 가입할 수 있다. 다시 단지 가입된 클라이언트 노드(240)만이 이러한 프로그램의 파일을 수신하고 이용할 수 있을 것이다.
상기 타겟 폴더필드(715-9)는 상기 가입된 클라이언트 노드(240)에서 상기프로그램 파일이 저장되는 디렉토리 또는 폴더를 특정한다. 상기 만료필드(715-10)는 상기 프로그램의 파일을 하나의 버전을 수신한 후 상기 파일이 만료되는(그리고 그 후에 지워지는) 시간을 특정한다. 프로그램이 전송 중에 변화된다면, 상기 클라이언트 노드는 상기 조정된 프로그램의 수신 후에 만료시간을 다시 설정할 것이며, 그것에 의하여 상기 만료 타이머는 다시 시작하게 된다.
상기 론치 커맨드(launch command)필드(715-13)는 상기 프로그램의 파일이 실행되도록 한다. 예를 들면, 웹사이트 프로그램의 경우에, 상기 클라이언트 노드에 웹페이지가 로딩되어 표시되도록 하는 웹페이지의 유알엘(uniform resource locator: 이하 'URL'이라 함)을 입력하는 것이 바람직할 것이다. 주 및 보조 이미지 필드(715-12, 715-13)는 상기 클라이언트 노드에 표시되는 아이콘의 파일이름을 특정하도록 하여준다.
웹사이트 프로그램의 경우에 두 개의 부가적인 탭된 페인이 제공된다. 이러한 것은 웹사이트의 URL을 특정하기 위한 필드를 표시하도록 선택되며, 상기 웹사이트의 컨텐츠는 프로그램을 위하여 패치(fetch)된다. 다른 특징은 오퍼레이터에 의하여 다수의 URL, 검색되는 링크된 웹페이지의 깊이, 특별히 포함되거나 제외되는 링크된 웹페이지, 상기 웹페이지를 검색하기 위한 재시도의 수, 검색된 웹사이트 자료를 위하여 대기하는 타임아웃을 포함하여 특정될 수 있다.
상기 오퍼레이터 콘솔(330)이 새로운 프로그램을 정의하거나 기존의 프로그램을 변경할 때, 이것은 프로그램의 정의 또는 기존 프로그램의 변경을 상기 컨트롤 네트워크(301)를 통하여 상기 주컨트롤러(350)로 통신한다. 상기 주컨트롤러는각 새롭게 정의된 프로그램에 대하여 유일한 32비트의 프로그램식별자를 생성하고, 상기 데이터 네트워크(302)를 통하여 데이터베이스(310)에 새로운 프로그램 또는 기존프로그램의 변경을 저장한다. 상기 데이터베이스(310)는 상기 오퍼레이터 콘솔(330)과 리소스매니저(340) 및 주컨트롤러(350)에 상기 프로그램 또는 프로그램변경의 유용성을 전송한다.
그리고 나서, 상기 프로그램은 영역(702)의 계통도에서 표시된다. 오퍼레이터는 이의 변수를 변경하거나 나타내기 위하여 어떠한 프로그램을 선택할 수 있다. 상기 프로그램을 선택하는 것은 상기 프로그램 인스펙터 페인(715)이 다시 표시되도록 하며, 이것에 의하여 오퍼레이터는 다양한 변경 가능한 필드(715-1, 715-2, 715-8부터 715-13)를 선택하고 변경할 수 있게된다.
또한 일단 하나의 프로그램이 정의되면, 오퍼레이터는 프로그램을 선택하고 파일을 프로그램에 추가할 수 있다. 이렇게 하기 위해서, 오퍼레이터는 정의된 프로그램을 선택할 수 있고, 상기 메뉴(701)의 "에디트(edit)" 헤딩 아래의 드랍다운 메뉴로부터 "컨텐츠 추가(Add contents)"를 선택할 수 있다. 이것은 부라우즈 윈도우(browse window)가 상기 윈도우의 좌측 상에 모든 폴더의 계통적 목록과 우측상의 프로그램을 위하여 현재 전송되는 파일의 목록을 표시할 수 있도록 한다. 오퍼레이터는 좌측 상에서 원하는 파일을 선택하고, 그것을 오른쪽으로 드래그할 수 있으며, 그것에 의하여 부가적인 파일이 프로그램과 함께 전송을 위하여 선택된다.
도 16은 타임라인 영역(704), 우측상단의 표시영역(705), 우측하단의 표시영역(706)을 나타낸다. 상기 타임라인 영역의 타임라인은 시간에서 좌측의 초기포인트로부터 우측의 후기포인트까지 시간의 진행을 표시한다. 오퍼레이터는 시간에 있어서 타임라인의 표시된 타임윈도우를 초기 또는 후기로 이동하기 위하여 좌방향 또는 우방향 화살표를 클릭할 수 있다.
오퍼레이터에 의하여 선택된 타임윈도우가 현재의 시간을 포함할 때, 쐐기 모양의 타임 지시자(706-3)는 현재의 타임을 표시하기 위하여 표시되거나 제거될 수 있다.
상기 타임라인은 시간에서 균등한 간격을 나타내는 인터벌 마킹을 포함한다. 타임라인에 의하여 표시되는 타임윈도우의 전체 시간 주기는 표시된 시간간격의 곱의 합이며 그것에 의하여 분할된다. 오퍼레이터는 상기 타임라인을 오른쪽 또는 왼쪽으로 드래그하여 시간간격거리를 변화시킬 수 있다. 오퍼레이터가 그렇게 하여 인터벌 마킹(interval marking)(706-4)은 센터에 가깝게 이동하며, 추가적인 인터벌 마킹(706-4)이 윈도우의 왼쪽 또는 오른쪽 가장자리로부터 나타나거나, 인터벌 마킹(706-4)이 타임윈도우의 왼쪽 또는 오른쪽의 가장자리로부터 사라진다. 상기 인터벌 마킹(706-4)이 너무 가깝거나 너무 멀어 오퍼레이터에게 의미를 제공하지 못하게 될 때, 그들의 스케일이 변화되고 작거나 더 많은 상기 인터벌 마킹(706-4)이 스케일에서의 변화를 반영하여 표시된다. 예를 들면, 도 18은 일분에 해당하는 각 인터벌 마킹(706-4)을 가지고 수분에 대한 인터벌 마킹(706-4)을 나타낸다. 상기 타임윈도우는 거의 5분을 나타낸다. 오퍼레이터가 타임라인을 좌측으로 드래그할 때, 상기 인터벌 마킹(706-4)은 길이에서 확장되며, 타임윈도우에는 더 작은 수가 표시된다. 만약 단지 세 개의 긴 인터벌이 표시된다면, 표시되는 총 시간은 3분까지 줄어들 수 있다. 오퍼레이터가 타임라인을 우측으로 드래그하면, 상기 인터벌 마킹(706-4)은 서로 가깝게 이동하며 더 많은 인터벌 마킹이 나타난다. 열 개의 인터벌 마킹(706-4)이 표시되면, 상기 타임윈도우는 10분 주기를 나타낸다. 오퍼레이터가 타임라인을 계속하여 우측으로 드래그하면, 방해가 되어 더 이상의 마킹을 표시하지 못하게 될 것이다. 그 대신에, 어떤 순간에, 인터벌의 스케일이 변화되며, 예를 들면 일분에서 5분으로 변화된다. 단지 각 5분 인터벌을 나타내는 이러한 인터벌 마킹(706-4)이 표시됨에 따라, 이것은 표시되는 인터벌 마킹(706-4)의 총 수를 줄이게 된다. 예를 들면, 스케일이 변화할 때에도, 부드럽게 점진하는 타임윈도우의 타임주기는 증가하는 타임주기를 나타낸다. 오퍼레이터가 인터벌 마킹(706-4)의 거리를 붕괴시키는 것을 계속함에 따라, 상기 스케일은 연속적으로 즉, 15분, 시간, 일 등의 인터벌로 변화하게 된다. 마찬가지로, 오퍼레이터는 인터벌 마킹(706-4)사이의 거리를 확장하기 위하여 타임라인을 반대방향으로 드래그할 수 있으며, 이는 너무 적은 인터벌 마킹(706-4)이 상기 타임윈도우에서 보여질 때 인터벌의 스케일을 변화시키는 것을 포함한다.
영역(705)은 탭된 페인(707, 708, 709)를 표시하며, 페인(707)은 페인(708)에 의하여 부분적으로 차단된다. 각 탭된 페인(707-709)은 정의된 채널에 대응한다. 상기 팹된 페인(707)은 "프라이머리 서비스(primary service)"로 명명된 서비스 채널에 대응한다. 상기 팹된 페인(708)은 "전송채널#1"인 전송채널에 대응한다. 상기 팹된 페인(709)은 "패치채널#1"인 패치채널에 대응한다. 보는 바와 같이, 영역(705)은 스크롤바(710)를 사용하여 스크롤된다. 주어진 형태의 채널은 일반적으로 스택되어 보여진다. 즉, 전송채널의 모든 페인은 각 전송채널 페인(708)의 탭만이 보이도록 하기 위하여 서로의 탑(top)에 오버레이된다. 단지 하나의 전송채널의 페인(708)이 보여진다. 마찬가지로, 패치채널의 페인(709)은 단지 하나의 페인인 한 순간에 전체적으로 보릴 수 있도록 개별적인 스택에 스택된다. 다른 페인(708 또는 709)의 하나가 보이도록 선택하기 위하여, 오퍼레이터는 페인(708, 709)의 탭을 선택한다. 이것은 선택된 페인을 앞으로 또는 전방으로 가져온다. 선택된 탭의 상기 전체적인 페인(708 또는 709)이 표시되고, 다른 페인의 나머지 부분은 차단된다.
각 페인(708 또는 709)은, 선택되어 영역(705)에서 보일 때, 일련의 타임 인터벌 마킹(711)과 스케줄된 잡에 상응하는 수평바(712)를 표시한다. 상기 바(712)는, 상기 타임인터벌 마킹(711)에 의하여 표시되는 타임인터벌에 대하여, 스케줄된 잡이 수행되는 예상시간을 표시한다. 잡은 특정 채널상으로 프로그램의 스케줄된 전송이며, 아래에서 보다 자세히 기술된다. 상기 타임바(712)의 폭은 상기 잡을 수행하는데 요구되는 시간에 해당한다. 잡의 좌측 가장자리(보일 때)는 잡의 대략적인 시작시간을 나타내며, 타임바(712)의 우측가장자리(보일 때)는 잡의 대략적인 종료시간을 나타낸다.
페인(707, 708, 또는 709)이 이의 탭을 선택함에 의하여 선택될 때, 영역(706)은 상기 선택된 페인(707, 708, 또는 709)에 대응하는 상기 채널을 위한 스케줄된 모든 잡의 목록을 표시한다. 보는 바와 같이, 영역(706)은 잡의 다양한 특성: 잡 이름, 상태(status), 다음 잡시간, 잡 정지(job stop), 대역폭, 우선권,이름반복(repeat name) 등을 포함한다. 또한 채널이 영역(702)에서 보여지는 계통도로부터 선택될 때, 상기 채널에 대응하는 페인이 영역(705)에서 전방으로 이동되며, 상기 채널을 위한 잡 목록이 영역(706)에 표시된다.
잡을 스케줄하는 하나의 방법은 영역(702)에 표시된 계통도에서 보여지는 프로그램을 특정 탭된 페인, 예를 들면 영역(705)에서 보여지는 바와 같이, 페인(708)으로 드래그하는 것이다. 상기 탭된 페인이 전방에 아직 없다면, 탭된 페인이 선택된 것처럼 전방으로 이동된다. 오퍼레이터가 이것을 할 때, 도 18에서 보는 바와 같이, 잡 인스펙터 페인(714)은 상기 영역(703)에 표시된다. 이것이 표시될 때, 오퍼레이터는 잡의 다음 특성 : 잡의 이름(714-1), 잡의 다음 시간 또는 다음 실행 날짜(714-2), 잡의 시간(714-3), 상기 잡을 위한 채널 대역폭 퍼센트(714-4), 잡의 우선권(즉 highest, higher, high, normal, low, lower, lowest)(714-5), 잡이 반복될지 여부(즉 이것이 일회성 잡 또는 일정 간격을 두고 반복되는 잡인지)(714-6), 로그(log)가 잡 수행동안 보존되어야 하는지를 나타내는 체크박스(714-10)를 특정하거나 변경할 수 있다. 만약 반복수행이 선택되면, 오퍼레이터는 잡을 위한 반복 간격(714-7), 스케줄간격(714-8), 오퍼레이터가 잡의 반복간격을 쉽게 이해할 수 있도록 하는 각 반복에 대한 이름(714-9)을 특정할 수 있다. 인지하는 바와 같이, 반복 잡은 변수(714-6, 714-7, 8714-8)에 의하여 자동적으로 특정되어 스케줄된다. 체크박스(714-11)는 상기 잡이 전송을 위한 확인을 요청하는지 여부를 표시하기 위하여 선택적으로 제공될 수 있다. 아래에 자세하게 기술하는 바와 같이, 전송 확인에 대한 요청은 서비스 안내에서 상기 잡에 대응하는각 프로그램을 위하여 플래그(flag)로서 통신되며, 플래그는 상기 잡의 프로그램을 수신하는 각 클라이언트노드가 상기 소스 사이트(201)(가장 명백하게는 상기 ABC 서버(380))에 긍정적인 응답메시지를 재전송할 때 요구한다.
일단 하나의 잡이 스케줄되면, 이것은 상기 채널 페인(707, 708, 709)에 표시될 수 있거나, 채널이 선택될 때 상기 영역(706)에 나열될 수 있다. 상기 영역(706)에 나열될 때, 주어진 잡은 상기 특정된 잡의 변수셋트와 함께 상기 잡 인스펙터 페인(704)에 재 표시되도록 선택될 수 있다. 상기 잡이 현재 수행되고 있지 않는 한 오퍼레이터는 잡의 변수를 변경할 수 있다.
상기 오퍼레이터 콘솔(330)이 프로그램, 잡 등에 상기의 어떤 변화를 만듦에 따라, 이러한 변화는 상기 컨트롤 네트워크(301)를 통하여 상기 주컨트롤러(350)에 통신한다. 상기 주컨트롤러(350)는 상기 변화를 상기 데이터 네트워크(302)를 통하여 상기 데이터베이스(310)에 저장하고, 이러한 변화는 상기 데이터 네트워크(302)를 통하여 상기 데이터베이스에 연결된 모든 프로세스, 즉, 오퍼레이터 콘솔(330), 리소스매니저(340)에게 유용하게 된다. 다른 것들 사이에서 이것은 채널과 프로그램정보가 서비스 채널상으로 통신을 위하여 서비스 안내에 어셈블되는데 유용하도록 만든다. 이리하여, 서비스 안내가 그렇게 하는데 책임이 있는 어느 컨트롤러(350, 360, 370)에 의하여 서비스 채널을 통하여 전송될 때, 현재 채널과 프로그램 정보는 이용 가능한 채널과 프로그램에 대한 안내와 함께 전송될 수 있다.
상기 주컨트롤러(350)가 상기 데이터베이스(310)에 변화를 통지할 때, 상기주컨트롤러(350)는 상기 변화를 조사한다. 상기 변화가 새로운 잡의 스케줄이면, 상기 주컨트롤러는 상기 잡이 전송되어야 하는 컨트롤 노드를 결정한다. 이것은 상기 잡의 채널의 채널변수에서 어떠한 컨트롤 노드가 특정될 것인가를 결정하여 이루어진다. 상기 주컨트롤러(350)는 상기 잡을 가장 높은 순위(the highest rank order) 컨트롤러(350, 360, 또는 370)로 전송한다. 만약 보조 컨트롤러(360, 370)가 상기 잡을 수행해야 하면, 상기 주컨트롤러(350)는 하나 이상의 메시지를 상기 보조 컨트롤러(360 또는 370)에 전송하여 보조 컨트롤러(360 또는 370)가 상기 잡을 수행하도록 한다.
컨트롤러(350, 360, 370)는 다음과 같이 잡을 수행한다. 상기에서 기술된 바와 같이, 잡이 수행되어야 하는 스케줄된 시간은 상기 잡 시작타임, 잡 정지타임, 재시행, 간격에 기초하며, 상기 잡의 스케줄 간격정보(714-2, 714-3, 714-6, 714-7 및 714-8)는 상기 오퍼레이터 콘솔(330)에 설정되며 상기 원하는 시작시간과 정지시간에 잡이 수행되도록 한다. 상기 컨트롤러(360과 370)는 상기 주컨트롤러(350)에 의한 발송(상기에서 언급된 바와 같이), 상기 주컨트롤러(350)에 의하여 발송된 메시지(상기에서 언급된 바와 같이)에 응하여 잡을 수행한다.
상기에서 언급된 바와 같이, 상기 오퍼레이터 콘솔(330)을 사용하여 특정된 상기 스케줄에 따른 상기 잡의 적정한 수행시간에, 상기 컨트롤러(350, 360, 370)는 이것의 각각의 큐(queue) 모듈(354, 364, 374) 또는 웹 모듈(352, 362, 372)이 자발적으로 상기 잡의 각각의 채널상에서 필요한 프로그램 파일을 통신하도록 한다.
패치채널 상으로 패치되어야 하는 웹사이트 파일의 경우에는, 상기 컨트롤러(350, 360, 370)는 웹 모듈(352, 362, 372)이 상기 잡의 프로그램의 각 웹사이트를 검색하도록 지시한다. 전송되어야 하는 표준 파일의 경우에는, 상기 컨트롤러(350, 360, 370)는 이것의 큐(queue) 모듈(354, 364, 374)에 상기 프로그램의 파일을 전송하도록 지시한다.
상기 웹 모듈(352, 362, 372)은 잡 프로그램의 프로그램 변수에 의하여 특정된 URL에서 상기 웹사이트에 접근하여 웹사이트를 검색한다. 이것은 상기 LAN(218)과 WAN을 통하여 각 웹사이트에 정보를 통신하는 것과 관련될 수 있다. 상기 웹 모듈(352, 362, 372)은 검색된 웹사이트 정보를 파일에 저장한다(이것은 다른 잡에 의하여 접근되고 전송될 것이다).
상기 큐 모듈(354, 364, 374)은 상기 잡과 관련된 프로그램의 파일을 검색한다. 상기 큐 모듈(354, 364, 374)은 잡의 프로그램과 상기 잡의 프로그램의 파일에 대한 정보를 포함하는 포맷의 패킷을 조합하며, 여기서 파일은 로컬로 검색 가능한 파일정보를 포함할 수 있다. 상기 큐 모듈(354, 364, 374)은 상기 잡의 채널 변수에 의하여 특정된 포맷과 방법으로 패킷을 조합한다. 예를 들면, 상기 패킷은 상기 컨텐즈 패킷타이저(503-2)에 의하여 특정된 포맷에 따라 패킷화된다. 상기 패킷은 상기 타겟 IP어드레스(503-7)와 상기 타겟 IP포트(503-8) 변수에 의하여 특정된 IP어드레스와 IP 포트를 제공한다. 상기 패킷은 상기 네트워크 레이어 프로토콜(추가적인 패킷 인캡슐레이션)(402-3)에 의하여 특정되는 상기 네트워크 레이어 프로토콜에 의하여 전송된다. 상기 패킷은 상기 순방향 패스(202)를 통하여 전송되기위하여 상기 LAN(218)을 통하여 상기 인캡슐레이터/데이터 인젝터노드(214)로 전송된다.
하나 이상의 잡이 동일한 채널에 대하여 동시에 수행되도록 특정된 경우에, 일부 패킷은 각 잡의 각 프로그램을 위하여 교대로 전송되며, 각 잡의 변수(714-4)에 의하여 각각에 대하여 설정된 대역폭의 퍼센트를 성취하기 위하여 전송된다.
클라이언트 노드 구조
도 19는 클라이언트 노드(240)의 예시적인 작용 블록 다이아그램(800)을 나타낸다. 상기에서 기술한 바와 같이, 클라이언트 노드(240)는 PC호환 (또는 다른 형태의)컴퓨터 또는 셋톱 박스를 사용하여 구성될 수 있으며, 컴퓨터 또는 셋톱박스는 프로세서, 메모리(디스크와 같은 영속메모리, RAM IC's와 같은 휘발성 메모리), 외부 통신 장치(전화모뎀, 케이블 모뎀, 네트워크 인터페이스 카드 등), 모니터, 매뉴얼 입력 장치(마우스, 키보드, 키패드 등)와 이러한 (모두는 아니지만 대부분)장치를 상호 연결하는 버스를 갖는다. 다른 경우에, 상기 클라이언트 노드(240)는 통신 서비스(790)를 포함하는 오퍼레이팅 시스템을 수행하는 것으로 추정된다. 상기에서 언급한 바와 같이, 상기 통신서비스(790)는 채널을 오픈하고 각 채널로부터 패킷으로 개별적으로 정보를 수신하거나 각 채널상으로 정보를 송신할 수 있다. 수신된 정보는 메모리에 저장되고, 각 채널을 통하여 접근할 수 있다. 상기 통신서비스(790)는 현재 상기 클라이언트 노드(240)에 있는 데이터와 패킷시그널이 통신될 수 있는 어떤 외부 통신 장치에 의하여 전송되거나 수신된 패킷 시그널 사이에 소프트웨어 인터페이스를 제공한다. 더욱이, 상기 오퍼레이팅 시스템 통신 서비스(790)는 전송과 수신의 각각이 일어나는 어떠한 장치를 특정하는 것을 지원한다. (예를 들면, 장치의 미디어 액세스 제어 주소(Media Access Control Address)를 특정하는 것에 의하여) 이와 같이, 아래에 기술하는 프로세스는 상기 통신이 이루어지는 기초적인 상세한 사항을 알 필요는 없다. 그들은 상기 오퍼레이팅 시스템 통신 서비스(790)를 위하여 단지 적정한 응용프로그램 인터페이스(application program interface: 이하 'API'라 함)를 사용할 필요가 있다. 이러한 서비스는 일반적으로 클라이언트 노드의 제작자에 의하여 공급되고, 상기 API는 일반적으로 잘 알려져 있으므로, 더 이상 기술하지 않는다.
예시하는 바와 같이, 상기 클라이언트 노드(240)는 브로커 프로세스(broker process)(810), 세션 매니저(session manager)(820), 플러그인 매니저(plug-in manager)(830), 캐시 매니저(cache manager)(840), 가이드 서버(guide server)(850), 채널 객체(channel object)(805), 프로그램 파일(815), 서비스 채널 객체(825), 플러그인(835)을 포함한다.
상기 서비스채널 객체(825)는 상기 서비스 채널로부터 상기 통신 서비스(790)를 통하여 안내메시지를 수신한다. 상기 안내메시지는 SAP 또는 SDP에 따라 포맷된다. 상기 안내메시지는 이러한 채널상에서 채널과 프로그램의 유용성을 안내한다. 상기에서 언급한 바와 같이, 채널 또는 프로그램이 정의될 때, "필수(mandatory)" 또는 "퍼블릭(public)" 또는 "프라이빗(private)"가 각각에 대하여 특정된다. 존재하는 채널에 대한 이러한 정보는 상기 서비스 채널상으로 서비스 안내메시지를 전소할 책임이 있는 상기 컨트롤러(350, 360, 370)에 의하여 검색되고, SAP 또는 SDP에 따라 포맷된다. 그리고 나서 이러한 메시지는 상기 클라이언트 노드(240)에 전송된다. 상기 서비스채널 객체(825)는 이러한 안내메시지를 수신하고, 적당한 안내를 복구한다.
이러한 서비스 안내메시지는 상기 세션 매니저(820)에도 유용하다. 상기 세션 매니저(820)는 상기 서비스 안내메시지를 검색하고, 그들을 클라이언트 노드(240)에 SDP 형태로 저장한다.
상기 클라이언트 노드(240)의 오퍼레이터가 상기 이용 가능한 채널과 프로그램을 보고자 할 때, 상기 가이드 서버(850)는 세션 매니저(820)에게 상기 서비스 안내를 제공할 것을 요구한다. 상기 적정한 서비스 안내는 상기 가이드 서버(850)에 제공된다. 예를 들면, 상기 가이드 서버(850)는 상기 서비스 안내를 모니터에 표시하기 위하여 변경 가능한 확장생성언어(Extensible Markup Language: 이하 'XML'이라 함) 규정에 따라 포맷한다. 다른 뷰들은 모니터 상에 상기 안내된 채널과 프로그램을 각각 표시하기 위하여 제공된다. 필수 채널과 프로그램은 가입된 것처럼 표시되며, 상기 오퍼레이터는 이러한 필수채널과 프로그램에 가입되지 않을 수 없다. 상기 각 클라이언트 노드(240)로 타겟된 퍼블릭 채널과 프로그램, 프라이빗 채널과 프로그램은 표시될 수 있다. 상기 클라이언트 노드(240)의 오퍼레이터는 적정한 체크박스를 체크하거나 체크하지 않음으로 이러한 퍼블릭과 프라이빗 채널과 프로그램에 가입하거나 가입하지 않는 것이 허용된다. 예를 들면, 상기 오퍼레이터는 필수 프로그램을 포함하여 이러한 채널을 위한 프로그램을 수신하기 위하여채널에 가입하여야 한다.
상기 세션 매니저(820)는 상기 브로커(810)에게 채널과 프로그램에 대한 가입을 통지한다. 상기 세션 매니저(820)는 각 가입된 채널과 프로그램에 대응하는 상기 채널 안내로부터 채널과 프로그램을 검색하고 이러한 채널과 프로그램 정보를 상기 브로커(810)에 제공할 수 있다. 응답으로, 상기 브로커(810)는 각 가입된 채널에 대하여 채널 객체를 생성하고, 각 가입되지 않은 채널에 대하여 채널 객체를 파괴한다. 채널 객체는 상기 채널의 수신된 서비스 안내에서 안내된 채널정보를 이용하여 생성될 수 있다. 각 채널 객체(805)는 상기 통신서비스(790)를 이용하는 주어진 채널을 위하여 정보를 수신하고 전송하기 위한 것이다. 상기 브로커(810)는 상기 채널 객체(805)로부터 여기에 전송된 각 프로그램을 역다중화(demultiplex)한다. 종종, 단지 하나의 프로그램이 한번에 하나의 채널상으로 전송된다. 그러나, 상기에서 기술한 바와 같이, 다수의 프로그램을 하나의 채널상으로 동시에 다중화(multiplex)하는 것이 허용된다. 상기 브로커(810)는 또한 각 반환 채널상으로 상기 클라이언트 노드로부터 전송되는 정보를 각 채널 객체(805)에 제공한다. 이러한 반환 채널은, 아래에서 더 상세히 기술되는 바와 같이, 프로그램 정보의 응답 또는 부정 응답 수신을 위하여 사용될 수 있다.
상기 브로커(810)는 각 프로그램에 대하여 파일 데이터를 회복하고, 파일 데이터를 상기 프로그램의 프로그램정보에 의하여 지시하는 파일 폴더 또는 디렉토리에 저장한다. 상기 브로커(810)는 또한 상기 주이미지 및 보조이미지 프로그램 정보에 의하여 지시하는 대로 적정한 아이콘을 상기 프로그램과 결합한다. 오퍼레이터가 상기 서버가이드(850)를 사용할 때 각 프로그램의 자동 시작을 허용한 것으로 가정하여, 상기 브로커(810)는 또한 자동적으로 각 프로그램을 위하여 프로그램 정보에 의하여 특정되는 시작 커맨드를 수행한다.
상기 플러그인 매니저(830)는 주어진 프러그인에 대응하여 파일이 수신될 때 상기 브로커(810)에 의하여 통지 받는다. 상기 플러그인은 정의된 API에 따라 다른 컴파일된 프로세스와 작용하도록 고안된 프로세스이다. 응답으로, 상기 적정한 플러그인은 프로세싱을 위한 입력으로서 사용중인 파일을 수행할 것이다. 예를 들면, 플러그인은 인터넷 익스플로러, 아파치 그리고 상기 클라이언트 노드(240)의 소프트웨어의 자동 업그레이드를 위한 업그레이드 플러그인을 위하여 지원된다.(가장 두드러지게는 프로세스와 객체를 위한 소프트웨어(800)).
상기 캐시 매니저(840)는 몇 개의 하우스키핑 태스크(housekeeping task)를 수행한다. 기초를 유발(trigger)하는 시간동안, 상기 캐시 매니저(840)는 수신된 파일정보에 대한 체크섬(checksum)을 수행하고, 유실되는 파일과 그 부분을 찾고, 어떠한 프로그램이 만료되었는지 결정한다(즉, 각 프로그램 파일과 결합된 타임스탬프 정보와 각 프로그램의 프로그램정보를 참고로 하여). 상기에서 언급된 바와 같이, 파일들이 수신될 때, 그들은 타임이 스탬프(stamp)된다. 만약 프로그램이 동일한 형태로 다시 전송된다면, 타임스탬프는 변하지 않는다. 만약 상기 프로그램이 다시 전송되고 적어도 부분적으로 다르다면, 상기 파일의 타임스탬프는 재설정(reset)된다. 만약 파일의 현재 타임과 타임스탬프의 차이가 파일과 결합된 만료 프로그램 정보보다 크다면, 상기 파일은 상기 캐시 매니저(840)에 의하여 제거된다. 유실된 파일 정보의 관점에서는, 각 프로그램 파일의 데이터 워드(즉 바이트)의 레인지가 성공적으로 수신되었는지 와 수신되지 않았는지(또는 에러를 가지고 수신되었는지)를 결정하는 것은 상기 캐시 매니저(840)이다. 상기 캐시 매니저(840)는 상기 브로커(810)에게 통지하며, 이것은 아래에서 언급하는 바와 같이 데이터의 어떠한 레인지가 주어진 프로그램 파일에서 수신되지 않았는지를 지시하는 메시지를 전송하거나 파일의 수신을 긍정적으로 응답한다.
프로그램 통신 패킷 포맷(PROGRAM COMMUNICATION PACKET FORMAT)
도 20은 프로그램의 파일 데이터를 이송하기 위한 패킷(900)의 포맷을 나타낸다. 이 패킷은 도 3에서 보여진 정보(102)의 유닛의 전부 또는 부분을 형성할 것이다. 상기 패킷(910)은 상기 패킷을 설명하는 프로토콜의 버전을 지시하는 버전 필드(911)를 갖는다. 예시적으로 상기 버전은 처음에 1로 세팅될 것이다. 이것의 다음은 보존된(reserved) 필드(912)이며 이것의 사용은 아직 정의되지 않았다. 상기 보존된 필드(912)의 다음은 타입필드(913)이다. 이 필드(913)는 상기 패킷이 상기 파일 데이터의 오리지널 전송을 포함하는 것을 지시하는 첫째 값(즉 0), 또는 상기 패킷이 수정(repair) 데이터, 즉 오리저널 데이터의 재전송을 포함하는 것을 지시하는 둘째 값(즉 1)을 가질 수 있다. 아래에서 보다 상세하게 기술하는 바와 같이, 수정 데이터는 일반적으로 단지 프로그램 파일 데이터의 데이터 워드의 제한된 레인지를 위하여 전송되며-모든 파일을 위한 것은 아니다. 대역폭의 보전을 위하여, 그것은 단지 수신되지 않는 데이터 레인지를 재전송하는 것이다.
상기 타입필드(913) 다음은 암호화(encryption) 필드(914)이며, 이는 페이로드가 암호화되는지(이때는 1로 설정) 또는 암호화되지 않았는지(이때는 0으로 설정)를 지시하는 값을 포함할 수 있다. 다음은 페이로드가 압축되었는지 여부를 지시하는 압축필드(915)가 제공된다. 예를 들면, 1의 값은 페이로드가 압축되었음을 지시하며, 0의 값은 페이로드가 압축되지 않았음을 지시한다. 예시적으로 상기 페이로드는 상기 소스 사이트(201)에서 전송에 앞서 상기 컨트롤러(350, 360, 370)에 의하여 압축되고/또는 암호화된다. 만약 파일 데이터가 압축되고 암호화되었다면, 파일데이터는 예시적으로 먼저 압축되고 다음으로 암호화된다. 압축은 P. Deutch & J.L.Gailly의 " Zlib Compressed Data Format Specification Version 3.3" IETF RFC 1950(1996, 5) (http://ietf.org/rfc/rfc1950.txt?number=1950)에 기술된 zlib 기술을 사용하여 이루어진다.
인증길이필드(916)는 필드(919)에서 인증 값의 크기를 지시하기 위하여 제공된다. 상기 인증 값은 상기 패킷(910)을 인증하기 위한 값이다. 만약 상기 인증길이가 0으로 설정되면, 인증필드(919)가 존재하지 않는다. 상기 필드(919)에서 상기 인증 값은 상기 패킷 페이로드(암호화 또는 압축 또는 모두)의 "MD5" 해시(hash)와 같이 디지털 서명이 될 수 있다. R.Rivest의 " The MD5 Message Digest Algorithm" IETF RFC 1321(1992, 4)(http://ietf.org/rfc/rfc1321.txt?number=1321)을 보라. 인증은, 상기 인증 값이 상기 패킷(910)에서 이송됨에 따라 상기 프로그램 식별자(918)와 상기 페이로드(920)의 사이에서 상기 인증길이 필드(916)에 의하여 지시되는 바이트 수를 추출하는 상기 클라이언트 노드(240)에 의하여 수행된다. 다음으로 상기 클라이언트 노드(240)가 공개 키(public key)를 사용하여 상기 인증필드(919)의 값을 복호화하며, 상기 페이로드 컨텐츠를 해시하여 상기 복호화된 인증 값을 해시 값과 비교한다.
만약 상기 패킷이 암호화된다면, 인덱스는 키 인덱스 필드(917)에서 제공된다. 이 인덱스는, 프로그램 식별자 필드(918)에서 프로그램 식별자와 조합될 때, 상기 클라이언트 노드에서 상기 페이로드(920)를 복호화하기 위하여 상기 규정키(correct key)를 인덱스하기 위하여 사용될 수 있다. 상기 프로그램 식별자 필드(918)는 상기 컨트롤러(350)에 의하여 컨텐츠가 상기 패킷(910)에 의하여 이송되는 프로그램에 할당하는 32-비트 고유 프로그램 식별자를 포함한다.
상기 페이로드(920)는 하나 또는 그이상의 트리플렛(triplet)의 시퀀스를 포함하며, 각 트리플렛은 태그-길이-값 포맷으로 생성된다. 각 태그는 상기 트리플렛의 데이터 형태를 식별하며, 각 길이는 다음 트리플렛까지의 오프셋을 바이트로 지시한다. 상기 값은 변수 또는 데이터 자체를 포함한다. 값은 이것에 어태치된 패딩(padding)을 가질 수 있으며, 따라서 상기 트리플렛의 길이는 상기 값의 정확한 길이를 정확하게 지시할 필요는 없다. 다음 표는 상기 페이로드에서 사용되기 위하여 정의되는 특정 태그를 요약한다.
태그 데이터 타입 설명
파일 번호 int64 프로그램의 파일 번호(예, 이파일 345의 16)
파일 크기 int64 이 파일의 바이트의 총수(예, 파일 16은 124바이트를 갖는다)
바이트 오프셋 int64 이 데이터를 놓는 파일의 처음에서의 바이트 오프셋
파일 버전 long 파일의 마지막 기록 시간
예상된 파일들 int64 이 프로그램을 위하여 수신될 것으로 예상되는 파일의 총수
파일이름 UTF8 이 파일의 이름
JobUUID GUID 이 패킷이 수행하는 잡의 글로벌한 식별자
컨텐츠 바이트 실제 파일의 내용
예시한 바와 같이, 상기 파일이름은 오직 주어진 파일의 파일데이터를 이송하는 일련의 패킷의 첫 번째 패킷에서 전송된다. 마찬가지로, 상기 jobUUID는 오직 주어진 잡을 위한 데이터를 이송하는 일련의 패킷의 첫 번째 패킷에서 이송된다. 바람직하게는, 상기 파일이 매우 짧지 않고 하나의 패킷으로 이송될 수 없다면, 상기 파일을 위한 상기 첫 번째 패킷은 컨텐츠 트리플렛을 포함하지 않는다.(즉 파일의 실제적인 컨텐츠 데이터, 상기 메타-데이터 파일번호, 파일크기, 바이트 오프셋, 파일 버전, 예상된 파일 등을 갖지 않는다.) 트리플렛의 부가적인 타입은 255개의 전체 트리플렛까지 정의될 수 있다. 이러한 제한은 상기 태그 필드의 길이(1 바이트)에 의하여 부과된다. 각 트리플렛은 총 1020바이트의 길이를 가질 수 있으며, 태그와 길이필드를 포함한다. 이 제한은 트리플렛의 길이필드는 한 바이트이고, 4 바이트 증가로 0부터 255의 범위의 범위를 측정할 수 있기 때문에 부과된다. 0값을 포함하는 길이필드를 갖는 트리플렛은 패킷의 시퀀스에 있어서 마지막 트리플렛을 나타낸다는 것을 유의하자. 클라이언트(240)는 인식하지 않는 각 트리플렛을 스킵(skip)하고, 인식할 수 있는 패킷의 나머지 트리플렛을 읽고 해석할 수 있는 것이 요구된다.
비동기 부정 응답(ASYNCHRONOUS NEGATIVE ACKNOWLEDGEMENT)
예시한 바와 같이, 도 2의 시스템(200)은 상기 클라이언트 노드(240)에 데이터의 전송을 확인하기 위하여 PGM에 "비동기 백 채널"(ABC)확장을 채용한다. 먼저, ABC를 가능하게 하기 위하여, ABC 안내가 상기 서비스 채널에 통신되어야 한다. 예시적으로, 상기 ABC 안내는 서비스 안내의 특별한 형태이며, 이는 신뢰할 만한 채널 정보(503-4)를 갖는 채널이 선택되는 각 스케줄된 작업을 위하여 생성된다. 상기 ABC 안내는 SAP/SDP에 따라 포맷되며, IP 멀티캐스트 그룹과 상기 ABC를 위한 포트(그래서 클라이언트 노드(240)는 상기 ABC서버와 통신할 때 패킷을 보내야 하는 어드레스를 안다.)와 클라이언트 노드가 그들의 ABC 요구를 보내야 하는 상기 네트워크 요소(205)의 상기 "도메인이름 서버(domain name server: 이하 'DNS'라 함) 이름과 같은 정보를 포함한다.
각 개개의 채널에 서비스 안내가 보내질 때, 각 서비스 안내는 상기 채널의 고유한 채널 식별자와 상기 클라이언트 노드(240)가 상기 각 채널을 위하여 비동기 부정응답 패킷 또는 긍정응답 패킷을 보낼 수 있을지 여부를 나타내는 태그를 포함한다. 마찬가지로, 새로운 프로그램을 안내하는 서비스 안내는 프로그램 식별자와 상기 클라이언트 노드(240)가 상기 각 프로그램에 대하여 비동기 부정응답 패킷 또는 긍정응답 패킷을 보낼 수 있을지 여부를 나타내는 태그를 포함한다. 이러한 패킷과, 그들이 보내지는 때는, 아래에서 보다 상세하게 설명된다.
도 21은 상기 ABC 서버(380)에 의하여 수행되는 방법을 도시한다. 상기 ABC 서버(380)는 각 완성된 잡을 위하여 이러한 스텝을 수행한다. 스텝 S104에서, 상기ABC 서버(380)는 먼저 PGM 패킷이 수신되었는지를 결정한다. PGM 패킷은 쉽게 식별될 수 있는 구조를 갖는다. 비-PGM 패킷은 상기 ABC 서버(380)에 의하여 무시되거나 버려진다. 상기 ABC 서버(380)는 비-PGM 패킷이 수신되면 스텝 S124 - S126(아래에 설명되는)을 단순히 수행한다. 만약 PGM 패킷이 수신되면, 스텝 S103에서 상기 ABC 서버(380)는 다음으로 상기 패킷이 보통의 PGM 패킷인지 아래에 설명되는 ABC 패킷인지를 결정한다. 만약 패킷이 보통의 PGM 패킷이면, 상기 ABC 서버(380)는 잘 알려진 PGM 프로토콜에 따라 스텝 S108에서 보통의 프로세스를 수행한다. 이러한 보통 프로세스는 오리지널 프로그램 데이터의 모두를 가지고 패치 잡의 생성과 이러한 잡의 수행을 위한 스케줄링에 연관된다. 그리고 나서 상기 ABC 서버(380)는 아래에서 설명되는 바와 같이 스텝 S124 - S126을 수행한다.
만약 상기 패킷이 ABC 패킷이면, 상기 ABC 서버(380)는 스텝 S110에서 ABC 패킷의 어떠한 타입이 수신되었는지를 결정한다. 두 타입의 ABC 패킷 즉, 긍정응답 패킷(positive acknowledgement packet) 또는 비동기 부정응답 패킷(asynchronous negative acknowledgement packet)이 수신될 수 있으며, 이들의 구조와 목적은 아래에서 상세히 설명된다. 만약 ABC패킷이 긍정 응답 패킷 또는 ACK 패킷이라면, 상기 ABC 서버(380)는 스텝 S112를 수행하며, 여기서 로그, 예를 들면, 빌링로그가 생성되며 이는 상기 ACK 패킷을 보내는 상기 각 클라이언트 노드(240)에 의하여 상기 프로그램의 긍정적 수신을 나타낸다. (상기에서 언급한 바와 같이, 상기 오퍼레이터 콘솔(360)를 사용하여, 확인 전송 박스(714-11)가 체크되며 이는 각 클라이언트 노드가 긍정응답 또는 ACK 패킷을 다시 상기 ABC 서버(380)에 전송하도록 하며,상기 ABC 서버(380)가 수행될 때 이러한 정보는 상기 주컨트롤러(350)에 접근 가능하게 된다) 그리고 나서 상기 ABC 서버(380)는 아래에서 설명되는 바와 같이 스텝 S124-S126을 수행한다.
만약 상기 패킷이 ABC 패킷이면, 상기 ABC 서버(380)는 스텝 S110에서 ABC 패킷의 어떠한 타입이 수신되었는지를 결정한다. 두 타입의 ABC 패킷 즉, 긍정응답 패킷 또는 비동기 부정응답이 수신될 수 있으며, 이들의 구조와 목적은 아래에서 상세히 설명된다. 만약 ABC패킷이 긍정 응답 패킷 또는 ACK 패킷이라면, 상기 ABC 서버(380)는 스텝 S112를 수행하며, 여기서 로그, 예를 들면, 빌링로그가 생성되며 이는 상기 ACK 패킷을 보내는 상기 각 클라이언트 노드(240)에 의하여 상기 프로그램의 긍정적 수신을 나타낸다. (상기에서 언급한 바와 같이, 상기 오퍼레이터 콘솔(360)을 사용하여, 확인 전송 박스(714-11)가 체크되며 이는 각 클라이언트 노드가 긍정응답 또는 ACK 패킷을 다시 상기 ABC 서버(380)에 전송하도록 한다. 상기 빌링정보는 상기 프로그램을 수신하기 위하여 타겟이 된 클라이언트 노드(240)가 이것의 수신을 확인하는 트랙을 유지하기 위하여 사용될 수 있다. 그리고 나서 상기 ABC 서버(380)는 아래에 설명되는 것처럼 S124-S126을 수행한다.)
한편, 만약 상기 채널과 프로그램이 유효하다면, 상기 ABC 서버(380)는 다음으로 상기 ABC 서버(380)가 상기 수신된 ANAK 패킷이 다른 ANAK 패킷에서 요구를 "인터섹트(intersect)"하는 요구를 갖고있는지를 결정하는 스텝 S116을 수행한다. 아래에서 보다 상세히 설명되는 것처럼, ANAK 패킷은 레인지의 리스트에서 데이터의 재전송을 요구한다. ANAK 요구는 그들이 동일한 프로그램을 보유한다면 인터섹트하도록 하는 것이다. 그들은 동일한 파일에서 데이터 워드의 동일한 레인지에 대하여 요구이며, 동일한 파일에 대하여 연속하여 인접하는 레인지에 대한 요구이며, 동일한 파일에 대하여 비인접한 레인지에 대한 요구이거나 동일한 프로그램의 다른 파일에서 데이터의 레인지에 대한 요구일 수 있다. 만약 상기 ANAK 패킷 요구가 스텝 S118에서 인터섹트하지 않는다면, 상기 ABC 서버(380)는 ANAK의 상기 요구를 버퍼하고 카운트다운 타이머를 시작하여 아래에 설명된 스텝 S124-S126을 진행할 것이다.
만약 ANAK 패킷이 전의 ANAK 패킷의 요구(request)를 인터섹트하는 요구를 포함한다면, 상기 ABC 서버(380)는 스텝 S120을 수행한다. 스텝 S120에서는, 상기 ABC 서버(380)는 이 ANAK 패킷의 요구를 인터섹팅 요구에 모으게 된다. 실제에 있어서, 상기 ABC 서버(380)는 상기 두 개의 요구의 레인지의 결합을 형성하고, 이 결합된 ANAK 요구를 전에 수신한 ANAK 요구의 장소에 버퍼하게 된다. 더하여, 다수의 비인접 ANAK 요구는, 즉 동일한 프로그램의 동일한 또는 다른 파일에 대한, 하나의 ANAK 패킷에 통합될 수 있다. 그리고 나서, 스텝 S122에서, 만약 가능하다면, 상기 ABC 서버(380)는 카운트다운 타이머를 재설정(reset)할 것이다. 예시적으로, ANAK 요구에 대하여 카운트다운 타이머를 재설정할 수 있는 회수는 한정할 수 있는 한계가 있다. 만약 초과된다면, 상기 타이머는 재설정되지 않는다.
상기 ABC 서버(380)는 스텝 S104, 스텝 S108, 스텝 S112, 스텝 S118, 스텝 또는 S122를 통하여 스텝 S124를 진행할 것이다. 스텝 S124에서, 상기 ABC 서버(380)는 카운트다운 타이머가 종료되었는지 결정한다. 만약 카운트다운 타이머가 종료되었다면, 상기 ABC 서버(380)는 스텝 S126에서 ANAK 요구를 위한 패치 잡을 생성한다. 예시적으로, 패치 잡은, 상기에서 설명된 것처럼, 프로그램이 처음에 전송되었던 동일한 채널 상에서 상기 프로그램을 재전송하기 위한 스케줄된 잡이다. 그러나, 단지 상기 버퍼된 ANAK 요구에 있는 데이터 레인지만 재전송된다.
ANAK 요구는 스텝 S120에서 통합되며, 더욱이 아래에서 설명되는 바와 같이, 네트워크 요소에 의하여 통합된다는 것을 유의하라. 예를 들면, 몇 개의 노드(240)가 공통으로 적어도 어떤 레인지의 재전송을 요구하는 것은 완전히 가능성이 있다. 예를 들면, 위성 시스템에서, 지역적 이벤트(event)는 동일한 지역적 영역에 있는 많은 클라이언트 노드에 레인-아웃(rain-out)(데이터가 오염되는 것과 같은 위성 시그널의 감소의 추진)과 같은 영향을 받게 된다. 이것은 그러한 영역 내에 있는 상기 클라이언트 노드(240)의 모드가 프로그램의 유사하게 누락된 레인지를 수신하기 위하여 요구를 전송하게 될 것이다. 그럼에도 불구하고 다수의 클라이언트 노드(240)로부터 동일한 레인지의 데이터에 대한 요구는 상기 레인지의 데이터의 한번의 전송으로 만족될 수 있다. 이것은 상기 데이터의 재전송(또한 원래의 전송)이 상기 클라이언트 노드(240)의 모두에 대한 멀티캐스트 전송이기 때문이다.
도 22는 PGM에 대한 상기 ABC의 연장에 따라서 상기 클라이언트 노드(240)에 의하여 수행되는 프로세스를 나타낸다. 예시하는 바와 같이, 이러한 스텝은 먼저 상기 캐시 매니저(840), 브로커(810), 상기 하나의 채널 개체(805)에 의하여 수행되며, 이들은 상기 적정한 네트워크 요소(205)에 대한 백 채널(back channel)상에서 반송 메시지를 전송하기 위하여 특정된다. 상기에서 언급한 바와 같이, 메시지가 전달되어야 하는 상기 특정 네트워크 요소(205)는 상기 프로그램의 유용성을 안내하는 서비스 안내 메시지에서 지시된다.
상기 세션 매니저(820)는 신뢰성있는 전송과 인증을 특정하는 특정채널 상에서 프로그램을 위한 안내를 검출한다고 추정한다. 상기 클라이언트 노드(240)는 상기 채널과 프로그램에 기명한다(오퍼레이터의 작동 또는 자동으로)고 가정한다. 상기 세션 매니저(820)는 상기 브로커(810)에 상기 기명을 통신한다. 스텝 S202에서, 상기 채널을 위한 상기 채널개체(805)는 상기 프로그램 파일 정보를 수신하며, 상기 브로커(810)는 상기 클라이언트 노드(240)에 상기 프로그램 파일정보를 역다중화하여 저장한다.
상기 캐쉬 매니저(840)는 주기적으로 수행한다. 다른 일들 중에서, 상기 캐쉬 매니저(840)는 각 특정한 잡들이 완료되었는지를 스텝 S204에서 결정한다. 만약 주어진 잡이 아직 완료되지 않았다면, 상기 캐쉬 매니저(840)는 상기 잡에 대한 신뢰성을 확인하는 것과 관련된 더 이상의 단계를 수행하지 않는다. 만약 잡이 완료되었으면, 상기 캐쉬 매니저(840)는 스텝 S206에서 어떠한 파일이 누락되었는지를 결정하기 위하여 각 프로그램의 파일을 조사한다. 게다가, 스텝 S206에서, 상기 캐쉬 매니저(840)는 파일의 각 부분에 대하여 패리티 체크(parity check)와 다른 에러 조사를 수행한다. 예를 들면, 상기 캐쉬 매니저(840)는 고정된 크기, 예를 들면 1024 바이트, 의 데이터의 각 블록(상기 고정된 크기보다 적게 가질 파일 데이터의 최종 블록을 제외하고)을 조사한다. 상기 캐쉬 매니저(840)는 스텝 S208에서 상기 잡을 위한 어떤 누락된 프로그램 파일 데이터가 있는지 여부를 결정한다. 만약 없다면, 상기 백 채널이 설정되고 스텝 S214로 진행할 때, 상기 캐쉬 매니저(840)는 상기 백 채널 상으로 전송되는 메시지의 리스트에 ACK 요구 메시지를 추가한다. 스텝 S210은 만약 확인이 이 잡을 위한 서비스 안내에서 요구되는 대로 지시되어 있지 않다면 수행되지 않을 것이며, ABC 프로세싱은 상기 잡을 위하여 정지된다는 것을 유의한다.
한편, 어떤 파일 데이터가 누락된다면, 스텝 S212에서, ANAK 요구가 사기 누락된 파일 또는 그것의 부분을 위하여 생성된다. 일반적으로, 파일 부분의 누락은 데이터 워드(바이트)의 레인지들의 형태이다. 예를 들면, 각 레인지는 주어진 블록에 상응할 수 있다.
상기 브로커(810)는 백 채널이 이용가능해질 때까지 대기한다. 상기 클라이언트 노드는 특정한 스케줄된 시간에 백 채널을 단지 개방하는 타입이라는 것을 유의한다. 예를 들면, 많은 위성 IRD's(셋톱박스들)는 전화 반송 패스를 가지며, 이는 전화라인을 사용하기 위한 비용을 절약하기 위하여 특정한 시간에 단지 활성화된다. 대안으로, 보통 풀-타임 백 채널을 제공하는 상기 통신 디바이스는 일시적으로 오작동하거나 일시적으로 서비스를 위한 선을 중단하게 될 것이다. 이리하여, 스텝 S214에서, 상기 브로커(810)는 백 채널이 이용가능한지를 결정한다. 만약 가능하지 않다면, 상기 브로커(810)는 스텝 S214를 수행하는 것을 계속한다.
만약 백 채널이 이용 가능하다면, 상기 브로커(810)는 스텝 S216을 수행한다. 스텝 S216에서, 상기 브로커(810)는 펜딩(pending)된 ANAK 요구를 스캔(scan)하고 같은 프로그램과 채널에 대한 ANAK 요구를 합체한다. 예를 들면, 레인지들은전송이 재요구되어야 하는 인접한 데이터 워드의 하나의 레인지를 만드는 것이 가능한 곳에서 합체된다. 더욱이, ABC 패킷 크기의 제약 하에서, 동일한 프로그램과 채널의 데이터 워드의 비-인접 레인지를 위한 다수의 요구의 하나 또는 그이상의 리스트는 하나의 패킷으로 조합된다. 스텝 S218에서, 상기 브로커(810)는 펜딩되는 ACK와 합체된 ANAK 요구를 위하여 ACK와 ANAK 패킷을 전송한다. ACK와 ANAK 패킷이 속하는 상기 각 프로그램과 채널을 위하여 ACK와 ANAK 패킷은 적당한 채널 상으로 전송된다. 스텝 S220에서, 상기 브로커(810)는 전송된 ACK 또는 ANAK 패킷에 대응하여 각 요구에 대하여 전송카운터를 감소시킨다.
ANAK 요구의 합체는 더 작은 패킷이 전송되도록 한다는 것을 유의해라. 즉, 유용한 형태로 수신되는 것이 실패된 데이터 워드의 한 레인지 이상이 하나의 ANAK 패킷으로 부정적으로 응답된다.
스텝 S222에서, 상기 브로커(810)는 각 ACK와 ANAK 패킷에 대하여 타이머를 시작한다. 스텝 S224에서, 상기 브로커(810)는 스텝 S220에서 미리 전송된 ACK 또는 ANAK 패킷의 하나를 수신하였는지를 결정한다. 만약 그렇다면, 추가적인 스텝이 확인된 ANAK 패킷의 경우에 필요할 것이다. 예를 들면, 스텝 S226에서, 상기 브로커(810)는 "리페어(repair)" 잡에서 수신될 파일 데이터를 위하여 대기할 것이다. 리페어 잡은 상기 서비스 채널 상에서 서비스 안내를 사용하여 안내하며, 상기 브로커(810)가 요구되어 재전송된 데이터를 자동적으로 수신하여 상기 프로그램 파일의 적당한 위치에 저장한다. 이러한 방법으로, 상기 재전송된 프로그램 파일 데이터는 처음 전송에서 누락되거나 에러된 프로그램 파일 데이터를 정정하거나 대체한다.
만약 확인이 수신되지 않으면, 스텝 S228에서, 상기 브로커(810)는 스텝 S220에서 전송된, 그러나 확인이 스텝 S224에서 수신되지 않은 어떤 ACK 또는 ANAK 패킷에 대한 타이머가 만료되었는지를 결정한다. 만약 그렇지 않다면, 상기 브로커(810)는 스텝 S224를 수행하기 위해서 복귀한다. 한편, 만약 상기 브로커(810)가 상기 타이머 중의 하나가 만료되었다고 결정한다면, 상기 브로커(810)는 스텝 S230을 수행한다. 스텝 S230에서, 상기 브로커(810)는 각 확인되지 않은 ACK 또는 ANAK 메시지에 대한 전송카운터가 제로인지를 결정한다. 만약 그렇다면, 상기 브로커(810)는 스텝 S232에서 경고를 통신하며, 이것은 어떤 프로그램 파일 데이터가 완전하게 수신되지 않을 것이라는 것을 나타낸다. 한편, 상기 카운터가 제로가 아니면, 상기 브로커(810)는 스텝 S218로 복귀하고, 여기서 상기 각 ACK 또는 ANAK 패킷은 적당한 네트워크 요소에 재전송되며, 각 전송 카운터는 스텝 S220에서 감소된다. 스텝 S222 내지 S230이 반복된다.
도 23a와 23b는 네트워크 요소(205)에 의하여 수행되는 프로세스를 도시한다. 도시하는 바와 같이, 네트워크 요소(205)는 클라이언트 노드(205) 또는 컨트롤 노드(350, 360, 370)가 수행하는 것처럼 통신 서비스를 제공하기 위하여 적정한 시스템을 갖는다.
스텝 S302에서, PGM 패킷이 수신되었을 때, 네트워크 요소(205)는 상기 패킷이 통상적인 PGM패킷인지 또는 ABC 패킷인지를 결정한다. 이것은, 아래에서 설명되는 바와 같이, PGM패킷의 내용을 조사하여 쉽게 결정할 수 있다. 만약 상기 패킷이PGM 패킷이면, 상기 네트워크 요소(205)는 스텝 S304에서 통상적인 PGM 프로세싱을 수행하고, 스텝 S302로 복귀한다. 만약 상기 패킷이 ABC 패킷이면, 상기 네트워크 요소(205)는 스텝 S306에서 상기 패킷이 유효한지를 결정한다. 예를 들면, 상기 네트워크 요소(205)는 상기 패킷의 체크섬(checksum)을 확인하며, 본 특허의 상기 신텍스(syntax)는 정확하고 상기 정확한 네트워크 레이어 멀티캐스트 어드레스는 상기 패킷에 존재한다. 만약 상기 패킷이 유효하지 않다면, 상기 네트워크 요소(205)는 스텝 S308에서 이것을 버리고, 스텝 S302로 복귀한다.
만약 상기 ABC패킷이 유효하다면, 상기 네트워크 요소(205)는 상기 수신된 패킷이 ACK 또는 ANAK 패킷인지를 스텝 S310에서 결정한다. 만약 상기 패킷이 ACK 패킷이면, 상기 네트워크 요소(205)는 스텝 S312 - S318을 수행한다. 스텝 S312에서, 상기 네트워크 요소(205)는 상기 ACK패킷의 전송자에게 다시 긍정적 응답 확인 패킷(positive acknowledgement confirmation packet: 이하 "AACF"라 함)을 전송한다. 스텝 S314에서, 상기 네트워크 요소(205)는 상기 수신된 ACK 패킷을 상기 적정한 수신자(즉 상기 ACK패킷에 상응하는 원래 데이터를 전송하는 상기 컨트롤러(350, 360, 370) 또는 다른 네트워크 요소)에게 발송한다. 스텝 S316에서, 상기 네트워크 요소(205)는 상기 ACK에 대한 전송 카운터를 감소시킨다. 스텝 S318에서, 상기 네트워크 요소(205)는 확인 타이머를 시작한다. 그리고 나서, 상기 네트워크 요소(205)는 아래에 기술되는 스텝 S338을 수행할 것이다.
한편, 상기 패킷이 ANAK 패킷이면, 상기 네트워크 요소(205)는 스텝 S318에서 먼저 상기 ANAK 패킷을 전송한 상기 노드에 다시 비동기 부정응답 리스트확인(asynchronous negative acknowledgement list confirmation: 이하 "ANCF"라 함)을 전송한다. 다음으로 스텝 S320에서, 상기 네트워크 요소(205)는 상기 수신된 ANAK패킷에서 상기 요구가 상기 동일한 잡을 위하여 수신된 다른 ANAK 패킷에 있는 요구를 인터섹트한 것인지를 결정한다. 만약 그렇지 않다면, 스텝 S322에서, 상기 네트워크 요소(205)는 상기 ANAK 요구를 버퍼하고, 스텝 S324에서 전송 타이머를 시작한다. 상기 네트워크 요소(205)는 다음으로 스텝 S334를 진행한다.
만약 상기 수신된 ANAK 요구의 하나 또는 그이상의 레인지가 다른 버퍼된 ANAK 요구의 레인지와 인터섹트된 것이라면, 상기 네트워크 요소(205)는 스텝 S326을 수행한다. 스텝 S326에서, 상기 네트워크 요소(205)는 상기 수신된 ANAK 패킷을 인터섹팅되는 ANAK 패킷과 합체한다. 위에서 언급한 바와 같이, 합체는 데이터워드의 더 큰 레인지를 특정하기 위하여 요구를 수정하는 것, 특히 다수의 요구 또는 다수의 ANAK 요구의 집적에 대한 레인지의 결합을 하나의 ANAK 패킷으로 커버하는 것을 포함할 수 있다. 스텝 S328에서, 상기 네트워크 요소(205)는 상기 합체된 ANAK 요구의 합체카운터를 감소시킨다. 스텝 S330에서, 상기 네트워크 요소(205)는 상기 합체 카운터가 제로와 같은지 또는 제로보다 작은지를 결정한다. 만약 그렇다면, 상기 네트워크 요소(205)는 직접 스텝 S334를 진행한다. 만약 그렇지 않다면, 상기 네트워크 요소(205)는 스텝 S332에서 상기 합체된 ANAK 요구의 전송 카운터를 재설정하고, 스텝 S334로 진행한다.
스텝 S334에서, 상기 네트워크 요소(205)는 전송타이머가 만료되었는지를 결정한다. 만약 아니라면, 상기 네트워크 요소(205)는 스텝 S338로 진행한다. 스텝S336에서, 만약 전송 타이머가 만료되었다면, 상기 네트워크 요소(205)는 스텝 S335에서 상기 만료된 타이머에 대응하는 상기 (합체된) ANAK 요구를 포함한 패킷을 발송한다. 스텝 S336에서, 상기 네트워크 요소(205)는 상기 전송된 ANAK 패킷에 대한 전송 카운터를 감소시킨다. 그리고 나서 스텝 S337에서, 상기 네트워크 요소(205)는 상기 전송된 ANAK 패킷에 대한 확인 타이머를 시작한다. 그리고 나서, 상기 네트워크 요소(205)는 스텝 S338로 진행한다.
스텝 S338에서, 상기 네트워크 요소(205)는 ANCF 또는 AACF 확인 패킷이 수신되었는지를 결정한다. 만약 그렇지 않다면, 상기 네트워크 요소(205)는 스텝 342를 수행한다. 만약 그렇다면, 스텝 S340에서, 상기 수신된 확인에 대응하는 ACK 또는 ANAK 요구를 삭제하고, 그 요구와 관련된 모든 타이머와 카운터는 딜로게이티드(deallocated)된다. 그리고 나서, 스텝 S342가 수행된다. 스텝 S342에서, 상기 네트워크 요소(205)는 확인 타이머가 만료되었는지를 결정한다. 만약 그렇지 않다면, 상기 네트워크 요소(205)는 스텝 S302로 진행한다. 만약 확인 타이머가 만료되었다면, 상기 네트워크 요소(205)는 확인타이머가 만료되는 상기 요구와 연결된 상기 전송카운터가 제로와 같은지를 결정한다. 만약 그렇다면, 이것은 상기 업스트림 네트워크 요소(205) 또는 컨트롤러(350, 360, 370)가 상기 발송된 요구를 확인할 수 없음을 나타낸다. 마찬가지로, 스텝 S346에서, 상기 네트워크 요소(205)는 경고 메시지를 발행하고, 스텝 S320으로 복귀한다. 만약 상기 전송카운터가 제로가 아니면, 상기 네트워크 요소(205)는 스텝 S348에서, 다시 상기 다음의 업스트림 네트워크 요소(205) 또는 컨트롤러(350, 360, 370)로 수신될 때 확인되는 것이실패된 ACK 또는 ANAK 패킷의 카피를 발송한다. 다음으로, 스텝 S350에서, 상기 네트워크 요소(205)는 상기 네트워크 요소(205)의 전송카운터를 감소시킨다.
이리하여, 다수의 ANAK 요구는 합체된다. 특히, 다수의 ANAK 요구가 하나의 더 큰 레인지의 블록으로 합쳐지거나, 또는 다른 패킷으로부터의 다수의 ANAK 요구가 동일한 ANAK패킷에 위치되거나 또는 두 가지 모두에 해당한다. 이것은 상기 시스템에서 상기 로드를 감소시킨다.
상기의 예에서 상기 네트워크 요소(205)는 상기 ANAK를 발행한 상기 클라이언트 노드(240)에 의하여 요구되는 상기 레인지에 대한 리페어 데이터를 발행할 수 없다고 가정된다.
ABC 패킷
도 24는 도시적인 ABC패킷(950)을 나타낸다. PGM패킷과 마찬가지로. 도 24에서 보여진 상기 ABC패킷(950)은 네트워크 레이어 패킷의 상기 페이로드가 될 전송 레이어 패킷이다.
소스 포트 필드(951)는 상기 소스, 이 경우는 상기 ABC 서버(380),에 의하여 생성된 랜덤 포트 번호를 포함한다. 목적지 포트 필드(952)는 PGM 패킷에 할당된 전체적으로 잘 알려진 식별자를 포함한다. 타입 필드(953)는 패킷의 타입을 나타낸다. 옵션 필드(954)는 어떤 옵션을 나타낸다. 이 실시예에서, 옵션 확장이 존재할 때, 옵션 비트 0은 1로 설정될 것이다. 체크섬 필드(955)는 헤더를 포함하는 전체 패킷의 1의 보수합을 포함한다. 만약 ABC패킷의 컨텐츠가 네트워크 요소(205) 또는다른 중간의 노드에 의하여 변경된다면, 상기 체크섬 필드(955)에서 상기 체크섬은 재 계산되어야 한다는 것을 유의하라. 글로벌 소스 식별자 필드(956)는 상기 ABC서버(380)의 변하지 않는 유일한 식별자를 포함한다. TSDU 길이 필드(949)는 이 전송 레이어 데이터 유닛을 포함하며, 전송헤더는 제외한다.
ABC패킷에 대하여, 상기 요구 시퀀스 번호 필드(947)는 0x00000000을 포함한다. 이 시퀀스 번호는 ABC패킷들이 하나의 특별한 초기 데이터 패킷에 대응하지 않기 때문에 사용된다; 그들은 그들(ACK 의 경우에)의 모두에 대응하거나 또는 패킷들(ANAK의 경우에)의 리스트에 대응한다.
소스 권한 포맷 식별자 필드(948)는 소스 네트워크 레이어 어드레스 필드(957)에서 상기 소스 네트워크 레이어 어드레스의 포맷에 관한 정보를 포함한다. 도시하는 바와 같이 상기 ABC 전송자(sender)와 접촉하기 위한 네트워크 레이어 어드레스는 상기 소스 네트워크 레이어 어드레스 필드(957)에 포함된다. 마찬가지로, 멀티캐스트 권한 포맷 식별자 필드(958)는 멀티캐스트 네트워크 레이어 어드레스 필드(959)에서 상기 멀티캐스트 네트워크 레이어 어드레스의 포맷에 관한 정보를 포함한다. 상기 초기 데이터를 이것의 각각의 채널 상으로 전송하기 위하여 사용되는 상기 멀티캐스트 어드레스는 상기 멀티캐스트 네트워크 레이어 어드레스 필드(959)에 포함된다.
본 발명에 따르면, 옵션확장 필드(960)가 제공되며 다음과 같이 사용된다. 도 25는 ANAK 패킷(950)의 경우를 나타낸다. 상기 옵션확장 필드(960)는 옵션 엔드 필드(961)를 포함하며, 이것이 상기 패킷에서 마지막 옵션 필드라는 것을 나타내기위하여 1로 설정되거나 그렇지 않으면 0으로 설정된다.
옵션타입 필드(962)는 상기 패킷이 ANAK 패킷으로 식별되는 OPT_ANAK 값을 포함한다. 옵션길이 필드(963)는 이 옵션 필드의 길이를 나타내는 값을 포함한다. 보존된 필드(964)는 현재 정의된 용도를 갖지 않는다. 다음으로 옵션 확장 처리 필드(965)는 이 옵션을 사용하는 방법을 이해하지 못하는 네트워크 요소(205)가 상기 전체 옵션필드를 버리도록 하는 값 '00'을 포함한다. 버전 필드(966)는 상기 옵션이 속하는 ABC의 버전에 대응하는 값을 포함한다. 이것은 값 1로 설정될 수 있다. 채널 식별자 필드(967)는 상기 채널의 채널식별자를 포함하며, 프로그램 식별자 필드(968)는 상기 프로그램의 프로그램 식별자를 포함하며, 이를 위하여 이 ANAK 패킷은 부정적 응답 패킷 수신이 된다. 이러한 채널과 프로그램 식별자는 상기에서 설명되었다.
상기 프로그램 식별자 필드(968)에 이어지는 것은 하나 또는 그이상의 ANAK 요구이며 각각은 동일한 포맷을 갖는다. 도 26은 ANAK 요구(970)의 포맷을 나타낸다. 각 ANAK 요구(970)는 파일번호 필드(971), 파일버전 필드(972), 스타트블록 필드(973), 블록카운트 필드(974)를 포함한다. 상기 파일번호 필드(971)는 파일의 어떤 데이터가 유용한 형태로 수신되지 않은 파일의 파일번호를 포함한다. 상기 파일버전 필드(972)는 상기 파일의 파일버전을 포함한다. 상기 스타트블록 필드(973)는 유용한 형태로 수신되지 않은 데이터의 첫 번째 블록을 포함하며, 상기 블록카운트 필드(974)는 에러와 함께 수신되지 않거나 또는 에러와 함께 수신된 상기 스타트블록으로 시작하는 인접한 블록의 수를 포함한다. 도시하는 바와 같이, 파일들은 블록으로 이송된다. 파일데이터가 유용하게 또는 에러가 있는 것으로 평가되는 상기 레인지의 그래뉴래러티(granularity)는 상기 블록이다. 이리하여, ANAK 요구가 발행하는 데이터의 레인지는 하나 이상의 인접한 블록의 레인지이다. 주어진 파일에 대하여 다른 ANAK에서 데이터의 두 레인지가 합체되었을 때, 결정은 상기 두 레인지의 결합이 인접한 블록의 시퀀스를 형성할 것인지에 대하여 만들어진다. 만약 그렇다면, 상기 스타트블록과 블록카운트 필드는 상기 두 레인지의 결합으로부터 형성되는 이 인접한 레인지를 특정하는 값을 포함하도록 업데이트(update) 된다. 만약 상기 레인지의 결합이 하나의 인접한 시리즈가 아니라면, 하나의 ANAK 요구가 단순히 존재하는 ANAK 패킷의 상기 옵션확장 필드(960)에 추가될 수 있다.
도 27은 ACK 패킷을 위한 옵션확장 필드의 포맷을 나타낸다. 상기 옵션확장 필드는 엔드 필드(981), 타입 필드(982), 옵션길이 필드(983), 보존된 필드(984) 옵션확장 처리 필드(985), 버전 필드(986)를 포함한다. 상기 타입 필드는 ACK 요구에 상응하는 OPT_ACK 값을 포함한다. 상기 다른 필드(981, 983-986)는 옵션확장 필드(960)로서 하나의 ANAK 패킷에 대하여 비슷한 값을 갖는다. ACK 필드에 대한 상기 옵션확장 필드(980)는 또한 유저 식별자 필드(987), 프로그램 식별자(988), 프로그램 버전 필드(989)를 갖는다. 상기 유저 식별자 필드는 유일한 32비트 유저 식별자를 포함하며, 이는 상기 주컨트롤러(350)에 의하여 상기 클라이언트 노드(240)에 할당된 것이다. 상기 프로그램 식별자 필드(988)는 상기 클라이언트 노드(240)가 수신하는 것으로 긍정적으로 응답한 프로그램의 프로그램 식별자를 포함한다. 상기 프로그램 버전 필드(989)는 상기 클라이언트 노드(240)가 수신되는 것으로 긍정적으로 응답한 프로그램의 버전을 포함한다.
본 발명은 여기서 레퍼런스로서 예시적인 실시예에 따라 설명되었다. 많은 선택할 수 있는 실시예가 본 발명의 분야에서 통상의 지식을 갖은 자에 의하여 다음에 이어지는 클레임의 정신과 범위로부터 벗어남이 없이 고안될 수 있을 것이다.
본 발명은 하나의 소스(source)로부터 통신을 위하여 하나 이상의 목적지 또는 수신노드로 베스트-에포트 데이터 파일의 전송을 스케줄링하는 것에 관한 것이다. 본 발명의 실시예에서 베스트-에포트 데이터는 방송네트워크에서 디지털 오디오-비디오시그널과 함께 이송된다. 그러나 본 발명은 다른 타입의 네트워크에서도 적용될 수 있다.

Claims (25)

  1. (a) 소스포트 필드;
    (b) 목적지포트 필드;
    (c) 다음과 같은 값의 하나를 포함하는 옵션타입 필드
    (1) 패킷이 다른 패킷에서 초기 데이터 세그먼트의 수신에 실패한 것을 나타내는 비동기 부정응답 리스트 패킷인 것을 나타내는 ANAK 값, 또는
    (2) 패킷이 다른 패킷에서 초기 데이터의 수신을 응답하는 긍정적 응답 패킷인 것을 나타내는 ACK 값; 및
    (d) 어떤 특정 초기 데이터 패킷을 나타내지 않는 값을 포함하는 시퀀스 번호 필드를 포함하는 패킷.
  2. 제 1항에 있어서,
    상기 옵션타입 필드는 ANAK 값을 포함하고,
    상기 패킷은
    (e) 수신되지 않은 상기 초기 데이터의 데이터 워드의 레인지를 특정하는 하나 이상의 엔트리 시퀀스를 더 포함하는 패킷.
  3. 제 2항에 있어서,
    (f) 수신되지 않은 상기 초기 데이터의 전송을 위한 채널을 식별하는 채널식별자와,
    (g) 상기 채널 상으로 전송되고, 수신되지 않은 상기 초기 데이터를 포함하는 것으로 주장되는 프로그램을 식별하는 프로그램 식별자를 더 포함하는 패킷.
  4. 제 3항에 있어서,
    각 엔트리는
    (h) 상기 초기 데이터의 데이터 워드의 레인지가 수신되지 않은 파일을 위하여, 상기 채널 상으로 상기 프로그램 내에서 전송되는 상기 특정 파일을 나타내는 정보를 더 포함하는 패킷.
  5. 제 1항에 있어서,
    상기 옵션 타입 필드는 ACK 값을 포함하고,
    상기 패킷은
    (d) 수신된 초기 데이터를 전송하기 위한 채널을 식별하는 채널 식별자와,
    (e) 상기 채널 상으로 상기 수신된 초기 데이터를 포함하는 프로그램을 식별하는 프로그램 식별자와,
    (f) 상기 프로그램의 버전을 나타내는 프로그램 버전 값을 더 포함하는 패킷.
  6. 채널로부터 프로그램의 부분들을 수신하는 클라이언트 노드의 실패를 응답하기 위한 방법으로서, 각 프로그램은 하나 이상의 파일과 상기 파일의 사용방법을 특정하는 관련된 프로그램 정보의 그룹이며, 각 채널은 각 채널로부터 수신된 프로그램들이 명백하게 분리 가능하도록 프로그램을 수신할 수 있는 별개의 채널인, 상기 방법에 있어서,
    (a) 특정 채널로부터 프로그램의 하나 이상의 파일의 초기 데이터를 수신하기 위한 준비 단계;
    (b) 상기 초기 데이터의 데이터 워드의 복수의 레인지가 수신되지 않았음을 결정하는 단계;
    (c) 상기 데이터 워드의 복수의 레인지가 수신되지 않았음을 나타내는 단일 패킷을 생성하는 단계; 및
    (d) 데이터 워드의 복수의 레인지가 재전송되도록 할 수 있는 다른 노드에 리턴패스상으로 상기 하나의 패킷을 전송하는 단계를 포함하는 방법.
  7. 제 6항에 있어서,
    상기 단일 패킷은
    상기 소스로부터 상기 클라이언트 노드로의 포워드 패스 상에 있지 않은 적어도 하나의 노드를 포함하는 상기 초기 데이터 워드의 소스에 리턴패스상으로 전송되는 하나의 패킷인 방법.
  8. 제 6항에 있어서,
    (e) 상기 단일 패킷을 전송하기 전에, 리턴패스가 상기 단일 패킷을 전송하기 위하여 이용 가능하게 될 때까지 대기하는 단계; 및
    (f) 상기 리턴패스상으로 상기 단일 패킷을 전송하는 단계를 더 포함하는 방법.
  9. 제 6항에 있어서,
    (a) 상기 단일 패킷의 수신을 확인하는 확인패킷을 위하여 상기 단일 패킷을 전송한 후에 소정 시간을 대기하는 단계; 및
    (b) 만약 확인 패킷이 수신되지 않는다면, 상기 단일 패킷을 재전송하는 단계를 더 포함하는 방법.
  10. 제 9항에 있어서,
    (c) 상기 확인 패킷이 수신될 때까지 소정의 최대 시간만큼 스텝 (f)-(g)를 반복하는 단계를 더 포함하는 방법.
  11. 채널로부터 프로그램의 부분을 재전송하기 위한 방법으로서, 각 프로그램은 하나 이상의 파일과 상기 파일의 사용방법을 특정하는 관련된 프로그램 정보의 그룹이며, 각 채널은 각 채널로부터 수신된 프로그램들이 명백하게 분리 가능하도록 프로그램이 수신될 수 있는 별개의 채널인, 상기 방법에 있어서.
    (a) 하나 이상의 클라이언트 노드들과 소소 사이의 리턴패스상의 네트워크요소에서, 특정 채널 상으로 전송할 수 있는 프로그램의 한 또는 그 이상의 파일의 초기 데이터와 상기 프로그램의 하나 이상의 파일의 데이터 워드의 하나 이상의 수신을 부정적으로 응답하는 ANAK를 수신하는 단계;
    (b) 상기 수신된 패킷에 관련된 정보를 저장하는 단계;
    (c) 상기 ANAK 패킷에 대한 타이머를 시작하는 단계;
    (d) 상기 타이머의 만료 전에, 미리 수신된 ANAK 패킷의 데이터 워드의 레인지를 인터섹트한 데이터 워드의 하나 이상의 레인지의 수신을 부정적으로 응답하는 다른 ANAK 패킷이 수신된다면, 상기 네트워크 요소가 상기 다른 패킷과 미리 수신된 ANAK 패킷의 레이지를 합체하고, 선택적으로 상기 타이머를 재설정하는 단계; 및
    (e) 상기 타이머가 만료되면, 상기 네트워크 요소가 상기 합체된 레인지에서 초기 데이터의 모든 레인지를 재전송하도록 하는 단계를 포함하는 방법.
  12. 제 11항에 있어서,
    상기 네트워크 요소가 비동기로 표시된 로컬 리페어라면;
    (f) 상기 네트워크 요소는 상기 합체된 레인지의 서브레인지로 상기 네트워크 요소에 로컬로 저장된 초기 데이터를 상기 ANAK 패킷이 수신된 노드로 전송하는 단계를 더 포함하는 방법.
  13. 제 12항에 있어서,
    상기 네트워크 요소에 로컬로 저장되지 않은 상기 합체된 레인지의 초기 데이터의 각 서브-레인지에 대하여;
    (g) 상기 네트워크 요소는 상기 네트워크 요소에 저장되지 않은 상기 합체된 레인지의 초기 데이터의 하나 이상의 서브-레인지를 나타내는 ANAK 패킷을 형성하는 단계; 및
    (h) 상기 ANAK 패킷을 상기 초기 데이터의 소스의 패스상의 다른 노드에 전송하는 단계를 더 포함하는 방법.
  14. 제 11항에 있어서,
    상기 네트워크 요소가 비동기로 표시된 로컬 리페어가 아닌 경우;
    (f) 상기 네트워크 요소는 적어도 하나의 합체된 레인지를 나타내는 ANAK 패킷을 형성하는 단계; 및
    (g) 상기 ANAK 패킷을 상기 초기 데이터의 소스의 패스상의 다른 노드에 전송하는 단계를 더 포함하는 방법.
  15. 제 11항에 있어서,
    ANAK 패킷이 수신된 각 노드에 상기 각 ANAK 패킷의 수신을 확인하는 ANCF 패킷을 전송하는 단계를 더 포함하는 방법.
  16. 제 11항에 있어서,
    (g) 소정의 최대 시간까지 스텝(d)를 반복하는 단계를 더 포함하는 방법.
  17. 초기 데이터를 신뢰성 있게 전송하기 위한 방법에 있어서,
    (a) 상기 소스 노드로부터 상기 클라이언트 노드로의 포워드 패스 상으로 파일의 초기 데이터를 포함하는 다수의 패킷을 상기 소스 노드로부터 하나 이상의 상기 클라이언트 노드로 전송하는 단계;
    (b) 데이터 워드의 하나 이상의 레인지가 적어도 하나의 클라이언트에 의하여 수신되지 않았음을 나타내는 하나 이상의 부정적 응답 패킷을 수신하는 단계;
    (c) 각 레인지에서 상기 하나 이상의 패킷에 의하여 표시되는 초기 데이터를 포함하는 다수의 패킷의 각각을 멀티캐스트 재전송하는 단계를 포함하는 방법.
  18. 제 17항에 있어서,
    상기 부정적 응답 패킷들 중 하나는 인접하지 않는 데이터 워드의 복수의 레인지를 특정하는 방법.
  19. 제 17항에 있어서,
    상기 부정적 응답 패킷들 중 하나는 적어도 하나의 노드를 포함하는 리턴패스를 통하여 수신되며, 또한 상기 하나의 부정적 응답 패킷이 전송된 상기 클라이언트 노드의 포워드 패스 상으로는 수신되지 않는 방법.
  20. 제 17항에 있어서,
    (d) 각 수신된 부정적 응답 패킷에 포함된 적어도 하나의 프로그램 식별자, 파일번호 또는 파일버전 값을 확인하는 단계; 및
    (e) 상기 수신된 부정적 인정 패킷의 확인된 것들에서 식별된 레인지에 대한 초기 데이터를 단지 멀티캐스트 재전송하는 단계를 포함하는 방법.
  21. 제 17항에 있어서,
    (d) 다음의 사건들: 상기 초기 데이터의 채널이 삭제되었거나, 상기 초기 데이터의 프로그램이 삭제되었거나, 또는 상기 초기 데이터가 최초로 전송된 채널의 채널 식별자가 재할당된 사건들: 중 하나가 일어나지 않았음을 확인하는 단계; 및
    (e) 상기 확인이 성공적이라면 상기 초기 데이터를 단지 멀티캐스트 재전송하는 단계를 포함하는 방법.
  22. 소스 노드로부터 하나 이상의 클라이언트 노드로 정보를 통신하기 위한 방법에 있어서,
    (a) 소스포트 필드;
    (b) 목적지포트 필드;
    (c) 다음과 같은 값의 하나를 포함하는 옵션타입 필드:
    (1) 패킷이 다른 패킷에서 초기 데이터 세그먼트의 수신에 실패한 것을 나타내는 비동기 부정응답 리스트 패킷인 것을 나타내는 ANAK 값, 또는
    (2) 패킷이 다른 패킷에서 초기 데이터의 수신을 응답하는 긍정적 응답 패킷인 것을 나타내는 ACK 값; 및
    (d) 어떤 특정 초기 데이터 패킷을 나타내지 않는 값을 포함하는 시퀀스 번호 필드;를 포함하는 패킷을 제공하는 단계를 포함하는 방법.
  23. 제 22항에 있어서,
    상기 패킷은 상기 초기 데이터의 의도된 수신자의 하나인 클라이언트 노드에 위치되는 방법.
  24. 제 22항에 있어서,
    상기 패킷은 상기 초기 데이터를 수신할 클라이언트 노드와 상기 초기 데이터를 전송한 소스 노드 사이의 네트워크 요소 노드에 위치되는 방법.
  25. 제 22항에 있어서,
    상기 패킷은 상기 초기 데이터를 전송한 소스 노드에 위치되는 방법.
KR10-2004-7003588A 2001-09-12 2002-09-09 베스트-에포트 데이터의 스케줄링된 스트림밍을 위한 방법및 장치 KR20040035759A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US95092701A 2001-09-12 2001-09-12
US09/950,927 2001-09-12
US10/147,010 2002-05-15
US10/147,010 US8880709B2 (en) 2001-09-12 2002-05-15 Method and system for scheduled streaming of best effort data
PCT/US2002/028683 WO2003024036A1 (en) 2001-09-12 2002-09-09 Method and system for scheduled streaming of best effort data

Publications (1)

Publication Number Publication Date
KR20040035759A true KR20040035759A (ko) 2004-04-29

Family

ID=26844499

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2004-7003588A KR20040035759A (ko) 2001-09-12 2002-09-09 베스트-에포트 데이터의 스케줄링된 스트림밍을 위한 방법및 장치

Country Status (6)

Country Link
US (5) US8880709B2 (ko)
EP (1) EP1425889A4 (ko)
KR (1) KR20040035759A (ko)
CN (1) CN1554172A (ko)
CA (1) CA2458065C (ko)
WO (1) WO2003024036A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100739489B1 (ko) * 2004-12-13 2007-07-13 한국전자통신연구원 서버와 클라이언트의 사이의 네트워크 경로에 속하는라우터에 접속하는 대역폭 브로커 및 차등화 서비스 제공방법

Families Citing this family (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8219620B2 (en) 2001-02-20 2012-07-10 Mcafee, Inc. Unwanted e-mail filtering system including voting feedback
US6801964B1 (en) * 2001-10-25 2004-10-05 Novell, Inc. Methods and systems to fast fill media players
JP3912091B2 (ja) * 2001-12-04 2007-05-09 ソニー株式会社 データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
US7194621B1 (en) * 2002-02-28 2007-03-20 Cisco Technology, Inc. Method and apparatus for encrypting data communicated between a client and a server that use an unencrypted data transfer protocol
US7092972B2 (en) * 2002-05-09 2006-08-15 Sun Microsystems, Inc. Delta transfers in distributed file systems
US7296084B2 (en) * 2002-06-11 2007-11-13 Hewlett-Packard Development Company, L.P. Data management system and method
KR100537499B1 (ko) * 2002-07-26 2005-12-19 삼성전자주식회사 전송제어 파라미터 생성방법 및 프레임 특성에 따른선택적 자동 재전송 방법
US20040125754A1 (en) * 2002-08-01 2004-07-01 General Instrument Corporation Method and apparatus for integrating non-IP and IP traffic on a home network
US7444336B2 (en) * 2002-12-11 2008-10-28 Broadcom Corporation Portable media processing unit in a media exchange network
CA2510709A1 (en) * 2002-12-18 2004-07-01 Nokia Corporation Method of announcing sessions
US7355974B2 (en) * 2003-01-27 2008-04-08 International Business Machines Corporation Method for forwarding data packets by a router
US7315695B2 (en) * 2003-02-03 2008-01-01 Nortel Networks Ltd. Method and apparatus for defining optical broadband services on an optical communication network
KR100514818B1 (ko) * 2003-05-01 2005-09-14 주식회사 알티캐스트 리턴패스 관리시스템 및 방법
US20050044250A1 (en) * 2003-07-30 2005-02-24 Gay Lance Jeffrey File transfer system
US7782894B2 (en) 2003-09-12 2010-08-24 Nokia Corporation Ultra-wideband/low power communication having a dedicated removable memory module for fast data downloads—apparatus, systems and methods
US7499674B2 (en) 2003-09-12 2009-03-03 Nokia Corporation Method and system for repeat request in hybrid ultra wideband-bluetooth radio
US20050213599A1 (en) * 2003-10-30 2005-09-29 Clawson Michael G Distributed LAN bridging system and process
US8060743B2 (en) * 2003-11-14 2011-11-15 Certicom Corp. Cryptographic method and apparatus
US7472200B1 (en) * 2003-12-03 2008-12-30 Cisco Technology, Inc. Arrangement in a multi-homed transport endpoint for selecting a source address based on source-destination address pair metrics
US7594254B2 (en) * 2004-03-22 2009-09-22 Cox Communications, Inc System and method for transmitting files from a sender to a receiver in a television distribution network
CN1674576B (zh) * 2004-06-03 2010-04-28 华为技术有限公司 一种网络设备间传送策略信息的方法
US7697893B2 (en) 2004-06-18 2010-04-13 Nokia Corporation Techniques for ad-hoc mesh networking
US8249114B2 (en) * 2004-08-10 2012-08-21 Arris Solutions, Inc. Method and device for receiving and providing programs
US7558481B2 (en) * 2005-01-24 2009-07-07 Tellabs Operations, Inc. Method for optimizing enhanced DWDM networks
KR100704675B1 (ko) * 2005-03-09 2007-04-06 한국전자통신연구원 무선 휴대 인터넷 시스템의 인증 방법 및 관련 키 생성방법
US7979561B2 (en) * 2005-03-10 2011-07-12 Qualcomm Incorporated Method of multiplexing over an error-prone wireless broadcast channel
DE602005022118D1 (de) * 2005-03-24 2010-08-12 Ericsson Telefon Ab L M Verfahren und anordnung in einem kommunikationssystem zum abliefern von nachrichten an einen empfänger
US20060271948A1 (en) * 2005-05-11 2006-11-30 Ran Oz Method and Device for Receiving and Providing Programs
DE102005040889A1 (de) * 2005-08-29 2007-03-15 Siemens Ag Verfahren und Anordnung zum sicheren Übertragen von Daten in einem ein Mehrsprungverfahren nutzenden Kommunikationssystem
US8139768B2 (en) * 2006-01-19 2012-03-20 Microsoft Corporation Encrypting content in a tuner device and analyzing content protection policy
US8601160B1 (en) * 2006-02-09 2013-12-03 Mcafee, Inc. System, method and computer program product for gathering information relating to electronic content utilizing a DNS server
WO2007115991A1 (en) * 2006-04-11 2007-10-18 Thomson Licensing Data reception method, repair method and corresponding terminal
WO2008011918A1 (en) * 2006-07-28 2008-01-31 Telefonaktiebolaget Lm Ericsson (Publ) Methods, mobile network node and mobile terminal for reducing the number of unsuccessful service change requests performed by the mobile terminal
US20080080371A1 (en) * 2006-09-28 2008-04-03 Chunmei Liu Macro-spatial network multiplexing
US7657611B2 (en) * 2006-10-30 2010-02-02 Google Inc. Content request optimization
US8775684B1 (en) * 2006-10-30 2014-07-08 Google Inc. Content request optimization
WO2008061042A2 (en) * 2006-11-10 2008-05-22 Pelago, Inc. Managing aggregation and sending of communications
US8856267B2 (en) * 2006-11-16 2014-10-07 Rangecast Technologies, Llc Network audio directory server and method
US7680993B2 (en) 2006-12-21 2010-03-16 Tandberg Television, Inc. Local digital asset storage management technique
US8392593B1 (en) * 2007-01-26 2013-03-05 Juniper Networks, Inc. Multiple control channels for multicast replication in a network
JP2008193510A (ja) * 2007-02-06 2008-08-21 Canon Inc 映像送信装置、映像受信装置、及び映像伝送システム
CN101272519B (zh) 2007-03-21 2012-09-19 上海贝尔股份有限公司 生成协议数据单元的方法及其设备和基站
US8125988B1 (en) 2007-06-04 2012-02-28 Rangecast Technologies Llc Network audio terminal and method
US8898669B2 (en) * 2007-07-30 2014-11-25 International Business Machines Corporation Methods and systems for coordinated transactions
US8959516B2 (en) * 2007-07-30 2015-02-17 International Business Machines Corporation Methods and systems for coordinated financial transactions in distributed and parallel environments
US8244102B2 (en) 2007-10-19 2012-08-14 Internationa Business Machines Corporation Detecting and processing corrupted video recordings
US8917646B2 (en) * 2007-10-19 2014-12-23 International Business Machines Corporation Detecting and processing corrupted video recordings
JP2009182458A (ja) * 2008-01-29 2009-08-13 Sony Corp 通信装置、通信システム、通信方法及びプログラム
US8483112B2 (en) * 2008-02-27 2013-07-09 Robert Bosch Gmbh Method for data collection and supervision in wireless node networks
US8437433B2 (en) * 2008-03-28 2013-05-07 Qualcomm Incorporated Zeroing-out LLRs using demod-bitmap to improve performance of modem decoder
US8737281B2 (en) * 2008-06-18 2014-05-27 Thomson Licensing Apparatus for multicast transmissions in wireless local area networks
CN102067634B (zh) * 2008-06-18 2014-08-20 汤姆森特许公司 用于无线局域网中多播传送的基于竞争的介质预约方法和装置
WO2009157892A1 (en) * 2008-06-23 2009-12-30 Thomson Licensing Collision mitigation for multicast transmission in wireless local area networks
US8462686B2 (en) * 2008-06-23 2013-06-11 Thomson Licensing Apparatus for collision mitigation of multicast transmissions in wireless networks
JP5317235B2 (ja) * 2008-06-26 2013-10-16 トムソン ライセンシング 無線ローカル・エリア・ネットワークにおいてマルチキャスト・データの確認応答および再伝送を行う方法および装置
RU2478259C2 (ru) * 2008-06-26 2013-03-27 Томсон Лайсенсинг Устройство для запроса подтверждения и передачи подтверждения групповых данных в беспроводных локальных сетях
JP5108662B2 (ja) * 2008-07-07 2012-12-26 株式会社森精機製作所 加工プログラム処理装置
US8233530B2 (en) * 2008-10-28 2012-07-31 International Business Machines Corporation Video scene matching on return from virtual rendering in a consumer digital video recording device
US20100104258A1 (en) * 2008-10-28 2010-04-29 International Business Machines Corporation User-specified event-based remote triggering of a consumer digital video recording device
US8218939B2 (en) * 2009-01-14 2012-07-10 International Business Machines Corporation Intelligent synchronization of portable video devices
US8195035B2 (en) * 2009-02-06 2012-06-05 International Business Machines Corporation Link-based DVR scheduling with conflict resolution
US9245583B2 (en) * 2009-02-06 2016-01-26 International Business Machines Corporation Group control and messaging for digital video playback sessions
US8428421B2 (en) * 2009-02-06 2013-04-23 International Business Machines Corporation Playback of damaged video media using downloaded content
US8412802B2 (en) * 2009-02-11 2013-04-02 American Express Travel Related Services Company, Inc. System and method to optimize data communication in a computational network
US8391680B2 (en) * 2009-03-20 2013-03-05 International Business Machines Corporation Genre-based video quota management
US8429287B2 (en) * 2009-04-29 2013-04-23 Rangecast Technologies, Llc Network audio distribution system and method
KR20110064153A (ko) * 2009-12-07 2011-06-15 삼성전자주식회사 금속 유기 전구체, 이의 제조방법, 및 이를 이용한 전도성 금속막 또는 패턴 형성방법
US8730301B2 (en) 2010-03-12 2014-05-20 Sony Corporation Service linkage to caption disparity data transport
US8306858B2 (en) 2010-07-14 2012-11-06 Google Inc. Consolidated content item request for multiple environments
US9569398B2 (en) 2010-09-28 2017-02-14 International Business Machines Corporation Routing data communications packets in a parallel computer
US8909716B2 (en) 2010-09-28 2014-12-09 International Business Machines Corporation Administering truncated receive functions in a parallel messaging interface
US8792341B2 (en) * 2010-10-27 2014-07-29 Futurewei Technologies, Inc. System and method for machine-to-machine application based congestion control
US9052974B2 (en) 2010-11-05 2015-06-09 International Business Machines Corporation Fencing data transfers in a parallel active messaging interface of a parallel computer
US9075759B2 (en) 2010-11-05 2015-07-07 International Business Machines Corporation Fencing network direct memory access data transfers in a parallel active messaging interface of a parallel computer
US8527672B2 (en) 2010-11-05 2013-09-03 International Business Machines Corporation Fencing direct memory access data transfers in a parallel active messaging interface of a parallel computer
US9069631B2 (en) 2010-11-05 2015-06-30 International Business Machines Corporation Fencing data transfers in a parallel active messaging interface of a parallel computer
US8949453B2 (en) 2010-11-30 2015-02-03 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8490112B2 (en) 2010-12-03 2013-07-16 International Business Machines Corporation Data communications for a collective operation in a parallel active messaging interface of a parallel computer
US8484658B2 (en) 2010-12-03 2013-07-09 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8572629B2 (en) * 2010-12-09 2013-10-29 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8650262B2 (en) * 2010-12-09 2014-02-11 International Business Machines Corporation Endpoint-based parallel data processing in a parallel active messaging interface of a parallel computer
US20120166405A1 (en) * 2010-12-28 2012-06-28 Christoph Barbian Changeability And Transport Release Check Framework
US8732229B2 (en) 2011-01-06 2014-05-20 International Business Machines Corporation Completion processing for data communications instructions
US8775531B2 (en) 2011-01-06 2014-07-08 International Business Machines Corporation Completion processing for data communications instructions
US8892850B2 (en) 2011-01-17 2014-11-18 International Business Machines Corporation Endpoint-based parallel data processing with non-blocking collective instructions in a parallel active messaging interface of a parallel computer
US8584141B2 (en) * 2011-01-17 2013-11-12 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
JP5712649B2 (ja) 2011-02-07 2015-05-07 富士通株式会社 レーダ装置及び目標探知方法
US8825983B2 (en) 2011-02-15 2014-09-02 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US20120207075A1 (en) * 2011-02-16 2012-08-16 Nagaraj Thadi M Multicast data delivery mechanism using packet bundling or file delivery framework
US8849225B1 (en) 2011-05-19 2014-09-30 Rangecast Technologies, Llc Channel monitoring with plural frequency agile receivers
US8495654B2 (en) 2011-11-07 2013-07-23 International Business Machines Corporation Intranode data communications in a parallel computer
US8528004B2 (en) 2011-11-07 2013-09-03 International Business Machines Corporation Internode data communications in a parallel computer
US8732725B2 (en) 2011-11-09 2014-05-20 International Business Machines Corporation Managing internode data communications for an uninitialized process in a parallel computer
US8639672B2 (en) 2012-03-27 2014-01-28 International Business Machines Corporation Multiplex classification for tabular data compression
US9020469B2 (en) 2013-06-04 2015-04-28 Rangecast Technologies, Llc Network audio distribution system and method
US9998556B2 (en) 2013-09-11 2018-06-12 Oath Inc. Unified end user notification platform
GB2520268A (en) * 2013-11-13 2015-05-20 Ibm Injecting lost packets and protocol errors in a simulation environment
US9336071B2 (en) * 2014-01-06 2016-05-10 International Business Machines Corporation Administering incomplete data communications messages in a parallel computer
JP6459180B2 (ja) * 2014-02-10 2019-01-30 富士ゼロックス株式会社 障害予測システム、障害予測装置、ジョブ実行装置およびプログラム
EP3114853A1 (en) * 2014-03-05 2017-01-11 Thomson Licensing Apparatus and method for receiving a signal
US9606245B1 (en) 2015-03-24 2017-03-28 The Research Foundation For The State University Of New York Autonomous gamma, X-ray, and particle detector
US10461837B2 (en) 2015-03-25 2019-10-29 Sony Corporation Method and system for allocating resources for relaying channels in cellular networks
EP3275257B1 (en) 2015-03-26 2020-11-25 Sony Corporation Scheduling in cellular networks
US9590806B2 (en) * 2015-05-27 2017-03-07 Nvidia Corporation Secure provisioning of semiconductor chips in untrusted manufacturing factories
US9384203B1 (en) * 2015-06-09 2016-07-05 Palantir Technologies Inc. Systems and methods for indexing and aggregating data records
US10996936B2 (en) * 2017-06-27 2021-05-04 Intel Corporation Techniques for distributing code to components of a computing system
US10826968B1 (en) 2017-11-03 2020-11-03 EMC IP Holding Company LLC Controlled distribution of files based on designated machine feed type
CN108400841B (zh) * 2018-02-08 2021-07-20 福建星网智慧软件有限公司 一种在通话中实时传输轨迹信息的方法及系统
US11468097B2 (en) * 2018-11-26 2022-10-11 IntellixAI, Inc. Virtual research platform
CN113392146B (zh) * 2021-04-29 2024-02-23 上海万得宏汇信息技术有限公司 一种高效的数据合并方法
US20220382534A1 (en) * 2021-06-01 2022-12-01 Samsung Electronics Co., Ltd. Method for updating application and electronic device of the same
CN114884881B (zh) * 2022-05-12 2023-07-07 福建天晴在线互动科技有限公司 一种数据压缩传输方法及终端

Family Cites Families (157)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5026245B1 (ko) 1970-06-29 1975-08-29
US4920534A (en) 1986-02-28 1990-04-24 At&T Bell Laboratories System for controllably eliminating bits from packet information field based on indicator in header and amount of data in packet buffer
US4748618A (en) 1986-05-21 1988-05-31 Bell Communications Research, Inc. Telecommunications interface
JP2619383B2 (ja) 1987-03-20 1997-06-11 株式会社日立製作所 座標入力装置
IT1228109B (it) 1988-12-21 1991-05-28 Telettra Spa M Sistema e dispositivo di premultiplazione a pacchetto per trasmissione di piu' flussi dati generati da un unico algoritmo
GB9012538D0 (en) 1990-06-05 1990-07-25 Philips Nv Coding of video signals
US5568403A (en) 1994-08-19 1996-10-22 Thomson Consumer Electronics, Inc. Audio/video/data component system bus
US5457780A (en) 1991-04-17 1995-10-10 Shaw; Venson M. System for producing a video-instruction set utilizing a real-time frame differential bit map and microblock subimages
US5247059A (en) * 1992-01-24 1993-09-21 Cargill, Incorporated Continuous process for the manufacture of a purified lactide from esters of lactic acid
US5289276A (en) 1992-06-19 1994-02-22 General Electric Company Method and apparatus for conveying compressed video data over a noisy communication channel
DE59209931D1 (de) 1992-06-26 2001-12-20 Siemens Ag Verfahren zur Behandlung der im Kopfteil von im asynchronen Transfermodus übertragenen Nachrichtenzellen enthaltenden Informationen
US5287182A (en) 1992-07-02 1994-02-15 At&T Bell Laboratories Timing recovery for variable bit-rate video on asynchronous transfer mode (ATM) networks
US5287178A (en) 1992-07-06 1994-02-15 General Electric Company Reset control network for a video signal encoder
WO1994001964A1 (en) 1992-07-08 1994-01-20 Bell Atlantic Network Services, Inc. Media server for supplying video and multi-media data over the public telephone switched network
US5231486A (en) 1992-07-27 1993-07-27 General Electric Company Data separation processing in a dual channel digital high definition television system
US5418782A (en) 1992-10-30 1995-05-23 Scientific-Atlanta, Inc. Methods and apparatus for providing virtual service selection in a multi-service communications system
US5400401A (en) 1992-10-30 1995-03-21 Scientific Atlanta, Inc. System and method for transmitting a plurality of digital services
US5491516A (en) 1993-01-14 1996-02-13 Rca Thomson Licensing Corporation Field elimination apparatus for a video compression/decompression system
US5333135A (en) 1993-02-01 1994-07-26 North American Philips Corporation Identification of a data stream transmitted as a sequence of packets
US5396497A (en) 1993-02-26 1995-03-07 Sony Corporation Synchronization of audio/video information
US5361097A (en) 1993-04-02 1994-11-01 Rca Thomson Licensing Corporation Priority processing of encoded video signal including insertion of datastream null words during priority analysis intervals
US5410355A (en) 1993-04-02 1995-04-25 Rca Thomson Licensing Corporation Video signal processor including input codeword buffer for providing stored codewords to codeword priority analysis circuit
US5396492A (en) 1993-04-28 1995-03-07 At&T Corp. Method and apparatus for adaptive clock recovery
US5486864A (en) 1993-05-13 1996-01-23 Rca Thomson Licensing Corporation Differential time code method and apparatus as for a compressed video signal
US5381181A (en) 1993-05-13 1995-01-10 Thomson Consumer Electronics, Inc. Clock recovery apparatus as for a compressed video signal
EP0701761A1 (en) 1993-06-03 1996-03-20 Target Technologies, Inc. Videoconferencing system
US5510905A (en) * 1993-09-28 1996-04-23 Birk; Yitzhak Video storage server using track-pairing
US5430485A (en) 1993-09-30 1995-07-04 Thomson Consumer Electronics, Inc. Audio/video synchronization in a digital transmission system
US5467139A (en) 1993-09-30 1995-11-14 Thomson Consumer Electronics, Inc. Muting apparatus for a compressed audio/video signal receiver
US5802287A (en) 1993-10-20 1998-09-01 Lsi Logic Corporation Single chip universal protocol multi-function ATM network interface
US5473601A (en) 1993-10-21 1995-12-05 Hughes Aircraft Company Frequency reuse technique for a high data rate satellite communication system
EP0732028B1 (en) 1993-11-30 2002-02-20 General Electric Company Data word indicator in a system for assembling transport data packets
US5784110A (en) 1993-11-30 1998-07-21 General Electric Company Data processor for assembling transport data packets
GB9400101D0 (en) 1994-01-05 1994-03-02 Thomson Consumer Electronics Consumer interface for a satellite television system
US5457701A (en) 1994-01-06 1995-10-10 Scientific-Atlanta, Inc. Method for indicating packet errors in a packet-based multi-hop communications system
US5566208A (en) 1994-03-17 1996-10-15 Philips Electronics North America Corp. Encoder buffer having an effective size which varies automatically with the channel bit-rate
US5420866A (en) 1994-03-29 1995-05-30 Scientific-Atlanta, Inc. Methods for providing conditional access information to decoders in a packet-based multiplexed communications system
US5566174A (en) 1994-04-08 1996-10-15 Philips Electronics North America Corporation MPEG information signal conversion system
US5475688A (en) 1994-04-22 1995-12-12 Thomson Consumer Electronics, Inc. Media error code generation as for a video inverse transport processor
US5475754A (en) 1994-04-22 1995-12-12 Thomson Consumer Electronics, Inc. Packet video signal inverse transport processor memory address circuitry
US5459789A (en) 1994-04-22 1995-10-17 Thomson Consumer Electronics Packet TV program component detector
US5619501A (en) 1994-04-22 1997-04-08 Thomson Consumer Electronics, Inc. Conditional access filter as for a packet video signal inverse transport system
US5521979A (en) 1994-04-22 1996-05-28 Thomson Consumer Electronics, Inc. Packet video signal inverse transport system
US5448568A (en) 1994-04-28 1995-09-05 Thomson Consumer Electronics, Inc. System of transmitting an interactive TV signal
US5563648A (en) 1994-04-28 1996-10-08 Thomson Consumer Electronics, Inc. Method for controlling execution of an audio video interactive program
US5539920A (en) 1994-04-28 1996-07-23 Thomson Consumer Electronics, Inc. Method and apparatus for processing an audio video interactive signal
US5548532A (en) 1994-04-28 1996-08-20 Thomson Consumer Electronics, Inc. Apparatus and method for formulating an interactive TV signal
KR970703669A (ko) * 1994-05-19 1997-07-03 마이클 에버쉐드 화일전송 메카니즘을 구비한 컴퓨터 및 화일전송 방법(file transfer mechanism)
US5570335A (en) 1994-05-23 1996-10-29 Olympus Optical Co., Ltd. Reproducing waveform correction circuit for optical information recording/reproducing system
US5473609A (en) 1994-05-26 1995-12-05 Thomson Consumer Electronics, Inc. Method and apparatus for processing a conditional access program guide as for a satellite TV service
EP0765560A1 (en) 1994-06-08 1997-04-02 Hughes Aircraft Company Apparatus and method for hybrid network access
US5489947A (en) 1994-06-17 1996-02-06 Thomson Consumer Electronics, Inc. On screen display arrangement for a digital video signal processing system
GB9414446D0 (en) 1994-07-18 1994-09-07 Thomson Consumer Electronics Method and apparatus for controlling updates of extended data services (eds) data
US5555441A (en) 1994-08-02 1996-09-10 Interim Design Inc. Interactive audiovisual distribution system
US5603058A (en) 1994-09-08 1997-02-11 International Business Machines Corporation Video optimized media streamer having communication nodes received digital data from storage node and transmitted said data to adapters for generating isochronous digital data streams
US5559999A (en) 1994-09-09 1996-09-24 Lsi Logic Corporation MPEG decoding system including tag list for associating presentation time stamps with encoded data units
US5652627A (en) 1994-09-27 1997-07-29 Lucent Technologies Inc. System and method for reducing jitter in a packet-based transmission network
JP3575100B2 (ja) 1994-11-14 2004-10-06 ソニー株式会社 データ送信/受信装置及び方法並びにデータ記録/再生装置及び方法
US5510845A (en) 1994-12-23 1996-04-23 Samsung Electronics Co., Ltd. Receivers for digital signals buried within the trace and retrace intervals of NTSC television signals
US5517250A (en) 1995-02-28 1996-05-14 General Instrument Corporation Of Delaware Acquisition of desired data from a packetized data stream and synchronization thereto
US5588025A (en) 1995-03-15 1996-12-24 David Sarnoff Research Center, Inc. Single oscillator compressed digital information receiver
US5544161A (en) 1995-03-28 1996-08-06 Bell Atlantic Network Services, Inc. ATM packet demultiplexer for use in full service network having distributed architecture
US5650825A (en) 1995-03-31 1997-07-22 Matsushita Electric Corporation Of America Method and apparatus for sending private data instead of stuffing bits in an MPEG bit stream
US5535209A (en) 1995-04-10 1996-07-09 Digital Equipment Corporation Method and apparatus for transporting timed program data using single transport schedule
US5561791A (en) 1995-04-10 1996-10-01 Digital Equipment Corporation Method and apparatus for conditioning timed program independent of transport timing
US5675732A (en) 1995-05-08 1997-10-07 Lucent Technologies Inc. Dynamic channel assignment for TCP/IP data transmitted via cable television channels by managing the channels as a single sub network
FI98024C (fi) 1995-05-11 1997-03-25 Nokia Telecommunications Oy Menetelmä ja laitteisto tiedostopohjaisen multimedia- ja hypermedia-palvelun välittämiseksi liikkuvalle vastaanottajalle
US5621463A (en) 1995-05-16 1997-04-15 Thomson Multimedia S.A. Easily expandable transport stream encoder
US5574505A (en) 1995-05-16 1996-11-12 Thomson Multimedia S.A. Method and apparatus for operating a transport stream encoder to produce a stream of packets carrying data representing a plurality of component signals
US5978542A (en) 1995-06-07 1999-11-02 Industrial Technology Research Institute VTR tape format for compressed digital video using overlapped areas for forward and reverse high speed playback
US5691986A (en) 1995-06-07 1997-11-25 Hitachi America, Ltd. Methods and apparatus for the editing and insertion of data into an encoded bitstream
US5852606A (en) * 1995-07-12 1998-12-22 Bay Networks, Inc. Method and apparatus for transmitting cells across an ATM switch bus
US5598415A (en) 1995-08-04 1997-01-28 General Instrument Corporation Of Delaware Transmission of high rate isochronous data in MPEG-2 data streams
US5742623A (en) 1995-08-04 1998-04-21 General Instrument Corporation Of Delaware Error detection and recovery for high rate isochronous data in MPEG-2 data streams
US5579317A (en) 1995-08-15 1996-11-26 Lsi Logic Corporation Packet error propagation for MPEG transport demultiplexers
BR9610270A (pt) 1995-08-16 1999-07-06 Starguide Digital Networks Inc Alocação dinâmica de largura de faixa para transmissão de sinais de audio e um sinal de vídeo
US5664091A (en) 1995-08-31 1997-09-02 Ncr Corporation Method and system for a voiding unnecessary retransmissions using a selective rejection data link protocol
US5790543A (en) 1995-09-25 1998-08-04 Bell Atlantic Network Services, Inc. Apparatus and method for correcting jitter in data packets
JPH09139937A (ja) 1995-11-14 1997-05-27 Fujitsu Ltd 動画ストリーム変換装置
US5877812A (en) 1995-11-21 1999-03-02 Imedia Corporation Method and apparatus for increasing channel utilization for digital video transmission
US5956088A (en) 1995-11-21 1999-09-21 Imedia Corporation Method and apparatus for modifying encoded digital video for improved channel utilization
US5703877A (en) 1995-11-22 1997-12-30 General Instrument Corporation Of Delaware Acquisition and error recovery of audio data carried in a packetized data stream
US6044396A (en) 1995-12-14 2000-03-28 Time Warner Cable, A Division Of Time Warner Entertainment Company, L.P. Method and apparatus for utilizing the available bit rate in a constrained variable bit rate channel
US5640388A (en) 1995-12-21 1997-06-17 Scientific-Atlanta, Inc. Method and apparatus for removing jitter and correcting timestamps in a packet stream
US5835493A (en) 1996-01-02 1998-11-10 Divicom, Inc. MPEG transport stream remultiplexer
EP0786880B1 (en) * 1996-01-23 2006-09-20 Ntt Mobile Communications Network Inc. Communication system and transmission station with error detection and retransmission
US6021433A (en) 1996-01-26 2000-02-01 Wireless Internet, Inc. System and method for transmission of data
US5754783A (en) 1996-02-01 1998-05-19 Digital Equipment Corporation Apparatus and method for interleaving timed program data with secondary data
US5742599A (en) 1996-02-26 1998-04-21 Apple Computer, Inc. Method and system for supporting constant bit rate encoded MPEG-2 transport over local ATM networks
US5914962A (en) 1996-06-27 1999-06-22 Zenith Electronics Corporation MPEG transport mux for independently clocked transport streams
US6025485A (en) 1997-02-14 2000-02-15 Arcaris, Inc. Methods and compositions for peptide libraries displayed on light-emitting scaffolds
US5905732A (en) 1996-08-27 1999-05-18 Zenith Electronics Corporation PCR restamper
US5917830A (en) 1996-10-18 1999-06-29 General Instrument Corporation Splicing compressed packetized digital video streams
US5812529A (en) 1996-11-12 1998-09-22 Lanquest Group Method and apparatus for network assessment
US6163316A (en) 1997-01-03 2000-12-19 Texas Instruments Incorporated Electronic programming system and method
US6078958A (en) 1997-01-31 2000-06-20 Hughes Electronics Corporation System for allocating available bandwidth of a concentrated media output
US6058109A (en) 1997-02-04 2000-05-02 The Kohl Group, Inc. Combined uniform rate and burst rate transmission system
KR100223298B1 (ko) 1997-02-12 1999-10-15 서평원 광대역 종합 정보 통신망의 터미널 정합 장치
US6052384A (en) 1997-03-21 2000-04-18 Scientific-Atlanta, Inc. Using a receiver model to multiplex variable-rate bit streams having timing constraints
US5946318A (en) 1997-03-21 1999-08-31 International Business Machines Corporation Method and apparatus for processing and packetizing data from a data stream
US5991912A (en) 1997-05-15 1999-11-23 Next Level Communications Digital video transport error handling in cell based communications systems
US6289262B1 (en) * 1997-07-15 2001-09-11 Silverbrook Research Pty Ltd System for high volume printing of optical storage cards using ink dots
US6205473B1 (en) 1997-10-03 2001-03-20 Helius Development Corporation Method and system for asymmetric satellite communications for local area networks
US6553002B1 (en) 1997-08-29 2003-04-22 Ascend Communications, Inc. Apparatus and method for routing data packets through a communications network
US6247059B1 (en) 1997-09-30 2001-06-12 Compaq Computer Company Transaction state broadcast method using a two-stage multicast in a multiple processor cluster
US6518986B1 (en) 1997-10-17 2003-02-11 Sony Corporation Method and apparatus for providing an on-screen guide for a multiple channel broadcasting system
JPH11145922A (ja) 1997-11-13 1999-05-28 Sony Corp データ多重化装置、データ多重化方法及びデータ多重化システム
US5999179A (en) 1997-11-17 1999-12-07 Fujitsu Limited Platform independent computer network management client
US6151636A (en) 1997-12-12 2000-11-21 3Com Corporation Data and media communication through a lossy channel using signal conversion
US6339595B1 (en) * 1997-12-23 2002-01-15 Cisco Technology, Inc. Peer-model support for virtual private networks with potentially overlapping addresses
US6289464B1 (en) 1998-01-07 2001-09-11 Microsoft Corporation Receiving wireless information on a mobile device with reduced power consumption
US6351471B1 (en) 1998-01-14 2002-02-26 Skystream Networks Inc. Brandwidth optimization of video program bearing transport streams
FI114132B (fi) * 1998-01-28 2004-08-13 Nokia Corp Tiedonsiirron laatutason tukeminen langattomassa tiedonsiirrossa
JP3609599B2 (ja) * 1998-01-30 2005-01-12 富士通株式会社 ノード代理システム、ノード監視システム、それらの方法、及び記録媒体
US6226301B1 (en) * 1998-02-19 2001-05-01 Nokia Mobile Phones Ltd Method and apparatus for segmentation and assembly of data frames for retransmission in a telecommunications system
JP3657424B2 (ja) 1998-03-20 2005-06-08 松下電器産業株式会社 番組情報を放送するセンター装置と端末装置
US6240105B1 (en) * 1998-03-30 2001-05-29 International Business Machines Corporation Video server streaming synchronization
FI110987B (fi) * 1998-03-31 2003-04-30 Nokia Corp Menetelmä tiedonsiirtovirtausten kytkemiseksi
US6157955A (en) 1998-06-15 2000-12-05 Intel Corporation Packet processing system including a policy engine having a classification unit
US6112323A (en) 1998-06-29 2000-08-29 Microsoft Corporation Method and computer program product for efficiently and reliably sending small data messages from a sending system to a large number of receiving systems
US6389471B1 (en) 1998-07-07 2002-05-14 At&T Corp. Network broadcasting system for broadcasting audiovisual information to an identified audience
US6101547A (en) * 1998-07-14 2000-08-08 Panasonic Technologies, Inc. Inexpensive, scalable and open-architecture media server
US6516352B1 (en) 1998-08-17 2003-02-04 Intel Corporation Network interface system and method for dynamically switching between different physical layer devices
US6321250B1 (en) 1998-10-01 2001-11-20 Ericsson Inc. Data communication system and method for transporting objects over a permanent connections
US6675385B1 (en) 1998-10-21 2004-01-06 Liberate Technologies HTML electronic program guide for an MPEG digital TV system
JP2000165788A (ja) * 1998-11-30 2000-06-16 Toshiba Corp ディジタル放送受信端末装置
US6714217B2 (en) * 1998-12-18 2004-03-30 Sprint Communication Company, L.P. System and method for providing a graphical user interface to, for building, and/or for monitoring a telecommunication network
US6415312B1 (en) 1999-01-29 2002-07-02 International Business Machines Corporation Reliable multicast for small groups
US7523466B2 (en) * 1999-02-11 2009-04-21 Amdocs Software Systems Ltd. Method and apparatus for customizing a marketing campaign system using client and server plug-in components
US6883000B1 (en) 1999-02-12 2005-04-19 Robert L. Gropper Business card and contact management system
US6512768B1 (en) * 1999-02-26 2003-01-28 Cisco Technology, Inc. Discovery and tag space identifiers in a tag distribution protocol (TDP)
US6438108B1 (en) 1999-03-11 2002-08-20 Telefonaktiebolaget L M Ericsson (Publ) System for improved transmission of acknowledgements within a packet data network
US6434621B1 (en) 1999-03-31 2002-08-13 Hannaway & Associates Apparatus and method of using the same for internet and intranet broadcast channel creation and management
US6826197B1 (en) 1999-04-01 2004-11-30 Sedna Patent Services, Llc Data packet structure for digital information distribution
US6546427B1 (en) 1999-06-18 2003-04-08 International Business Machines Corp. Streaming multimedia network with automatically switchable content sources
US6628610B1 (en) 1999-06-28 2003-09-30 Cisco Technology, Inc. Methods and apparatus for managing a flow of packets using change and reply signals
US6788704B1 (en) * 1999-08-05 2004-09-07 Intel Corporation Network adapter with TCP windowing support
US7373650B1 (en) * 2000-02-01 2008-05-13 Scientific-Atlanta, Inc. Apparatuses and methods to enable the simultaneous viewing of multiple television channels and electronic program guide content
US6829615B2 (en) * 2000-02-25 2004-12-07 International Business Machines Corporation Object type relationship graphical user interface
US6738639B1 (en) 2000-02-28 2004-05-18 Telefonaktiebolaget Lm Ericsson (Publ) Reducing signaling traffic with multicasting in a wireless communication network
US7054279B2 (en) 2000-04-07 2006-05-30 Broadcom Corporation Method and apparatus for optimizing signal transformation in a frame-based communications network
JP3589149B2 (ja) 2000-04-12 2004-11-17 日本電気株式会社 Atm交換機の回線切替え用ヘッダ変換回路及びそれに用いるヘッダ変換方法
WO2002003597A1 (en) * 2000-06-30 2002-01-10 Kanad Ghose System and method for fast, reliable byte stream transport
US7043633B1 (en) * 2000-08-28 2006-05-09 Verizon Corporation Services Group Inc. Method and apparatus for providing adaptive self-synchronized dynamic address translation
US7134092B2 (en) * 2000-11-13 2006-11-07 James Nolen Graphical user interface method and apparatus
US7237250B2 (en) * 2000-11-28 2007-06-26 Navic Systems, Inc. Promotion server using video on demand channel
US20020080807A1 (en) * 2000-12-22 2002-06-27 Lind Carina Maria Systems and methods for queue-responsible node designation and queue-handling in an IP network
US6798842B2 (en) * 2001-01-10 2004-09-28 Asustek Computer Inc. Retransmission range for a communications protocol
GB2372849B (en) * 2001-02-28 2003-05-07 3Com Corp Method for determining master or slave mode in a storage server subnet
US7945538B2 (en) 2001-03-13 2011-05-17 Oracle America, Inc. Method and arrangements for node recovery
US6854088B2 (en) * 2001-04-04 2005-02-08 Spinoza Technology, Inc. Graphical user interface for project data
US6883110B1 (en) * 2001-06-18 2005-04-19 Gateway, Inc. System and method for providing a data backup of a server on client systems in a network
KR100399353B1 (ko) 2001-07-13 2003-09-26 삼성전자주식회사 시분할 감지 기능을 구비한 불 휘발성 반도체 메모리 장치및 그것의 읽기 방법
US7702791B2 (en) * 2001-07-16 2010-04-20 Bea Systems, Inc. Hardware load-balancing apparatus for session replication
US7085225B2 (en) 2001-09-27 2006-08-01 Alcatel Canada Inc. System and method for providing detection of faults and switching of fabrics in a redundant-architecture communication system
US7499452B2 (en) * 2004-12-28 2009-03-03 International Business Machines Corporation Self-healing link sequence counts within a circular buffer
US7548561B2 (en) * 2005-05-13 2009-06-16 Freescale Semiconductor, Inc. Method of transmitting and receiving data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100739489B1 (ko) * 2004-12-13 2007-07-13 한국전자통신연구원 서버와 클라이언트의 사이의 네트워크 경로에 속하는라우터에 접속하는 대역폭 브로커 및 차등화 서비스 제공방법

Also Published As

Publication number Publication date
US7636306B2 (en) 2009-12-22
US20060126494A1 (en) 2006-06-15
CA2458065C (en) 2014-01-14
US7778249B2 (en) 2010-08-17
US20060062147A1 (en) 2006-03-23
EP1425889A4 (en) 2005-10-26
EP1425889A1 (en) 2004-06-09
WO2003024036A1 (en) 2003-03-20
CA2458065A1 (en) 2003-03-20
US7680151B2 (en) 2010-03-16
US20060067219A1 (en) 2006-03-30
CN1554172A (zh) 2004-12-08
US20030093485A1 (en) 2003-05-15
US20060072458A1 (en) 2006-04-06
US8880709B2 (en) 2014-11-04

Similar Documents

Publication Publication Date Title
KR20040035759A (ko) 베스트-에포트 데이터의 스케줄링된 스트림밍을 위한 방법및 장치
KR101066768B1 (ko) 네트워크 통신용 시간인식 최선형 홀-필링 재시도 방법 및 시스템
US7143132B2 (en) Distributing files from a single server to multiple clients via cyclical multicasting
US6577599B1 (en) Small-scale reliable multicasting
US20030206549A1 (en) Method and apparatus for multicast delivery of information
US20050249231A1 (en) Methods and systems for reliable distribution of media over a network
US7054314B2 (en) Controlling multiple nodes divided into groups
US7058054B2 (en) Controlling multiple nodes to execute messages only once
KR100683813B1 (ko) 멀티캐스트 데이터 전송
WO2019214550A1 (zh) 报文传输方法及装置、系统、存储介质、电子装置
US20030037132A1 (en) Controlling multiple nodes using SNMP
EP2510642B1 (en) Protocol booster for sctp in multicast networks
US7330432B1 (en) Method and apparatus for optimizing channel bandwidth utilization by simultaneous reliable transmission of sets of multiple data transfer units (DTUs)
EP1419599B1 (en) Controlling multiple nodes to execute messages only once, which are divided into groups, or using snmp, or a combination thereof
US7561523B1 (en) Method and apparatus for flow control in a reliable multicast communication system
Adamson et al. Multicast Negative-Acknowledgment (NACK) Building Blocks
US7013418B1 (en) Method and apparatus for reliable delivery of status information for multiple sets of data units in a single packet
Macker et al. The Multicast Dissemination Protocol (MDP) Version 1 Framework
Queiroz et al. Semantically Reliable Multicast Based on the (mk)-Firm Technique
Raman et al. An Application-Controlled Framework for Reliable Multicast Transport
Handley et al. Network Working Group B. Adamson Request for Comments: 5401 Naval Research Laboratory Obsoletes: 3941 C. Bormann Category: Standards Track Universitaet Bremen TZI

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid