《TCP/IP进行网际互连》
Chap 12. TCP可靠的流运输服务
* TCP之特性
面向流;虚电路;buffered;无结构;全双工
* 可靠性:
带重传的正面确认 positive acknowledgement with retransmission
滑动窗口
可变滑动窗口
* 流量
流量控制
拥塞congestion(仅指中间路由器的超载)
* 报文格式
源、目的端口
序号、确认序号
首部长度
代码bit(报文段的目的与内容)
窗口通告
紧急指针
选项
注:全双式允许一个方向上的报文段传递另一个方向上的确认信息
* 代码bit
URG紧急指针有效
ACK确认字段有效
PSH推操作
RST连接复位
SYN同步
FIN发送方字节流完成
* 确认、重传与超时
累积确认:接收方预期收到的下一个八位组序号
* 拥塞 congestion
原因:中间router因为过载(内存满等)而丢弃分组,此时通讯的端点并不知道哪里发生了拥塞,表现出来的现象就是重传增加,时延增加。
拥塞崩溃 congestion collapse:因为重转造成恶性循环
解决方案:慢开始、乘法减小
拥塞窗口:allowd-window=min(receiver-advertisement, congestion-window)
一般认为,分组丢失一般是由congestion导致的。
* 显式反馈 SACK、ECN
* 拥塞、尾部丢弃、全局同步
* 连接三次握手
双方协商初始序列号
* 复位
* 关闭连接
三次握手
* TCP状态机
* 强迫数据交互:push,如远程终端程序
* 糊涂窗口
TCP早期实现上的问题,表现为很小的滑动窗口及很小的payload,浪费大量网络带宽(1-1/41=40/41=98%)
TIP: 每个报文至少有40B的TCP/IP头,故一个只带1B的报文,payload只占传输量的1/41,效率很低。