System and method for real-time bidirectional communication through firewalls
First Claim
1. A non-transitory, computer-accessible memory medium storing program instructions for communication between a real-time client and a real-time server, wherein the program instructions are executable by a processor to:
- establish at least one bidirectional connection to the real-time server through at least one of one or more firewalls or one or more NAT devices, wherein the at least one bidirectional connection comprises at least one bidirectional HTTPS connection or at least two unidirectional HTTP connections;
receive a first one or more RTP packets of a real-time application;
provide a first one or more TCP packets to the real-time server via the at least one bidirectional connection, wherein the first one or more TCP packets comprise the first one or more RTP packets;
receive a second one or more TCP packets from the real-time server via the at least one bidirectional connection;
extract a second one or more RTP packets from the second one or more TCP packets; and
provide at least one of the second one or more RTP packets to the real-time application;
wherein the program instructions are further executable to provide an acknowledgement to the real-time server for each TCP packet regardless of whether or not the TCP packet is received, and if a TCP packet is lost, modify a TCP 32-bit acknowledge number of the TCP packet to be equal to a TCP bit sequence number of a last received TCP packet.
7 Assignments
0 Petitions
Accused Products
Abstract
A system and method for real-time data transmission through data communication networks are disclosed. The system and the method allow for real time communication between applications located in different internal networks protected by firewalls by means of representing the applications by proxies and establishing TCP channels towards an intermediate proxy server localized outside the firewalls. A set of parameters residing in the server determines i.a. the number of required TCP channels based on the ratio of measured bandwidth between the data flow directions.
25 Citations
13 Claims
-
1. A non-transitory, computer-accessible memory medium storing program instructions for communication between a real-time client and a real-time server, wherein the program instructions are executable by a processor to:
-
establish at least one bidirectional connection to the real-time server through at least one of one or more firewalls or one or more NAT devices, wherein the at least one bidirectional connection comprises at least one bidirectional HTTPS connection or at least two unidirectional HTTP connections; receive a first one or more RTP packets of a real-time application; provide a first one or more TCP packets to the real-time server via the at least one bidirectional connection, wherein the first one or more TCP packets comprise the first one or more RTP packets; receive a second one or more TCP packets from the real-time server via the at least one bidirectional connection; extract a second one or more RTP packets from the second one or more TCP packets; and provide at least one of the second one or more RTP packets to the real-time application; wherein the program instructions are further executable to provide an acknowledgement to the real-time server for each TCP packet regardless of whether or not the TCP packet is received, and if a TCP packet is lost, modify a TCP 32-bit acknowledge number of the TCP packet to be equal to a TCP bit sequence number of a last received TCP packet. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A non-transitory, computer-accessible memory medium storing program instructions for communication between a real-time client and a real-time server, wherein the program instructions are executable by a processor to:
-
establish at least one bidirectional connection to the real-time client through at least one of one or more firewalls or one or more NAT devices, wherein the at least one bidirectional connection comprises at least one bidirectional HTTPS connection or at least two unidirectional HTTP connections; receive a first one or more RTP packets of a real-time application; provide a first one or more TCP packets to the real-time client via the at least one bidirectional connection, wherein the first one or more TCP packets comprise the first one or more RTP packets; acknowledge receipt of each of the first one or more TCP packets, regardless of whether or not the TCP is received by the real-time client, wherein said acknowledging comprises using a TCP 32-bit acknowledge number of a last provided TCP packet; receive a second one or more TCP packets from the real-time client via the at least one bidirectional connection; extract a second one or more RTP packets from the second one or more TCP packets; and provide at least one of the second one or more RTP packets to the real-time application. - View Dependent Claims (9, 10, 11, 12, 13)
-
Specification