问:socket中,在tcp协议层面,数据分为10个报文发放。1-7次很顺利,第8次丢失。这次通信一定失败吗,如果第8次数据会重发,那在接收端是不是:先读取到1-7次的数据,然后读取到8-10次的数据?还是9-10次的数据会先到达?

  1. 不一定会失败,因为第8次丢失可能会重发。
  2. 如果在传输层,报文的收到的顺序可能不是按照1-10的顺序。但如果在应用层接收数据包,那么这个顺序是可以保证的。