您的位置:首页 > 理论基础 > 计算机网络

TCP - 可靠传输,流量控制,拥塞控制

2017-08-03 00:40 609 查看
TCP可靠传输

采用以下4种机制:

1.字节编号机制。

2.数据段确认机制。

TCP可一次连续发送多个数据段;
仅对连续接收的数据段进行确认;
不连续序号数据将先缓存。

3.超时重传机制。

超时重传计时器:RTT

超时重发的时间间隔:RTO

注意:只要数据段被重发了,就不采用其往返时间作为计算SRTT和RTO的样本。

4.选择性确认。

发送端通过识别接收端返回到确认数据段中的SACK扩展选项就可以得知接收端已收到了哪些不连续序号的数据段,这样发送端就可以不再发送这些数据段,而只发送已丢失的数据段(发送端已发送,且在重传定时器超时后接收端依然没有收到数据段)。

TCP流量控制

1.TCP流量控制是基于通信双方的数据发送和接收速率匹配方面考虑的,其最终目的就是不要让数据发送的太快,以便接收端能够来得及接收,是一个链路两端的点对点的行为。

2.TCP流量控制采用滑动窗口机制。

3.通信双方分别有一个发送窗口和接收窗口,其窗口大小又分为物理窗口大小和可用窗口大小,对于一台具体的主机来说,物理窗口大小值是固定的,要视对应主机所配置的缓存大小而定。

4.TCP中引入持续计时器,在TCP连接的一端收到对端的一个窗口大小为0的数据段时。启动该定时器,在这个定时器到期后,收到这个窗口大小字段值为0的数据段的一端将会向对端发送一个非常小的探测数据段(一般仅携带1字节的数据),这时,对端在收到这个探测数据段后会返回一个确认数据段。如果在确认字段中窗口大小依然为0,则发送端重启上面的定时器。

5.基于传输效率有Nagle算法和Clark算法。

Nagle:如果数据每次以1字节的方式进入到发送端,则发送端只是发送第一个字节,然后其余的字节先缓存起来,直到发送出去的那个字节被确认为止。然后将所有缓存起来的数据放在一个TCP数据段中发送出去,随后继续开始缓存后续字节,直到全部发送出去的字节全部确认为止。该算法还规定当到达的数据已达到发送窗口大小的一半或者已达到数据段的最大长度时,也要发送出去。

Clark:禁止接收端发送窗口大小字段值1的数据段,即让接收端继续等待一段时间,使得接收端的接收窗口有足够的空间可以容纳一个最大数据长度的数据,或者它的缓存空间一半已空时才发送确认数据段。

TCP拥塞控制

1.拥塞控制则是基于网络中各段链路的带宽和中间设备数据处理能力方面而考虑的,不要使网络中出现数据传输阻塞,也就是不要让发送端发送的数据大于接收数据处理能力。

2.拥塞控制主要是依靠TCP连接双向商定的协议来减少数据的发送而实现的。

3.TCP拥塞控制方案:

慢启动:基本思想就是在TCP连接正式传输数据时,每次可发送的数据大小是逐渐增大的,也就是先发送一些小字节的试探性数据,在收到这些数据段的确认后再慢慢增加发送的数据量,直到达到了某个原先设定的极限值为止。

拥塞避免

快速重传:当接收端收到一个不是按序列到达的数据段时,TCP实体迅速发送一个重复ACK数据段,而不用等到有数据需要发送时顺带发送确认,在重复收到三个重复ACK数据段后,即认为对应确认号字段的数据段已经丢失,TCP不等重传定时器超时就重传看来已经丢失的数据段。

快速恢复
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: