TCP实现可靠数据传输的技术(自用)

  因特网的网络层服务(ip)服务是不可靠的,作为因特网两传输层的两匹“驮马”之一的TCP是如何实现可靠数据传输的呢?

一、可靠性传输协议

1,、首先介绍下ARQ(自动重传请求)协议,接收者收到报文,会回复肯定确认或否定确认,使发送方知道哪些内容被正确接收,哪些需要重复。

ARQ需要另外三种协议功能来处理存在比特差的情况:

(1).差错检测。

(2).接收方反馈。

(3).重传。

2、接收方发送方引入冗余数据分组,

3、倒计数定时器,每发一个分组就启动一个计时器。

二、流水线可靠数据传输协议

流水线技术大大提高信道利用率,不过也带来如下影响:

(1)、必须增加序号范围

(2)、双方要缓存多个分组

(3)、差错恢复:回退N步(GBN)、选择重传(SR)

三、超时间隔加倍

TCP每次重传都会将下一次超时间隔设为2倍。

四、快速重传

当收到3个冗余ACK后快速重传丢失的报文。

五、拥塞控制

发送方维护拥塞窗口(cwnd)

1、慢启动

开始设置MSS为1,每个RTT,MSS翻倍,检测到拥塞时,设置ssthrest=cwnd/2,当cwnd大于ssthrest时,每次增加1个MSS

2、拥塞避免

出现拥塞时(丢包或收到3个冗余ACK),设置ssthrest=cwnd/2,进入快速恢复状态

3、快速恢复

Tahoe(早期版本):回到慢启动状态,MSS设为1,设置ssthrest=cwnd/2

Reno:设为ssthrest。

 

posted @ 2017-04-24 20:59  爱吃土豆的男孩  阅读(683)  评论(0编辑  收藏  举报