US20120102157A1 - Communication method and apparatus using hypertext transfer protocol - Google Patents

Communication method and apparatus using hypertext transfer protocol Download PDF

Info

Publication number
US20120102157A1
US20120102157A1 US13/292,913 US201113292913A US2012102157A1 US 20120102157 A1 US20120102157 A1 US 20120102157A1 US 201113292913 A US201113292913 A US 201113292913A US 2012102157 A1 US2012102157 A1 US 2012102157A1
Authority
US
United States
Prior art keywords
http
control
client
server
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US13/292,913
Other versions
US9270723B2 (en
Inventor
Yoon-Soo Kim
Joon-ho Cho
Sang-Hoon Choi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Priority to US13/292,913 priority Critical patent/US9270723B2/en
Publication of US20120102157A1 publication Critical patent/US20120102157A1/en
Application granted granted Critical
Publication of US9270723B2 publication Critical patent/US9270723B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2381Adapting the multiplex stream to a specific network, e.g. an Internet Protocol [IP] network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control 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/643Communication protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control 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/643Communication protocols
    • H04N21/64322IP

Definitions

  • Methods and apparatuses consistent with the present invention relate to communication using hypertext transfer protocol (HTTP), and more particularly, to implementing a real-time streaming using HTTP, and a client and a server used for the method.
  • HTTP hypertext transfer protocol
  • Streaming is transmission of video or audio from a server to a client through a network such as the Internet.
  • the server breaks the video into packets so as to be transmitted through the network.
  • the client collects the packets to recover the video and reproduces the video.
  • the reproduction and packet reception simultaneously occur.
  • the packets associated here are referred to as streaming.
  • Streaming is distinguished from a simple file transmission for performing reproduction after receiving the entire video, in that the client reproduces video data while continuously receives the video data.
  • the client simultaneously receives and reproduces streaming client packets and disuses the reproduced data.
  • protocols such as HTTP, file transfer protocol (FTP), real-time transport protocol (RTP), and real-time streaming protocol (RTSP) can be used.
  • HTTP and the FTP are inherently file transfer protocols, while the RTP and the RTSP are protocols for real-time file streaming.
  • FIG. 1 is a signal flow diagram for explaining real-time streaming using HTTP between a client and a server according to the related art.
  • the client 100 and the server 110 cannot transceive information with each other while processing HTTP requests by using an existing HTTP protocol and cannot cope with a session state which continuously changes, so that the existing HTTP protocol is not suitable for real-time streaming.
  • a related art HTTP operates in that, as described above, an HTTP client always transmits a request, and an HTTP server transmits a response to the request. According to the aforementioned operation, when a state change in the HTTP server occurs, there is no method of notifying the change. In addition, there is no method of transmitting a request which is not a response from the HTTP server to the HTTP client. In addition, the HTTP client cannot receive a response to a new HTTP request from the HTTP server while processing a previous HTTP request. Lastly, when the HTTP response is divided into packets to be transmitted, there is no method of performing timestamping on each of the packets. Due to the restrictions, the HTTP has disadvantages for supporting real-time transport.
  • the HTTP As a related art protocol supporting the real-time transport, there is the RTP.
  • UTP universal plug and play
  • AV audio and video
  • DLNA digital living network alliance
  • the HTTP is designated as a basic streaming protocol due to simplicity and convenience of the HTTP. In this case, it is necessary to enable real-time transport to be performed by only extending the HTTP. In addition, it is also important to enable the real-time transport to be performed by at least modifying an existing code.
  • a format of chunked encoding of HTTP 1.1 is shown by a Backus Naur Form (BNF) as follows.
  • chunk-data chunk-size(OCTET)
  • * means that the following part is repeated by the number in front of the *
  • token means string represented by general American Standard Code for Information Interchange (ASCII) codes
  • HEX means hexadecimal.
  • a part included in ‘[‘,’]’ can be omitted, and contents of a part included in ‘(‘,’)’ are managed as one.
  • CRLF represents ‘ ⁇ r’ and ‘ ⁇ n’.
  • the BNF is interpreted according to this rule in that, Chunked-Body represents that 0 or more chunk is repeated and when “last-chunk trailer CRLF” is shown, the Chunked-Body is completed.
  • the chunk includes “chunk-size chunk-extension CRLF chunk-data CRLF”, and “chunk-extension” can be omitted.
  • Chunk-size means a magnitude represented as hexadecimal
  • Last-chunk includes one or more fields constructed with “0”, and chunk-extension and CRLF that can be omitted.
  • Trailer includes 0 or more entity-header, for example a HTTP header.
  • An example of the above chunk-body format is as follows.
  • HTTP-Header HTTP-Header-value ⁇ r ⁇ n
  • front numbers and ‘:’ represent line numbers.
  • “100” means that the size of following chunk-data is “100 bytes”
  • Completion of chunk header information is represented as ⁇ r ⁇ n.
  • the chunk-data is transmitted, and at the end of the chunk-data, the ⁇ r ⁇ n is transmitted.
  • ⁇ r ⁇ n follows “200”. This exemplifies a case where “chunk-extension” is omitted.
  • real chunk-data is transmitted.
  • ⁇ r ⁇ n is transmitted.
  • “trailer” including entity-header is transmitted.
  • ⁇ r ⁇ n is transmitted.
  • HTTP-Header HTTP-Header-Value ⁇ r ⁇ n
  • the second line shows that the HTTP server transmits data via chunked encoding through an HTTP header referred to as “Transfer-Encoding: chunked”.
  • the present invention provides a method of exchanging information between a streaming server and a client by using chunked encoding of HTTP while an HTTP request is being processed.
  • the present invention also provides a method of notifying an HTTP server state change, a method of exchanging information between a client and a server while an HTTP request is being processed, and a method of timestamping on an individual HTTP response packet.
  • the present invention also provides a client and a server for implementing a communication method using HTTP.
  • a communication method using HTTP including: setting streaming connection and control connection between a client and a server; the client transmitting an HTTP streaming request to the server; the server constructing a chunked encoding for the HTTP streaming request, and transmitting a first chunk response, including the chunked encoding, to the client through the streaming connection; and the server transmitting a second chunk response to the client through the streaming connection, wherein the second chunk response includes notification of the server.
  • a communication method using HTTP including: a control handler receiving session information from a session manager, converting the session information into a chunk-extension message, and transmitting the chunk-extension message to an HTTP scheduler; the HTTP scheduler checking whether chunk transmission to an HTTP client is being performed, and when the chunk transmission is being performed, buffering the chunk-extension message until the next chunk is transmitted; the HTTP scheduler generating chunk data, by multiplexing multimedia content received from a streaming server and the chunk-extension message, and transmitting the chunk data to an HTTP server; and the HTTP server transmitting the chunk data to the HTTP client through streaming connection.
  • a communication method using HTTP including: an HTTP client receiving chunk data from an HTTP server through streaming connection and transmitting the chunk data to an HTTP dispatcher, wherein the chunk data is obtained by multiplexing multimedia content and a chunk-extension message; an HTTP dispatcher demultiplexing the chunk data into the multimedia content and the chunk-extension message, transmitting the chunk-extension message to a control handler, and transmitting the multimedia content to a streaming client; and the control handler converting the chunk-extension message into session information and transmitting the session information to a session synthesizer.
  • a communication method using HTTP including: a control handler receiving a session control request from a session synthesizer, converting the session control request into an HTTP control request, and transmitting the HTTP control request to an HTTP dispatcher; the HTTP dispatcher constructing an HTTP request by adding an HTTP header to the HTTP control request and transmitting the HTTP request to an HTTP client which manages control connection; and the HTTP client transmitting the HTTP request to an HTTP server through the control connection.
  • a communication method using HTTP including: an HTTP server receiving an HTTP request from an HTTP client through control connection and transmitting the HTTP request to an HTTP scheduler; the HTTP scheduler analyzing the HTTP request, and based on the result of the analysis, extracting a control request excluding an HTTP header from the HTTP request, and transmitting the control request to a control handler; and the control handler converting the control request to a session control message and retrieving and calling callback, of a session manager, corresponding to the session control message.
  • a communication method using HTTP including: a control handler of a client receiving a session control response from a session synthesizer, converting the session control response into an HTTP message, and transmitting the HTTP message to an HTTP dispatcher; the HTTP dispatcher generating an HTTP request by adding an HTTP header to the HTTP message, selecting an HTTP client which manages control connection, and transmitting the HTTP request to the HTTP client; the HTTP client transmitting the HTTP request through the control connection to an HTTP server, and the HTTP server transmitting the HTTP request to an HTTP scheduler; and the HTTP scheduler analyzing the HTTP request, and based on the result of the analysis, extracting the session control response from the HTTP request, and transmitting the extracted session control response to a control handler of a server.
  • a communication apparatus using HTTP including: a client which is connected with a server through a streaming connection and a control connection; wherein the client requests an HTTP streaming request through the streaming connection; wherein the client transmits an HTTP post request to the server through the control connection; wherein the HTTP post request includes a control request and a response to a query of a state of the client from the server to the client.
  • a communication apparatus using HTTP including: a server which is connected with a client through a streaming connection and a control connection; wherein the server receives an HTTP streaming request from the client through the streaming connection; wherein the server constructs chunked encoding for the HTTP streaming request and transmits a first chunk response, including the chunked encoding, to the client through the streaming connection; wherein the server transmits a second chunk response to the client through the streaming connection; wherein the second chunk response includes a notification of the server.
  • a computer readable recording medium having recorded thereon a program for executing the methods described above.
  • FIG. 1 is a signal flow diagram for explaining real-time streaming using HTTP between a client and a server according to the related art
  • FIG. 2 is a signal flow diagram for explaining real-time streaming using HTTP between a client and a server according to an exemplary embodiment of the present invention
  • FIG. 3 is a block diagram showing a schematic structure of the client shown in FIG. 2 ;
  • FIG. 4 is a block diagram showing a schematic structure of the server shown in FIG. 2 ;
  • FIG. 5 is a signal flow diagram of a server for transmitting notification from the server to a client according to another exemplary embodiment of the present invention
  • FIG. 6 is a signal flow diagram of a client for receiving notification from a server to the client according to another exemplary embodiment of the present invention.
  • FIG. 7 is a signal flow diagram of a server for transmitting a control request from the server to a client according to another exemplary embodiment of the present invention.
  • FIG. 8 is a signal flow diagram of a client for receiving a control request from a server to the client according to another exemplary embodiment of the present invention.
  • FIG. 9 is a signal flow diagram for explaining a response from a server to a client, to a control request according to another exemplary embodiment of the present invention.
  • FIG. 10 is a signal flow diagram of a client for transmitting a control request from the client to a server according to another exemplary embodiment of the present invention.
  • FIG. 11 is a signal flow diagram of a server for receiving a control request from a client to the server according to another exemplary embodiment of the present invention.
  • FIG. 12 is a signal flow diagram of a server for transmitting a response to a control request from a client to the server according to another exemplary embodiment of the present invention.
  • FIG. 13 is a signal flow diagram of a client for receiving a response to a control request from the client to a server according to another exemplary embodiment of the present invention.
  • FIG. 2 is a signal flow diagram for explaining real-time streaming using HTTP between a client and a server according to an exemplary embodiment of the present invention
  • thick lines represent control connection between a client 200 and a server 210
  • dotted lines represent streaming connection between the client 200 and the server 210 .
  • the client 200 firstly has the streaming connection with the server 210 when transmits a streaming request. In addition, the client 200 sets the control connection independent from the streaming connection.
  • the server 210 transmits a query request for a state of the client 200 by using a new chunk of chunked encoding of HTTP 1.1 through the streaming connection or informs the client 200 of a change in streaming data.
  • the client 200 may transmit a new request to the server 210 or transmit a response to the request of the server 210 through the control connection while HTTP streaming is performed through the streaming connection.
  • session identification (ID) information is added to request and response messages.
  • ID session identification
  • sequence number for command and notification is added.
  • the sequence number is only one in a single session.
  • the server 210 constructs a chunk in order to transmit real streaming data, and starts a new chunk whenever transmits notification messages or query messages to the client 200 right after currently progressed chunk is completed and whenever transmits a response message to a control request of the client 200 .
  • the server 210 performs timestamping on each chunk by using chunk-extension when transmits each of the chunks.
  • the server 210 transmits an HTTP chunk response which is divided into an HTTP first chunk response, an HTTP second chunk response, an HTTP third chunk response, and an HTTP fourth chunk response through the streaming connection while adding a notification, a client state query, and server control response message to the chunk-extension.
  • the client 200 adds a client state query response message and a client control request message to HTTP post requests, respectively, and transmits them through the control connection.
  • FIG. 3 is a block diagram showing a schematic structure of the client 200 shown in FIG. 2 .
  • an HTTP client 300 an HTTP dispatcher 310 , a control handler 320 , a streaming client 330 , a session synthesizer 340 , a session 350 , and a streaming application 360 are shown.
  • the HTTP client 330 is a module for processing logic of a client of the HTTP 1.1 protocol.
  • the HTTP dispatcher 310 is a module for separating a control request of a server from the server to a client, notification from the server to the client, and a response from the server to the client to a control request from the client to the server, from each of chunk data so as to be transmitted to the control handler 320 .
  • the HTTP dispatcher 310 transmits a timestamp of each individual chunk transmitted from the HTTP client 300 to the control handler 320 , and obtains multimedia data needed for streaming from each chunk to transmit the obtained multimedia to the streaming client 330 .
  • the HTTP dispatcher 310 transmits a stream control request from the client to the server of the control handler 320 to the server through the control connection and processes timeout of an individual stream control request.
  • the HTTP dispatcher 310 transmits a response to the control request from the server to the client of the control handler 320 , to the server through the control connection.
  • the control handler 320 converts a control instruction in a streaming level to a control instruction in an HTTP level, receives a response of a server to the control instruction from the HTTP dispatcher 310 , and converts the received response into a format understandable by the session synthesizer 340 so as to be transmitted to the session synthesizer 340 .
  • control handler 320 receives notification from the server to the client of the server, from the HTTP dispatcher 310 and converts the notification into a format understandable by the session synthesizer 340 so as to notify the session synthesizer 340 .
  • control handler 320 calls callback registered by the session synthesizer 340 for the control request of the server from the server to the client and converts a response to this in the streaming session level to a response in the HTTP level.
  • the streaming client 330 receives chunk-data from the HTTP dispatcher 310 and performs buffering thereon and provides data to the streaming application 360 .
  • the streaming client 330 provides a reception state, a reception time, a timestamp time, and buffer statistics information of each chunk to the session synthesizer 340 .
  • the streaming client 330 adjusts the number of buffers according to an instruction of the session synthesizer 340 .
  • the session synthesizer 340 is a module for synthesizing streaming sessions and performing a control function. Specifically, the session synthesizer 340 performs control in a session level by using the control handler 320 , and controls the streaming client 330 in correspondence with a change in streaming data notified from the control handler 320 . In addition, the session synthesizer 340 responds to session control from the server to the client, requested by the control handler 320 . In addition, the session synthesizer 340 monitors a streaming state by using the streaming client 330 and has a function of connecting a buffer of the streaming client 330 to the streaming application 360 .
  • the streaming application 360 is a module for real rendering multimedia contents by using the session synthesizer 340 .
  • FIG. 4 is a block diagram showing a schematic structure of the server 210 shown in FIG. 2 .
  • an HTTP server 400 an HTTP scheduler 410 , a control handler 420 , a streaming server 430 , a session manager 440 , a session 450 , and a content source 460 are shown.
  • the HTTP server 400 is a module for processing logic of a server of the HTTP 1.1 protocol.
  • the HTTP scheduler 410 performs the following functions. When the HTTP scheduler 410 receives a notification request of a change in the streaming data from the server to the client from the control handler 420 , the HTTP scheduler 410 performs buffering thereon, and at a time point when current transmission of chunk data is completed and a new chunk is transmitted, the HTTP scheduler 410 transmits a corresponding notification to the new chunk. In addition, when the HTTP scheduler 410 receives a control request from the server to the client, from the control handler 420 , at the time point when current transmission of chunk data is completed and a new chunk is transmitted, the HTTP scheduler 410 inserts the corresponding control request to the new chunk so as to be transmitted.
  • the HTTP scheduler 410 performs buffering on the response to the control request from the client to the server, wherein the request is received from the control handler 420 .
  • the HTTP scheduler 410 inserts a timestamp to each individual chunk, and multiplexes chunk header information, a notification message according to the current exemplary embodiment of the present invention, a control request message, meta information on a control request response message or a timestamp, and a chunk data such as multimedia data.
  • the HTTP scheduler 410 when the HTTP scheduler 410 receives a control request from the client to the server through the control connection, the HTTP scheduler 410 transmits an acknowledgment (ACK) (HTTP/1.1 200 OK) in response thereto, and when receiving a response of the client to the control request from the server to the client, transmits ACK (HTTP/1.1 200 OK) in response thereto.
  • ACK acknowledgment
  • the control handler 420 converts notification from the server to the client in the streaming session level to notification in a chunk-extension level and transmits the converted notification to the HTTP scheduler 410 .
  • the control handler 420 converts the request into a control instruction in the chunk-extension level, transmits the control instruction to the HTTP scheduler 410 , and processes timeout for the request.
  • control handler 420 when the control handler 420 receives a control request of the client from the client to the server through the control connection, the control handler 420 calls callback registered by the session manager 440 , converts a response to this in the streaming session level into the chunk-extension level, and transmits the converted response to the HTTP scheduler 410 .
  • the streaming server 430 reads real streaming data from the content source 460 to perform buffering thereon so as to be transmitted to the HTTP scheduler 410 .
  • the streaming server 430 has a function of transmission while maintaining timing of each chunk data for streaming.
  • the streaming server 430 divides the chunk into data needed for a unit time so as to be transmitted.
  • the streaming server 430 has a function of adjusting the number of internal transfer buffers according to a request from the session manager 440 .
  • the session manager 440 is a module for synthesizing streaming sessions to perform a control function, and more particularly, perform the following functions.
  • the session manager 440 performs control in a session level by using the control handler 420 .
  • the session manager 440 monitors states of the client and the network by using the control handler 420 , monitors a state of the server by using the streaming server 430 , and controls the streaming server 430 .
  • the content source 460 is a module for providing contents to be steamed by the streaming server 430 .
  • FIG. 5 is a signal flow diagram of a server for transmitting notification from the server to a client according to another exemplary embodiment of the present invention.
  • dotted lines represent the streaming connection.
  • a session manager 500 transmits a session change to the control handler 510 .
  • the session manager 500 monitors a change in a session state and transmits the change as a notification message.
  • the control handler 510 receives the notification and converts the session change. Specifically, the control handler 510 converts a session change message in a session level into a message in a chunk-extension level.
  • a sessionid is added to a message ID.
  • the control handler transmits the converted session change chunked encoding to an HTTP scheduler 530 .
  • the HTTP scheduler 530 performs buffering on the session change chunked encoding.
  • the HTTP scheduler 530 checks whether chunk transmission is currently being performed. When the chunk transmission is being performed, the HTTP scheduler 530 does not immediately transmit the session change chunked encoding and performs buffering until a next chunk is transmitted.
  • the streaming server 520 transmits multimedia data to the HTTP scheduler 530 to request the HTTP scheduler 530 to transmit the multimedia data to the client. Thereafter, the HTTP scheduler 530 multiplexes the session change chunk encoding received from the control handler 510 and the multimedia data received from the streaming server 520 .
  • the HTTP scheduler 530 multiplexes session change notification messages currently piled in a buffer, a session control request message from the server to the client, a response message to a control request from the client to the server, and the multimedia content data, into chunk data messages.
  • the HTTP scheduler 530 transmits the multiplexed chunk data to the HTTP server 540 through the streaming connection, and the HTTP server 540 transmits the multiplexed chunk data to the HTTP client 550 .
  • a message format of the chunk data may be constructed as follows.
  • the message format is an example of a chunk data message format for notification from the server to the client.
  • timestamp represents a time at which a current chunk is transmitted.
  • number of msgs represents the number of messages of the server, which are multiplexed into the current chunk.
  • Start and end represent start and end of each individual message.
  • Each individual message always includes “type”, “cmd”, “sessionid”, “sequence”, and the like, and remaining fields have different contents according to a type of each message.
  • the message transmitted from the server is defined to include several messages because a requested session change, a session control request from the server to the client, and a session control response message from the client to the server cannot be transmitted while the current chunk is being transmitted.
  • This message format may be commonly applied to the session change from the server to the client, the session control request from the server to the client, and the session control response from the client to the server.
  • FIG. 6 is a signal flow diagram of a client for receiving notification from a server to the client according to another exemplary embodiment of the present invention.
  • dotted lines represent streaming connection.
  • An HTTP client 610 receives chunk data from an HTTP server 600 through the streaming connection and transmits the chunk data to an HTTP dispatcher 620 .
  • the chunk data is multiplexed session change information and multiplexed multimedia content data.
  • the HTTP dispatcher 620 demultiplexes session change chunked encoding and the multimedia contents. In other words, the HTTP dispatcher 620 divides the chunk data into session change information and multimedia content information. Next, the HTTP dispatcher 620 transmits the divided session change chunk-extension information to a control handler 630 , and transmits the divided multimedia content data to a streaming client 640 .
  • the control handler 630 converts the received session change chunked encoding information into a notification message in a session level in order to convert the received session change chunked encoding. Next, the control handler 630 transmits the converted session change notification message to a session synthesizer 650 .
  • FIG. 7 is a signal flow diagram of a server for transmitting a control request from the server to a client according to another exemplary embodiment of the present invention.
  • dotted lines represent streaming connection.
  • a session manager 700 transmits a session control request to a control handler 710 when needs to control a session.
  • the control handler 710 which receives the session control request converts session control. To do this, the control handler 710 converts a control message in a session level into a session control message in a chunk level.
  • the control handler 710 transmits the converted session control chunked encoding message in the chunk level to an HTTP scheduler 730 .
  • the HTTP scheduler 730 performs buffering on the session control chunked encoding.
  • the HTTP scheduler 730 checks whether current chunk transmission is being performed. When the current chunk transmission is being performed, the HTTP scheduler 730 does not immediately transmit the session control chunked encoding message and performs buffering until a next chunk is transmitted.
  • a streaming server 720 transmits multimedia content data to the HTTP scheduler 730 .
  • the HTTP scheduler 730 multiplexes the session control chunked encoding message and the multimedia contents. To do this, the HTTP scheduler 730 multiplexes session changes currently piled in a buffer, a session control request from the server to the client, a response message to the session control request from the client to the server, and the multimedia content data, into a chunk message.
  • the HTTP scheduler 730 transmits the multiplexed chunk data to an HTTP server 740 , and the HTTP server 740 transmits the chunk data to the HTTP client 750 through the streaming connection.
  • a format of the chunk data message transmitted from the HTTP server 740 is similar to the message format described with reference to FIG. 5 .
  • the format of the chunk data message is different from the message format shown in FIG. 5 in that a type value of each individual message is “sessioncontrol”, and “cmd” means a type of a control instruction.
  • a type value of each individual message is “sessioncontrol”
  • “cmd” means a type of a control instruction.
  • other fields except for, “sessionstatusquery-sessionid” and a sequence field may be different.
  • FIG. 8 is a signal flow diagram of a client for receiving a control request from a server to the client according to another exemplary embodiment of the present invention.
  • FIG. 8 similar to FIGS. 5 to 7 , the left of a chain line represents the server, and the right thereof represents the client. In addition, dotted lines represent the streaming connection.
  • An HTTP client 810 receives chunk data from an HTTP server 800 through the streaming connection and transmits the chunk data to an HTTP dispatcher 820 .
  • the chunk data is a multiplexed session control request and multiplexed content data.
  • the HTTP dispatcher 820 demultiplexes session change chunked encoding and multimedia content. In other words, the HTTP dispatcher 820 divides the chunk data into session control request information and multimedia content information. Next, the HTTP dispatcher 820 transmits the divided session control chunk-extension information to a control handler 830 , and transmits the divided multimedia content data to a streaming client 840 .
  • the control handler 830 converts the received session control chunked encoding. To do this, the control handler 830 converts the session control chunked encoding information into a control request message in a session level. Next, the control handler 830 calls callback of a session synthesizer 850 for the converted session control request.
  • FIG. 9 is a signal flow diagram for explaining a response from a server to a client, to a control request according to another exemplary embodiment of the present invention.
  • FIG. 9 similar to FIGS. 5 to 8 , the left of a chain line represents the server, and the right thereof represents the client. In addition, thick lines represent the control connection.
  • a session synthesizer 960 in the client processes a session control request from the server
  • the session synthesizer 960 transmits a response to the session control request to a control handler 950 .
  • the control handler 950 converts the received session control response.
  • the session control response sis converted into a message in an HTTP level.
  • the session control response message includes a session ID and sequence information.
  • the control handler 950 transmits the converted response message in the HTTP level to an HTTP dispatcher 940 .
  • the HTTP dispatcher 940 receives the converted response message, in order to transmit the received message through the control connection, the HTTP dispatcher 940 constructs a complete HTTP request message to an HTTP client 930 which manages the control connection.
  • the HTTP request message includes HTTP header information.
  • the HTTP dispatcher 940 selects the HTTP client 930 which manages the control connection to transmit the HTTP request message through the control connection.
  • the HTTP request message transmitted from the HTTP client 930 has a format as follows.
  • the response message has the format of the HTTP request message.
  • the response message means a response message to the session control request from the server to the client.
  • the response message means the session control response
  • the response message has the format of the HTTP request. Therefore, after this, a HTTP scheduler 910 transmits a dummy HTTP response message. Only when the aforementioned construction is satisfied, an HTTP rule is satisfied.
  • the HTTP client 930 transmits the converted HTTP request message to an HTTP server 920 .
  • the HTTP server 920 transmits the received message to the HTTP scheduler 910 .
  • the HTTP scheduler 910 analyzes the received HTTP request message, determines that the received HTTP request message is the session control response, and extracts only body information excluding an HTTP header.
  • the HTTP scheduler 910 transmits control response information to a control handler 900 and transmits a dummy HTTP response to the received HTTP request message, to the HTTP server 920 .
  • the HTTP server 920 transmits the received dummy HTTP response message to the HTTP client 930 .
  • the HTTP client 930 transmits the received dummy HTTP response message to the dispatcher 940 .
  • the dispatcher 940 determines whether the received message is the dummy HTTP response, and when the received message is the dummy HTTP response, simply drops the dummy HTTP message.
  • FIG. 10 is a signal flow diagram of a client for transmitting a control request from the client to a server according to another exemplary embodiment of the present invention.
  • FIG. 10 similar to FIGS. 5 to 9 , the left of a chain line represents the server, and the right thereof represents the client. In addition, thick lines represent the control connection.
  • the session synthesizer 1040 requests an handler 1030 of a session control request.
  • the control handler 1030 converts the session control request. To do this, the control handler 1030 converts a corresponding request to a control request in an HTTP level. In this case, the control request message in the HTTP level includes a session ID and sequence information. Nest, the control handler 1030 transmits the converted control request message to a dispatcher 1020 .
  • the HTTP dispatcher 1020 converts the control request to a complete HTTP request message, and in order to transmit the HTTP request message through the control connection, selects an HTTP client 1010 which manages the control connection to transmit the HTTP request message to the HTTP client 1010 .
  • the HTTP client 1010 transmits the HTTP request message to the HTTP server 1000 .
  • the HTTP request message transmitted from the HTTP client 1010 has a format as follows.
  • FIG. 11 is a signal flow diagram of a server for receiving a control request from a client to the server according to another exemplary embodiment of the present invention.
  • FIG. 11 similar to FIGS. 5 to 10 , the left of a chain line represents the server, and the right thereof represents the client. In addition, thick lines represent the control connection.
  • An HTTP server 1130 receives an HTTP request from an HTTP client 1140 .
  • the HTTP request message appears to be an HTTP request, however, in fact, means a session control request from the client to the server.
  • the HTTP server 1130 transmits the HTTP request to an HTTP scheduler 1120 .
  • the HTTP scheduler 1120 analyzes the HTTP request message, and determines that the received HTTP request message means session control, and extracts important control information excluding an HTTP header.
  • the HTTP scheduler 1120 transmits the converted control request to a control handler 1110 .
  • the HTTP scheduler 1120 constructs a dummy HTTP response message and transmits the dummy HTTP response message to an HTTP server 1130 .
  • the control handler 1110 which receives the control request from the HTTP scheduler 1120 converts the control request into a control message in a session level, calls callback of a corresponding session manager 1100 , and calls a registered session control callback.
  • the HTTP server 1130 which receives the dummy HTTP response from the HTTP scheduler 1120 transmits the dummy HTTP response to an HTTP client 1140 through the control connection.
  • the HTTP client 1140 transmits the dummy HTTP response to a dispatcher 1150 .
  • the dispatcher 1150 determines whether the received message is the dummy HTTP response, and when the received message is the dummy HTTP response, simply drops the dummy HTTP response.
  • FIG. 12 is a signal flow diagram of a server for transmitting a response to a control request from a client to the server according to another exemplary embodiment of the present invention.
  • FIG. 12 similar to FIGS. 5 to 11 , the left of a chain line represents the server, and the right thereof represents the client. In addition, dotted lines represent the streaming connection.
  • a session manager 1200 transmits a session response to a control handler 1210 . More specifically, the session manager 1200 processes a session control request from the client to the server, and transmits a response message to the session control request to the control handler 1210 .
  • the control handler 1210 converts the session control response. More specifically, the control handler 1210 converts the session control response message in a session level into a message in a chunk-extension level. Here, a sessionid is added to a message ID.
  • the control handler 1210 transmits the converted session control response chunked encoding to an HTTP scheduler 1230 .
  • the HTTP scheduler 1230 performs buffering on the session control response chunked encoding.
  • the HTTP scheduler 1230 checks whether current chunk transmission is being performed. When the current chunk transmission is being performed, the HTTP scheduler 1230 does not immediately transmit the session control response chunked encoding and performs buffering until a next chunk is transmitted.
  • a streaming server 1220 transmits multimedia data to the HTTP scheduler 1230 to request the HTTP scheduler 1230 to transmit the multimedia data to the client.
  • the HTTP scheduler 1230 multiplexes the session control response chunked encoding transmitted from the control handler 1210 and the multimedia data transmitted from the streaming server 1220 .
  • the HTTP scheduler 1230 multiplexes a session change notification message currently stacked in a buffer, a session control request message from the server to the client, a response message to a control request from the client to the server, and multimedia content data, into a chunk data message.
  • the HTTP scheduler 1230 transmits the multiplexed chunk data through the streaming connection to an HTTP server 1240 , and the HTTP server 1240 transmits the multiplexed chunk data to an HTTP client 1250 .
  • a message format of the chunk data may be constructed as follows.
  • the format of the chunk data is similar to the message format shown in FIG. 5 . However, the format of the chunk data is different from the message format shown in FIG. 5 in that a type value of each individual message is “sessioncontrolresponse”, and “cmd” means a type of a response. For example, other fields except for a fastforwardresponse-sessionid field and a sequence field can be different.
  • FIG. 13 is a signal flow diagram of a client for receiving a response to a control request from the client to a server according to another exemplary embodiment of the present invention.
  • FIG. 13 similar to FIGS. 5 to 12 , the left of a chain line represents the server, and the right thereof represents the client. In addition, dotted lines represent the streaming connection.
  • An HTTP client 1310 which receives chunk data from an HTTP server 1300 through the streaming connection transmits the chunk data to an HTTP dispatcher 1320 .
  • the chunk data is multiplexed session control response information and multiplexed multimedia content data.
  • the HTTP dispatcher 1320 demultiplexes session control response chunked encoding and the multimedia content. More specifically, the HTTP dispatcher 1320 divides the chunk data into session control response information and multimedia content information. Next, the HTTP dispatcher 1320 transmits the divided session control response chunk-extension information to a control handler 1330 , and transmits the divided multimedia content data to a streaming client 1340 .
  • the control handler 1330 converts the received session control response chunked encoding. More specifically, the control handler 1330 converts the session control response chunked encoding information to a control response message in a session level. Next, the control handler 1330 transmits the converted session control response message to a session synthesizer 1350 .
  • bidirectional communication between a client and a server is possible by using HTTP without modifying an existing HTTP protocol, so that there is an advantage in that real-time transmission can be implemented.
  • the invention can also be embodied as computer readable codes on a computer readable recording medium.
  • the computer readable recording medium is any data storage device that can store data which can be thereafter read by a computer system. Examples of the computer readable recording medium include read-only memory (ROM), random-access memory (RAM), CD-ROMs, magnetic tapes, floppy disks, and optical data storage devices.
  • the computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion. Also, functional programs, codes, and code segments for accomplishing the present invention can be easily construed by programmers skilled in the art to which the present invention pertains.

Abstract

A communication method for implementing a real-time streaming using hypertext transfer protocol (HTTP) in a network is provided. Chunked encoding of HTTP is applied so that information can be exchanged between a server and a client while an HTTP request is being progressed. Therefore, bidirectional communication between the client and the server using HTTP is possible without modifying an existing HTTP protocol, and real-time transmission can be implemented.

Description

    CROSS-REFERENCE TO RELATED PATENT APPLICATION
  • This application is a Divisional application of U.S. patent application Ser. No. 11/967,289 filed Dec. 31, 2007, which claims priority from Korean Patent Application No. 10-2007-0037151, filed on Apr. 16, 2007 in the Korean Intellectual Property Office, the disclosure of which is incorporated herein by reference in its entirety.
  • BACKGROUND OF THE INVENTION
  • 1. Field of the Invention
  • Methods and apparatuses consistent with the present invention relate to communication using hypertext transfer protocol (HTTP), and more particularly, to implementing a real-time streaming using HTTP, and a client and a server used for the method.
  • 2. Description of the Related Art
  • Streaming is transmission of video or audio from a server to a client through a network such as the Internet. The server breaks the video into packets so as to be transmitted through the network. The client collects the packets to recover the video and reproduces the video. Here, the reproduction and packet reception simultaneously occur. The packets associated here are referred to as streaming.
  • Streaming is distinguished from a simple file transmission for performing reproduction after receiving the entire video, in that the client reproduces video data while continuously receives the video data. The client simultaneously receives and reproduces streaming client packets and disuses the reproduced data. For streaming a file, protocols such as HTTP, file transfer protocol (FTP), real-time transport protocol (RTP), and real-time streaming protocol (RTSP) can be used. The HTTP and the FTP are inherently file transfer protocols, while the RTP and the RTSP are protocols for real-time file streaming.
  • FIG. 1 is a signal flow diagram for explaining real-time streaming using HTTP between a client and a server according to the related art.
  • Referring to FIG. 1, the client 100 and the server 110 cannot transceive information with each other while processing HTTP requests by using an existing HTTP protocol and cannot cope with a session state which continuously changes, so that the existing HTTP protocol is not suitable for real-time streaming.
  • A related art HTTP operates in that, as described above, an HTTP client always transmits a request, and an HTTP server transmits a response to the request. According to the aforementioned operation, when a state change in the HTTP server occurs, there is no method of notifying the change. In addition, there is no method of transmitting a request which is not a response from the HTTP server to the HTTP client. In addition, the HTTP client cannot receive a response to a new HTTP request from the HTTP server while processing a previous HTTP request. Lastly, when the HTTP response is divided into packets to be transmitted, there is no method of performing timestamping on each of the packets. Due to the restrictions, the HTTP has disadvantages for supporting real-time transport.
  • As a related art protocol supporting the real-time transport, there is the RTP. However, recently, for universal plug and play (UPnP) audio and video (AV)/digital living network alliance (DLNA), the HTTP is designated as a basic streaming protocol due to simplicity and convenience of the HTTP. In this case, it is necessary to enable real-time transport to be performed by only extending the HTTP. In addition, it is also important to enable the real-time transport to be performed by at least modifying an existing code.
  • A format of chunked encoding of HTTP 1.1 is shown by a Backus Naur Form (BNF) as follows.
  • Chunked-Body=*chunk last-chunk trailer CRLF
  • chunk=chunk-size [chunk-extension] CRLF chunk-data CRLF
  • chunk-size=1*HEX
  • last-chunk=1*(“0”) [chunk-extension] CRLF
  • chunk-extension=*(“;” chunk-ext-name [“=” chunk-ext-val])
  • chunk-ext-name=token
  • chunk-ext-vat=token|quoted-string
  • chunk-data=chunk-size(OCTET)
  • trailer=*(entity-header CRLF)
  • Where, * means that the following part is repeated by the number in front of the *, token means string represented by general American Standard Code for Information Interchange (ASCII) codes, and HEX means hexadecimal. A part included in ‘[‘,’]’ can be omitted, and contents of a part included in ‘(‘,’)’ are managed as one. CRLF represents ‘\r’ and ‘\n’.
  • The BNF is interpreted according to this rule in that, Chunked-Body represents that 0 or more chunk is repeated and when “last-chunk trailer CRLF” is shown, the Chunked-Body is completed. Here, the chunk includes “chunk-size chunk-extension CRLF chunk-data CRLF”, and “chunk-extension” can be omitted. Chunk-size means a magnitude represented as hexadecimal, “chunk-extension” has a repeated pair of a name and a value as shown as chunk-ext-name=chunk-ext-val”, and has a format having ‘;’ for division. Last-chunk includes one or more fields constructed with “0”, and chunk-extension and CRLF that can be omitted. Trailer includes 0 or more entity-header, for example a HTTP header. An example of the above chunk-body format is as follows.
  • 1: 100; cen1=cev1; cen2=cev2; cen3\r\n
  • 2: 100 bytes of chunk-data . . . \r\n
  • 3: 200\r\n
  • 4: 200 bytes of chunk-data . . . \r\n
  • 5: 0\r\n
  • 6: HTTP-Header: HTTP-Header-value\r\n
  • 7: \r\n
  • In the chunk-body example, front numbers and ‘:’ represent line numbers. At the first line, “100” means that the size of following chunk-data is “100 bytes”, and “cen1= . . . cen3” is “chunk-extension”. Completion of chunk header information is represented as \r\n. In addition, at the second line, the chunk-data is transmitted, and at the end of the chunk-data, the \r\n is transmitted. At the third line, \r\n follows “200”. This exemplifies a case where “chunk-extension” is omitted. At the fourth line, similar to the line 2, real chunk-data is transmitted. At the fifth line which is the last chunk, after “0” is transmitted, \r\n is transmitted. After the last chunk, as shown at the sixth line, “trailer” including entity-header is transmitted. Lastly, as shown at the seventh line, \r\n is transmitted. An example of a complete HTTP response transmitting chunk-body as described above is as follows.
  • 01: HTTP/1.1 200 OK\r\n
  • 02: Transfer-Encoding: chunked\r\n
  • 03: \r\n
  • 04: 100; cen1=cev1; cen2=cev2; cen3\r\n
  • 05: 100 bytes of chunk-data . . . \r\n
  • 06: 200\r\n
  • 07: 200 bytes of chunk-data . . . \r\n
  • 08: 0\r\n
  • 09: HTTP-Header: HTTP-Header-Value\r\n
  • 10: \r\n
  • The second line shows that the HTTP server transmits data via chunked encoding through an HTTP header referred to as “Transfer-Encoding: chunked”.
  • SUMMARY OF THE INVENTION
  • The present invention provides a method of exchanging information between a streaming server and a client by using chunked encoding of HTTP while an HTTP request is being processed.
  • The present invention also provides a method of notifying an HTTP server state change, a method of exchanging information between a client and a server while an HTTP request is being processed, and a method of timestamping on an individual HTTP response packet.
  • The present invention also provides a client and a server for implementing a communication method using HTTP.
  • According to an aspect of the present invention, there is provided a communication method using HTTP, including: setting streaming connection and control connection between a client and a server; the client transmitting an HTTP streaming request to the server; the server constructing a chunked encoding for the HTTP streaming request, and transmitting a first chunk response, including the chunked encoding, to the client through the streaming connection; and the server transmitting a second chunk response to the client through the streaming connection, wherein the second chunk response includes notification of the server.
  • According to another aspect of the present invention, there is provided a communication method using HTTP, including: a control handler receiving session information from a session manager, converting the session information into a chunk-extension message, and transmitting the chunk-extension message to an HTTP scheduler; the HTTP scheduler checking whether chunk transmission to an HTTP client is being performed, and when the chunk transmission is being performed, buffering the chunk-extension message until the next chunk is transmitted; the HTTP scheduler generating chunk data, by multiplexing multimedia content received from a streaming server and the chunk-extension message, and transmitting the chunk data to an HTTP server; and the HTTP server transmitting the chunk data to the HTTP client through streaming connection.
  • According to another aspect of the present invention, there is provided a communication method using HTTP, including: an HTTP client receiving chunk data from an HTTP server through streaming connection and transmitting the chunk data to an HTTP dispatcher, wherein the chunk data is obtained by multiplexing multimedia content and a chunk-extension message; an HTTP dispatcher demultiplexing the chunk data into the multimedia content and the chunk-extension message, transmitting the chunk-extension message to a control handler, and transmitting the multimedia content to a streaming client; and the control handler converting the chunk-extension message into session information and transmitting the session information to a session synthesizer.
  • According to another aspect of the present invention, there is provided a communication method using HTTP, including: a control handler receiving a session control request from a session synthesizer, converting the session control request into an HTTP control request, and transmitting the HTTP control request to an HTTP dispatcher; the HTTP dispatcher constructing an HTTP request by adding an HTTP header to the HTTP control request and transmitting the HTTP request to an HTTP client which manages control connection; and the HTTP client transmitting the HTTP request to an HTTP server through the control connection.
  • According to another aspect of the present invention, there is provided a communication method using HTTP, including: an HTTP server receiving an HTTP request from an HTTP client through control connection and transmitting the HTTP request to an HTTP scheduler; the HTTP scheduler analyzing the HTTP request, and based on the result of the analysis, extracting a control request excluding an HTTP header from the HTTP request, and transmitting the control request to a control handler; and the control handler converting the control request to a session control message and retrieving and calling callback, of a session manager, corresponding to the session control message.
  • According to another aspect of the present invention, there is provided a communication method using HTTP, including: a control handler of a client receiving a session control response from a session synthesizer, converting the session control response into an HTTP message, and transmitting the HTTP message to an HTTP dispatcher; the HTTP dispatcher generating an HTTP request by adding an HTTP header to the HTTP message, selecting an HTTP client which manages control connection, and transmitting the HTTP request to the HTTP client; the HTTP client transmitting the HTTP request through the control connection to an HTTP server, and the HTTP server transmitting the HTTP request to an HTTP scheduler; and the HTTP scheduler analyzing the HTTP request, and based on the result of the analysis, extracting the session control response from the HTTP request, and transmitting the extracted session control response to a control handler of a server.
  • According to another aspect of the present invention, there is provided a communication apparatus using HTTP, including: a client which is connected with a server through a streaming connection and a control connection; wherein the client requests an HTTP streaming request through the streaming connection; wherein the client transmits an HTTP post request to the server through the control connection; wherein the HTTP post request includes a control request and a response to a query of a state of the client from the server to the client.
  • According to another aspect of the present invention, there is provided a communication apparatus using HTTP, including: a server which is connected with a client through a streaming connection and a control connection; wherein the server receives an HTTP streaming request from the client through the streaming connection; wherein the server constructs chunked encoding for the HTTP streaming request and transmits a first chunk response, including the chunked encoding, to the client through the streaming connection; wherein the server transmits a second chunk response to the client through the streaming connection; wherein the second chunk response includes a notification of the server.
  • According to another aspect of the present invention, there is provided a computer readable recording medium having recorded thereon a program for executing the methods described above.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The above and other aspects of the present invention will become more apparent by describing in detail exemplary embodiments thereof with reference to the attached drawings in which:
  • FIG. 1 is a signal flow diagram for explaining real-time streaming using HTTP between a client and a server according to the related art;
  • FIG. 2 is a signal flow diagram for explaining real-time streaming using HTTP between a client and a server according to an exemplary embodiment of the present invention;
  • FIG. 3 is a block diagram showing a schematic structure of the client shown in FIG. 2;
  • FIG. 4 is a block diagram showing a schematic structure of the server shown in FIG. 2;
  • FIG. 5 is a signal flow diagram of a server for transmitting notification from the server to a client according to another exemplary embodiment of the present invention;
  • FIG. 6 is a signal flow diagram of a client for receiving notification from a server to the client according to another exemplary embodiment of the present invention;
  • FIG. 7 is a signal flow diagram of a server for transmitting a control request from the server to a client according to another exemplary embodiment of the present invention;
  • FIG. 8 is a signal flow diagram of a client for receiving a control request from a server to the client according to another exemplary embodiment of the present invention;
  • FIG. 9 is a signal flow diagram for explaining a response from a server to a client, to a control request according to another exemplary embodiment of the present invention;
  • FIG. 10 is a signal flow diagram of a client for transmitting a control request from the client to a server according to another exemplary embodiment of the present invention;
  • FIG. 11 is a signal flow diagram of a server for receiving a control request from a client to the server according to another exemplary embodiment of the present invention;
  • FIG. 12 is a signal flow diagram of a server for transmitting a response to a control request from a client to the server according to another exemplary embodiment of the present invention; and
  • FIG. 13 is a signal flow diagram of a client for receiving a response to a control request from the client to a server according to another exemplary embodiment of the present invention.
  • DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS OF THE INVENTION
  • Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the attached drawings.
  • FIG. 2 is a signal flow diagram for explaining real-time streaming using HTTP between a client and a server according to an exemplary embodiment of the present invention;
  • Referring to FIG. 2, thick lines represent control connection between a client 200 and a server 210, and dotted lines represent streaming connection between the client 200 and the server 210.
  • The client 200 firstly has the streaming connection with the server 210 when transmits a streaming request. In addition, the client 200 sets the control connection independent from the streaming connection.
  • The server 210 transmits a query request for a state of the client 200 by using a new chunk of chunked encoding of HTTP 1.1 through the streaming connection or informs the client 200 of a change in streaming data.
  • The client 200 may transmit a new request to the server 210 or transmit a response to the request of the server 210 through the control connection while HTTP streaming is performed through the streaming connection.
  • Here, in order for the client 200 and the server 210 to refer to a specific streaming session while transceiving requests with each other, session identification (ID) information is added to request and response messages. In addition, a sequence number for command and notification is added. Here, the sequence number is only one in a single session.
  • The server 210 constructs a chunk in order to transmit real streaming data, and starts a new chunk whenever transmits notification messages or query messages to the client 200 right after currently progressed chunk is completed and whenever transmits a response message to a control request of the client 200. The server 210 performs timestamping on each chunk by using chunk-extension when transmits each of the chunks.
  • As shown in FIG. 2, the server 210 transmits an HTTP chunk response which is divided into an HTTP first chunk response, an HTTP second chunk response, an HTTP third chunk response, and an HTTP fourth chunk response through the streaming connection while adding a notification, a client state query, and server control response message to the chunk-extension. The client 200 adds a client state query response message and a client control request message to HTTP post requests, respectively, and transmits them through the control connection.
  • FIG. 3 is a block diagram showing a schematic structure of the client 200 shown in FIG. 2.
  • Referring to FIG. 3, an HTTP client 300, an HTTP dispatcher 310, a control handler 320, a streaming client 330, a session synthesizer 340, a session 350, and a streaming application 360 are shown.
  • The HTTP client 330 is a module for processing logic of a client of the HTTP 1.1 protocol.
  • The HTTP dispatcher 310 is a module for separating a control request of a server from the server to a client, notification from the server to the client, and a response from the server to the client to a control request from the client to the server, from each of chunk data so as to be transmitted to the control handler 320.
  • More specifically, the HTTP dispatcher 310 transmits a timestamp of each individual chunk transmitted from the HTTP client 300 to the control handler 320, and obtains multimedia data needed for streaming from each chunk to transmit the obtained multimedia to the streaming client 330. In addition, the HTTP dispatcher 310 transmits a stream control request from the client to the server of the control handler 320 to the server through the control connection and processes timeout of an individual stream control request. In addition, the HTTP dispatcher 310 transmits a response to the control request from the server to the client of the control handler 320, to the server through the control connection.
  • The control handler 320 converts a control instruction in a streaming level to a control instruction in an HTTP level, receives a response of a server to the control instruction from the HTTP dispatcher 310, and converts the received response into a format understandable by the session synthesizer 340 so as to be transmitted to the session synthesizer 340.
  • More specifically, the control handler 320 receives notification from the server to the client of the server, from the HTTP dispatcher 310 and converts the notification into a format understandable by the session synthesizer 340 so as to notify the session synthesizer 340. In addition, the control handler 320 calls callback registered by the session synthesizer 340 for the control request of the server from the server to the client and converts a response to this in the streaming session level to a response in the HTTP level.
  • The streaming client 330 receives chunk-data from the HTTP dispatcher 310 and performs buffering thereon and provides data to the streaming application 360. In addition, the streaming client 330 provides a reception state, a reception time, a timestamp time, and buffer statistics information of each chunk to the session synthesizer 340. In addition, the streaming client 330 adjusts the number of buffers according to an instruction of the session synthesizer 340.
  • The session synthesizer 340 is a module for synthesizing streaming sessions and performing a control function. Specifically, the session synthesizer 340 performs control in a session level by using the control handler 320, and controls the streaming client 330 in correspondence with a change in streaming data notified from the control handler 320. In addition, the session synthesizer 340 responds to session control from the server to the client, requested by the control handler 320. In addition, the session synthesizer 340 monitors a streaming state by using the streaming client 330 and has a function of connecting a buffer of the streaming client 330 to the streaming application 360.
  • The streaming application 360 is a module for real rendering multimedia contents by using the session synthesizer 340.
  • FIG. 4 is a block diagram showing a schematic structure of the server 210 shown in FIG. 2.
  • Referring to FIG. 4, an HTTP server 400, an HTTP scheduler 410, a control handler 420, a streaming server 430, a session manager 440, a session 450, and a content source 460 are shown.
  • The HTTP server 400 is a module for processing logic of a server of the HTTP 1.1 protocol.
  • The HTTP scheduler 410 performs the following functions. When the HTTP scheduler 410 receives a notification request of a change in the streaming data from the server to the client from the control handler 420, the HTTP scheduler 410 performs buffering thereon, and at a time point when current transmission of chunk data is completed and a new chunk is transmitted, the HTTP scheduler 410 transmits a corresponding notification to the new chunk. In addition, when the HTTP scheduler 410 receives a control request from the server to the client, from the control handler 420, at the time point when current transmission of chunk data is completed and a new chunk is transmitted, the HTTP scheduler 410 inserts the corresponding control request to the new chunk so as to be transmitted. In addition, the HTTP scheduler 410 performs buffering on the response to the control request from the client to the server, wherein the request is received from the control handler 420. When the current transmission of chunk data is completed and a new chunk is transmitted, a response to the corresponding control request to the chunk is inserted. In addition, the HTTP scheduler 410 inserts a timestamp to each individual chunk, and multiplexes chunk header information, a notification message according to the current exemplary embodiment of the present invention, a control request message, meta information on a control request response message or a timestamp, and a chunk data such as multimedia data.
  • In addition, when the HTTP scheduler 410 receives a control request from the client to the server through the control connection, the HTTP scheduler 410 transmits an acknowledgment (ACK) (HTTP/1.1 200 OK) in response thereto, and when receiving a response of the client to the control request from the server to the client, transmits ACK (HTTP/1.1 200 OK) in response thereto.
  • The control handler 420 converts notification from the server to the client in the streaming session level to notification in a chunk-extension level and transmits the converted notification to the HTTP scheduler 410. In addition, when there is a request from the server to the client in the streaming session level, the control handler 420 converts the request into a control instruction in the chunk-extension level, transmits the control instruction to the HTTP scheduler 410, and processes timeout for the request.
  • In addition, when the control handler 420 receives a control request of the client from the client to the server through the control connection, the control handler 420 calls callback registered by the session manager 440, converts a response to this in the streaming session level into the chunk-extension level, and transmits the converted response to the HTTP scheduler 410.
  • The streaming server 430 reads real streaming data from the content source 460 to perform buffering thereon so as to be transmitted to the HTTP scheduler 410. The streaming server 430 has a function of transmission while maintaining timing of each chunk data for streaming. In addition, the streaming server 430 divides the chunk into data needed for a unit time so as to be transmitted. In addition, the streaming server 430 has a function of adjusting the number of internal transfer buffers according to a request from the session manager 440.
  • The session manager 440 is a module for synthesizing streaming sessions to perform a control function, and more particularly, perform the following functions. The session manager 440 performs control in a session level by using the control handler 420. In addition, the session manager 440 monitors states of the client and the network by using the control handler 420, monitors a state of the server by using the streaming server 430, and controls the streaming server 430.
  • The content source 460 is a module for providing contents to be steamed by the streaming server 430.
  • FIG. 5 is a signal flow diagram of a server for transmitting notification from the server to a client according to another exemplary embodiment of the present invention.
  • In FIG. 5, the left of a chain line represents the server, and the right of the chain line represents the client. In addition, dotted lines represent the streaming connection.
  • Firstly, a session manager 500 transmits a session change to the control handler 510. In this case, the session manager 500 monitors a change in a session state and transmits the change as a notification message. The control handler 510 receives the notification and converts the session change. Specifically, the control handler 510 converts a session change message in a session level into a message in a chunk-extension level. Here, a sessionid is added to a message ID.
  • Next, the control handler transmits the converted session change chunked encoding to an HTTP scheduler 530. The HTTP scheduler 530 performs buffering on the session change chunked encoding. Here, the HTTP scheduler 530 checks whether chunk transmission is currently being performed. When the chunk transmission is being performed, the HTTP scheduler 530 does not immediately transmit the session change chunked encoding and performs buffering until a next chunk is transmitted. The streaming server 520 transmits multimedia data to the HTTP scheduler 530 to request the HTTP scheduler 530 to transmit the multimedia data to the client. Thereafter, the HTTP scheduler 530 multiplexes the session change chunk encoding received from the control handler 510 and the multimedia data received from the streaming server 520. More specifically, the HTTP scheduler 530 multiplexes session change notification messages currently piled in a buffer, a session control request message from the server to the client, a response message to a control request from the client to the server, and the multimedia content data, into chunk data messages.
  • Next, the HTTP scheduler 530 transmits the multiplexed chunk data to the HTTP server 540 through the streaming connection, and the HTTP server 540 transmits the multiplexed chunk data to the HTTP client 550. Here, a message format of the chunk data may be constructed as follows.
  • chunk-size:timestamp=1234567.0234; type=multiple; number of msgs; start; type=sessionchange; cmd=sessionchange; \sessionid=1234567; sequence=100; bitrate=1.2 Mbps; channels=7.1; containerformat=MP3; encoding=MP3; end; \r\n AV content-data . . . \r\n
  • The message format is an example of a chunk data message format for notification from the server to the client.
  • Here, “timestamp” represents a time at which a current chunk is transmitted. “Type=multiple” represents that several messages are multiplexed into one chunk. Next, “number of msgs” represents the number of messages of the server, which are multiplexed into the current chunk. “Start” and “end” represent start and end of each individual message. Each individual message always includes “type”, “cmd”, “sessionid”, “sequence”, and the like, and remaining fields have different contents according to a type of each message. As described above, the message transmitted from the server is defined to include several messages because a requested session change, a session control request from the server to the client, and a session control response message from the client to the server cannot be transmitted while the current chunk is being transmitted. Therefore, the aforementioned messages are buffered, and when a next chunk is started to be transmitted, the messages buffered until then are multiplexed into chunk data. This message format may be commonly applied to the session change from the server to the client, the session control request from the server to the client, and the session control response from the client to the server.
  • FIG. 6 is a signal flow diagram of a client for receiving notification from a server to the client according to another exemplary embodiment of the present invention.
  • Similar to FIG. 5, the left of a chain line represents the server, and the right of the chain line represents the client. In addition, dotted lines represent streaming connection.
  • An HTTP client 610 receives chunk data from an HTTP server 600 through the streaming connection and transmits the chunk data to an HTTP dispatcher 620. Here, the chunk data is multiplexed session change information and multiplexed multimedia content data.
  • The HTTP dispatcher 620 demultiplexes session change chunked encoding and the multimedia contents. In other words, the HTTP dispatcher 620 divides the chunk data into session change information and multimedia content information. Next, the HTTP dispatcher 620 transmits the divided session change chunk-extension information to a control handler 630, and transmits the divided multimedia content data to a streaming client 640.
  • The control handler 630 converts the received session change chunked encoding information into a notification message in a session level in order to convert the received session change chunked encoding. Next, the control handler 630 transmits the converted session change notification message to a session synthesizer 650.
  • FIG. 7 is a signal flow diagram of a server for transmitting a control request from the server to a client according to another exemplary embodiment of the present invention.
  • Similarly to in FIGS. 5 and 6, the left of a chain line represents the server, and the right of the chain line represents the client. In addition, dotted lines represent streaming connection.
  • A session manager 700 transmits a session control request to a control handler 710 when needs to control a session. The control handler 710 which receives the session control request converts session control. To do this, the control handler 710 converts a control message in a session level into a session control message in a chunk level. Next, the control handler 710 transmits the converted session control chunked encoding message in the chunk level to an HTTP scheduler 730. The HTTP scheduler 730 performs buffering on the session control chunked encoding. Here, the HTTP scheduler 730 checks whether current chunk transmission is being performed. When the current chunk transmission is being performed, the HTTP scheduler 730 does not immediately transmit the session control chunked encoding message and performs buffering until a next chunk is transmitted. A streaming server 720 transmits multimedia content data to the HTTP scheduler 730.
  • The HTTP scheduler 730 multiplexes the session control chunked encoding message and the multimedia contents. To do this, the HTTP scheduler 730 multiplexes session changes currently piled in a buffer, a session control request from the server to the client, a response message to the session control request from the client to the server, and the multimedia content data, into a chunk message. The HTTP scheduler 730 transmits the multiplexed chunk data to an HTTP server 740, and the HTTP server 740 transmits the chunk data to the HTTP client 750 through the streaming connection.
  • Here, a format of the chunk data message transmitted from the HTTP server 740 is similar to the message format described with reference to FIG. 5. However, the format of the chunk data message is different from the message format shown in FIG. 5 in that a type value of each individual message is “sessioncontrol”, and “cmd” means a type of a control instruction. For example, other fields except for, “sessionstatusquery-sessionid” and a sequence field may be different.
  • FIG. 8 is a signal flow diagram of a client for receiving a control request from a server to the client according to another exemplary embodiment of the present invention.
  • Referring to FIG. 8, similar to FIGS. 5 to 7, the left of a chain line represents the server, and the right thereof represents the client. In addition, dotted lines represent the streaming connection.
  • An HTTP client 810 receives chunk data from an HTTP server 800 through the streaming connection and transmits the chunk data to an HTTP dispatcher 820. Here, the chunk data is a multiplexed session control request and multiplexed content data.
  • The HTTP dispatcher 820 demultiplexes session change chunked encoding and multimedia content. In other words, the HTTP dispatcher 820 divides the chunk data into session control request information and multimedia content information. Next, the HTTP dispatcher 820 transmits the divided session control chunk-extension information to a control handler 830, and transmits the divided multimedia content data to a streaming client 840.
  • The control handler 830 converts the received session control chunked encoding. To do this, the control handler 830 converts the session control chunked encoding information into a control request message in a session level. Next, the control handler 830 calls callback of a session synthesizer 850 for the converted session control request.
  • FIG. 9 is a signal flow diagram for explaining a response from a server to a client, to a control request according to another exemplary embodiment of the present invention.
  • Referring to FIG. 9, similar to FIGS. 5 to 8, the left of a chain line represents the server, and the right thereof represents the client. In addition, thick lines represent the control connection.
  • After a session synthesizer 960 in the client processes a session control request from the server, the session synthesizer 960 transmits a response to the session control request to a control handler 950. The control handler 950 converts the received session control response. Here, the session control response sis converted into a message in an HTTP level. Here, the session control response message includes a session ID and sequence information.
  • Thereafter, the control handler 950 transmits the converted response message in the HTTP level to an HTTP dispatcher 940. After the HTTP dispatcher 940 receives the converted response message, in order to transmit the received message through the control connection, the HTTP dispatcher 940 constructs a complete HTTP request message to an HTTP client 930 which manages the control connection. Here, the HTTP request message includes HTTP header information. In addition, the HTTP dispatcher 940 selects the HTTP client 930 which manages the control connection to transmit the HTTP request message through the control connection.
  • Here, the HTTP request message transmitted from the HTTP client 930 has a format as follows.
  • POST /path/to/url HTTP/1. 1 \r\n
    HTTP headers \r\n
    Content-Length=ddd\r\n
    \r\n
    type=sessioncontrolresponse
    cmd=sessionstatus
    sessionid=1234567\r\n
    sequence=101\r\n
    alive=true\r\n
    rtt=...\r\n
    ...
  • As shown above, the response message has the format of the HTTP request message. However, the response message means a response message to the session control request from the server to the client. Although the response message means the session control response, the response message has the format of the HTTP request. Therefore, after this, a HTTP scheduler 910 transmits a dummy HTTP response message. Only when the aforementioned construction is satisfied, an HTTP rule is satisfied.
  • The HTTP client 930 transmits the converted HTTP request message to an HTTP server 920. The HTTP server 920 transmits the received message to the HTTP scheduler 910. The HTTP scheduler 910 analyzes the received HTTP request message, determines that the received HTTP request message is the session control response, and extracts only body information excluding an HTTP header.
  • Next, the HTTP scheduler 910 transmits control response information to a control handler 900 and transmits a dummy HTTP response to the received HTTP request message, to the HTTP server 920. The HTTP server 920 transmits the received dummy HTTP response message to the HTTP client 930. The HTTP client 930 transmits the received dummy HTTP response message to the dispatcher 940. The dispatcher 940 determines whether the received message is the dummy HTTP response, and when the received message is the dummy HTTP response, simply drops the dummy HTTP message.
  • FIG. 10 is a signal flow diagram of a client for transmitting a control request from the client to a server according to another exemplary embodiment of the present invention.
  • Referring to FIG. 10, similar to FIGS. 5 to 9, the left of a chain line represents the server, and the right thereof represents the client. In addition, thick lines represent the control connection.
  • When a session synthesizer 1040 needs session control, the session synthesizer 1040 requests an handler 1030 of a session control request. The control handler 1030 converts the session control request. To do this, the control handler 1030 converts a corresponding request to a control request in an HTTP level. In this case, the control request message in the HTTP level includes a session ID and sequence information. Nest, the control handler 1030 transmits the converted control request message to a dispatcher 1020.
  • The HTTP dispatcher 1020 converts the control request to a complete HTTP request message, and in order to transmit the HTTP request message through the control connection, selects an HTTP client 1010 which manages the control connection to transmit the HTTP request message to the HTTP client 1010. The HTTP client 1010 transmits the HTTP request message to the HTTP server 1000.
  • Here, the HTTP request message transmitted from the HTTP client 1010 has a format as follows.
  • POST /path/to/control HTTP/1.1\r\n
    HTTP headers\r\n
    Content-Length=ddd\r\n
    \r\n
    type=sessioncontrol\r\n
    cmd=fastforward\r\n
    sessionid=1234567\r\n
    sequence=102\r\n
    speed=x16\r\n
    \r\n
  • FIG. 11 is a signal flow diagram of a server for receiving a control request from a client to the server according to another exemplary embodiment of the present invention.
  • Referring to FIG. 11, similar to FIGS. 5 to 10, the left of a chain line represents the server, and the right thereof represents the client. In addition, thick lines represent the control connection.
  • An HTTP server 1130 receives an HTTP request from an HTTP client 1140. Here, the HTTP request message appears to be an HTTP request, however, in fact, means a session control request from the client to the server. The HTTP server 1130 transmits the HTTP request to an HTTP scheduler 1120.
  • The HTTP scheduler 1120 analyzes the HTTP request message, and determines that the received HTTP request message means session control, and extracts important control information excluding an HTTP header. The HTTP scheduler 1120 transmits the converted control request to a control handler 1110. In addition, the HTTP scheduler 1120 constructs a dummy HTTP response message and transmits the dummy HTTP response message to an HTTP server 1130.
  • The control handler 1110 which receives the control request from the HTTP scheduler 1120 converts the control request into a control message in a session level, calls callback of a corresponding session manager 1100, and calls a registered session control callback.
  • The HTTP server 1130 which receives the dummy HTTP response from the HTTP scheduler 1120 transmits the dummy HTTP response to an HTTP client 1140 through the control connection. The HTTP client 1140 transmits the dummy HTTP response to a dispatcher 1150. The dispatcher 1150 determines whether the received message is the dummy HTTP response, and when the received message is the dummy HTTP response, simply drops the dummy HTTP response.
  • FIG. 12 is a signal flow diagram of a server for transmitting a response to a control request from a client to the server according to another exemplary embodiment of the present invention.
  • Referring to FIG. 12, similar to FIGS. 5 to 11, the left of a chain line represents the server, and the right thereof represents the client. In addition, dotted lines represent the streaming connection.
  • First, a session manager 1200 transmits a session response to a control handler 1210. More specifically, the session manager 1200 processes a session control request from the client to the server, and transmits a response message to the session control request to the control handler 1210. The control handler 1210 converts the session control response. More specifically, the control handler 1210 converts the session control response message in a session level into a message in a chunk-extension level. Here, a sessionid is added to a message ID.
  • Next, the control handler 1210 transmits the converted session control response chunked encoding to an HTTP scheduler 1230. The HTTP scheduler 1230 performs buffering on the session control response chunked encoding. Here, the HTTP scheduler 1230 checks whether current chunk transmission is being performed. When the current chunk transmission is being performed, the HTTP scheduler 1230 does not immediately transmit the session control response chunked encoding and performs buffering until a next chunk is transmitted. A streaming server 1220 transmits multimedia data to the HTTP scheduler 1230 to request the HTTP scheduler 1230 to transmit the multimedia data to the client. Next, the HTTP scheduler 1230 multiplexes the session control response chunked encoding transmitted from the control handler 1210 and the multimedia data transmitted from the streaming server 1220. More specifically, the HTTP scheduler 1230 multiplexes a session change notification message currently stacked in a buffer, a session control request message from the server to the client, a response message to a control request from the client to the server, and multimedia content data, into a chunk data message.
  • Next, the HTTP scheduler 1230 transmits the multiplexed chunk data through the streaming connection to an HTTP server 1240, and the HTTP server 1240 transmits the multiplexed chunk data to an HTTP client 1250. Here, a message format of the chunk data may be constructed as follows.
  • chunk-size; timestamp=1234568.0234; type=multiple; number of msgs; start; type=sessioncontrolresponse; \cmd=fastforwardresponse, \sessionid=1234567; sequence=102; speed=×16; result=0K, end \r \n
  • AV content-data . . . \r\n
  • The format of the chunk data is similar to the message format shown in FIG. 5. However, the format of the chunk data is different from the message format shown in FIG. 5 in that a type value of each individual message is “sessioncontrolresponse”, and “cmd” means a type of a response. For example, other fields except for a fastforwardresponse-sessionid field and a sequence field can be different.
  • FIG. 13 is a signal flow diagram of a client for receiving a response to a control request from the client to a server according to another exemplary embodiment of the present invention.
  • Referring to FIG. 13, similar to FIGS. 5 to 12, the left of a chain line represents the server, and the right thereof represents the client. In addition, dotted lines represent the streaming connection.
  • An HTTP client 1310 which receives chunk data from an HTTP server 1300 through the streaming connection transmits the chunk data to an HTTP dispatcher 1320. Here, the chunk data is multiplexed session control response information and multiplexed multimedia content data.
  • The HTTP dispatcher 1320 demultiplexes session control response chunked encoding and the multimedia content. More specifically, the HTTP dispatcher 1320 divides the chunk data into session control response information and multimedia content information. Next, the HTTP dispatcher 1320 transmits the divided session control response chunk-extension information to a control handler 1330, and transmits the divided multimedia content data to a streaming client 1340.
  • The control handler 1330 converts the received session control response chunked encoding. More specifically, the control handler 1330 converts the session control response chunked encoding information to a control response message in a session level. Next, the control handler 1330 transmits the converted session control response message to a session synthesizer 1350.
  • Accordingly, bidirectional communication between a client and a server is possible by using HTTP without modifying an existing HTTP protocol, so that there is an advantage in that real-time transmission can be implemented.
  • In addition, a problem which occurs during real-time streaming using HTTP is solved, so that it is possible to apply the HTTP to the real-time streaming.
  • The invention can also be embodied as computer readable codes on a computer readable recording medium. The computer readable recording medium is any data storage device that can store data which can be thereafter read by a computer system. Examples of the computer readable recording medium include read-only memory (ROM), random-access memory (RAM), CD-ROMs, magnetic tapes, floppy disks, and optical data storage devices. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion. Also, functional programs, codes, and code segments for accomplishing the present invention can be easily construed by programmers skilled in the art to which the present invention pertains.
  • While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those skilled in the art that various changes in format and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. The exemplary embodiments should be considered in descriptive sense only and not for purposes of limitation. Therefore, the scope of the invention is defined not by the detailed description of the invention but by the appended claims, and all differences within the scope will be construed as being included in the present invention.

Claims (12)

1. A communication method using hypertext transfer protocol (HTTP), the method comprising:
at a control handler, receiving session information from a session manager, converting the session information into a chunk-extension message, and transmitting, from the control handler, the chunk-extension message to an HTTP scheduler;
at the HTTP scheduler, checking whether chunk transmission to an HTTP client is being performed, and if the chunk transmission is being performed, buffering the chunk-extension message until the next chunk is transmitted;
at the HTTP scheduler, generating chunk data by multiplexing multimedia content received from a streaming server and the chunk-extension message, and transmitting the chunk data to an HTTP server; and
at the HTTP server, transmitting the chunk data to the HTTP client through a streaming connection.
2. The method of claim 1, wherein the session information comprises a session change notification message, a session control request message from the HTTP server to the HTTP client, and a control response message for a session control request from the HTTP client to the HTTP server.
3. The method of claim 1, wherein the chunk-extension message comprises a session identification.
4. A communication method using hypertext transfer protocol (HTTP), the method comprising:
at a hypertext transfer protocol (HTTP) client, receiving chunk data from an HTTP server through a streaming connection and transmitting the chunk data to an HTTP dispatcher, wherein the chunk data is obtained by multiplexing multimedia content and a chunk-extension message;
at an HTTP dispatcher, demultiplexing the chunk data into the multimedia content and the chunk-extension message, transmitting the chunk-extension message to a control handler, and transmitting the multimedia content to a streaming client; and
at the control handler, converting the chunk-extension message into session information and transmitting the session information to a session synthesizer.
5. The method of claim 4, wherein the session information comprises a session change notification message from the HTTP server to the HTTP client, a session control request message from the HTTP server to the HTTP client, and a control response message for a session control request from the HTTP client to the HTTP server.
6. A communication method using hypertext transfer protocol (HTTP), the method comprising:
at a control handler, receiving a session control request from a session synthesizer, converting the session control request into an HTTP control request, and transmitting the HTTP control request to an HTTP dispatcher;
at the HTTP dispatcher, constructing an HTTP request by adding an HTTP header to the HTTP control request and transmitting the HTTP request to an HTTP client which manages a control connection; and
transmitting the HTTP request from the HTTP client to an HTTP server through the control connection.
7. The method of claim 6, wherein the HTTP control request comprises a session identification and sequence information.
8. A communication method using hypertext transfer protocol (HTTP), the method comprising:
(a) at an HTTP server, receiving an HTTP request from an HTTP client through a control connection and transmitting the HTTP request to an HTTP scheduler;
(b) at the HTTP scheduler, analyzing the HTTP request, and based on a result of the analyzing, extracting a control request excluding an HTTP header from the HTTP request, and transmitting the control request to a control handler; and
(c) at the control handler, converting the control request to a session control message and retrieving and calling callback, of a session manager, corresponding to the session control message.
9. The method of claim 8 wherein (b) further comprises:
at the HTTP scheduler, constructing a dummy HTTP response to the HTTP request and transmitting the HTTP response to the HTTP server; and
at the HTTP server, transmitting the dummy HTTP response to the HTTP client through the control connection.
10. A communication method using hypertext transfer protocol (HTTP), the method comprising:
(a) at a control handler of a client, receiving a session control response from a session synthesizer, converting the session control response into an HTTP message, and transmitting the HTTP message to an HTTP dispatcher;
(b) at the HTTP dispatcher, generating an HTTP request by adding an HTTP header to the HTTP message, selecting an HTTP client which manages a control connection, and transmitting the HTTP request to the HTTP client;
(c) at the HTTP client, transmitting the HTTP request through the control connection to an HTTP server, and the HTTP server transmitting the HTTP request to an HTTP scheduler; and
(d) at the HTTP scheduler, analyzing the HTTP request, and based on a result of the analyzing, extracting the session control response from the HTTP request, and transmitting the extracted session control response to a control handler of a server.
11. The method of claim 10, wherein (d) further comprises:
at the HTTP scheduler, constructing a dummy HTTP response to the HTTP request and transmitting the dummy HTTP response to the HTTP server;
at the HTTP server, transmitting the HTTP response to the HTTP client through the control connection;
at the HTTP client, transmitting the dummy HTTP response to the HTTP dispatcher; and
at the HTTP dispatcher, analyzing the dummy HTTP response, and if the dummy HTTP response is detected, dropping the dummy HTTP response.
12. A communication apparatus using hypertext transfer protocol (HTTP), the apparatus comprising:
a client which is connected with a server through a streaming connection and a control connection;
wherein the client requests an HTTP streaming request through the streaming connection and transmits an HTTP post request to the server through the control connection, and
wherein the HTTP post request includes a control request and a response to a query of a state of the client from the server to the client.
US13/292,913 2007-04-16 2011-11-09 Communication method and apparatus using hypertext transfer protocol Active 2028-11-05 US9270723B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/292,913 US9270723B2 (en) 2007-04-16 2011-11-09 Communication method and apparatus using hypertext transfer protocol

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2007-0037151 2007-04-16
KR1020070037151A KR101366803B1 (en) 2007-04-16 2007-04-16 Communication method and apparatus using hyper text transfer protocol
US11/967,289 US8078744B2 (en) 2007-04-16 2007-12-31 Communication method and apparatus using hypertext transfer protocol
US13/292,913 US9270723B2 (en) 2007-04-16 2011-11-09 Communication method and apparatus using hypertext transfer protocol

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US11/967,289 Division US8078744B2 (en) 2007-04-16 2007-12-31 Communication method and apparatus using hypertext transfer protocol

Publications (2)

Publication Number Publication Date
US20120102157A1 true US20120102157A1 (en) 2012-04-26
US9270723B2 US9270723B2 (en) 2016-02-23

Family

ID=39854779

Family Applications (2)

Application Number Title Priority Date Filing Date
US11/967,289 Active 2029-06-16 US8078744B2 (en) 2007-04-16 2007-12-31 Communication method and apparatus using hypertext transfer protocol
US13/292,913 Active 2028-11-05 US9270723B2 (en) 2007-04-16 2011-11-09 Communication method and apparatus using hypertext transfer protocol

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US11/967,289 Active 2029-06-16 US8078744B2 (en) 2007-04-16 2007-12-31 Communication method and apparatus using hypertext transfer protocol

Country Status (3)

Country Link
US (2) US8078744B2 (en)
KR (1) KR101366803B1 (en)
CN (1) CN101291324B (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130132507A1 (en) * 2011-02-28 2013-05-23 Viswanathan Swaminathan System and Method for Low-Latency Content Streaming
US10142397B2 (en) 2016-04-05 2018-11-27 International Business Machines Corporation Network file transfer including file obfuscation
US20190158555A1 (en) * 2017-11-17 2019-05-23 Embrionix Design Inc Standardized hot-pluggable transceiving unit providing a cloud gateway functionality
CN110324677A (en) * 2018-03-30 2019-10-11 武汉斗鱼网络科技有限公司 A kind of barrage server connection method, client and readable storage medium storing program for executing

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090307312A1 (en) * 2008-06-10 2009-12-10 Vianix Delaware, Llc System and Method for Signaling and Media Protocol for Multi-Channel Recording
US8914835B2 (en) * 2009-10-28 2014-12-16 Qualcomm Incorporated Streaming encoded video data
CA2783592A1 (en) 2009-12-11 2011-06-16 Nokia Corporation Apparatus and methods for describing and timing representations in streaming media files
WO2011139305A1 (en) 2010-05-04 2011-11-10 Azuki Systems, Inc. Method and apparatus for carrier controlled dynamic rate adaptation and client playout rate reduction
WO2012019621A1 (en) 2010-08-10 2012-02-16 Telefonaktiebolaget L M Ericsson (Publ) Session control for media stream transmission
EP2614653A4 (en) * 2010-09-10 2015-04-15 Nokia Corp A method and apparatus for adaptive streaming
EP2627082A4 (en) 2010-10-06 2014-04-09 Humax Co Ltd Method for transmitting a scalable http stream for natural reproduction upon the occurrence of expression-switching during http streaming
US9420022B2 (en) 2010-12-17 2016-08-16 Microsoft Technology Licensing, Llc Media requests to counter latency and minimize network bursts
US9276989B2 (en) * 2012-03-30 2016-03-01 Adobe Systems Incorporated Buffering in HTTP streaming client
CN102694864A (en) * 2012-05-30 2012-09-26 安科智慧城市技术(中国)有限公司 Method for achieving streaming media function by utilizing HTTP, streaming media server and system
CN103582012B (en) * 2012-08-07 2018-06-01 中兴通讯股份有限公司 A kind of data distributing method and device
CN103685387B (en) * 2012-09-12 2017-05-03 中国移动通信集团公司 Method for scheduling HTTP (hyper text transport protocol) request and browser device
CN103686202B (en) * 2012-09-18 2018-06-19 中兴通讯股份有限公司 Transcoding live transmission method and system based on HTTP under a kind of DLNA
FR3000336A1 (en) * 2012-12-20 2014-06-27 France Telecom MECHANISM FOR MANAGING A COMMUNICATION SESSION
CN103929404B (en) * 2013-01-11 2017-02-15 中国科学院声学研究所 Method for analyzing HTTP chunked code data
CN103929447B (en) * 2013-01-11 2017-07-07 中国科学院声学研究所 A kind of method of the parsing HTTP chunked coded datas based on PEEK operations
US9124568B2 (en) * 2013-03-15 2015-09-01 Disney Enterprises, Inc. Device and method for asset protection scheme
WO2014173252A1 (en) * 2013-07-26 2014-10-30 中兴通讯股份有限公司 Session management method, application function entity, policy server and protocol converter
US9596281B2 (en) * 2014-03-18 2017-03-14 Qualcomm Incorporated Transport accelerator implementing request manager and connection manager functionality
CN104038555A (en) * 2014-06-25 2014-09-10 珠海市君天电子科技有限公司 Data interaction method performed on server side and terminal device, and server side and terminal device data interaction device
WO2016056013A1 (en) * 2014-10-07 2016-04-14 Routier Ltd. Systems and methods for http message content modification streaming
CN107294913B (en) * 2016-03-31 2021-08-27 阿里巴巴集团控股有限公司 Secure communication method based on HTTP, server and client
CN107770230B (en) * 2016-08-23 2020-11-03 平安科技(深圳)有限公司 Method and device for processing hypertext transfer protocol request and Web server
US10264044B2 (en) 2016-08-29 2019-04-16 Comcast Cable Communications, Llc Apparatus and method for sending content as chunks of data to a user device via a network
CN109428919B (en) * 2017-08-28 2022-02-25 阿里巴巴集团控股有限公司 Webpage processing request processing method and device and electronic equipment
KR102335670B1 (en) 2017-09-13 2021-12-06 한화테크윈 주식회사 Method for video streaming via intermediate server using WebSocket
US20220174521A1 (en) * 2019-05-31 2022-06-02 Apple Inc. Systems and methods for performance data streaming, performance data file reporting, and performance threshold monitoring
CN112187858B (en) * 2020-08-24 2023-04-18 浙江百应科技有限公司 Method for matching pipeline type http request and response

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5050161A (en) * 1989-12-04 1991-09-17 Bell Communications Research, Inc. Congestion management based on multiple framing strategy
US6026439A (en) * 1997-10-28 2000-02-15 International Business Machines Corporation File transfers using playlists
US6122668A (en) * 1995-11-02 2000-09-19 Starlight Networks Synchronization of audio and video signals in a live multicast in a LAN
US20020097724A1 (en) * 2001-01-09 2002-07-25 Matti Halme Processing of data packets within a network element cluster
US20030154244A1 (en) * 2002-02-13 2003-08-14 Zellers Mark H. Method and system to provide flexible HTTP tunnelling
US20030236907A1 (en) * 2002-06-24 2003-12-25 Stewart James C. Communicating via a connection between a streaming server and a client without breaking the connection
US20050120132A1 (en) * 2003-11-14 2005-06-02 Ingo Hutter Method for discontinuous transmission, in sections, of data in a network of distributed stations, as well as a network subscriber station as a requesting appliance for carrying out a method such as this, and a network subscriber station as a source appliance for carrying out a method such as this
US20060004910A1 (en) * 2000-05-18 2006-01-05 Microsoft Corporation Postback input handling by server-side control objects
US20060209731A1 (en) * 2005-03-01 2006-09-21 Ibm Corporation Method and apparatus for in-kernel application-specific processing of content streams
US20070003251A1 (en) * 2003-05-10 2007-01-04 Chung Hyun-Kwon Multimedia data reproducing apparatus, audio data receiving method and audio data structure therein
US7206932B1 (en) * 2003-02-14 2007-04-17 Crystalvoice Communications Firewall-tolerant voice-over-internet-protocol (VoIP) emulating SSL or HTTP sessions embedding voice data in cookies
US7209972B1 (en) * 1997-10-30 2007-04-24 Commvault Systems, Inc. High speed data transfer mechanism
US20070168542A1 (en) * 2006-01-06 2007-07-19 Google Inc. Media Article Adaptation to Client Device
US20080114889A1 (en) * 2006-11-09 2008-05-15 Deshpande Sachin G Methods and Systems for HTTP Streaming Using Server-Side Pacing
US20080133766A1 (en) * 2006-05-05 2008-06-05 Wenjun Luo Method and apparatus for streaming media to a plurality of adaptive client devices
US20080215883A1 (en) * 2006-12-05 2008-09-04 Qualcomm Incorporated Providing secure inter-application communication for a mobile operating environment
US7587509B1 (en) * 2003-02-13 2009-09-08 Adobe Systems Incorporated Real-time priority-based media communication

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100228405B1 (en) 1996-12-21 1999-11-01 이계철 Method for searching service menu using hyper text transfer protocol in video on demand system
US20020198943A1 (en) * 2001-06-20 2002-12-26 David Zhuang Web-enabled two-way remote messaging facility
JP2003058496A (en) 2001-08-10 2003-02-28 Seiko Epson Corp Multimedia information terminal system and computer program
US8156248B2 (en) * 2003-10-09 2012-04-10 International Business Machines Corporation Image distribution for dynamic server pages
KR100535709B1 (en) 2004-04-21 2005-12-09 주식회사 케이티프리텔 Method and apparatus for recognizing a pair of HTTP request and HTTP response in wireless data service

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5050161A (en) * 1989-12-04 1991-09-17 Bell Communications Research, Inc. Congestion management based on multiple framing strategy
US6122668A (en) * 1995-11-02 2000-09-19 Starlight Networks Synchronization of audio and video signals in a live multicast in a LAN
US6026439A (en) * 1997-10-28 2000-02-15 International Business Machines Corporation File transfers using playlists
US7209972B1 (en) * 1997-10-30 2007-04-24 Commvault Systems, Inc. High speed data transfer mechanism
US20060004910A1 (en) * 2000-05-18 2006-01-05 Microsoft Corporation Postback input handling by server-side control objects
US20020097724A1 (en) * 2001-01-09 2002-07-25 Matti Halme Processing of data packets within a network element cluster
US20030154244A1 (en) * 2002-02-13 2003-08-14 Zellers Mark H. Method and system to provide flexible HTTP tunnelling
US20030236907A1 (en) * 2002-06-24 2003-12-25 Stewart James C. Communicating via a connection between a streaming server and a client without breaking the connection
US7587509B1 (en) * 2003-02-13 2009-09-08 Adobe Systems Incorporated Real-time priority-based media communication
US7206932B1 (en) * 2003-02-14 2007-04-17 Crystalvoice Communications Firewall-tolerant voice-over-internet-protocol (VoIP) emulating SSL or HTTP sessions embedding voice data in cookies
US20070003251A1 (en) * 2003-05-10 2007-01-04 Chung Hyun-Kwon Multimedia data reproducing apparatus, audio data receiving method and audio data structure therein
US20050120132A1 (en) * 2003-11-14 2005-06-02 Ingo Hutter Method for discontinuous transmission, in sections, of data in a network of distributed stations, as well as a network subscriber station as a requesting appliance for carrying out a method such as this, and a network subscriber station as a source appliance for carrying out a method such as this
US20060209731A1 (en) * 2005-03-01 2006-09-21 Ibm Corporation Method and apparatus for in-kernel application-specific processing of content streams
US20070168542A1 (en) * 2006-01-06 2007-07-19 Google Inc. Media Article Adaptation to Client Device
US20080133766A1 (en) * 2006-05-05 2008-06-05 Wenjun Luo Method and apparatus for streaming media to a plurality of adaptive client devices
US20080114889A1 (en) * 2006-11-09 2008-05-15 Deshpande Sachin G Methods and Systems for HTTP Streaming Using Server-Side Pacing
US20080215883A1 (en) * 2006-12-05 2008-09-04 Qualcomm Incorporated Providing secure inter-application communication for a mobile operating environment

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130132507A1 (en) * 2011-02-28 2013-05-23 Viswanathan Swaminathan System and Method for Low-Latency Content Streaming
US11025962B2 (en) * 2011-02-28 2021-06-01 Adobe Inc. System and method for low-latency content streaming
US11622134B2 (en) 2011-02-28 2023-04-04 Adobe Inc. System and method for low-latency content streaming
US10142397B2 (en) 2016-04-05 2018-11-27 International Business Machines Corporation Network file transfer including file obfuscation
US10826969B2 (en) 2016-04-05 2020-11-03 International Business Machines Corporation Network file transfer including file obfuscation
US20190158555A1 (en) * 2017-11-17 2019-05-23 Embrionix Design Inc Standardized hot-pluggable transceiving unit providing a cloud gateway functionality
US10560507B2 (en) * 2017-11-17 2020-02-11 Embrionix Design Inc. Standardized hot-pluggable transceiving unit providing a cloud gateway functionality
US20200128059A1 (en) * 2017-11-17 2020-04-23 Embrionix Design Inc. Standardized hot-pluggable transceiving unit providing a cloud gateway functionality
US10834159B2 (en) * 2017-11-17 2020-11-10 Riedel Communications Canada Inc. Standardized hot-pluggable transceiving unit providing a cloud gateway functionality
CN110324677A (en) * 2018-03-30 2019-10-11 武汉斗鱼网络科技有限公司 A kind of barrage server connection method, client and readable storage medium storing program for executing

Also Published As

Publication number Publication date
KR101366803B1 (en) 2014-02-24
US8078744B2 (en) 2011-12-13
CN101291324B (en) 2013-03-20
CN101291324A (en) 2008-10-22
US9270723B2 (en) 2016-02-23
KR20080093330A (en) 2008-10-21
US20080256254A1 (en) 2008-10-16

Similar Documents

Publication Publication Date Title
US9270723B2 (en) Communication method and apparatus using hypertext transfer protocol
EP2383941B1 (en) Client terminal, method and system for downloading streaming media
JP2005110244A (en) System and method for multimedia streaming service
US8806048B2 (en) Method and apparatus for transmitting and receiving streaming data based on real-time streaming protocol (RTSP) session
WO2008061416A1 (en) A method and a system for supporting media data of various coding formats
CN103004133A (en) Proxy server, relay method, communication system, relay control program, and recording medium
CN103369305B (en) Realize the method for speech talkback synchronization and playback in video monitoring system
KR102105656B1 (en) Packet retransmission method and apparatus, and retransmission request method and apparatus in mmt system
US11153360B2 (en) Methods and systems for codec detection in video streams
US10924524B2 (en) Communication devices, communication data generation method, and communication data processing method
WO2011153842A1 (en) Message transmission method between media gateways, media gateway and radio communication system thereof
CN101854286A (en) UDP (User Datagram Protocol)-based data stream sending-receiving method and device
WO2015012063A1 (en) Information processing device
US8416786B2 (en) Data transport container for transferring data in a high speed internet protocol network
CN108810475A (en) A kind of Android video monitoring apparatus based on Onvif standards and Sip agreements
WO2023217188A1 (en) Livestream data transmission method, apparatus and system, device and medium
US20110307626A1 (en) Faster than real time streaming in a playlist context
US8412840B2 (en) Live media serving system and method
KR100919216B1 (en) Method and apparatus for transmitting and receiving data
CN112153022B (en) RTMP rapid publishing and subscribing method
EP3352077A1 (en) Method for synchronously taking audio and video in order to proceed one-to-multi multimedia stream
CN112350986B (en) Shaping method and system for audio and video network transmission fragmentation
US20080133656A1 (en) Reproducer and content reproduction method
KR100315310B1 (en) Multiple data synchronizing method and multiple multimedia data streaming method using the same
WO2014073202A1 (en) Information-processing device, information-processing method, content distribution system, and computer program recording medium

Legal Events

Date Code Title Description
STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8