概述

image.png

TCP报文结构段

image.png

TCP序号,确认号

image.png
image.png

TCP往返延时(RTT)和超时

image.png
image.png
image.png

可靠数据传输

image.png
第二种重传称为快速重传

TCP发送方简化版

image.png

TCP发送方事件

image.png

发送方伪代码

image.png

TCP重传

image.png
image.png

产生TCPACK的建议

image.png

快速重传

image.png
image.png
image.png

TCP流量控制

image.png
rwnd : 接收窗口
cwnd :拥塞窗口
swnd :发送窗口
image.png
image.png

连接管理

image.png

为什么两次握手不行

image.png
可能出现半连接与老的数据被当成新的数据接收了。
半连接:发送方的第一次连接建立请求被看作超时,然后又发了一次。随后终止连接,然后第二次的连接建立请求姗姗来迟,此时就建立了半连接,只在服务器端维护了连接!
老的数据被当成新的数据接收了:在建立半连接之后,在第一次连接期间发过来的数据姗姗来迟,服务器把这些过期的数据当作新的数据接收了。
image.png

TCP三次握手

image.png

三次握手解决:半连接和接收老数据的问题

image.png

TCP3次握手:FSM

image.png

TCP关闭连接(4次挥手)

因为tcp协议是一个全双工通信的,客户端向服务器申请关闭连接,服务器也要像客户端申请关闭连接。然后会启动一个定时器,如果这个定时器的范围内没有数据到来,这个连接就被关闭掉了。
image.png
image.png