Secenario Discussion: multipath transportation on industrial routers with 4G and 5G modems #2062
Replies: 3 comments
-
|
Picoquic sends packets when ask to "prepare a packet" in the API There are two parts in the scheduling of packets on multiple paths. First, instead of just choosing a connection in Not all frames can be sent on all paths. The path challenge and path response frames can only be sent on the path that they are testing. The acknowledgement frames are preferably sent on the shortest path. Some stream data frames can only be sent on the "affinity" path for the stream. This is implemented in the functions that package frames in packets, for example The goal of
In theory, if we have paths with different data rate, the congestion control will ensure that the round robin will be "weighted" according to the available bandwidth. But this is a complex algorithm, I have been making choices, those choices may not be the best for your specific application. I have had requests to produce an API and let developers and experimenters pick different algorithms, much like we can select different congestion algorithms today. Yours in just another such request. So, yes, adding an API to select a multipath scheduler would be useful. But of course, doing that will take time, and requires developing tests. If you want to help develop the API and the tests, that would be great. |
Beta Was this translation helpful? Give feedback.
-
|
Thanks for your patience and explainatin.Constrains you mentioned above I will to examize the source code carefully. Control frames such as Data frames I disscuess here mainly refers to user data through In method If we suppose to scheduler packets (frames may be much precise) into different paths, we should first classify frames into two category , one category should send obey the contraints, these paths are known and specific, and the other category here the issue discussed should be scheduler by scheduler. Any mistackes? |
Beta Was this translation helpful? Give feedback.
-
|
Converting this to a discussion. Yes, there are several frames that are not scheduled in the same way as data, but these frames are rare. Regarding packet loss correction, most of these packets correct the loss of a stream frame. The repeated stream frames are sent at the same priority as the stream. It might make sense to ensure that packets containing stream frames do not contain control frames, but that's a big change of code. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
My program mainly depends on quic multipath extension.
I read the source code methods such as
picoquic_prepare_next_packet_ex,picoquic_prepare_packet_ex,picoquic_handle_send_pathsandpicoquic_select_next_path_tupleIt seems when multipath works in round robin order as the comment saysMonths before I was testing my code in two 4G modems , two paths works round robin It's fine.
But when different path with different bandwith, 4G modem maybe 10-20Mbps, and 5G modem about 70-100Mbps, I want to give diffrent weight to diffrent path according to their bandwitdth.
picoquic_set_stream_path_affinitycan't help because I don't known how many packets a TCP 4 tuples will send, and don't known how may streams concurrent , So I can't divide streams into different path by number of streams.So is there any plan to support packet scheduler to decide which path to send. Or maybe I fork the source code and do some modifications in method
picoquic_select_next_path_tuple, will it affect some where else in the whole picoquic stack ? Can you give me some ideas or suggestions ?Beta Was this translation helpful? Give feedback.
All reactions