A method for optimizing bandwidth allocation of carrying a data stream that is associated with a required bandwidth allocation and is associated with a bandwidth sharing definition that defines the bandwidth sharing of the data stream with allocated bandwidths over a network, the method comprising: defining a first path from a first node (A, 24) to a second node (E, 24) in the network, the first path comprises at least a first (25, A-B) segment that is associated with a first allocated bandwidths; defining a second path from the first node to the second node in the network, the second path comprises at least a second (25, A-D) segment that is associated with a second allocated bandwidths; the method further comprising: calculating a first additional allocation bandwidth required for carrying the data stream over the first segment based on the first allocated bandwidth according to the bandwidth sharing definition; calculating a second additional allocation bandwidth required for carrying the data stream over the second segment based on the second allocated bandwidth according to the bandwidth sharing definition; selecting the first or second path in response to comparing the first additional allocation bandwidth to the second additional allocation bandwidth; and transporting the data stream (40, 48) over the selected path, wherein the sharing of bandwidths between the data stream and the allocated bandwidth over the at least one of the segments is established to protect one another against a failure in at least one of the segments or at least one of the nodes in the network. defining a first path from a first node (A, 24) to a second node (E, 24) in the network, the first path comprises at least a first (25, A-B) segment that is associated with a first allocated bandwidths; defining a second path from the first node to the second node in the network, the second path comprises at least a second (25, A-D) segment that is associated with a second allocated bandwidths; the method further comprising: calculating a first additional allocation bandwidth required for carrying the data stream over the first segment based on the first allocated bandwidth according to the bandwidth sharing definition; calculating a second additional allocation bandwidth required for carrying the data stream over the second segment based on the second allocated bandwidth according to the bandwidth sharing definition; selecting the first or second path in response to comparing the first additional allocation bandwidth to the second additional allocation bandwidth; and transporting the data stream (40, 48) over the selected path, wherein the sharing of bandwidths between the data stream and the allocated bandwidth over the at least one of the segments is established to protect one another against a failure in at least one of the segments or at least one of the nodes in the network. calculating a first additional allocation bandwidth required for carrying the data stream over the first segment based on the first allocated bandwidth according to the bandwidth sharing definition; calculating a second additional allocation bandwidth required for carrying the data stream over the second segment based on the second allocated bandwidth according to the bandwidth sharing definition; selecting the first or second path in response to comparing the first additional allocation bandwidth to the second additional allocation bandwidth; and transporting the data stream (40, 48) over the selected path, wherein the sharing of bandwidths between the data stream and the allocated bandwidth over the at least one of the segments is established to protect one another against a failure in at least one of the segments or at least one of the nodes in the network.