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

深入解析五大通信协议:TCP、UDP、HTTP_HTTPS、WebSocket与GRPC

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
持续学习,不断总结,共同进步,为了踏实,做好当下事儿~
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

在这里插入图片描述

💖The Start💖点点关注,收藏不迷路💖

📒文章目录

  • 常见通信协议详解:TCP、UDP、HTTP/HTTPS、WebSocket 与 GRPC
    • 1. 网络通信基础
      • 1.1 协议分层模型(OSI与TCP/IP)
      • 1.2 通信协议的核心要素
    • 2. 传输层协议:TCP与UDP
      • 2.1 TCP(传输控制协议)
        • 2.1.1 核心特性
        • 2.1.2 关键机制
        • 2.1.3 适用场景
      • 2.2 UDP(用户数据报协议)
        • 2.2.1 核心特性
        • 2.2.2 典型应用
      • 2.3 TCP与UDP对比
    • 3. 应用层协议:HTTP/HTTPS
      • 3.1 HTTP(超文本传输协议)
        • 3.1.1 协议演进
        • 3.1.2 请求/响应模型
      • 3.2 HTTPS(安全HTTP)
        • 3.2.1 加密基础
        • 3.2.2 TLS握手流程
    • 4. 实时通信协议:WebSocket
      • 4.1 设计目标与特点
      • 4.2 协议细节
      • 4.3 应用场景
    • 5. 高性能RPC框架:gRPC
      • 5.1 核心架构
      • 5.2 通信模式
      • 5.3 优势与局限
    • 6. 协议对比与选型指南
      • 6.1 五维对比表
      • 6.2 选型建议
    • 7. 总结


外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

常见通信协议详解:TCP、UDP、HTTP/HTTPS、WebSocket 与 GRPC

1. 网络通信基础

1.1 协议分层模型(OSI与TCP/IP)

  • OSI七层模型:物理层→数据链路层→网络层→传输层→会话层→表示层→应用层
  • TCP/IP四层模型:网络接口层→网际层→传输层→应用层
  • 核心功能对照
    • 物理层(比特流传输)
    • 网络层(IP寻址路由,如IPv4/IPv6)
    • 传输层(端到端通信,如TCP/UDP)
    • 应用层(HTTP/FTP等)

1.2 通信协议的核心要素

  • 数据格式
    TCP报文示例:
    [源端口|目标端口|序列号|确认号|标志位|窗口大小|校验和|数据]
    
  • 连接管理
    • TCP三次握手建立连接
    • Keep-Alive机制维持长连接
  • 错误控制:CRC校验、TCP重传

2. 传输层协议:TCP与UDP

2.1 TCP(传输控制协议)

2.1.1 核心特性
  • 可靠传输:通过ACK确认和重传机制保障数据完整
  • 流量控制:动态调整窗口大小(滑动窗口协议)
  • 拥塞控制:慢启动→拥塞避免→快速恢复
2.1.2 关键机制
  • 三次握手
    客户端 → SYN=1, seq=x → 服务端  
    服务端 → SYN=1, ACK=1, seq=y, ack=x+1 → 客户端  
    客户端 → ACK=1, seq=x+1, ack=y+1 → 服务端  
    
  • 四次挥手:FIN报文触发连接终止
2.1.3 适用场景
  • MySQL数据库连接
  • 大文件下载(如FTP)

2.2 UDP(用户数据报协议)

2.2.1 核心特性
  • 无连接:直接发送数据报,无需预先建立通道
  • 低开销:头部仅8字节(TCP至少20字节)
2.2.2 典型应用
  • DNS查询
    import socket
    response = socket.socket(socket.AF_INET, socket.SOCK_DGRAM).sendto(b"查询请求", ("8.8.8.8", 53))
    
  • 实时音视频:WebRTC优先使用UDP

2.3 TCP与UDP对比

特性TCPUDP
可靠性高(重传)低(可能丢包)
延迟较高极低
头部大小20-60字节8字节

3. 应用层协议:HTTP/HTTPS

3.1 HTTP(超文本传输协议)

3.1.1 协议演进
  • HTTP/1.1:引入持久连接(Connection: keep-alive)
  • HTTP/2:二进制分帧多路复用(同一连接并行传输)
  • HTTP/3:基于UDP的QUIC协议解决TCP队头阻塞
