WO2002073440A1 - Re-assemblage de fichiers en continu a partir de connexions separees - Google Patents
Re-assemblage de fichiers en continu a partir de connexions separees Download PDFInfo
- Publication number
- WO2002073440A1 WO2002073440A1 PCT/US2002/007659 US0207659W WO02073440A1 WO 2002073440 A1 WO2002073440 A1 WO 2002073440A1 US 0207659 W US0207659 W US 0207659W WO 02073440 A1 WO02073440 A1 WO 02073440A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- sub
- file
- files
- network
- server
- Prior art date
Links
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
- 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/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23103—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion using load balancing strategies, e.g. by placing or distributing content on different disks, different memories or different servers
-
- 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]
Definitions
- the present invention relates generally to data communication networks and more particularly to a method and apparatus for reassembling streaming files from separate connections.
- Replicating an entire file onto multiple file servers is a technique that can be used to speed up the delivery of data.
- the data can be delivered to an end user from the closest available server.
- the data can be delivered from multiple servers simultaneously, where each server provides a portion ofthe total file.
- replicating the full file onto a large number of servers uses large amounts of expensive disk storage. For instance, a system consisting of a hundred servers with 100 gigabytes of storage each would have a total of 10,000 gigabytes of storage available if data were not replicated. If all files must be fully replicated onto each server, however, the system would only be able to store 100 gigabytes of unique files.
- U.S. provisional patent application serial number 60/275,408, entitled “Splitting and Redundant Storage on Multiple Servers", filed March 12, 2001, describes a method and apparatus for dividing a file into multiple sub-files and storing the sub-files onto one or more servers.
- the servers may be distributed over different geographical locations.
- the sub-files can be transmitted in parallel from one or more servers, which increases the rate at which data can be delivered.
- the invention is a technique and apparatus for re-assembling transmitted portions of files or sub-files, into a viewable file.
- the transmitting device passes the information regarding the file dividing process to the receiver so that the sub-files can be assembled or stitched back together properly.
- the media player in the receiver uses the attached instructions to assemble the sub-files into one whole piece for viewing.
- Figure 1 is a system block diagram of one embodiment of a network system in which the system and method ofthe invention may be implemented.
- Figure 2 is a system block diagram of one embodiment of a computer system which implements the embodiments ofthe invention.
- FIG. 3 is a flow chart illustrating one embodiment ofthe setup process provided in accordance with the principles ofthe invention.
- Figure 4 illustrates one embodiment of a process for splitting and distributing a file, in accordance with the principles ofthe invention.
- Figure 5 illustrates one embodiment of a process for replicating storage of sub files, provided in accordance with the principles ofthe invention.
- Figure 6 is a flow chart illustrating one embodiment of a process flow for configuring a file for storage, provided in accordance with the principles ofthe invention.
- Figure 7 illustrates one embodiment ofthe beginning portion of a playback process of a re-assembled media file.
- Figure 8 illustrates one embodiment of a simultaneous transfer process, provided in accordance with the principles ofthe invention.
- Figure 9 illustrates one embodiment of a transfer flow from a server, provided in accordance with the principles of the invention.
- Figure 10A illustrates one embodiment of a list of server addresses, provided in accordance with the principles of the invention.
- FIG. 10B illustrates one embodiment of an initial server assignment, provided in accordance with the principles ofthe invention.
- Figure IOC illustrates one embodiment of server re-assignment, provided in accordance with the principles ofthe invention.
- Figure 11 is a system block diagram of one example of a networked system that implements one embodiment ofthe process ofthe invention.
- Replicating a file onto multiple file servers in accordance with the principles ofthe invention facilitates the transmission rate ofthe data.
- the data may be delivered to an end user from the closest and fastest server.
- the data may be delivered from multiple servers simultaneously, where each server provides a portion ofthe total file.
- One aspect ofthe invention involves a technique and apparatus that may be used to re-assemble the sub-files into the viewable file.
- a technique may be implemented, for example, by the receiver or by the end-user's machine.
- the server passes the information regarding the splitting process to the receiver or end-user device so that the sub-files can be assembled or stitched back together properly.
- the media player in the receiver will use the attached instructions to stitch the sub-files into one whole piece for viewing.
- a second aspect ofthe invention involves the determination of the optimum servers to be used for the transmission, if more than one server can actually provide the requested sub-file, and to change to the optimum servers at any time.
- a "computer system” is a product including circuitry capable of processing data.
- the computer system may include, but is not limited to, general purpose computer systems (e.g., server, laptop, desktop, palmtop, personal electronic devices, etc.), personal computers (PCs), hard copy equipment (e.g., printer, plotter, fax machine, etc.), banking equipment (e.g., an automated teller machine), and the like.
- Content and/or media elements refers to application programs, driver programs, utility programs, file, payload, and combinations thereof, as well as graphics, informational material (articles, stock quotes, etc.) and the like, either singly or in any combination.
- a "communication link” refers to the medium or channel of communication.
- the communication link may include, but is not limited to, a telephone line, a modem connection, an Internet connection, an Integrated Services Digital Network ("ISDN”) connection, an Asynchronous Transfer Mode (ATM) connection, a frame relay connection, an Ethernet connection, a coaxial connection, a fiber optic connection, satellite connections (e.g. Digital Satellite Services, etc.), wireless connections, radio frequency (RF) links, electromagnetic links, two way paging connections, etc., and combinations thereof.
- ISDN Integrated Services Digital Network
- ATM Asynchronous Transfer Mode
- frame relay connection e.g. Digital Satellite Services, etc.
- Ethernet connection e.g. Digital Satellite Services, etc.
- coaxial connection e.g. Digital Satellite Services, etc.
- satellite connections e.g. Digital Satellite Services, etc.
- wireless connections e.g. Digital Satellite Services, etc.
- RF radio frequency
- Figure 1 shows a system block diagram of one embodiment of a network system 10 in which the apparatus and method ofthe invention is used.
- the network system 10 comprises a service center 12 that is connected over one or more communication links 20 to a remote network 30 (e.g., a wide area network or the Internet) or a remote site (e.g., a satellite, which is not shown in Figure 1) to one or more user computer systems 40 J -40 N ("40").
- the service center 12 is a website.
- the service center 12 includes one or more servers 22 and one or more databases 24.
- the server 22 includes software modules that may be downloaded for performing the processes ofthe invention, as described in detail in the following sections.
- the service center 12 may also include one or more computers 26 ! -26 M - If a plurality of computers are used, then the computers 26 j -26 M may be connected by a local area network (LAN) or any other similar connection technology. However, it is also possible for the service center 12 to have other configurations. For example, a smaller number of larger computers (i.e. a few mainframe, mini, etc. computers) with a number of internal programs or processes running on the larger computers capable of establishing communication links to the user computers.
- LAN local area network
- the remote network 30 or remote site allows the service center 12 to provide peer-to-peer information and services to the user computers 40 J ⁇ 10 N , using software that is stored at the service center 12.
- the user computers 40 may be any computer system or any other device that processes and/or presents audio and/or video information.
- the one or more databases 24 connected to the service center computer(s), e.g., computer 26j, are used to store data.
- Each user computer 40 is connected via network connection 32 J -32 N over a corresponding communication link 42 ! -42 N such as a local carrier exchange to a respective ISP 44 ⁇ -44 N , through which access to the remote network 30 is made.
- each user computer 40 may be connected via network connection 32 J -32 N over a corresponding communication link 48 I -48 N to the service center 12, which provides internet access and service to the user computer(s) 40.
- the display screen for viewing the content or media elements may be located on a television coupled to the network 30. In this case, navigation through the content or media elements may be provided through the use of control buttons on a remote control unit for controlling viewing of the television, or by other means known in the art.
- the software for providing such processes may be developed and/or stored on a computer 40, or may be developed using one ofthe computers 26 1 - 26 M - Upon completion ofthe development process, the software may be stored in the computer 40 or in the database 24. Alternatively, the software may be stored on a machine-readable medium, in any ofthe computers 40 or computers 26 J -26 M -
- the computer system 100 (representing either of computer 26 or 40) comprises a processor or a central processing unit (CPU) 110.
- the illustrated CPU 110 includes an Arithmetic Logic Unit (ALU) for performing computations, a collection of registers for temporary storage of data and instructions, and a control unit for controlling operation for the system 100.
- ALU Arithmetic Logic Unit
- the CPU 110 includes any one ofthe x86, PentiumTM, Pentium IITM, and Pentium ProTM microprocessors as marketed by IntelTM Corporation, the K-6 microprocessor as marketed by AMDTM, or the 6x86MX microprocessor as marketed by CyrixTM Corp.
- CPU 110 is not limited to microprocessor but may take on other forms such as microcontrollers, digital signal processors, reduced instruction set computers (RISC), application specific integrated circuits, and the like. Although shown with one CPU 110, computer system 100 may alternatively include multiple processing units.
- RISC reduced instruction set computers
- the CPU 110 is coupled to a bus controller 112.
- the bus controller 112 may include a memory controller (not shown) integrated therein, though the memory controller may be external to the bus controller 112.
- the memory controller provides an interface for access by the CPU 110 or other devices to memory 116 via memory bus 114.
- the system memory 116 includes synchronous dynamic random access memory (SDRAM).
- SDRAM synchronous dynamic random access memory
- System memory 116 may optionally include any additional or alternative high speed memory device or memory circuitry.
- the bus controller 112 is coupled to a system bus 120 that may be a peripheral component interconnect (PCI) bus, Industry Standard Architecture (ISA) bus, etc.
- PCI peripheral component interconnect
- ISA Industry Standard Architecture
- Coupled to the system bus 120 are a graphics controller, a graphics engine or a video controller 132, a mass storage device 150, a communication interface device 152, and one or more input/output (I/O) devices l ⁇ S l ⁇ N.
- the video controller 132 is coupled to a video memory 136 (e.g., 8 Megabytes) and video BIOS 140, all of which may be integrated onto a single card or device, as designated by numeral 144.
- the video memory 136 is used to contain display data for displaying information on the display screen 148, and the video BIOS 140 includes code and video services for controlling the video controller 132.
- the video controller 132 is coupled to the CPU 110 through an Advanced Graphics Port (AGP) bus.
- AGP Advanced Graphics Port
- the mass storage device 150 includes (but is not limited to) a hard disc, floppy disc, CD-ROM, DVD-ROM, tape, high density floppy, high capacity removable media, low capacity removable media, solid state memory device, etc., and combinations thereof.
- the mass storage device 150 may include any other mass storage medium.
- the communication interface device 156 includes a network card, a modem interface, etc. for accessing network 164 via communications link 160.
- the I/O devices 168 I -168 N include a keyboard, mouse, audio/sound card, printer, and the like.
- the I/O devices 168 I -168 N may be disk drive, such as a compact disc (CD) drive, a hard disc drive, a tape drive, a zip drive, a jazz drive, a digital versatile disc (DVD) drive, a magneto-optical disk drive, a high density floppy drive, a high capacity removable media drive, a low capacity media device, and/or any combination thereof.
- CD compact disc
- hard disc drive a hard disc drive
- a tape drive a zip drive
- a jazz drive a digital versatile disc (DVD) drive
- DVD digital versatile disc
- magneto-optical disk drive such as a magneto-optical disk drive, a high density floppy drive, a high capacity removable media drive, a low capacity media device, and/or any combination thereof.
- the information, content and/or application software may be stored in the database 24, on the computers 40, or on a machine-readable medium.
- the information, content and/or application software may also be made available to users such as those located at user computer 1 - N, i.e., computers 40 I -40 N , through service center 12 or by means ofthe machine-readable medium.
- a request may be made by a user for content or media elements.
- the system and process ofthe invention may retrieve the desired content/media element from either database 24 or one of target websites 50 I -50 NN -
- the retrieved content/media element is then processed (e.g., decompressed, formatted, etc.). Users may then view the processed content/media element on a display device, such as a user computer 40.
- the desired content/media is provided to the user in a non-sequential fashion.
- the elements ofthe invention are essentially the code segments to perform the necessary tasks.
- the program or code segments can be stored in a processor readable medium or transmitted by a computer data signal embodied in a carrier wave over a transmission medium or communication link.
- the "processor readable medium” or “machine-readable medium” may include any medium that can store or transfer information. Examples ofthe processor readable medium include an electronic circuit, a semiconductor memory device, a read only memory (ROM), a flash memory, an erasable ROM (EROM), a floppy diskette, a compact disk ROM (CD-ROM), an optical disk, a hard disk, a fiber optic medium, etc.
- the computer data signal may include any signal that can propagate over a transmission medium such as electronic network channels, optical fibers, air, electromagnetic links, a radio-frequency link, etc.
- the codes segments may be downloaded via computer networks such as the Internet, Intranet, etc.
- Setup process 300 begins with the development ofthe client-side software at block 305.
- the client-side software will enable a user to communicate with client-side software by issuing read requests to one or more servers, according to one embodiment.
- the client-side software also comprises stitching software which may be used to reassemble a requested file, or portion thereof, which has been previously split.
- stitching software which may be used to reassemble a requested file, or portion thereof, which has been previously split.
- PCT/US_/ patent application which describes the reassembly ofthe sub-files into a viewable file upon receipt by a client system.
- the server passes the information regarding the splitting process to the client system to facilitate the sub-file reassembly process.
- Server-side software is developed at block 310. As will be discussed in more detail below, the server-side software will be able to process random read requests, according to one embodiment.
- the server-side software of block 310 may also enable a server to perform offset computations, thereby enabling the server to stream content to a client system beginning at the requested location.
- the server-side software may also comprise software to split a single file into multiple sub-files, which may then be distributed and stored on one or more servers.
- One example of a method for splitting files into sub-files is provided in related PCT Application No.
- PCT/US / patent application which describes the division of a single file into multiple sub-files which are then stored on one or more servers.
- a file may include text, data, graphics, video clips, JPEG elements or images, static photographs, web pages, audio clips, animation, any type of informational material or any combination thereof.
- the servers may be distributed over different geographical locations.
- the sub-files can be transmitted in parallel from one or more servers in response to a user request, thereby increasing the rate at which data can be delivered.
- the server-side software may be developed before the client-side software of block 305. It should further be appreciated that the development process of block 305 or block 310 may take place on any one of user computers 40, computers 26 -26 M , server 22, or any other system capable of being used for software development. It is also possible to install both client-side and server-side software on the same client computer to implement a peer-to-peer system. Continuing to refer to Figure 3, the software of block 305 and 310 are installed at block 315.
- client-side software of block 305 may be installed on one or more user computers 40, while the server-side software of block 310 may be installed on server 22.
- server-side software is installed on a plurality of servers connected either to the network 30 or to the client systems directly over a communications link.
- media presentation software is installed on one or more client system, such as one or more user computers 40.
- Media presentation software may include any of Windows Media Player, Real Player, QuickTime Player, or any other media players capable of receiving streaming content. It should also be appreciated that the media presentations software installation of block 320 may occur before the installation activities of blocks 315, and even before the development activities of blocks 305 and 310.
- the client system(s) on which the client-side software was loaded may be connected to the server(s) running the server-side software.
- the client system communicates with the server(s) by connecting to the World Wide Web, while in another embodiment the client system(s) and the server(s) communicate over a LAN connection.
- the client system(s) may interact with the server(s) over any known communication link.
- Figure 4 illustrates one embodiment of a process for dividing a file, in accordance with the principles ofthe invention.
- a 128 kilobyte file is divided and distributed.
- the size ofthe file is merely illustrative, and it is understood that the invention may be implemented using a file of a greater or smaller size.
- Such a file may include text, data, graphics, video clips, JPEG elements or images, static photographs, web pages, audio clips, animation, any type of informational material or any combination thereof.
- the original file Prior to transmission, the original file is configured for transmission.
- the original file may be divided into N segments or chunks, where N is a positive integer.
- the N segments are assembled into M sub-files, where M is a positive integer.
- Each ofthe sub-files has a file name and other file attributes, and is treated by the operating system's file system as just another file.
- the segments may be assigned to sub-files on a modulo 4 arrangement.
- the file is divided into 8 kilobyte segments, it is understood that the size ofthe segments and the number of sub-files is arbitrary.
- the invention may be implemented using a larger or smaller size chunk and a larger or smaller number of sub-files.
- each ofthe sub-files may be of different sizes.
- the segments may be distributed in modulo order and the sub-files may be of substantially equal size.
- the four sub-files SI through S4 may be distributed to multiple servers. As shown in the example of Figure 5, the first sub-file SI may be distributed to three servers, servers A, B, and C. The second sub-file S2 may be distributed to servers D and A. The third sub-file S3 may be distributed to servers B and C. The fourth subfile S4 may be distributed to servers D and B. It is understood that the sub-files may be distributed to a fewer or greater number of servers. Each sub file may be transmitted over a separate communication link, such as a TCP/IP connection to a receiver. In one embodiment, the Hyper Text Transfer Protocol (HTTP) may be used for each connection.
- HTTP Hyper Text Transfer Protocol
- the sub-files can be replicated so that the most frequently accessed files and sub-files are replicated onto more servers, while the less frequently accessed files and sub-files are replicated onto fewer servers.
- the sub files may be replicated onto multiple servers based on anticipated or actual demand. This saves disk space, since infrequently accessed files would take up less total disk space. Disk input/output bandwidth on each server would also be saved. For example, each server would read a 32 kilobyte sub-file and transmit the sub-file to the end user. If the files were not split up beforehand, each server would read the entire 128 kilobyte file, while transmitting only 32 kilobytes.
- Figure 6 is a flow chart illustrating one embodiment of a process flow for configuring a file for storage. Proceeding from a START state, the process 600 proceeds to configure an original file, such as file 400 of Figure 4, for transmission.
- the process 600 begins by determining the number and size of segments that the original file 400 should be divided into, as shown in process block 620.
- the process 600 determines the size and number of sub-files that the segments should be assembled into (process block 630).
- the process 600 determines the order of assembling the segments into each sub-file (process block 640).
- the process 600 is then ready to divide the original file, and proceeds to configure the original file by dividing it into segments, and thereafter assembling the segments into the sub-files, as discussed above (process block 650).
- the process 600 determines how the sub-files should be distributed to various servers for storage (process block 660). When this has been determined, the process 600 distributes and stores the sub-files onto the servers (process block 670). The process 600 then terminates or returns to the main process.
- Figure 7 illustrates one embodiment ofthe beginning portion of a playback process of a re-assembled media file.
- the playback process is described with reference to an end user's personal computer (PC). It is understood that the playback process and other processes described herein may be implemented on the receiver device in other electronic systems.
- the end user would view a web page that contains a link to a video clip.
- the link may be ofthe form "etp://1.2.3.4/fileS.cfg".
- the web browser When the end user clicks on the web page link, the web browser receives the file named filel .cfg from the server with the Internet address of 1.2.3.4, which will start the stitching program associated with the "etp:" protocol, and which will then transfer the contents of fileS.cfg to the stitching program.
- the original file Prior to transmission, the original file is configured for transmission.
- the original file may be divided into N segments, where N is a positive integer.
- the N segments are assembled into M sub-files, where M is a positive integer.
- the first chunk ofthe original file goes into the first subfile SI
- the second chunk ofthe original file goes into the second sub-file S2
- the fifth chunk ofthe original file would go into the first sub-file SI, after the first chunk ofthe original file.
- fileS.cfg may contain information such as the size ofthe segments, the number N ofthe segments, the number M of sub-files, the file size of the original file, and a list of Universal Resource Locator (URL) names ofthe subfiles.
- URL Universal Resource Locator
- the stitching program will use the configuration information to simultaneously request sub-file SI from server 11.1.1.1, sub-file S2 from server 11.1.1.2, sub-file S3 from server 11.1.1.3, and sub-file S4 from server 11.1.1.4, as illustrated in Figure 8.
- this example shows one sub-file being transmitted from each server, it is possible for multiple sub-files to originate from a single server, with each sub-file transmitted on a separate TCP/IP connection.
- sub-file SI contains segments 1, 5, 9, and 13 ofthe original file.
- the chunk 1 data will be transmitted first, then chunk 5, and so on.
- Subfile S2 contains segments 2, 6, 10, and 14 ofthe original file.
- the chunk 2 data will be transmitted first, then chunk 6, and so on.
- the segments of sub-file SI will be transmitted separately and in parallel with the segments of sub-file S2, because each sub-file would be transmitted over separate TCP/IP connections or via separate communication links.
- the sub-files will be transmitted at different rates from the different servers. In alternate embodiments, the sub-files may be transmitted at the same rates from one or more servers. Transmission errors, or lost packets for instance, will cause the TCP/IP protocol to retransmit a data packet until the packet is received correctly. This retransmission, among other things, will affect the transmission rate. Some paths may have more errors and lost packets than other paths. Some paths may also have more router hops and delays than other paths. This means that the reassembly ofthe segments into the original order of segments cannot be performed until the next required chunk has been fully and correctly received. For instance, once chunk 1 has been fully received and sent on to the media player, chunk 2 cannot be sent to the media player until it has been fully and correctly received, even if segments 3, 4, and 5 have been already received.
- the stitching program measures the speed of each connection as data is received. If data is received at too slow of a rate on a connection, the slow connection can be terminated, and a new connection can be started to the fastest server that contains a copy ofthe required sub-file.
- This server switching process may be implemented by providing multiple URLs in the configuration file.
- Each URL refers to a server that can provide the needed sub-file.
- An example of a URL list is shown in Figure 10 A. The list has three server choices for each sub-file. The initial server assignment for each sub-file is made from the first choice of possible assignments. The media transfers start out using these initial server assignments, as shown in Figure 10B.
- Sub-file Sl.mpg is transferred from the server with the IP address of 11.1.1.1 (an exemplary IP address) using the HTTP protocol, sub-file S2.mpg is transfened from the server with the IP address of 11.1.1.2, sub-file S3.mpg is transferred from the server with the LP address of 11.1.1.3, and sub-file S4.mpg is transferred from the server with the IP address of 11.1.1.4.
- the transfer rate from each server is measured and compared to a threshold for switching. If a sub-file's transfer rate is below the threshold, a new connection is established with the fastest server available for the sub-file. File offset information may be passed to the fast server about how much data had been received by the slow server, so that the fast server would not have to transmit duplicate information already received from the slow server. The connection to the slow server could be terminated once the new connection to the fast server has been established.
- the transfer rate switching threshold may be fixed, may be passed as a parameter in the configuration file, or may be made a function of other variables, such as the projected data buffer empty time. For instance, the transfer rate switching threshold may be increased if a large amount of data is buffered before it is needed, or the threshold may be decreased if only a small amount of data is buffered and the media player may soon be running out of input data.
- Figure IOC illustrates one embodiment of how the server connections could be re-assigned, assuming that the connection from server 11.1.1.2 for sub-file S2.mpg and the connection from server 11.1.1.3 for sub-file S3.mpg were slow and below the transfer rate switching threshold.
- the server 11.1.1.1 is chosen for the new connection because that server is already providing data for sub-file Al.mpg at a rate above the transfer rate switching threshold.
- the server 11.1.1.4 is chosen for the new connection because that server is already providing data for sub-file Sl.mpg at a rate above the transfer rate switching threshold.
- This procedure allows data to be transferred from multiple servers simultaneously for higher transfer rates.
- the data would be recombined, or stitched back together, for the media player.
- Each path's data transfer rate may be periodically measured and the slow paths or servers may be switched out in favor of faster paths or servers. This switching may occur at the very start ofthe transfer, so that it would not be necessary to keep a continuously updated map ofthe Internet's congestion. The switching may also occur periodically during the media playback, so that unexpected slowdowns in data transfer from one or more servers or paths could be countered. Only a small amount of buffering will be needed to make the switching process transparent to the end user.
- FIG 11 is a block diagram illustrating one example of a networked system 1100 that implements one embodiment ofthe invention.
- Client system 1100 running client-side software, is connected to one or more servers over network 30.
- Servers A, B, C and Dare running server-side software and are connected to network 30.
- client system 1110 and Servers A-D may be connected using any known communication link.
- the client-side software of client system 1110 includes stitching software 1120, which may be used to create reassembled file 1130. Thereafter, reassembled file 1130 may be provided to media presentation software 1140 for display.
- stitching software 1120 is used to reassemble file segments which have been transferred from one or more ofthe Servers A-D. While any known means of reassembling file segments may be used, the method described in the PCT/US_/ patent application may be used, according to one embodiment.
- sub-files SI and S2 from Figure 4 have been loaded onto Server A.
- sub-files SI, S3 and S4 have been loaded onto Server B
- sub-files SI and S3 have been loaded onto Server C
- sub-files S2 and S4 have been loaded onto Server D.
- the original file 400 has been split into four sub-files SI 410, S2 420, S3 430 and S4 440, with each ofthe four sub-files S1-S4 being available from more than one server.
- this arrangement improves the speed at which a user will be able to download a given file.
- the sub-files SI, S2, S3 and S4 may be accessed via network 30 upon demand. Upon retrieval, the files may be recombined using stitching software 1120 into reassembled file 1130. Thereafter, reassembled file 1130 may be provided to media presentation software 1140 for display. While the preceding description has been directed to particular embodiments, it is understood that those skilled in the art may conceive modifications and/or variations to the specific embodiments described herein. Any such modifications or variations which fall within the purview of this description are intended to be included therein as well. It is understood that the description herein is intended to be illustrative only and is not intended to limit the scope ofthe invention.
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/472,080 US7277958B2 (en) | 2001-03-12 | 2002-03-12 | Re-assembly of streaming files from separate connections |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US27540801P | 2001-03-12 | 2001-03-12 | |
US27540701P | 2001-03-12 | 2001-03-12 | |
US60/275,408 | 2001-03-12 | ||
US60/275,407 | 2001-03-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2002073440A1 true WO2002073440A1 (fr) | 2002-09-19 |
Family
ID=26957401
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2002/007724 WO2002073441A1 (fr) | 2001-03-12 | 2002-03-12 | Division et memorisation redondante sur des serveurs multiples |
PCT/US2002/007659 WO2002073440A1 (fr) | 2001-03-12 | 2002-03-12 | Re-assemblage de fichiers en continu a partir de connexions separees |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2002/007724 WO2002073441A1 (fr) | 2001-03-12 | 2002-03-12 | Division et memorisation redondante sur des serveurs multiples |
Country Status (1)
Country | Link |
---|---|
WO (2) | WO2002073441A1 (fr) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003032603A2 (fr) * | 2001-10-09 | 2003-04-17 | Koninklijke Philips Electronics N.V. | Sauts d'ip pour transmission de donnees securisee |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103024443A (zh) * | 2005-12-23 | 2013-04-03 | 联合视频制品公司 | 具有多个装置的交互式媒体导航*** |
US20070226224A1 (en) * | 2006-03-08 | 2007-09-27 | Omneon Video Networks | Data storage system |
US20080091740A1 (en) | 2006-10-12 | 2008-04-17 | France Telecom | Method for managing a partitioned database in a communication network |
DE102006060043A1 (de) | 2006-12-19 | 2008-06-26 | Siemens Ag | Verfahren und Sender zum Bereitstellen eines Datenstroms, Verfahren und Empfänger zum Abruf zumindest eines Datensegments eines Datenstroms |
US20080243692A1 (en) * | 2007-03-30 | 2008-10-02 | Verizon Services Corp. | Content ingest, maintenance, and delivery |
EP2608558A1 (fr) | 2011-12-22 | 2013-06-26 | Thomson Licensing | Système et procédé pour la diffusion adaptative dans un environnement à voies multiples |
CN112446770B (zh) * | 2020-12-15 | 2022-09-23 | 天津普泽工程咨询有限责任公司 | 一种招投标方法及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1997028620A1 (fr) * | 1996-01-30 | 1997-08-07 | Oy Nokia Ab | Codage de segments de fichier sur un canal radio numerique |
WO1998033320A1 (fr) * | 1997-01-29 | 1998-07-30 | West-Walker, Francis, Nigel | Procede de transfert de fichiers supports de donnees sur un reseau de communications |
US6085251A (en) * | 1998-04-02 | 2000-07-04 | The United States Of America As Represented By The Secretary Of The Air Force | Implementing a parallel file transfer protocol |
US6170060B1 (en) * | 1997-10-03 | 2001-01-02 | Audible, Inc. | Method and apparatus for targeting a digital information playback device |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5848398A (en) * | 1990-06-15 | 1998-12-08 | Arachnid, Inc. | System for managing a plurality of computer jukeboxes |
-
2002
- 2002-03-12 WO PCT/US2002/007724 patent/WO2002073441A1/fr not_active Application Discontinuation
- 2002-03-12 WO PCT/US2002/007659 patent/WO2002073440A1/fr not_active Application Discontinuation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1997028620A1 (fr) * | 1996-01-30 | 1997-08-07 | Oy Nokia Ab | Codage de segments de fichier sur un canal radio numerique |
WO1998033320A1 (fr) * | 1997-01-29 | 1998-07-30 | West-Walker, Francis, Nigel | Procede de transfert de fichiers supports de donnees sur un reseau de communications |
US6170060B1 (en) * | 1997-10-03 | 2001-01-02 | Audible, Inc. | Method and apparatus for targeting a digital information playback device |
US6085251A (en) * | 1998-04-02 | 2000-07-04 | The United States Of America As Represented By The Secretary Of The Air Force | Implementing a parallel file transfer protocol |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003032603A2 (fr) * | 2001-10-09 | 2003-04-17 | Koninklijke Philips Electronics N.V. | Sauts d'ip pour transmission de donnees securisee |
WO2003032603A3 (fr) * | 2001-10-09 | 2004-06-03 | Koninkl Philips Electronics Nv | Sauts d'ip pour transmission de donnees securisee |
Also Published As
Publication number | Publication date |
---|---|
WO2002073441A1 (fr) | 2002-09-19 |
WO2002073441A9 (fr) | 2004-04-08 |
WO2002073441A8 (fr) | 2005-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7277958B2 (en) | Re-assembly of streaming files from separate connections | |
US20040088380A1 (en) | Splitting and redundant storage on multiple servers | |
US6813690B1 (en) | Caching media data using content-sensitive identifiers | |
EP2263208B1 (fr) | Distribution de contenu dans un réseau | |
US8024484B2 (en) | Caching signatures | |
EP1410247B1 (fr) | Systeme de stockage sur reseau | |
EP0966715B1 (fr) | Systeme et procede de selection et d'extraction de divers types de donnees video dans un reseau d'ordinateurs | |
US7266555B1 (en) | Methods and apparatus for accessing remote storage through use of a local device | |
US7428540B1 (en) | Network storage system | |
US7203731B1 (en) | Dynamic replication of files in a network storage system | |
US7266556B1 (en) | Failover architecture for a distributed storage system | |
EP1410261B1 (fr) | Procede et appareil de services de pairs | |
JP2004535631A (ja) | 通信ネットワークからユーザへ情報を送る時間を減らすシステムと方法 | |
US7539762B2 (en) | Method, system and program product for determining an initial number of connections for a multi-source file download | |
US20030009587A1 (en) | Method and apparatus for peer-to-peer services | |
EP1415455A2 (fr) | Procede et appareil pour services d'egal a egal | |
US6324584B1 (en) | Method for intelligent internet router and system | |
WO2002027492A1 (fr) | Procede et systeme de transmission d'applications de logiciels a un client | |
JP2010020782A (ja) | 情報転送方法 | |
US20030009586A1 (en) | Method and apparatus for peer-to-peer services | |
WO2002073437A1 (fr) | Architecture de recherche pour lecture de contenu multimedia en continu | |
WO2002073440A1 (fr) | Re-assemblage de fichiers en continu a partir de connexions separees | |
EP1276292B1 (fr) | Protocole de transfert de fichiers | |
US7167921B1 (en) | Full duplex re-transmitter | |
Miu et al. | Performance analysis of a dynamic parallel downloading scheme from mirror sites throughout the internet |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
WWE | Wipo information: entry into national phase |
Ref document number: 10472080 Country of ref document: US |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
122 | Ep: pct application non-entry in european phase | ||
NENP | Non-entry into the national phase |
Ref country code: JP |
|
WWW | Wipo information: withdrawn in national office |
Country of ref document: JP |