- 填充字段是为了 当TCP不满足4字节的整数倍的时候,使用填充进行补齐
TCP连接管理
Round1
-
SYN=1 代表连接请求
-
seq = x(随机) 序列号 32位 四个字节 随机产生
-
确认号 无效 此刻 ACK = 0;
Round2
-
分配缓存 :发送方和接收方就需要准备两个缓存,发送和接收缓存
-
SYN=1 代表连接请求接受
-
seq = y(随机) 序列号 32位 四个字节 随机产生
-
确认位 有效 此刻 ACK = 1;确认号 ack = x+1;
Round3
- SYN = 0;
- ACK = 1;确认位
- seq = x+1;
- ack = y+1;期待序号
TCP可靠传输
- 网络层提供最大的可能努力交付,不可靠传输;
- 需要传输层的TCP提供可靠传输
- 但是如果传输层使用的是UDP的方式无法保障可靠传输,就需要应用层来保证可靠传输
- 将字节拼装成报文段 进行发送;报文段的大小取决于 MTU
- 一个字节占据一个序号
- 序号字段指的是 一个报文段第一个字节的序号
- 如图所示,[3,2,1]组装成一个报文段,那么其序号字段就是1
- 即使接收方 收到了[3,2,1]报文段,发送方不会很快的删除这个[3,2,1]报文段,因为考虑到TCP要求按序到达,直到发送方给接收方一个确认消息,才会删除[3,2,1]报文段
- 报文段首部确认字段是 4,也就是接收方想要得到的结果,也同时表明先前的报文段[3,2,1]已经被成功接收了
- 假设报文段[6,5,4]丢失,接收方得到了报文[8,7];接收方的确认机制,采用累计确认,只确认到数据流中到第一个丢失数据为止的字节,虽然收到7,8,但是4,5,6没有到,确认 报文段仍然写的是4,但是7和8接收,表明4,5,6未到,重新发送
- 确认和重传 密切使用
- 超时时间 太短和太长 都不好
TCP的流量控制
TCP 拥塞控制
- 拥塞控制是因为 多态主机将流量注入到网络中,导致数据出现堵塞
- 流量控制是端到端的一种方式,就是发送方和接收方数据协调
拥塞控制的四种算法
- 慢开始 和 拥塞避免 搭配使用
- 快重传 和 快恢复 搭配使用