王道计算机网络 TCP协议

487 阅读2分钟

  • 填充字段是为了 当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 拥塞控制

  • 拥塞控制是因为 多态主机将流量注入到网络中,导致数据出现堵塞
  • 流量控制是端到端的一种方式,就是发送方和接收方数据协调

拥塞控制的四种算法

  • 慢开始 和 拥塞避免 搭配使用
  • 快重传 和 快恢复 搭配使用