传输控制协议(TCP)

传输控制协议是Internet一个重要的传输层协议。TCP提供面向连接、可靠、有序、字节流传输服务。

1、TCP报文段结构

注:TCP默认采用累积确认机制。

2、三次握手、四次挥手

(1)当客户向服务器发送完最后一个数据段后,发送一个FIN段(FIN=1,seq=u),请求断开客户到服务器的连接,其状态由ESTABLISHED进入FIN_WAIT_1,在这一状态下,只能接收服务器发送过来的数据,而不再发送数据。

(2)服务器收到客户的FIN段后,向客户发送一个ACK段(ACK=1,seq=V,ack_seq=u+1),服务器状态由ESTABLISHED进入CLOSE_WAIT,在这一状态下,服务器仍然可以发送数据,但不再接收数据。

(3)当客户收到ACK段后,其状态由FIN _WAIT_1进入FIN_WAIT_2,仍然可以接收来自服务器的数据,此时的TCP连接已经关闭了客户向服务器方向的数据传输。

(4)当服务器向客户发送完最后一个数据段后,服务器向客户发送FIN段(FIN=1,ACK=1,seq=w,ack_seq=u+1),服务器状态则由CLOSE_WAIT进入LAST_ACK,此时服务器也不再发送数据。

(5)当客户收到服务器发送的FIN段后,向服务器发送ACK段(ACK=1,seq=u+1,ack_seq=w+1),其状态由 FIN_WAIT_2进入TIME_WAIT,等待2MSL时间,然后进入CLOSED状态,最终关闭连接。

(6)服务器在收到最后一次ACK段后,状态由LAST_ACK进入CLOSED,最终关闭连接。

3、TCP拥塞控制

在慢启动阶段,每收到1个确认段,拥塞窗口增加1个MSS。通常RTT相对较大,在1个RTT时间之内可以将窗口允许的所有报文段全部发送出去,并且当忽略报文段传输时延时,在慢启动阶段,每经过1个RTT,拥塞窗口增长1倍。在拥塞避免阶段,将拥塞窗口内的所有报文段全部发送,且全部得到确认后,拥塞窗口才增加1个MSS。

注:慢启动阶段(收到一个ACK,拥塞窗口增加1MSS(假设同一个RTT内连续发送的分组都能发送完,且忽略不同分组ACK时延)):拥塞窗口初始值为1MSS,

经过1个RTT,拥塞窗口变为2MSS(1MSS+1MSS)

经过2个RTT,拥塞窗口变为4MSS(2MSS+2MSS)

经过3个RTT,拥塞窗口变为8MSS(4MSS+4MSS)

...

例1:

例2:

相关推荐
xlq223223 分钟前
30.进程池IPC
linux·运维·服务器
Predestination王瀞潞16 分钟前
5.2.1 通信->DNS域名系统协议标准(IETF RFC 1035):DNS(Domain Name System)
网络·网络协议·tcp/ip
nuomigege17 分钟前
beagleboneblack刷入官方IOT镜像后无法运行nodered问题的处理
linux·运维·服务器
帐篷Li44 分钟前
【AgenticCPS 】CPS联盟返利系统 - 实施计划
大数据·网络·人工智能
落叶花开又一年1 小时前
检验检测机构资质认定远程评审工作程序
linux·运维·服务器
wanhengidc1 小时前
《三国志异闻录》搬砖新游戏 云手机
运维·服务器·数据库·游戏·智能手机
Fly Wine1 小时前
IPsec 最简单场景总部和网关之间建立,并且流量不会全部经过总部
网络
旺仔.2912 小时前
僵死进程及Linux文件操作 详解
linux·运维·服务器
GOU922 小时前
5101实验
网络·macos
IpdataCloud3 小时前
直播打赏异常排查:大额打赏IP来自高风险地区?用IP查询定位触发人工审核
网络·tcp/ip·网络安全·ip