发布时间:
更新时间:
应用层
参考
应用层(Application Layer)提供客户端功能,通信时,应用层再把数据传给传输层。
| 协议 | 名称 | 用途 | 特点 |
|---|
| HTTP/HTTPS | 超文本传输协议 | 网络传输 | 客户端请求,服务器响应 |
| WebSocket | 全双工通信协议 | 双向实时通信 | 客户端和服务端之间会建立一条持久连接,以双向数据传输,服务端可以主动向客户端推送消息 |
| WebRTC | 网页实时通信 | 浏览器实时音视频通信 | Google开源的协议,P2P降低延迟 |
| RPC | 远程过程调用 | 分布式系统 | 调用远端服务器上的函数或方法,而不仅仅是URL |
| FTP | 文件传输协议 | 文件传输 | 分别建立文件传输和控制两条连接 |
| SMTP | 简单邮件传输协议 | 发送电子邮件 | |
| POP3/IMAP | 邮件接收协议 | 接收电子邮件 | |
| DNS | 域名系统 | 用于域名和 IP 地址的映射 | |
| SSH | 安全网络协议 | 加密的登录和命令行操作 | 先密钥交换,之后的通信内容都会被加密传输 |
| RTP | 实时传输协议 | 实时传输音频、视频 | 本身不保证可靠传输,而是通过序列号、时间戳等信息帮助接收端进行排序、同步和播放控制 |
| DHCP | 动态主机配置协议 | 自动为连接网络的设备分配 IP 地址 | |
HTTP/HTTPS
HTTP 是一种无状态协议。服务端默认不会记住“上一次请求是谁发的、处于什么状态”。因此,通常需要借助 Cookie、Session、Token(包括 JWT)等机制来维护用户登录态和会话状态。
| 版本 | 特点 | 缺点 |
|---|
| HTTP/1.0 | 每次请求/响应都需要建立一个独立的TCP连接,完成后立即断开连接 | 每次请求都需要经历耗时的TCP握手和慢启动过程,产生严重的网络延迟,浪费带宽 |
| HTTP/1.1 | 持久连接:默认不关闭TCP连接,允许在同一个连接上处理多个请求 | 请求串行:前一个请求处理缓慢或发生阻塞,后续请求就会被卡住(队头阻塞) |
| HTTP/2 | 多路复用:引入二进制分帧层,将 HTTP 消息拆分为二进制帧,每个帧都带有流标识符,指明它属于哪一个请求或响应 | 依赖TCP协议:如果TCP丢包,整个连接内的所有并行数据流都会暂停等待重传 |
| HTTP/3 | 采用基于 UDP 的 QUIC 协议,即使某个数据流在 QUIC 层丢包,也只会阻塞该流,而不会影响连接上的其他数据流,在网络环境较差时仍具有极佳的性能和稳定性 | |
| HTTPS | 使用 TLS(或 SSL)来加密HTTP 请求和响应,S 代表“安全” | |
| web通讯方式 | 协议 | 实时性 | 资源消耗 |
|---|
| 短轮询 | HTTP | 低 | 高(频繁请求) |
| 长轮询 | HTTP | 中 | 中(挂起连接) |
| SSE | HTTP | 高 | 低 |
| WebSocket | WebSocket(基于TCP) | 极高 | 低(长连 |
| 状态码 | 名称 | 描述 |
|---|
| 100 | Continue | 请求已被接收,客户端应继续发送剩余内容 |
| 101 | Switching Protocols | 客户端要求服务器切换协议,服务器已确认切换 |
| 102 | Processing | 服务器正在处理 |
| 200 | OK | 服务器已成功处理请求 |
| 201 | Created | 服务器已创建了新资源 |
| 202 | Accepted | 服务器已接受请求,但尚未处理完成 |
| 204 | No Content | 服务器成功处理了请求,但不需要返回任何实体内容 |
| 301 | Moved Permanently | 永久重定向 |
| 302 | Found | 临时重定向 |
| 400 | Bad Request | 语法错误 |
| 401 | Method Not Allowed | 未经身份验证 |
| 403 | Not Found | 服务器拒绝执行请求 |
| 404 | Forbidden | 资源不存在 |
| 405 | Unauthorized | 请求方法不支持 |
| 409 | Conflict | 资源冲突 |
| 415 | Unsupported Media Type | 不支持的媒体类型 |
文件共享
C/S(客户端-服务器)
| 网络 | 协议 | 在线编辑 | 速度与性能 | 特点 |
|---|
| 局域网 (LAN) | SMB | 是 | 极快 | Windows生态标准(macOS与Linux也支持) |
| NFS | 是 | 极快 | Linux/Unix系统标准 |
| 互联网 (WAN) | WebDAV | 是 | 中等 | 基于HTTP |
| FTP/SFTP | 否 | 快 | FTP以明文传输 SFTP基于SSH |
| rsync | 否 | 极快 | Linux/Unix快速增量同步协议,用于远程服务器间的数据备份 |
FTP
| 协议 | 描述 |
|---|
| FTP | 建立两条 TCP 连接,控制连接用于登录、切换目录、删除文件等,数据连接用于传输文件内容 |
| SFTP | 基于 SSH 的安全文件传输协议 |
| FTPS | 基于FTP 增加 TLS/SSL 加密 |
| FTP连接方式 | 描述 | 缺点 |
|---|
| 主动模式 | 客户端告诉服务端自己的端口,服务端主动连接端口 | 服务端要主动连接客户端,如果客户端在 NAT 或防火墙后面,很容易连接失败 |
| 被动模式(常用) | 客户端请求服务端开放一个端口,客户端主动连接 | |
P2P(对等网络)
| 协议(按发布时间) | 原理 | 特点 | 发展 |
|---|
| Napster | 中心服务器索引用户的共享目录,节点对节点传输 | - | 因版权诉讼关闭 |
| Gnutella | 点对点:节点即是客户端又是服务端,发出搜索请求广播相邻的节点 | - | 广播会造成络拥堵和效率低下,Gnutella2改进为中心节点互联+子节点, 仅搜索中心节点以解决网络过载 |
| eDonkey/eMule(eD2k) | 为每个文件生成唯一的标识符(Hash),大文件会被自动分成多个分块Hash,以支持断点续传和多点下载 | eDonkey 服务器只存储Hash值,通常一个eD2k链接只能下载一个文件 根据上传的数据量记录信用积分,积分高下载快,解决用户只下载不上传的问题 | eMule(电骡)开源实现KAD点对点网络,客户端作为节点; eDonkey(电驴)后续因版权诉讼关闭 |
| BitTorrent(.torrent) | 同上 | Tracker 服务器只记录拥有文件的用户,将这些用户的 IP 地址返回给客户端,通常一个torrent可以下载整个文件夹,热门资源下载快 | BitTorrent协议加入DHT技术(分布式哈希表),彻底摆脱对中心Tracker服务器的依赖, 磁力链接(Magnet)通过DHT,解决了冷门资源断种,而且可一次下载多文件 |
| IPFS (星际文件系统) | 同上 | IPFS是分布式文件传输协议,直接储存和索引网站文件,旨在替代索引服务器地址的HTTP 协议,IPFS可以节省存储资源且防止资源失效 | 目前生态替代困难 |
邮件
| 协议 | 主要用途 | 特点 |
|---|
| SMTP | 发送和转发邮件 | 负责邮件投递链路 |
| POP3 | 接收邮件 | 下载到本地 |
| IMAP | 接收和管理邮件 | 支持多设备同步、搜索、标记、归档 |
| 端口 | 常见用途 | 说明 |
|---|
| 25 | 邮件服务器之间转发邮件 | 主要用于 MTA 到 MTA 的投递,很多云厂商或 ISP 会限制 25 端口出站,防止垃圾邮件 |
| 587 | 客户端提交邮件 | 标准的 Message Submission 端口,通常配合 STARTTLS 和身份认证使用 |
| 465 | 隐式 TLS 的邮件提交 | 客户端连接时直接建立 TLS 加密通道,很多邮件服务商仍然支持 |
传输层
机制:发送端可以一次发送任意字节,接收端也可以分批读取。数据严格按发送顺序到达,自带拥塞控制、流量控制和重传机制,不丢包、不重复
- UDP
机制:发送方按原独立数据包发送,接收原样接收,发送方只管发,不负责对方是否收到,包可能乱序、丢失或重复到达
| 协议 | 名称 | 用途 | 特点 |
|---|
| TCP | 传输控制协议 | 网页浏览,文件传输 | 连接,可靠 |
| UDP | 用户数据报协议 | 音视频直播,实时网络游戏 | 无连接,低开销 |
| SCTP | 流控制传输协议 | 电信信令传输、VoIP(网络电话)及WebRTC | 多宿主支持 (多路径容灾),多流传输 |
网络层
参考
| 协议 | 名称 | 特点 |
|---|
| IP | 互联网协议 | 为数据包分配地址(如 IPv4 或 IPv6) |
| ARP | 地址解析协议 | 将网络层的 IP 地址解析为物理 MAC 地址 |
| NAT | 网络地址转换 | 将私有 IP 地址转换为公有 IP 地址,让公司或家庭的多台设备使用一个公网 IP 以节省 IPv4地址 |
| ICMP | 网际控制报文协议 | 用于在网络设备间传递控制消息,报告网络状态 |
| IGMP | 网际组管理协议 | 负责 IP 组播的管理,用于实现一对多的多播通信 |
数据链路层
| 分类 | 协议 | 名称 | 特点 | 备注 |
|---|
| 局域网(LAN) | Ethernet | 以太网协议 | 局域网 | |
| IEEE 802.11 | 无线局域网协议 | Wi-Fi 网络的底层协议,采用 CSMA/CA(冲突避免)机制来处理无线信道的共享问题 | 细分数据链路层为两个子层:MAC负责处理硬件地址; LLC负责识别网络层协议 |
| 广域网(WAN) | PPP | 点对点协议 | 宽带拨号和专线连接 | |
| HDLC | 高级数据链路控制协议 | 路由器之间的同步串口通信 | |
| ARP | 地址解析协议 | 将网络层的 IP 地址解析为物理 MAC 地址 | |