Why is TCP MSL so long? [closed]

The original 2 minute number was most likely picked as a number they considered to be impossibly long. RFC 793 (under the heading "Knowing when to keep quiet") specifically says that they may change that time length "if experience indicates it is desirable to do so" and labels it as "an engineering choice".

In engineering, you frequently face problems with multiple solutions, when there is no clear best solution. In these cases, the engineer picks an arbitrary solution, based on intuition, experience, familiarity, mood, and maybe even randomness. If there are multiple good options, but some have a chance of being safer, that might also influence the solution. This is what it means to be an engineering choice. (Cost is not in this list, because if a solution has a lower cost, then it would be clearly better and selected on purpose, rather than arbitrarily.) A very typical engineering choice would be, if parameter X needs to be at least Y for things to not break, then set X to Y+20%. A computer scientist might pick Y+1, and the two would probably be mutually horrified by the other's choice.

You have to realize that a lot of the early internet protocols were all experimental, where not only were there multiple possible solutions, but it wasn't clear what was best or if there was a best. In this case, they chose a number they probably considered "safe" as it was impossibly long (and thus would never happen), and clearly intended to tweak that number to something more realistic in the future.

Would it be possible for a segment to be stuck for that long? They didn't know, but they wanted to make sure it worked anyway. How could this happen? Lower bandwidth and higher latency communication paths from long ago? 300 baud modems? Huge amounts of buffering? Packets from mars? Or maybe some other unforeseen possibility. Presumably, none of those have turned up or their possibility has otherwise been eliminated, so we've tweaked the number down.