TCP 

名词解释: 
- Seq:序列(sequence)
 - Ack:应答信号(acknowledgment)
 - Sync:握手
 - PSH:推送数据
 - FIN:完成断开(挥手)
 
TCP数据包结构
建立连接:3次握手 
指令标识 
抓包结果

图解过程

解释
- 从Seq=0开始
 - 响应过程:本次Seq=上次Ack(没有就是0),本次Ack = 上次seq + 1
 
通俗表述 
- 快递员→你 : 有你的快递,请问在家吗?
 - 你→快递员:在家,送过来吧
 - 快递员→你:好的
 
连接中:数据传输 
抓包

图解过程

解释
- 从Seq=1,ack=1 开始
 - 响应过程:本次Seq=上次Ack,本次Ack = 上次seq + 上次Len
 
断开连接:4次挥手 
指令表述 
抓包

图解

解释
- 假设从Seq=1,Ack=1 开始(连接后未传送数据)
 - 响应过程:本次Seq=上次Ack,本次Ack = 上次Seq + 1(实际不管从Seq和ACK到多少也是遵从这个逻辑)
 
确认过程:都是Ack = 上次Seq + 1(如果是传送中就是+Len),Seq = 上次Ack
通俗表述 
- 男→女:我们分手吧?
 - 女→男:好,等下我把你以前的东西都找出来给你
 - 女→男:你的东西都给你了,再见
 - 男→女:再见
 
TCP 特点 
缺点:
- 对头阻塞
 - 客户端大量端口被占用:服务端最后的ack未给到客户端
 - 慢启动
 - 粘包
 
优点:
实时性好
滑动窗口,对头阻塞(可靠,能保证顺序)
- 通过窗口大小,进行拥塞控制
 
有发送和接收缓存区
粘包:(流量控制)
