US9197678B2 - Method and system for data transmission - Google Patents
Method and system for data transmission Download PDFInfo
- Publication number
- US9197678B2 US9197678B2 US12/316,365 US31636508A US9197678B2 US 9197678 B2 US9197678 B2 US 9197678B2 US 31636508 A US31636508 A US 31636508A US 9197678 B2 US9197678 B2 US 9197678B2
- Authority
- US
- United States
- Prior art keywords
- user terminal
- data
- connection
- relay node
- further connection
- 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.)
- Active, expires
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/756—Media network packet handling adapting media to device capabilities
-
- H04L29/00—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/102—Gateways
- H04L65/1033—Signalling gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1069—Session establishment or de-establishment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/401—Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
- H04L65/4015—Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference where at least one of the additional parallel sessions is real time or time sensitive, e.g. white board sharing, collaboration or spawning of a subconference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/752—Media network packet handling adapting media to network capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H04L67/1002—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1012—Server selection for load balancing based on compliance of requirements or conditions with available server resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
Definitions
- This invention relates to a method and system for data transmission.
- Packet-based communication systems allow the user of a device, such as a personal computer, to communicate across a computer network such as the internet.
- Packet-based communication systems include voice over internet protocol (“VoIP”) communication systems. These systems are beneficial to the user as they are often of significantly lower cost than fixed line or mobile networks. This may particularly be the case for long-distance communication.
- VoIP voice over internet protocol
- To use a VoIP system the user must install and execute communication client software on their user terminal.
- the communication client software provides the VoIP connections as well as other functions such as registration and authentication.
- the packet-based communication systems can also provide further features such as video calling, file transfer, instant messaging (“IM”), and voicemail.
- IM instant messaging
- P2P peer-to-peer
- the user To enable access to a peer-to-peer system, the user must execute P2P client software provided by a P2P software provider on their user terminal, and register with the P2P system.
- P2P client software provided by a P2P software provider on their user terminal
- the client software When the user registers with the P2P system the client software is provided with a digital certificate from a server. Once the client software has been provided with the certificate, communication can subsequently be set-up and routed between user terminals of the P2P system without the further use of a server.
- the network address of a destination user terminal can be found by the client software accessing a P2P database distributed across other user terminals of the P2P system.
- the calling user terminal can exchange of one or more digital certificates with the destination user terminal.
- the exchange of the digital certificates between the user terminals provides proof of the users' identities and that they are suitably authorised and authenticated in the P2P system. Therefore, the presentation of digital certificates provides trust in the identity of the user. It is therefore a characteristic of peer-to-peer communication that the communication can be established and proceeds without using a server, by operating from end-user terminal to end-user terminal with support provided by other end-user terminals of the P2P system. Further details on such a P2P system are disclosed in WO 2005/009019.
- firewalls and/or network address translation (“NAT”) gateways are often present between one or both of a calling user terminal and a called user terminal.
- Firewalls and NAT gateways frequently block access to the packet-based communication system, such that connections between the calling user terminal and the called user terminal cannot be established.
- firewalls and NAT gateways often block incoming connections, which can prevent a direct connection being established between the calling and called user terminal. Direct connections between the calling and called user terminal are preferable, as they are the most reliable and have the lowest latency.
- the packet-based communication system can be arranged to utilise relay nodes in the connections.
- a relay node is chosen that does not have problems with firewalls or NAT gateways. In other words, a relay node that can openly access the packet-based communication system is selected. Because the relay node is unencumbered by strong firewalls or NAT gateways it is able to accept incoming connections.
- Each of the calling and called user terminals is controlled to connect to the relay (i.e. outgoing connections are established from both the calling and called user terminals to the relay to avoid their firewall problems). The relay can accept both of these incoming connections. Once these connections are established, the calling and called user terminal are able to communicate using the packet-based communication system, as the relay node passes the data packets between the two.
- the relay nodes can be other user terminals executing the communication client software that have favourable firewall/NAT gateway conditions.
- the relaying functionality is invisible to the users of these user terminals.
- a problem with using a relay node is that it is not as reliable and has a higher latency and lower throughput compared to a direct connection between the calling and called user terminals. This is particularly the case where the relay node is another user terminal in the packet-based communication system. This is because the user of the user terminal that is acting as the relay node may choose to deactivate or disconnect their user terminal, thereby removing the relay node. This breaks the connection between the calling and called user terminals, and means that a new relay node must be found to replace it.
- the resources used at the relay node in relaying a connection e.g. network bandwidth or CPU resources
- a method of transmitting data over a communication network from a first user terminal executing a communication client application to a second user terminal comprising: the communication client application of the first user terminal receiving a command to transmit the data to the second user terminal and establishing a first connection between the first user terminal and the second user terminal via a first relay node; starting the transmission of the data from the first user terminal over the first connection; monitoring at least one network parameter related to the transmission of the data and comparing the at least one network parameter to at least one known value to determine whether to add a further connection; responsive to determining that the further connection should be added, establishing the further connection between the first user terminal and the second user terminal via a further relay node; and transmitting a first portion of the data via the first connection and a second portion of the data via the further connection.
- the at least one network parameter comprises resource usage at the first relay node
- the at least one known value comprises a maximum resource usage at the first relay node.
- the step of comparing may comprise determining that the further connection should be added if the resource usage at the first relay node equals or exceeds the maximum resource usage at the first relay node.
- the resource comprises at least one of: an uplink bandwidth of the first relay node; a downlink bandwidth of the first relay node; and a processor load on the first relay node.
- the at least one network parameter comprises an uplink bandwidth utilisation at the first user terminal
- the at least one known value comprises an uplink bandwidth capacity at the first user terminal.
- the step of comparing may comprise determining that the further connection should be added if the uplink bandwidth utilisation at the first user terminal is less than the uplink bandwidth capacity at the first user terminal.
- the at least one network parameter comprises a downlink bandwidth utilisation at the second user terminal
- the at least one known value comprises a downlink bandwidth capacity at the second user terminal.
- the step of comparing may comprise determining that the further connection should be added if the downlink bandwidth utilisation at the second user terminal is less than the downlink bandwidth capacity at the second user terminal.
- the at least one network parameter comprises the time elapsed since the transmission of the data started, and the at least one known value comprises a predetermined time interval.
- the step of comparing may comprise determining that the further connection should be added if the time elapsed since the transmission of the data started equals or exceeds the predetermined time interval.
- the method may further comprise the step of, subsequent to transmitting the first portion of the data via the first connection and the second portion of the data via the further connection, determining whether the throughput of the transmitted data has increased relative to the throughput before establishing the further connection.
- the method may repeat the steps of monitoring the at least one network parameter related to the transmission of the data and compare the at least one network parameter to the at least one known value to determine whether to add a yet further connection.
- the method further comprises the steps of, responsive to determining that a yet further connection should be added, establishing the yet further connection between the first user terminal and the second user terminal via a yet further relay node; and transmitting a first portion of the data via the first connection, a second portion of the data via the further connection, and a third portion of the data via the yet further connection.
- the first and second relay nodes are further user terminals, each executing the communication client application.
- the first relay node is selected for use in the first connection responsive to determining that a network entity is restricting communication between at least one of the first and second user terminals and the communication network.
- the network entity may be a firewall or a network address translation gateway.
- the communication client application of the first user terminal may receive the command to transmit the data to the second user terminal from a user of the first user terminal or from a further application executed on the first user terminal.
- the step of transmitting a first portion of the data via the first connection and a second portion of the data via the further connection comprises alternately transmitting packets of the data via the first and second connection.
- At least a part of the first and second portions of the data contain common data.
- the communication network may be a peer-to-peer system operating on the internet.
- a computer program product comprising program code means which, when executed by a computer implement the steps according to the above method.
- a user terminal connected to a communication network, comprising: a processor arranged to execute a communication client application, wherein the communication client application is configured to: receive a command to transmit data to a second user terminal; establish a first connection between the first user terminal and the second user terminal via a first relay node; start the transmission of the data from the first user terminal over the first connection; monitor at least one network parameter related to the transmission of the data; compare the at least one network parameter to at least one known value to determine whether to add a further connection; establish the further connection between the first user terminal and the second user terminal via a further relay node responsive to determining that the further connection should be added; and transmit a first portion of the data via the first connection and a second portion of the data via the further connection.
- FIG. 1 shows a packet-based communication system
- FIG. 2 shows the structure of a user terminal in the packet-based communication system
- FIG. 3 shows a user interface of a communication client in the packet-based communication system
- FIG. 4 shows a flowchart of a process for adding relay nodes
- FIG. 5 shows relayed connections between two user terminals.
- FIG. 1 illustrates a packet-based communication system 100 .
- a first user of the communication system (named “Tom Smith” 102 ) operates a user terminal 104 which is able to connect to a network 106 such as the Internet.
- the user terminal 104 may be, for example, a personal computer (“PC”) (including, for example, WindowsTM, Mac OSTM and LinuxTM PCs), a personal digital assistant (“PDA”), a mobile phone, a gaming device or other embedded device able to connect to the network 106 .
- PC personal computer
- PDA personal digital assistant
- the user terminal 104 is arranged to receive information from and output information to the user 102 of the device.
- the user device comprises a display such as a screen and an input device such as a keyboard, mouse, joystick and/or touch-screen.
- the user device 104 is connected to the network 106 via a network interface 108 such as a modem, and the connection between the user terminal 104 and the network interface 108 can be via a cable (wired) connection or a wireless connection.
- the user terminal 104 can connect to the communication network 106 via additional intermediate networks not shown in FIG. 1 .
- the user terminal 104 is running a communication client 110 , provided by the packed-based communication system software provider.
- the communication client 110 is an application layer software program executed on a local processor in the user terminal 104 .
- the user terminal 104 is also connected to a handset 112 , which comprises a speaker and microphone to enable the user to listen and speak in a voice call.
- the microphone and speaker does not necessarily have to be in the form of a traditional telephone handset, but can be in the form of a headphone or earphone with an integrated microphone, as a separate loudspeaker and microphone independently connected to the user terminal 104 , or integrated into the user terminal 104 itself.
- FIG. 2 illustrates a detailed view of the user terminal 104 on which is executed client 110 .
- the user terminal 104 comprises a central processing unit (“CPU”) 202 , to which is connected a display 204 such as a screen via a display interface 205 , an input device such as a keyboard 206 and a pointing device such as a mouse 208 connected via an interface 209 such as USB.
- the input devices and pointing device can be integrated into the terminal, such as a keypad, touch-screen and/or joystick.
- An output audio device 210 e.g. a speaker
- an input audio device 212 e.g. a microphone
- the output audio device 210 and input audio device 212 may be integrated into a handset 112 or headset, or may be separate.
- the CPU 202 is connected to the network interface 108 .
- the CPU 202 is also optionally connected to a webcam 224 via interface 226 , for use in video calls.
- FIG. 2 also illustrates an operating system (“OS”) 214 executed on the CPU 202 .
- OS operating system
- Running on top of the OS 214 is a software stack 216 for the client 110 .
- the software stack shows a client I/O layer 218 , a client engine layer 220 and a client user interface layer (“UI”) 222 .
- Each layer is responsible for specific functions. Because each layer usually communicates with two other layers, they are regarded as being arranged in a stack as shown in FIG. 2 .
- the operating system 214 manages the hardware resources of the computer and handles data being transmitted to and from the network via the network interface 108 .
- the operating system implements the transport, internet, and (optionally) a portion of the link layer, with the remainder of the link layer being implemented in firmware at the user terminal 104 .
- the communication client 110 operates at the application layer.
- the client I/O layer 218 of the client software communicates with the operating system 214 and handles voice and video coding and manages the signalling and data connections over the communication system.
- Higher level functionality is provided by the client engine layer 220 , including, for example, handling presence, relaying, user address look-up and authentication.
- the client engine 220 also communicates with the client user interface layer 222 .
- the client engine 220 may be arranged to control the client user interface layer 222 to present information to the user via the user interface of the client (as shown in FIG. 2 ) and to receive information from the user via the user interface.
- FIG. 3 An example of a user interface 300 of the communication client 110 executed on the user terminal 104 of the first user 102 is shown illustrated in FIG. 3 .
- the user interface 300 can be different depending on the type of user terminal 104 .
- the user interface can be smaller or display information differently on a mobile device, due to the small screen size.
- the client user interface 300 displays the username 302 of “Tom Smith” 102 in the communication system, and the user can set his own presence state (that will be seen by other users) using a drop down list by selecting icon 304 .
- the client user interface 300 comprises a contact list 308 displayed in a pane 309 .
- a contact list 308 displayed in a pane 309 .
- four contacts of other users of the communication system are shown listed in contact list 308 .
- Each contact in the contact list has a presence state chosen by the contact associated with it, and each of these contacts have authorised the user of the client to view their contact details and the contact-defined presence information.
- the presence status icon for “Kevin Jackson” 310 indicates that this contact is “online”
- the presence icon for “Maria Jones” 312 indicates that this contact is “away”
- the presence icon for “Roger White” 314 indicates that this contact's state is “do not disturb” (“DND”)
- the presence icon for “Sarah Rowling” 316 indicates that this contact is “offline”.
- Further presence state indications can also be included.
- Mood messages 320 of the contacts are shown displayed next to the names of the contacts in pane 309 .
- VoIP calls to the users in the contact list may be initiated over the communication system by selecting the contact and clicking on a “call” button 322 using a pointing device such as a mouse.
- a video call can be initiated by selecting the contact and clicking on a “video call” button 324 .
- the user of the client 110 can also communicate with the users listed in the contact list 308 in several other ways. For example, the user 102 can use the client 110 to transmit documents or files to users in the contact list 308 , by selecting a contact and clicking on the “send file” button 326 .
- the process for establishing a connection between user terminals is similar for each of the above-mentioned types of communication (i.e. calls, messages or file transfer).
- the connection set-up is performed using proprietary protocols, and is established over the network 106 between the calling user and called user by the peer-to-peer overlay system without the use of central servers.
- Described below is an illustrative example of the communication process where there are not restrictive firewalls or NAT gateways present.
- the calling user “Tom Smith” 102 establishes a voice call with second user “Kevin Jackson” 114 .
- the process is similar for video calls and file transfer.
- the call can be made using VoIP.
- the client 110 performs the encoding and packetisation voice data into VoIP packets.
- VoIP packets from the user terminal 104 are transmitted into the network 106 , and routed to a user terminal 116 of the called party 114 , via a network interface 118 .
- a client 120 (similar to the client 110 ) running on the user terminal 116 of the called user 114 decodes the VoIP packets to produce an audio signal that can be heard by the called user using the handset 122 .
- the client 120 executed on user terminal 116 encodes the audio signals into VoIP packets and transmits them across the network 106 to the user terminal 104 .
- the client 110 executed on user terminal 104 decodes the VoIP packets, and produces an audio signal that can be heard by the user of the handset 112 .
- the actual voice calls between users of the communication system can be made with no central servers being used. This has the advantages that the network scales easily and maintains a high voice quality, and the call can be made free to the users.
- the connection needs to be made via a relay node.
- the relay node is the terminal of another user of the packet-based communication system. Any user terminal that has favourable firewall or NAT gateway conditions can be elected to become a relay node (assuming sufficient resources are present).
- a further user called “User A” 124 operates a user terminal 126 and is connected to the network 106 via a network interface 128 .
- the user terminal 126 executes a communication client application 130 and is connected to a handset 132 .
- further users of the packet-based communication system can also be connected, as illustrated by “User B” 134 (operating user terminal 136 connected to network interface 138 and handset 140 , and executing communication client 142 ) and “User C” 144 (operating user terminal 146 connected to network interface 148 and handset 150 , and executing communication client 152 ). If any one of these further user terminals ( 126 , 136 , 146 ) do not have restrictive firewalls or NAT gateways, then they can be chosen to act as a relay node.
- the calling user terminal 104 and the called user terminal 116 have restrictive firewalls between them and the network 106 , then a direct connection cannot be established and a relay is required.
- the selection of relays is performed by an administrative node in the packet-based communication network (also called a “supernode”).
- the administrative node functionality is preferably implemented on another user terminal of the packet-based communication system (and hence not a central server).
- the user terminal 126 of User A 124 is chosen to act as the relay node.
- the client 110 of user terminal 104 initiates a connection to the relay user terminal 126 , and the client 120 of the user terminal 116 is instructed (by the administrative node) to also initiate a connection to the relay user terminal 126 .
- Data (be it voice call data, video call data or file transfer data) can then be passed between the user “Tom Smith” 102 and “Kevin Jackson” 114 by using the connections to the relay user terminal 126 .
- the relay 126 passes the data between the two user terminals without reading the content (it is also preferably encrypted to prevent eavesdropping).
- relay nodes solve the problem with firewalls and NAT gateways, they also introduce additional problems.
- a relayed connection is not as reliable and has a higher latency and lower throughput compared to a direct connection between user terminals.
- the relay node is another user terminal, such as User A's user terminal 126 described above, then User A 124 can deactivate or disconnect the user terminal 126 , thereby removing the relay node. This breaks the connection between the calling and called user terminals, and means that a new relay node must be found to replace it.
- the resources used at the user terminal 126 in relaying the connection e.g. network bandwidth or CPU resources
- FIG. 4 illustrates a flowchart of a process to alleviate the problems with relayed connections.
- FIG. 5 schematically illustrates the relaying connections between user terminals 104 and 116 (as in FIG. 1 ).
- step S 402 of FIG. 4 the communication client 110 of user terminal 104 receives a command to establish a connection and transmit data to user terminal 116 .
- This data can be in the form of, for example, voice call data, video call data, or a file transfer. If the user terminal 104 is establishing a voice or video call with user terminal 116 , then the user terminal 104 is the “calling user terminal” and user terminal 116 is the “called user terminal”. If the user terminal 104 is sending a file to user terminal 116 , then user terminal 104 is the “sending user terminal”, and user terminal 116 is the “receiving user terminal”. For the purposes of this description, the terms “calling user terminal” and “sending user terminal” are considered to equivalent. Similarly, the terms “called user terminal” and the “receiving user terminal” are also considered equivalent.
- the command to establish a connection and transmit data to user terminal 116 can originate from a number of sources. This can originate from the user 102 selecting to initiate communication using the communication client 110 user interface (as shown in FIG. 3 ), for example by selecting one of the call or file transfer buttons ( 322 , 324 , 326 ).
- the command can also originate from the user 102 operating a hardware device connected to the user terminal 104 , for example on the handset 112 .
- the command can originate from another module within the communication client software 110 , or from another application executed on the operating system 214 of the user terminal 104 .
- the command can originate from outside the user terminal 104 , and be communicated to the user terminal 104 via the network 106 .
- step S 404 a connection is established between user terminal 104 and user terminal 116 via a relay node (user terminal 126 in this example) in the manner described hereinbefore. It is assumed here that the firewall/NAT gateway situation for either or both of the user terminals 104 and 116 is such that a relay is required because a direct connection is not possible.
- the connection situation is illustrated in FIG. 5 , where user terminal 104 is shown connected to the relay node 126 via connection 502 , and the relay node 126 is connected to the user terminal 116 via connection 504 .
- step S 406 user terminal 104 begins sending the data to the user terminal 116 via the relay 126 .
- the communication client 110 monitors parameters of the network that are relevant to the relayed connection.
- One or more parameters can be monitored.
- the monitored parameters can include at least a bandwidth of a connection, a CPU resource, or a time period.
- bandwidth-related parameters that can be monitored are illustrated in FIG. 5 .
- the bandwidth used by the transmitted data can be monitored at several locations, such as: at the uplink 506 of the user terminal 104 ; at the downlink 508 a of the relay node 126 ; at the uplink 510 a of the relay node 126 ; and the downlink 512 of the user terminal 116 .
- CPU resources can be monitored, such as the CPU load caused by relaying the data at the relay node 126 .
- time periods can be monitored, such as the time that has elapsed since data has been transmitted via a particular relay.
- step S 410 the monitored parameter value or values are compared to predetermined, known parameter values.
- the particular known parameter value used depends on the network parameter that was monitored, as described below.
- this comparison is used to decide whether the connection between the user terminals can be improved (e.g. in terms of throughput or latency) through the addition of a further relay node.
- the bandwidth used by the data transmission at the uplink 506 at user terminal 104 is monitored, then this is compared to the overall available uplink bandwidth capacity. This comparison indicates whether there is spare uplink bandwidth capacity at the user terminal 104 . Spare capacity at the uplink 506 indicates that the connection speeds (i.e. throughout) could potentially be increased, as other parts of the connection are proving to be the connection bottleneck, and not the uplink 506 . Therefore, if the monitored utilised uplink bandwidth is less than the uplink capacity, then, in S 412 , it is decided that another relay can be added. Note that this decision can also be made in combination with other monitored parameters, and not necessarily on the basis of this parameter alone.
- the bandwidth used by the data transmission at the downlink 508 a of the relay node 126 is monitored, then this is compared to a maximum allowable proportion of the relay node's downlink bandwidth that can be utilised for relayed traffic. This therefore indicates whether the relay node 126 is currently operating at full capacity in terms of its downlink bandwidth.
- the relay node 126 can be limited such that only a fixed proportion of its available bandwidth can be used for relayed data traffic. This prevents the relaying operation from adversely affecting the operation of the relaying user terminal when it is used by the user for other tasks.
- step S 412 it is decided that another relay should be added. Note that this decision can also be made in combination with other monitored parameters, and not necessarily on the basis of this parameter alone, as outlined below.
- step S 412 it is decided that another relay should be added. Note that this decision can also be made in combination with other monitored parameters, and not necessarily on the basis of this parameter alone, as discussed below.
- the bandwidth used by the data transmission at the downlink 512 at user terminal 116 is monitored, then this is compared to the overall available downlink bandwidth capacity. This indicates whether there is spare downlink bandwidth capacity at the user terminal 116 . Spare capacity at the downlink 512 indicates that the connection speeds (i.e. throughout) could potentially be increased, as other parts of the connection are slowing the connection. Therefore, if the monitored utilised downlink bandwidth is less than the uplink capacity, then, in S 412 , it is decided that another relay can be added. Note that this decision can also be made in combination with other monitored parameters, and not necessarily on the basis of this parameter alone.
- the CPU load at the relay node 126 is monitored, then this is compared to a maximum CPU load that is permissible at the relay node.
- the relaying operation can be limited to only be able to consume a particular proportion of the CPU resources at the relay node, in order to prevent the relaying impacting other uses of the relaying user terminal 126 .
- This therefore indicates whether the relay node 126 is currently operating at full capacity in terms of its CPU load. If the relay node 126 is operating at full capacity in terms of its CPU load, then this indicates that the throughput through this relay cannot be increased any further. If this is the case, then in step S 412 it is decided that another relay should be added. Note that this decision can also be made in combination with other monitored parameters, and not necessarily on the basis of this parameter alone, as described below.
- the time period that has elapsed since a connection was established via a particular relay node can be monitored. This therefore monitors how long it has been since a particular relay was used to transmit data between the calling and called user terminals. This can be compared to a fixed, predetermined time interval. The fixed time interval sets a time period after which the addition of a new relay should be attempted. The comparison therefore determines whether a connection via a given relay has been established for more than or equal to the maximum time interval. If this is the case, then in step S 412 it is decided that another relay should be added. Note that this decision can also be made in combination with other monitored parameters, and not necessarily on the basis of this parameter alone, as described below.
- each of the relay downlink ( 508 ), relay uplink ( 510 ) and relay CPU can be monitored and compared to the maximum values, and if one or more of them indicates that the relay is running at full capacity, then S 412 decides that a further relay should be added.
- the monitoring of the elapsed time can also be combined with any other monitored parameters to ensure that a certain time elapses between each addition of a relay node. This ensures that relays are not added too frequently.
- step S 412 If in step S 412 it is decided that an additional relay should not be added, then control returns to step S 408 , and the network parameters continue to be monitored whilst the transmitted data continues to be sent from the calling user terminal 104 to the called user terminal 116 via relay node 126 .
- step S 414 an additional connection is established with a new relay node.
- relay node 136 is selected to be added as the new rely node, and a connection 514 is established between the calling user terminal 104 and the relay node 136 and between the relay node 136 and the called user terminal 116 (in the same way as was done with the first relay 126 for connections 502 and 504 ). Note that this new relay node 136 is added in addition to the existing relay node 126 , and does not replace it.
- the transmitted data can be shared between the pre-existing relay node 126 and the newly added relay node 136 .
- the sharing of the transmitted data over the two relays can be done in a number of different ways.
- the data is interleaved between the two relays, such that alternate packets are sent via each relay. This then operates such that a first packet of data is sent via the first relay, a second packet of data is sent via the second relay, a third packet of data is sent via the first relay, a fourth packet of data is sent via the second relay, and so on.
- the division of the data between the relays can be based not on packets, but on other factors such as speech or video frames from a codec (i.e. alternate frames are sent via each relay).
- An alternative method of sharing the data which can be used for file transfers, is to divide the overall file into two contiguous portions, and send each portion via one relay.
- the sharing of data between the two relays can be arranged to increase the reliability of the data transmitted.
- the some or all of the same data can be sent through both relays to provide diversity and redundancy.
- error correction or enhancement data can be sent via one of the relays, in order to correct or enhance the quality of the data sent via the other relay. This can be particularly advantageous in the case that either the calling or called end user are subject to lossy connection conditions.
- the sharing of data can also be based on the relative capabilities or resources of the relay nodes. For example if the first relay node 126 has lower resources than the second relay node 136 , then a corresponding proportion of the data can be sent via each of the respective relays.
- step S 416 following the addition of the new relay node 136 and the subsequent transmission of a meaningful quantity of data, the throughput of the transmitted data is measured by the communication client 110 .
- step S 418 the current relays and connections are maintained, and the transmission of data is continued in this state until the transmission is complete.
- the throughput has increased, then this indicates that the addition of the relay was beneficial to the transmission of the data. If this is the case, then control returns to S 408 and the monitoring of parameters continues. The process can then repeat, such that it can be determined from the parameters that the addition of a third relay could be beneficial.
- the monitored parameters can indicate that another relay should be added, and relay node 146 is selected. This is added by establishing connection 518 between the calling user terminal 104 and the relay node 146 , and connection 520 between the relay node 146 and the called user terminal 116 . The data is then divided or interleaved between the three relay nodes ( 126 , 136 , 146 ) shown in FIG. 5 .
- relay nodes can also be added (in addition to those shown in FIG. 5 ) if the process in FIG. 4 determines (through further iterations) that this is beneficial to the transmission of the data.
- the above-described technique therefore determines whether it is appropriate for additional relays to be added to a relayed connection between two user terminals.
- the addition of relays in appropriate circumstances increases the throughput and reliability of the connection.
- it can be the called/receiving user terminal that monitors the parameters and decides that another relay should be added.
- it can be the relay itself that monitors the parameters and signals to either the calling or called user terminal that it would be appropriate to add another relay.
- steps S 416 and S 418 in FIG. 4 can be optional.
- the process does not check in S 416 that the throughput has increased, and stop adding relays if it has not.
- the addition of relays can solely be controlled by the monitoring of parameters in S 408 -S 412 .
- steps S 416 and S 418 should be included. This provides a simple embodiment for implementing the technique, such that a connection with a relay is established and is maintained for a predetermined period of time. After this predetermined time has elapsed, a further relay is added and it is determined whether the throughput increases. If the throughput does increase, then the timer is restarted and another relay will be added at its expiry and the process repeats. If the throughput does not increase, then the process of adding further relays is ceased.
- step S 418 can be arranged such that, in response to determining that the addition of a new relay has not increased the throughput, the newly added relay node is removed from the connection between the calling and called user terminals.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
Monitored | Comparison | ||||
Monitored Location | Parameter | Value | When To Add Relay | ||
i) | Sender uplink | Used | Bandwidth capacity | If used bandwidth < |
(506) | bandwidth | capacity | ||
ii) | Relay | Used | Maximum allowable | If used bandwidth ≧ |
downlink | bandwidth | bandwidth utilisation | maximum | |
(508) | utilisation | |||
iii) | Relay uplink | Used | Maximum allowable | If used bandwidth ≧ |
(510) | bandwidth | bandwidth utilisation | maximum | |
utilisation | ||||
iv) | Receiver | Used | Bandwidth capacity | If used bandwidth < |
downlink | bandwidth | capacity | ||
(512) | ||||
v) | Relay CPU | CPU load | Maximum allowable | If used CPU load ≧ |
CPU load | maximum load | |||
vi) | Sender (104) | Time elapsed | Fixed time interval | If time elapsed ≧ |
since last relay | time interval | |||
added | ||||
Claims (28)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/316,365 US9197678B2 (en) | 2008-12-11 | 2008-12-11 | Method and system for data transmission |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/316,365 US9197678B2 (en) | 2008-12-11 | 2008-12-11 | Method and system for data transmission |
Publications (2)
Publication Number | Publication Date |
---|---|
US20100153496A1 US20100153496A1 (en) | 2010-06-17 |
US9197678B2 true US9197678B2 (en) | 2015-11-24 |
Family
ID=42241843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/316,365 Active 2030-07-31 US9197678B2 (en) | 2008-12-11 | 2008-12-11 | Method and system for data transmission |
Country Status (1)
Country | Link |
---|---|
US (1) | US9197678B2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10391506B2 (en) | 2014-10-28 | 2019-08-27 | 3M Innovative Properties Company | Spray application system components comprising a repellent surface and methods |
US10584249B2 (en) | 2015-10-28 | 2020-03-10 | 3M Innovative Properties Company | Articles subject to ice formation comprising a repellent surface |
US10907070B2 (en) | 2016-04-26 | 2021-02-02 | 3M Innovative Properties Company | Articles subject to ice formation comprising a repellent surface comprising a siloxane material |
US10946399B2 (en) | 2016-04-26 | 2021-03-16 | 3M Innovative Properties Company | Liquid reservoirs and articles comprising a repellent surface comprising a siloxane material |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7711847B2 (en) | 2002-04-26 | 2010-05-04 | Sony Computer Entertainment America Inc. | Managing users in a multi-user network game environment |
US20030217135A1 (en) * | 2002-05-17 | 2003-11-20 | Masayuki Chatani | Dynamic player management |
US8131802B2 (en) | 2007-10-05 | 2012-03-06 | Sony Computer Entertainment America Llc | Systems and methods for seamless host migration |
US8560707B2 (en) | 2007-10-05 | 2013-10-15 | Sony Computer Entertainment America Llc | Seamless host migration based on NAT type |
GB2469469B (en) | 2009-04-14 | 2015-06-10 | Skype | Method and system for data transmission |
GB2518542B (en) * | 2009-04-14 | 2015-07-08 | Skype | Transmitting and receiving data |
EP2315392A1 (en) * | 2009-10-21 | 2011-04-27 | Nederlandse Organisatie voor toegepast -natuurwetenschappelijk onderzoek TNO | Telecommunication quality of service control |
CN102546297B (en) * | 2011-12-31 | 2015-11-25 | 华为技术有限公司 | A kind of user bandwidth Notification Method and message accounting |
US8965921B2 (en) * | 2012-06-06 | 2015-02-24 | Rackspace Us, Inc. | Data management and indexing across a distributed database |
KR20160053618A (en) * | 2014-11-05 | 2016-05-13 | (주) 이스트몹 | Peer to peer supporting apparatus and peer to peer supporting method |
JP7188391B2 (en) * | 2017-09-14 | 2022-12-13 | ソニーグループ株式会社 | Information processing device, information processing method and program |
US10765952B2 (en) | 2018-09-21 | 2020-09-08 | Sony Interactive Entertainment LLC | System-level multiplayer matchmaking |
US10695671B2 (en) | 2018-09-28 | 2020-06-30 | Sony Interactive Entertainment LLC | Establishing and managing multiplayer sessions |
Citations (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020133491A1 (en) * | 2000-10-26 | 2002-09-19 | Prismedia Networks, Inc. | Method and system for managing distributed content and related metadata |
US20020150041A1 (en) * | 2001-03-07 | 2002-10-17 | Onetier Communications, Inc. | Method and system for providing an improved quality of service for data transportation over the internet |
US6512745B1 (en) * | 1996-03-08 | 2003-01-28 | Hitachi, Ltd. | Packet switching network, packet switching equipment, and network management equipment |
US6658003B1 (en) * | 1999-02-24 | 2003-12-02 | Hitachi, Ltd. | Network relaying apparatus and network relaying method capable of high-speed flow detection |
US20030235187A1 (en) * | 1999-01-29 | 2003-12-25 | Etsuko Iwama | Internet telephone connection method, bandwidth controller and gate keeper |
WO2005009019A2 (en) | 2003-07-16 | 2005-01-27 | Skype Limited | Peer-to-peer telephone system and method |
US20050054346A1 (en) * | 2003-09-09 | 2005-03-10 | Harris Corporation, Corporation Of The State Of Delaware | Load leveling in mobile ad-hoc networks to support end-to-end delay reduction, QoS and energy leveling |
US20050203923A1 (en) * | 2004-03-11 | 2005-09-15 | Shand Mark A. | Method and system of a network link adapter |
US6973549B1 (en) * | 2001-12-10 | 2005-12-06 | Incipient, Inc. | Locking technique for control and synchronization |
US20060190615A1 (en) * | 2005-01-21 | 2006-08-24 | Panwar Shivendra S | On demand peer-to-peer video streaming with multiple description coding |
US20060187900A1 (en) * | 2005-02-22 | 2006-08-24 | Akbar Imran M | Method and system for providing private virtual secure Voice over Internet Protocol communications |
US20060239207A1 (en) * | 2005-04-20 | 2006-10-26 | Nokia Corporation | Combined load balancing for overlay and ad hoc networks |
US20070147347A1 (en) * | 2005-12-22 | 2007-06-28 | Ristock Herbert W A | System and methods for locating and acquisitioning a service connection via request broadcasting over a data packet network |
US20070291771A1 (en) * | 2002-05-06 | 2007-12-20 | Jonathan Cline | System and Method for Distributed Processing of Packet Data Containing Audio Information |
US20080052394A1 (en) * | 2006-08-22 | 2008-02-28 | Bugenhagen Michael K | System and method for initiating diagnostics on a packet network node |
US20080059631A1 (en) * | 2006-07-07 | 2008-03-06 | Voddler, Inc. | Push-Pull Based Content Delivery System |
US20080080369A1 (en) * | 2006-09-29 | 2008-04-03 | Fujitsu Limited | Relay apparatus, relay method, and relay program |
US20080285577A1 (en) * | 2007-05-15 | 2008-11-20 | Yehuda Zisapel | Systems and Methods for Providing Network-Wide, Traffic-Aware Dynamic Acceleration and Admission Control for Peer-to-Peer Based Services |
US7460495B2 (en) * | 2005-02-23 | 2008-12-02 | Microsoft Corporation | Serverless peer-to-peer multi-party real-time audio communication system and method |
US20090094370A1 (en) * | 2007-10-05 | 2009-04-09 | Mark Lester Jacob | Seamless Host Migration Based on NAT Type |
US7551563B2 (en) * | 2000-05-31 | 2009-06-23 | International Business Machines Corporation | Routing diversified session via multiple network connections |
US7590756B2 (en) * | 2005-05-13 | 2009-09-15 | Itt Manufacturing Enterprises, Inc. | Method and system for transferring data in a communications network using redundant communication paths |
US20090262668A1 (en) * | 2005-08-30 | 2009-10-22 | Elad Hemar | Immediate communication system |
US20090303883A1 (en) * | 2008-06-05 | 2009-12-10 | David Kucharczyk | Ethernet switch-based network monitoring system and methods |
US20090316687A1 (en) * | 2006-03-10 | 2009-12-24 | Peerant, Inc. | Peer to peer inbound contact center |
US20100064008A1 (en) * | 2007-03-13 | 2010-03-11 | Huawei Technologies Co., Ltd. | Peer-to-peer network system, proxy service peer, and method for peer interworking between overlay networks |
US20100250737A1 (en) * | 2007-10-31 | 2010-09-30 | Interdisciplinary Center Herzliya | Detecting and controlling peer-to-peer traffic |
US20110158098A1 (en) * | 2008-05-01 | 2011-06-30 | Abdelghani Daraiseh | Adaptive hybrid wireless and wired process control system and method |
-
2008
- 2008-12-11 US US12/316,365 patent/US9197678B2/en active Active
Patent Citations (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6512745B1 (en) * | 1996-03-08 | 2003-01-28 | Hitachi, Ltd. | Packet switching network, packet switching equipment, and network management equipment |
US20030235187A1 (en) * | 1999-01-29 | 2003-12-25 | Etsuko Iwama | Internet telephone connection method, bandwidth controller and gate keeper |
US6658003B1 (en) * | 1999-02-24 | 2003-12-02 | Hitachi, Ltd. | Network relaying apparatus and network relaying method capable of high-speed flow detection |
US7551563B2 (en) * | 2000-05-31 | 2009-06-23 | International Business Machines Corporation | Routing diversified session via multiple network connections |
US20020133491A1 (en) * | 2000-10-26 | 2002-09-19 | Prismedia Networks, Inc. | Method and system for managing distributed content and related metadata |
US20020150041A1 (en) * | 2001-03-07 | 2002-10-17 | Onetier Communications, Inc. | Method and system for providing an improved quality of service for data transportation over the internet |
US6973549B1 (en) * | 2001-12-10 | 2005-12-06 | Incipient, Inc. | Locking technique for control and synchronization |
US20070291771A1 (en) * | 2002-05-06 | 2007-12-20 | Jonathan Cline | System and Method for Distributed Processing of Packet Data Containing Audio Information |
WO2005009019A2 (en) | 2003-07-16 | 2005-01-27 | Skype Limited | Peer-to-peer telephone system and method |
US20050054346A1 (en) * | 2003-09-09 | 2005-03-10 | Harris Corporation, Corporation Of The State Of Delaware | Load leveling in mobile ad-hoc networks to support end-to-end delay reduction, QoS and energy leveling |
US20050203923A1 (en) * | 2004-03-11 | 2005-09-15 | Shand Mark A. | Method and system of a network link adapter |
US20060190615A1 (en) * | 2005-01-21 | 2006-08-24 | Panwar Shivendra S | On demand peer-to-peer video streaming with multiple description coding |
US20060187900A1 (en) * | 2005-02-22 | 2006-08-24 | Akbar Imran M | Method and system for providing private virtual secure Voice over Internet Protocol communications |
US7460495B2 (en) * | 2005-02-23 | 2008-12-02 | Microsoft Corporation | Serverless peer-to-peer multi-party real-time audio communication system and method |
US20060239207A1 (en) * | 2005-04-20 | 2006-10-26 | Nokia Corporation | Combined load balancing for overlay and ad hoc networks |
US7590756B2 (en) * | 2005-05-13 | 2009-09-15 | Itt Manufacturing Enterprises, Inc. | Method and system for transferring data in a communications network using redundant communication paths |
US20090262668A1 (en) * | 2005-08-30 | 2009-10-22 | Elad Hemar | Immediate communication system |
US20070147347A1 (en) * | 2005-12-22 | 2007-06-28 | Ristock Herbert W A | System and methods for locating and acquisitioning a service connection via request broadcasting over a data packet network |
US20090316687A1 (en) * | 2006-03-10 | 2009-12-24 | Peerant, Inc. | Peer to peer inbound contact center |
US20080059631A1 (en) * | 2006-07-07 | 2008-03-06 | Voddler, Inc. | Push-Pull Based Content Delivery System |
US20080052394A1 (en) * | 2006-08-22 | 2008-02-28 | Bugenhagen Michael K | System and method for initiating diagnostics on a packet network node |
US20080080369A1 (en) * | 2006-09-29 | 2008-04-03 | Fujitsu Limited | Relay apparatus, relay method, and relay program |
US20100064008A1 (en) * | 2007-03-13 | 2010-03-11 | Huawei Technologies Co., Ltd. | Peer-to-peer network system, proxy service peer, and method for peer interworking between overlay networks |
US20080285577A1 (en) * | 2007-05-15 | 2008-11-20 | Yehuda Zisapel | Systems and Methods for Providing Network-Wide, Traffic-Aware Dynamic Acceleration and Admission Control for Peer-to-Peer Based Services |
US20090094370A1 (en) * | 2007-10-05 | 2009-04-09 | Mark Lester Jacob | Seamless Host Migration Based on NAT Type |
US20100250737A1 (en) * | 2007-10-31 | 2010-09-30 | Interdisciplinary Center Herzliya | Detecting and controlling peer-to-peer traffic |
US20110158098A1 (en) * | 2008-05-01 | 2011-06-30 | Abdelghani Daraiseh | Adaptive hybrid wireless and wired process control system and method |
US20090303883A1 (en) * | 2008-06-05 | 2009-12-10 | David Kucharczyk | Ethernet switch-based network monitoring system and methods |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10391506B2 (en) | 2014-10-28 | 2019-08-27 | 3M Innovative Properties Company | Spray application system components comprising a repellent surface and methods |
US10987686B2 (en) | 2014-10-28 | 2021-04-27 | 3M Innovative Properties Company | Spray application system components comprising a repellent surface and methods |
US10987685B2 (en) | 2014-10-28 | 2021-04-27 | 3M Innovative Properties Company | Spray application system components comprising a repellent surface and methods |
US10584249B2 (en) | 2015-10-28 | 2020-03-10 | 3M Innovative Properties Company | Articles subject to ice formation comprising a repellent surface |
US11136464B2 (en) | 2015-10-28 | 2021-10-05 | 3M Innovative Properties Company | Articles subject to ice formation comprising a repellent surface |
US10907070B2 (en) | 2016-04-26 | 2021-02-02 | 3M Innovative Properties Company | Articles subject to ice formation comprising a repellent surface comprising a siloxane material |
US10946399B2 (en) | 2016-04-26 | 2021-03-16 | 3M Innovative Properties Company | Liquid reservoirs and articles comprising a repellent surface comprising a siloxane material |
Also Published As
Publication number | Publication date |
---|---|
US20100153496A1 (en) | 2010-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9197678B2 (en) | Method and system for data transmission | |
US9449614B2 (en) | Controlling multi-party communications | |
AU2007245390B2 (en) | User interface for handling call quality in a communication system | |
US8670336B2 (en) | Measuring call quality | |
US8400925B2 (en) | Data rate control mechanism | |
US9130761B2 (en) | Method and system for data transmission | |
KR101571925B1 (en) | Multipoint conference device and switching method from multipoint conference to point-to-point communication | |
US8245266B2 (en) | User interface | |
US8244816B2 (en) | System and method for controlling regularity of presence status transmission based on resource usage of a user transmitting node | |
KR20130121183A (en) | A backup sip server for the survivability of an enterprise network using sip | |
GB2444382A (en) | Transmitting data across a restrictive gateway | |
US20080056239A1 (en) | VOIP Service Over a Regular Phone | |
US20090296693A1 (en) | Session Initiation Protocol Telephone System, Data Transmission Method, Server Unit, and Telephone Terminal | |
KR101080383B1 (en) | Method for voice over internet protocol call setup and communication system performing the same | |
JP2006333220A (en) | Network telephone system, and server device thereof | |
US20110103369A1 (en) | Method and Device for Managing Personal Communications of at Least One User | |
US20240073123A1 (en) | Alternative route propogation | |
US9549034B2 (en) | Information processing system | |
JP2014039172A (en) | Communication server and method for controlling the same | |
JP2011250086A (en) | Nuisance call prevention system and nuisance call prevention method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SKYPE LIMITED,IRELAND Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEINLA, AHTI;REEL/FRAME:022383/0431 Effective date: 20090302 Owner name: SKYPE LIMITED, IRELAND Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEINLA, AHTI;REEL/FRAME:022383/0431 Effective date: 20090302 |
|
AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A.,NEW YORK Free format text: SECURITY AGREEMENT;ASSIGNOR:SKYPE LIMITED;REEL/FRAME:023854/0805 Effective date: 20091125 Owner name: JPMORGAN CHASE BANK, N.A., NEW YORK Free format text: SECURITY AGREEMENT;ASSIGNOR:SKYPE LIMITED;REEL/FRAME:023854/0805 Effective date: 20091125 |
|
AS | Assignment |
Owner name: SKYPE LIMITED, CALIFORNIA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:027289/0923 Effective date: 20111013 |
|
AS | Assignment |
Owner name: SKYPE, IRELAND Free format text: CHANGE OF NAME;ASSIGNOR:SKYPE LIMITED;REEL/FRAME:028691/0596 Effective date: 20111115 |
|
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 |
|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SKYPE;REEL/FRAME:054586/0001 Effective date: 20200309 |
|
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 |