throbber
United States Patent
`(12)
`(10) Patent No.:
`US 7,191,242 B1
`
`Serenyi et al.
`(45) Date of Patent:
`Mar. 13, 2007
`
`US007191242B1
`
`(54) METHODS AND APPARATUSES FOR
`TRANSFERRING DATA
`
`(75)
`
`Inventors: Denis Serenyi, Menlo Park, CA (US);
`Chris LeCroy, Boulder Creek, CA
`(US)
`
`.
`.
`(73) A551gnee: Apple, Inc., Cupertmo, CA (US)
`
`( * ) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 716 days.
`
`(21) Appl. No.: 09/603,108
`
`(22)
`
`Filed:
`
`Jun_ 22, 2000
`
`(51)
`
`Int. Cl.
`(2006.01)
`G06F 15/16
`(52) US. Cl.
`....................................... 709/231; 709/217
`(58) Field of Classification Search ................ 709/223,
`.
`.
`70933132245225
`See appllcat1on file for complete search h1story~
`-
`References Cited
`
`(56)
`
`US. PATENT DOCUMENTS
`709/228
`5 918 020 A *
`6/1999 Blackard et al
`6,252,889 B1*
`6/2001 Patki et 31.
`...'....W..... 370/474
`
`7/2001 Geagan et 31. ........... 709/231
`6,263,371 B1 *
`
`..... 370/248
`6,275,471 B1*
`8/2001 Bushmitch et al.
`.
`6,300,887 B1* 10/2001 Le ........................... 341/60
`
`
`3/2002 Huckins .................. 348/512
`6,359,656 B1 *
`~~~~~~~~ 709/231
`6,415,327 131*
`7/2002 Beekerman et 31~
`6,505,169 Bl *
`1/2003 BhagaVath et 3T
`6’546’421 131*
`£2003 Wynblattlet 31' """""" 70/9/225
`
`“ 37790382;
`22333: E; *
`35883 $631561 a1””””
`6,639,896 B1* 10/2003 Goode et al.
`............... 370/224
`6,674,477 B1 *
`1/2004 Yamaguchi et al.
`..... 348/3871
`6,708,213 B1*
`3/2004 Bommajah et a1.
`......... 709/226
`
`3/2004 Shiobara ..................... 370/235
`6,711,131 B1*
`8/2004 Brassil et al.
`............... 370/390
`6,771,644 B1 *
`FOREIGN PATENT DOCUMENTS
`
`W0
`W0
`
`6/1997
`WO 97/22201 A2
`5 2000
`W0 00 27087 A1
`/
`/
`OTHER PUBLICATIONS
`
`Schulzrinne et 31., “RTP: A Transport Protocol for Real-Time
`
`APPIlcatlonS”a Jan' 1396’ RFC 1889*
`$533110? lgggliRFET;5131:1026 Format for MPEGl/MPEGZ
`’
`'
`’
`'
`(Continued)
`
`Primary Examinerilason Cardone
`Assistant ExamineriThomas Duong
`y g
`y
`y
`74 Allorne ,A 6111, or FirmiBlakel , Sokoloif, Ta lor &
`Zafman LLP
`
`ABSTRACT
`(57)
`The present invention provides several methods and appa-
`ratuses for transmitting multimedia data using streaming
`media protocols such as real-time transfer protocols (RTP)
`and real-time streamin
`rotocols RTSP in a com uter
`.
`g p
`.
`p
`network enV1ronment. In one exemplary embodlment, a
`request for RTP data and its associated extension is sent from
`the caching proxy server to the server. The request may be
`for one Spedfic type 0f data or muniple unrelated types 0f
`data. The server responds to the request
`indicating its
`SHPPOrt for the requested RTP extension data- The caching
`proxy server determines whether to proceed or terminate the
`data transmission process based on the response provided by
`the server. If it
`is determined to proceed with the data
`transmission process, the caching proxy informs the server
`to send the requested and supported RTP data. The server
`sends the requested data in a variable and extendible header
`format
`
`42 Claims, 13 Drawing Sheets
`
`CF ASKS SETUP IN RTSP
`FOR AUDIO DATA AND SPECIFIES
`EXTENSIONS TO RTP DATA
`FOR AUDIO DATA
`
`501
`
`502
`
`503
`
`502
`
`504
`
`Apple Exhibit 4220
`
`Apple V. SightSound Technologies
`CBM2013-00020
`
`Page 00001
`
`EXTENSIONS 505
`
`SERVER RESPONDS/NEGOTIATES
`
`GP ASKS SETUP IN RTSP
`FOR VIDEO DATA AND SPECIFIES
`EXTENSIONS T0 RTP DATA
`
`SERVER RESPONDS/NEGOTIATES
`
`CP ASKS PLAY IN RTSP
`
`SERVER RESPONDS WITH RTP DATA
`FOR ALL TRACKS WITH NEGOTIATED
`
`Apple Exhibit 4220
`Apple v. SightSound Technologies
`CBM2013-00020
`Page 00001
`
`

`

`US 7,191,242 B1
`Page 2
`
`OTHER PUBLICATIONS
`
`Schulzrinne, H. et al, “RTP: A Transport Protocol for Real-Time
`Applications”, Jan. 1 996, RFC 1889*
`Carsten Griwodz, Alex Jonas, Michael Zink, Affordable Infrastruc-
`ture for Stream Playback in the Internet, Darmstadt University of
`Industrial Process and System Communications (KOM), Dec. 12,
`1999, Technical Report TR-KOM-l999-07, Darmstadt, Germany.
`Schulzrinne, Henning and Rosenberg, Jonathan. “Internet Tele-
`phony: architecture and protocolsian IETF perspective,” Com—
`
`purer Networks, ElseVier Science Publishers: Amsterdam, NL, V01.
`31 No. 3, Feb. 11, 1999 (pp. 237—255).
`.
`.
`.
`“
`.
`Schulzrinne, Henning et al. RTP. Atransport protocol for real-time
`applications,” Network Working Group RFC 1889 RTP’ Jan. 1996
`(pp. 1'75)
`PCT International Search Report for PCT Int’l Appln No. US01/
`20044, mailed May 22, 2002 (8 pages).
`
`* Cited by examiner
`
`Page 00002
`
`Page 00002
`
`

`

