在上大学那会, 学习计算机网络的时候, 书上有个蓝军红军通信的例子, 表明任何通信都不能保证100%可靠, 确实如此。


       但是, 后来学了一个叫什么tcp的东西, 宣称自己提供可靠传输, 还在那里鄙视UDP的尽力而为传输, 我在想, tcp好牛逼啊, 居然能保证可靠传输。 后来, 又听人说, tcp是如何处理丢包的, 我就更纳闷了, tcp不是可靠吗? 怎么还会丢东西呢?

       其实, 别被tcp带到沟里, tcp提供的也仅仅是理论可靠的传输机制而已, 从机制上讲, tcp是可靠的。 所谓的丢包, 是一种网络行为, 与tcp无关, 但tcp机制可以重传丢掉的网络包, 起到了修正错误的目的, 把丢的包不回来。 所以, 丢包与tcp的所谓可靠性, 并不矛盾。

       tcp声称为可靠协议, 实际上呢?  在tcp包传输一半的时候, 突然断电, 还可靠个毛毛啊。 所以, tcp只提了机制上的理论可靠, 并非实际100%无错误。

        

       我觉得, 在学习任何东西的时候, 保持点自己的思考, 是很重要的。




本文转载:CSDN博客