TCP协议可靠传输:
1.面向连接:
2.确认应答机制:对每一条数据,对发送方进行确认回复,告诉发送方我已经接受的到了哪些数据,下一次你从哪里开始发
3.超时重传机制:发送数据后等待一段时间(200ms)若是没有收到回复就认为数据丢失(这也可能是ACK丢失),进行重传,这会导致接受端有大量重复数据,这时接收端就要利用序列号去重。
序号+确认号:保证数据有序的向应用层交付
最理想的是找到一个最小的时间,保证确认应答(ACK)能够在这个时间里返回,这个时间随着网络环境的不同,是有差异的。超时时间太长会影响重传效率,超时时间太短会导致频繁发送重复的包
**4.滑动窗口机制:**如果数据一条一条的发送,在每一次发送后都需要等待接收方的应答后才能进行下一条数据的发送,一发一收的方式性能很低。引入滑动窗口,一次发送多条数据(将多个段的等待时间重叠在一起),可以大大提高性能
窗口的大小:⽆需等待确认应答⽽可以分送数据的最大值,上图窗口大小就是4000
发送前四个段时,不需要等待ACK回复,前四个段发送完毕后,接收到第一个ACK回复,滑动窗口向后移动,继续发送第五