`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 1 of 13
`
`US 7,191,242 B1
`
`ORIGINATING SERVER AND CACHING PROXY SERVER(CP)
`NEGOTIATE, THROUGH REAL-TIME STREAMING PROTOCOL
`(RTSP) FOR SERVER TO SEND AND OF SERVER TO RECEIVE
`STREAMING MEDIA DATA (FOR‘EXAMPLE: OUICKTIME
`STREAMING AUDIO DATA).
`
`STREAMING MEDIA DATA TO THE CLIENT SYSTEM.
`
`CP SERVER RECEIVES STREAMING MEDIA DATA, USING REAL
`TIME TRANSFER PROTOCOL (RTP), IN STREAMING MEDIA
`FORMAT NOT THE SAME FORMAT AS STORED ON ORIGINATING
`
`SERVER AND CP SERVER STORES THE STREAMING MEDIA DATA,
`IN THE STREAMING MEDIA FORMAT, ON A STORAGE DEVICE
`CONTROLLED BY CP SERVER.
`
`CP SERVER RECEIVES REQUEST, THROUGH RTSP, FROM A
`CLIENT FOR THE STREAMING MEDIA DATA AND RETRIEVES THE
`
`DATA FROM THE STORAGE DEVICE AND TRANSMITS THE
`
`FIG. 1A
`
`Page 00003
`
`Page 00003
`
`

`

`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 2 of 13
`
`US 7,191,242 B1
`
`100
`
`\
`
`122
`
`
`
`
`
`122
`
`130
`(\J
`CP SERVER
`
`
`
`
`102
`
`106
`
`CLIENT
`COMPUTER W
`SYSTEM
`
`‘04
`
`108
`
`CLIENT
`SYSTEM W
`COMPUTER
`
`110
`
`GATEWAY
`SYSTEM
`
`1 12
`
`INTERNET
`
`132
`
`(\J
`0P SERVER
`-
`
`126
`
`128
`
`
`STREAMING
`
`MEDIA SERVER
`SYSTEM
`
`114
`
`116
`
`NETWORK
`INTERFACE
`
`NETWORK
`INTERFACE
`
`118
`
`120
`
`CLIENT
`COMPUTER
`SYSTEM
`
`CLIENT
`COMPUTER
`SYSTEM
`
`Page 00004
`
`Page 00004
`
`

`

`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 3 of 13
`
`US 7,191,242 B1
`
` 255
` 252
`
`
`
`. 26
`
`l
`
`258
`
`MEMORY
`
`262
`
`4
`
` PROCESSOR
`
`
`DISPLAY
`CONTROLLER
`
`DISPLAY
`
`MASS
`MEMORY
`
`|/O
`CONTROLLER
`
`266
`
`VD
`DEVICES
`
`260
`
`
`
`
`
`
` DIGITAL PROCESSING
`SYSTEM 259
`
` MODEM OR
`
`NETWORK
`
`
`INTERFACE
`
`
`FIG. 2
`
`Page 00005
`
`Page 00005
`
`

`

`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 4 of 13
`
`US 7,191,242 B1
`
`301
`
`302
`
`RTSP & RTP
`
`
`
`SERVER(S)
`
`CLIENT(C)
`
`FIG. 3
`
`301
`
`401
`
`302
`
`CLIENT(C)
`
`CACHING PROXY
`SERVER (GP)
`
`SERVER(S)
`
`RTSP & RTP
`
`FIG. 4
`
`Page 00006
`
`Page 00006
`
`

`

`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 5 of 13
`
`US 7,191,242 B1
`
`CP ASKS SETUP IN RTSP
`
`FOR AUDIO DATA AND SPECIFIES
`EXTENSIONS TO RTP DATA
`
`
`
`FOR AUDIO DATA
`
`SERVER RESPONDS/NEGOTIATES
`
`
`
`
`CP ASKS SETUP IN RTSP
`FOR VIDEO DATA AND SPECIFIES
`EXTENSIONS TO RTP DATA
`
`SERVER RESPONDS/NEGOTIATES
`
`CP ASKS PLAY IN RTSP
`
`SERVER RESPONDS WITH RTP DATA
`
`EXTENSIONS
`
`FOR ALL TRACKS WITH NEGOTIATED
`
`501
`
`502
`
`503
`
`502
`
`504
`
`505
`
`FIG. 5
`
`Page 00007
`
`Page 00007
`
`

`

`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet6 0f13
`
`US 7,191,242 B1
`
`Emfio
`
`mEE
`
`mom5vSm
` mm>mmw
`
`Hmkuqm
`
`h2mé$fi
`
`mom
`
`
`
`@5on.203
`
`noEwmem
`
`
`
`
`
`
`
`52me$5meSEER_>_<mE.m
`
`
`
`t.._.<.2630
`
`
`
`o._.<H<o
`
`@252me0mmx0mmmHEP0mmowow
`02%Ct.Ctxmro453<H<o<H<o«EB
`
`
`
`Page 00008
`
`Page 00008
`
`
`
`

`

`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 7 of 13
`
`US 7,191,242 B1
`
`
`
`CP ASKS FOR TRANSMIT TIME
`INFORMATION FROM THE SERVER
`
`701
`
`
`
`
`
`
`
`
`
`
`
`
`
`705
`
`706
`
`____________ -*—I
`I
`I
`CLIENT MAY ALSO
`:
`:
`ASK FOR PLAY OR
`I
`w. OTHER DATA DIRECTLY I
`I
`PROM SERVER
`I
`711
`_____________f_.I
`
`
`702.—___.—___________—____—_—___—_.
`
`SERVER RECEIVES THE REQUEST FOR
`
`TRANSMIT TIME (TI)
`709
`
`
`SERVER DOES NOT RESPOND TO
`
`
`SERVER RESPONDS AND SENDS TT
`REQUEST THIS INDICATES THAT
`
`
`IDENTIFIER CODE, WHICH
`SERVER DOES NOT SUPPORT THE
`
`
`
`CORRESPONDS, TO TTTYPE OF
`EXTENSION REQUESTED
`
`
`
`EXTENSION, IN AN EXTENSIBLE
`
`
`HEADER FORMAT - STREAMING DATA
`
`
`IS SENT WITH TT EXTENDED DATA
`CP MAY TERMINATE PROCESS
`
`
`710
`IF "IT IS CRITICAL ELEMENT
`
`
`OF THE CP OPERATION
` -EXTENSIBLE HEADER FORMAT IS A
`
`
`SUB—EXTENSION CONTAINING A SUB-
`
`EXTENSION ID, IDENTIFYING THE
`
`CONTENT OF THE INFORMATION.
`—I'I' SUB-EXTENSION ALSO
`CONTAINS A SINGLE 64-BIT
`UNSIGNED INTEGER REPRESENTING
`RECOMMENDED TRANSMISSION
`TIME OF RTP PACKET IN
`MILLISECONDS
`
`
`
`
`CP GETS THETTDATA, REMDVES
`
`
`EXTENSION HEADER AND STORES THE
`
`
`DATA LOCALLY;TITIMES ARE
`ASSOCIATED WITH APPROPRIATE
`
`STREAMING DATA
`I
`
`
`
`CLIENT REQUESTS STREAMING DATA
`BY MAKING A PLAY REQUEST IN
`
`RTSP
`
`CP RESPONDS AND SENDS TRACKS OF DATA AT APPROPRIATE TIMES
`SPECIFIED BY TTTIMES ASSOCIATED WITH STREAMING DATA
`
`III I
`
`;
`
`. I
`
`707
`
`CLIENT PLAYS DATA
`
`I
`708
`—————————————————————————————
`
`Page 00009
`
`Page 00009
`
`

`

`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 8 of 13
`
`US 7,191,242 B1
`
`
`
`CP ASKS FOR FRAME TYPE
`INFORMATION FROM THE SERVER
`
`
`
`SERVER RECEIVES THE REQUEST FOR —————————————————————————————
`FRAME TYPE (FT)
`
`807
`
`
`SERVER DOES NOT RESPOND TO
`
`
`SERVER RESPONDS AND SENDS FT
`REQUEST THIS INDICATES THAT
`
`IDENTIFIER CODE. WHICH
`SERVER DOES NOT SUPPORT THE
`
`
`
`CORRESPONDS, TO FT TYPE OF
`EXTENSION REOUESTED
`
`
`
`EXTENSION, IN AN EXTENSIBLE
`HEADER FORMAT - STREAMING DATA
`
`IS SENT WITH FT EXTENDED DATA
`OF MAY TERMINATE PROCESS
`
`IF FT IS CRITICAL ELEMENT
`
`
`
`EXTENSIBLE HEADER FORMAT IS A
`OF THE OF OPERATION
`
`
`SUB-EXTENSION CONTAINING A SUB-
`EXTENSION ID, IDENTIFYING THE
`
`
`CONTENT OF THE INFORMATION.
`FT SUB-EXTENSION ALSO
`
`CONTAINS 64-BIT UNSIGNED INTEGER
`
`
`VALUE WITH WELL-KNOWN FRAME
`TYPES SUCH AS O-UNKNOWN FRAME,
`1-KEY FRAME, 2-B FRAME, AND
`
`
`
`3-P FRAME. FUTURE VERSIONS
`CLIENT INFORMS 45,09
`CAN ADD MORE FRAMES.
`
`OF THAT IT IS
`
`OVERLOADEO
`
`r ------------'—
`WITH
`
`
`.
`CLIENT MAY ALSO
`INFORMATION
`
`ASK FORFTOR
`
`I
`CP GETS THE FT DATA REMOVES
`
`EXTENSION HEADER AND STORES THE
`N. OTHER DATA DIRECTLY
`
`810 I
`FROMTHESERVER
`DATA LOCALLY; FT FRAMES ARE
`ASSOCIATED WITH APPROPRIATE
`STREAMING DATA
`
`
`
`
` CP REVIEWS CLIENT REQUEST STOPS
`SENDING LEAST IMPORTANT FRAMES
`
`AND SENDS ONLY HIGHER
`IMPORTANCE FRAMES
`
`----------------------------
`
`II
`
`I|
`
`Il
`
`808
`
`
`
`
`
`
`FIG. 8
`
`Page 00010
`
`Page 00010
`
`

`

`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 9 of 13
`
`US 7,191,242 B1
`
`CP ASKS BY NAME FOR ONE OR MORE RTP
`SUB-EXTENSIONS USING RTSP PROTOCOL
`
`901
`
`
`
`SERVER RESPONDS BACK TO CP INDICATING ITS
` 903
`SUPPORT FOR THE REQUESTED SUB-EXTENSIONS.
`
`
`SERVER ALSO TRANSMITS T0 OF AN IDENTIFIER (E.G.,
`
`NUMBER CODE) CORRESPONDING TO EACH NAME
`
`OF RTP EXTENSION. CP MAY LATER USE THE CODE
`WHEN RECEIVING EXTENDED DATA. RESPONSE
`MAY OR MAY NOT BE A COMPLETE RESPONSE.
`
`
`
`
`
`
`
`I
`CP RECEIVES SERVER’S RESPONSE
`
`905
`
`
`
`907
`
`
`
`
`
`
`
`
`
`
`
`GP EVALUATES CLIENT REQUESTS AND
`PERFORMS FUNCTIONS ACCORDINGLY.
`FOR EXAMPLE FRAME THINNING OR USING
`929
`TRANSMIT TIME OPTIONALLY TO TRANSMIT
`
`DATA
`
`
`
`931
`
`FIG- 9
`
`Page 00011
`
`CP DETERMINES WHETHER SERVER RESPONDED
`909
`TO ALL REQUESTED SUB-EXTENSIONS
`
`
`
`NO
`
`YES
`
`
`SERVER DID NOT RESPOND TO ALL
`SERVER RESPONDED TO ALL
`
`
`
`
`REQUESTED SUB-EXTENSIONS
`REQUESTED SUB-EXTENSIONS
`
`
`I
`
`9 1
`CP REQUESTS SERVER TO SEND ALL
`2
`ARE ANY OF THE MISSING SUB-
`
`
`SUPPORTED STREAMING MEDIA DATA
`EXTENSIONS CRITICAL TO CP
`
`
`ASSOCIATED THE RTP SUB-EXTENSIONS
`PROCESSES?
`
`
`
`
`
`
`SERVER SENDS ALL SUPPORTED RTP SUB-
`911
`
`EXTENSIONS AND STREAMING MEDIA DATA
`
`
`ASSOCIATED WITH THE RTP SUB-
`
`EXTENSIONS
`913
`
`
`
`
`CP
`
`CP STORES SUB-EXTENSION DATA AND
`
`CP DECIDES TO PROCEED
`TERMINATES
`STREAMING MEDIA ASSOCIATED WITH THE
`AND REQUEST THE
`
`
`RTP SUB-EXTENSION LOCALLY
`OPERATIONS
`REMAINING/SUPPORTED
`
`
`SUB-EXTENSIONS
`927
`I
`
`OF MAY REMOVE SUB-EXTENSION FIELDS
`917
`
`
`
`
`CP DECIDES WHETHER
`TO TERMINATE OPERATIONS
`
`915
`
`Page 00011
`
`

`

`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 10 of 13
`
`US 7,191,242 B1
`
`mom
`
`OhnommrEozm§$t
`
`
`
`$5252::“#5:
`
`
`
`.2630.EvGE
`
`
`
` #530$555
`
`ESQ/22:
`
`mum
`
`mum
`
`m=>_<mn_
`
`m=2<E
`
`m_>_<mn_
`
`$an
`
`WES”:
`
`:9528525mwEx>20
`
`8szmo
`
`2..2".
`
`
`
`mEon.203
`
`noopmmmEb
`
`Page 00012
`
`Page 00012
`
`
`
`
`

`

`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 11 0f 13
`
`US 7,191,242 B1
`
`401
`
`CACHING PROXY SERVER (CF)
`
`DATA 2
`
`TRANSMISSION/RECEIPT
`CONTROL SOFTWARE
`(E.G. FOR RTSP AND RTP)
`
`STREAMING MEDIA
`DATA 2
`
`(IN STREAMING
`MEDIA FORMAT)
`
`TT ASSOCIATED WITH
`STREAMING MEDIA
`DATA 2
`
`FT ASSOCIATED WITH
`STREAMING MEDIA
`
`STREAMING MEDIA
`DATA 1
`
`(IN STREAMING
`MEDIA FORMAT)
`
`1T ASSOCIATED WITH
`STREAMING MEDIA
`DATA 1
`
`FT ASSOCIATED WITH
`STREAMING MEDIA
`DATA 1
`
`FIG. 11
`
`Page 00013
`
`Page 00013
`
`

`

`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 12 0f 13
`
`US 7,191,242 B1
`
`301
`
`SERVER (ORIGINATING SERVER)
`
`TRANSCEIVER
`CONTROL SOFTWARE
`
`EXTENSIONS
`
`ORIGINAL DATA FILE
`FOR MEDIA
`
`(IN ORIGINAL
`DATA FORMAT)
`
`RTP EXTENSIONS
`
`NAME
`TT
`FT
`
`CODE
`01
`02
`
`STREAMING MEDIA
`CONVERSION
`
`SOFTWARE (CONVERTS
`ORIGINAL FILE TO
`STREAMING FORMAT)
`
`SOFTWARE FOR
`TRANSMISSION AND
`CONTROL OF RTP
`
`FIG. 12
`
`Page 00014
`
`Page 00014
`
`

`

`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 13 of 13
`
`US 7,191,242 B1
`
`302
`
`SOFFWARE
`
`DATA PLAYER
`
`SOFTWARE
`
`CLIENT
`
`-/\/
`
`STREAMING MEDIA
`
`WEB BROWSER
`
`1303
`
`FIG. 13
`
`Page 00015
`
`Page 00015
`
`

`

`US 7,191,242 B1
`
`1
`METHODS AND APPARATUSES FOR
`TRANSFERRING DATA
`
`FIELD OF THE INVENTION
`
`The present invention relates to the field of multimedia
`data transmission. In particular, the present invention in one
`exemplary embodiment relates to multimedia data transmis-
`sion of real-time transfer protocol (RTP) packets using real
`time streaming protocol (RTSP) in a computer network
`environment.
`
`INTRODUCTION AND BACKGROUND OF THE
`INVENTION
`
`Methods of transmitting data are commonly known and
`performed today on a routine basis to send various multi-
`media data such as text, graphics, audio, video, images etc.
`across computer networks situated in various parts of the
`world. Generally the transmission process requires both
`hardware and software for performing its function. Typi-
`cally, the hardware includes various types of personal com-
`puters and hand held multimedia data sending or receiving
`devices. These devices run under the control of an operating
`system and utilize multimedia application software pro-
`grams. As is known in the art, streaming media data is data
`which is transmitted to a receiving computer system and
`presented (usually after buffering temporarily at the receiv-
`ing system) and then discarded (not stored) at the receiving
`system.
`in form of packets from one
`Currently, data is sent
`multimedia device to another. A large amount of information
`is required to be sent in a real-time manner in the data
`packets, which imposes a heavy load on the systems.
`Streaming media data, such as Real-Audio data in streaming
`media format specified by Real-Networks, is sent through
`the Internet is near real-time manner in many cases.
`In one approach, the components involved in data trans-
`mission of streaming media are known to be a server (which
`may be referred to as originating server), a caching proxy
`server and a client. These components in various combina-
`tions communicate with each other for transmitting data
`packets in real-time. The communication link that currently
`exists between the components uses real-time transfer pro-
`tocols (RTP) and real-time streaming protocols (RTSP) to
`communicate and send packets to each other. For this
`approach to work, a caching proxy server needs to commu-
`nicate with the system server, receive a stream of RTP data
`packets, and transfer the information contained within the
`RTP data packets to a client. FIG. 1a shows an example of
`a prior method in which a caching proxy server receives
`streaming media data and provides this data to a client. In
`order to perform its function properly and efficiently, the
`caching proxy server needs several pieces of information
`from the server to be able to cache an RTP stream easily and
`reliably.
`A problem with the current approach is that it is not able
`to provide some of the key required information such as data
`packet transmit time and video packet frame type informa-
`tion that a caching proxy needs to be efficient. This infor-
`mation allows a caching proxy server to provide smooth
`packet delivery to its client by knowing the time an RTP data
`packet was intended to be sent, and type of video frame that
`is being sent without knowing the specific payload format.
`Another problem with the current approach is that it is not
`able to provide multiple pieces of unrelated data in one
`delivery to the caching proxy server. Furthermore, packets
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`
`from the server may be “lost” and never reach the caching
`proxy server. In addition,
`there is normally no way to
`recreate a complete “pristine” copy at the caching proxy
`server.
`Prior art servers communicate RTP information to the
`
`caching proxy server by sending information through a
`cache-control header.
`In one approach, a cache-control
`header contains normal header fields. In another approach,
`unrelated to cache control of RTP information, a single type
`of additional information has been added to the normal fields
`
`in a header extension format without specifying the type of
`additional information. In this approach only a single piece
`of RTP extension can be added to the normal field of the
`
`header and sent at any one time.
`limited, non-extensible
`A problem with using this
`approach is that a server is not able to attach multiple sets of
`unrelated data at a time to send to the caching proxy server.
`Another problem with this approach is that
`the header
`extension used in these methods are still not able to provide
`all the information a caching proxy server needs to cache a
`stream properly and to transmit the stream properly. Yet
`another problem with this approach is that there is no way
`to identify the particular extension independently of other
`possible extensions.
`SUMMARY OF THE INVENTION
`
`The present invention provides several methods and appa-
`ratuses for transmitting multimedia data using streaming
`media protocols such as real-time transfer protocols (RTP)
`and real-time streaming protocols (RTSP) in a computer
`network environment. In one exemplary embodiment, a
`request for RTP data is sent from the caching proxy server
`to the server. The request may be for one specific type of
`data and its related extensions or multiple unrelated types of
`data and their related extensions. The server responds to the
`request indicating its support for the requested RTP data.
`The caching proxy server determines whether to proceed or
`terminate the data transmission process based on the
`response provided by the server. If it
`is determined to
`proceed with the data transmission process,
`the caching
`proxy informs the server to send the requested and supported
`RTP data. The server sends the requested data in a variable
`and extendible header format.
`
`In another embodiment, the caching proxy server requests
`and receives packet transmit time data and/or packet frame
`type data from the server. The caching proxy server uses the
`frame type data to communicate with the client and supply
`frames based on client’s capacity to handle loads at given
`times. Transmit time data is also used by the caching proxy
`to store packets locally and deliver these packets at appro-
`priate times to the client for a smooth packet delivery.
`Other features and advantages of the present invention
`will be apparent from the accompanying drawings, and from
`the detailed description, which follows below.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The present invention is illustrated by way of example
`and not limited by the figures of the accompanying drawings
`in which like references indicate similar elements and in
`which:
`
`FIG. 1a is a flowchart which shows a method in the prior
`art for transferring streaming media data to caching proxy
`server and then to a client.
`
`FIG. 1b illustrates a network of computer systems in
`which media data may be exchanged and/or processed,
`according to one embodiment of the present invention.
`
`Page 00016
`
`Page 00016
`
`

`

