当你点击电子邮件上的”发送”或加入视频通话时,实际发生什么?互联网上每次点击、消息和 API 调用都依赖网络协议。它们定义数据如何移动、谁可以交谈,以及所有如何安全发生。

基础协议

传输协议

  • TCP:确保可靠交付
  • UDP:优先考虑速度
  • QUIC:在 UDP 上 bringing 两个世界一起

应用协议

  • HTTP:通过 HTTP 请求和响应使用 TCP 请求和接收 Web 资源(HTML、图像)
  • HTTP/3 (QUIC):构建在 UDP 顶部,通过多路复用数据流和减少延迟实现更快和更可靠连接
  • HTTPS:使用公钥和会话密钥在 TCP 连接上加密保护 HTTP,从而保护 Web 数据

文件传输

  • FTP:使用单独控制和数据通道在客户端和服务器之间上传和下载文件
  • SFTP:安全文件传输
  • SMB:文件共享

邮件协议

  • SMTP:通过 SMTP 服务器将电子邮件从发送者传输到接收者。通常用于电子邮件交付
  • IMAP:接收邮件
  • POP3:接收邮件

实时通信

  • WebSocket:升级 HTTP 连接到全双工通道用于实时、双向通信如实时聊天
  • WebRTC:实时媒体
  • MQTT:保持数据流实时

身份和访问

  • OAuth:处理授权
  • OpenID:处理认证

后端协议

  • DHCP:动态主机配置
  • NTP:网络时间协议
  • ICMPv6:互联网控制消息
  • LDAP:轻量目录访问协议

网络和 VPN

  • WireGuard:VPN
  • IPsec:VPN

微服务最佳实践

当我们开发微服务,我们需要遵循以下最佳实践:

  • 为每个微服务使用单独数据存储
  • 保持代码在相似成熟度级别
  • 为每个微服务分离构建
  • 分配每个微服务与单一职责
  • 部署到容器
  • 设计无状态服务
  • 采用领域驱动设计
  • 设计微前端
  • 编排微服务

本文为学习目的的个人翻译,译文仅供参考。

原文链接:EP195: Common Network Protocols Every Engineer Should Know

版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。