Stream creation with limited topology information
View Patent ↗The discovery of a topology of a network with an unknown topology can enable the selection of a data path within the network, and the establishment of a data stream over the selected data path. Routing tables mapping originating nodes to input ports can be created based on the receipt of discovery messages generated by the originating nodes. A source node can select a data path between the source node and a sink node in order to establish a data stream using the routing tables. Data paths can be selected based on, for instance, routing table bandwidth information, latency information, and/or distance information. Data streams can be established over the selected data path, and each node can release any reserved output bandwidth determined to be unnecessary for the data stream.
1. A method comprising:
receiving, at an intermediary node comprising electronic circuitry in a data path from a first node, a request to establish a data stream;
outputting, by the intermediary node to a second node, the request to establish the data stream;
receiving, by the intermediary node from the second node, a list of formats compatible with the second node;
generating an updated list of formats by:
removing formats from the received list of formats with which the intermediary node is not compatible; and
adding one or more additional formats to the list, each additional format comprising a format which the intermediary node can transcode into one or more of the formats within received the list of formats;
providing the updated list of formats to the first node; and
receiving confirmation of a selected format from the first node, the selected format selected by node upstream from the intermediary node within the data path based on an initial format selected by a source node of the data path and comprising a format from the updated list of formats, the upstream node configured to transcode data in the initial format to data in the selected format.
2. The method of claim 1 , wherein the source node receives the updated list of formats.
3. The method of claim 1 , wherein the source node receives a list of formats generated by a node between the source node and the first node based at least in part on the updated list of formats.
4. The method of claim 1 , further comprising:
in response to the selected format comprising a format on the received list of formats, providing the received confirmation of the selected format to the second node; and
in response to the selected format comprising a format on the updated list of formats but not the received list of formats:
selecting an updated format, the updated format comprising a format into which the intermediary node can transcode the selected format; and
providing an updated confirmation to the second node, the updated confirmation comprising the updated format.
5. The method of claim 1 , further comprising:
receiving data stream data from the first node in the selected format;
in response to the selected format comprising a format on the received list of formats, outputting the received data to the second node; and
in response to the selected format comprising a format on the updated list of formats but not the received list of formats:
transcoding the received data into an updated format, the updated format comprising a format on the received list of formats; and
providing the transcoded data to the second node.
6. A system comprising:
an intermediary node comprising electronic circuitry within a data path, the intermediary node configured to communicate with a first node and a second node in the data path, the intermediary node configured to perform steps comprising:
receiving, from the first node, a request to establish a data stream;
outputting, to the second node, the request to establish the data stream;
receiving, from the second node, a list of formats compatible with the second node;
generating an updated list of formats by:
removing formats from the received list of formats with which the intermediary node is not compatible; and
adding one or more additional formats to the list, each additional format comprising a format which the intermediary node can transcode into one or more of the formats within received the list of formats;
providing the updated list of formats to the first node; and
receiving confirmation of a selected format from the first node, the selected format selected by node upstream from the intermediary node within the data path based on an initial format selected by a source node of the data path and comprising a format from the updated list of formats, the upstream node configured to transcode data in the initial format to data in the selected format.
7. The system of claim 6 , wherein the source node receives the updated list of formats.
8. The system of claim 6 , wherein the source node receives a list of formats generated by a node between the source node and the first node based at least in part on the updated list of formats.
9. The system of claim 6 , the intermediary node configured to perform further steps comprising:
in response to the selected format comprising a format on the received list of formats, providing the received confirmation of the selected format to the second node; and
in response to the selected format comprising a format on the updated list of formats but not the received list of formats:
selecting an updated format, the updated format comprising a format into which the intermediary node can transcode the selected format; and
providing an updated confirmation to the second node, the updated confirmation comprising the updated format.
10. The system of claim 6 , the intermediary node configured to perform further steps comprising:
receiving data stream data from the first node in the selected format;
in response to the selected format comprising a format on the received list of formats, outputting the received data to the second node; and
in response to the selected format comprising a format on the updated list of formats but not the received list of formats:
transcoding the received data into an updated format, the updated format comprising a format on the received list of formats; and
providing the transcoded data to the second node.
11. A non-transitory computer-readable storage medium storing executable computer instructions configured to, when executed by electronic circuitry of an intermediary node within a data path, cause the intermediary node to perform steps comprising:
receiving, from a first node, a request to establish a data stream;
outputting, to a second node, the request to establish the data stream;
receiving, from the second node, a list of formats compatible with the second node;
generating an updated list of formats by:
removing formats from the received list of formats with which the intermediary node is not compatible; and
adding one or more additional formats to the list, each additional format comprising a format which the intermediary node can transcode into one or more of the formats within received the list of formats;
providing the updated list of formats to the first node; and
receiving confirmation of a selected format from the first node, the selected format selected by node upstream from the intermediary node within the data path based on an initial format selected by a source node of the data path and comprising a format from the updated list of formats, the upstream node configured to transcode data in the initial format to data in the selected format.
12. The non-transitory computer-readable storage medium of claim 11 , wherein the source node receives the updated list of formats.
13. The non-transitory computer-readable storage medium of claim 11 , wherein the source node receives a list of formats generated by a node between the source node and the first node based at least in part on the updated list of formats.
14. The non-transitory computer-readable storage medium of claim 11 , the instructions configured to cause the intermediary node to perform further steps comprising:
in response to the selected format comprising a format on the received list of formats, providing the received confirmation of the selected format to the second node; and
in response to the selected format comprising a format on the updated list of formats but not the received list of formats:
selecting an updated format, the updated format comprising a format into which the intermediary node can transcode the selected format; and
providing an updated confirmation to the second node, the updated confirmation comprising the updated format.