【TCP的可靠性】
首先,需要知道网络的问题有哪些:
1、Modem有可能改变了数据的几个字节。——损坏。
2、某个路由器或许丢失了一两上信息包。——丢包。
3.1、系统或许收到了顺序错误的信息包。——乱序。
3.2、 个信息包或许收到了两次。——多包。
4、网络电缆被切断。——断网。
TCP通过以下手段来解决上述前3个问题。
1、损坏。每个信息包都包含一个校验码,这个校验码用来保证信息包在传输过程中没有被更改的代码。当信息包到达目的地时,接收方会对比校验码和收到的信息中的数据。如果校验码不对,信息包将被省略。
2、丢包。TCP要求接收方每收到一个信息包都反馈一下,如果接收方没有提供反馈,发送方地自动重发一次。TCP协议实现要求自动实现重发过程,直到对方接收为止。
3、乱序、重复。TCP对每一个序列包都会传送一个序号。接收方根据此序号把全部包合并。如果接收方收到一个已经接收了包,则会丢弃此包。