飞翔飞翔
主页
  • 计算机基础

    • TCP协议
  • 数据库

    • SQL教程
  • 工具

    • Markdown指南
  • Git

    • GitFlow
  • Quartz

    • Quartz教程
  • Java

    • Java设计模式
  • 缓存

    • Redis教程
联系
阿里云
主页
  • 计算机基础

    • TCP协议
  • 数据库

    • SQL教程
  • 工具

    • Markdown指南
  • Git

    • GitFlow
  • Quartz

    • Quartz教程
  • Java

    • Java设计模式
  • 缓存

    • Redis教程
联系
阿里云
  • TCP协议

    • TCP 简介与分层模型
    • TCP 连接管理
    • TCP 可靠传输机制
    • TCP 粘包与拆包
    • TCP 拥塞控制
    • TCP 头部字段详解
    • TCP 与 UDP 对比
    • TCP Socket 编程实践
    • TCP 抓包实战
    • TCP 安全与面试综合题

TCP 简介与分层模型

本系列基于 RFC 9293(TCP 协议规范)编写,面向网络初学者,由浅入深讲解 TCP 协议的核心概念。


1. 什么是 TCP?

TCP(Transmission Control Protocol,传输控制协议) 是互联网中最核心的协议之一。它工作在传输层,为应用层提供可靠的、面向连接的、基于字节流的数据传输服务。

通俗地说:当你用浏览器打开网页、用微信发消息、用 FTP 传文件的时候,底层大概率跑着 TCP。TCP 的核心承诺是——"你给我的数据,我一定完整、有序、正确地交到对方手上"。

TCP 的核心特征

特征说明
面向连接通信前必须建立连接(三次握手),结束后释放(四次挥手)
可靠传输通过序列号、确认应答、重传机制保证数据不丢不错不重
全双工双方可以同时收发数据
字节流不保留消息边界,数据是连续的字节流
流量控制防止发送方淹没接收方(滑动窗口)
拥塞控制防止过多数据注入导致网络拥堵

2. 分层模型:TCP 在哪里?

2.1 TCP/IP 四层模型

互联网实际使用的是 TCP/IP 协议族,分为四层:

┌─────────────────────────────┐
│     应用层 (Application)     │  HTTP, FTP, SMTP, DNS, SSH...
├─────────────────────────────┤
│     传输层 (Transport)       │  TCP, UDP
├─────────────────────────────┤
│     网络层 (Internet)        │  IP, ICMP, ARP
├─────────────────────────────┤
│  网络接口层 (Network Access)  │  以太网, Wi-Fi, PPP...
└─────────────────────────────┘

TCP 位于传输层,承上启下:

  • 向下:依赖 IP 层提供的主机到主机的数据报传输(但 IP 不可靠,可能丢包、乱序)
  • 向上:为应用层提供可靠的数据流传输

2.2 OSI 七层参考模型

OSI 七层模型是理论参考模型,TCP 大致对应 第 4 层(传输层):

OSI 层名称TCP/IP 对应
第 7 层应用层应用层
第 6 层表示层应用层
第 5 层会话层应用层
第 4 层传输层传输层(TCP 在这里)
第 3 层网络层网络层
第 2 层数据链路层网络接口层
第 1 层物理层网络接口层

3. TCP 的工作原理概览

3.1 连接标识:套接字对

一个 TCP 连接由四个要素唯一标识:

{源IP, 源端口, 目的IP, 目的端口}

例如你的浏览器(192.168.1.5:54321)连接百度服务器(110.242.68.66:443),这四元组在整个互联网中唯一定位了这个连接。

3.2 TCP 段的封装路径

应用数据在发送前经历多层封装:

应用数据
   ↓  TCP 头部(源端口/目的端口/序列号/确认号/标志位...)
TCP 段
   ↓  IP 头部(源IP/目的IP...)
IP 数据报
   ↓  以太网头部 + 尾部
以太网帧

接收方逐层解封装,最终将原始数据交给应用。

3.3 数据编号与确认

TCP 为每个发送的字节分配一个序列号(0 到 2^32-1)。接收方通过确认号告知发送方"我已经收到前 N 个字节,请从第 N+1 个开始发"。


4. TCP 的应用场景

应用协议为什么用 TCP
Web 浏览HTTP/HTTPS页面内容必须完整无缺
电子邮件SMTP/POP3/IMAP邮件内容不能丢
文件传输FTP/SFTP文件必须完整
远程登录SSH命令不能丢不能乱
数据库MySQL/PostgreSQL查询结果必须可靠

5. 小结

TCP 是互联网传输层的基石。它通过序列号确认、窗口流量控制、拥塞控制算法,在不可靠的 IP 网络之上构建了一套可靠的传输服务。后续篇章将逐一深入每个核心机制。


本篇要点

  • TCP 工作在 TCP/IP 四层模型的传输层,OSI 七层模型中对应第 4 层
  • TCP 的核心特征:面向连接、可靠传输、全双工、面向字节流、流量控制、拥塞控制
  • IP 负责主机到主机的不可靠数据报传输,TCP 在 IP 之上构建可靠的端到端传输
  • 一个 TCP 连接由四元组唯一标识:{源IP, 源端口, 目的IP, 目的端口}
  • TCP 面向字节流,不保留消息边界,应用层需自行处理粘包/拆包问题
下一页
TCP 连接管理