KR101231380B1 - 배경 파일 전송에 이용가능한 대역폭을 제어하고 추정하는방법 및 이를 구현하기 위한 컴퓨터 프로그램 제품 - Google Patents

배경 파일 전송에 이용가능한 대역폭을 제어하고 추정하는방법 및 이를 구현하기 위한 컴퓨터 프로그램 제품 Download PDF

Info

Publication number
KR101231380B1
KR101231380B1 KR1020087001003A KR20087001003A KR101231380B1 KR 101231380 B1 KR101231380 B1 KR 101231380B1 KR 1020087001003 A KR1020087001003 A KR 1020087001003A KR 20087001003 A KR20087001003 A KR 20087001003A KR 101231380 B1 KR101231380 B1 KR 101231380B1
Authority
KR
South Korea
Prior art keywords
shared
gateway
bandwidth
background
bandwidth consumption
Prior art date
Application number
KR1020087001003A
Other languages
English (en)
Other versions
KR20080033940A (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 KR20080033940A publication Critical patent/KR20080033940A/ko
Application granted granted Critical
Publication of KR101231380B1 publication Critical patent/KR101231380B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • 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
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

본 발명의 예시적인 실시예는 로컬 네트워크 클라이언트가 공유 게이트웨이에 관한 정보에 액세스하여 그 실제 대역폭 소모량을 측정할 수 있게 한다. 로컬 네트워크 클라이언트는 또한 이런 공유 게이트웨이의 총 용량을 얻을 수 있다. 로컬 네트워크 클라이언트는 그 자신의 대역폭 소모량에 관한 지식을 이용하여, 공유 게이트웨이에 대한 다른 로컬 네트워크 클라이언트의 사용량을 측정할 수 있다. 이런 정보 전부, 즉 공유 게이트웨이의 총 용량, 공유 게이트웨이의 실제 사용량, 및 로컬 네트워크 내에서의 다른 클라이언트에 의한 사용량을 이용하여, 클라이언트는 공유 게이트웨이를 통한 실제 데이터 전송을 이용가능한 총 용량의 적정 비율 내로 유지하기 위해 배경 파일 전송을 조정하거나 트로틀링할 수 있다. 즉, 클라이언트는 공유 게이트웨이에서의 사용량에 기초하여 그 자신의 배경 전송 시스템에서의 데이터 전송을 조정함으로써 공유 게이트웨이에 대한 다른 로컬 네트워크 컴퓨팅 기계의 사용량에 우선권을 부여할 것이다.
로컬 네트워크 클라이언트, 공유 게이트웨이, 실제 대역폭 소모량, 공유 게이트웨이 총용량, 트로틀링

Description

배경 파일 전송에 이용가능한 대역폭을 제어하고 추정하는 방법 및 이를 구현하기 위한 컴퓨터 프로그램 제품{BACKGROUND NETWORK BANDWIDTH SHARING BEHIND GATEWAY DEVICES}
컴퓨터화된 시스템은 사람들의 작업(task) 수행 능력에 많은 이점을 제공한다. 사실상, 정보를 처리하는 컴퓨터 시스템의 능력은 우리가 생활하고 일하는 방식을 변화시켜왔다. 오늘날, 컴퓨터 시스템은 일반적으로 컴퓨터 시스템의 출현 이전에 수동으로 행해졌던 다수의 작업들(예컨대, 문서 작성(word processing), 일정 관리(scheduling), 데이터베이스 관리 등)을 수행하고 있다. 보다 최근에는, 컴퓨터 시스템들이 함께 연결되어 컴퓨터 네트워크들을 형성하였고, 이들 컴퓨터 네트워크를 통해 컴퓨터 시스템들이 전자적으로 통신하여 데이터를 공유한다. 그 결과, 컴퓨터 시스템에서 행해지는 많은 작업(예컨대, 전자 메일 액세스, 웹 브라우징, 멀티미디어 콘텐츠 다운로드, 등)은 컴퓨터 네트워크(예를 들어, 인터넷)를 통한 하나 이상의 다른 시스템과의 전자 통신을 포함한다.
종종, 컴퓨터 네트워크를 통한 전자 통신은 서버 컴퓨팅 시스템(이하, "서버" 또는 "서비스"라 함)에서의 서비스(예컨대, 전자 메일, 웹 서비스 계정, 계정 업데이트, 등)로의 액세스를 요청하는 클라이언트 컴퓨터 시스템(이하, "클라이언트" 또는 "컴퓨팅 장치"라 함)를 포함한다. 예를 들어, 오늘날에는, 인터넷에 연 결되어 여러 서버와 통신하는 수백만의 개인용 컴퓨터(PC)가 있다. 이들 클라이언트 중 대다수는 인터넷을 통해 원격 서버로부터 이런 다운로드를 요청함으로써 새롭거나 업데이트된 소프트웨어를 얻는다.
새로운 소프트웨어 및 업데이트된 소프트웨어 등의 데이터를 원격 네트워크(예컨대, 인터넷)를 통해 PC로 다운로드/업로드하는 통상적인 방법들은 원격 네트워크를 통해 콘텐츠에 액세스하려는(예컨대, 인터넷 브라우징) 사용자의 능력을 방해한다. 처리 속도가 증가하면서, 사용자의 브라우징 또는 데이터 검색 경험에 상당한 병목현상을 일으키는 것이 원격 네트워크의 대역폭이다. 예를 들면, 전형적인 다운로드/업로드 전송은 클라이언트 시스템과 서버 간의 네트워크 내에서 가장 저속인 지점을 포화시킬 것이다. 저속인 네트워크 노드가 인터넷 게이트웨이 장치(IGD)일 경우, 이 기계 및 IGD를 공유하는 임의 다른 기계로부터의 다른 모든 트래픽은 그들의 네트워크 활용을 심하게 제한시킴에 의해 강한 영향을 받게 된다. 또한, 다운로드/업로드가 어떤 이유(예컨대, 원격 네트워크 연결 상실)로 인해 일시적으로 중단되면, 전송을 파일 처음부터 다시 시작할 필요가 있으므로, 상당한 네트워크 자원을 낭비하게 된다. 소프트웨어의 다른 통상적인 다운로딩/업로딩이 사용자가 정해진 시간 동안의 전송을 스케줄링하게 하지만, 이런 스케줄링은 이 기간 동안 다른 네트워크 활동에 참여하려는 사용자의 능력을 여전히 제한시킬 것이다.
비록 소프트웨어와 같은 데이터의 전송이 원격 네트워크를 통한 다른 데이터를 액세스하려는 사용자의 능력을 제한하더라도, 소프트웨어 및 다른 콘텐츠의 이 런 다운로딩/업로딩은 오늘날 여전히 상승하고 있는 컴퓨터 시스템의 대중성에는 중대한 것이다. 예를 들어, 소프트웨어 업데이트를 제공하는 것은 PC 사용자에게는 유익한 데, 이는 문제를 바로 잡고 사용자의 PC 성능을 향상시키기 때문이다. 또한, 소프트웨어 벤더는 제품 지원 호출의 횟수가 줄어드는 이익을 누리게 되고, 이어서 그렇지 않을 경우라면 벤더가 이런 호출을 처리하기 위해 할당될 수도 있는 상당량의 자원이 줄어들게 된다.
원격 네트워크 링크를 통해 데이터를 다운로드/업로드하려는 높은 요구로 인해, 소프트웨어 업데이트와 같은 데이터를 전송할 때 다른 원격 네트워크 활동에 대한 방해를 완화시키려는 시도들이 행해지고 있다. 예를 들어, 최근의 시스템은 비교적 낮은 레벨의 원격 네트워크 대역폭(때로는 "원격 네트워크 유휴 기간"이라 함)을 언제 이용할지를 판정하도록 구성되었다. 이런 시스템에서는 로컬 네트워크 인터페이스(예컨대, 네트워크 카드)를 이용하여 추정된 대역폭 소모량 레벨을 모니터링하여 이용에 대한 임계치를 계산한다. 계산된 임계치 이하에서의 클라이언트와 서버 간의 데이터 전송은 다른 원격 네트워크 활동을 방해하기 쉽지 않다. 따라서, 이용 레벨이 이런 임계치 이하로 떨어지면, 클라이언트는 서버에 주기적으로 연결하여 소프트웨어 또는 업데이트의 적은 부분을 다운로드할 수 있다. 이런 프로세스는 소프트웨어 프로그램, 이용가능한 업데이트, 또는 다른 데이터의 모든 부분이 적합한 장치로 전송될 때까지 계속될 수 있다. 환언하자면, 낮은 순위의 데이터에 대한 다운로딩/업로딩은 원격 네트워크 유휴 기간 동안 "배경" 프로세스에서 원격 네트워크 링크를 통해 전송될 수 있다.
비록 이런 배경 데이터 전송 시스템들이 다른 네트워크 활동에 대한 방해를 제거시키도록 일부 상당한 진보가 이루어졌지만, 이들 모델에는 여전히 여러 단점들이 존재한다. 예를 들면, 상술한 바와 같이, 배경 전송 시스템에 의해 구현된 트로틀링(throttling) 기술은 로컬 네트워크 인터페이스(예컨대, 네트워크 카드)로부터 얻어진 네트워크 트래픽 측정치를 이용하여 유효 이용가능 대역폭을 제어하고 추정한다. 이런 해결방안이 많은 네트워크 접속 형태(topology)에서는 적정하지만, 일부 구성의 경우, 이 기술을 이용하여 검색될 수 있는 정보는 배경 전송 시스템들이 정확하게 트로틀링하게 하기 위해서는 충분치 않다.
이런 문제가 있는 네트워크 접속 형태의 일례로는 전형적인 홈 네트워크가 있는 데, 여기서는 로컬 네트워크 상의 컴퓨터들이 적정하게 빠른 네트워크 링크(예컨대, 100Mbps 네트워크 허브 및 카드)를 이용하여 서로 연결되지만, 인터넷 연결성을 제공하는 장치(예컨대, 디지털 가입자 회선(DSL) 모뎀)는 훨씬 더 느린 속도로 실행된다. 이런 경우, DSL 박스는 "게이트웨이 장치"의 역할을 실행하고, 실제로는 로컬 네트워크와 외부 또는 원격 네트워크(예컨대, 인터넷) 간에서의 데이터 전송에 의해 도달될 수 있는 최대 속도의 캡(cap)을 부과하는 네트워크의 세그먼트이다. 따라서, 네트워크 트래픽에 대한 측정이 로컬 네트워크 인터페이스 레벨에서 이루어지면, "게이트웨이 장치의 감속으로 표현되는 "병목현상"을 탐지할 수 없다. 또한, 로컬 네트워크에 연결된 시스템들에 의한 게이트웨이 장치에서의 총 대역폭 소모량은 떨어져 있는 각 시스템의 네트워크 인터페이스로부터 측정될 수 없다.
<요약>
배경 전송 서비스들의 상기 결함 및 단점들은 본 발명의 예시적인 실시예를 통해 극복된다. 이 요약 부분은 이하 상세한 설명에서 기술될 개념들에 대한 선택을 간단한 형태로 도입하려고 제공된 것임에 주목할 필요가 있다. 그러나, 이 요약 부분은 청구 요지의 핵심이나 본질적인 특징들을 확인하거나, 또는 청구 요지의 범주를 확정하려는 의도는 아니다.
본 발명의 일 실시예에서, 로컬 네트워크와 원격 네트워크 사이에서 공유 게이트웨이를 통한 배경 파일들의 전송에 유효한 이용가능 대역폭을, 공유 게이트웨이에 대한 다른 로컬 네트워크 컴퓨팅 기계의 사용량에 우선권을 부여함으로써 제어하고 추정하기 위한 방법, 시스템, 및 컴퓨터 프로그램 제품이 제공된다. 이 실시예에서, 공유 게이트웨이를 통해 전송되는 데이터의 총 대역폭 용량이 결정된다. 공유 게이트웨이는 복수의 로컬 네트워크 클라이언트를 원격 네트워크 내의 하나 이상의 컴퓨팅 시스템에 링크하고, 여기서, 복수의 로컬 네트워크 클라이언트 중 적어도 하나는 공유 게이트웨이를 통한 실제 대역폭 소모량이 소정의 임계치 이하일 때의 구간에서 데이터 파일들을 전송하도록 구성된 배경 데이터 전송 모듈을 포함한다. 또한, 공유 게이트웨이를 통한 데이터 전송의 실제 대역폭 소모에 관한 통계 정보를 수신한다. 또한, 배경 데이터 전송 모듈을 포함한 적어도 하나의 로컬 네트워크 클라이언트에 대응하는 데이터 전송을 위한 배경 데이터 전송 대역폭 소모량을 결정한다. 그 후, 공유 게이트웨이 장치 상에서의 데이터 전송을 위한 총 대역폭 용량과 실제 대역폭 소모량을 비교한다. 비교에 근거하여, 배경 데이터 전송 대역폭 소모량을 트로틀링하여 복수의 로컬 네트워크 클라이언트에서의 공유 게이트웨이에 걸친 다른 활동의 방해를 감소시킨다.
본 발명의 다른 특징들 및 이점들은 이하의 설명에 개시될 것이며, 부분적으로는 그 설명으로부터 명백하게 되거나, 본 발명의 실시에 의해 학습될 수 있다. 본 발명의 특징들 및 이점들은 첨부된 청구범위에서 특히 지적된 수단 및 조합에 의해 실현 및 얻어질 수 있다. 본 발명의 이들 및 다른 특징들은 이하의 설명 및 첨부된 청구범위로부터 완전하게 명백해 지거나, 이하 기술될 본 발명의 실시에 의해 학습될 수 있다.
본 발명의 상기 및 다른 이점 및 특징들을 얻을 수 있는 방법으로 기술하기 위해, 상기에서 간략히 설명된 본 발명에 대해 첨부된 도면에 예시된 특정 실시예를 참조하면서 보다 상세히 기술하기로 한다. 이들 도면은 본 발명의 단지 전형적인 실시예를 도시한 것으로 본 발명의 범주를 제한시키려는 의도는 아닌 것으로 이해하므로, 본 발명은 첨부된 도면을 이용하여 상세히 설명하고자 한다.
도 1a는 예시적인 실시예에 따른 배경 데이터 전송 모듈을 이용하는 로컬 네트워크 구성을 도시한 도면.
도 1b는 예시적인 실시예에 따른 배경 데이터 전송 모듈을 이용하는 로컬 네트워크 시스템의 다른 접속 형태를 도시한 도면.
도 1c는 예시적인 실시예에 따른 배경 데이터 전송 모듈의 이용 방법을 보다 상세히 설명한 도면.
도 2는 예시적인 실시예에 따른 공유 게이트웨이를 통한 배경 파일들을 전송하는 데 유효한 이용가능 대역폭을 제어하고 추정하는 방법에 대한 흐름을 도시한 도면.
도 3은 본 발명의 여러 특징들을 구현하기에 적합한 운영 환경을 제공하는 일례의 컴퓨팅 시스템을 도시한 도면.
본 발명은 공유 게이트웨이 장치를 통해 배경 파일들 또는 데이터를 전송하는 데 유효한 이용가능 대역폭을 추정하기 위한 방법, 시스템, 및 컴퓨터 프로그램 제품까지 확장된다. 본 발명의 실시예들은 후술될 바와 같이, 각종 컴퓨터 하드웨어 또는 모듈을 포함한 특수 목적 컴퓨터 또는 범용 컴퓨터를 포함할 수 있다.
상술한 바와 같이, 송신 또는 수신 시스템의 로컬 네트워크 인터페이스(예컨대, 네트워크 카드)에서 대역폭을 결정하고 용량을 측정하는 것은 국지적인 해결책으로서, 공유된 로컬 네트워크 환경에서 실제 이용할 수 있는 대역폭을 부정확하게 나타낸다. 예를 들어, 시스템이 56k 모뎀을 통한 인터넷으로의 10-100Mbps 및 제한된 링크 등의 대용량의 인터페이스 카드를 갖는 경우, 전송 레이트는 실제 56k 모뎀에 대립하는 것으로, 네트워크 인터페이스 카드로부터 이용가능한 대역폭 용량을 도출해 낼 것이다. 다수의 시스템이 연결 지점을 공유할 때, 한 시스템의 로컬 네트워크 인터페이스 카드 용량 및 도출된 이용가능한 대역폭은 공유된 연결 지점을 통해 송신되거나 수신된 다른 시스템의 누적 트래픽은 고려하지 않는다. 이런 부정확한 트로틀링 레이트는 병목현상을 일으켜 원격 네트워크 또는 인터넷 연결 지점을 포화시킬 수 있다.
한 예시적인 실시예에 따르면, 상술한 배경 파일 전송 모델의 결함에 대한 한 가지 해결방안은 각 로컬 네트워크 클라이언트가 로컬 네트워크 외부로 나가는 데이터 전송을 위한 순간 대역폭 소모량에 관한 정보를 공유할 수 있게 하는 것이다. 이 정보는 배경 데이터 정보 및 전경 대역폭 소모량도 포함한다. 로컬 네트워크 내의 클라이언트 간에서 공유되는 게이트웨이 장치의 총 용량에 대한 지식을 이용하여, 각 로컬 네트워크 클라이언트는 게이트웨이를 통한 실제 대역폭 소모량을 결정하고, 이것을 공유 게이트웨이의 용량과 비교하고, 임계치(이하에서 상세히 기술함)에 기초하여 그 배경 데이터 전송 레이트를 적절하게 조정하거나 트로틀링할 수 있다.
비록 상기 예시적인 실시예가 현재의 배경 전송 서비스 모델의 결함을 극복하는 한 모델을 제공하지만, 이 해결방안은 또한 일부 결함 및 단점들을 갖는다. 예를 들어, 로컬 네트워크 내의 각 클라이언트는 다른 로컬 네트워크 컴퓨팅 장치와 그 정보를 공유할 능력을 구성하거나 가져야 한다. 단지 한 컴퓨팅 장치만이라도 이런 능력을 갖지 않을 경우에는, 공유 게이트웨이에 걸친 네트워크 트래픽을 정확하게 나타내는 것은 거의 불가능하다. 또한, 각 컴퓨팅 장치의 대역폭 소모량에 관한 정보의 공유는 로컬 네트워크에 추가의 부담을 주게 되는 데, 이는 로컬 네트워크 내의 각 컴퓨터 사이에서 대역폭 소모량 정보를 공유해야 하기 때문이다.
이런 단점으로 인해, 다른 예시적인 실시예에서는 로컬 링크와 원격 네트워 크(예턴대, 인터넷)로의 연결 간의 공유 게이트웨이로 대역폭 측정치를 옮김으로써 배경 전송 서비스 트로틀링 정확도를 향상시키는 해결책을 제공한다. 이런 공유 게이트웨이 장치는 컴퓨터 실행 인터넷 연결 공유 소프트웨어, 네트워크 어드레싱 변환(NAT) 박스 등의 장치, 또는 모뎀, DSL 회선, 케이블 모뎀, T1 회선 등을 공유하는 보다 정교한 게이트웨이 장치를 포함할 수 있다. 바이트-카운터(byte-counter) 지원 게이트웨이 장치를 통해 하나의 연결 지점을 공유하는 다수의 시스템의 경우, 배경 전송 서비스 또는 배경 파일 전송에 얼마나 많은 이용가능한 대역폭을 사용할 수 있는가를 계산할 때, 배경 전송 서비스는 누적된 시스템의 내향(inbound) 및 외향(outbound) 트래픽을 요인(factor)으로서 계산에 넣을 수 있다.
환언하자면, 로컬 네트워크 클라이언트는 공유 게이트웨이로부터 공유 게이트웨이에 걸친 실제 대역폭 소모량을 결정하는 정보에 접근할 수 있다. 로컬 네트워크 클라이언트는 또한 후술할 각종 수단을 통해 이런 공유 게이트웨이의 총 용량을 얻을 수 있다. 공유 게이트웨이 내로 및 외부로 데이터 전송을 위한 자신의 대역폭 소모량에 대한 지식을 이용하면, 공유 게이트웨이에 대한 다른 클라이언트의 사용량을 결정할 수 있다. 이런 정보 전부, 즉 공유 게이트웨이의 총 용량, 공유 게이트웨이의 실제 사용량, 및 로컬 네트워크 내에서의 다른 클라이언트 또는 컴퓨팅 장치들의 사용량을 이용하여, 클라이언트는 공유 게이트웨이에 걸친 실제 데이터 전송을 이용가능한 총 용량의 적정 또는 원하는 비율로 유지시키도록 그 배경 파일 전송을 조정하거나 트로틀링할 수 있다. 즉, 클라이언트는 그 자신의 배경 전송 시스템을 위해 데이터 전송을 조정함으로써 공유 게이트웨이에 대한 다른 로컬 네트워크 컴퓨팅 기계의 사용량에 우선권을 부여할 것이다.
본 발명의 여러 실시예에 대해 보다 상세히 기술하기 전에, 본 발명의 원리를 구현하는 데 이용될 수 있는 적합한 컴퓨팅 아키텍처에 대해 도 3을 참조하면서 기술하기로 한다. 이하의 기술에서는, 본 발명의 실시예들은 달리 설명하지 않는 한, 하나 이상의 컴퓨터에 의해 수행되는 액트(act) 및 동작들(operation)의 심볼 표현을 참조하면서 기술될 것이다. 이처럼, 때때로 컴퓨터 실행으로 참조되는 이런 액트 및 동작들은 데이터를 구조화된 형태로 표현하는 전기 신호의 컴퓨터 처리 장치에 의한 조작(manipulation)을 포함한다. 이 조작은 데이터를 변환시키거나 또는 이것을 컴퓨터의 메모리 시스템 내의 위치에 보존시키며, 이것은 당업자가 숙지하고 있는 방식으로 컴퓨터의 동작을 재구성하거나, 그렇지 않으면 변경시킨다. 데이터가 보존되는 데이터 구조는 데이터의 포맷으로 정의된 특정 특성을 갖는 메모리의 물리적 위치이다. 그러나, 본 발명의 원리가 상기한 관점으로 기술하였지만, 당업자가 이하 기술될 액트 및 동작들의 몇몇을 하드웨어로 구현될 수 있다는 것을 인식하는 것으로 제한하려는 의도는 아니다.
동일 참조부호가 동일 요소를 참조하는 도면을 참조해 보면, 본 발명의 원리는 적합한 컴퓨팅 환경에서 구현되는 것으로 도시되어 있다. 이하의 기술은 도시된 본 발명의 실시예에 기초한 것으로, 본 발명을 본원에서 명백하게 기술되지 않은 다른 실시예에 대해 제한하려는 것으로 취급해서는 안 된다.
도 3은 이들 장치에 사용할 수 있는 예시적인 컴퓨터 아키텍처의 개략적인 다이어그램을 도시한 것이다. 설명할 목적으로, 도시된 아키텍처는 단지 작합한 환경의 일례에 불과한 것으로, 본 발명의 사용 또는 기능의 범주를 제한하려는 의도는 아니다. 또한, 컴퓨팅 시스템이 도 3에 도시된 컴포넌트들 중 임의 하나 또는 조합에 관한 임의 종속성 또는 요건을 갖는 것으로 해석되어서는 안 된다.
본 발명의 원리는 다수의 다른 범용 또는 특수 목적 컴퓨팅 또는 통신 환경이나 구성에서도 사용할 수 있다. 본 발명에 사용하기에 적합한 공지의 컴퓨팅 시스템, 환경 및 구성의 예로는 이동 전화, 포켓 컴퓨터, 개인용 컴퓨터, 서버, 멀티프로세서 시스템, 마이크로프로세서-기반 시스템, 미니컴퓨터, 메인프레임 컴퓨터 및 상기한 컴퓨터나 장치들 중 임의의 것을 포함하는 분산형 컴퓨팅 환경을 포함하지만, 이것에만 한정되는 것은 아니다.
가장 기본적인 구성에서, 컴퓨팅 시스템(300)은 전형적으로 적어도 하나의 처리 장치(302) 및 메모리(304)를 포함한다. 메모리(304)는 휘발성(예컨대, RAM), 비휘발성(예컨대, ROM, 플래시 메모리 등) 또는 이들 둘의 임의 조합일 수 있다. 이런 가장 기본적인 구성은 도 3에서 대시선(306)으로 도시된다. 이 설명부분 및 청구범위에서, "컴퓨팅 시스템"은 펑션(function)을 수행하는 소프트웨어, 펌웨어 또는 마이크로코드를 실행할 수 있는 임의 하드웨어 컴포넌트 또는 하드웨어 컴포넌트의 조합으로 정의된다. 컴퓨팅 시스템은 분산 기능을 달성하기 위해 분산될 수도 있다.
저장 매체 장치는 추가의 특징들 및 기능을 가질 수 있다. 예를 들어, 그들은 PCMCIA 카드, 자기 및 광 디스크, 및 자기 테이프를 포함하지만, 이에만 한정되 지 않는 추가의 (이동식 및 고정식) 저장 장치를 포함할 수 있다. 이런 추가의 저장 장치는 도 3에서 이동식 저장 장치(308) 및 고정식 저장 장치(310)로 도시된다. 컴퓨터-저장 매체는 컴퓨터-판독가능 명령어, 데이터 구조, 프로그램 모듈 등의 정보 또는 다른 데이터와 같은 정보를 저장하기 위한 임의 방법 또는 기술로 구현된 휘발성 및 비휘발성 매체, 이동식 및 고정식 매체를 포함한다. 메모리(304), 이동식 저장 장치(308) 및 고정식 저장 장치(310)는 컴퓨터-저장 매체의 모든 예이다. 컴퓨터-저장 매체는 RAM, ROM, EEPROM, 플래시 메모리, 다른 메모리 기술, CD-ROM, DVD, 다른 광 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치, 다른 자기 저장 장치; 및 원하는 정보를 저장하는 데 사용될 수 있으며 컴퓨팅 시스템에 의해 액세스될 수 있는 임의 다른 매체를 포함하지만, 이것에만 한정되는 것은 아니다.
본원에서 사용된 "모듈" 또는 "컴포넌트"는 컴퓨팅 시스템 상에서 실행되는 소프트웨어 객체 또는 루틴을 일컬을 수 있다. 본원에서 기술된 여러 컴포넌트, 모듈, 엔진 및 서비스는 컴퓨팅 시스템 상에서 실행되는 객체 또는 프로세스로서(예컨대, 개별 스레드로서) 구현될 수 있다. 본원에 기술된 시스템 및 방법은 소프트웨어로 구현되는 것이 바람직하지만, 소프트웨어 및 하드웨어 또는 하드웨어로 구현되는 것도 가능하며 고려된다. 이 설명 부분에서, "컴퓨팅 엔티티"는 본원에서 이미 정의된 임의 컴퓨팅 시스템이거나, 또는 컴퓨팅 시스템 상에서 실행되는 모듈레이트(modulate)의 임의 모듈 또는 조합일 수 있다.
컴퓨팅 시스템(300)은 또한 호스트가, 예를 들어, 네트워크(320)를 통해 다 른 시스템 및 장치들과 통신을 할 수 있게 하는 통신 채널(312)을 포함할 수 있다. 통신 채널(312)은 통신 매체의 예이다. 통신 매체는 전형적으로 컴퓨터-판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 다른 데이터를 반송파나 다른 전송 메커니즘 등의 피변조 데이터 신호로 구체화하고 임의 정보 전달 매체를 포함한다. 제한되지 않는 일례로, 통신 매체는 유선 네트워크 및 직접 배선 연결 등의 유선 매체, 및 음향, 무선, 적외선, 및 다른 무선 매체 등의 무선 매체를 포함한다. 본원에서 사용된 컴퓨터-판독가능 매체란 용어는 저장 매치 및 통신 매체 모두를 포함한다.
컴퓨팅 시스템(300)은 또한 키보드, 마우스, 펜, 음성-입력 컴포넌트, 터치-입력 장치 등의 입력 컴포넌트(314)를 가질 수 있다. 출력 컴포넌트(316)는 화면 디스플레이, 스피커, 프린터 등 및 그들을 구동하는 렌더링 모듈(흔히, "어댑터"라 함)을 포함한다. 컴퓨팅 시스템(300)은 전원 공급장치(318)를 갖는다. 이들 컴포넌트 모두는 본 기술 분야에서는 공지된 것으로, 여기서 더 이상의 설명은 필요치 않다.
도 1a 및 도 1b는 예시적인 실시예에 따른 배경 데이터 전송 모듈(135)을 이용하는 분산 시스템(100)에서의 각종 접속 형태를 도시한 것이다. 분산 시스템(100)은 도 3에 관련하여 상술한 컴퓨팅 시스템(300)과 유사할 수 있지만, 반드시 그럴 필요는 없다. 도 1a에 도시된 바와 같이, 분산 시스템(100)은 공유 게이트웨이(120)를 통해 접속되는 로컬 네트워크(125) 및 원격 네트워크(105)를 포함한다. 로컬 네트워크(125)가 링 구성으로 도시되었지만(여기서 각 클라이언트(140, 145, 150)는 링형 구조로 접속됨), 본 발명에서는 다른 접속 형태도 가능하다는 것에 주목힐 필요가 있다. 예를 들어, 도 1b에서, 로컬 네트워크(125)의 클라이언트(145, 150, 155, 160)는 직렬 접속되어 트리형 구조를 형성한다. 그러나, 물론, 본 발명은 단지 이들 접속 형태에만 한정되는 것이 아니라, 로컬 네트워크(125)와 그 내의 클라이언트(140, 145, 150, 155, 160)는 임의 알려진 방법으로 구성될 수 있다. 따라서, 로컬 네트워크(125) 내의 클라이언트(140, 145, 150, 155, 160)의 임의 특정 접속 형태 또는 구성은 본원에서 단지 설명을 위해 이용한 것으로, 본 발명의 범주를 한정하거나 협소하게 하려는 의도는 아니다.
로컬 네트워크(125)의 접속 형태 또는 구성에 관계없이, 로컬 네트워크(125) 내로 유입되고 로컬 네트워크(125)으로부터 원격 네트워크(105)로 유출되는 데이터 또는 트래픽은 하나 이상의 공유 게이트웨이(120)를 순회할 것이다(traverse). 공유 게이트웨이는 전형적으로 원격 네트워크(105)으로의 연결(110)에 대해 상이한 전송 레이트를 가지며 로컬 네트워크(125) 내의 연결(115)에 대해 데이터 흐름 속도를 갖는다. 원격 네트워크(105)는 로컬 네트워크(125)의 외부에 있는 임의 유형의 네트워크일 수 있다는 것에 주목해야 한다. 예를 들어, 원격 네트워크(105)는 광역 네트워크(WAN), 근거리 통신망(LAN), 인터넷, 가상 사설 네트워크(VPN) 등일 수 있다. 상술된 바와 같이, 배경에서 실행되는 소프트웨어 및 하드웨어 업데이트가 전형적으로 인터넷 도처에 발생하지만, 본 발명은 임의 특정 유형의 애플리케이션 다운로드 또는 데이터 전송에만 한정되지 않으므로, 임의 특정 유형의 원격 네트워크(105)에만 국한되는 것은 아니다. 따라서, 임의 특정 유형의 원격 네트워 크(105)의 사용이나 로컬 네트워크(125)와 원격 네트워크(105) 간에서의 배경 데이터 전송을 위한 데이터 유형의 사용은 단지 본원에서 설명을 위한 것으로, 명백하게 주장하지 않는 한 본 발명의 범주를 제한 또는 협소하게 하려는 의도는 아니다.
공유 게이트웨이(120)를 거쳐 전송되는 데이터의 유형이나, 원격 네트워크(105)의 유형에 관계없이, 예시적인 실시예에서는 공유 게이트웨이(120)를 통한 배경 파일 또는 데이터 전송에 유효한 이용가능 대역폭을 제어하고 추정하기 위해 공유 게이트웨이(120)에 대한 다른 로컬 네트워크(125)의 컴퓨팅 기계(예컨대, 145, 159) 사용량에 우선권을 부여한다. 도 1a를 다시 참조해 보면, 로컬 네트워크(125)의 기계(140, 145, 150)의 하나 이상은 로컬 네트워크 인터페이스(LNI)(130) 및/또는 배경 데이터 전송 모듈(135)(BDTM)을 포함할 수 있다. 이하에서 상세히 기술될 바와 같이, 로컬 네트워크 인터페이스(130) 또는 배경 데이터 전송 모듈(135) 중 어느 하나가 공유 게이트웨이(120)를 통한 배경 데이터 파일 전송에 이용가능한 대역폭을 결정하는 데 사용될 수 있다.
상술한 바와 같이, 일례의 실시예에서, 로컬 네트워크(125) 내의 각 개별 클라이언트(140, 145, 150)는 그들 간에서(또는 미도시의 중앙 서비스를 통해) 공유 게이트웨이(120)를 통한 대역폭의 사용량을 공유할 수 있다. 또한, 공유된 데이터는 공유 게이트웨이(120)에 걸쳐 전경 및 배경 대역폭 소모량으로 나누어질 수 있다. 공유 게이트웨이(120)의 총 용량을 알고 있으면, 배경 데이터 전송 모듈(135)을 사용하여 공유 게이트웨이(120)에 걸친 배경 데이터 전송을 트로틀링함으로써 로컬 네트워크 내에서 실행되는 다른 원격 네트워크(105)의 활동에 대한 방해를 감 소시키는 것을 도울 수 있다. 환언하자면, 공유 게이트웨이(120)의 총 용량 및 각 클라이언트(140, 145, 150)의 전경/배경 사용량에 기초하여, 배경 사용량을 다른 원격 네트워크(105)의 활동을 방해하지 않도록 정해진 소정의 임계치(예컨대, 실제 총 대역폭의 5%, 즉 전경/배경 사용량) 이하로 유지시키기 위해 배경 사용량을 트로틀링할 수 있다.
공유 게이트웨이(120)의 총 용량은 공지된 여러 방법으로 결정될 수 있는 것에 주목할 필요가 있다. 예를 들어, 공유 게이트웨이(120) 용량의 정격값을 이용하여 그 총 용량을 추정할 수 있다. 그러나, 전형적으로, 이런 정격값은 부정확하다. 따라서, 공유 게이트웨이(120)를 거치는 최대 트래픽량을 연속으로 모니터링함으로써 공유 게이트웨이(120)에 걸친 총 용량을 추정할 수 있다. 새로운 최대치가 측정될 때마다, 이 값을 공유 게이트웨이(120)의 총 용량의 추정치로서 이용할 수 있다. 물론, 본 발명에서는 공유 게이트웨이(120)의 총 용량을 결정하는 다른 방법들 또한 가능하다. 따라서, 공유 게이트웨이(120)의 총 용량을 결정하는 임의 특정 방법은 본원에서 설명하기 위해 사용한 것으로, 명백히 주장하지 않는 한 본 발명의 범주를 제한하거나 협소하게 하려는 의도는 아니다.
다른 예시적인 실시예에 따르면, 여러 로컬 네트워크(125)의 클라이언트(140, 145, 150)에서의 대역폭 소모량에 관한 정보를 공유하기보다는, 이들 실시예에서는 공유 게이트웨이(120)에 대한 다른 로컬 네트워크 컴퓨팅 기계의 사용량에 우선권을 부여한다. 도 1c를 참조해 보면, 이 실시예에서도 상술한 바와 유사한 방식으로 공유 게이트웨이(120)에 대한 총 대역폭 용량(165)을 결정한다. 또한, 상술한 바와 같이, 클라이언트(140)는 배경 데이터 전송 모듈(135)을 사용하여, 배경 데이터 전송 대역폭 소모량(180)을 포함할 공유 게이트웨이(120)에 걸친 그 자신의 총 대역폭 소모량을 결정할 수 있다.
그러나, 상기한 프로세스와는 달리, 임의 특정 시점에서 공유 게이트웨이(120)에 대한 실제 대역폭 소모량(170)에 관한 추가의 통계 정보 또한 생성되어 클라이언트(140)에 전송된다. 이 정보는 공유 게이트웨이(120)로 들어가고 나오는 총 트래픽에 대한 추정을 나타낸다. 이하에서 상세히 기술될 바와 같이, 이 정보는 UPnP(Universal Plug 'n Play) 등의 탐지 모듈의 사용을 통해 얻어질 수 있다.
이 정보 전부(즉, 총 대역폭 용량(165), 실제 대역폭 소모량에 대한 통계 정보(170), 클라이언트에 대한 총 대역폭 소모량(175) 및 배경 데이터 전송 대역폭 소모량(180))를 이용하여, 배경 데이터 전송 모듈(135)은 공유 게이트웨이(120)를 거치는 배경 데이터 전송을 트로틀링할 수 있다. 트로틀링(185)은 상술한 데이터의 비교 결과에 따라 배경 데이터 전송의 증가 또는 감소일 수 있다는 것에 주목해야 한다. 따라서, "트로틀링"이란 용어는 달리 명백하게 주장하지 않는 한 배경 파일의 전송 레이트의 증가 및 감소 모두를 포함하는 것으로 광범위하게 해석되어야 한다.
일 실시예에서, 배경 데이터 전송 모듈(135)은 실제 대역폭 소모량(170)으로부터 그 자신의 대역폭 소모량(175)을 감산하여 로컬 네트워크(125) 내의 다른 클라이언트(예컨대, 145, 150)의 활동을 결정한다. 총 대역폭 용량(165) 및 다른 클라이언트(145, 150)에 의한 사용량에 기초하여, 배경 데이터 전송 모듈(135)은 다른 활동(즉, 다른 클라이언트(145, 150)의 활동)이 총 대역폭 용량(165)의 일정 비율로 유지되는 것을 확실하게 하기 위해, 다른 클라이언트(145, 150)에 디퍼런스(deference)를 제공한다. 배경 데이터 전송 모듈(135)은 단지 남은 대역폭, 즉 공유 게이트웨이(120)를 거친 최대 네트워크 용량의 추정치로부터 감해진 현재의 네트워크 사용률만을 사용하도록 그 네트워크 사용률(185)을 조정할 수 있다. 이와 같이, 클라이언트(140)는 공유 게이트웨이(120)에 대한 다른 로컬 네트워크(125)의 컴퓨팅 기계 사용량에 우선권을 부여한다.
비록 배경 데이터 전송 모듈(135)이 공유 게이트웨이(120)를 통한 다른 클라이언트(145, 150)의 활동에 관한 정보를 사용하여 배경 데이터 전송을 트로틀링하지만, 본 발명에서는 또한 다른 비교 및 임계 결정값도 이용가능하다. 예를 들어, 배경 데이터 전송 모듈(135)은 총 대역폭 용량 및 실제 대역폭 소모량(170)에 대한 사용량의 비율에 기초하여 공유 게이트웨이(120)를 통한 배경 데이터 전송을 트로틀링(185)할 수 있다. 예를 들어, 배경 데이터 전송 모듈(135)은 사용량의 비율 또는 대역폭 소모량을 일정 비율로 또는 일정 비율 근방에서 유지하도록 배경 데이터 전송을 트로틀링(185)할 수 있다. 물론, 공유 게이트웨이(120)로부터의 데이터의 다른 사용량 및 이 정보를 특정 클라이언트(140)에 의한 사용량(175)과 비교하는 것도 이용가능하다. 따라서, 배경 데이터 전송을 결정 또는 트로틀링(185)하기 위한 공유 게이트웨이(120)로부터의 정보에 대한 임의 특정 비교 및 클라이언트(140)로부터의 대역폭 소모량(175)은 단지 본원에서 설명을 하고자 예시한 것으로, 명백히 주장하지 않는 한 본 발명의 범주를 한정 또는 협소하게 하려는 의도는 아니다.
배경 데이터 전송을 트로틀링(185)하는 데 사용되는 임계치 및 정보에 관계없이, 다른 예시적인 실시예에서는 바이트 카운트값을 전송하고 수신한 어느 것이 최고 소모된 대역폭 또는 최저 이용 대역폭 전부를 갖는가에 기초하여 로컬 네트워크 인터페이스(130) 또는 공유 게이트웨이(120)로부터 이용가능한 대역폭을 계산할 수 있다. 예를 들어, 공유 게이트웨이(120)가 덜 소모된 대역폭, 및 전송 시스템 로컬 네트워크 인터페이스(130)의 카드 측정치 내에서 더 많은 이용가능 대역폭을 가질 경우, 배경 데이터 전송 모듈(135)은 최저의 이용가능 대역폭량만을 소모하도록 전송 레이트(이 경우에는 로컬 네트워크 인터페이스(130)의 카드)를 트로틀링(185)할 수 있다. 따라서, 배경 데이터 전송 모듈(135)은 주기적으로(예컨대, 초당 1회) 최고 소모된 대역폭값 또는 최소 이용가능 대역폭값에 기초하여 전송 레이트를 검사하여 조정해야 한다.
대안으로, 또는 결합하여, 예시적인 실시예들은 또한 상술한 클라이언트 공유 실시예와 공유 게이트웨이(120)에 대한 정보(165, 170) 모두를 이용하여 로컬 네트워크 인터페이스와 함께 배경 데이터에 대한 이용가능한 대역폭을 계산하고 제어할 수 있다. 함께 사용될 경우에는, 공유 게이트웨이(120)로부터의 정보(165, 170)의 이용률 및 공유된 프로세스를 비교하여, 잠재적으로 보다 정확히 표현된 공유 게이트웨이(120)를 통한 실제 데이터 전송 및 로컬 네트워크(125)의 클라이언트(140, 145, 150)에 의한 사용량을 결정할 수 있다.
상술한 바와 같이, 예시적인 실시예들에서는 배경 전송 시스템이 UPnP(Universal Plug 'n Play)를 사용하여 공유 게이트웨이(120)의 통계 카운터를 탐지하여 쿼리(query)할 수 있다. 통계 카운터값(예컨대, 실제 대역폭 소모량(170) 또는 총 대역폭 용량(165)에 관한 통계 정보) 및 공유 게이트웨이(120)의 프레즌스(presence)에 대한 풀링(pooling)은 주기적으로, 예컨대, 초당 1회 발생할 수 있다. 따라서, 배경 전송 시스템은 게이트웨이 장치가 로컬 네트워크(125)에 부가되고 이로부터 제거되는 때를 반드시 인식하고 있어야 한다. 그래서, 임의 공유 게이트웨이(120)(또는 잠재적으로는 다른 장치)의 추가나 제거에 관한 UPnP 통지의 수령에 의해 트로틀링(185)에 사용되는 알고리즘을 업데이트시켜야 한다.
예시적인 실시예는 또한 로컬 네트워크(125) 내의 다수의 공유 게이트웨이(120) 장치에도 이용가능하다는 것에 주목할 필요가 있다. 이런 경우, 배경 전송 시스템은 이용가능 대역폭을 계산하였고 이것을 통해 배경 전송이 순회하게 될 동일 공유 게이트웨이(120)에 맞추어지는 파일 배경 전송 레이트를 사용해야 한다. 다른 예시적인 실시예에서는 다수의 공유 게이트웨이(120)가 전송 시스템에 이용가능한 하나 이상의 공유된 연결 지점을 지나는 경우, 배경 데이터 전송 모듈(135s)은 한 공유 게이트웨이(120)의 주어진 웨이트(weight) 및 성능(performance)을 전송 시스템에 의해 할당된 다른 공유 게이트웨이에 전달해야 한다(honor). 따라서, 배경 데이터 전송 모듈(135)은 전송 시스템에 의해 결정된 적절한 웨이트 및 선택(preference)을 갖는 장치의 배경 전송 레이트를 쿼리하여 트로틀링(185)할 수 있다.
다른 예시적인 실시예에서는 배경 데이터 전송 모듈(135)은 그것이 공유 게 이트웨이(120) 및 관련 원격 네트워크(105)의 것과 다른 연결(110) 및 연결 장치를 을 사용중인 때를 인식하여 이에 따라 트로틀링(185)을 계산할 것이다. 예를 들어, 시스템이 셀룰러 어댑터 및 셀룰러 네트워크를 통해 원격 네트워크(105)에 로그하는 경우, 배경 데이터 전송 모듈(135)은 시스템 로컬 네트워크 인터페이스(130)(예컨대, 네트워크 인터페이싱 카드)로 자동적으로 트로틀링(185)하여, 공유 게이트웨이(120)의 부재시 대역폭 크기를 추정할 수 있다(예컨대, 시간/서버 대 실제 시간에 대한 추정된 시간에 걸쳐 전송/수신된 바이트를 추적함으로써 추정된다).
모바일 사용자는 배경 데이터 전송 모듈(135)이 다른 공유 게이트웨이(120) 또는 다른 전송 장치의 이용가능 대역폭에 기초하여 배경 파일 전송 레이트를 즉시 자동적으로 조정할 수 있다. 예를 들어, 랩톱 컴퓨터가 새로운 위치로 이동될 경우, 이용가능 대역폭을 쿼리할 때 UPnP를 사용하여 공유 게이트웨이(120)를 능동적으로 탐색하여 새로운 공유 게이트웨이(120)를 배경 데이터 전송 모듈(135)에 노출시킬 수 있다. 또한, 랩톱 컴퓨터가 공유 게이트웨이(120)가 없는 네트워크 환경으로 이동할 경우에는, 이를 탐지하여 즉시 배경 데이터 전송 중단없이 로컬 네트워크 통계로 폴백한다(fallback). 또한, 새로운 공유 게이트웨이(120)가 원격 네트워크(105)에 부가되면, 배경 데이터 전송 모듈(135)은 UPnP가 새로운 및/또는 대체 장치를 발견하자마자 통지를 받아야 한다.
다른 예시적인 실시예에 따르면, 배경 데이터 전송 모듈(135)은 공유 게이트웨이(120)를 통해 전송된 총 바이트 또는 수신된 총 바이트가 소정 기간 동안 변화 하지 않은 때를 판단하는 데 사용될 수 있다. 이런 경우, 배경 데이터 전송 모듈(135)은 카운터 "스턱(stuck)"이라 여기고, 단지 로컬 네트워크 인터페이스 카드(130)의 값에 기초하여 전송 레이트를 정할 수 있거나, 또는 이용가능할 경우에는 로컬 네트워크(125)의 클라이언트(140, 145, 150)로부터의 공유된 정보를 사용할 수 있다.
본 발명은 또한 펑션 단계 및/또는 비-펑션 액트를 포함한 방법에 대해 기술하였다. 이하에서는 본 발명을 실시함에 있어 수행될 수 있는 단계 및/또는 액트에 대해 기술하기로 한다. 통상적으로, 펑션 단계는 달성되는 결과에 대해 본 발명을 기술하는 것인 반면, 비-펑션 액트는 특정 결과를 성취하는 보다 특정의 액션을 기술한 것이다. 비록 펑션 단계 및/또는 비-펑션 액트가 특정 순서로 기술 또는 주장될 수 있지만, 본 발명은 반드시 단계 및/또는 액트의 임의 특정 순서 또는 결합에만 한정되는 것은 아니다. 또한, 단계 및/또는 액트의 사용은 청구범위에서 반복되고, 도 2의 흐름도에 대한 이하의 설명에서는 이런 용어를 원하는 특정 사용을 나타내기 위해 사용된다.
도 2는 본 발명의 여러 예시적인 실시예에 대한 흐름도를 나타낸 것이다. 도 2에 대한 이하의 설명에서는 도 1a 내지 도 1c의 대응하는 소자를 경우에 따라 인용한다. 비록 참조부호가 이들 도면의 특정 소자를 나타낼 수 있지만, 이런 소자들은 단지 예시를 위한 것으로, 명백히 주장하지 않는 한 본 발명의 밤주를 한정하거나 협소하게 하려는 의도는 아니다.
보다 구체적으로 설명하자면, 도 2는 로컬 네트워크와 원격 네트워크 사이에서 공유 게이트웨이를 통해 배경 파일들을 전송하는 데 유효한 이용가능 대역폭을 공유 게이트웨이에 대한 다른 로컬 네트워크 컴퓨팅 기계의 사용량에 우선권을 부여함으로써 제어하고 추정하는 방법(200)에 대한 흐롬도를 도시한 것이다. 방법(200)은 공유 게이트웨이를 거치는 다른 활동에 대한 방해를 감소시키는 단계(230)를 포함한다. 단계(230)는 공유 게이트웨이(120)를 통한 데이터 전송의 총 대역폭 용량을 결정하는 액트(205)를 포함한다. 예를 들어, 공유 게이트웨이(120)에 대한 총 대역폭 용량(165)은 공유 게이트웨이(120)에 할당된 레이트 값에 기초하여 결정될 수 있다. 또는, 총 대역폭 용량(165)은 공유 게이트웨이(120)를 통해 이용되는 최대 대역폭에 대한 통계 모니터링를 통해 결정될 수 있다.
공유 게이트웨이(120)는 복수의 로컬 네트워크(125)의 클라이언트(140, 145, 150, 155, 160)를 원격 네트워크(105) 내의 하나 이상의 컴퓨팅 시스템에 링크시킨다. 원격 네트워크는 인터넷, 광역 네트워크(WAN), 가상 사설 네트워크(VPN), 인터넷 게이트웨이 장치(IGD)를 통해 연결되는 서브넷(subnet)으로 세분된 인트라넷일 수 있다. 또한, 복수의 로컬 네트워크의 클라이언트(예컨대, 클라이언트(140)) 중 적어도 하나는 공유 게이트웨이(120)를 통한 실제 대역폭 소모량이 소정의 임계치 이하일 때의 구간에서 데이터 파일을 전송하도록 구성되는 배경 데이터 전송 모듈(135)를 포함할 것이다.
단계(230)는 또한 공유 게이트웨이를 통한 데이터 전송을 위한 실제 대역폭 소모량에 관한 통계 정보를 수신하는 액트(210)를 포함한다. 예를 들어, 클라이언트(140)는 공유 게이트웨이(120)를 통한 데이터 전송을 위한 실제 대역폭 소모량에 관한 통계 정보(170)를 수신할 수 있다. UPnP를 사용하여 공유 게이트웨이 장치를 통한 데이터 전송을 위한 실제 대역폭 소모량에 관한 통계 정보(170) 를 얻을 수 있다는 것에 주목할 필요가 있다. 또한, UPnP를 사용하여 공유 게이트웨이(120)를 통한 최대 전송 레이트에 관한 데이터를 검색함으로써 총 대역폭 용량(165)을 결정할 수 있다.
단계(230)는 또한 배경 데이터 전송 대역폭 소모량을 결정하는 액트(215)를 포함한다. 예를 들어, 클라이언트(140) 내의 배경 데이터 전송 모듈(135)은 공유 게이트웨이를 통한 데이터 전송을 위한 그 자신의 배경 데이터 전송 대역폭 소모량(180)을 결정할 수 있다.
그 후, 단계(230)는 공유 게이트웨이 상에서의 데이터 전송을 위한 총 대역폭 용량과 실제 대역폭 소모량을 비교하는 액트(220)를 포함한다. 비교에 기초하여, 단계(230)는 배경 데이터 전송 대역폭 소모량을 트로틀링하는 액트(225)를 포함한다. 예를 들어, 배경 데이터 전송 모듈(135)은 공유 게이트웨이(120)를 통한 배경 데이터 전송 레이트를 트로틀링(185)하기 위해 총 대역폭 용량(165)과 실제 대역폭 소모량에 관한 통계 정보(170)를 비교할 수 있다. 트로틀링은 비교 결과에 따라 공유 게이트웨이(120) 상에서의 대역폭 소모량의 증가 또는 감소일 수 있다.
상술한 바와 같이, 총 대역폭 용량(165) 및 실제 대역폭 소모량에 관한 통계 정보(170)를 여러 방식으로 사용하여 컴퓨팅 장치(140)를 위한 배경 데이터 전송 레이트를 트로틀링(185)할 수 있다. 예를 들어, 배경 데이터 전송 대역폭 소모량(180)은 총 대역폭 용량(165)에 비해 실제 대역폭 소모량(170)의 일정 비율일 수 있다. 이처럼, 다른 로컬 네트워크 클라이언트(145, 150)에 대한 공유 게이트웨이(120)에서의 대역폭 소모량을 결정하기 위해 클라이언트(140)에 대한 공유 게이트웨이(120)에서의 총 대역폭 소모량(180)을 총 대역폭 용량(165) 및 실제 대역폭 소모량(170)과 비교할 수 있다.
이런 경우, 공유 게이트웨이(120)의 장치를 통한 배경 데이터 전송 레이트에 대한 트로틀링(185)은 또한 다른 로컬 네트워크 클라이언트(145, 150)의 대역폭 소모량에 기초할 수 있다. 예를 들어, 배경 데이터 전송 대역폭 소모량의 트로틀링(185)은, 다른 로컬 네트워크 클라이언트(145, 150)의 데이터 전송을 위한 공유 게이트웨이(120) 상에서의 대역폭 소모량; 공유 게이트웨이(120) 상에서의 데이터 전송을 위한 총 대역폭 용량; 및 공유 게이트웨이 상에서의 데이터 전송을 위한 실제 대역폭 소모량(170)에 대한, 배경 데이터 전송 대역폭 소모량의 비율에 기초할 수 있다.
다른 예시적인 실시예에서는, 로컬 네트워크 대역폭 소모량은 로컬 네트워크(125) 내의 클라이언트(140, 145, 150, 155, 160)를 위한 로컬 네트워크 인터페이스(130)를 사용하여 결정될 수 있다. 결정된 로컬 네트워크 대역폭 소모량은 공유 게이트웨이(120)를 통한 대역폭 소모량과 비교될 수 있다. 이런 비교에 기초하여, 배경 데이터 전송 대역폭 소모량을 트로틀링(185)하는 데 결정된 로컬 네트워크 대역폭 소모량 또는 공유 게이트웨이(120) 상에서의 데이터 전송을 위한 실제 대역폭 소모량(170)을 사용할 수 있다.
또 다른 실시예에서는, 복수의 로컬 네트워크(125)의 클라이언트(140, 145, 150, 155, 160) 각각은 배경 데이터 전송 모듈(135)을 포함할 수 있다. 이 실시예에서, 공유 게이트웨이(120) 상에서의 대역폭 소모량은 복수의 로컬 네트워크(125) 클라이언트(140, 145, 150, 155, 160) 각각의 배경 데이터 전송마다 결정된다. 이런 결정에 기초하여, 복수의 로컬 네트워크(125) 클라이언트(140, 145, 150, 155, 160)의 배경 데이터 전송 중 하나 이상은 공유 게이트웨이 장치(120)에서의 실제 대역폭 소모량(170)이 소정의 임계치 이하로 유지되도록 트로틀링된다.
본 발명은 본 발명의 사상 및 본질적인 특성을 벗어나지 않는 한 다른 특정 형태로 구현될 수 있다. 상술한 실시예는 단지 예시를 위한 것으로 이에만 제한되는 것은 아니다. 그러므로, 본 발명의 범주는 상술한 설명에 의하기보다는 참부된 청구범위에 의해 정해진다. 본 발명의 범주 내에서는 여러 변형 및 수정 실시예가 가능하다는 것을 인식할 수 있을 것이다.

Claims (20)

  1. 컴퓨터 시스템에서, 남은 대역폭(leftover bandwidth)을 이용하기 위하여, 공유 게이트웨이에서의 이용가능 공유 대역폭의 대응하는 변화에 응답하여, 상기 공유 게이트웨이를 통한 파일의 배경 전송(background transfer)에 이용되는 전송 레이트(transfer rate)를 적응적으로(adaptively) 조정하기 위한 방법으로서,
    상기 컴퓨터 시스템은 프로세서 및 시스템 메모리를 포함하고, 상기 컴퓨터 시스템은 하나 이상의 다른 컴퓨터 시스템과 함께 로컬 네트워크에 접속되며, 상기 로컬 네트워크 상의 컴퓨터 시스템들은 상기 로컬 네트워크와 원격 네트워크 사이에 위치된 상기 공유 게이트웨이를 공유하고, 상기 공유 게이트웨이는 상기 로컬 네트워크로부터 상기 원격 네트워크로의 링크를 제공하여 상기 로컬 네트워크로부터 상기 원격 네트워크 상의 임의의 컴퓨터 시스템으로의 통신이 상기 공유 게이트웨이를 통과하고, 상기 공유 게이트웨이는 상기 공유 게이트웨이가 상기 로컬 네트워크로부터 상기 원격 네트워크로 데이터를 전송하는데 이용할 수 있는 총 대역폭 용량을 가지며, 상기 공유 게이트웨이를 통한 데이터 전송은 상기 총 대역폭 용량의 일부를 소모하여 상기 공유 게이트웨이를 통한 상기 이용가능 공유 대역폭은 데이터 전송 동안에 감소되며, 상기 이용가능 공유 대역폭은 상기 로컬 네트워크에 접속된 상기 컴퓨터 시스템들 사이에서 공유되고,
    상기 방법은,
    상기 공유 게이트웨이에서 이용 가능한 상기 총 대역폭 용량을 결정하는 단계;
    상기 컴퓨터 시스템과 상기 원격 네트워크 간의 파일의 배경 전송을 개시하는 단계(initiating);
    주기적 레이트의 각각의 구간에서 - 상기 주기적 레이트는 적어도 제1 구간 및 제2 구간을 포함하고, 상기 제2 구간은 상기 제1 구간으로부터 상기 주기적 레이트의 기간(period of time)만큼 떨어져 있음(separated) - ,
    통계 정보를 위하여 상기 공유 게이트웨이에 쿼리하는 단계(querying);
    상기 공유 게이트웨이 상에서의 데이터 전송을 위한 실제 공유 대역폭 소모량에 관한 통계 정보를 수신하는 단계 - 상기 공유 대역폭 소모량은 상기 공유 게이트웨이에 걸친 전경 대역폭 소모량(foreground bandwidth consumption)과 상기 공유 게이트웨이에 걸친 배경 대역폭 소모량 간에 나누어짐 - ;
    상기 파일에 대한 배경 데이터 전송 레이트에 기초하여, 상기 파일의 상기 배경 전송에 의해 소모된 배경 대역폭의 양을 결정하는 단계;
    상기 실제 공유 대역폭 소모량이 소정의 임계치를 초과하지 않게 하면서 소모될 수 있는 남은 대역폭을 추정하기(estimate) 위하여 상기 공유 게이트웨이 상에서의 데이터 전송을 위한 상기 총 대역폭 용량과 상기 실제 공유 대역폭 소모량을 비교하는 단계; 및
    상기 하나 이상의 다른 컴퓨터 시스템에 대한 로컬 네트워크 인터페이스를 사용하여 로컬 네트워크 대역폭 소모량을 결정하는 단계;
    상기 공유 게이트웨이에 걸친 상기 실제 공유 대역폭 소모량 및 상기 결정된 로컬 네트워크 대역폭 소모량을 비교하는 단계;
    상기 총 대역폭 용량과 상기 실제 공유 대역폭 소모량의 비교 및 상기 결정된 로컬 네트워크 대역폭 소모량과 상기 실제 공유 대역폭 소모량의 비교에 기초하여, 상기 프로세서가 상기 결정된 로컬 대역폭 또는 상기 실제 공유 대역폭 소모량을 사용하여, 상기 공유 게이트웨이에 걸친 다른 데이터 전송에 대한 방해(interference)를 완화시키면서, 상기 남은 대역폭을 소모하도록 상기 파일의 배경 전송에 대한 상기 배경 데이터 전송 레이트를 조정하는 단계
    를 포함하는, 파일의 배경 전송에 이용되는 전송 레이트를 적응적으로 조정하기 위한 방법.
  2. 제1항에 있어서,
    상기 하나 이상의 다른 컴퓨터 시스템에 대한 상기 공유 게이트웨이 상에서의 대역폭 소모량을 결정하기 위하여, 상기 컴퓨터 시스템에 대한 상기 공유 게이트웨이에 걸친 총 대역폭 소모량을, 상기 공유 게이트웨이 상의 데이터 전송에 대한 상기 총 대역폭 용량 및 실제 대역폭 소모량과 비교하는 단계 - 상기 파일의 배경 전송에 대한 상기 배경 데이터 전송 레이트를 조정하는 단계는 상기 하나 이상의 다른 컴퓨터 시스템의 상기 대역폭 소모량에 더 기초함 -
    를 더 포함하는, 파일의 배경 전송에 이용되는 전송 레이트를 적응적으로 조정하기 위한 방법.
  3. 제2항에 있어서,
    상기 파일의 배경 전송에 대한 상기 배경 데이터 전송 레이트를 조정하는 단계는 상기 공유 게이트웨이 상의 상기 하나 이상의 다른 컴퓨터 시스템의 상기 대역폭 소모량, 상기 공유 게이트웨이 상에서의 데이터 전송을 위한 상기 총 대역폭 용량, 및 상기 공유 게이트웨이 상에서의 데이터 전송을 위한 실제 공유 대역폭 소모량에 대한, 상기 파일을 위한 배경 데이터 전송 레이트의 비율에 기초하여 결정되는, 파일의 배경 전송에 이용되는 전송 레이트를 적응적으로 조정하기 위한 방법.
  4. 제1항에 있어서,
    상기 공유 게이트웨이 상에서의 데이터 전송을 위한 실제 공유 대역폭 소모량에 관한 상기 통계 정보를 얻기 위해 UPnP(Universal Plug 'n Play)가 이용되는, 파일의 배경 전송에 이용되는 전송 레이트를 적응적으로 조정하기 위한 방법.
  5. 제1항에 있어서,
    상기 로컬 네트워크에 접속된 각각의 컴퓨터 시스템은 배경 데이터 전송 모듈을 포함하고,
    상기 방법은,
    적어도 상기 컴퓨터 시스템 각각에서의 배경 데이터 전송을 위한 상기 공유 게이트웨이 상에서의 상기 배경 대역폭 소모량을 결정하는 단계, 및
    상기 결정에 기초하여, 상기 공유 게이트웨이에서의 실제 공유 대역폭 소모량이 소정의 임계치 미만을 유지하도록 상기 컴퓨터 시스템의 하나 이상에서의 상기 파일의 배경 전송을 위한 상기 배경 데이터 전송 레이트를 조정하는 단계
    를 더 포함하는, 파일의 배경 전송에 이용되는 전송 레이트를 적응적으로 조정하기 위한 방법.
  6. 컴퓨터 시스템에서, 남은 대역폭을 이용하기 위하여, 공유 게이트웨이에서의 이용가능 공유 대역폭의 대응하는 변화에 응답하여, 상기 공유 게이트웨이를 통한 파일의 배경 전송에 이용되는 전송 레이트를 적응적으로 조정하기 위한 방법으로서,
    상기 컴퓨터 시스템은 프로세서 및 시스템 메모리를 포함하고, 상기 컴퓨터 시스템은 하나 이상의 다른 컴퓨터 시스템과 함께 로컬 네트워크에 접속되며, 상기 로컬 네트워크 상의 컴퓨터 시스템들은 상기 로컬 네트워크와 원격 네트워크 사이에 위치된 상기 공유 게이트웨이를 공유하고, 상기 공유 게이트웨이는 상기 로컬 네트워크로부터 상기 원격 네트워크로의 링크를 제공하여 상기 로컬 네트워크로부터 상기 원격 네트워크 상의 임의의 컴퓨터 시스템으로의 통신이 상기 공유 게이트웨이를 통과하고, 상기 공유 게이트웨이는 상기 공유 게이트웨이가 상기 로컬 네트워크에서 상기 원격 네트워크로 데이터를 전송하는데 이용할 수 있는 총 대역폭 용량을 가지며, 상기 공유 게이트웨이를 통한 데이터 전송은 상기 총 대역폭 용량의 일부를 소모하여 상기 공유 게이트웨이를 통한 상기 이용가능 공유 대역폭은 데이터 전송 동안에 감소되며, 상기 이용가능 공유 대역폭은 상기 로컬 네트워크에 접속된 상기 컴퓨터 시스템들 사이에서 공유되고,
    상기 방법은,
    상기 공유 게이트웨이에서 이용 가능한 상기 총 대역폭 용량을 결정하기 위하여 상기 공유 게이트웨이에 걸친 최대 트래픽의 양을 지속적으로(continuously) 모니터링하는 단계;
    상기 원격 네트워크에서 상기 컴퓨터 시스템으로의 소프트웨어 업데이트의 배경 전송을 개시하는 단계;
    주기적 레이트로, - 상기 주기적 레이트는, 상기 주기적 레이트의 기간만큼 서로로부터 떨어져 있는 복수의 구간을 포함함 - 상기 컴퓨터 시스템은,
    상기 공유 게이트웨이 상에서의 데이터 전송을 위한 실제 공유 대역폭 소모량에 관한 통계 정보를 수신하는 단계 - 상기 공유 대역폭 소모량은 상기 공유 게이트웨이에 걸친 전경 대역폭 소모량과 상기 공유 게이트웨이에 걸친 배경 대역폭 소모량 간에 나누어짐 - ;
    상기 소프트웨어 업데이트에 대한 배경 데이터 전송 레이트에 기초하여, 상기 소프트웨어 업데이트의 상기 배경 전송에 의해 소모된 배경 대역폭의 양을 결정하는 단계;
    소모될 수 있는 남은 대역폭을 추정하기 위하여 적어도 상기 공유 게이트웨이 상에서의 데이터 전송을 위한 상기 총 대역폭 용량과 상기 실제 공유 대역폭 소모량을 비교하는 단계; 및
    상기 하나 이상의 다른 컴퓨터 시스템에 대한 로컬 네트워크 인터페이스를 사용하여 로컬 네트워크 대역폭 소모량을 결정하는 단계;
    상기 공유 게이트웨이에 걸친 상기 실제 공유 대역폭 소모량 및 상기 결정된 로컬 네트워크 대역폭 소모량을 비교하는 단계;
    상기 총 대역폭 용량과 상기 실제 공유 대역폭 소모량의 비교 및 상기 결정된 로컬 네트워크 대역폭 소모량과 상기 실제 공유 대역폭 소모량의 비교에 기초하여, 상기 프로세서가 상기 결정된 로컬 대역폭 또는 상기 실제 공유 대역폭 소모량을 사용하여, 상기 공유 게이트웨이에 걸친 다른 배경 데이터 전송에 대한 방해를 감소시키기 위하여, 상기 소프트웨어 업데이트의 일부가 실제 공유 대역폭 소모량이 소정의 임계값 미만인 경우의 구간 동안에 전송되도록 상기 소프트웨어 업데이트의 배경 전송에 대한 상기 배경 데이터 전송 레이트를 조정하는 단계
    를 포함하는, 파일의 배경 전송에 이용되는 전송 레이트를 적응적으로 조정하기 위한 방법.
  7. 제 6항에 있어서,
    상기 방법은,
    상기 하나 이상의 다른 컴퓨터 시스템에 대한 상기 공유 게이트웨이 상에서의 대역폭 소모량을 결정하기 위하여, 상기 컴퓨터 시스템에 대한 상기 공유 게이트웨이에 걸친 총 대역폭 소모량을, 상기 공유 게이트웨이 상의 데이터 전송에 대한 상기 총 대역폭 용량 및 실제 대역폭 소모량과 비교하는 단계 - 상기 소프트웨어 업데이트의 배경 전송에 대한 상기 배경 데이터 전송 레이트를 조정하는 단계는 상기 하나 이상의 다른 컴퓨터 시스템의 상기 대역폭 소모량에 더 기초함 -
    를 더 포함하는, 파일의 배경 전송에 이용되는 전송 레이트를 적응적으로 조정하기 위한 방법.
  8. 제7항에 있어서,
    상기 소프트웨어 업데이트의 배경 전송에 대한 상기 배경 데이터 전송 레이트를 조정하는 단계는 상기 공유 게이트웨이 상의 상기 하나 이상의 다른 컴퓨터 시스템의 상기 대역폭 소모량, 상기 공유 게이트웨이 상에서의 데이터 전송을 위한 상기 총 대역폭 용량, 및 상기 공유 게이트웨이 상에서의 데이터 전송을 위한 실제 공유 대역폭 소모량에 대한, 상기 소프트웨어 업데이트를 위한 배경 데이터 전송 레이트의 비율에 기초하여 결정되는, 파일의 배경 전송에 이용되는 전송 레이트를 적응적으로 조정하기 위한 방법.
  9. 제6항에 있어서,
    상기 공유 게이트웨이 상에서의 데이터 전송을 위한 실제 공유 대역폭 소모량에 관한 상기 통계 정보를 얻기 위해 UPnP가 이용되는, 파일의 배경 전송에 이용되는 전송 레이트를 적응적으로 조정하기 위한 방법.
  10. 제6항에 있어서,
    상기 로컬 네트워크에 접속된 각각의 컴퓨터 시스템은 배경 데이터 전송 모듈을 포함하고, 상기 방법은,
    적어도 상기 컴퓨터 시스템 각각에서의 배경 데이터 전송을 위한 상기 공유 게이트웨이 상에서의 상기 배경 대역폭 소모량을 결정하는 단계, 및
    상기 결정에 기초하여, 상기 공유 게이트웨이에서의 실제 공유 대역폭 소모량이 소정의 임계치 미만을 유지하도록 상기 컴퓨터 시스템의 하나 이상에서의 다른 파일의 배경 전송을 위한 상기 배경 데이터 전송 레이트를 조정하는 단계
    를 더 포함하는, 파일의 배경 전송에 이용되는 전송 레이트를 적응적으로 조정하기 위한 방법.
  11. 컴퓨터 시스템에서의 사용을 위한 컴퓨터 판독가능 저장 매체로서,
    상기 컴퓨터 시스템은 프로세서 및 시스템 메모리를 포함하고, 상기 컴퓨터 시스템은 하나 이상의 다른 컴퓨터 시스템과 함께 로컬 네트워크에 접속되며, 상기 로컬 네트워크 상의 컴퓨터 시스템들은 상기 로컬 네트워크와 원격 네트워크 사이에 위치된 공유 게이트웨이를 공유하고, 상기 공유 게이트웨이는 상기 로컬 네트워크로부터 상기 원격 네트워크로의 링크를 제공하여 상기 로컬 네트워크로부터 상기 원격 네트워크 상의 임의의 컴퓨터 시스템으로의 통신이 상기 공유 게이트웨이를 통과하고, 상기 공유 게이트웨이는 상기 공유 게이트웨이가 상기 로컬 네트워크에서 상기 원격 네트워크로 데이터를 전송하는데 이용할 수 있는 총 대역폭 용량을 가지며, 상기 공유 게이트웨이를 통한 데이터 전송은 상기 총 대역폭 용량의 일부를 소모하여 상기 공유 게이트웨이를 통한 이용가능 공유 대역폭은 데이터 전송 동안에 감소되며, 상기 이용가능 공유 대역폭은 상기 로컬 네트워크에 접속된 상기 컴퓨터 시스템들 사이에서 공유되고,
    상기 컴퓨터 판독가능 저장매체는, 프로세서에 의해 실행될 때 상기 컴퓨터 시스템으로 하여금, 남은 대역폭을 이용하기 위하여 공유 게이트웨이에서의 이용가능 공유 대역폭의 대응하는 변화에 응답하여 상기 공유 게이트웨이를 통한 파일의 배경 전송에 이용되는 전송 레이트를 적응적으로 조정하기 위한 방법을 수행하도록 하는 컴퓨터 실행가능 명령어를 포함하고,
    상기 방법은,
    상기 공유 게이트웨이에서 이용 가능한 상기 총 대역폭 용량을 결정하는 단계;
    상기 컴퓨터 시스템과 상기 원격 네트워크 간의 파일의 배경 전송을 개시하는 단계;
    주기적 레이트로 - 상기 주기적 레이트는 적어도 제1 구간 및 제2 구간을 포함하고, 상기 제2 구간은 상기 제1 구간로부터 상기 주기적 레이트의 기간만큼 떨어져 있음 - ,
    통계 정보를 위하여 상기 공유 게이트웨이에 쿼리하는 단계;
    상기 공유 게이트웨이 상에서의 데이터 전송을 위한 실제 공유 대역폭 소모량에 관한 통계 정보를 수신하는 단계 - 상기 공유 대역폭 소모량은 상기 공유 게이트웨이에 걸친 전경 대역폭 소모량과 상기 공유 게이트웨이에 걸친 배경 대역폭 소모량 간에 나누어짐 - ;
    상기 파일에 대한 배경 데이터 전송 레이트에 기초하여, 상기 파일의 상기 배경 전송에 의해 소모된 배경 대역폭의 양을 결정하는 단계;
    상기 실제 공유 대역폭 소모량이 소정의 임계치를 초과하지 않게 하면서 소모할 수 있는 남은 대역폭을 추정하기 위하여 적어도 공유 게이트웨이 상에서의 데이터 전송을 위한 상기 총 대역폭 용량과 상기 실제 공유 대역폭 소모량을 비교하는 단계; 및
    상기 하나 이상의 다른 컴퓨터 시스템에 대한 로컬 네트워크 인터페이스를 사용하여 로컬 네트워크 대역폭 소모량을 결정하는 단계;
    상기 공유 게이트웨이에 걸친 상기 실제 공유 대역폭 소모량 및 상기 결정된 로컬 네트워크 대역폭 소모량을 비교하는 단계;
    상기 총 대역폭 용량과 상기 실제 공유 대역폭 소모량의 비교 및 상기 결정된 로컬 네트워크 대역폭 소모량과 상기 실제 공유 대역폭 소모량의 비교에 기초하여, 상기 결정된 로컬 대역폭 또는 상기 실제 공유 대역폭 소모량을 사용하여, 상기 공유 게이트웨이에 걸친 다른 데이터 전송에 대한 방해를 완화시키면서, 상기 남은 대역폭을 소모하도록 상기 파일의 배경 전송에 대한 상기 배경 데이터 전송 레이트를 조정하는 단계
    를 포함하는, 컴퓨터 판독가능 저장 매체.
  12. 제11항에 있어서,
    상기 원격 네트워크는 인터넷, 광역 네트워크(WAN), 가상 사설 네트워크(VPN), 또는 인터넷 게이트웨이 장치를 통해 연결되는 서브넷(subnet)으로 세분화된 인트라넷 중 하나인, 컴퓨터 판독가능 저장 매체.
  13. 제11항에 있어서,
    상기 컴퓨터 시스템으로 하여금,
    상기 하나 이상의 다른 컴퓨터 시스템에 대한 상기 공유 게이트웨이 상에서의 대역폭 소모량을 결정하기 위하여, 상기 컴퓨터 시스템에 대한 상기 공유 게이트웨이에 걸친 총 대역폭 소모량을, 상기 공유 게이트웨이 상의 데이터 전송에 대한 상기 총 대역폭 용량 및 실제 대역폭 소모량과 비교하는 단계 - 상기 파일의 배경 전송에 대한 상기 배경 데이터 전송 레이트를 조정하는 단계는 상기 하나 이상의 다른 컴퓨터 시스템의 상기 대역폭 소모량에 더 기초함 -
    를 수행하도록 하는 컴퓨터 실행가능 명령어를 더 포함하는, 컴퓨터 판독가능 저장 매체.
  14. 제13항에 있어서,
    상기 파일의 배경 전송에 대한 상기 배경 데이터 전송 레이트를 조정하는 단계는 상기 공유 게이트웨이 상의 상기 하나 이상의 다른 컴퓨터 시스템의 상기 대역폭 소모량, 상기 공유 게이트웨이 상에서의 데이터 전송을 위한 상기 총 대역폭 용량, 및 상기 공유 게이트웨이 상에서의 데이터 전송을 위한 실제 공유 대역폭 소모량에 대한, 상기 파일을 위한 배경 데이터 전송 레이트의 비율에 기초하여 결정되는, 컴퓨터 판독가능 저장 매체.
  15. 제11항에 있어서,
    상기 데이터 전송은 상기 로컬 네트워크 내부로의 및 외부로의 데이터 전송을 포함하는, 컴퓨터 판독가능 저장 매체.
  16. 제11항에 있어서,
    상기 공유 게이트웨이 상에서의 데이터 전송을 위한 실제 공유 대역폭 소모량에 관한 상기 통계 정보를 얻기 위해 UPnP가 이용되는, 컴퓨터 판독가능 저장 매체.
  17. 제11항에 있어서,
    상기 로컬 네트워크에 접속된 각각의 컴퓨터 시스템은 배경 데이터 전송 모듈을 포함하고,
    상기 컴퓨터 판독가능 저장 매체는 상기 컴퓨터 시스템으로 하여금,
    적어도 상기 컴퓨터 시스템 각각에서의 배경 데이터 전송을 위한 상기 공유 게이트웨이 상에서의 상기 배경 대역폭 소모량을 결정하는 단계, 및
    상기 결정에 기초하여, 상기 공유 게이트웨이에서의 실제 공유 대역폭 소모량이 소정의 임계치 미만을 유지하도록 상기 컴퓨터 시스템의 하나 이상에서의 상기 파일의 배경 전송을 위한 상기 배경 데이터 전송 레이트를 조정하는 단계
    를 수행하도록 하는 컴퓨터 실행가능 명령어를 더 포함하는, 컴퓨터 판독가능 저장 매체.
  18. 삭제
  19. 삭제
  20. 삭제
KR1020087001003A 2005-07-15 2006-06-21 배경 파일 전송에 이용가능한 대역폭을 제어하고 추정하는방법 및 이를 구현하기 위한 컴퓨터 프로그램 제품 KR101231380B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/182,976 2005-07-15
US11/182,976 US7603473B2 (en) 2005-07-15 2005-07-15 Background network bandwidth sharing behind gateway devices
PCT/US2006/024301 WO2007011491A2 (en) 2005-07-15 2006-06-21 Background network bandwidth sharing behind gateway devices

Publications (2)

Publication Number Publication Date
KR20080033940A KR20080033940A (ko) 2008-04-17
KR101231380B1 true KR101231380B1 (ko) 2013-02-07

Family

ID=37662915

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087001003A KR101231380B1 (ko) 2005-07-15 2006-06-21 배경 파일 전송에 이용가능한 대역폭을 제어하고 추정하는방법 및 이를 구현하기 위한 컴퓨터 프로그램 제품

Country Status (11)

Country Link
US (1) US7603473B2 (ko)
EP (1) EP1904930B1 (ko)
JP (1) JP4801154B2 (ko)
KR (1) KR101231380B1 (ko)
CN (1) CN101223513B (ko)
AU (1) AU2006270468B2 (ko)
BR (1) BRPI0613195A2 (ko)
CA (1) CA2614984A1 (ko)
MX (1) MX2008000575A (ko)
RU (1) RU2419848C2 (ko)
WO (1) WO2007011491A2 (ko)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7616585B1 (en) * 2006-02-28 2009-11-10 Symantec Operating Corporation Preventing network micro-congestion using send pacing based on end-to-end bandwidth
US8131673B2 (en) * 2006-12-05 2012-03-06 International Business Machines Corporation Background file sharing in a segmented peer-to-peer file sharing network
US8775562B2 (en) * 2006-12-05 2014-07-08 International Business Machines Corporation Mapping file fragments to file information and tagging in a segmented file sharing system
US8239573B2 (en) * 2006-12-15 2012-08-07 Starz Entertainment, Llc Off-peak background delivery
US8789052B2 (en) * 2007-03-28 2014-07-22 BlackBery Limited System and method for controlling processor usage according to user input
US7761902B2 (en) * 2007-05-11 2010-07-20 At&T Intellectual Property I, L.P. System and method of providing video content
US8065429B2 (en) * 2007-06-28 2011-11-22 Nokia Corporation System, apparatus and method for associating an anticipated success indication with data delivery
US8412792B2 (en) * 2007-07-31 2013-04-02 Brent Young Network file transfer and caching system
US8209728B2 (en) 2007-08-31 2012-06-26 At&T Intellectual Property I, L.P. System and method of delivering video content
US8438301B2 (en) * 2007-09-24 2013-05-07 Microsoft Corporation Automatic bit rate detection and throttling
FR2923972B1 (fr) * 2007-11-15 2010-02-26 Radiotelephone Sfr Procede et systeme de gestion de communications
US8239564B2 (en) * 2008-06-20 2012-08-07 Microsoft Corporation Dynamic throttling based on network conditions
US8516121B1 (en) * 2008-06-30 2013-08-20 Symantec Corporation Method and apparatus for optimizing computer network usage to prevent congestion
US8340099B2 (en) * 2009-07-15 2012-12-25 Microsoft Corporation Control of background data transfers
BR112012003288B1 (pt) * 2009-08-18 2021-02-02 Telefonaktiebolaget Lm Ericsson ( Publ ) método para adicionar e/ou remover uma célula da operação em uma rede de radiocomunicação heterogênea, método para operar uma estação base, e, estação base
GB2478336A (en) * 2010-03-04 2011-09-07 Nec Corp Bandwidth control system
US9258231B2 (en) * 2010-09-08 2016-02-09 International Business Machines Corporation Bandwidth allocation management
US9088527B2 (en) * 2011-02-08 2015-07-21 Avaya Inc. Method and system for communication session bandwidth control based on actual bandwidth usage
EP2555470A1 (en) * 2011-08-03 2013-02-06 Thomson Licensing Method and device for reliable estimation of network traffic
WO2013092634A1 (en) * 2011-12-20 2013-06-27 Thomson Licensing Methods for monitoring data traffic in a gateway device
US9100448B2 (en) * 2012-01-20 2015-08-04 Blackberry Limited Communication device for throttling transmitted data
US9549024B2 (en) 2012-12-07 2017-01-17 Remote Media, Llc Routing and synchronization system, method, and manager
FR3011420A1 (fr) * 2013-09-30 2015-04-03 Orange Gestion amelioree des connexions reseau
US10075547B2 (en) * 2014-10-06 2018-09-11 Belkin International Inc. Proxy device for reducing number of connections to gateway
US20160301617A1 (en) * 2015-04-10 2016-10-13 Lenovo (Singapore) Pte. Ltd. Bandwidth prioritization
CN106411607B (zh) * 2016-11-04 2019-08-20 锐捷网络股份有限公司 基于vxlan网络的流量转发控制方法及装置
CN108512686B (zh) * 2017-02-28 2023-02-21 中兴通讯股份有限公司 一种多设备数据传输方法、装置及系统
US10853057B1 (en) * 2017-03-29 2020-12-01 Amazon Technologies, Inc. Software library versioning with caching
CN108156632B (zh) * 2017-12-22 2021-11-23 奇酷互联网络科技(深圳)有限公司 控制WiFi网速的方法、装置和移动终端
CN110417888A (zh) * 2019-07-30 2019-11-05 中国工商银行股份有限公司 流量控制方法、流量控制装置和电子设备
WO2022066568A1 (en) * 2020-09-24 2022-03-31 Arris Enterprises Llc Personalized data throttling in a residential wireless network
WO2022115774A1 (en) * 2020-11-30 2022-06-02 Gatespeed, Inc. Systems and methods for dynamic bandwidth allocation and optimization
US20230327998A1 (en) * 2022-04-07 2023-10-12 Mellanox Technologies Ltd. System and method for network rate limiting

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003527800A (ja) 2000-02-16 2003-09-16 マイクロソフト コーポレイション ネットワークを介してデータを転送するためのシステム及び方法
US20040098531A1 (en) 2002-08-05 2004-05-20 Wilhelm Hagg Bus service interface
JP2005025753A (ja) 2003-06-30 2005-01-27 Microsoft Corp ネットワーク通信エージェントおよびトラブルシュータ
US20050102529A1 (en) 2002-10-21 2005-05-12 Buddhikot Milind M. Mobility access gateway

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5828837A (en) * 1996-04-15 1998-10-27 Digilog As Computer network system and method for efficient information transfer
US5751723A (en) * 1996-07-01 1998-05-12 Motorola, Inc. Method and system for overhead bandwidth recovery in a packetized network
WO2001015394A1 (en) * 1999-08-26 2001-03-01 Spinway, Inc. Bandwidth adaptive data transfer system and method
US7437428B1 (en) 2000-02-16 2008-10-14 Microsoft Corporation System and method for transferring data over a network
US6754221B1 (en) * 2001-02-15 2004-06-22 General Bandwidth Inc. System and method for selecting a compression algorithm according to an available bandwidth
WO2002091692A1 (en) * 2001-04-13 2002-11-14 Girard Gregory D Ditributed edge switching system for voice-over-packet multiservice network
US7542487B2 (en) * 2001-11-23 2009-06-02 Mudalla Technology, Inc. Methods and systems for large scale controlled and secure data downloading
US7486696B2 (en) * 2002-06-25 2009-02-03 Avaya, Inc. System and method for providing bandwidth management for VPNs
US7236483B2 (en) * 2002-06-28 2007-06-26 Samsung Electronics Co., Ltd. Method for controlling bandwidth in a voice over internet protocol system
AU2002953479A0 (en) * 2002-12-19 2003-01-09 Canon Kabushiki Kaisha Ip rate control
KR100608590B1 (ko) * 2003-09-16 2006-08-03 삼성전자주식회사 서비스 품질에 따른 서비스 지원이 가능한 네트워크 장치,이를 이용한 네트워크 시스템 및 그 방법
US7830826B2 (en) * 2004-07-01 2010-11-09 Nokia Corporation Multicast relay for mobile devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003527800A (ja) 2000-02-16 2003-09-16 マイクロソフト コーポレイション ネットワークを介してデータを転送するためのシステム及び方法
US20040098531A1 (en) 2002-08-05 2004-05-20 Wilhelm Hagg Bus service interface
US20050102529A1 (en) 2002-10-21 2005-05-12 Buddhikot Milind M. Mobility access gateway
JP2005025753A (ja) 2003-06-30 2005-01-27 Microsoft Corp ネットワーク通信エージェントおよびトラブルシュータ

Also Published As

Publication number Publication date
AU2006270468A1 (en) 2007-01-25
CN101223513B (zh) 2012-02-08
EP1904930A2 (en) 2008-04-02
JP2009501496A (ja) 2009-01-15
BRPI0613195A2 (pt) 2010-12-21
RU2419848C2 (ru) 2011-05-27
RU2008101646A (ru) 2009-07-20
WO2007011491A3 (en) 2007-04-26
US7603473B2 (en) 2009-10-13
CA2614984A1 (en) 2007-01-25
JP4801154B2 (ja) 2011-10-26
AU2006270468B2 (en) 2011-03-24
CN101223513A (zh) 2008-07-16
KR20080033940A (ko) 2008-04-17
WO2007011491A2 (en) 2007-01-25
EP1904930B1 (en) 2012-09-19
MX2008000575A (es) 2008-03-18
US20070016688A1 (en) 2007-01-18
EP1904930A4 (en) 2011-10-12

Similar Documents

Publication Publication Date Title
KR101231380B1 (ko) 배경 파일 전송에 이용가능한 대역폭을 제어하고 추정하는방법 및 이를 구현하기 위한 컴퓨터 프로그램 제품
US7865614B2 (en) Method and apparatus for load balancing with server state change awareness
US7325068B2 (en) Method and system for managing data transfer over a network
US7437428B1 (en) System and method for transferring data over a network
US8510374B2 (en) Polling protocol for automatic load limiting
US7461145B2 (en) Generating metrics for networked devices
JP2009501496A5 (ko)
US11606440B2 (en) Monitoring and managing services in legacy systems using cloud native monitoring and managing tools
US10608889B2 (en) High-level interface to analytics engine
US10171572B2 (en) Server pool management
EP1256212B1 (en) System and method for transferring data over a network
JP5700842B2 (ja) スリープ制御装置、スリープ制御方法、及びプログラム

Legal Events

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

Payment date: 20160104

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170119

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180118

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190116

Year of fee payment: 7