当前位置: 首页 > 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.lryc.cn/news/622051.html

相关文章:

  • 【Leetcode hot 100】53.最大子数组和
  • 异步任务执行顺序
  • DataGear:一个免费开源的国产数据可视化分析平台
  • 经典BT的连接过程
  • 归并排序和统计排序
  • 智能工厂生产监控大屏-vue纯前端静态页面练习
  • AI智能体在软件测试中的应用与未来趋势
  • 开疆智能Ethernet转ModbusTCP网关连接测联无纸记录仪配置案例
  • python-pycharm切换python各种版本的环境与安装python各种版本的环境(pypi轮子下载)
  • C++第二十课:快递运费计算器 / 黑白配+石头剪刀布小游戏
  • SAP ALV导出excel 报 XML 错误的 /xl/sharedStrings.xml
  • 2025.08.09 江门两日游记
  • 4.2 寻址方式 (答案见原书 P341)
  • LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。
  • 硬件实现webrtc的编解码
  • 从前端框架到GIS开发系列课程(26)在mapbox中实现地球自转效果,并添加点击事件增强地图交互性
  • 【自动化运维神器Ansible】Ansible算术运算符详解:实现配置文件的动态计算
  • MS5905P 一款 12bit 分辨率的旋变数字转换器
  • GaussDB 常用数值类型
  • 在Ubuntu 22.04上安装远程桌面服务
  • C语言指针(五):回调函数与 qsort 的深层关联
  • 【大模型微调系列-03】 大模型数学基础直观入门
  • Codeforces Deque工艺
  • 专题三_二分_x 的平方根
  • Swift 实战:用最长递增子序列算法解“俄罗斯套娃信封”问题(LeetCode 354)
  • Effective C++ 条款42:了解 typename 的双重含义
  • 旅游管理实训室:旅游教育实践育人的关键支撑
  • spring中异步任务注解@Async和@scheduled的使用
  • 5G赋能井下“毛细血管”:巴拉素煤矿零散排水点智能监控系统
  • 基于阿里云音频识别模型的网页语音识别系统实现