While it's true that network protocols are neat challenging puzzles with nontrivial solutions, the hardest parts end up being the mundane: how does any given protocol change interoperate with all the existing implementations out there, especially changes to congestion control, and across the range of optional protocol features.
Uncertainties introduced by packet loss are actually pretty easy to work past.
Uncertainties introduced by packet loss are actually pretty easy to work past.