应用层之网络应用模型,HTTP/HTTPS协议

embedded/2025/3/17 17:26:40/
http://www.w3.org/2000/svg" style="display: none;">

应用层是网络协议栈的最顶层,直接为应用程序提供通信服务,定义了不同主机间应用进程交互的规则,包括报文类型、语法、语义及通信时序

一、网络应用模型

1.定义及特点

模型定义核心特点典型应用场景
C/S客户端向服务器发起请求,服务器集中处理并响应资源,依赖中心化架构1. 角色明确(客户端与服务器分离)2. 资源集中在服务器端 3. 依赖网络稳定性与服务器性能 4. 易于管理和维护Web服务(HTTP)、邮件系统(SMTP)、数据库管理、在线支付
P2P节点间直接通信,无中心服务器,每个节点既是客户端又是服务器1. 去中心化,节点对等 2. 资源共享与分布式存储 3. 高扩展性与容错性 4. 依赖节点贡献资源文件共享(BitTorrent)、流媒体(PPLive)、区块链(比特币)、即时通信(Skype)
  1. 架构与通信方式
  • C/S架构
    • 分层结构:客户端仅负责请求与展示,服务器处理逻辑与数据存储。
    • 通信流程:单向请求-响应模式,客户端通过TCP/IP协议连接服务器端口(如HTTP的80端口)
    • 局限性:单点故障风险(服务器宕机导致服务中断);扩展需依赖负载均衡或集群技术 。
  • P2P架构
    • 覆盖网络(Overlay):
      覆盖网络是P2P架构的逻辑核心,通过在物理网络(Underlay)之上构建虚拟拓扑结构,实现节点的自组织与资源定位。其核心形式包括:
      1. 结构化覆盖网络

        • DHT(分布式哈希表): 将资源标识(哈希值)与节点逻辑地址绑定,通过一致性哈希算法(如SHA-3)将资源均匀分布到网络中。例如,Chord协议将节点和资源ID映射到环形拓扑中,每个节点维护一个Finger表(记录距离指数级递增的邻居),实现O(log N)复杂度的资源定位。应用场景 :以太坊节点发现(基于Kademlia DHT)、BitTorrent无Tracker种子分发
        • Chord原理: 节点通过查询Finger表中的“最近但不超过目标ID”的节点,逐步逼近目标资源(如资源ID=54的查找路径:N8→N42→N51→N56)
      2. 非结构化覆盖网络:

        • 泛洪广播机制:节点随机连接邻居,通过TTL(生存时间)和跳数控制查询范围。例如,Gnutella节点收到查询请求后广播至所有邻居,直到找到匹配资源或TTL耗尽。
        • 超级节点优化: 引入高带宽节点作为超级节点(如KaZaA),缓存热门资源索引,减少广播开销
    • 通信流程
      P2P通信通过直接节点交互实现高效分发,典型案例如BitTorrent:
      1. 资源分片与分发逻辑
        • 种子文件(.torrent): 包含文件元数据(分片哈希、Tracker/DHT信息)。种子文件通过哈希校验(如SHA-1)确保数据完整性。
        • 分片交换(Piece Exchange): 节点并行下载不同分片,同时为其他节点上传已下载分片。下载优先级策略(如“最稀缺优先”)优化全局分发效率。
      2. 传输优化技术
        • 并行连接: 单个节点同时与多个Peer建立TCP/UDP连接(如BitTorrent客户端默认连接50个Peer)。
        • 本地Peer交换(PEX): 节点交换已知Peer列表,加速资源定位(如Transmission客户端支持PEX)。
        • WebTorrent扩展: 基于WebRTC实现浏览器内P2P传输,兼容传统BitTorrent协议。
    • . 穿透技术
      P2P节点常位于私有网络(NAT后),需NAT穿透(如STUN/TURN协议)解决私有网络节点连接问题.
  1. 优缺点
模型优点缺点
C/S- 集中管理,安全性高(如权限控制)- 数据一致性易维护- 适合复杂业务逻辑处理- 服务器压力大,扩展成本高- 单点故障风险- 客户端依赖服务器响应速度
P2P- 高扩展性(节点越多性能越优)- 容错性强(部分节点故障不影响整体)- 节省服务器成本- 管理复杂(节点自治性强)- 安全性挑战(如DDoS攻击、版权问题)- 依赖节点资源贡献(可能“搭便车”现象)

二、HTTP/HTTPS

一、核心定义与特点

特性HTTPHTTPS
基础定义基于TCP/IP的无状态协议,用于客户端与服务器间明文传输超文本资源(如HTML、图片)HTTP的安全扩展,通过SSL/TLS加密层实现数据加密传输及身份认证
默认端口80443
数据传输方式明文(未加密),易被中间人窃听或篡改加密传输(结合对称加密与非对称加密),防止数据泄露
身份验证无验证机制,服务器身份无法保证需CA签发数字证书验证服务器身份,防止钓鱼攻击
性能开销低(无加密流程)较高(TLS握手延迟),但现代优化技术(如TLS 1.3)显著降低影响
安全性保障无完整性校验与防篡改机制通过消息认证码(MAC)和数字签名确保数据完整性

二、HTTPS安全机制

  1. 加密技术
    • 非对称加密(RSA/ECC):用于握手阶段交换密钥。客户端用服务器公钥加密随机生成的对称密钥(预主密钥),服务器用私钥解密
    • 对称加密(AES):后续数据传输使用共享的对称密钥加密(对数据加密),效率高且适合大数据量.
  2. 身份验证与数字证书:
    • 数字证书作用:验证服务器身份,防止中间人攻击。证书包含公钥、域名、颁发机构(CA)及签名
    • 证书验证流程
      a. 客户端检查证书有效期、颁发机构可信度。
      b. 验证证书链(根证书→中间证书→服务器证书)。
      c. 检查域名匹配性(如访问www.example.com的证书需包含该域名)
  3. 完整性保护:
    消息认证码(MAC):通过HMAC算法生成校验值,确保数据未被篡改。

三、 HTTPS握手流程与通信流程

https://i-blog.csdnimg.cn/direct/df9e9d5cab8e444687653e7ca1999580.png" alt="在这里插入图片描述" />

一、HTTP握手阶段(TCP三次握手)

三次握手确保双方具备双向通信能力,为后续HTTP/TLS数据传输提供可靠通道。

  1. SYN(客户端 → 服务器)

    • 客户端发送带有初始序列号的SYN包(如Seq=100),发起连接请求。
    • 作用:告知服务器客户端准备通信,并同步初始序列号。
  2. SYN + ACK(服务器 → 客户端)

    • 服务器响应SYN包,返回SYN+ACK包(Seq=300,ACK=101)。

    • 作用 :

      • 确认客户端的SYN(ACK=101表示已收到Seq=100);
      • 发送服务器自身的初始序列号(Seq=300)。
  3. ACK(客户端 → 服务器)

    • 客户端回复ACK包(Seq=101,ACK=301),确认服务器响应。
    • 作用:双方确认序列号同步,TCP连接正式建立。
二、TLS握手阶段(加密参数协商与密钥交换)

协商加密算法、验证身份、生成会话密钥,建立安全通信通道。

  1. ClientHello(客户端 → 服务器)
    • 发送支持的TLS版本(如TLS 1.3)、加密套件列表(如AES-GCM)、随机数(Client Random)。
    • 作用:告知服务器客户端支持的加密能力。
  2. ServerHello(服务器 → 客户端)
    • 返回选定的TLS版本加密套件(如ECDHE-RSA-AES128-GCM)、随机数(Server Random)。
    • 作用:确定双方使用的加密参数。
  3. Certificate(服务器 → 客户端)
    • 发送服务器的数字证书(含公钥),由CA签发。
    • 作用:客户端验证服务器身份(防止中间人攻击)。
  4. ServerHelloDone(服务器 → 客户端)
    • 通知客户端服务器参数发送完毕,等待客户端响应。
  5. ClientKeyExchange(客户端 → 服务器)
    • 客户端生成预主密钥(Pre-Master Secret),用服务器公钥加密后发送。
    • 作用:结合Client Random和Server Random生成主密钥(Master Secret),用于派生会话密钥。
  6. ChangeCipherSpec(客户端 → 服务器)
    • 客户端通知服务器:后续消息将使用协商的加密套件和密钥加密。
  7. Finished(客户端 → 服务器)
    • 发送加密的验证消息,确保握手过程未被篡改。
  8. ChangeCipherSpec(服务器 → 客户端)
    • 服务器确认切换到加密通信模式。
  9. Finished(服务器 → 客户端)
    • 服务器发送加密验证消息,双方确认握手完成。

TLS握手通过非对称加密交换密钥 + 对称加密传输数据,实现以下安全目标:

  • 机密性:数据加密传输(如AES-GCM);
  • 完整性:HMAC校验防篡改;
  • 身份认证:CA证书验证服务器身份。

http://www.ppmy.cn/embedded/173386.html

相关文章

工厂变电所运维云平台解决方案-直击运维痛点,重塑高效安全运维典范

1、概述 变电所运维云平台可以看做是电力监控系统的网络应用延伸,变电所运维云平台通过互联网,电力运维人员通过手机可以随时随地了解工厂配电系统的运行情况,做到无人值守或者少人值守,同时可以监测用能状况、漏电、线缆异常发热…

[特殊字符] 深度实战:Android 13 系统定制之 Recovery 模式瘦身指南

🌟 核心需求 在 Android 13 商显设备开发中,需精简 Recovery 模式的菜单选项(如Reboot to bootloader/Enter rescue),但直接修改g_menu_actions后在User 版本出现黑屏卡死问题,需综合方案解决。 &#x1f5…

OpenCV(应用) —— 凸包检测的实战应用

文章目录 一、凸包的概念二、Opencv中的API三、应用场景与实战3.1、实战场景一一、凸包的概念 常见的找寻目标的外轮廓有矩形框(如最小外接矩阵)和圆形框,但这种包围框为了保持几何形状,与图形的真实轮廓贴合度较差。如果能找出图形最外层的端点,将这些端点连接起来,就可…

【蓝桥杯每日一题】3.16

🏝️专栏: 【蓝桥杯备篇】 🌅主页: f狐o狸x 目录 3.9 高精度算法 一、高精度加法 题目链接: 题目描述: 解题思路: 解题代码: 二、高精度减法 题目链接: 题目描述&…

python爬虫碰到IP被封的情况,如何解决?

在数据抓取和爬虫开发的实践中,Python作为一种功能强大且易于上手的编程语言,被广泛应用于网络数据的采集。然而,随着网络环境的日益复杂,爬虫活动也面临着越来越多的挑战,其中IP被封便是常见且棘手的问题。IP被封不仅…

python 基于混合式推荐算法的学术论文投稿系统

基于混合式推荐算法的学术论文投稿系统是一个结合多种推荐技术(如基于内容的推荐、协同过滤、知识图谱等)来为研究者推荐合适期刊或会议投稿的系统。以下是实现该系统的关键步骤和Python代码示例。 系统设计思路 1. 数据收集与预处理: - 收…

奇安信面试题

《网安面试指南》https://mp.weixin.qq.com/s/RIVYDmxI9g_TgGrpbdDKtA?token1860256701&langzh_CN 5000篇网安资料库https://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247486065&idx2&snb30ade8200e842743339d428f414475e&chksmc0e4732df793fa3bf39…

基于Redis+AOP+Lua脚本实现一个服务器限流机制

后端某些接口在高并发的压力下往往会导致性能的严重下降,为了维持我们后端服务型的高性能和高可用,我们往往可以对某些接口或某些用户去设计限流机制,控制这些热点接口的访问量,我这里利用Redis的高性能优势,并整合AOP…