KR101495560B1 - 데이터 파일 송신 관리 - Google Patents
데이터 파일 송신 관리 Download PDFInfo
- Publication number
- KR101495560B1 KR101495560B1 KR1020137028519A KR20137028519A KR101495560B1 KR 101495560 B1 KR101495560 B1 KR 101495560B1 KR 1020137028519 A KR1020137028519 A KR 1020137028519A KR 20137028519 A KR20137028519 A KR 20137028519A KR 101495560 B1 KR101495560 B1 KR 101495560B1
- Authority
- KR
- South Korea
- Prior art keywords
- segment
- user device
- different
- user
- segments
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1076—Resource dissemination mechanisms or network resource keeping policies for optimal resource availability in the overlay network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/108—Resource delivery mechanisms characterised by resources being split in blocks or fragments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1087—Peer-to-peer [P2P] networks using cross-functional networking aspects
- H04L67/1091—Interfacing with client-server systems or between P2P systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
- H04L67/5651—Reducing the amount or size of exchanged application data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5681—Pre-fetching or pre-delivering data based on network characteristics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/222—Secondary servers, e.g. proxy server, cable television Head-end
- H04N21/2225—Local VOD servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47202—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/632—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing using a connection between clients on a wide area network, e.g. setting up a peer-to-peer communication via Internet for retrieving video segments from the hard-disk of other client devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
사용자들로의 데이터 파일들의 송신을 관리하기 위한 방법에서, 제 1 파일은 복수의 제 1 세그먼트들로 분할되고 제 2 파일은 복수의 제 2 세그먼트들로 분할된다. 제 1 세그먼트가 제 1 사용자에게 전송되고 상이한 제 1 세그먼트가 제 2 사용자에게 전송된다. 제 2 세그먼트가 상기 제 1 사용자에게 전송되고 상이한 제 2 세그먼트가 상기 제 2 사용자에게 전송된다. 결합된 세그먼트를 생성하기 위해 상기 제 2 사용자에게 전송된 세그먼트의 적어도 일부와 상기 제 1 사용자에게 전송된 세그먼트의 적어도 일부를 결합하고, 상기 결합된 세그먼트는 결합 전 세그먼트들의 상기 적어도 일부들의 총 사이즈보다 작은 사이즈이다. 상기 결합된 세그먼트는 각각의 사용자에 대해 상기 결합된 세그먼트 및 세그먼트의 적어도 일부를 사용하여 세그먼트를 복구하기 위해 상기 제 1 사용자 및 상기 제 2 사용자에게 송신된다.
Description
본 발명은 사용자들로의 데이터 파일들의 송신을 관리하기 위한 방법 및 장치에 관한 것이고, 특히, 사용자에게 국부적으로 캐시되는 데이터 파일들의 송신에 관한 것이지만, 이로 제한되지 않는다.
서버는 예를 들어, 인터넷 또는 일부 다른 네트워크일 수 있는 네트워크를 통해 사용자에게 전송될 데이터 파일들을 유지할 수 있다. 상기 데이터 파일들은 미디어 콘텐트 파일들 또는 일부 다른 유형일 수 있고, 사용자가 이들을 요청할 때 또는 상기 콘텐트 생산자 또는 제공자가 예를 들어, 이들을 분배하고 싶어할 때 상기 사용자에게 전송된다. 사용자가 데이터 파일로의 즉시 액세스를 요구하지 않거나 나중의 액세스를 위해 이용가능하게 유지하기를 원한다면, 상기 데이터 파일은 상기 사용자에 대해 국부적인 캐시 메모리에 저장될 수 있다. 예를 들어, 상기 캐시 메모리는 상기 사용자 장비에 포함된 하드 드라이브일 수 있고 또는 상기 캐시 메모리는 예를 들어, 상기 서버보다 네트워크의 에지에 더 가깝게 위치됨으로써 상기 사용자에 의해 용이하게 액세스가능하게 별도로 제공되고 배치될 수 있다. 상기 사용자가 캐시된 파일을 필요로 하면, 이는 감소된 또는 네트워크 자원들이 없는 캐시 메모리로부터 획득될 수 있다.
데이터 송신은 네트워크 자원들이 고 용량 및/또는 저 비용일 때 캐시될 데이터 파일들을 송신함으로써 효율적으로 관리될 수 있다. 예를 들어, 데이터 파일은 WiFi 네트워크가 이용가능하거나 상기 사용자가 저-트래픽 영역에 있거나 저-트래픽 시간 기간일 때 전송될 수 있다.
본 발명의 제 1 양태에 따라, 사용자들로의 데이터 파일들의 송신을 관리하기 위한 방법에서, 제 1 파일은 복수의 제 1 세그먼트들로 분할되고 제 2 파일은 복수의 제 2 세그먼트들로 분할된다. 제 1 세그먼트가 제 1 사용자에게 전송되고 상이한 제 1 세그먼트가 제 2 사용자에게 전송된다. 제 2 세그먼트가 상기 제 1 사용자에게 전송되고 상이한 제 2 세그먼트가 상기 제 2 사용자에게 전송된다. 결합된 세그먼트를 생성하기 위해 상기 제 2 사용자에게 전송된 세그먼트의 적어도 일부와 상기 제 1 사용자에게 전송된 세그먼트의 적어도 일부를 결합하고, 상기 결합된 세그먼트는 결합 전 세그먼트들의 상기 적어도 일부들의 총 사이즈보다 작은 사이즈이다. 상기 결합된 세그먼트는 각각의 사용자에 대해 상기 결합된 세그먼트 및 세그먼트의 적어도 일부를 사용하여 세그먼트를 복구하기 위해 상기 제 1 사용자 및 상기 제 2 사용자에게 송신된다.
결합 전의 세그먼트들의 적어도 일부들의 총 사이즈에 비해 더 작은 사이즈의 결합된 세그먼트는 상기 결합된 세그먼트가 상기 사용자들에 대해 국부적인 캐시 또는 캐시들에 캐시된다면 더 적은 공간을 요구한다는 것을 의미한다. 부가적으로, 상기 결합된 세그먼트가 더 작은 사이즈여서, 상기 세그먼트들이 결합되지 않은 형태로 개별적으로 전송될 때보다는 송신을 위해 더 적은 네트워크 자원들을 요구한다. 이는 사용자에 대해 국부적인 메모리 캐시 또는 캐시들에 세그먼트들이 캐시되지 않는 배치들에서도 유익하다.
상기 사용자 또는 사용자들은 네트워크의 임의의 노드일 수 있다. 예를 들어, 무선 네트워크에서, 사용자는 라우터 또는 최종 사용자 또는 일부 다른 네트워크 노드일 수 있다.
본 발명에 따른 방법은 무선, 유선 또는 다른 유형들의 네트워크에 적용될 수 있고 하나의 특정한 기술 유형으로 제한되지 않는다.
f 개의 파일들 및 K 명의 사용자들이 있고, 각각의 파일이 2 내지 K 제곱 개의 세그먼트들로 파티셔닝(partitioning)되고, 각각의 사용자들의 서브세트에 대해, 상기 서브세트의 모든 사용자들에 저장되는 세그먼트를 포함하고, 본 발명에 따른 방법이 적용될 수 있다.
일 실시예에서, 상기 제 1 사용자에게 전송된 상기 제 1 및 제 2 세그먼트들은 상기 제 1 사용자에게 국부적인 제 1 캐시 메모리에 캐시될 수 있다. 유사하게, 상기 제 2 사용자에게 전송된 상기 제 1 및 제 2 세그먼트들은 상기 제 2 사용자에게 국부적인 제 2 캐시 메모리에 캐시될 수 있다. 따라서, 캐시 메모리는 상기 캐시 메모리가 완벽한 파일들을 저장하기에는 불충분한 사이즈일 때 유리할 수 있는, 상기 제 1 파일의 일부 및 상기 제 2 파일의 일부만을 저장하도록 배열될 수 있다. 나중의 시간에, 하나 또는 두 사용자들이 상기 제 1 파일 또는 상기 제 2 파일에 액세스하기를 원할 때, 이들이 이미 일부 세그먼트들에 국부적으로 액세스함에 따라 상기 전체 파일이 이들에게 전송될 필요는 없다. 따라서, 나머지 세그먼트들이 비교적 비싼 시간에 또는 높은 네트워크 부하들 동안 전송되어야 하는 일부 경우들에서도, 그 때 전체 파일이 전송될 필요가 없기 때문에, 상기 파일을 전송하기 위한 전체 비용들은 감소될 수 있다. 부가적으로, 상기 결합된 세그먼트는 효과적인 파일 송신 관리를 제공할 수 있는, 기여하는 세그먼트들의 총 사이즈보다 작다.
일 실시예에서, 상기 제 1 사용자에게 전송된 상기 세그먼트의 적어도 일부는 유한 필드의 부가를 사용함으로써 상기 제 2 사용자에게 전송된 세그먼트의 적어도 일부와 결합된다. 일 실시예에서, 상기 유한 필드는 이진 필드이다.
일 방법에서, 상기 제 1 및 제 2 사용자들에게 전송된 상기 제 1 및 제 2 세그먼트들은 상기 결합된 세그먼트가 상기 제 1 및 제 2 사용자들에게 전송되기 전에 전송된다. 그러나, 다른 실시예에서, 상기 데이터는 상이한 순서로 전송된다.
일 실시예에서, 세그먼트는 제 1 및 제 2 부분들로 분할되고, 상기 제 1 부분은 결합된 세그먼트에 포함되고 상기 제 2 부분은 상기 제 1 및 제 2 사용자들에게 송신된다. 상기 제 2 부분은 상기 결합된 세그먼트로서 동시에 송신되거나 별도의 송신으로서 송신될 수 있다.
본 발명의 제 2 양태에 따라, 사용자들로의 데이터 파일들의 송신을 관리하기 위한 데이터 송신 관리자는, 제 1 파일을 복수의 제 1 세그먼트들로 분할하고 제 2 파일을 복수의 제 2 세그먼트들로 분할하기 위한 분할기; 제 1 사용자에게 제 1 세그먼트를 전송하고, 제 2 사용자에게 상이한 제 1 세그먼트를 전송하고, 상기 제 1 사용자에게 제 2 세그먼트를 전송하고, 상기 제 2 사용자에게 상이한 제 2 세그먼트를 전송하기 위한 송신기 장치; 및 결합된 세그먼트를 생성하기 위해 상기 제 2 사용자에게 전송된 세그먼트의 적어도 일부와 상기 제 1 사용자에게 전송된 세그먼트의 적어도 일부를 결합하기 위한 결합기로서, 상기 결합된 세그먼트는 결합 전 세그먼트들의 상기 적어도 일부들의 총 사이즈보다 작은 사이즈인, 상기 결합기를 포함하고, 상기 송신기 장치는 각각의 상기 제 1 및 상기 제 2 사용자들에 대해 상기 결합된 세그먼트 및 세그먼트의 적어도 일부를 사용하여 세그먼트를 복구하기 위해 상기 결합된 세그먼트를 상기 제 1 사용자 및 상기 제 2 사용자에게 전송하도록 동작한다.
도 1은 본 발명에 따른 방법의 흐름도를 개략적으로 도시한 도면.
도 2는 송신을 도시하는 개략적인 그래프.
도 3은 도 1의 방법을 구현하기 위한 장치를 개략적으로 도시한 도면.
도 2는 송신을 도시하는 개략적인 그래프.
도 3은 도 1의 방법을 구현하기 위한 장치를 개략적으로 도시한 도면.
본 발명의 일부 실시예들이 단지 예로서, 첨부된 도면들을 참조하여 이제 설명될 것이다.
제 1 실시예에서, 서버로부터 이용가능한 제 1 파일 A 및 제 2 파일 B가 있다고 가정하고, 각각의 파일은 1MB의 사이즈를 갖는다. 제 1 사용자 U1 및 제 2 사용자 U2가 있고, 각각의 사용자는 연관된 로컬 캐시 메모리 M1 및 M2를 각각 갖고, M1 및 M2는 각각 1MB이다. 이들 두 사용자들 U1 및 U2의 히스토리가 동일한 확률을 갖는 파일 A 및 파일 B를 각각 요구할 것이라는 것을 나타낸다고 가정된다.
이러한 캐싱 스킴(scheme)에서, 값비싼 네트워크들에서 평균 0.5MB로 브로드캐스팅될 필요가 있다. 게다가, 피크 레이트는 0.5MB이다.
도 1을 참조하여, 1에서, 상기 제 1 및 제 2 파일들은 몇 개의 세그먼트들로 분할된다. 파일 A는 두 개의 동일한 사이즈의 세그먼트들 A1 및 A2로 분할되고, 각각의 세그먼트는 0.5MB이고, A=(A1, A2)이다.
유사하게, 파일 B는 두 개의 동일한 사이즈의 세그먼트들 B1 및 B2로 분할되고, 각각의 세그먼트는 0.5MB이고, B=(B1, B2)이다.
2에서, 세그먼트들 A1 및 B1은 상기 제 1 사용자 U1에게 송신되고, 3에서, 연관된 캐시 메모리 M1에 저장된다. 또한, A2 및 B2가 상기 제 2 사용자 U2에게 송신되고 상기 연관된 캐시 메모리 M2에 저장된다. 상기 캐싱 전략은 표 1에 요약되고 확률은 표 2에 요약된다.
따라서, 각각의 사용자가 각각의 파일의 일부를 갖는다.
나중에, 예를 들어, 상기 제 1 사용자 U1이 파일 A에 액세스하기를 원하고 상기 제 2 사용자 U2가 파일 B를 요구하면, 누구도 완벽한 파일을 제공하기 위해 캐시된 충분한 세그먼트들을 갖지 못한다. 상기 사용자들은 4에서 그들의 요구를 서버로 송신한다.
5에서, 상기 서버는 결합된 세그먼트 A2+B1을 브로드캐스팅하기 위해 상기 송신기에 대해 배열되고, 여기서, +는 상기 결합된 세그먼트를 생성하기 위한 유한 필드에서의 합을 나타낸다. 이 예에서, 결합은 이진 필드에서 수행되고 따라서 +는 단순히 비트-단위 XOR 연산이다. 상기 결합된 세그먼트 A2+B1은 0.5MB 사이즈를 갖는다. 이를 세그먼트 A2에 대해 0.5MB 및 세그먼트 B1에 대해 0.5MB의 사이즈로 비교하면, 즉 총 1MB이다.
다음 단계에서, 6에 도시된 바와 같이, 상기 제 1 사용자 U1은 A2+B1을 수신하고 자신의 캐시 메모리 M1에 B1을 이미 가지고 있다. 따라서, 제 1 사용자 U1은 (A2+B1)-B1 연산에 의해 A2를 복구할 수 있다. 상기 제 1 사용자 U1은 또한 캐시 메모리 M1에 A1을 갖는다. 따라서, 상기 제 1 사용자 U1은 A1 및 A2 모두를 갖고 상기 요청된 파일 A를 재구성할 수 있다.
상기 제 2 사용자 U2는 또한 상기 송신기에 의해 브로드캐스팅된 A2+B1을 수신한다. 상기 제 2 사용자 U2는 이미 A2를 자신의 캐시 메모리에 갖고, 따라서 (A2+B1)-A2 연산에 의해 B1을 복구할 수 있다. 상기 제 2 사용자 U2는 이미 B2를 캐시 메모리 M2에 갖는다. 따라서, B1 및 B2 모두가 상기 파일 B를 재구성하기 위해 필요로 하는 상기 제 2 사용자 U2에게 이용가능하다.
다른 시나리오에서, 시작 포인트는 표 1에 도시된다고 가정하고, 상기 제 1 및 제 2 사용자들이 모두 파일 A를 요구한다고 가정한다. 이 경우, 상기 송신기는 A2+A1을 브로드캐스팅하고, 여기서, +는 다시 이진 필드에서 수행되고 비트-단위 XOR 연산인 조합을 나타낸다. 상기 조합된 세그먼트 A2+A1은 세그먼트 A2에 대해 0.5MB 및 세그먼트 A1에 대해 0.5MB의 사이즈에 비교하여 0.5MB의 사이즈를 갖고, 즉, 총 1MB이다.
따라서, 상기 제 1 사용자 U1은 A2+A1을 수신하고 이미 캐시 메모리에 A1을 갖는다. 따라서, (A2+A1)-A1에 의해 A2를 복구할 수 있다. 따라서, 상기 제 1 사용자 U1은 세그먼트들 A1 및 A2 모두를 갖고 따라서 파일 A를 재구성할 수 있다.
상기 제 2 사용자 U2는 또한 상기 브로드캐스팅된 A2+A1을 수신하고 이미 캐시 메모리 M2에 A2를 갖는다. 따라서, (A2+A1)-A2에 의해 A1을 복구할 수 있다. 따라서, A1 및 A2를 모두 가질 수 있고 따라서 파일 A를 재구성할 수 있다.
다른 경우들에 대해, 상기 브로드캐스팅 전략 및 복구 방법이 또한 이하의 표 3에 도시된다. 각각의 사용자가 어떤 파일을 요청했는지 중요하지 않고, 상기 송신기는 단지 0.5MB만 브로드캐스팅할 필요가 있다는 것을 알 수 있다. 따라서, 상기 송신기가 브로드캐스팅하는 데이터의 평균 레이트는 0.5MB이다.
본 실시예에서, 상기 캐싱 스킴은 최적화되고 상기 네트워크의 평균 부하 또는 최대 부하는 최소화된다. 상기에 주어진 간단한 예에서, 상기 캐싱 스킴은 평균 부하를 50%까지 감소시킬 수 있고 피크 부하는 100%이다.
도 2는 사이즈 F의 두 개의 파일들 및 각각 캐시 사이즈 M을 갖는 두 사용자들에 대한 정규화된 캐시-메모리 사이즈에 대해 정규화된 평균 송신 레이트를 도시한다. 또한, 각각의 사용자가 상기 파일들 중 하나를 필요로 하는 확률이 같을 것이다.
다른 실시예에서, 각각 M1 및 M2의 이용가능한 캐싱 메모리 사이즈를 갖는 제 1 및 제 2 사용자들(사용자 1 및 사용자 2)이 있다고 가정된다. 또한, 상기 서버는 각각 FA 및 FB의 사이즈들을 갖는 두 개의 파일들 A 및 B를 갖는다고 가정한다, 즉,
|A|=FA
|B|=FB
상기 사용자들은 다음의 표 4에 열거된 어떤 확률들을 갖는 파일들 중 하나를 필요로 한다:
각각의 파일은,
|A0|= x0, |A1|= x1, |A2|= x2, |A12|= x12,
|B0|= y0, |B1|= y1, |B2|= y2, |B12|= y12의 사이즈를 갖는
A={A0, A1, A2, A12}
B={B0, B1, B2, B12}를 제공하기 위해, 같을 필요가 없는, 5 개의 부분들로 분할된다.
따라서,
x0+ x1+ x2+ x12 = FA
y0+ y1+ y2+ y12 = FB
A1 및 B1로 표기된 파일들의 부분들은 사용자 1 메모리에 캐시된다.
A2 및 B2로 표기된 파일들의 부분들은 사용자 2 메모리에 캐시된다.
A12 및 B12로 표기된 파일들의 부분들은 두 사용자들의 메모리들에 캐시된다.
A0 및 B0으로 표기된 파일들의 부분들은 어떤 메모리들에도 캐시되지 않는다.
따라서,
x1+ y1+ x12+ y12 <= M1
x2+ y2+ x12+ y12 <= M2
제 1 시나리오에서, 사용자 1은 파일 A를 요청하고 사용자 2는 파일 B를 요청한다. 따라서,
사용자 1은 상기 서버에서만 이용가능한 A0을 요청한다.
사용자 2는 상기 서버에서만 이용가능한 B0을 요청한다.
사용자 1은 이미 A1 및 A12를 가졌다.
사용자 2는 이미 B1 및 B12를 가졌다.
사용자 1은 A2를 원하지만 사용자 2는 이를 자신의 캐싱 메모리에 가졌다.
사용자 2는 B1을 원하지만 사용자 1은 이를 자신의 캐싱 메모리에 가졌다.
따라서, 상기 서버는 사용자들 1 및 2에게 A0 및 B0 모두를 전송해야 한다.
|A2| > |B1|을 가정하면, 상기 서버는 세그먼트 A2를 A2U 및 A2L로 표기된 두 부분들, 즉, A2={A2U, A2L}로 파티셔닝하고, 여기서, |A2U|=|B1|. 그 후 상기 서버는 결합된 세그먼트 A2U + B1을 전송하고, 여기서, +는 이진 필드 또는 임의의 다른 유한 필드의 합산이고, 또한 A2L을 전송한다. 다음을 주의한다:
|A2U + B1| + |A2L|=|A2| = max{|A2|, |B1|}
여기서, max{|A2|, |B1|}는 A2의 사이즈 및 B1의 사이즈의 최대값이다.
그 후 사용자 1은 A2={A2U, A2L}를 복구하기 위해, A2U + B1, A2L, 및 B1을 사용할 수 있다. 또한, 사용자 2는 B1을 복구하기 위해, A2U + B1 및 A2를 사용할 수 있다.
한편, |A2| < |B1|라면, 상기 서버는 세그먼트 B1을 B1U 및 B1L로 표기된 두 부분들, 즉, B1={B1U, B1L}로 파티셔닝하고, 여기서, |B1U|=|A2|. 그 후 상기 서버는 결합된 세그먼트 B1U + A2를 전송하고, 또한 B1L을 전송하고, 다시 +는 이진 필드 또는 임의의 다른 유한 필드들의 합산이다. 다음을 주의한다:
|B1U + A2| + |B1L|=|B1| = max{|A2|, |B1|}
그 후 사용자 2는 B1={B1U, B1L}를 복구하기 위해, B1U + A1, B1L, A2를 사용할 수 있다. 또한, 사용자 1은 A2를 복구하기 위해, B1U + A2 및 B1을 사용할 수 있다.
그 후 각각의 사용자는 자신에 의해 요청된 파일을 재구성하기 위해 필요한 세그먼트들을 갖는다.
제 2 시나리오에서, 사용자 1 및 사용자 2는 모두 파일 A를 요청한다. 주의:
사용자들 1 및 2는 상기 서버 메모리에서만 이용가능한 A0을 원한다.
두 사용자들 1 및 2는 이미 A12를 가졌다.
사용자 1은 A2를 원하지만 사용자 2는 이를 자신의 캐싱 메모리에 가졌다.
사용자 2는 A1을 원하지만 사용자 1은 이를 자신의 캐싱 메모리에 가졌다.
따라서, 상기 서버는 A0을 사용자들 1 및 2에게 전송해야 한다.
|A2| > |A1|을 가정하면, 상기 서버는 세그먼트 A2를 A2U 및 A2L로 표기된 두 부분들, 즉, A2={A2U, A2L}로 파티셔닝하고, 여기서, |A2U|=|A1|. 그 후 상기 서버는 결합된 세그먼트 A2U + A1 및 A2L을 전송하고, 여기서, +는 이진 필드 또는 임의의 다른 유한 필드들의 합산이다. 다음을 주의한다:
|A2U + A1| + |A2L|=|A2| = max{|A2|, |A1|}
그 후 사용자 1은 A2={A2U, A2L}를 복구하기 위해, A2U + A1, A2L, 및 A1을 사용할 수 있다. 또한, 사용자 2는 A1을 복구하기 위해, A2U + A1 및 A2를 사용할 수 있다.
한편, |A2| < |A1|라면, 상기 서버는 세그먼트 A1을 A1U 및 A1L로 표기된 두 부분들, 즉, A1={A1U, A1L}로 파티셔닝하고, 여기서, |A1U|=|A2|. 그 후 상기 서버는 결합된 세그먼트 A1U + A2를 전송하고, 여기서, +는 이진 필드 또는 임의의 다른 유한 필드들의 합산이다. 다음을 주의한다:
|A1U + A2| + |A1L|=|B1| = max{|A2|, |B1|}
그 후 사용자 2는 A1={A1U, A1L}를 복구하기 위해, A1U + A1, A1L, 및 A2를 사용할 수 있다. 또한, 사용자 1은 A2를 복구하기 위해, A1U + A2 및 A1을 사용할 수 있다.
이 전략을 따라, 상이한 경우들에 요청된 레이트가 이하의 표 5에 도시된다.
따라서, 평균 레이트는 다음과 같다:
pAA(x0+max{x1, x2}) + pAB(x0+y0+max{x2, y1}) + pBA(x0+y0+max{x1, y2}) + pBB(y0+max{y1, y2})
따라서, x0, x1, x2, x12, y0, y1, y2, 및 y12는 평균 레이트를 최소화하기 위해 선택될 수 있다:
x0+ x1+ x2+ x12 = FA
y0+ y1+ y2+ y12 = FB
x1+ y1+ x12+ y12 <= M1
x2+ y2+ x12+ y12 <= M2
x0, x1, x2, x12, y0, y1, y2, 및 y12 => 0을 조건으로,
Min pAA(x0+max{x1, x2}) + pAB(x0+y0+max{x2, y1}) + pBA(x0+y0+max{x1, y2}) + pBB(y0+max{y1, y2})
최대 레이트가 주요 문제라면,
x0+ x1+ x2+ x12 = FA
y0+ y1+ y2+ y12 = FB
x1+ y1+ x12+ y12 <= M1
x2+ y2+ x12+ y12 <= M2
x0, x1, x2, x12, y0, y1, y2, 및 y12 => 0 을 조건으로,
다음의 최적화:
Min Max [pAA(x0+max{x1, x2}), pAB(x0+y0+max{x2, y1}), pBA(x0+y0+max{x1, y2}), pBB(y0+max{y1, y2})]가 사용될 수 있다.
다른 양태들이 상기 방법을 개선하기 위해 사용될 수 있다. 예를 들어, 캐싱이 상당한 비용들을 가지면, 대응하는 비용이 상기 데이터 레이트의 최적화의 목표 기능에 부가될 수 있다. 예를 들어, 두 사용자들로의 데이터 전송이 하나의 사용자로의 데이터 전송과 다른 비용들을 가지면, 상기 목표 기능은 대응하여 수정될 수 있다. 또한, 하나의 사용자가 이미 상기 파일들의 일부 부분들을 가지면, 이는 상기 최적화에서 이용될 수 있다. 또한, 사용자들은 그들의 메모리에 캐시되어야 하는 파일의 세그먼트들에 어떤 우선권들을 가질 수 있다. 이러한 우선권들은 상기 최적화에서 고려될 수 있다. 상기 사용자들로의 데이터의 송신을 위해 사용자들의 우선권들이 고려될 수 있다. 예를 들어, 사용자가 특정한 순서로 파일을 복구할 수 있게 하는 방식으로 파일들이 송신될 수 있다.
상기 방법은 임의의 수의 파일들 및 임의의 수의 사용자들로 확장될 수 있다. 예를 들어, 3명의 사용자들(사용자 1, 사용자 2, 및 사용자 3)과 3 개의 파일들(A, B, 및 C)이 있다고 가정한다.
각각의 파일은 다음과 같이 8 개의 세그먼트들로 파티셔닝된다:
A={A0, A1, A2, A3, A12, A13, A23, A123}
B={B0, B1, B2, B3, B12, B13, B23, B123}
C={C0, C1, C2, C3, C12, C13, C23, C123}
그 후, 상기 세그먼트들은 다음과 같이 저장된다:
X=A,B,C에 대해, 세그먼트들 X0은 어떤 사용자들에게도 없다.
i=1,2,3 및 X=A,B,C에 대해, 세그먼트들 Xi는 사용자 i에 있다.
i, j=1,2,3 및 X=A,B,C에 대해, 세그먼트들 Xij는 사용자들 i 및 j에 있다.
X=A,B,C에 대해, 세그먼트들 X123은 모든 사용자들 i 및 j에 있다.
간략화를 위해, 본 예에서 i=1,2,3 및 X=A,B,C에 대한 세그먼트들 Xi는 동일한 사이즈를 갖고, 또한 i, j=1,2,3 및 X=A,B,C에 대한, Xij도 동일한 사이즈를 갖는다고 가정된다. 이러한 가정은 단지 본 예에 대한 것이고, 일반적인 요건은 아니다.
그 후, 예를 들어, 사용자 1이 A를 원하고, 사용자 2가 B를 원하고, 사용자 3이 C를 원한다면, 상기 송신기는 다음을 전송한다.
A0
B0
C0
A2+B1
A3+C1
B3+C2
A23+B13+C12
그러면 각각의 사용자가 원하는 파일을 검출하기 위해 충분한 세그먼트들 및 결합된 세그먼트들을 수신한다.
예를 들어, 모든 사용자들이 A를 원하면, 상기 송신기는 다음을 전송한다.
A0
e1A1+e2A2+e3A3
g1A1+g2A2+g3A3
q1A12+q2A13+q3A23
상기 연산들은 임의의 충분히 큰 유한-필드이고, ek, gj, qi는 동일한 필드에 속한다. 그러면 각각의 사용자는 전체 A를 해결하기에 충분한 수식들을 갖는다.
상기 세그먼트들의 사이즈는 상기에 설명된 바와 같이 최적화될 수 있다. 상기 파일들의 사이즈가 동일할 필요는 없다.
f 개의 파일들과 K 명의 사용자들이 있다면, 각각의 파일은 2 내지 K의 제곱 세그먼트들로 파티셔닝되고, 각각의 사용자들의 서브세트에 대해, 상기 서브세트의 모든 사용자들에게 저장된 세그먼트가 있다. 이들 세그먼트들의 일부의 사이즈는 0일 수 있다.
도 3을 참조하면, 도 1을 참조하여 설명된 실시예를 구현하기 위한 데이터 송신 관리자(7)는 데이터 파일들(A 및 B)을 유지하는 콘텐트 저장소(8)를 포함한다. 분할기(9)는 상기 데이터 파일들(A 및 B)을 획득하기 위해 상기 콘텐트 저장소(8)에 액세스하고 상기 파일들을 세그먼트들로 분할한다. 상기 세그먼트들의 일부는 네트워크 용량이 크고 및/또는 요구된 자원들이 비싸지 않을 때 사용자들(10 및 11)에게 송신된다. 상기 사용자들(10 및 11)에게 처음에 송신된 이들 세그먼트들은 송신된 세그먼트들의 기록을 또한 유지하는 제어 프로세서(12)에 의해 선택된다. 상기 제어 프로세서(12)는 어느 세그먼트가 어느 사용자에게 송신될지를 서버(13)에 지시한다. 상기 서버(13)는 관련된 세그먼트들을 획득하고 이들을 송신기(14)를 통해 네트워크 상의 상기 사용자들(10 및 11)에게 전송한다. 상기 사용자들(10 및 11)은 각각 연관된 메모리 캐시(15 및 16)를 갖고, 이들은 서버(11)로부터 자신들에게 전송된 데이터 세그먼트들을 각각 저장한다. 각각의 사용자는 파일 A로부터 및 또한 파일 B로부터 세그먼트들을 수신한다.
상기 사용자들(10 및 11)이 완벽한 파일 A 또는 B를 갖길 원할 때, 이들은 상기 네트워크 상의 상기 서버(13)로 메시지를 전송한다. 상기 서버(13) 및 제어 프로세서(12)는 상기 사용자 요청들을 충족하기 위해 어떤 결합된 세그먼트가 요구되는 지를 결정한다. 상기 결합된 세그먼트는 파일 세그먼트들로부터 결합기(17)에 의해 생성되고 서버(13)를 통해 상기 사용자들(10 및 11)에게 전달된다. 그러면 상기 사용자들(10 및 11)은 이전에 송신된 세그먼트들 및 상기 결합된 세그먼트를 사용하여 완벽한 파일들을 재구성할 수 있다.
도 3에 도시된 장치는 상기에 언급된 것과 다른 방법들을 구현하기 위해 더 복잡한 데이터 파일 전달을 수행하도록 조정될 수 있다.
"프로세서들"로 라벨링된 임의의 기능 블록들을 포함하는, 상기 도면에 도시된 다양한 소자들의 기능들은 전용 하드웨어뿐만 아니라 적절한 소프트웨어와 연관된 소프트웨어를 실행할 수 있는 하드웨어의 사용을 통해 제공될 수 있다. 프로세서에 의해 제공될 때, 상기 기능들은 단일 전용 프로세서에 의해, 단일 공유 프로세서에 의해, 또는 일부가 공유될 수 있는 복수의 개별 프로세서들에 의해, 제공될 수 있다. 또한, 용어 "프로세서"의 명시적인 사용은 소프트웨어를 실행할 수 있는 하드웨어를 배타적으로 참조하는 것으로 해석되지 않아야 하고, 제한없이, DSP(digital signal processor) 하드웨어, 네트워크 프로세서, ASIC(application specific integrated circuit), FPGA(field programmable gate array), 소프트웨어를 저장하기 위한 ROM(read only memory), RAM(random access memory), 및 비휘발성 기억장치를 암시적으로 포함할 수 있다. 종래의 및/또는 커스텀(custom)된 다른 하드웨어가 또한 포함될 수 있다.
본 발명은 본원의 정신 또는 본질적인 특징들로부터 벗어나지 않고 다른 구체적인 형태들로 구현될 수 있다. 설명된 실시예들은 모든 면에서 단지 예시적이고 제한적이지 않은 것으로 고려된다. 따라서, 본 발명의 범위는 전술한 설명에 의해서가 아니라 첨부된 청구항들로 나타낸다. 상기 청구항들의 등가의 의미 및 범위에 있는 모든 변화들은 이들의 범위 내에 포괄된다.
Claims (10)
- 사용자들로의 데이터 파일들의 송신을 관리하기 위한 방법에 있어서,
제 1 파일을 복수의 제 1 세그먼트들로 분할하는 단계;
제 2 파일을 복수의 제 2 세그먼트들로 분할하는 단계로서, 상기 제 1 파일과 상기 제 2 파일은 서로 다른 파일들인, 상기 복수의 제 2 세그먼트들로 분할하는 단계;
선택한 제 1 세그먼트를 데이터 송신 관리자로부터 제 1 사용자 디바이스에게 전송하고, 상이한 제 1 세그먼트를 상기 데이터 송신 관리자로부터 제 2 사용자 디바이스에게 전송하는 단계;
선택한 제 2 세그먼트를 상기 데이터 송신 관리자로부터 상기 제 1 사용자 디바이스에게 전송하고, 상이한 제 2 세그먼트를 상기 데이터 송신 관리자로부터 상기 제 2 사용자 디바이스에게 전송하는 단계;
결합된 세그먼트를 생성하기 위해 상기 제 1 사용자 디바이스에게 전송된 상기 선택한 제 1 세그먼트 또는 상기 선택한 제 2 세그먼트의 적어도 일부와 상기 제 2 사용자 디바이스에게 전송된 상기 상이한 제 1 세그먼트 또는 상기 상이한 제 2 세그먼트의 적어도 일부를 결합하는 단계로서, 상기 결합된 세그먼트는 결합 전 세그먼트들의 상기 적어도 일부들의 총 사이즈보다 작은 사이즈인, 상기 결합 단계; 및
상기 결합된 세그먼트를 상기 데이터 송신 관리자로부터 상기 제 1 사용자 디바이스 및 상기 제 2 사용자 디바이스에 송신하는 단계를 포함하고,
상기 결합된 세그먼트는 상기 제 1 사용자 디바이스로 하여금 상기 제 1 사용자 디바이스에 전송된 상기 결합된 세그먼트, 상기 선택한 제 1 세그먼트, 및 상기 선택한 제 2 세그먼트를 사용하여 상기 제 2 사용자 디바이스에 전송된 상기 상이한 제 1 세그먼트 또는 상기 상이한 제 2 세그먼트의 적어도 일부를 복구하도록 하고,
상기 결합된 세그먼트는 상기 제 2 사용자 디바이스로 하여금 상기 제 2 사용자 디바이스에 전송된 상기 결합된 세그먼트, 상기 상이한 제 1 세그먼트, 및 상기 상이한 제 2 세그먼트를 사용하여 상기 제 1 사용자 디바이스에 전송된 상기 선택한 제 1 세그먼트 또는 상기 선택한 제 2 세그먼트의 적어도 일부를 복구하도록 하는, 송신 관리 방법. - 제 1 항에 있어서,
상기 제 1 및 제 2 사용자 디바이스들에 전송된 상기 선택한 및 상이한 제 1 세그먼트들 및 상기 선택한 및 상이한 제 2 세그먼트들은 상기 결합된 세그먼트가 상기 제 1 및 제 2 사용자 디바이스들에게 전송되기 전에 전송되는, 송신 관리 방법. - 제 1 항에 있어서,
상기 결합과 상관되는 상기 선택한 제 1 세그먼트 또는 상기 선택한 제 2 세그먼트 및 상기 상이한 제 1 세그먼트 또는 상기 상이한 제 2 세그먼트의 더 큰 세그먼트를 상기 결합 전에 제 1 및 제 2 부분들로 분할하는 단계;
상기 결합과 함께, 상기 더 큰 세그먼트의 상기 제 1 부분을 상기 결합과 상관되는 상기 선택한 제 1 세그먼트 또는 상기 선택한 제 2 세그먼트 및 상기 상이한 제 1 세그먼트 또는 상기 상이한 제 2 세그먼트의 더 작은 세그먼트와 함께 상기 결합된 세그먼트에 포함하는(incorporating) 단계; 및
상기 더 큰 세그먼트의 상기 제 2 부분을 상기 제 1 및 제 2 사용자 디바이스들에게 송신하는 단계를 포함하는, 송신 관리 방법. - 제 3 항에 있어서,
상기 더 큰 세그먼트의 상기 제 2 부분을 상기 결합된 세그먼트와 함께 상기 제 1 및 제 2 사용자 디바이스들로 송신하는 단계를 포함하고,
상기 더 큰 세그먼트의 제 2 부분 및 상기 결합된 세그먼트는 상기 제 1 사용자 디바이스로 하여금 상기 제 1 사용자 디바이스에 전송된 상기 결합된 세그먼트, 상기 더 큰 세그먼트의 상기 제 2 부분, 상기 선택한 제 1 세그먼트, 및 상기 선택한 제 2 세그먼트를 이용하여 상기 제 2 사용자 디바이스에 전송된 상기 상이한 제 1 세그먼트 또는 상기 상이한 제 2 세그먼트를 복구하도록 하고,
상기 더 큰 세그먼트의 상기 제 2 부분 및 상기 결합된 세그먼트는 상기 제 2 사용자 디바이스로 하여금 상기 제 2 사용자 디바이스에 전송된 상기 결합된 세그먼트, 상기 더 큰 세그먼트의 상기 제 2 부분, 상기 상이한 제 1 세그먼트, 및 상기 상이한 제 2 세그먼트를 이용하여 상기 제 1 사용자 디바이스에 전송된 상기 선택한 제 1 세그먼트 또는 상기 선택한 제 2 세그먼트를 복구하도록 하는, 송신 관리 방법. - 제 1 항에 있어서,
평균 송신 레이트를 최소화하기 위해 상기 제 1 세그먼트들의 사이즈 및 상기 제 2 세그먼트의 사이즈를 선택하는 단계를 포함하는, 송신 관리 방법. - 제 1 항에 있어서,
상기 제 1 세그먼트들의 사이즈 및 상기 제 2 세그먼트들의 사이즈의 최적화 시에 상기 제 1 사용자 디바이스 및 상기 제 2 사용자 디바이스 중 적어도 하나에 의해 상기 제 1 파일 및 상기 제 2 파일이 요구될 확률을 사용하는 단계를 포함하는, 송신 관리 방법. - 사용자들로의 데이터 파일들의 송신을 관리하기 위한 데이터 송신 관리자에 있어서,
제 1 파일을 복수의 제 1 세그먼트들로 분할하고 제 2 파일을 복수의 제 2 세그먼트들로 분할하기 위한 분할기로서, 상기 제 1 및 제 2 파일들은 서로 다른 파일들인, 상기 분할기;
선택한 제 1 세그먼트를 제 1 사용자 디바이스에게 전송하고, 상이한 제 1 세그먼트를 제 2 사용자 디바이스에게 전송하고, 선택한 제 2 세그먼트를 상기 제 1 사용자 디바이스에게 전송하고, 상이한 제 2 세그먼트를 상기 제 2 사용자 디바이스에게 전송하기 위한 송신기; 및
결합된 세그먼트를 생성하기 위해 상기 제 1 사용자 디바이스에게 전송된 상기 선택한 제 1 세그먼트 또는 상기 선택한 제 2 세그먼트의 적어도 일부와 상기 제 2 사용자 디바이스에게 전송된 상기 상이한 제 1 세그먼트 또는 상기 상이한 제 2 세그먼트의 적어도 일부를 결합하기 위한 결합기로서, 상기 결합된 세그먼트는 결합 전 세그먼트들의 상기 적어도 일부들의 총 사이즈보다 작은 사이즈인, 상기 결합기를 포함하고,
상기 송신기는 또한 상기 결합된 세그먼트를 상기 제 1 사용자 디바이스 및 상기 제 2 사용자 디바이스에 전송하고,
상기 결합된 세그먼트는 상기 제 1 사용자 디바이스로 하여금 상기 제 1 사용자 디바이스에 전송된 상기 결합된 세그먼트, 상기 선택한 제 1 세그먼트, 및 상기 선택한 제 2 세그먼트를 사용하여 상기 제 2 사용자 디바이스에 전송된 상기 상이한 제 1 세그먼트 또는 상기 상이한 제 2 세그먼트의 적어도 일부를 복구하도록 하고,
상기 결합된 세그먼트는 상기 제 2 사용자 디바이스로 하여금 상기 제 2 사용자 디바이스에 전송된 상기 결합된 세그먼트, 상기 상이한 제 1 세그먼트, 및 상기 상이한 제 2 세그먼트를 사용하여 상기 제 1 사용자 디바이스에 전송된 상기 선택한 제 1 세그먼트 또는 상기 선택한 제 2 세그먼트의 적어도 일부를 복구하도록 하는, 데이터 송신 관리자. - 제 7 항에 있어서,
상기 분할기는 또한, 상기 결합과 상관되는 상기 선택한 제 1 세그먼트 또는 상기 선택한 제 2 세그먼트 및 상기 상이한 제 1 세그먼트 또는 상기 상이한 제 2 세그먼트의 더 큰 세그먼트를 상기 결합 전에 제 1 및 제 2 부분들로 분할하고;
상기 결합기는 또한, 상기 결합과 함께, 상기 더 큰 세그먼트의 상기 제 1 부분을 상기 결합과 상관되는 상기 선택한 제 1 세그먼트 또는 상기 선택한 제 2 세그먼트 및 상기 상이한 제 1 세그먼트 또는 상기 상이한 제 2 세그먼트의 더 작은 세그먼트와 함께 상기 결합된 세그먼트에 포함하고(incorporating);
상기 송신기는 또한, 상기 더 큰 세그먼트의 상기 제 2 부분을 상기 제 1 및 제 2 사용자 디바이스들에게 전송하는, 데이터 송신 관리자. - 제 7 항에 있어서,
평균 송신 레이트를 최소화하기 위해 상기 제 1 세그먼트들의 사이즈 및 상기 제 2 세그먼트의 사이즈를 선택하기 위한 프로세서를 포함하는, 데이터 송신 관리자. - 제 7 항에 있어서,
상기 제 1 세그먼트들의 사이즈 및 상기 제 2 세그먼트들의 사이즈의 최적화하기 위해 상기 제 1 사용자 디바이스 및 상기 제 2 사용자 디바이스 중 적어도 하나에 의해 상기 제 1 파일 및 상기 제 2 파일이 요구될 확률을 사용하기 위한 프로세서를 포함하는, 데이터 송신 관리자.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/077,420 US9054920B2 (en) | 2011-03-31 | 2011-03-31 | Managing data file transmission |
US13/077,420 | 2011-03-31 | ||
PCT/US2012/030090 WO2012134941A1 (en) | 2011-03-31 | 2012-03-22 | Managing data file transmission |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130138316A KR20130138316A (ko) | 2013-12-18 |
KR101495560B1 true KR101495560B1 (ko) | 2015-02-25 |
Family
ID=45895493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020137028519A KR101495560B1 (ko) | 2011-03-31 | 2012-03-22 | 데이터 파일 송신 관리 |
Country Status (6)
Country | Link |
---|---|
US (2) | US9054920B2 (ko) |
EP (1) | EP2692114B1 (ko) |
JP (1) | JP5833737B2 (ko) |
KR (1) | KR101495560B1 (ko) |
CN (1) | CN103477609B (ko) |
WO (1) | WO2012134941A1 (ko) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013136819A1 (ja) | 2012-03-16 | 2013-09-19 | 株式会社ニコン | 撮像素子、撮像装置および撮像システム |
US9686335B2 (en) * | 2013-03-15 | 2017-06-20 | Echostar Uk Holdings Limited | Shared data communication bandwidths among mobile devices |
US9535837B2 (en) * | 2013-11-19 | 2017-01-03 | Alcatel-Lucent Usa Inc. | Decentralized online cache management for digital content conveyed over shared network connections based on cache fullness and cache eviction policies |
US9560390B2 (en) | 2014-07-07 | 2017-01-31 | Alcatel-Lucent Usa Inc. | Asynchronous encoding of digital content |
WO2016088237A1 (ja) * | 2014-12-04 | 2016-06-09 | 富士通株式会社 | 配信方法、装置、及びプログラム |
CN106209926B (zh) * | 2015-04-30 | 2019-06-21 | 阿里巴巴集团控股有限公司 | 一种数据更新方法和设备 |
CN105205174B (zh) * | 2015-10-14 | 2019-10-11 | 北京百度网讯科技有限公司 | 用于分布式系统的文件处理方法和装置 |
DE102016103882A1 (de) | 2016-03-03 | 2017-09-07 | Cadami Ug (Haftungsbeschränkt) | Zuordnungsverfahren sowie Netzwerk mit einer Zuordnungsvorrichtung |
DE102016108018A1 (de) | 2016-03-03 | 2017-09-07 | Cadami Ug (Haftungsbeschränkt) | Kennungscodierungseinrichtung und Kennungsdecodierungseinrichtung zur Datenverteilung in Netzwerken sowie derartige Einrichtungen aufweisende Netzwerkelemente |
EP3424200B1 (de) | 2016-03-03 | 2023-06-07 | Cadami GmbH | Kennungscodierungseinrichtung und kennungsdecodierungseinrichtung zur datenverteilung in netzwerken sowie derartige einrichtungen aufweisende netzwerkelemente |
EP3451628A1 (en) * | 2017-08-31 | 2019-03-06 | Institut Eurecom G.I.E. | System and method for managing distribution of information in multi-antenna and multi-transmitter environments |
WO2019166106A1 (en) | 2018-03-02 | 2019-09-06 | Huawei Technologies Co., Ltd. | Devices and methods for coded caching |
US11625327B2 (en) * | 2019-12-10 | 2023-04-11 | EMC IP Holding Company LLC | Cache memory management |
CN114374687B (zh) * | 2022-01-11 | 2024-04-16 | 同方有云(北京)科技有限公司 | 热磁存储与蓝光存储之间的文件传输方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080005347A1 (en) | 2006-06-29 | 2008-01-03 | Yahoo! Inc. | Messenger system for publishing podcasts |
US20080263057A1 (en) | 2007-04-16 | 2008-10-23 | Mark Thompson | Methods and apparatus for transferring data |
KR20090025940A (ko) * | 2007-09-07 | 2009-03-11 | 삼성전자주식회사 | 분산 파일 시스템 및 분산 파일 시스템의 캐쉬 데이터 대체방법 |
KR20110044989A (ko) * | 2008-07-02 | 2011-05-03 | 오팡가 네트웍스, 인크. | 링크 프로파일링을 사용한 적응형 파일 전달 시스템 및 방법 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6816872B1 (en) * | 1990-04-26 | 2004-11-09 | Timespring Software Corporation | Apparatus and method for reconstructing a file from a difference signature and an original file |
US6205446B1 (en) * | 1997-10-31 | 2001-03-20 | Selectica, Inc. | Method for merging multiple knowledge bases into one optimized and compressed knowledge base |
JP4281185B2 (ja) * | 1999-03-25 | 2009-06-17 | ソニー株式会社 | 編集装置および方法 |
JP2001337860A (ja) | 2000-05-24 | 2001-12-07 | Newsoft Technology Corp | ファイルの保存及び読出しの確実且つ安全な方法 |
JP2002014684A (ja) * | 2000-06-29 | 2002-01-18 | Matsushita Graphic Communication Systems Inc | 情報配信方法、サーバ装置及び情報受信端末装置 |
US6823394B2 (en) * | 2000-12-12 | 2004-11-23 | Washington University | Method of resource-efficient and scalable streaming media distribution for asynchronous receivers |
US7266609B2 (en) * | 2001-04-30 | 2007-09-04 | Aol Llc | Generating multiple data streams from a single data source |
US7237033B2 (en) * | 2001-04-30 | 2007-06-26 | Aol Llc | Duplicating switch for streaming data units to a terminal |
US7130528B2 (en) * | 2002-03-01 | 2006-10-31 | Thomson Licensing | Audio data deletion and silencing during trick mode replay |
US7313137B2 (en) * | 2003-02-26 | 2007-12-25 | International Business Machines Corp. | System and method for efficient replication and distribution of data objects |
JP2007519301A (ja) * | 2003-09-30 | 2007-07-12 | ドラプレット テクノロジー インコーポレイテッド | 時間型順序外圧縮及びマルチソース圧縮率制御のシステム及び方法 |
US20090025046A1 (en) * | 2005-03-09 | 2009-01-22 | Wond, Llc | Hybrid architecture for media services |
US7640353B2 (en) | 2006-04-27 | 2009-12-29 | Microsoft Corporation | Guided random seek support for media streaming |
US20080016289A1 (en) * | 2006-07-11 | 2008-01-17 | Pennock James D | External memory interface engine |
WO2009100420A2 (en) * | 2008-02-07 | 2009-08-13 | Realnetworks, Inc. | Selective advertising in media content |
US20090222509A1 (en) | 2008-02-29 | 2009-09-03 | Chao King | System and Method for Sharing Storage Devices over a Network |
CN102473240B (zh) * | 2009-08-03 | 2015-11-25 | 摩托罗拉移动有限责任公司 | 编码视频内容的方法 |
US8150914B1 (en) * | 2011-05-25 | 2012-04-03 | Zynga Inc. | Simultaneous download of application file portions |
-
2011
- 2011-03-31 US US13/077,420 patent/US9054920B2/en not_active Expired - Fee Related
-
2012
- 2012-03-22 KR KR1020137028519A patent/KR101495560B1/ko not_active IP Right Cessation
- 2012-03-22 WO PCT/US2012/030090 patent/WO2012134941A1/en active Application Filing
- 2012-03-22 CN CN201280015563.7A patent/CN103477609B/zh not_active Expired - Fee Related
- 2012-03-22 JP JP2014502635A patent/JP5833737B2/ja not_active Expired - Fee Related
- 2012-03-22 EP EP12711328.0A patent/EP2692114B1/en not_active Not-in-force
-
2013
- 2013-01-22 US US13/746,406 patent/US9401951B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080005347A1 (en) | 2006-06-29 | 2008-01-03 | Yahoo! Inc. | Messenger system for publishing podcasts |
US20080263057A1 (en) | 2007-04-16 | 2008-10-23 | Mark Thompson | Methods and apparatus for transferring data |
KR20090025940A (ko) * | 2007-09-07 | 2009-03-11 | 삼성전자주식회사 | 분산 파일 시스템 및 분산 파일 시스템의 캐쉬 데이터 대체방법 |
KR20110044989A (ko) * | 2008-07-02 | 2011-05-03 | 오팡가 네트웍스, 인크. | 링크 프로파일링을 사용한 적응형 파일 전달 시스템 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
CN103477609A (zh) | 2013-12-25 |
JP5833737B2 (ja) | 2015-12-16 |
US20120254459A1 (en) | 2012-10-04 |
US9401951B2 (en) | 2016-07-26 |
KR20130138316A (ko) | 2013-12-18 |
WO2012134941A1 (en) | 2012-10-04 |
EP2692114B1 (en) | 2017-09-06 |
JP2014510977A (ja) | 2014-05-01 |
US20140207913A1 (en) | 2014-07-24 |
EP2692114A1 (en) | 2014-02-05 |
US9054920B2 (en) | 2015-06-09 |
CN103477609B (zh) | 2016-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101495560B1 (ko) | 데이터 파일 송신 관리 | |
US11297140B2 (en) | Point of presence based data uploading | |
CN106993054B (zh) | 文件分发方法、节点及系统 | |
US8762718B2 (en) | Broadcast deduplication for satellite broadband | |
CN106790324B (zh) | 内容分发方法、虚拟服务器管理方法、云平台和系统 | |
US9485288B2 (en) | Peer-to-peer communication method in content centric network environment | |
US8819080B2 (en) | System and method for collection, retrieval, and distribution of data | |
KR101301004B1 (ko) | 컨텐츠 분산 저장형 멀티미디어 스트리밍 시스템 및 방법 | |
KR101330052B1 (ko) | 적응형 컨텐츠 전송 방식을 지원하는 컨텐츠 캐싱 서비스 제공 방법 및 이를 위한 로컬 캐싱 장치 | |
KR20130088774A (ko) | 분할 콘텐트 전달 시스템 및 방법 | |
JP5847185B2 (ja) | コンテンツ中心のネットワーク環境でグループ変更に関する情報を用いるコンテンツ共有方法及び装置 | |
KR101104729B1 (ko) | 최적의 캐시조각 획득방식을 이용하는 컨텐츠 분산 저장형 멀티미디어 스트리밍 시스템 및 방법 | |
KR20140141715A (ko) | 클라우드 네트워크에서 접속들을 가속하기 위한 방법 및 장치 | |
Ip et al. | COPACC: An architecture of cooperative proxy-client caching system for on-demand media streaming | |
US9535837B2 (en) | Decentralized online cache management for digital content conveyed over shared network connections based on cache fullness and cache eviction policies | |
KR101546199B1 (ko) | 콘텐츠 전달 네트워크를 위한 협력 캐싱 방법, 콘텐츠 서비스 제공 서버 및 캐싱 서버 | |
KR101469310B1 (ko) | 서비스 오버레이 네트워크에서 종단간 QoS 보장형 콘텐츠 전달 방법 및 그 시스템 | |
US20170041383A1 (en) | Information object obtaining method, server, and user equipment | |
US11463520B2 (en) | Systems and methods for storing content items in secondary storage | |
KR101525471B1 (ko) | 비디오제공방법 및 비디오제공시스템 | |
Kwon et al. | Scalable video streaming relay for smart mobile devices in wireless networks | |
JPWO2013047207A1 (ja) | キャッシュシステム、キャッシュ方法、及びキャッシュサーバ | |
Papadakis et al. | Adaptive content caching simulation with visualization capabilities | |
Bose et al. | Mobile-Based Video Caching Architecture Based on Billboard Manager | |
JP2018109903A (ja) | コンテンツ配信システムの転送装置及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20180209 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |