Communication channels
Labeling data is disclosed. Data to be communicated using a first communication protocol is received. For each of a plurality of portions of the received data, a data grouping is identified among a plurality of data groupings of a network connection. A second communication protocol is used to label identified portions of the received data encoded in the first communication protocol with a corresponding data grouping identifier. The labeled identified portions of the data are provided via the network connection.
1. A system for labeling data, comprising:
a processor configured to:
receive data to be communicated using a first communication protocol;
identify for each of a plurality of portions of the received data, a data grouping among a plurality of data groupings of a network connection;
use a second communication protocol to label identified portions of the received data encoded in the first communication protocol with a corresponding data grouping identifier; and
determine whether to link one of the plurality of data groupings of the network connection with a second data grouping, wherein determining whether to link the data groupings includes determining whether at least a portion of data to be communicated using the one of the plurality of data groupings of the network connection is a duplicate of data to be communicated using the second data grouping; and
a communication interfaced coupled with the processor and configured to provide via the network connection the labeled identified portions of the data.
2. The system of claim 1 , wherein the first communication protocol is an application level protocol.
3. The system of claim 1 , wherein the second communication protocol is a Web Socket protocol.
4. The system of claim 1 , wherein the first communication protocol is communicated over the second communication protocol.
5. The system of claim 1 , wherein identifying the data grouping includes identifying a communication channel among a plurality of communication channels of the network connection.
6. The system of claim 1 , wherein the network connection is a Web Socket connection negotiated to support an extension that enables the network connection to support a plurality of communication channels corresponding to the plurality of data groupings.
7. The system of claim 1 , wherein the received data was received via another network connection with a server.
8. The system of claim 1 , wherein labeling the identified portions does not alter the first communication protocol encoding of the identified portions.
9. The system of claim 1 , wherein identifying the data grouping includes analyzing one or more of the following associated with the corresponding identified portions of the received data: a location address, an end destination, a data source, and included contents.
10. The system of claim 1 , wherein labeling the identified portions of the received data includes, for each identified portion, inserting the corresponding data grouping identifier in a payload portion of a corresponding WebSocket protocol message.
11. The system of claim 1 , wherein the processor is further configured to process at least one of the identified portions of the received data using a Web Socket extension enabled for a corresponding identified data grouping.
12. The system of claim 1 , wherein the second data grouping is another one of the plurality of data groupings of the network connection.
13. The system of claim 1 , wherein the second data grouping is a data grouping of another network connection.
14. The system of claim 1 , wherein the processor is further configured to determine whether to link one of the plurality of data groupings of the network connection with a second network connection.
15. The system of claim 14 , wherein the one of the plurality of data groupings of the network connection shares a same network security scope with the second network connection.
16. The system of claim 1 , wherein a recipient of the labeled identified portions of the received data broadcasts at least one of the labeled identified portions via a plurality of network connections of the recipient identified using the corresponding data grouping identifier of the one of the labeled identified portions of the received data.
17. A method for labeling data, comprising:
receiving data to be communicated using a first communication protocol;
using a processor to identify for each of a plurality of portions of the received data, a data grouping among a plurality of data groupings of a network connection;
using a second communication protocol to label identified portions of the received data encoded in the first communication protocol with a corresponding data grouping identifier;
determining whether to link one of the plurality of data groupings of the network connection with a second data grouping, wherein determining whether to link the data groupings includes determining whether at least a portion of data to be communicated using the one of the plurality of data groupings of the network connection is a duplicate of data to be communicated using the second data grouping; and
providing via the network connection the labeled identified portions of the data.
18. The method of claim 17 , wherein the second communication protocol is a Web Socket protocol.
19. The method of claim 17 , wherein the first communication protocol is communicated over the second communication protocol.
20. A computer program product for labeling data, the computer program product being embodied in a tangible computer readable storage medium and comprising computer instructions for:
receiving data to be communicated using a first communication protocol;
identifying for each of a plurality of portions of the received data, a data grouping among a plurality of data groupings of a network connection;
using a second communication protocol to label identified portions of the received data encoded in the first communication protocol with a corresponding data grouping identifier;
determining whether to link one of the plurality of data groupings of the network connection with a second data grouping, wherein determining whether to link the data groupings includes determining whether at least a portion of data to be communicated using the one of the plurality of data groupings of the network connection is a duplicate of data to be communicated using the second data grouping; and
providing via the network connection the labeled identified portions of the data.