`US 7,191,242 B1
`
`3
`FIG. 2 illustrates a block diagram of an exemplary digital
`processing system, which may be used in accordance with
`one embodiment of the present invention.
`FIG. 3 illustrates one embodiment of a communication
`
`method between a server and a client using RTSP and RTP
`protocols.
`FIG. 4 illustrates another embodiment of a communica-
`
`tion method between a server, caching proxy server and a
`client.
`
`FIG. 5 illustrates one embodiment of a RTSP, RTP nego-
`tiation process between a caching proxy and a server.
`FIG. 6 illustrates one embodiment of a relationship
`between the server, caching proxy, and client during a
`transfer of a Transmit Time (TT) sub-extension to the
`caching proxy server and its use of TT information in
`transmitting streaming data to a client.
`FIG. 7 illustrates one embodiment of process that takes
`place during transfer of a transmit
`time sub-extension
`between server and caching proxy server.
`FIG. 8 illustrates one embodiment of process that takes
`place during transfer of a frame type sub-extension between
`server, and caching proxy server.
`FIG. 9 is a flow diagram of one embodiment of an
`operation to provide various types of information to a
`caching proxy in an extensible header format.
`FIG. 10 illustrates one embodiment of a relationship
`between the server, caching proxy, and client during a
`transfer of a Frame Type sub-extension.
`FIG. 11 illustrates a block diagram of a machine readable
`medium which stores executable computer program instruc-
`tion for execution by an exemplary caching proxy server,
`which may be used in accordance with one embodiment of
`the present invention.
`FIG. 12 illustrates a block diagram of a machine readable
`medium which stores executable computer program instruc-
`tion for execution by an exemplary originating server
`(server), which may be used in accordance with one embodi-
`ment of the present invention.
`FIG. 13 illustrates a block diagram of a machine readable
`medium which stores executable computer program instruc-
`tion for execution by an exemplary client, which may be
`used in accordance with one embodiment of the present
`invention.
`
`DETAILED DESCRIPTION
`
`A method and system for providing multimedia data
`transmission using real-time transfer protocol (RTP) and real
`time streaming protocol (RTSP) are described. For purposes
`of explanation, numerous specific details are set forth in
`order to provide a thorough understanding of the present
`invention. For example, various computer network system
`architectures and digital processing system architectures are
`provided for illustrative purposes rather than to be construed
`as limitations of the present invention. It will be evident,
`however, to one skilled in the art that the present invention
`may be practiced without these specific details. In other
`instances, well-known structures and devices are shown in
`block diagram form to facilitate explanation.
`FIG. 1b is a diagram of a network of computer systems in
`which media data may be processed, according to one
`embodiment of the present invention. As shown in FIG. 1b,
`a number of client computer system, one or more of which
`may represent one implementation of a receiving system, are
`coupled together through an Internet 122. It will be appre-
`ciated that the term “Internet” refers to a network of net-
`
`works. Such networks may use a variety of protocols for
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`
`exchange of information, such as TCP/IP, ATM, SNA, SDI,
`RTP, RTSP etc. The physical connections of the Internet and
`the protocols and communication procedures of the Internet
`are well known to those in the art. Access to the Internet 103
`
`is typically provided by Internet service providers (ISPs),
`such as the ISP 124 and the ISP 126, which may also be
`connected with caching proxy servers 130 and 132. Users on
`client systems, such as the client computer systems 102, 104,
`118, and 120, generally obtain access to the Internet through
`Internet service providers, such as ISPs 124 and 126, which
`may also be connected through the internet with caching
`proxy servers 130 and 132. Access to the Internet may
`facilitate transfer of information (e.g., email,
`text
`files,
`media files, etc.) between two or more digital processing
`systems, such as the client computer systems 102, 104, 118,
`and 120 and/or a streaming media server system 128 which
`may be considered an originating server from which caching
`proxy servers receive streaming media data. For example,
`one or more of the client computer systems 102, 104, 118,
`and 120 and/or the streaming media server 128 may provide
`media data (e.g., video and audio, or video, or audio) to
`another one or more of the client computer systems 102,
`104, 118, and 120 and/or the streaming media server 128.
`Such may be provided in response to a request. As described
`herein, such media data may be transferred in the system 100
`according tracks. Such tracks, in one embodiment of the
`invention, may be created according to a specific format of
`the streaming media data and/or a specific data communi-
`cation (e.g., network) protocol(s).
`The streaming media server 128 is typically comprised of
`at least one computer system to operate with one or more
`data communication protocols, such as the protocols of the
`World Wide Web, and as such, is typically coupled to the
`Internet 122. Optionally, the streaming media server 128
`may be part of an ISP which may provide access to the
`Internet and/or other network for client computer systems.
`The client computer systems 102, 104, 118, and 120 may
`each, with appropriate web browsing software, access data,
`such as HTML documents (e.g., Web pages), which may be
`provided by the streaming media server 128. Such data may
`provide media, such as QuickTime movies or QuickTime
`streaming media data, which may be presented by the client
`computer systems 102, 104, 118, and 120.
`The ISP 124 provides Internet connectivity to the client
`computer system 102 via a modem interface 106, which may
`be considered as part of the client computer system 102. The
`client computer system may be a conventional computer
`system, such as a Macintosh computer, a “network” com-
`puter, a handheld/portable computer, a Web TV system, or
`other types of digital processing systems (e.g., a cellular
`telephone having digital processing capabilities). Similarly,
`the ISP 126 provides Internet connectivity for the client
`computer systems 104, 118 and 120, although as depicted in
`FIG. 1b, such connectivity may vary between various client
`computer systems, such as the client computer systems 102,
`104, 118, and 120. For example, as shown in FIG. 1b, the
`client computer system 104 is coupled to the ISP 126
`through a modem interface 108, while the client computer
`systems 118 and 120 are part of a Local Area Network
`(LAN). The interfaces 106 and 108, shown as modems 106
`and 108, respectively, in FIG. 1b, may be an analog modem,
`an ISDN modem, a cable modem, a satellite transmission
`interface (e.g., “Direct PC”), a wireless interface, or other
`interface for coupling a digital processing system, such as a
`client computer system, to another digital processing sys-
`tem. The client computer systems 118 and 120 are coupled
`to a LAN bus 112 through network interfaces 114 and 116,
`
`Page 00017
`
`Page 00017
`
`