3.1.2 请求/响应模型
GET /api/data HTTP/1.1
Host: example.com
Accept: application/jsonHTTP/1.1 200 OK
Content-Type: application/json
{"status": "success"}

3.2 HTTPS(安全HTTP)

3.2.1 加密基础
  • 混合加密:RSA交换密钥 + AES加密数据
  • 证书链验证:浏览器检查CA签发的数字证书
3.2.2 TLS握手流程
  1. ClientHello → 2. ServerHello + Certificate → 3. 密钥交换 → 4. 加密通信

4. 实时通信协议:WebSocket

4.1 设计目标与特点

  • HTTP升级握手
    GET /chat HTTP/1.1
    Upgrade: websocket
    Connection: Upgrade
    Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
    

4.2 协议细节

  • 数据帧格式
    [FIN|RSV|Opcode|Mask|Payload Len|Masking Key|Data]
    
  • 心跳包:定期发送Ping帧维持连接

4.3 应用场景

  • 在线协作工具(如Google Docs)

5. 高性能RPC框架:gRPC

5.1 核心架构

  • Protocol Buffers IDL
    service UserService {rpc GetUser (UserRequest) returns (UserResponse);
    }
    
  • HTTP/2多路复用:单个TCP连接并行处理多个请求

5.2 通信模式

  • 双向流
    stream, _ := client.Chat(context.Background())
    stream.Send(&Message{Text: "Hello"})
    response, _ := stream.Recv()
    

5.3 优势与局限

  • 性能:Protobuf编码比JSON快3-10倍
  • 局限:浏览器支持需gRPC-Web转译

6. 协议对比与选型指南

6.1 五维对比表

(见大纲部分表格)

6.2 选型建议

  • IoT设备:UDP(低功耗)
  • 支付系统:HTTPS(强安全)
  • 实时游戏:WebSocket + UDP混合

7. 总结

  • 关键取舍:可靠性 vs 实时性 vs 开发成本
  • 未来趋势:HTTP/3减少延迟,gRPC成为微服务标准

🔥🔥🔥道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

💖The Start💖点点关注,收藏不迷路💖

            <div align="center"><font color="#E73B3E"><em>💖The Start💖点点关注,收藏不迷路💖<em></em></em></font></div></td></tr></tbody>
</table>

http://www.xdnf.cn/news/1304155.html

相关文章:

  • Al大模型-本地私有化部署大模型-大模型微调
  • 腾讯位置商业授权微信小程序逆地址解析(坐标位置描述)
  • day29-进程和线程(2)
  • C语言:指针(5)
  • lcm通信库介绍与使用指南
  • 使用Docker容器化Python测试Pytest项目并配置GitHub Actions CI/CD流程
  • Pytest项目_day16(yaml和parametrize结合)
  • week1-[循环嵌套]蛇
  • Vue2与Vue3生命周期函数全面解析:从入门到精通
  • Linux操作系统--多线程(锁、线程同步)
  • 基本电子元件:贴片电阻器的种类
  • 达梦数据库使用控制台disql执行脚本
  • Mac(二)Homebrew 的安装和使用
  • HDFS数据倾斜导致MapReduce作业失败的排查与优化实践
  • 一个集成多源威胁情报的聚合平台,提供实时威胁情报查询和播报服务、主动拦截威胁IP,集成AI等多项常用安全类工具
  • mac 通过homebrew 安装和使用nvm
  • 16进制pcm数据转py波形脚本
  • 超越模型中心:AI智能体(Agent)革命来临,AgenticOps将如何颠覆你的工作流?
  • Java-JVM是什么JVM的类加载机制
  • PAT 1064 Complete Binary Search Tree
  • 计算机网络:(十五)TCP拥塞控制与TCP拥塞控制算法
  • 【161页PPT】智慧方案企业数字化转型概述(课件)(附下载方式)
  • AutoSar AP平台功能组并行运行原理
  • [论文阅读] 人工智能 | 当Hugging Face遇上GitHub:预训练语言模型的跨平台同步难题与解决方案
  • JVM执行引擎深入理解
  • 剧本杀小程序系统开发:重构推理娱乐生态
  • 大模型幻觉涉及的违约责任探讨
  • 回路自感和回路互感
  • 补充日志之-配置文件解析指南(Centos7)
  • 德州扑克游戏术语