【lwip】12-一文解决TCP原理

目录

  • 前言
  • 12.1 TCP协议简介
  • 12.2 TCP相关的一些概念词
    • 12.2.1 MSL
    • 12.2.2 MSS
  • 12.3 TCP工作特性
    • 12.3.1 面向连接
    • 12.3.2 全双工通信
    • 12.3.3 可靠性
    • 12.3.4 缓冲机制
    • 12.3.5 拥塞控制
    • 12.3.6 基于字节流
    • 12.3.7 其它机制
  • 12.4 TCP报文
    • 12.4.1 TCP报文段封装
    • 12.4.2 TCP报文段格式
    • 12.4.3 TCP伪首部
    • 12.4.4 TCP选项字段
    • 12.4.5 选项格式
    • 12.4.6 wireshark报文分析
  • 12.5 TCP状态变迁图
  • 12.6 TCP连接与关闭
    • 12.6.1 三次握手
    • 12.6.2 四次挥手
    • 12.6.3 同时打开
    • 12.6.4 同时关闭
    • 12.6.5 半关闭
  • 12.7 窗口
    • 12.7.1 窗口大小通告
    • 12.7.2 拥塞窗口
    • 12.7.3 发送窗口
    • 12.7.4 接收窗口
    • 12.7.5 糊涂窗口综合症
      • 12.7.5.1 概念
      • 12.7.5.2 原因
      • 12.7.5.3 解决
  • 12.8 拥塞控制&一些可靠算法
    • 12.8.1 RTT和RTO计算
      • 12.8.1.1 RTT测量
      • 12.8.1.2 RTT估计器
      • 12.8.1.3 RTT方差
      • 12.8.1.4 RTO值计算
    • 12.8.2 慢启动
    • 12.8.3 拥塞避免
    • 12.8.4 拥塞发生
      • 12.8.4.1 超时重传
      • 12.8.4.2 快速重传
    • 12.8.5 快恢复
    • 12.8.6 Nagle算法
    • 12.8.7 延迟确认
  • 12.9 四个定时器
    • 12.9.1 重传定时器
    • 12.9.2 坚持定时器
    • 12.9.3 保活定时器
    • 12.9.4 2MSL定时器
  • 12.10 常用选项字段分析
    • 12.10.1 MSS
    • 12.10.2 SACK
    • 12.10.3 WSOPT
    • 12.10.4 TSOPT
    • 12.10.5 UTO
    • 12.10.6 TCP-AO
前言TCP的实现比UDP复杂很多 。
所以把原理篇和源码篇分开写 。
原文:https://www.cnblogs.com/lizhuming/p/16883586.html李柱明博客园:https://www.cnblogs.com/lizhuming/
12.1 TCP协议简介传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义 。
12.2 TCP相关的一些概念词12.2.1 MSLMSL :报文段最大生存时间,它是任何报文段被丢弃前在网络内的最长时间 。
  • RFC 793 [Postel 1981c] 指出MSL为2分钟 。现实中的常用值是30秒,1分钟,或2分钟 。
12.2.2 MSSMSS:Maximum Segment Size (MSS) Option
参考:RFC 1122, chap 4.2.2.6
【lwip】12-一文解决TCP原理

文章插图
12.3 TCP工作特性12.3.1 面向连接TCP是面向连接的传输层协议 。应用程序在使用TCP协议之前,必须先建立TCP连接 。在传送数据完毕后,必须释放已经建立的TCP连接 。
12.3.2 全双工通信在 TCP 连接建立后,那么两个主机就是对等的,任何一个主机都可以向另一个主机发送数据,数据是双向流通的,所以 TCP 协议是一个全双工的协议 。
12.3.3 可靠性TCP通过下列方式来提供可靠性: