TCP相关知识(学习总结)
- TCP历史及设计哲学
- TCP解决了那些问题
- TCP报文格式
- 如果使用tcpdump分析网络报文
- 三次握手建立连接
- 三次握手过程中的状态变迁
- 三次握手中的性能优化与安全问题
- 数据传输与MSS分段
- 重传与确认
- RTO重传定时器的计算
- 滑动窗口 发送窗口与接收窗口
- 窗口额滑动与流量控制
- 操作系统缓冲与滑动窗口的关系
- 如何减少报文提高网络效率
- 拥塞控制(慢启动、拥塞避免、快速重传与快速恢复)
- SACK与选择重传算法
- 从丢包到测量驱动的拥塞制算法
- Google BBR拥塞控制算法原理
- 关闭连接过程优化
- 优化关闭连接时的TIME-WAIT状态
- keepalive、校验和及带我啊数据
- 面向字节流的TCP连接如果多路复用
- 四层负责均衡可以做可以
TCP历史及设计哲学
TCP/IP前身ARPA:NCP协议
TCP/IP协议发展
- 1973(TCP v1 包括IP功能的TCP协议RFC675)
- 1977 TCPv2
- 1978 TCPv3
- 1980 TCPv4(1981.9 RFC793 ) + IPv4
TCP解决了那些问题
TCP的作用
Http Request ----------------->>>>> Internet -------------->>>>>>>>> Http Server
TCP 协议的分层
TCP: 面向连接的、可靠的、基于字节流的传输通信协议
IP: 根据IP地址传网络传输数据
TCP传输路由
报文头部的层层组装与卸载
- 不可靠网络传输
网络设备
主机
物理链路
TCP协议特点
在IP协议之上、解决网络通讯可依赖问题
- 点对点(不能广播、多播)、面向连接
- 双向传递
- 字节流:打包成报文字段、保证有序接收、重复报文自动放弃
缺点: 不维护应用报文的边界(对比HTTP、GRPC)
优点: 不强制要求应用必须离散的创建数据块、不限制数据块大小 - 流量缓冲:解决速度不匹配问题
- 可靠的传输服务(保证可达、丢包时通过重发进而增加时延时可靠性)
- 拥塞控制
TCP报文格式
IP头部
UDP头部
TCP 协议的任务
- 主机内的进程寻址
- 创建、管理、终止连接
- 处理连接字节(8bit)流达成报文字段(如IP报文)
- 传输数据
- 保持可靠性与传输质量
- 流控后置与拥塞控制
TCP 四元组(原地址、源端口、目标地址、目标端口)
-
对于IPv4地址、单主机最大TCP连接书为2的(32+16+32+16)次方
-
没有连接ID: QUIC协议
TCP Segment报文段
TCP option
控制信息:
- 寻址
- 滑动窗口
- Flags
- 校验和
数据