KR100953005B1 - 자체-적응형 멀티캐스트 파일 전송 프로토콜 - Google Patents

자체-적응형 멀티캐스트 파일 전송 프로토콜 Download PDF

Info

Publication number
KR100953005B1
KR100953005B1 KR1020077022329A KR20077022329A KR100953005B1 KR 100953005 B1 KR100953005 B1 KR 100953005B1 KR 1020077022329 A KR1020077022329 A KR 1020077022329A KR 20077022329 A KR20077022329 A KR 20077022329A KR 100953005 B1 KR100953005 B1 KR 100953005B1
Authority
KR
South Korea
Prior art keywords
file
client
client device
multicasting
data packets
Prior art date
Application number
KR1020077022329A
Other languages
English (en)
Other versions
KR20070119021A (ko
Inventor
유안하오 순
루이 지안
카이동 송
잉'안 뎅
지 왕
Original Assignee
인텔 코오퍼레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인텔 코오퍼레이션 filed Critical 인텔 코오퍼레이션
Publication of KR20070119021A publication Critical patent/KR20070119021A/ko
Application granted granted Critical
Publication of KR100953005B1 publication Critical patent/KR100953005B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols

Abstract

자체-적응형 멀티캐스트 및 서버 장치로부터, 능동적인 클라이언트 장치, 하나 이상의 수동적인 클라이언트 장치, 및 하나 이상의 스마트 클라이언트 장치를 포함하는 하나 이상의 클라이언트 장치로의 디지털 파일의 신뢰성 있는 전송이 제공된다.
서버, 클라이언트, 멀티캐스트, TFTP

Description

자체-적응형 멀티캐스트 파일 전송 프로토콜{SELF-ADAPTIVE MULTICAST FILE TRANSFER PROTOCOL}
본 발명의 실시예는 서버 장치로부터 복수의 클라이언트 장치로의 멀티캐스트 전송에 관한 것으로, 보다 상세히는 공동작용할 수 있는 방식으로 멀티캐스트 파일 전송 프로토콜을 이용하는 것에 관한 것이다.
현재 장치들 간에 파일들을 전송하기 위해 TFTP(Trivial File Transfer Protocol)가 이용될 수 있다. 일반적으로, TFTP는 FTP보다 사용하기 간단하지만 더 적은 기능을 제공하는 전송 프로토콜이다. 예를 들면, TFTP는 사용자 인증 또는 디렉토리 가시성을 지원하지 않는다. TFTP는 TCP(Transmission Control Protocol)보다는 UDP(User Datagram Protocol)를 이용한다. TFTP의 일 실시예는 1992년 7월에 출판된 "Request for Comments(RFC) 1350, Rev. 2"에 정식으로 기술되어있다.
TFTP는 1997년 2월에 출판된 RFC 2090에 기술된 바와 같이 멀티캐스트 옵션을 포함하도록 확장되어 왔다. 멀티캐스트 TFTP는 능동적인 클라이언트 또는 수동적은 클라이언트로서 클라이언트 장치들을 분류한다. 한번에 오직 하나의 능동적인 클라이언트가 존재한다. 능동적인 클라이언트는 서버와 통신하여 교섭된 그룹 주소로의 스탑-앤-웨이트(stop-and-wait) ARQ 흐름 및 에러 컨트롤 기법을 이용하여 데이터를 다운로드한다. 수동적인 클라이언트는 능동적인 클라이언트로의 다운로드 중에 스누핑(snoop)하고 그룹 주소로 향하는 데이터를 캡쳐한다. 능동적인 클라이언트가 데이터 다운로드를 마쳤을 때, 수동적인 클라이언트는 새로운 능동적인 클라이언트로서 선택된다.
새로운 능동적인 클라이언트는 완전한 파일이 그 그룹 주소로 다운로드되게 하고 중복된 데이터 패킷은 버린다. 클라이언트는 파일 내의 모든 패킷이 수신되었을 때 사라질 수 있다. 복수의 능동적인 클라이언트가 완전한 파일을 다운로드하기 때문에 새롭게 추가되는 클라이언트는 완전한 파일을 수신할 수 있다.
에러가 없는 네트워크에서, 모든 클라이언트는 다운로드를 시작하기 전에 그룹에 합류함으로써 완전한 파일을 수신할 수 있다. 그러나, 하나 이상의 패킷이 버려지고/거나 클라이언트가 다운로드가 시작된 이후에 그룹에 합류한다면, 완전한 파일 다운로드는 적어도 한번 반복되어야 한다. 예를 들어, 트래픽 패턴의 변화 때문에 에러가 발생하기 쉬운 네트워크일수록, 완전한 파일이 다운로드되어야할 횟수가 많아진다. 극단적인 상황에서는, 각각의 수동적인 클라이언트가 다운로드를 완료하기 위하여 능동적인 클라이언트가 될 수 있다. 이는 표준 유니캐스트 전송보다 성능이 나빠지게 될 수 있다. 그러므로, 멀티캐스트 TFTP 동작의 현재 상태는 성능이 만족스럽지 않게 될 수 있다.
본 발명의 실시예는 동일한 참조번호가 동일한 요소를 참조하는 첨부된 도면 에서, 예로서, 제한적이지 않게 도시된다.
도 1은 서버를 복수의 클라이언트에 접속할 수 있는 네트워크의 블록도.
도 2는 하나 이상의 능동적인 클라이언트 장치, 수동적인 클라이언트 장치, 및 스마트 클라이언트 장치로의 멀티캐스트 파일 다운로드의 일 실시예의 흐름도.
도 3은 전자 시스템의 일 실시예의 블록도.
도 4는 하나 이상의 능동적인 클라이언트 장치, 수동적인 클라이언트 장치, 및 스마트 클라이언트 장치로의 멀티캐스트 파일 다운로드에 대한 규칙 변경 정책(role change policy)의 일 실시예의 상태도.
다음 설명에서, 방대한 특정 상세한 사항이 설명된다. 그러나, 본 발명의 실시예는 이들 특정 상세한 사항 없이도 실행될 수 있다. 다른 예에서, 이 설명의 이해를 모호하게 하지 않기 위하여 잘-공지된 회로, 구조 및 기법들을 상세히 나타내지 않았다.
본원에 기술된 기법의 일 실시예에서, 특정 네트워크 조건을 만족하였을 경우, 오직 손실된 패킷들만이 제1 능동적인 클라이언트로의 제1 다운로드를 완료한 후에 재전송 요청을 받는다. 일 실시예에서, 능동적인 클라이언트와 수동적인 클라이언트 이외에도, 재전송 요청을 관리하는 스마트 클라이언트가 지원될 수 있다. 일 실시예에서, 수동적인 클라이언트는 다운로드되는 파일 내의 패킷 간격을 추적한다. 적어도 패킷 간격 정보를 이용하여, 수동적인 클라이언트는 손실된 데이터 패킷을 다운로드 하는 "스마트 클라이언트"가 되도록 변화할 수 있다. 일 실시예에서, 스마트 클라이언트는 서버에 소실된 패킷 번호를 능동적으로 요청할 수 있다. 일 실시예에서, 패킷 간격이 연속적이라면, 스마트 클라이언트는 처리량을 증가시키기 위하여 스트림 또는 블록 사이즈 옵션을 가지는 프로토콜(예를 들면, TFTP)을 이용할 수 있다. 본원에 기술된 기법을 적용함으로써, 표준 멀티캐스트 TFTP 전송에 비하여 손실된 패킷의 재전송 시간이 줄어들 수 있고 재전송 성능이 향상될 수 있다.
일 실시예에서, 마지막 패킷이 수신되고 소실된 패킷의 사이즈가 총 파일 사이즈의 미리-선택된 비율 내에 있을 때 다운로드되는 파일 사이즈가 알려져 있지 않는다면, 수신중인 수동적인 클라이언트는 스마트 클라이언트로 변경될 수 있다. 지연 이후에 소실된 패킷들이 신뢰성있는 프로토콜(예를 들면, TFTP)을 이용하여 재전송 요청을 받을 수 있다. 일 실시예에서, 다운로드된 파일 사이즈가 알려져 있지 않고 마지막 패킷이 수신되지 않은 경우, 수신중인 수동적인 클라이언트는 다운로드중인 세션을 다시 시작할 수 있다. 일 실시예에서, 다운로드된 파일 사이즈가 알려져 있고 소실된 패킷의 사이즈가 총 파일 사이즈의 미리-선택된 비율 내에 있다면, 수동적인 클라이언트는 스마트 클라이언트로 변경될 수 있다. 지연 이후에 소실된 패킷들이 신뢰성있는 프로토콜(예를 들면, TFTP)을 이용하여 재전송 요청을 받을 수 있다.
일 실시예에서, 파일은 사전-부팅 환경에서 다운로드될 수 있다. 다운로드되는 파일은, 예를 들면, 부팅 이미지, 또는 전자 장치의 사전-부팅 단계에 이용되는 기타 이미지일 수 있다.
도 1은 서버를 복수의 클라이언트에 접속할 수 있는 네트워크의 블록도이다. 서버(100)는 네트워크(120)를 통해 임의의 개수의 클라이언트(예를 들면, 140, 150, 160)와 연결될 수 있고, 이 네트워크는 본 기술 분야에 공지된 임의의 네트워크 통신 프로토콜에 따라 동작한다.
일 실시예에서, 한 클라이언트, 예를 들면, 클라이언트(160)는 서버(100)로부터 파일의 다운로드를 요청하도록 멀티캐스트 TFTP에 의해 정의되는 능동적인 클라이언트로서 동작할 수 있다. 임의의 개수의 추가적인 클라이언트, 예를 들면, 클라이언트(140 및 150)가 능동적인 클라이언트에 의해 요청된 파일에 대응하는 패킷을 수신하도록 멀티캐스트 TFTP에 의해 정의되는 수동적인 클라이언트로서 동작할 수 있다. 능동적인 클라이언트에 의한 다운로드를 완료할 때 수동적인 클라이언트 중 하나는 손실된 패킷을 다운로드하기 위한 스마트 클라이언트가 될 수 있다. 본원의 설명에 있어서, 용어 "패킷"은, 예를 들면, 길이가 미리 정해지거나, 고정된 길이거나, 가변적인 길이일 수 있는 임의의 데이터 블록을 칭한다. 일 실시예에서, 패킷은 멀티캐스트 TFTP 정의에 의해 정의된다. 대안적인 실시예에서, 다른 패킷 사이즈들이 이용될 수 있다.
일 실시예에서 수동적인 클라이언트는 파일 다운로드 중에 멀티캐스트 그룹에 합류할 수 있다. 이들 수동적인 클라이언트를 위해, 손실된 패킷이 새로운 능동적인 클라이언트 및/또는 스마트 클라이언트에 재전송될 때 멀티캐스트 그룹에 합류하기 전에 전송된 패킷이 수신될 수 있다.
확률 이론을 이용한 성능 분석은 네트워크 조건에 의해 발생되는 패킷 소실이 고려되는 경우에도 본원에 기술된 적응형 클라이언트 기법이 성능을 향상시킬 수 있음을 나타낼 수 있다. 설명을 간단히 하기 위하여, 다음은 모든 클라이언트가 동시에 다운로드중인 세션에 합류하고 패킷 소실 확률이 균일하게 분포되어 있다고 가정한다. 다음의 분석에서, K는 각각의 패킷이 전송되는 평균 횟수이고 T는 능동적인 클라이언트가 요청된 파일을 다운로드하는 시간이다. 그러므로, 수동적인 클라이언트가 파일을 다운로드하는 데에 요구되는 시간은 다음과 같이 정의될 수 있다:
Figure 112007070246000-pct00001
각각의 패킷이 전송되는 정확한 횟수가 될 무작위 변수인 k를 이용하여, K는 각각의 패킷이 소실되거나 오류가 있을 확률을 p라고 가정함으로써 도출될 수 있다:
Figure 112007070246000-pct00002
상기로부터, 무작위 변수 k는 기하학적으로 분산된다.
즉,
Figure 112007070246000-pct00003
Figure 112007070246000-pct00004
이다.
상기 수학식으로 대체하는 것은 수동적인 클라이언트가 파일을 다운로드하는 평균 시간을 산출한다:
Figure 112007070246000-pct00005
본원에 기술된 적응형 클라이언트 기법을 이용하면, 클라이언트가 파일을 다운로드하는 시간은 능동적인 클라이언트에 의해 소비되는 시간과 손실된 패킷을 다운로드하는 시간을 더한 것이다. 파일에 있는 패킷의 개수를 나타내기 위해 M을 사용하면:
Figure 112007070246000-pct00006
즉,
Figure 112007070246000-pct00007
이다.
Figure 112007070246000-pct00008
이기 때문에,
Figure 112007070246000-pct00009
Figure 112007070246000-pct00010
보다 짧다. 실제 네트워크 조건에 서, 패킷 소실 확률은 균일하게 분포되지 않을 수 있어서, 이는 본원에 기술된 기법의 성능을 높일 수 있다.
도 2는 하나 이상의 능동적인 클라이언트 장치, 수동적인 클라이언트 장치, 및 스마트 클라이언트 장치로의 멀티캐스트 파일 다운로드의 일 실시예의 흐름도이다. 도 2의 예에서, 클라이언트 장치들은 파일을 다운로드하는 것으로 기술된다. 파일은 다운로드될 수 있는 임의의 크기 및/또는 유형의 데이터를 칭하도록 의도된다. 파일은 임의의 유형의 데이터를 나타낼 수 있고 통상적으로 고려되는 완전한 파일이 아닌 데이터의 블록일 수 있다.
일 실시예에서, 멀티캐스트 파일 다운로드 세션은 능동적인 클라이언트 및 하나 이상의 수동적인 클라이언트를 포함하는 그룹을 대표하여 능동적인 클라이언트에 의해 개시될 수 있다(200). 일 실시예에서, 멀티캐스트 다운로드에 이용될 수 있는 프로토콜은 멀티캐스트 TFTP이다. 능동적인 클라이언트는 그룹 어드레스로의 파일 다운로드를 요청할 수 있는데, 이 그룹 어드레스를 통하여 능동적인 클라이언트와 하나 이상의 수동적인 클라이언트 모두가 요청된 파일에 대응하는 데이터를 수송하는 패킷을 수신할 수 있다.
일 실시예에서, 수동적인 클라이언트는 요청된 파일 내의 패킷 간격, 간격의 크기 및/또는 간격의 연속성을 추적할 수 있다. 이러한 간격에 관련된 정보 및/또는 다른 정보를 이용하여, 수동적인 클라이언트는 멀티캐스트 TFTP 표준에 따라 가능하게 능동적인 클라이언트가 되거나 수동적인 클라이언트로 남아있기 보다는 수동적인 클라이언트로부터 스마트 클라이언트로 상태를 변경할 수 있다.
패킷들의 다운로드는 능동적인 클라이언트가 파일의 다운로드를 완료할 때까지 계속될 수 있다(210). 능동적인 클라이언트가 파일의 다운로드를 완료했다면, 능동적인 클라이언트는 멀티캐스트 그룹 다운로드 세션을 벗어날 수 있고 새로운 능동적인 클라이언트가 멀티캐스트 TFTP 프로토콜에 따라 선택될 수 있다(220). 멀티캐스트 TFTP 프로토콜에 따라 새로운 능동적인 클라이언트를 선택하는 것 이외에도, 또는 그 대신에, 하나 이상의 수동적인 클라이언트는 스마트 클라이언트로서 지정될 수 있다(220). 일 실시예에서, 이하의 기준이 수동적인 클라이언트를 스마트 클라이언트로서 지정하는 데에 이용될 수 있다. 대안적인 실시예에서, 추가적이고/거나 상이한 기준도 이용될 수 있다. 패킷의 다운로드가 새로운 능동적인 클라이언트를 이용한 멀티캐스트 프로토콜 및/또는 스마트 클라이언트를 이용한 비-멀티캐스트의 신뢰성 있는 프로토콜을 이용하여 수행될 수 있다(230).
수동적인 클라이언트가 요청된 파일에 대응하는 패킷 모두를 성공적으로 수신하였다면, 수동적인 클라이언트는 다운로드 세션을 벗어날 수 있다. 파일 사이즈가 알려져 있지 않고 마지막 패킷이 수동적인 클라이언트에 의해 성공적으로 수신하였으며 소실된 패킷의 총 사이즈가 미리-선택된 양(예를 들면, 1 메가바이트, 총 파일 사이즈의 20%)보다 작다면, 수동적인 클라이언트는 스마트 클라이언트가 되도록 상태를 변경할 수 있다. 일 실시예에서, 무작위 지연 이후에, 스마트 클라이언트는, 예를 들면, 비-멀티캐스트, 또는 표준 TFTP와 같은 신뢰성 있는 프로토콜을 이용하여 손실된 패킷을 요청할 수 있다.
파일 사이즈가 알려져 있지 않고 마지막 패킷이 수동적인 클라이언트에 의해 성공적으로 수신되지 않았다면, 수동적인 클라이언트는 수동적인 클라이언트 상태를 유지하고 멀티캐스트 다운로드 세션에 계속하여 참여할 수 있다. 파일 사이즈가 알려져 있고 소실된 패킷의 총 사이즈가 미리-선택된 양(예를 들면, 1 메가바이트, 총 파일 사이즈의 20%)보다 작다면, 수동적인 클라이언트는 스마트 클라이언트가 되도록 상태를 변경할 수 있다. 일 실시예에서, 무작위 지연 이후에, 스마트 클라이언트는, 예를 들면, 비-멀티캐스트, 또는 표준 TFTP와 같은 신뢰성 있는 프로토콜을 이용하여 손실된 패킷을 요청할 수 있다.
패킷들의 다운로드는 새로운 능동적인 클라이언트가 파일의 다운로드를 완료할 때까지 계속될 수 있다(240). 새로운 능동적인 클라이언트가 다운로드를 완료했다면, 수동적인 클라이언트가 남아있는 경우(250), 능동적인 클라이언트는 멀티캐스트 그룹 다운로드 세션을 벗어날 수 있고 새로운 능동적인 클라이언트가 멀티캐스트 TFTP 프로토콜에 따라 선택될 수 있다(220).
일 실시예에서, 도 2의 기법은 전자 시스템에 의해 실행되는 명령어로서 구현될 수 있다. 명령어는 전자 장치에 의해 저장될 수 있거나 명령어는 전자 장치에 의해 (예를 들면, 네트워크 접속을 통해) 수신될 수 있다. 도 3은 전자 시스템의 일 실시예의 블록도이다. 도 3에 도시된 전자 시스템은, 예를 들면, 컴퓨터 시스템, 네트워크 액세스 장치, 등과 같은 소정 범위의 전자 시스템을 나타내도록 의도된다. 전자적이든 비-전자적이든 대안적인 시스템들은 더 많거나 더 적거나 및/또는 상이한 컴포넌트를 포함할 수 있다. 도 3의 전자 시스템은 하나 이상의 클라이언트 장치 및 서버 장치를 나타낼 수 있다.
전자 시스템(300)은 정보를 전달하기 위한 버스(305) 또는 기타 통신 장치, 및 정보를 처리하기 위해, 버스(305)에 연결된 프로세서(310)를 포함한다. 전자 시스템(300)은 단일한 프로세서를 포함하는 것으로 도시되었지만, 전자 시스템(300)은 복수의 프로세서 및/또는 코-프로세서를 포함할 수 있다. 전자 시스템(300)은 프로세서(310)에 의해 실행되는 정보 및 명령어를 저장하기 위해, 버스(305)에 연결된 (메모리라 칭하는) RAM 또는 기타 동적인 저장 장치(320)를 더 포함한다. 메모리(320)는 또한 프로세서(310)에 의해 명령어를 실행시킬 때 일시적인 값들 또는 기타 중간 정보를 저장하는 데에 이용될 수 있다.
전자 시스템(300)은 또한 프로세서(310)에 대한 정적인 명령 및 정보를 저장하기 위해, 버스(305)에 연결된 ROM 및/또는 기타 정적인 저장 장치(330)를 포함한다. 일 실시예에서, 정적인 저장 장치(330)는, 캘리포니아주 산타 클라라 소재의 인텔 사로부터 입수가능한, 2003년 11월 26일에 출판된 확장가능한 펌웨어 인터페이스(EFI) 명세, 버전 1.10에 의해 정의된 EFI와 호환되는 인터페이스를 구비할 수 있는 내장형 펌웨어 에이전트를 포함할 수 있다. 대안적인 실시예에서, 다른 펌웨어 컴포넌트 또한 이용될 수 있다.
정보 및 명령어를 저장하기 위한 데이터 저장 장치(340)는 버스(305)에 연결된다. 자기 디스크 또는 광 디스크 등의 데이터 저장 장치(340) 및 대응하는 드라이브가 전자 시스템(300)에 연결될 수 있다.
전자 시스템(300)은 또한 버스(305)를 통해, 사용자에게 정보를 디스플레이하기 위한 CRT(cathode ray tube) 또는 LCD(liquid crystal display) 등의 디스플 레이 장치(350)에 연결될 수 있다. 알파벳 숫자형 및 다른 키들을 포함하는 알파벳 숫자형 입력 장치(360)는 통상적으로 프로세서(310)에 정보 및 커맨드 선택을 전달하기 위하여 버스(305)에 연결된다. 다른 유형의 사용자 입력 장치는 프로세서(310)에 방향 정보와 커맨드 선택을 전달하고 디스플레이(350) 상의 커서 움직임을 제어하기 위한 마우스, 트랙볼, 또는 커서 방향 키 등의 커서 컨트롤(370)이다. 전자 시스템(300)은 LAN 등의 네트워크로의 액세스를 제공하기 위한 네트워크 인터페이스(380)를 더 포함한다. 네트워크 인터페이스(380)는 본 기술 분야에 공지된 임의의 프로토콜에 따라 무선 네트워크 인터페이스를 제공하기 위한 하나 이상의 안테나(385)를 더 포함할 수 있다.
하나 이상의 전자적으로-액세스가능한 매체 등으로 액세스를 제공하는 유선 또는 무선인 원격 접속을 통하여(예를 들면, 네트워크 인터페이스(380)를 통한 네트워크 상에서), 자기 디스크, ROM 집적 회로, CD-ROM, DVD 등의 저장 장치로부터 메모리에 명령어가 제공된다. 대안적인 실시예에서, 소프트웨어 명령어를 대신하거나 이와 조합하여 유선 회로가 이용될 수 있다. 그러므로, 일련의 명령어의 실행은 하드웨어 회로 및 소프트웨어 명령어의 임의의 특정 조합으로 제한되지 않는다.
전자적으로-액세스 가능한 매체는 전자 장치(예를 들면, 컴퓨터, PDA, 셀룰러폰)에 의해 판독가능한 형태로 컨텐츠(예를 들면, 컴퓨터 실행가능 명령어)를 제공하는(즉, 저장하고/거나 전송하는) 임의의 메카니즘을 포함한다. 예를 들면, 머신 액세스가능 매체는 ROM; RAM; 자기 디스크 저장 매체; 광 디스크 저장 매체; 플 래시 메모리 장치; 전자, 광, 음향 또는 다른 형태의 전파 신호(예를 들면, 반송파, 적외선 신호, 디지털 신호) 등을 포함한다.
도 4는 하나 이상의 능동적인 클라이언트 장치, 수동적인 클라이언트 장치, 및 스마트 클라이언트 장치로의 멀티캐스트 파일 다운로드에 대한 규칙 변경 정책의 일 실시예의 상태도이다. 초기에 잠재적인 클라이언트 장치는 멀티캐스트 다운로드 그룹에 합류하기 전에는 "규칙 없음(no role)"(400) 상태를 가질 수 있다. 잠재적인 클라이언트 장치는 서버 또는 다른 지정된 장치에 멀티캐스트 다운로드 그룹으로의 입장을 요청하는 요청 메시지를 송신할 수 있다.
이 요청 메시지에 응답하여, 잠재적인 클라이언트 장치가 능동적인 클라이언트가 되거나(ACK: ACTIVE) 또는 수동적인 클라이언트가 되도록(ACK: PASSIVE) 응답 장치는 애크(acknowledge) 메시지를 전달할 수 있다. ACK: ACTIVE 메시지에 응답하여 클라이언트 장치는 능동적인 클라이언트(470)로서 멀티캐스트 다운로드 그룹에 합류하고, 상술한 바와 같이 동작한다. ACK: PASSIVE 메시지에 응답하여 클라이언트 장치는 수동적인 클라이언트(420)로서 멀티캐스트 다운로드 그룹에 합류하고, 상술한 바와 같이 동작한다.
일 실시예에서, 일단 수동적인 클라이언트 상태(420)에 있다면, 클라이언트는 현재 능동적인 클라이언트가 파일의 다운로드를 완료하고 멀티캐스트 다운로드 그룹을 빠져나갈 때까지 수동적인 클라이언트를 유지한다. 멀티캐스트 다운로드 그룹이 능동적인 클라이언트를 포함하지 않는다면, 남아있는 수동적인 클라이언트들 중 하나가 능동적인 클라이언트가 되도록 촉구된다. 일 실시예에서, 복수의 수 동적인 클라이언트는 하나의 시도에서 서버 또는 다른 장치에게 능동적인 클라이언트라고 명명되기 위한 요청을 전달할 수 있다. 서버 또는 다른 장치는 수동적인 클라이언트 중 하나를 새로운 능동적인 클라이언트가 되도록 선택할 수 있다. 대안으로, 서버 또는 다른 장치는 수동적인 클라이언트를 추적하여 수동적인 클라이언드들 중 하나를 새로운 능동적인 클라이언트가 되도록 미리 선택할 수 있다.
수동적인 클라이언트가 스마트 클라이언트가 되기 위한 상술한 조건들을 만족한다면, 수동적인 클라이언트는 스마트 클라이언트(450)가 될 수 있다. 스마트 클라이언트는 신뢰성 있는, 비-멀티캐스트 프로토콜을 이용하여 소실된 패킷의 다운로드를 요청하기 위해 상술한 방식으로 동작할 수 있다.
본 명세서에서 "일 실시예" 또는 "실시예"에 대한 참조는 이 실시예에 관련하여 기술된 특정 특징, 구조, 또는 특성이 본 발명의 적어도 한 실시예에 포함됨을 의미한다. 명세서의 다양한 위치에 "일 실시예에서"라는 어구가 나타나는 것은 모두 동일한 실시예를 말하는 것일 필요가 없다.
본 발명이 몇몇의 실시예에 관련하여 기술되었지만, 당업자들은 본 발명이 기술된 실시예들에 제한되지 않고, 첨부된 특허 청구 범위의 사상 및 범위 내에서 수정 및 변경을 하여 실행될 수 있음을 인식할 것이다. 그러므로 이 설명은 제한적이기보다는 예시적인 것으로 간주된다.

Claims (18)

  1. 복수의 데이터 패킷으로서 전송될 파일을 서버 장치로부터 다운로드하기 위한, 제1 클라이언트 장치로부터의 요청을 상기 서버 장치에서 수신하는 단계,
    상기 서버 장치로부터의 상기 복수의 데이터 패킷을 상기 제1 클라이언트 장치를 포함하는 다수의 클라이언트 장치에 멀티캐스팅하는 단계, 및
    상기 제1 클라이언트 장치가 상기 파일의 다운로드를 완료하였을 때, 상기 다수의 클라이언트 장치로부터의 제2 클라이언트 장치와의 신뢰성 있는 프로토콜(reliable protocol)을 이용하여 상기 제2 클라이언트 장치에 의해 수신되지 않은 데이터 패킷들을 요청하는 단계
    를 포함하는, 클라이언트 측 멀티캐스트 파일 전송 방법.
  2. 제1항에 있어서,
    상기 복수의 데이터 패킷을 멀티캐스팅하는 단계는 멀티캐스트 TFTP(Trivial File Transfer Protocol)를 이용하여 상기 다수의 클라이언트 장치에 멀티캐스팅하는 단계를 포함하는, 클라이언트 측 멀티캐스트 파일 전송 방법.
  3. 제1항에 있어서,
    상기 신뢰성 있는 프로토콜은 TFTP를 포함하는, 클라이언트 측 멀티캐스트 파일 전송 방법.
  4. 제1항에 있어서,
    상기 파일의 다운로드는 상기 제1 클라이언트 장치의 사전-부팅 단계 중에 발생하는, 클라이언트 측 멀티캐스트 파일 전송 방법.
  5. 제4항에 있어서,
    상기 파일은 상기 제1 클라이언트 장치에 대한 부트 이미지를 포함하는, 클라이언트 측 멀티캐스트 파일 전송 방법.
  6. 제1항에 있어서,
    상기 제2 클라이언트 장치는 상기 파일을 멀티캐스팅하는 동안 상기 요청된 파일 내의 패킷 간격들 및 상기 패킷 간격들의 크기를 추적하는, 클라이언트 측 멀티캐스트 파일 전송 방법.
  7. 명령어들이 저장된 컴퓨터 판독가능 매체로서,
    상기 명령어들은, 실행될 때, 하나 이상의 프로세서로 하여금,
    복수의 데이터 패킷으로서 전송될 파일을 서버 장치로부터 다운로드하기 위한, 제1 클라이언트 장치로부터의 요청을 상기 서버 장치에서 수신하고,
    상기 서버 장치로부터의 상기 복수의 데이터 패킷을 상기 제1 클라이언트 장치를 포함하는 다수의 클라이언트 장치에 멀티캐스팅하며,
    상기 제1 클라이언트 장치가 상기 파일의 다운로드를 완료하였을 때, 상기 다수의 클라이언트 장치로부터의 제2 클라이언트 장치와의 신뢰성 있는 프로토콜을 이용하여 상기 제2 클라이언트 장치에 의해 수신되지 않은 데이터 패킷들을 요청하도록 하는 컴퓨터 판독가능 매체.
  8. 제7항에 있어서,
    상기 복수의 데이터 패킷을 멀티캐스팅하는 것은 멀티캐스트 TFTP를 이용하여 상기 다수의 클라이언트 장치에 멀티캐스팅하는 것을 포함하는 컴퓨터 판독가능 매체.
  9. 제7항에 있어서,
    상기 신뢰성 있는 프로토콜은 TFTP를 포함하는 컴퓨터 판독가능 매체.
  10. 제7항에 있어서,
    상기 파일의 다운로드는 상기 제1 클라이언트 장치의 사전-부팅 단계 중에 발생하는 컴퓨터 판독가능 매체.
  11. 제10항에 있어서,
    상기 파일은 상기 제1 클라이언트 장치에 대한 부트 이미지를 포함하는 컴퓨터 판독가능 매체.
  12. 제7항에 있어서,
    상기 제2 클라이언트 장치는 상기 파일을 멀티캐스팅하는 동안 상기 요청된 파일 내의 패킷 간격들 및 상기 패킷 간격들의 크기를 추적하는 컴퓨터 판독가능 매체.
  13. 하나 이상의 프로세서,
    상기 하나 이상의 프로세서와 연결된 네트워크 인터페이스, 및
    상기 하나 이상의 프로세서와 연결되고, 명령어들을 저장한 컴퓨터 판독가능 매체
    를 포함하고,
    상기 명령어들은, 실행될 때, 상기 하나 이상의 프로세서로 하여금,
    복수의 데이터 패킷으로서 전송될 파일을 서버 장치로부터 다운로드하기 위한, 제1 클라이언트 장치로부터의 요청을 수신하고,
    상기 서버 장치로부터의 상기 복수의 데이터 패킷을 상기 제1 클라이언트 장치를 포함하는 다수의 클라이언트 장치에 멀티캐스팅하며,
    상기 제1 클라이언트 장치가 상기 파일의 다운로드를 완료하였을 때, 상기 다수의 클라이언트 장치로부터의 제2 클라이언트 장치와의 신뢰성 있는 프로토콜을 이용하여 상기 제2 클라이언트 장치에 의해 수신되지 않은 데이터 패킷들을 상기 서버 장치에 요청하도록 하는 서버 장치 시스템.
  14. 제13항에 있어서,
    상기 복수의 데이터 패킷을 멀티캐스팅하는 것은 멀티캐스트 TFTP를 이용하여 상기 다수의 클라이언트 장치에 멀티캐스팅하는 것을 포함하는 서버 장치 시스템.
  15. 제13항에 있어서,
    상기 신뢰성 있는 프로토콜은 TFTP를 포함하는 서버 장치 시스템.
  16. 제13항에 있어서,
    상기 파일의 다운로드는 상기 제1 클라이언트 장치의 사전-부팅 단계 중에 발생하는 서버 장치 시스템.
  17. 제16항에 있어서,
    상기 파일은 상기 제1 클라이언트 장치에 대한 부트 이미지를 포함하는 서버 장치 시스템.
  18. 제13항에 있어서,
    상기 제2 클라이언트 장치는 상기 파일을 멀티캐스팅하는 동안 상기 요청된 파일 내의 패킷 간격들 및 상기 패킷 간격들의 크기를 추적하는 서버 장치 시스템.
KR1020077022329A 2005-03-07 2005-03-07 자체-적응형 멀티캐스트 파일 전송 프로토콜 KR100953005B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2005/000264 WO2006094427A1 (en) 2005-03-07 2005-03-07 Self-adaptive multicast file transfer protocol

Publications (2)

Publication Number Publication Date
KR20070119021A KR20070119021A (ko) 2007-12-18
KR100953005B1 true KR100953005B1 (ko) 2010-04-14

Family

ID=36952930

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077022329A KR100953005B1 (ko) 2005-03-07 2005-03-07 자체-적응형 멀티캐스트 파일 전송 프로토콜

Country Status (6)

Country Link
US (1) US20080250154A1 (ko)
EP (1) EP1859353A4 (ko)
KR (1) KR100953005B1 (ko)
CN (1) CN100578484C (ko)
GB (1) GB2441059B (ko)
WO (1) WO2006094427A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8059009B2 (en) 2006-09-15 2011-11-15 Itron, Inc. Uplink routing without routing table
US8787210B2 (en) * 2006-09-15 2014-07-22 Itron, Inc. Firmware download with adaptive lost packet recovery
US9740441B2 (en) * 2008-12-12 2017-08-22 At&T Intellectual Property, L.P. System and method for distributing software updates
CN105635233A (zh) * 2014-11-24 2016-06-01 中兴通讯股份有限公司 一种传送文件的方法及装置和下载文件的方法及装置
US10833799B2 (en) 2018-05-31 2020-11-10 Itron Global Sarl Message correction and dynamic correction adjustment for communication systems

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030069930A1 (en) 2001-10-09 2003-04-10 Engelbertus Van Willigen Service information multicasting method and system
EP1327190A2 (en) 2000-10-19 2003-07-16 International Business Machines Corporation Realtime configuration updates and software distribution to active client positions

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2224689C (en) * 1995-06-02 2002-10-29 Rational Software Corporation Remote monitoring of computer programs
US6279124B1 (en) * 1996-06-17 2001-08-21 Qwest Communications International Inc. Method and system for testing hardware and/or software applications
US6061517A (en) * 1997-03-31 2000-05-09 International Business Machines Corporation Multi-tier debugging
US6202199B1 (en) * 1997-07-31 2001-03-13 Mutek Solutions, Ltd. System and method for remotely analyzing the execution of computer programs
US6185623B1 (en) * 1997-11-07 2001-02-06 International Business Machines Corporation Method and system for trivial file transfer protocol (TFTP) subnet broadcast
US6101607A (en) * 1998-04-24 2000-08-08 International Business Machines Corporation Limit access to program function
US6915509B1 (en) * 2000-06-28 2005-07-05 Microsoft Corporation Method and system for debugging a program
US6618823B1 (en) * 2000-08-15 2003-09-09 Storage Technology Corporation Method and system for automatically gathering information from different types of devices connected in a network when a device fails
US6983452B1 (en) * 2000-11-03 2006-01-03 Hewlett-Packard Development Company, L.P. System and method for collecting system data using record based requests with tag lists and pausing all but one thread of a computer system
US6748583B2 (en) * 2000-12-27 2004-06-08 International Business Machines Corporation Monitoring execution of an hierarchical visual program such as for debugging a message flow
US6826746B2 (en) * 2001-03-08 2004-11-30 International Business Machines Corporation Debugger probe for object oriented programming
US7302675B2 (en) * 2001-08-14 2007-11-27 National Instruments Corporation System and method for analyzing a graphical program using debugging graphical programs
US7054902B2 (en) * 2001-10-23 2006-05-30 Packeteer, Inc. Multicast delivery systems and methods
US6983334B2 (en) * 2001-11-07 2006-01-03 International Business Machines Corporation Method and system of tracking missing packets in a multicast TFTP environment
US7100078B1 (en) * 2001-11-15 2006-08-29 Network Appliance, Inc. Method and apparatus for restoration of lost blocks in a multicast data transmission
US20030206549A1 (en) * 2002-05-03 2003-11-06 Mody Sachin Satish Method and apparatus for multicast delivery of information
US7305585B2 (en) * 2002-05-23 2007-12-04 Exludus Technologies Inc. Asynchronous and autonomous data replication
JP2004253900A (ja) * 2003-02-18 2004-09-09 Renesas Technology Corp 通信補助装置および通信補助装置を用いた通信システム
US20040236829A1 (en) * 2003-05-13 2004-11-25 Yikang Xu Reliable delivery of multi-cast conferencing data
US7188331B2 (en) * 2003-06-30 2007-03-06 Hewlett-Packard Development Company, L.P. Firmware development within a framework from different design centers depositing component(s) with related contextual and genealogy information in an accessible repository
US7447148B2 (en) * 2003-10-28 2008-11-04 Ntt Docomo, Inc. Method for supporting scalable and reliable multicast in TDMA/TDD systems using feedback suppression techniques
US7343588B2 (en) * 2004-01-30 2008-03-11 International Business Machines Corporation Method of generating and utilizing debug history
US7599294B2 (en) * 2004-02-13 2009-10-06 Nokia Corporation Identification and re-transmission of missing parts
US7308609B2 (en) * 2004-04-08 2007-12-11 International Business Machines Corporation Method, data processing system, and computer program product for collecting first failure data capture information
US7664109B2 (en) * 2004-09-03 2010-02-16 Microsoft Corporation System and method for distributed streaming of scalable media
WO2006094426A1 (en) * 2005-03-05 2006-09-14 Intel Corporation Server side tftp flow control

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1327190A2 (en) 2000-10-19 2003-07-16 International Business Machines Corporation Realtime configuration updates and software distribution to active client positions
US20030069930A1 (en) 2001-10-09 2003-04-10 Engelbertus Van Willigen Service information multicasting method and system

Also Published As

Publication number Publication date
GB2441059B (en) 2009-12-16
CN100578484C (zh) 2010-01-06
EP1859353A4 (en) 2012-02-22
CN101137972A (zh) 2008-03-05
KR20070119021A (ko) 2007-12-18
US20080250154A1 (en) 2008-10-09
GB2441059A (en) 2008-02-20
WO2006094427A1 (en) 2006-09-14
GB0718501D0 (en) 2007-10-31
EP1859353A1 (en) 2007-11-28

Similar Documents

Publication Publication Date Title
KR100953004B1 (ko) 서버측 tftp 흐름 제어
US20050122977A1 (en) Efficient download mechanism for devices with limited local storage
JP4430710B2 (ja) フェイルオーバおよび負荷分散
JP6490310B2 (ja) ネットワーキング技術
US20040249948A1 (en) Performing application layer transactions during the connection establishment phase of connection-oriented protocols
US8032641B2 (en) Assymmetric traffic flow detection
US10057326B2 (en) Client-adjustable window size for connectionless transfer protocols
US8583831B2 (en) Thin client discovery
US20110134930A1 (en) Packet-based networking system
EP2719132A1 (en) System and method for reliable virtual bi-directional data stream communications with single socket point-to-multipoint capability
CN1671094A (zh) 对假超时的响应
KR100953005B1 (ko) 자체-적응형 멀티캐스트 파일 전송 프로토콜
US9985913B2 (en) Apparatus and method for client-side flow control in a remote access environment
KR101059668B1 (ko) 오퍼레이팅 시스템 독립 환경에서의 비동기식 네트워크 스택 동작
US11700321B2 (en) Transparent proxy conversion of transmission control protocol (TCP) fast open connection
US11349934B2 (en) Opportunistic transmission control protocol (TCP) connection establishment
WO2012075853A1 (zh) 一种点对点通信方法、装置及系统
US20190379758A1 (en) Multicasting method in distributed cache environment, and distributed cache server using the same
RU2387002C2 (ru) Выравнивание сетевой нагрузки с помощью управления соединением
JP2023057210A (ja) 情報処理装置,情報処理方法および情報処理プログラム
Sanna et al. Lightweight client-pull protocol for mobile communication
KR20070116034A (ko) 오퍼레이팅 시스템 독립 환경에서의 비동기식 네트워크스택 동작

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee