概述
TCP报文结构段
TCP序号,确认号
TCP往返延时(RTT)和超时
可靠数据传输
TCP发送方简化版
TCP发送方事件
发送方伪代码
TCP重传
产生TCPACK的建议
快速重传
TCP流量控制
rwnd : 接收窗口
cwnd :拥塞窗口
swnd :发送窗口
连接管理
为什么两次握手不行
可能出现半连接与老的数据被当成新的数据接收了。
半连接:发送方的第一次连接建立请求被看作超时,然后又发了一次。随后终止连接,然后第二次的连接建立请求姗姗来迟,此时就建立了半连接,只在服务器端维护了连接!
老的数据被当成新的数据接收了:在建立半连接之后,在第一次连接期间发过来的数据姗姗来迟,服务器把这些过期的数据当作新的数据接收了。
TCP三次握手
三次握手解决:半连接和接收老数据的问题
TCP3次握手:FSM
TCP关闭连接(4次挥手)
因为tcp协议是一个全双工通信的,客户端向服务器申请关闭连接,服务器也要像客户端申请关闭连接。然后会启动一个定时器,如果这个定时器的范围内没有数据到来,这个连接就被关闭掉了。