tcp是可靠连接,你怎么理解“可靠”两个字? 补充回答。 答案是肯定的,但可能只能读取一部分,这要取决于丢失的包所在的位置。 具体来说,tcp向上层提供的数据肯定是按顺序排好的。比如一共有1 2 3 4 5五个包,假设前3个包的大小可以填满tcp的缓冲区,那么如果第4个包丢失,这时候并不会影响应用层接收前三个包。而如果是前三个包里面发生丢失,即使4 5都正常接收也不行,因为前面还有包没有收到,这时候tcp是不会向上层提供数据的。 这里面的关键是要了解tcp缓冲区,以及tcp所提供的顺序保证(这也是可靠性的一个方面)机制。
tcp是可靠连接,你怎么理解“可靠”两个字?
补充回答。
答案是肯定的,但可能只能读取一部分,这要取决于丢失的包所在的位置。
具体来说,tcp向上层提供的数据肯定是按顺序排好的。比如一共有1 2 3 4 5五个包,假设前3个包的大小可以填满tcp的缓冲区,那么如果第4个包丢失,这时候并不会影响应用层接收前三个包。而如果是前三个包里面发生丢失,即使4 5都正常接收也不行,因为前面还有包没有收到,这时候tcp是不会向上层提供数据的。
这里面的关键是要了解tcp缓冲区,以及tcp所提供的顺序保证(这也是可靠性的一个方面)机制。