Reliable transfer protocol designed for a known static bottleneck size and high packet loss?

Solution 1:

The sending rate in TCP is controlled by the sender's congestion control algorithm. There are multiple congestion control algorithms developed for TCP. You should look at different options and try them in your use case.

Also, there are many tunable parameters in TCP, which can help in your situation.

For example, the BBR algorithm developed by Google might be the solution for your issue. You can read more details about it at Medium article.