`

`US 7,191,242 B1
`
`5
`respectively. The network interfaces 114 and 116 may be an
`Ethemet-type, Asynchronous Transfer Mode (ATM), or
`other type of network interface. The LAN bus is also
`coupled to a gateway digital processing system 110, which
`may provide firewall and other Internet-related services for
`a LAN. The gateway digital processing system 110, in turn,
`is coupled to the ISP 126 to provide Internet connectivity to
`the client computer systems 118 and 120. The gateway
`digital processing system 110 may, for example, include a
`conventional server computer system. Similarly, the stream-
`ing media server 128 may, for example, include a conven-
`tional server computer system.
`The system 100 may allow one or more of the client
`computer systems 102, 104, 118, and 120 and/or the stream-
`ing media server 128 to provide media data (e.g., video and
`audio, or video, or audio) to another one or more of the client
`computer systems 102, 104, 118, and 120 and/or the stream-
`ing media server 128. Such data may be provided, for
`example, in response to a request by a receiving system,
`which may be, for example, one or more of the client
`computer systems 102, 104, 118, and 120.
`FIG. 2 is a block diagram of an exemplary digital pro-
`cessing system which may be used in accordance with one
`embodiment of the present
`invention. For example,
`the
`digital processing system 250 shown in FIG. 2 may be used
`as a client computer system, a streaming media server
`system, a conventional server system, etc. Furthermore, the
`digital processing system 250 may be used to perform one
`or more functions of an Internet service provider, such as the
`ISP 124 or 126. The digital processing system 250 may be
`interfaced to external systems through a modem or network
`interface 268. It will be appreciated that the modem or
`network interface 268 may be considered as part of the
`digital processing system 250. The modem or network
`interface 168 may be an analog modem, an ISDN modem,
`a cable modem, a token ring interface, a satellite transmis-
`sion interface, a wireless interface, or other interface(s) for
`providing a data communication link between two or more
`digital processing systems.
`The digital processing system 250 includes a processor
`252, which may represent one or more processors and may
`include one or more conventional types of such processors,
`such as a Motorola PowerPC processor, an Intel Pentium (or
`x86) processor, etc. A memory 255 is coupled to the pro-
`cessor 252 by a bus 256. The memory 255 may be a dynamic
`random access memory (DRAM) and/or may include static
`RAM (SRAM). The processor may also be coupled to other
`types of storage areas/memories (e.g., cache, Flash memory,
`disk, etc.), which could be considered as part of the memory
`255 or separate from the memory 255.
`The bus 256 further couples the processor 252 to a display
`controller 258, a mass memory 262, the modem or network
`interface 268, and an input/output (I/O) controller 264. The
`mass memory 262 may represent a magnetic, optical, mag-
`neto-optical, tape, and/or other type of machine-readable
`medium/device for storing information. For example, the
`mass memory 262 may represent a hard disk, a read-only or
`writable optical CD, etc. The display controller 258 controls
`in a conventional manner a display 260, which may repre-
`sent a cathode ray tube (CRT) display, a liquid crystal
`display (LCD), a plasma display, or other type of display
`device. The I/O controller 264 controls I/O device(s) 266,
`which may include one or more keyboards, mouse/trackball
`or other pointing devices, magnetic and/or optical disk
`drives, printers, scanners, digital cameras, microphones, etc.
`It will be appreciated that the digital processing system
`250 represents only one example of a system, which may
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`have many different configurations and architectures, and
`which may be employed with the present invention. For
`example, Macintosh and Intel systems often have multiple
`busses, such as a peripheral bus, a dedicated cache bus, etc.
`On the other hand, a network computer, which may be used
`as a digital processing device of the present invention, may
`not include, for example, a hard disk or other mass storage
`device, but may receive routines and/or data from a network
`connection, such as the modem or interface 268,
`to be
`processed by the processor 252. Similarly, a Web TV sys-
`tem, which is known in the art, may be considered to be a
`digital processing system of the present invention, but such
`a system may not include one or more I/O devices, such as
`those described above with reference to I/O device(s) 266.
`Additionally, a portable communication and data processing
`system, which may employ a cellular telephone and/or
`paging capabilities, may be considered a digital processing
`system which may be used with the present invention.
`In the system 250 shown in FIG. 2, the mass memory 262
`(and/or the memory 254) may store media (e.g., video,
`audio, movies, etc.) which may be processed according the
`present
`invention (e.g. by way of tracks). Alternatively,
`media data may be received by the digital processing system
`250, for example, via the modem or network interface 268,
`and stored and/or presented by the display 260 and/or I/O
`device(s) 266. In one embodiment, packetized media data
`may be transmitted across a data communication network,
`such as a LAN and/or the Internet, in accordance with tracks.
`On the other hand, the processor 252 may execute one or
`more routines to use a file with one or more tracks, or
`alternatively, to create one or more tracks, to process media
`(e.g., a pre-packaged movie, audio file, video file, etc.) for
`presentation or packetization according to the tracks. Such
`routines may be stored in the mass memory 262, the memory
`264, and/or another machine-readable medium accessible by
`the digital processin

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket