当前位置: 首页 > article >正文

TCP三次握手/四次握手-TCP/IP四层模型-SSL/TLS-HTTP-HTTPS

重要概念

seq ( Squence Number ) 序列号,用于数据排序、去重,防止数据包乱序

ack ( Acknowledgement Number ) 确认好,表示期望接受的下一个字节序号,用于确认数据包被对方接受

TCP三次握手是建立可靠连接的过程,确保客户端和服务器都能正常收发数据

第一次握手(SYN:Synchronize 同步的缩写)

SYN表示请求建立连接

从客户端向服务器发送 SYN=1,序列号seq=x ,客户端进入 SYN_SENT 状态

第二次握手(SYN+ACK:ACK是 Acknowledgement 确认的缩写)

ACK表示“收到了你发的数据”

从服务器端向客户端发送 SYN=1,ACK=1,序列号seq=y,ack=x+1 ,服务器进入 SYN_RCVD (received)状态

第三次握手(ACK)

从客户端向服务器端发送 ACK=1,seq=x+1,ack=y+1

双方进入 ESTABLISHED 状态,表示双方的连接已经成功建立了,可以进行数据传输了

三次握手的意义
  • 确认双方收发能力:验证客户端和服务器都能正常发送和接收数据
  • 防止历史连接:避免因网络延迟导致的重复连接
  • 同步序列号:建立可靠的数据传输基础

TCP四次握手是断开连接的过程,确保数据完整传输后安全关闭连接

第一次握手(FIN)

从客户端向服务器端发送 FIN=1(表示客户端主动关闭不再发送数据),seq=u

客户端进入 FIN_WAIT_1 状态

第二次握手(ACK)

从服务器端向客户端发送 ACK=1(表示收到关闭请求),seq=v,ack=u+1

服务器进入 CLOSE_WAIT 状态,客户端进入 FIN_WAIT_2 状态

第三次握手(FIN)

从服务器端向客户端发送 FIN=1 (服务器也准备关闭), ACK=1 ,ack=u+1

服务器进入LAST_ACK状态

第四次握手(ACK)

从客户端向服务器端发送 ACK=1(最后确认完成关闭)seq=u+1 ,ack=w+1

客户端进入 TIME_WAIT 状态,服务器进入 CLOSED 状态

为什么是四次而不是三次?
  • 半关闭状态:TCP连接是全双工的,需要分别关闭两个方向的数据流
  • 数据完整性:服务器可能还有数据要发送,需要时间处理
  • ACK和FIN分离:服务器的ACK和FIN可能不能同时发送

应用层      ←   HTTP、FTP、SMTP、DNS、HTTPS
传输层      ←   TCP、UDP、TLS/SSL
网络层      ←   IP、ICMP、ARP
链路层      ←   网卡驱动、以太网协议等

层级

名称

主要功能

举例

应用层

用户用的

定义通信内容与格式

HTTP、FTP、SMTP、DNS

传输层

快递员

控制数据传输的可靠性、完整性和顺序

TCP、UDP、TLS

网络层

地图

确定数据从哪儿到哪儿(IP地址)

IP、ICMP、ARP

链路层

路线

实际在网卡之间传输比特流

Ethernet、WiFi 等

SSL 是建立在 TCP 之上的安全协议,负责加密通信内容,而 TCP 负责可靠传输。

TCP是在传输层,SSL在传输层和应用层si

 ( 现在一般更新为 TLS)

HTTP 是一种应用层协议,全称为:

HyperText Transfer Protocol(超文本传输协议)

它定义了 浏览器与服务器之间如何传输网页数据,是万维网(WWW)中最核心的协议之一。


🧩 HTTP 是干什么的?

  • 📥 浏览网页

  • 📤 提交表单

  • 📸 加载图片、音频、视频

  • 🧾 请求 API 接口

简而言之:

浏览器和服务器之间“说话”的语言就是 HTTP。


🚧 HTTP 工作流程(简化):

每次你访问一个网页(如 http://example.com)时,背后其实发生了:

浏览器   →   请求数据(HTTP 请求)
服务器   →   响应数据(HTTP 响应)


📦 HTTP 请求结构:

包含 3 部分:

1. 请求行:    GET /index.html HTTP/1.1
2. 请求头:    Host, User-Agent, Cookie ...
3. 请求体:    (POST请求时的表单数据或JSON)


📦 HTTP 响应结构:

也分为 3 部分:

1. 状态行:    HTTP/1.1 200 OK
2. 响应头:    Content-Type, Set-Cookie, Content-Length ...
3. 响应体:    HTML 页面、JSON 数据等


✅ 常见 HTTP 方法(请求方式):

方法

含义

举例用途

GET

获取资源

浏览网页

POST

提交数据

登录、注册表单

PUT

更新资源

修改用户信息

DELETE

删除资源

删除账号


🚥 常见 HTTP 状态码:

状态码

含义

200

请求成功

301

永久重定向

404

资源未找到

500

服务器内部错误

403

禁止访问


❌ HTTP 的缺点:

  • 数据 明文传输(不安全)

  • 无法验证服务器身份

  • 易受中间人攻击(MITM)

所以后来出现了 HTTPS(加密版 HTTP) 👉 就是 HTTP + SSL/TLS


📌 小结:

协议

层级

是否加密

用途

HTTP

应用层

❌ 明文

浏览网页、接口通信

HTTPS

应用层

✅ 加密

安全地传网页数据

TCP

传输层

可靠传输数据

HTTPS = HTTP + SSL/TLS 的组合协议,用于实现 加密的网页通信

🔁 HTTPS 建立过程(简化图解):

  1. TCP 三次握手:建立连接

  2. TLS 握手:协商加密算法、密钥,验证服务器身份(SSL的核心)

  3. HTTP 数据加密传输:正式发送加密的 HTTP 请求/响应

http://www.lryc.cn/news/2396345.html

相关文章:

  • SAP Business One:无锡哲讯科技助力中小企业数字化转型的智慧之选
  • 【Ubuntu远程桌面】
  • ⚡ Linux 系统安装与配置 Vim 编辑器(包括 Vim 插件管理器)
  • 小型语言模型:为何“小”才是“大”?
  • 雪花算法:分布式ID生成的优雅解决方案
  • 针对PostgreSQL中pg_wal目录占用过大的系统性解决方案
  • git push Git远端意外挂断
  • python学习day34
  • 秋招Day12 - 计算机网络 - 网络综合
  • QT-JSON
  • IP 风险画像技术略解
  • 秋招Day12 - 计算机网络 - 基础
  • 【网络安全】——Modbus协议详解:工业通信的“通用语言”
  • MySQL 数据库备份与恢复利器:Percona XtraBackup 详解
  • 【GlobalMapper精品教程】095:如何获取无人机照片的拍摄方位角
  • 小提琴图绘制-Graph prism
  • 写作即是生活
  • 进阶知识:Selenium底层原理深度解析
  • 基于 Flickr30k-Entities 数据集 的 Phrase Localization
  • [GHCTF 2025]SQL???
  • 【科研绘图系列】R语言绘制GO term 富集分析图(enrichment barplot)
  • JavaScript 性能优化实战指南
  • 达梦数据库:同1台服务器如何启动不同版本的DMAP服务
  • Laravel单元测试使用示例
  • Kotlin委托机制使用方式和原理
  • 鸿蒙OSUniApp集成WebAssembly实现高性能计算:从入门到实践#三方框架 #Uniapp
  • 基于 HT for Web 轻量化 3D 数字孪生数据中心解决方案
  • 精英-探索双群协同优化(Elite-Exploration Dual Swarm Cooperative Optimization, EEDSCO)
  • 解决Ubuntu20.04上Qt串口通信 QSerialPort 打开失败的问题
  • 深入浅出:使用DeepSeek开发小程序的完整指南