资讯详情

TCP连接管理和拥塞控制

文章目录

  • 一、TCP基本概念
  • 二、TCP连接管理
    • 1.三次握手
    • 2.四次挥手
  • 三、TCP拥塞控制
    • 1.慢启动
    • 2.拥塞避免
    • 3.快速重传
    • 4.快速避免


一、TCP基本概念

TCP提供连接可靠的字节流服务。

每个TCP头部包含源和目的端口号,这两个值和IP头部的来源和目的IP每一个连接都是唯一标记在一起的。TCP一个术语IP地址和端口的组合通常被称为端点(endpoint)或套接字(socket)。

TCP头部长度以32位字为单位,仅限于60字节的头部,如果没有选项字段,大小为20字节。TCP头部8位字段的含义如下所示。

字段 含义
CWR 拥塞窗口减少(发送方降低其发送速率)
ECE ECN回显(发送方收到了较早的拥塞通知)
URG 紧急(紧急指针字段有效-很少使用)
ACK 确认(确认号字段有效-连接建立后一般为启动状态)
PSH 推送(接收方应尽快将这些数据传输给应用程序-未可靠实现或使用)
RST 重置连接(取消连接往往是因为错误)
SYN 同步序列号用于初始化连接
FIN 报文段的发送人已经结束向对方发送数据

二、TCP连接管理

TCP是面向连接的单播协议。TCP连接由一对端点或套接字组成,通常分为启动、数据传输和退出三个阶段。

1.三次握手

TCP建立连接需要三次握手。

SYN_SENT->SYN_RCVD->ESTABLISHED->ESTABLISHED 
  • 客户端发送SYN报文段指出了要连接的端口号及其客户端的初始序列号(ISN(s))。
  • 发送自己的服务端SYN报文段作为回应,包含其初始序列号,包含ISN(C)数值加1作为返回ACK数值。
  • 确认服务器SYN,客户端将ISN(s)加1后的数值作为返回ACK数值。

三次握手的目的是防止客户端发送连接请求延迟。此时,如果客户端已关闭,服务器端在收到连接请求后建立连接,并始终监控客户端的请求。因此,客户端需要发送另一个确认段。

2.四次挥手

TCP断开连接需要四次挥手。

FIN_WAIT_1->CLOSE_WAIT->FIN_WAIT_2 LAST_ACK->TIME_WAIT(2MSL)->CLOSED 
  • 连接的主动关闭者(通常是客户端)发送一个FIN接收者希望看到他们当前的序列号(K),FIN还包括一段ACK该段用于确认对方最近发送的数据。
  • 连接的被动关闭者(通常是服务器)将K值加1作为响应ACK值表明已成功收到主动关闭者的发送FIN。此时,被动关闭者将身份转换为主动关闭者并发送自己FIN。报文段序列号为L。
  • 为了完成连接的关闭,最终发送的报文段还包含一个ACK确认上一个FIN。如果出现FIN如果丢失,发送者将重新传输,直到收到一个ACK确认为止。

四次挥手的目的是,TCP是全双工连接,即客户端和服务端的连接是双向的,所以断开连接时需要断开两次。


三、TCP拥塞控制

拥塞控制是为了防止网络因大规模通信负载而瘫痪。其基本方法是减缓网络即将进入拥塞状态(或路由器因拥塞而丢失)TCP传输。

拥塞窗口(cwnd,Congestion Window)反映网络传输能力的实际(可用)窗口W是接收端通知窗口(awnd,Advised Window)和拥塞窗口cwnd的较小者。

W = min(cwnd, awnd) 

1.慢启动

在传输的初始阶段,由于网络传输能力不明,需要慢慢探测可用的传输资源,防止短时间内大量数据注入造成拥塞。

当数据传输开始或重传计时器检测到丢包时,需要慢慢启动。

慢启动的基本算法是cwnd = 1 SMSS例如,当接收到数据段时ACK后,通常cwnd将其添加到2,然后发送两个数据段。若再成功接收ACK,cwnd从2到4,从4到8,依次类推。拥挤的窗户会随之而来RTT(Round Trip Time)呈指数增长,直到增加到慢启动阈值ssthresh(Slow Start Threshold)。

注意:其中SMSS表示接收方MSS(Maximum Segment Size)和路径MTU(最大传输单元)两者中较小的。

2.拥塞避免

当拥塞窗口增加到缓慢启动阈值时,它将进入拥塞避免阶段,以获得更多的传输资源,而不影响其他连接传输。

避进入拥塞避免阶段时,拥塞窗口的基本算法是cwnd呈线性增长,即每次往返时间后,发送方的拥塞窗口cwnd数据段倍的情况下,近似增加了成功传输的数据段的大小,从而避免了拥

cwnd_t 1 =  cwnd_t   SMSS * SMSS / cwnd_t 

3.快速重传

快速重传主要用于丢包检测,以便更快地重传数据包,更早地调整拥塞状态机的状态,从而达到持续升窗的目的。

快速重传的基本算法是,TCP 至少观察发送端的重复阈值(dupthresh,Duplicate Threshhold)个重复 ACK 后(一般为3),即重传可能丢失的数据分组,而无需等待重传计时器超时。

4.快速避免

快速避免的基本算法是检测到丢包后,TCP会触发快速重传,进入降窗状态。在这种状态下,窗户被堵塞。cwnd通过快速恢复算法将其降低到合理值。

标签: 快速断开连接器160484l型连接器连接

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台