概述
点对点,一个发送方一个接收方
可靠,按序的字节流
流水线机制,拥塞控制,流量控制机制,设置窗口大小,发送方接收方都缓存
面向连接,发送前双方都必须建立,连接状态只在连接两端维护,沿途设备不维护
tcp连接包括:两台主机上的缓存,连接状态变量,socket等
段结构
序列号和ack
可靠数据传输
rtt和超时设置
发送方事件
程序伪代码
重传示例
接收方事件
接收方主要如何是产生并回复ack,如下图:
快速重传
简单来说就是三个相同ack就重传:
流量控制
当rcvwindow=0时发送方仍发送小段,使接收方返回ack,从而获知可用窗口信息
tcp连接管理
sin与syn同样是特定标志位
拥塞控制
表现是:
分组丢失(路由缓存溢出)
分组延迟过大(在路由缓存中排队)
**与流量控制的区别:**可靠传输解决个体,拥塞控制解决集体,针对整个网络。
控制方法
tcp拥塞控制
基本原理
AIMD——加性增乘性减
逐步试探上限,当发生丢包时说明已拥塞,需要快速减小,如下图:
慢启动SS
连接刚开始时指数型增长,那这不是应该叫快启动嘛。
threshold
由慢启动到加性增何时切换呢,需要借助中间变量threshold。
loss事件处理
三个重复ack窗口直接减半
总结
tcp性能分析
丢包率过小,现实难以满足,可以设计新的tcp
多进程可争取更多tcp资源