KR20070007383A - 시변 네트워크 환경에서 최적의 파일 전송을 위한 방법 및장치 - Google Patents

시변 네트워크 환경에서 최적의 파일 전송을 위한 방법 및장치 Download PDF

Info

Publication number
KR20070007383A
KR20070007383A KR1020067025510A KR20067025510A KR20070007383A KR 20070007383 A KR20070007383 A KR 20070007383A KR 1020067025510 A KR1020067025510 A KR 1020067025510A KR 20067025510 A KR20067025510 A KR 20067025510A KR 20070007383 A KR20070007383 A KR 20070007383A
Authority
KR
South Korea
Prior art keywords
content
transmission rate
packet
received
logic
Prior art date
Application number
KR1020067025510A
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 KR20070007383A publication Critical patent/KR20070007383A/ko

Links

Images

Classifications

    • 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/1607Details of the supervisory signal
    • H04L1/1628List acknowledgements, i.e. the acknowledgement message consisting of a list of identifiers, e.g. of sequence numbers
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0002Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0033Systems modifying transmission characteristics according to link quality, e.g. power backoff arrangements specific to the transmitter
    • H04L1/0034Systems modifying transmission characteristics according to link quality, e.g. power backoff arrangements specific to the transmitter where the transmitter decides based on inferences, e.g. use of implicit signalling
    • 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
    • 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/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms
    • 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/1867Arrangements specially adapted for the transmitter end
    • H04L1/1887Scheduling and prioritising arrangements
    • 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/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/10Flow control between communication endpoints
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Communication Control (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

시변 네트워크 환경에서 최적의 파일 전송을 위한 방법 및 장치. 데이터 네트워크에서 콘텐츠 송신을 위한 방법이 제공된다. 본 방법은 선택된 송신 레이트로 콘텐츠를 송신하는 단계 및 하나 이상의 응답확인 신호를 수신하는 단계를 포함한다. 또한, 본 방법은 하나 이상의 응답확인 신호로부터 네트워크 전송 레이트를 추정하는 단계 및 네트워크 전송 레이트에 기초하여 콘텐츠의 선택된 송신 레이트를 조절하는 단계를 포함한다.
데이터 네트워크, 송신 레이트, 파일 전송

Description

시변 네트워크 환경에서 최적의 파일 전송을 위한 방법 및 장치{METHODS AND APPARATUS FOR OPTIMUM FILE TRANSFERS IN A TIME-VARYING NETWORK ENVIRONMENT}
35 U.S.C 119 조 하의 우선권주장
본 출원은 2004년 5월 5일 출원되고 본 명세서에 전체로서 참조로 통합되었으며 발명의 명칭이 "시변 무선 채널에서 최적의 파일 전송을 위한 방법 (METHOD FOR OPTIMAL FILE TRANSFERS IN A TIME-VARYING WIRELESS CHANNEL)" 인, 계속중인 미국 가출원 제 60/568,161 호에 대해 우선권을 주장한다.
배경
I. 분야
본 발명은 일반적으로 네트워크 환경에서의 콘텐츠 전송에 관한 것이며, 더 상세하게는, 시변 네트워크 환경에서 최적의 파일 전송을 위한 방법 및 장치에 관한 것이다.
II. 종래기술의 설명
무선 네트워크에서 수많은 단말 (가입자) 에 콘텐츠 (데이터) 를 분배하는 것은 복잡한 문제이다. 예를 들어, 무선 네트워크는 매우 큰 지리적 영역을 커버하고, 네트워크 커버리지 및/또는 가용 서비스의 타입은 각 영역에 대해 상이할 수도 있다. 따라서, 영역을 이동하고 있는 이동 디바이스에 콘텐츠를 전송하는 것은, 사용자에게 원하는 콘텐츠를 전송하면서 네트워크 리소스를 보존하는 효율적 인 전송 시스템을 요구한다.
다중 사용자 다이버시티는 무선 데이터 네트워크에서 중요한 요소이다. 통상적으로, 이러한 다이버시티는 더 양호한 스펙트럼 효율을 달성하는데 사용된다. 그러나, 애플리케이션 계층의 관점에서, 이러한 다이버시티의 결과로 이러한 네트워크의 사용자에게 할당되는 데이터 레이트에 고유의 변동이 존재할 수도 있다. 전송 제어 프로토콜 (TCP) 에서 통상적으로 사용되는 정체 (congestion) 제어 방식은 유선 네트워크에 대해 설계되었다. 그러나, 무선 채널의 손실 및 변동은, TCP 프로토콜이 콘텐츠를 자주 재송신하게 하여 대역폭을 낭비한다.
통상적으로, 종래의 시스템은 손실 및 변동을 조작하기 위한 시도에서 TCP 프로토콜에 작은 변화를 가함으로써 이 문제를 해결하려 한다. 그러나, 내재하는 윈도우 기반 제어 방식은 이러한 시변 환경에서 결함이 생기고, 현저한 성능 개선을 이룰 수 없다.
따라서, 시변 무선 네트워크에서 효율적인 파일 전송을 제공하는 시스템이 요구된다. 이 시스템은, 네트워크 리소스 및 대역폭이 보존되도록 콘텐츠의 재송신을 제어하는 적응 레이트 기반 프로토콜을 제공하도록 동작해야 한다.
요약
하나 이상의 실시형태에서, 시변 네트워크 환경에서 콘텐츠가 효율적으로 전송될 수 있도록 동작하는 방법 및 장치를 포함하는 파일 전송 시스템이 제공된다. 일 실시형태에서, 이 시스템은, 이전의 송신으로부터 유도된 레이트 추정에 기초하여 콘텐츠가 송신되는 레이트를 제어하도록 동작하는 로직을 송신 서버에 포함한 다. 이 시스템은, 송신 채널이 시간에 따라 변하여 전송 지연 및 패킷 손실이 발생할 수도 있는 무선 네트워크에서의 사용에 특히 적합하다.
일 실시형태에서는, 데이터 네트워크에서 콘텐츠를 송신하는 방법이 제공된다. 이 방법은 선택된 송신 레이트로 콘텐츠를 송신하는 단계 및 하나 이상의 응답확인 신호를 수신하는 단계를 포함한다. 또한, 이 방법은 하나 이상의 응답확인 신호로부터 네트워크 전송 레이트를 추정하는 단계 및 네트워크 전송 레이트에 기초하여 콘텐츠의 선택된 송신 레이트를 조절하는 단계를 포함한다.
일 실시형태에서는, 데이터 네트워크에서 콘텐츠를 송신하는 장치가 제공된다. 이 장치는 선택된 송신 레이트로 콘텐츠를 송신하고 하나 이상의 응답확인 신호를 수신하도록 구성되는 트랜시버 로직 및 하나 이상의 응답확인 신호로부터 네트워크 전송 레이트를 추정하도록 구성되는 추정기 로직을 구비한다. 또한, 이 장치는 네트워크 전송 레이트에 기초하여 콘텐트의 선택된 송신 레이트를 조절하도록 구성되는 레이트 제어기 로직을 구비한다.
일 실시형태에서는, 데이터 네트워크의 콘텐츠를 데이터 네트워크에서 송신하는 장치가 제공된다. 이 장치는 선택된 송신 레이트에서 콘텐츠를 송신하는 수단 및 하나 이상의 응답확인 신호를 수신하는 수단을 구비한다. 또한, 이 장치는 하나 이상의 응답확인 신호로부터 네트워크 전송 레이트를 추정하는 수단, 및 네트워크 전송 레이트에 기초하여 콘텐츠의 선택된 송신 레이트를 조절하는 수단을 구비한다.
일 실시형태에서는, 프로세서에 의해 실행되는 경우 무선 데이터 네트워크에 서 콘텐츠를 송신하도록 동작하는 명령을 포함하는 컴퓨터 판독가능 매체가 제공된다. 컴퓨터 판독가능 매체는 선택된 송신 레이트에서 콘텐츠를 송신하는 명령 및 하나 이상의 응답확인 신호를 수신하는 명령을 포함한다. 또한, 컴퓨터 판독가능 매체는 하나 이상의 응답확인 신호로부터 네트워크 전송 레이트를 추정하는 명령 및 네트워크 전송 레이트에 기초하여 콘텐츠의 선택된 송신 레이트를 조절하는 명령을 포함한다.
본 발명의 다른 양태, 이점 및 특성은 이하 설명하는 도면의 간단한 설명, 상세한 설명 및 청구항의 검토를 통해 명백해질 것이다.
도면의 간단한 설명
본 명세서에서 설명하는 실시형태들의 양태 및 이점들을 첨부한 도면에 관한 다음의 상세한 설명을 참조하여 명백하게 설명한다.
도 1 은 파일 전송 시스템의 일 실시형태를 포함하는 데이터 네트워크를 도시한다.
도 2 는 파일 전송 시스템의 일 실시형태에서 사용하기에 적합한 서버의 일 실시형태의 상세도이다.
도 3 은 파일 전송 시스템의 일 실시형태에서 서버를 동작시키는 방법의 일 실시형태를 도시한다.
도 4 는 파일 전송 시스템의 일 실시형태에서 사용하기에 적합한 이동 단말의 일 실시형태의 상세도이다.
도 5 는 파일 전송 시스템의 일 실시형태에서 이동 단말을 동작시키는 방법 의 일 실시형태를 도시한다.
도 6 은 파일 전송 시스템의 일 실시형태에서 서버가 콘텐츠 패킷을 단말에 송신하는데 사용하는 데이터 구조의 일 실시형태를 도시한다.
도 7 은 파일 전송 시스템의 일 실시형태에서 단말이 응답확인 신호를 콘텐츠 서버에 송신하는데 사용하는 데이터 구조의 일 실시형태를 도시한다.
상세한 설명
다음의 상세한 설명은, 데이터 네트워크에서 서버가 효율적으로 콘텐츠를 전송할 수 있도록 동작하는 파일 전송 시스템의 하나 이상의 실시형태를 설명한다. 시스템은 무선 네트워크 환경에서 사용하기에 더 적합하지만, 통신 네트워크, 인터넷과 같은 공개 네트워크, 가상 사설 네트워크 (VPN) 와 같은 사설 네트워크, 로컬 영역 네트워크, 광역 네트워크, 장거리 네트워크 (long haul network) 또는 임의의 다른 타입의 데이터 네트워크를 포함하는 (여기에 한정되지는 않음) 임의의 타입의 네트워크 환경에서 사용될 수도 있다.
도 1 은 파일 전송 시스템의 일 실시형태를 포함하는 데이터 네트워크 (100) 를 도시한다. 네트워크 (100) 는 콘텐츠 서버 (102), 데이터 네트워크 (104) 및 이동 단말 (106) 을 포함한다. 데이터 네트워크 (104) 는, 서버 (102) 와 단말 (106) 간에 데이터가 송신되게 할 수 있는 임의의 타입 및/또는 조합의 유선 및/또는 무선 네트워크일 수도 있다. 서버 (102) 는 통신 링크 (108) 를 통해 네트워크 (104) 와 통신한다. 통신 링크 (108) 는, 서버 (102) 가 데이터 네트워크 (104) 와 통신하게 할 수 있는 임의의 타입의 유선 또는 무선 통신 링크일 수 도 있다.
서버 (102) 는 콘텐츠 (112), 레이트 제어 로직 (114) 및 레이트 추정 로직 (116) 을 포함한다. 콘텐츠 (112) 는, 네트워크 (104) 를 통해 단말 (106) 에 전송 또는 전달될 임의의 타입의 프로그램, 데이터, 멀티미디어 파일, 스크립트 또는 임의의 다른 타입의 콘텐츠 파일을 포함한다.
일 실시형태에서, 데이터 네트워크 (104) 는 무선 통신 링크 (110) 를 통해 콘텐츠를 이동 단말에 효율적으로 송신할 수 있는 고속 데이터 네트워크를 포함한다. 일 실시형태에서, 무선 통신 링크 (110) 는 순방향 통신 채널, 역방향 통신 채널, 제어 채널 및/또는, 네트워크 (104) 와 단말 (106) 간에 정보를 통신하는데 사용될 수도 있는 임의의 다른 타입의 통신 채널을 포함한다.
단말 (108) 은 이동 전화, 휴대용 컴퓨터, 휴대용 단말기 (PDA) 또는, 무선 통신 링크 (110) 를 통해 콘텐츠를 수신할 수 있는 임의의 다른 타입의 휴대용 디바이스와 같은 임의의 타입의 이동 디바이스 또는 단말을 포함한다.
동작동안, 파일 전송 시스템은, 서버 (102) 가 네트워크 (104) 를 통해 콘텐츠 (112) 를 단말 (106) 에 효율적으로 송신하게 하도록 동작한다. 일 실시형태에서, 콘텐츠 (112) 는, 각각의 패킷이 관련 고유 패킷 식별자 (ID) 를 갖는 데이터 패킷의 시퀀스를 포함한다. 콘탠츠 패킷에 할당되는 패킷 식별자는 미리 결정된 시퀀스를 갖는다. 서버 (102) 는 경로 (118) 에 의해 도시된 바와 같이, 콘텐츠 (112) 를 패킷별로 단말 (106) 에 송신하도록 동작한다. 서버 (102) 는, 데이터 네트워크 (104) 에 의해 지원되는 초기 송신 레이트로 콘텐츠 (112) 를 송신한다. 예를 들어, 일 실시형태에서, 초기 송신 레이트는 거의 초당 600 비트이다.
단말 (106) 이 콘텐츠의 패킷 수신을 개시하면, 단말 (106) 은 경로 (120) 에 도시한 바와 같이, 응답확인 신호를 서버 (102) 로 역전송함으로써 응답한다. 일 실시형태에서, 응답확인 신호는 긍정 응답확인 (Ack) 신호 및 부정 응답확인 (Nack) 신호를 포함한다. 긍정 응답확인은, 패킷이 단말 (106) 에 적절히 수신되었음을 나타내고, 부정 응답확인은, 패킷이 적절히 수신되지 않았음을 나타낸다. 예를 들어, 단말 (106) 이 하나 이상의 패킷을 수신하면, 단말은 하나 이상의 Ack 를 서버 (102) 에 역송신하여, 패킷의 수신을 응답확인한다. 그러나, 일 실시형태에서는, 단말 (106) 이 수신된 패킷 ID 를 사용하여, 하나 이상의 패킷이 수신되지 않았음을 결정한다. 예를 들어, 패킷은 일련의 ID 를 갖고, 단말 (106) 은 수신된 패킷 ID 를 사용하여 하나 이상의 패킷이 수신되지 않았음을 결정한다. 그 결과, 단말 (106) 은 하나 이상의 Nack 를 서버에 송신하도록 동작하여, 어떠한 패킷이 수신되지 않았는지를 나타낸다. 하나 이상의 Nack 신호 수신시에, 서버 (102) 는 수신되지 않은 패킷을 재송신하도록 동작한다. 일 실시형태에서, Ack 및 Nack 는, 하나 이상의 패킷이 수신 또는 수신되지 않았음을 나타내고 이러한 패킷을 식별하도록, 서버 (102) 로의 송신에 적합한 임의의 포맷 또는 타입일 수도 있다.
Ack 및 Nack 가 서버 (102) 에 수신되는 경우, 레이트 추정 로직 (116) 은 네트워크가 패킷을 전송하고 있는 레이트를 결정하도록 동작한다. 예를 들어, 소정의 주기에서 수신된 Ack 의 수는, 네트워크가 성공적으로 패킷을 전송하고 있는 레이트를 레이트 추정 로직 (116) 이 결정하는데 사용할 수도 있는 하나의 요소이다. 네트워크가 패킷을 전송하는 레이트는, 손실있는 접속, 네트워크 정체, 신호 페이딩, 간섭, 및/또는 네트워크 성능에 영향을 미칠 수도 있는 임의의 다른 타입의 조건 또는 특성에 의해 영향받을 수도 있다.
레이트 추정 로직 (116) 이 현재의 네트워크 조건 또는 특성에 기인한 네트워크 성능의 추정치를 결정하면, 레이트 제어 로직 (114) 은 레이트 추정치를 사용하도록 동작하여 장래의 패킷 송신 레이트를 제어한다. 예를 들어, 네트워크가 많은 패킷을 손실하고 있는 것으로 (즉, 신호 페이딩에 기인함) 레이트 추정치가 나타내면, 레이트 제어 로직은 패킷의 송신 레이트를 감소시키도록 동작한다. 반대의 환경에서도 동일하여, 네트워크가 성공적으로 패킷을 송신하고 있는 것으로 레이트 추정치가 나타내면, 레이트 제어 로직은 패킷의 송신 레이트를 증가시키도록 동작한다. 그 결과, 시스템은, 현재의 네트워크 조건 및 송신 환경이 부여하는 데이터 네트워크를 통해 매우 효율적인 파일 전송을 생성하도록 동작한다.
따라서, 하나 이상의 실시형태에서, 파일 전송 시스템은 무선 네트워크를 통해 콘텐츠를 단말에 송신하고, 네트워크의 전송 성능 추정치를 결정하고, 추정치에 기초하여 콘텐츠의 송신 레이트를 조절하여, 가장 효율적인 콘텐츠의 송신을 제공하도록 동작한다.
도 2 는 파일 전송 시스템의 일 실시형태에서 사용하기에 적합한 서버 (200) 의 일 실시형태의 상세도이다. 예를 들어, 서버 (200) 는 도 1 에서 콘텐츠 서 버 (102) 로서 사용될 수도 있다. 서버 (200) 는 프로세싱 로직 (202), 디바이스 리소스 및 인터페이스 (204), 콘텐츠 (206), 및 트랜시버 로직 (208) 을 포함하며, 이 모두는 내부 데이터 버스 (214) 에 결합된다. 또한, 서버 (200) 는 레이트 추정 로직 (210) 및 레이트 제어 로직 (212) 를 포함하며, 이 또한 데이터 버스 (214) 에 결합된다.
하나 이상의 실시형태에서, 프로세싱 로직 (202) 은 CPU, 프로세서, 게이트 어레이, 하드웨어 로직, 메모리 소자, 가상 머신, 소프트웨어 및/또는 임의의 하드웨어와 소프트웨어의 조합을 포함한다. 따라서, 통상적으로 프로세싱 로직 (202) 은 머신 판독가능 명령을 실행하고 및/또는 내부 데이터 버스 (212) 를 통해 서버 (200) 의 하나 이상의 다른 기능 소자를 제어하는 로직을 포함한다.
디바이스 리소스 및 인터페이스 (204) 는, 서버 (200) 가 내부 및 외부 시스템과 통신하게 하는 하드웨어 및/또는 소프트웨어를 포함한다. 예를 들어, 내부 시스템은 대량 저장 시스템, 메모리, 디스플레이 드라이버, 모뎀 또는 다른 내부 디바이스 리소스를 포함할 수도 있다. 외부 시스템은 사용자 인터페이스 디바이스, 프린터, 디스크 드라이브, 또는 다른 로컬 디바이스 또는 시스템을 포함할 수도 있다.
콘텐츠 (206) 는 임의의 타입의 프로그램, 데이터, 파일, 스크립트, 멀티미디어 파일 또는, 이동 단말에 다운로드될 수도 있는 임의의 타입의 콘텐츠를 포함한다. 일 실시형태에서, 콘텐츠 (206) 는, 각각의 패킷이 관련 고유 패킷 식별자 (ID) 를 갖는 일 세트의 패킷 (1-n) 을 포함한다. 예를 들어, 일 실시형태 에서, 패킷에는 미리 정의된 수의 시퀀스를 포함하는 고유 패킷 식별자가 할당된다. 하나 이상의 실시형태에서, 패킷 식별자는, 콘텐츠 (206) 의 패킷이 고유하게 식별되게 하는 임의의 타입 및/또는 포맷의 식별자를 포함할 수도 있다.
트랜시버 로직 (208) 은, 서버 (200) 가 통신 채널 (218) 을 통해 데이터 및/또는 다른 정보를 원격 디바이스, 시스템 또는 네트워크와 송신 및 수신하게 하도록 동작하는 하드웨어 및/또는 소프트웨어를 포함한다. 예를 들어, 일 실시형태에서, 통신 채널 (218) 은, 네트워크 (104) 와 같은 데이터 네트워크와 통신하는데 사용될 수도 있는 임의의 타입의 유선 또는 무선 통신 채널을 포함한다.
레이트 추정기 로직 (210) 은 CPU, 프로세서, 게이트 어레이, 하드웨어 로직, 메모리 소자, 가상 머신, 소프트웨어 및/또는 임의의 하드웨어와 소프트웨어의 조합을 포함한다. 레이트 추정기 로직 (210) 은, 네트워크가 콘텐츠를 원격 디바이스에 얼마나 성공적으로 전송하고 있는지에 대한 추정치를 결정하도록 동작한다. 예를 들어, 서버 (200) 가 콘텐츠 패킷 (206) 을 원격 디바이스에 송신하면, 디바이스는, 패킷이 성공적으로 수신되고 있는지 여부를 나타내는데 필요한 바에 따라 Ack 및/또는 Nack 로 응답한다. 레이트 추정기 로직 (210) 은 수신된 Ack 및/또는 Nack 를 프로세싱하여, 네트워크 접속에 의해 원격 디바이스에 제공되고 있는 전송 레이트를 나타내는 레이트 추정값을 결정한다. 예를 들어, 소정의 송신 기간 동안 수신된 Ack 의 수는 네트워크 접속에 의해 원격 디바이스에 제공되고 있는 전송 레이트를 추정하는데 사용될 수 있다. 레이트 추정기 로직 (210) 의 동작에 대한 더 상세한 설명은 본 문헌의 또 다른 섹션에서 제공된다.
레이트 제어기 로직 (212) 은 CPU, 프로세서, 게이트 어레이, 하드웨어 로직, 메모리 소자, 가상 머신, 소프트웨어 및/또는 임의의 하드웨어와 소프트웨어의 조합을 포함한다. 레이트 제어기 로직 (212) 는 레이트 추정치를 프로세싱하여, 패킷이 서버 (200) 로부터 원격 디바이스에 송신되는 레이트를 조절하도록 동작한다.
서버 (200) 의 동작동안, 트랜시버 로직 (208) 은 콘텐츠 (206) 의 패킷을 원격 디바이스에 송신하고, 패킷 송신에 응답하여 원격 디바이스로부터 송신된 Ack 및/또는 Nack 를 수신하도록 동작한다. 레이트 추정기 로직 (210) 은 수신된 Ack 및/또는 Nack 를 프로세싱하여, 네트워크 채널이 패킷을 원격 디바이스에 얼마나 양호하게 전송하고 있는지를 나타내는 레이트 추정치를 결정한다. 레이트 제어기 로직 (212) 은 레이트 추정기 로직 (210) 에 의해 결정된 레이트 추정치에 기초하여 패킷의 송신 레이트를 조절하도록 동작한다. 따라서, 패킷의 송신 레이트는, 원격 디바이스로의 관련 통신 채널과 데이터 네트워크가 얼마나 양호하게 수행하고 있는지에 의존하여, 유지, 증가 또는 감소될 수도 있다. 그 결과, 콘텐츠의 송신 레이트는, 매우 효율적인 방식으로 원격 디바이스로 콘텐츠를 전송하는 현재의 네트워크 조건에 기초하여 조절된다.
일 실시형태에서, 프로세싱 로직 (202) 은 수신된 Ack/Nack 를 프로세싱하여, 원격 단말에 의해 수신되지 않은, 선택된 콘텐츠 패킷 (206) 을 재송신한다. 또 다른 실시형태에서, 프로세싱 로직 (202) 은, 패킷이 송신된 후 응답 간격을 측정하는데 사용되는 타이밍 로직을 포함한다. 원격 단말로부터 응답 간격에서 응답이 수신되지 않으면, 프로세싱 로직 (202) 은 패킷을 재송신하도록 동작한다.
일 실시형태에서, 파일 전송 시스템은 컴퓨터 판독가능 매체에 저장된 프로그램 명령을 포함하고, 프로세싱 로직 (202) 에 의해 실행되는 경우, 이러한 프로그램 명령은 본 명세서에서 설명한 서버 (200) 의 기능을 제공한다. 예를 들어, 명령은 플로피 디스크, CDROM, 메모리 카드, 플래시 메모리 디바이스, RAM, ROM, 또는 디바이스 리소스 (204) 를 통해 서버 (200) 와 인터페이싱하는 임의의 다른 타입의 메모리 디바이스 또는 컴퓨터 판독가능 매체로부터 서버 (200) 로 로딩될 수도 있다. 또 다른 실시형태에서, 명령은, 트랜시버 로직 (208) 을 통해 서버 (200) 와 인터페이싱하는 네트워크 리소스로부터 서버 (200) 로 다운로드될 수도 있다. 프로세싱 로직 (202) 에 의해 실행되는 경우, 이러한 명령은 본 명세서에서 설명하는 바와 같이 파일 전송 시스템의 하나 이상의 실시형태를 제공한다.
레이트 추정
다음 섹션에서는 레이트 추정기 로직 (210) 의 일 실시형태의 동작을 더 상세히 설명한다. 본 실시형태의 범주 내에서 다른 레이트 추정 기술이 사용될 수도 있음을 인식해야 한다.
N(n) 이 추정 시간 n 에서 응답확인되지 않은 패킷의 수를 나타내는 것으로 가정하면, R(n) 은 시간 n 에서의 추정 레이트이다. 따라서, N(n) 에 대한 다음의 식이 정의될 수도 있으며,
N(n) = N(n-1)+(R(n-1)-R')*T/S
여기서, R' 는 네트워크 전송 레이트이고, T 는 추정 기간이고, S 는 패킷의 크기이다.
시간 n 에서 응답확인되지 않은 패킷의 수는 (n-1) 에서 응답확인되지 않은 수에, 그 시간에 전송된 패킷의 수에서 수신 단말에 의해 응답확인된 패킷의 수를 감산한 수를 합한 수와 동일하다. 따라서, 상기 식을 사용하여;
R(n) = R(n-1)+[N(n)-N(n-1)]*S/T
이며, 이 식은 네트워크에 의해 제공되고 있는 전송 레이트를 레이트 추정 로직 (210) 이 추정하는데 사용된다. 서버의 레이트 추정치가 네트워크 레이트에 비해 작은 경우, 확인응답되지 않은 패킷의 수는 작을 것이다. 이 경우, 레이트 추정식은;
R(n) = 2*R(n-1)
이 된다.
일 실시형태에서, 추정 기간 T 는 추정 로직의 원하는 성능 레벨을 달성하도록 선택되는 것이 바람직할 수도 있다. 예를 들어, T 가 크게 선택되면, 서버는 네트워크 레이트의 변화를 충분히 정확하게 추적하지 못할 수도 있다. T 가 너무 작게 선택되면, R(n) 는 음수가 될 수도 있다. 이러한 조건들을 회피하기 위해, 일 실시형태에서, T 는 충분히 크게 선택되어 네트워크에 대한 효율적인 성능을 제공한다.
도 3 은 파일 전송 시스템의 일 실시형태에서 서버를 동작하는 방법 (300) 의 일 실시형태를 도시한다. 명확화를 위해, 방법 (300) 을 도 2 에 도시된 서 버 (200) 를 참조하여 설명한다. 하나 이상의 실시형태에서, 프로세싱 로직 (202) 은 프로그램 명령을 실행하여, 전술한 기능들을 수행한다.
블록 (302) 에서, 서버는 원격 디바이스 또는 단말로부터 콘텐츠에 대한 요청을 수신한다. 예를 들어, 일 실시형태에서, 서버는 하나 이상의 단말과 통신하는 데이터 네트워크에 결합된다. 네트워크 상의 하나 이상의 단말이 콘텐츠에 대한 요청을 서버에 전송한다. 예를 들어, 일 실시형태에서, 요청은 트랜시버 로직 (208) 에서 수신되고, 추가적인 프로세싱을 위해 프로세싱 로직 (202) 에 포워딩된다.
블록 (304) 에서, 서버는 요청 디바이스로의 콘텐츠 송신을 개시한다. 예를 들어, 콘텐츠는 고유 식별자를 포함하는 콘텐츠 패킷을 포함하고, 서버는 트랜시버 로직 (208) 을 통해 하나 이상의 콘텐츠 패킷을 요청 디바이스로 송신한다. 트랜시버 로직 (208) 은 레이트 제어기 로직 (212) 에 의해 인식된 개시 송신 레이트로 패킷을 송신한다.
블록 (306) 에서, 타이머가 활성화되어 응답 시간 주기를 측정한다. 예를 들어, 일 실시형태에서, 타이머는 프로세싱 로직 (202) 의 일부이다. 응답 시간 주기는, 패킷이 수신되었음을 나타내기 위해 서버가 단말로부터 Ack 응답을 수신해야하는 시간 간격을 정의한다. 시간 간격은 임의의 적절한 값으로 설정될 수도 있다.
블록 (308) 에서, 서버는 원격 디바이스로부터 하나 이상의 Ack 및/또는 Nack 를 수신한다. 예를 들어, 원격 디바이스가 콘텐츠 패킷 수신을 개시하는 경우, 원격 디바이스는 필요에 따라, Ack 및 Nack 를 송신하도록 동작한다. 예를 들어, 원격 디바이스는 수신 콘텐츠 패킷과 관련된 고유의 식별자를 사용하여, 콘텐츠 패킷이 성공적으로 수신되고 있는지 여부를 결정한다. 일 실시형태에서, Ack 및 Nack 는 트랜시버 로직 (208) 에 의해 서버에서 수신된다. 또한, (블록 306 에서 활성화된) 타이머는, 임의의 Ack 또는 Nack 가 수신되기 전에 "시간초과" 가 발생했음을 나타낸다.
블록 (310) 에서, 서버는 수신된 Nack 로부터 결정된 바에 따라, 또는 시간초과의 결과에 따라 디바이스에 콘텐츠 패킷을 재송신한다. 예를 들어, 서버는, 디바이스가 하나 이상의 콘텐츠 패킷을 수신하지 않았음을 나타내는 원격 디바이스로부터 하나 이상의 Nack 를 수신한다. 수신된 Nack 에 기초하여, 서버는 트랜시버 로직 (208) 을 통해 선택된 패킷을 필요에 따라 재송신한다. 또한, 서버는 시간초과 조건의 결과에 따라 하나 이상의 패킷을 재송신한다. 재송신 프로세스에 대한 더 상세한 설명은 본 문헌의 또 다른 섹션에서 제공된다.
블록 (312) 에서, 데이터 네트워크의 현재 전송 레이트 추정치가 결정된다. 일 실시형태에서, 추정기 로직 (210) 은 수신된 Ack 및/또는 Nack 를 프로세싱하여, 현재 네트워크 전송 레이트의 추정치를 결정한다. 예를 들어, 네트워크 전송 레이트는, 네트워크가 패킷을 단말에 전송하고 있는 레이트를 나타낸다. 일 실시형태에서, 전송 레이트의 추정은 전술한 바와 같이 수행된다.
블록 (314) 에서, 결정된 네트워크 전송 네이트에 기초하여 서버의 콘텐츠 송신 레이트가 조절될 필요가 있는지 여부를 결정하기 위한 테스트가 수행된다. 예를 들어, 레이트 제어기 로직 (212) 은 추정기 로직 (210) 에 의해 결정된 현재의 네트워크 전송 레이트의 추정치를 사용하여, 콘텐츠 패킷의 송신 레이트가 조절되어야 하는지 여부를 결정한다. 예를 들어, 네트워크 전송 레이트의 추정치는 레이트 제어기 로직 (212) 에 의한 현재의 패킷 송신 레이트와 비교된다. 현재의 송신 레이트가 유지되어야 하면, 블록 (316) 으로 진행한다. 현재의 송신 레이트가 조절되어야 하면, 블록 (318) 로 진행한다.
블록 (316) 에서, 송신 패킷의 송신 레이트가 조절된다. 예를 들어, 레이트 제어기 로직 (212) 은, 데이터 네트워크의 현재 전송 레이트에 기초하여 현재의 송신 레이트가 선택된 레벨의 성능을 제공하고 따라서 송신 레이트에 대한 조절이 요구되지 않음을 결정한다. 예를 들어, 제어기 로직 (212) 은, 결정된 네트워크 전송 레이트에 기초하여 현재의 송신 레이트가 최상의 송신 성능을 제공하고 있음을 결정한다.
블록 (318) 에서, 콘텐츠 패킷의 송신 레이트는 결정된 네트워크 전송 레이트에 기초하여 조절된다. 예를 들어, 레이트 제어기 로직 (212) 은 결정된 네트워크 전송 레이트에 기초하여 콘텐츠 패킷의 송신 레이트가 성능을 개선할 수 있도록 조절될 수 있음을 결정한다. 일 실시형태에서, 레이트 제어기 로직 (212) 은 트랜시버 로직 (208) 을 제어함으로써 송신 레이트를 조절하여, 필요에 따라 콘텐츠 패킷의 송신 레이트를 증가 또는 감소시킨다. 예를 들어, 일 실시형태에서는, 결정된 전송 레이트가 현재의 송신 레이트보다 낮으면, 제어기 로직 (212) 는 송신 레이트를 감소시키도록 동작한다. 또는, 결정된 전송 레이트가 송신 레이트보다 매우 높거나 및/또는 실질적으로 동일하면, 네트워크가 더 높은 송신 레이트를 지원할 수 있는지를 결정하기 위해 제어기 로직 (212) 은 송신 레이트를 증가시키도록 동작한다. 따라서, 제어기 로직 (212) 은 가능한 최대 송신 레이트를 검색하도록 동작하여 원하는 네트워크 전송 레이트를 달성한다.
블록 (320) 에서, 콘텐츠 송신이 완료되는지를 결정하기 위한 테스트가 수행된다. 예를 들어, 프로세싱 로직 (202) 은, 콘텐츠의 모든 패킷이 원격 디바이스에 성공적으로 송신되었는지를 결정한다. 송신이 완료되면, 블록 (322) 으로 진행한다. 송신이 완료되지 않았으면, 블록 (318) 에서 수행된 임의의 조절을 반영한 송신 레이트를 이용하여, 프로세싱 로직 (202) 이 트랜시버 로직 (208) 을 제어하여 콘텐츠 패킷을 원격 디바이스에 송신하도록 동작하는 블록 (304) 으로 진행한다.
방법 (300) 은 일 실시형태만을 설명하고, 본 실시형태의 범주를 벗어나지 않고 기능적 소자의 변화, 추가 또는 재배열이 행해질 수도 있음을 인식해야 한다. 예를 들어, 블록 (312) 에서 결정된 현재의 네트워크 전송 레이트의 추정은 소정의 무작위 또는 주기적 간격 또는 소정의 트리거 이벤트에 대응하여 수행될 수도 있다.
패킷 재송신
다음의 텍스트는 일 실시형태에서 서버가 콘텐츠 패킷을 원격 디바이스에 재송신하도록 동작하는 방법을 설명한다. 도 3 의 방법 (300) 을 참조하여 설명한 바와 같이, 콘텐츠 패킷의 재송신은 다음의 조건들 중 하나 이상의 결과로서 발 생할 수도 있다.
1. 동일한 현재의 패킷을 식별하는 하나 이상의 Nack 가 수신된다.
2. 패킷이 송신된 후 응답이 수신되지 않으면 시간초과가 발생한다.
일 실시형태에서, 수신된 Nack 에 기초한 패킷 재송신에 관하여, 서버는 콘텐츠 패킷을 재송신하기 전에 동일한 콘텐츠 패킷을 식별하는 하나 이상의 Nack 를 수신하기 위해 대기한다. 예를 들어, 서버는 원격 단말로부터 단지 하나의 Nack 를 수신한 것에 기초하여 패킷을 재송신할 수도 있다. 또 다른 실시형태에서, 서버는 콘텐츠 패킷을 재송신하기 전에 다수의 Nack 를 수신하기 위해 대기한다. 예를 들어, 수신 단말은 패킷이 수신될 때 Ack/Nack 응답을 서버에 전송한다. 패킷이 수신되지 않았으면, 수신 단말은 모든 후속 Ack/Nack 송신에서 그 패킷에 대한 Nack 응답을 반복할 것이다. 따라서, 서버는 누락된 패킷에 대한 Nack 응답의 수신을 계속할 것이다. 서버가 패킷에 대한 선택된 수의 Nack 응답 (예를 들어, 3 개의 Nack 응답) 을 수신한 후, 서버는 콘텐츠 패킷을 재송신한다. 따라서, 서버는 패킷을 재송신하기 전에 누락된 패킷이 수신기에 도달할 기회를 제공한다.
시간초과 조건에 기초한 패킷 재송신에 관하여, 서버는 선택된 시간 간격내에 Ack/Nack 신호가 수신되지 않으면 콘텐츠 패킷을 재송신하도록 동작한다. 예를 들어, 프로세싱 로직 (202) 은, 콘텐츠 패킷의 송신 후 선택된 시간 간격을 측정하는 타이밍 로직을 포함한다. 선택된 시간 간격의 종료전에 패킷에 대한 Ack/Nack 가 수신되지 않으면, 프로세싱 로직 (202) 은 트랜시버 로직 (208) 을 사 용하여 패킷을 재송신하도록 동작한다. 따라서, 시스템은 원격 디바이스로부터의 입력없이 콘텐츠 패킷을 재송신하도록 동작한다.
도 4 는 파일 전송 시스템의 일 실시형태에서 사용되기에 적합한 단말 (400) 의 일 실시형태의 상세도를 도시한다. 단말 (400) 은 프로세싱 로직 (402), 메모리 (404), 디바이스 리소스 및 인터페이스 (406), 트랜시버 로직 (408) 을 포함하며, 이들 모두는 데이터 버스 (410) 에 결합된다.
하나 이상의 실시형태에서, 프로세싱 로직 (402) 은 CPU, 프로세서, 게이트 어레이, 하드웨어 로직, 메모리 소자, 가상 머신, 소프트웨어, 및/또는 하드웨어와 소프트웨어의 임의의 조합을 포함한다. 따라서, 프로세싱 로직 (402) 은 일반적으로, 머신 판독가능 명령을 실행하고 내부 데이터 버스 (410) 를 통해 단말 (400) 의 하나 이상의 기능성 소자를 제어하는 로직을 포함한다.
디바이스 리소스 및 인터페이스 (406) 는, 단말 (400) 이 내부 및 외부 시스템과 통신하게 하는 하드웨어 및/또는 소프트웨어를 포함한다. 예를 들어, 내부 시스템은 대량 저장 시스템, 메모리, 디스플레이 드라이버, 모뎀 또는 다른 내부 디바이스 리소스를 포함할 수도 있다. 외부 시스템은 사용자 인터페이스 디바이스, 프린터, 디스크 드라이브 또는 다른 로컬 디바이스 또는 시스템을 포함할 수도 있다.
트랜시버 로직 (408) 은, 단말 (400) 이 통신 채널 (414) 을 통해 외부 디바이스 또는 시스템과 데이터 및/또는 다른 정보를 송수신하게 하도록 동작하는 하드웨어 및/또는 소프트웨어를 포함한다. 예를 들어, 일 실시형태에서, 통신 채널 (414) 은 순방향 채널, 역방향 채널, 및 단말 (400) 이 통신 채널 (414) 을 통해 데이터 네트워크와 통신하도록 동작하는 제어 채널을 포함한다.
메모리 (404) 는 단말 (400) 에 정보를 저장하기에 적합한 임의의 타입의 메모리를 포함한다. 예를 들어, 단말 (400) 은 콘텐츠를 다운로드하고 추가적인 프로세싱을 위해 메모리 (404) 에 수신 콘텐츠를 저장하도록 동작할 수도 있다.
단말 (400) 의 동작 동안, 콘텐츠는 파일 전송 시스템의 하나 이상의 실시형태에 따라 서버로부터 다운로드될 수도 있다. 콘텐츠는 콘텐츠 패킷의 형태로 다운로드되고, 여기서 각각의 패킷은 고유의 패킷 식별자를 갖고, 모든 패킷 식별자는 미리 정의된 시퀀스를 갖는다. 따라서, 선택된 패킷 식별자를 갖는 하나 이상의 콘텐츠 패킷의 수신은 다른 선택된 식별자를 갖는 다른 콘텐츠 패킷이 수신되었는지 여부를 결정하는데 사용될 수 있다.
일 실시형태에서, 프로세싱 로직 (402) 은 수신된 콘텐츠 패킷에 응답하여 Ack 및 Nack 가 트랜시버 로직 (408) 에 의해 콘텐츠 서버로 송신되도록 동작한다. 예를 들어, 프로세싱 로직 (402) 은 모든 수신된 콘텐츠 패킷에 대해 Ack 신호가 송신되게 한다. Ack 신호는, 단말 (400) 로부터 송신 서버에 전송될 수도 있는 임의의 타입의 응답확인 신호를 포함한다. 또한, 프로세싱 로직 (402) 은, 수신되지 않은 콘텐츠 패킷에 대해 Nack 신호가 송신 서버로 송신되게 한다. 일 실시형태에서, 프로세싱 로직 (402) 은 수신된 콘텐츠 패킷과 관련된 고유의 패킷 식별자를 프로세싱하여 어떤 콘텐츠 패킷이 수신되었는지를 결정한다. 예를 들어, 패킷 식별자는 소정의 시퀀스를 가져서, 선택된 패킷 식별자가 수신되지 않았 다면, 시퀀스에서 더 빠른 패킷 식별자 또한 수신되지 않은 것이다. 그 결과, 프로세싱 로직 (402) 은, 수신되지 않은 임의의 패킷을 식별하기 위해 서버에 송신되는 Nack 신호를 생성한다.
파일 전송 시스템의 하나 이상의 실시형태에서, 단말 (400) 은 다음 기능 중 하나 이상을 수행함으로써 콘텐츠를 다운로드하도록 동작한다.
1. 단말은 데이터 네트워크를 통해 콘텐츠 서버로부터 콘텐츠를 요청한다.
2. 콘텐츠 서버는 각각 고유 식별자를 갖는 콘텐츠 패킷을 단말로 송신함으로써 단말로 콘텐츠의 송신을 개시한다.
3. 단말은, 수신된 패킷 식별자를 프로세싱함으로써 어떤 콘텐츠 패킷이 수신되고 어떤 콘텐츠 패킷이 수신되지 않았는지를 결정하도록 동작한다.
4. 단말은 수신된 및 수신되지 않은 콘텐츠 패킷에 응답하여 Ack 및/또는 Nack 를 송신하도록 동작한다.
5. 단말은 전체 콘텐츠 파일이 수신될 때까지 새로운 콘텐츠 패킷 및 재송신된 콘텐츠 패킷의 수신을 계속한다. 이 프로세스동안, 단말은 필요에 따라 Ack 및/또는 Nack 의 송신을 계속한다.
일 실시형태에서, 파일 전송 시스템은 컴퓨터 판독가능 매체에 저장된 프로그램 명령을 포함하며, 이 명령은 프로세싱 로직 (402) 에 의해 실행되는 경우 전술한 단말 (400) 의 기능을 제공한다. 예를 들어, 명령은, 플로피 디스크, CDROM, 메모리 카드, 플래시 메모리 디바이스, RAM, ROM 과 같은 컴퓨터 판독가능 매체, 또는 디바이스 리소스 (406) 을 통해 단말 (400) 에 인터페이싱하는 임의의 다른 타입의 메모리 디바이스 또는 컴퓨터 판독가능 매체로부터 단말 (400) 로 로딩될 수도 있다. 또 다른 실시형태에서, 명령은, 트랜시버 로직 (408) 을 통해 단말 (400) 로 인터페이싱되는 네트워크 리소스로부터 단말 (400) 로 다운로드될 수도 있다. 명령은 프로세싱 로직 (402) 에 의해 실행될 때 전술한 바와 같인 파일 전송 시스템의 하나 이상의 실시형태를 제공한다.
도 5 는 파일 전송 시스템의 일 실시형태에서 단말을 동작시키는 방법 (500) 의 일 실시형태를 도시한다. 명확화를 위해, 도 4 에 도시된 단말 (400) 을 참조하여 방법 (500) 을 설명한다. 하나 이상의 실시형태에서, 프로세싱 로직 (402) 은 프로그램 명령을 실행하여, 이하의 기능을 수행한다.
블록 (502) 에서, 단말은 데이터 네트워크를 통해 서버로부터 콘텐츠를 요청한다. 예를 들어, 프로세싱 로직 (402) 은 트랜시버 로직 (408) 을 통해 콘텐츠에 대한 요청을 서버로 전송한다.
블록 (504) 에서, 단말은 콘텐츠 패킷의 형태로 서버로부터 요청된 콘텐츠의 수신을 개시한다. 예를 들어, 콘텐츠 패킷은 데이터 네트워크를 통해 서버로부터 송신되고 트랜시버 로직 (408) 에서 수신된다. 프로세싱 로직 (402) 은 수신된 콘텐츠 패킷을 메모리 (404) 에 저장하도록 동작한다.
블록 (506) 에서, 수신된 콘텐츠 패킷에 응답하여 Ack 신호가 생성된다. 예를 들어, 일 실시형태에서, 프로세싱 로직 (402) 은 Ack 신호를 생성하고, 트랜시버 로직 (408) 을 통해 Ack 신호를 서버로 송신한다.
블록 (508) 에서, 임의의 콘텐츠 패킷이 단말에서 수신되지 않았는지를 결정하기 위한 테스트가 수행된다. 예를 들어, 일 실시형태에서, 프로세싱 로직 (402) 은 하나 이상의 수신된 콘텐츠 패킷의 고유 패킷 식별자를 프로세싱하여, 임의의 콘텐츠 패킷이 수신되지 않았는지 여부를 결정한다. 예를 들어, 고유 패킷 식별자가 소정 시퀀스에서 서버로부터 송신되어, 프로세싱 로직 (402) 은 수신된 패킷의 식별자에 기초하여 어떤 패킷이 수신되지 않았는지를 (존재한다면) 결정할 수도 있다. 임의의 패킷이 수신되지 않은 경우, 블록 (512) 으로 진행한다. 누락된 패킷이 존재하지 않는 경우, 블록 (510) 으로 진행한다.
블록 (510) 에서, 콘텐츠와 관련된 모든 콘텐츠 패킷이 단말에 수신되었는지 여부를 결정하기 위한 테스트가 수행된다. 예를 들어, 프로세싱 로직 (402) 은 모든 콘텐츠 패킷이 수신되었는지 여부를 결정한다. 수신될 콘텐츠 패킷이 더 존재하면, 추가적 패킷이 수신되는 블록 (504) 로 진행한다. 모든 콘텐츠 패킷이 단말에서 수신되었다면, 블록 (514) 에서 종료한다.
블록 (512) 에서, Nack 신호가 생성되고 서버에 송신되어, 하나 이상의 콘텐츠 패킷이 수신되지 않았음을 나타낸다. 예를 들어, 일 실시형태에서, 프로세싱 로직 (402) 은 Nack 신호를 생성하고 이 신호를 트랜시버 로직 (408) 을 통해 서버에 송신한다. 그 후, 추가적 콘텐츠 패킷이 수신되는 블록 (504) 로 진행한다. 예를 들어, 서버는 Nack 신호에 응답하여 누락된 콘텐츠 패킷을 재송신할 수도 있다.
방법 (500) 은 단지 일 실시형태를 설명하고, 설명한 실시형태의 범주를 벗 어나지 않으면서 기능성 소자의 변화, 추가, 조합 또는 재배열이 행해질 수도 있음을 인식해야 한다. 예를 들어, 블록 (506 및 512) 에서, 단말은 다수의 Ack 및/또는 Nack 신호를 단일 송신으로 서버에 송신하기 전에 저장하도록 동작할 수도 있으며, 이것은 네트워크 대역폭을 보존하도록 동작한다.
도 6 은 파일 전송 시스템의 일 실시형태에서 서버가 콘텐츠 패킷을 단말에 송신하는데 사용하는 데이터 구조 (600) 의 일 실시형태를 도시한다. 구조 (600) 는 헤더 정보 (602), 패킷 식별자 (604), 플래그 (606) 및 콘텐츠 패킷 데이터 (608) 를 포함한다. 패킷 식별자 (604) 는 식별자의 소정 시퀀스 중 일부인 고유 식별자이다. 따라서, 패킷 데이터 (608) 는 송신 프로세스 동안 식별자 (604) 와 관련되어, 수신 단말이 패킷 데이터의 수신을 응답확인하도록 또는 패킷이 수신되지 않았음을 나타내도록 동작할 수도 있다.
도 7 은 파일 전송 시스템의 일 실시형태에서 단말이 Ack 및/또는 Nack 를 콘텐츠 서버에 송신하는데 사용하는 데이터 구조 (700) 의 일 실시형태를 도시한다. 데이터 구조 (700) 는 헤더 정보 (702), Ack/Nack 지시자 (704) 및 대응 패킷 식별자 (706) 를 포함한다. 일 실시형태에서, 단말은 하나 이상의 Ack/Nack 지시자 (704) 를 총괄하여 관련된 패킷 식별자 (706) 의 수신 또는 비수신을 나타낸다. 따라서, 구조 (700) 를 사용하여, 단말은 콘텐츠 패킷의 송신에 응답하여 하나 이상 (임의의 조합 포함) 의 Ack/Nack 를 콘텐츠 서버에 송신할 수 있다.
따라서, 본 명세서에서는 하나 이상의 파일 전송 시스템의 실시형태를 설명 하였으며, 사상 및 본질적 특징으로부터 벗어나지 않으면서 실시형태들에 대해 다양한 변경이 행해질 수 있다는 것을 인식할 것이다. 따라서, 본 개시 및 설명은 본 발명의 범주에 대해 한정적이 아닌 예시적인 것으로 의도되었고, 본 발명의 범주는 다음의 청구항에 기재한다.
본 명세서에서 개시한 실시형태에 관련하여 설명한 다양한 예시적인 로직, 로직 블록, 모듈 및 회로는 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적 회로 (ASIC), 필드 프로그래머블 게이트 어레이 (FPGA) 또는 다른 프로그램가능한 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 콤포넌트 또는 본 명세서에서 개시된 기능을 수행하도록 설계된 임의의 조합으로 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있고, 또한 프로세서는 임의의 통상적 프로세서, 제어기, 마이크로제어기 또는 상태 머신일 수도 있다. 또한, 프로세서는, 예를 들어, DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서, DSP 와 관련된 하나 이상의 마이크로프로세서 또는 임의의 다른 구성등 연산 디바이스의 조합으로서 구현될 수도 있다.
본 명세서에서 개시한 실시형태와 관련하여 설명한 방법 또는 알고리즘의 단계는 하드웨어에서 직접 구체화될 수도 있고, 프로세서에 의해 실행되는 소프트웨어 모듈 또는 둘의 조합으로 구체화될 수도 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈식 디스크, CD-ROM, 또는 공지된 임의의 다른 형태의 저장 매체에 상주할 수도 있다. 예시적인 저장 매체는, 프로세서가 정보를 판독하고, 정보를 기 록할 수 있도록 프로세서에 결합된다. 또한, 저장 매체는 프로세서에 집적될 수도 있다. 프로세서 및 저장 매체는 ASIC 에 상주할 수도 있다. ASIC 는 사용자 단말에 상주할 수도 있다. 또한, 프로세서 및 저장 매체는 사용자 단말에 이산 콤포넌트로서 상주할 수도 있다.
본 실시형태의 이전의 설명은, 당업자가 본 발명을 실시하거나 사용할 수 있도록 제공된다. 본 실시형태들에 대한 다양한 변형예는 당업자에게 자명하고, 본 명세서에서 정의된 고유의 원리는 본 발명의 사상 또는 범주로부터 벗어나지 않으면서, 예를 들어, 인스턴트 메시징 서비스 또는 임의의 일반적인 무선 데이터 통신 애플리케이션 등에 적용될 수도 있다. 따라서, 본 발명은 본 명세서에 나타낸 실시형태에 한정되도록 의도된 것이 아니며, 본 명세서에서 개시한 원리 및 신규 특성에 부합하는 최광의에 부합하도록 의도된 것이다. 용어 "예시" 는 "예, 예시, 또는 설명으로서 기능하는 것" 을 의미하도록 광의로 사용된다. 본 명세서에 "예시" 로 개시된 임의의 실시형태는 다른 실시형태에 대해 우선시되거나 이점이 있는 것으로 해석될 필요는 없다.

Claims (40)

  1. 선택된 송신 레이트로 콘텐츠를 송신하는 단계;
    하나 이상의 응답확인 신호를 수신하는 단계;
    상기 하나 이상의 응답확인 신호로부터 네트워크 전송 레이트를 추정하는 단계; 및
    상기 네트워크 전송 레이트에 기초하여 상기 콘텐츠의 상기 선택된 송신 레이트를 조절하는 단계를 포함하는, 데이터 네트워크에서 콘텐츠 송신 방법.
  2. 제 1 항에 있어서,
    상기 콘텐츠는 하나 이상의 콘텐츠 패킷을 포함하며,
    상기 송신하는 단계는,
    상기 하나 이상의 콘텐츠 패킷에 고유 패킷 식별자를 할당하는 단계; 및
    상기 선택된 송신 레이트로 상기 콘텐츠 패킷을 송신하는 단계를 포함하는, 데이터 네트워크에서 콘텐츠 송신 방법.
  3. 제 2 항에 있어서,
    상기 수신하는 단계는,
    수신된 콘텐츠 패킷에 대해 Ack 신호를 수신하는 단계; 및
    수신되지 않은 콘텐츠 패킷에 대해 Nack 신호를 수신하는 단계를 포함하는, 데이터 네트워크에서 콘텐츠 송신 방법.
  4. 제 3 항에 있어서,
    상기 추정하는 단계는 상기 수신된 Ack 신호로부터 네트워크 전송 레이트를 추정하는 단계를 포함하는, 데이터 네트워크에서 콘텐츠 송신 방법.
  5. 제 3 항에 있어서,
    선택된 콘텐츠 패킷에 대해 하나 이상의 Nack 신호가 수신되면 상기 선택된 콘텐츠 패킷을 재송신하는 단계를 더 포함하는, 데이터 네트워크에서 콘텐츠 송신 방법.
  6. 제 1 항에 있어서,
    상기 조절하는 단계는, 상기 선택된 송신 레이트가 상기 네트워크 전송 레이트보다 높은 경우 상기 선택된 송신 레이트를 감소시키는 단계를 포함하는, 데이터 네트워크에서 콘텐츠 송신 방법.
  7. 제 1 항에 있어서,
    상기 조절하는 단계는, 상기 네트워크 전송이 상기 선택된 송신 레이트와 실질적으로 동일한 경우 상기 선택된 송신 레이트를 증가시키는 단계를 포함하는, 데이터 네트워크에서 콘텐츠 송신 방법.
  8. 제 1 항에 있어서,
    선택된 콘텐츠가 송신된 후 선택된 시간 간격을 측정하는 단계; 및
    상기 선택된 시간 간격 내에서 응답확인 신호가 수신되지 않는 경우 상기 선택된 콘텐츠를 재송신하는 단계를 더 포함하는, 데이터 네트워크에서 콘텐츠 송신 방법.
  9. 선택된 송신 레이트에서 콘텐츠를 송신하고 하나 이상의 응답확인 신호를 수신하도록 구성되는 트랜시버 로직;
    상기 하나 이상의 응답확인 신호로부터 네트워크 전송 레이트를 추정하도록 구성되는 추정기 로직; 및
    상기 네트워크 전송 레이트에 기초하여 상기 콘텐츠의 상기 선택된 송신 레이트를 조절하도록 구성되는 레이트 제어기 로직을 구비하는, 데이터 네트워크에서 콘텐츠 송신 장치.
  10. 제 9 항에 있어서,
    상기 콘텐츠는 하나 이상의 콘텐츠 패킷을 포함하며,
    상기 트랜시버 로직은,
    상기 하나 이상의 콘텐츠 패킷에 고유 패킷 식별자를 할당하는 로직; 및
    상기 선택된 송신 레이트로 상기 콘텐츠 패킷을 송신하는 로직을 구비하는, 데이터 네트워크에서 콘텐츠 송신 장치.
  11. 제 10 항에 있어서,
    상기 트랜시버 로직은,
    수신된 콘텐츠 패킷에 대해 Ack 신호를 수신하는 로직; 및
    수신되지 않은 콘텐츠 패킷에 대해 Nack 신호를 수신하는 로직을 구비하는, 데이터 네트워크에서 콘텐츠 송신 장치.
  12. 제 11 항에 있어서,
    상기 추정기 로직은 상기 수신된 Ack 신호로부터 상기 네트워크 전송 레이트를 추정하는 로직을 구비하는, 데이터 네트워크에서 콘텐츠 송신 장치.
  13. 제 11 항에 있어서,
    선택된 콘텐츠 신호에 대해 하나 이상의 Nack 신호가 수신되면, 상기 선택된 콘텐츠 신호를 재송신하는 로직을 더 구비하는, 데이터 네트워크에서 콘텐츠 송신 장치.
  14. 제 9 항에 있어서,
    상기 레이트 제어기 로직은, 상기 선택된 송신 레이트가 상기 네트워크 전송 레이트보다 높으면 상기 선택된 송신 레이트를 감소시키도록 동작하는, 데이터 네 트워크에서 콘텐츠 송신 장치.
  15. 제 9 항에 있어서,
    상기 레이트 제어 로직은, 상기 네트워크 전송이 상기 선택된 송신 레이트와 실질적으로 동일하면 상기 선택된 송신 레이트를 증가시키도록 동작하는, 데이터 네트워크에서 콘텐츠 송신 장치.
  16. 제 9 항에 있어서,
    선택된 콘텐츠가 송신된 후 선택된 시간 간격을 측정하고, 상기 선택된 시간 간격 내에서 응답확인 신호가 수신되지 않으면 상기 선택된 콘텐츠를 재송신하도록 동작하는 프로세싱 로직을 더 포함하는, 데이터 네트워크에서 콘텐츠 송신 장치.
  17. 선택된 송신 레이트로 콘텐츠를 송신하는 수단;
    하나 이상의 응답확인 신호를 수신하는 수단;
    상기 하나 이상의 응답확인 신호로부터 네트워크 전송 레이트를 추정하는 수단; 및
    상기 네트워크 전송 레이트에 기초하여 상기 콘텐츠의 상기 선택된 송신 레이트를 조절하는 수단을 구비하는, 데이터 네트워크에서 데이터 송신 장치.
  18. 제 17 항에 있어서,
    상기 콘텐츠는 하나 이상의 콘텐츠 패킷을 포함하며,
    상기 송신하는 수단은,
    상기 하나 이상의 콘텐츠 패킷에 고유 패킷 식별자를 할당하는 수단; 및
    상기 선택된 송신 레이트로 상기 콘텐츠 패킷을 송신하는 수단을 구비하는, 데이터 네트워크에서 데이터 송신 장치.
  19. 제 17 항에 있어서,
    상기 수신하는 수단은,
    수신된 콘텐츠 패킷에 대해 Ack 신호를 수신하는 수단; 및
    수신되지 않은 콘텐츠 패킷에 대해 Nack 신호를 수신하는 수단을 구비하는, 데이터 네트워크에서 데이터 송신 장치.
  20. 제 19 항에 있어서,
    상기 추정하는 수단은 상기 수신된 Ack 신호로부터 상기 네트워크 전송 레이트를 추정하는 수단을 구비하는, 데이터 네트워크에서 데이터 송신 장치.
  21. 제 19 항에 있어서,
    선택된 콘텐츠 패킷에 대해 하나 이상의 Nack 신호가 수신되면, 상기 선택된 콘텐츠 패킷을 재송신하는 수단을 더 구비하는, 데이터 네트워크에서 데이터 송신 장치.
  22. 제 17 항에 있어서,
    상기 조절하는 수단은, 상기 선택된 송신 레이트가 상기 네트워크 전송 레이트보다 높으면 상기 선택된 송신 레이트를 감소시키는 수단을 구비하는, 데이터 네트워크에서 데이터 송신 장치.
  23. 제 17 항에 있어서,
    상기 조절하는 수단은, 상기 네트워크 전송이 상기 선택된 송신 레이트와 실질적으로 동일하면, 상기 선택된 송신 레이트를 증가시키는 수단을 구비하는, 데이터 네트워크에서 데이터 송신 장치.
  24. 제 17 항에 있어서,
    선택된 콘텐츠가 송신된 후 선택된 시간 간격을 측정하는 수단; 및
    상기 선택된 시간 간격 내에서 응답확인 신호가 수신되지 않으면, 상기 선택된 콘텐츠를 재송신하는 수단을 더 구비하는, 데이터 네트워크에서 데이터 송신 장치.
  25. 프로세서에 의해 실행되는 경우 무선 데이터 네트워크에서 콘텐츠를 송신하도록 동작하는 명령을 포함하는 컴퓨터 판독가능 매체로서,
    선택된 송신 레이트로 콘텐츠를 송신하는 명령;
    하나 이상의 응답확인 신호를 수신하는 명령;
    상기 하나 이상의 응답확인 신호로부터 네트워크 전송 레이트를 추정하는 명령; 및
    상기 네트워크 전송 레이트에 기초하여 상기 콘텐츠의 상기 선택된 송신 레이트를 조절하는 명령을 포함하는, 컴퓨터 판독가능 매체.
  26. 제 25 항에 있어서,
    상기 콘텐츠는 하나 이상의 콘텐츠 패킷을 포함하며,
    상기 송신하는 명령은,
    상기 하나 이상의 콘텐츠 패킷에 고유 패킷 식별자를 할당하는 명령; 및
    상기 선택된 송신 레이트로 상기 콘텐츠 패킷을 송신하는 명령을 포함하는, 컴퓨터 판독가능 매체.
  27. 제 26 항에 있어서,
    상기 수신하는 명령은,
    수신된 콘텐츠 패킷에 대해 Ack 신호를 수신하는 명령; 및
    수신되지 않은 콘텐츠 패킷에 대해 Nack 신호를 수신하는 명령을 포함하는, 컴퓨터 판독가능 매체.
  28. 제 27 항에 있어서,
    상기 추정하는 명령은 상기 수신된 Ack 신호로부터 상기 네트워크 전송 레이트를 추정하는 명령을 포함하는, 컴퓨터 판독가능 매체.
  29. 제 27 항에 있어서,
    선택된 콘텐츠 패킷에 대해 하나 이상의 Nack 신호가 수신되면 상기 선택된 콘텐츠 패킷을 재송신하는 명령을 더 포함하는, 컴퓨터 판독가능 매체.
  30. 제 25 항에 있어서,
    상기 조절하는 명령은, 상기 선택된 송신 레이트가 상기 네트워크 전송 레이트보다 높으면, 상기 선택된 송신 레이트를 감소시키는 명령을 포함하는, 컴퓨터 판독가능 매체.
  31. 제 25 항에 있어서,
    상기 조절하는 명령은, 상기 네트워크 전송이 상기 선택된 송신 레이트와 실질적으로 동일하면, 상기 선택된 송신 레이트를 증가시키는 명령을 포함하는, 컴퓨터 판독가능 매체.
  32. 제 25 항에 있어서,
    선택된 콘텐츠가 송신된 후 선택된 시간 간격을 측정하는 명령; 및
    상기 선택된 시간 간격 내에서 응답확인 신호가 수신되지 않으면, 상기 선택 된 콘텐츠를 재송신하는 명령을 더 포함하는, 컴퓨터 판독가능 매체.
  33. 데이터 네트워크에서 콘텐츠를 송신하는 추정기 로직 및 제어기 로직을 구비하는 프로세서로서,
    선택된 송신 레이트로 콘텐츠를 송신하는 단계;
    하나 이상의 응답확인 신호를 수신하는 단계;
    상기 하나 이상의 응답확인 신호로부터 네트워크 전송 레이트를 추정하는 단계; 및
    상기 네트워크 전송 레이트에 기초하여 상기 콘텐츠의 상기 선택된 송신 레이트를 조절하는 단계를 포함하는 방법을 수행하도록 동작하는, 프로세서.
  34. 제 33 항에 있어서,
    상기 콘텐츠는 하나 이상의 콘텐츠 패킷을 포함하고,
    상기 송신하는 단계는,
    상기 하나 이상의 콘텐츠 패킷에 고유 패킷 식별자를 할당하는 단계; 및
    상기 선택된 송신 레이트로 상기 콘텐츠 패킷을 송신하는 단계를 포함하는, 프로세서.
  35. 제 34 항에 있어서,
    상기 수신하는 단계는,
    수신된 콘텐츠 패킷에 대해 Ack 신호를 수신하는 단계; 및
    수신되지 않은 콘텐츠 패킷에 대해 Nack 신호를 수신하는 단계를 포함하는, 프로세서.
  36. 제 35 항에 있어서,
    상기 추정하는 단계는 상기 수신된 Ack 신호로부터 상기 네트워크 전송 레이트를 추정하는 단계를 포함하는, 프로세서.
  37. 제 35 항에 있어서,
    상기 방법은,
    선택된 콘텐츠 패킷에 대해 하나 이상의 Nack 신호가 수신되는 경우 상기 선택된 콘텐츠 패킷을 재송신하는 단계를 더 포함하는, 프로세서.
  38. 제 33 항에 있어서,
    상기 조절하는 단계는, 상기 선택된 송신 레이트가 상기 네트워크 전송 레이트보다 높으면, 상기 선택된 송신 레이트를 감소시키는 단계를 포함하는, 프로세서.
  39. 제 33 항에 있어서,
    상기 조절하는 단계는, 상기 네트워크 전송이 상기 선택된 송신 레이트와 실 질적으로 동일하면, 상기 선택된 송신 레이트를 증가시키는 단계를 포함하는, 프로세서.
  40. 제 33 항에 있어서,
    상기 방법은,
    선택된 콘텐츠가 송신된 후 선택된 시간 간격을 측정하는 단계; 및
    상기 선택된 시간 간격 내에서 응답확인 신호가 수신되지 않으면 상기 선택된 콘텐츠를 재송신하는 단계를 더 포함하는, 프로세서.
KR1020067025510A 2004-05-05 2005-05-05 시변 네트워크 환경에서 최적의 파일 전송을 위한 방법 및장치 KR20070007383A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US56816104P 2004-05-05 2004-05-05
US60/568,161 2004-05-05

Publications (1)

Publication Number Publication Date
KR20070007383A true KR20070007383A (ko) 2007-01-15

Family

ID=34968536

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067025510A KR20070007383A (ko) 2004-05-05 2005-05-05 시변 네트워크 환경에서 최적의 파일 전송을 위한 방법 및장치

Country Status (8)

Country Link
US (1) US8930569B2 (ko)
EP (1) EP1756996A1 (ko)
KR (1) KR20070007383A (ko)
CN (1) CN1981470A (ko)
AR (1) AR048940A1 (ko)
CA (1) CA2565779A1 (ko)
TW (1) TW200623701A (ko)
WO (1) WO2005109719A1 (ko)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9629030B2 (en) * 2003-10-14 2017-04-18 Qualcomm Incorporated Data rate control in soft handoff and during cell-switching
US7500010B2 (en) 2005-04-07 2009-03-03 Jeffrey Paul Harrang Adaptive file delivery system and method
US8909807B2 (en) * 2005-04-07 2014-12-09 Opanga Networks, Inc. System and method for progressive download using surplus network capacity
US8719399B2 (en) * 2005-04-07 2014-05-06 Opanga Networks, Inc. Adaptive file delivery with link profiling system and method
US9065595B2 (en) 2005-04-07 2015-06-23 Opanga Networks, Inc. System and method for peak flow detection in a communication network
US8949452B2 (en) * 2005-04-07 2015-02-03 Opanga Networks, Inc. System and method for progressive download with minimal play latency
US8589508B2 (en) * 2005-04-07 2013-11-19 Opanga Networks, Inc. System and method for flow control in an adaptive file delivery system
US20060230171A1 (en) * 2005-04-12 2006-10-12 Dacosta Behram M Methods and apparatus for decreasing latency in A/V streaming systems
US20060230176A1 (en) * 2005-04-12 2006-10-12 Dacosta Behram M Methods and apparatus for decreasing streaming latencies for IPTV
US20150187209A1 (en) 2006-01-31 2015-07-02 Sigma Designs, Inc. Method and system for synchronization and remote control of controlling units
US10277519B2 (en) * 2006-01-31 2019-04-30 Silicon Laboratories Inc. Response time for a gateway connecting a lower bandwidth network with a higher speed network
US10326537B2 (en) 2006-01-31 2019-06-18 Silicon Laboratories Inc. Environmental change condition detection through antenna-based sensing of environmental change
US20070253021A1 (en) * 2006-04-28 2007-11-01 Medtronic Minimed, Inc. Identification of devices in a medical device network and wireless data communication techniques utilizing device identifiers
US20070258395A1 (en) * 2006-04-28 2007-11-08 Medtronic Minimed, Inc. Wireless data communication protocols for a medical device network
US8348885B2 (en) * 2006-04-28 2013-01-08 Medtronic Minimed, Inc. Remote monitoring for networked fluid infusion systems
US20070253380A1 (en) * 2006-04-28 2007-11-01 James Jollota Data translation device with nonvolatile memory for a networked medical device system
US20070255126A1 (en) * 2006-04-28 2007-11-01 Moberg Sheldon B Data communication in networked fluid infusion systems
US20070254593A1 (en) * 2006-04-28 2007-11-01 Medtronic Minimed, Inc. Wireless data communication for a medical device network that supports a plurality of data communication modes
US8073008B2 (en) * 2006-04-28 2011-12-06 Medtronic Minimed, Inc. Subnetwork synchronization and variable transmit synchronization techniques for a wireless medical device network
CN101507183B (zh) * 2006-08-18 2011-12-21 皇家飞利浦电子股份有限公司 去耦连接
US20080176554A1 (en) * 2007-01-16 2008-07-24 Mediacast, Llc Wireless data delivery management system and method
WO2010017205A2 (en) * 2008-08-04 2010-02-11 Jeffrey Harrang Systems and methods for video bookmarking
EP2350962A4 (en) * 2008-09-18 2013-08-21 Opanga Networks Inc SYSTEMS AND METHODS FOR AUTOMATIC DETECTION AND COORDINATED DISTRIBUTION OF TOO LARGE MULTIMEDIA CONTENT
EP2169914B1 (en) * 2008-09-19 2014-04-02 Limelight Networks, Inc. Content delivery network and related method
JP2012508424A (ja) * 2008-11-07 2012-04-05 オパンガ ネットワークス インコーポレイテッド ホスト装置を利用してデータ転送を開始するポータブルデータ記憶装置
CN102224470B (zh) * 2008-11-24 2015-11-25 Abb研究有限公司 用于提供控制和自动化服务的系统和方法
US9655003B2 (en) * 2009-03-19 2017-05-16 Georgia Tech Research Corporation Systems and methods for improved wireless interface aggregation
JP5491060B2 (ja) * 2009-04-20 2014-05-14 シャープ株式会社 通信速度設定装置、通信速度設定装置の制御方法、コンテンツフィルタリングシステム、通信速度設定装置制御プログラム、およびコンピュータ読み取り可能な記録媒体
US8886790B2 (en) * 2009-08-19 2014-11-11 Opanga Networks, Inc. Systems and methods for optimizing channel resources by coordinating data transfers based on data type and traffic
WO2011022095A1 (en) 2009-08-19 2011-02-24 Opanga Networks, Inc Enhanced data delivery based on real time analysis of network communications quality and traffic
US7978711B2 (en) * 2009-08-20 2011-07-12 Opanga Networks, Inc. Systems and methods for broadcasting content using surplus network capacity
GB2477515B (en) * 2010-02-03 2012-09-26 Orbital Multi Media Holdings Corp Data flow control method and apparatus
US8495196B2 (en) 2010-03-22 2013-07-23 Opanga Networks, Inc. Systems and methods for aligning media content delivery sessions with historical network usage
CN102143052B (zh) * 2010-11-08 2013-10-09 华为技术有限公司 一种无损带宽调整方法、设备及系统
US9201895B2 (en) 2011-06-03 2015-12-01 Apple Inc. Management of downloads from a network-based digital data repository based on network performance
US9154984B1 (en) 2011-11-15 2015-10-06 Google Inc. System and method for estimating network performance
US10637681B2 (en) 2014-03-13 2020-04-28 Silicon Laboratories Inc. Method and system for synchronization and remote control of controlling units
WO2016196582A1 (en) 2015-06-02 2016-12-08 Newracom, Inc. Ack policy for uplink and downlink mu ppdu
US10637673B2 (en) 2016-12-12 2020-04-28 Silicon Laboratories Inc. Energy harvesting nodes in a mesh network
CN109617945A (zh) * 2018-11-02 2019-04-12 北京达佳互联信息技术有限公司 文件传输的发送方法、发送装置、电子设备及可读介质
CN113612737A (zh) * 2021-07-20 2021-11-05 天津七所精密机电技术有限公司 一种基于分组与重传机制的长报文可靠传输方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7085227B1 (en) * 2001-05-11 2006-08-01 Cisco Technology, Inc. Method for testing congestion avoidance on high speed networks
WO2000056021A1 (en) * 1999-03-15 2000-09-21 Vocaltec Communications Ltd. Flow control method and apparatus
US6587875B1 (en) * 1999-04-30 2003-07-01 Microsoft Corporation Network protocol and associated methods for optimizing use of available bandwidth
US7058723B2 (en) * 2000-03-14 2006-06-06 Adaptec, Inc. Congestion control for internet protocol storage
US7099273B2 (en) * 2001-04-12 2006-08-29 Bytemobile, Inc. Data transport acceleration and management within a network communication system
US20030009560A1 (en) * 2001-05-22 2003-01-09 Motorola, Inc. Method and system for operating a core router
US20030023746A1 (en) * 2001-07-26 2003-01-30 Koninklijke Philips Electronics N.V. Method for reliable and efficient support of congestion control in nack-based protocols
US7684329B2 (en) * 2002-05-06 2010-03-23 Qualcomm Incorporated Method and apparatus for augmenting physical layer ARQ in a wireless data communication system
JP4178010B2 (ja) * 2002-08-27 2008-11-12 アルプス電気株式会社 データ伝送方法
US20040159412A1 (en) * 2003-02-13 2004-08-19 Lee Austin Sunshade for vehicles
US8185703B2 (en) * 2003-07-31 2012-05-22 Silicon Graphics International Corp. Detection and control of resource congestion by a number of processors
US7352700B2 (en) * 2003-09-09 2008-04-01 Lucent Technologies Inc. Methods and devices for maximizing the throughput of TCP/IP data along wireless links
US7310682B2 (en) * 2004-01-08 2007-12-18 Lsi Corporation Systems and methods for improving network performance
US7925775B2 (en) * 2004-04-07 2011-04-12 Sony Corporation TCP congestion control based on bandwidth estimation techniques
US7573886B1 (en) * 2004-07-06 2009-08-11 Sun Microsystems, Inc. System and method for adaptive bandwidth determination

Also Published As

Publication number Publication date
CN1981470A (zh) 2007-06-13
WO2005109719A1 (en) 2005-11-17
US20060026296A1 (en) 2006-02-02
EP1756996A1 (en) 2007-02-28
CA2565779A1 (en) 2005-11-17
AR048940A1 (es) 2006-06-14
TW200623701A (en) 2006-07-01
US8930569B2 (en) 2015-01-06

Similar Documents

Publication Publication Date Title
KR20070007383A (ko) 시변 네트워크 환경에서 최적의 파일 전송을 위한 방법 및장치
US8457053B2 (en) Methods and apparatus for dynamically adjusting a data packet window size for data packet transmission in a wireless communication network
JP4016387B2 (ja) データフロー制御方法
US7898958B2 (en) Communication system
US20080101290A1 (en) Apparatus for Arq Controlling in Wireless Portable Internet System and Method Thereof
KR100839267B1 (ko) 확률적 피드백을 이용하여 멀티캐스트 컨텐트의 전달을최적화하기 위한 방법 및 장치
KR20080040671A (ko) 두 무선 장치 사이의 범위 확장
US9930694B2 (en) Re-transmitting a poll to a peer protocol entity when a timer expires
KR20050022309A (ko) 전송창 크기 변경 과정을 조정하기 위한 무선 통신시스템의 수신기 및 전송기 제어 방법
US6662330B1 (en) Joint range reject automatic repeat request protocol
KR100895182B1 (ko) 무선통신 시스템의 전송 제어 방법
WO2007121635A1 (fr) Procédé de retransmission d'une unité de données de commande d'un protocole de commande à liaison sans fil en mode de reconnaissance
KR100684319B1 (ko) 무선 휴대 인터넷 시스템에서 무선 자원을 효율적으로이용하기 위한 arq 제어 방법 및 제어 장치
JP2002521960A (ja) 通信システムにおけるデータ・パケットの伝達方法および装置
US7154850B1 (en) Wireless data transmission using time out control
US20040148422A1 (en) Communication control method, communication system, and communication apparatus that can improve throughput
WO2007090325A1 (fr) Procédé et dispositif de transmission de données
US11563524B2 (en) Wireless communication method and device
Tykhomyrov et al. Analysis and performance evaluation of the IEEE 802.16 ARQ mechanism
KR20080071002A (ko) 이동통신 시스템에서 알엘피 버퍼링 타이머 변경을 이용한전송 장치 및 방법
KR20130063716A (ko) 이기종 네트워크 기반 데이터 동시 전송 서비스를 지원하는 장치

Legal Events

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