工做原理: ide
接收端收到发送端的数据段后,会返回一个数据段的确认报文,发送端收到接收端的确认报文以后,继续发送下一个数据段,如此重复。spa
假设每一个数段的长度都是500字节blog
Seq(序列号)=Mit
Client A发送:class
数据段N:M+499(0-499表示500字节)原理
数据段N+1:M+499+500=M+999bfc
数据段N+2:M+999+500=M+1499im
Server B确认;数据
确认号M+1500 (表示前面M+1499的段都收到了,如今从M+1500开始发送)img
Client A发送:
数据段N+3:M+1499+500=M+1999
数据段N+4:M+1999+500=M+2499
数据段N+5: M+2499+500=M+2999
Server B确认:
确认号M+2500 (假如数据段N+5丢失了,先在从M+2500开始发送)
Client B发送:
Client A收到Server B确认包时,从M+2500开始发送,
那么Client A就知道数据段N+5在传输过程当中弄丢了,那么就会重传
数据段N+5:M+2499+500=M+2999
数据段N+6:M+2999+500=M+3499
数据段N+7:M+3499+500=M+3999