发布时间: 更新时间:

应用层

参考

应用层(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通讯方式
web通讯方式协议实时性资源消耗
短轮询HTTP高(频繁请求)
长轮询HTTP中(挂起连接)
SSEHTTP
WebSocketWebSocket(基于TCP)极高低(长连
  • HTTP 常见状态码
状态码名称描述
100Continue请求已被接收,客户端应继续发送剩余内容
101Switching Protocols客户端要求服务器切换协议,服务器已确认切换
102Processing服务器正在处理
200OK服务器已成功处理请求
201Created服务器已创建了新资源
202Accepted服务器已接受请求,但尚未处理完成
204No Content服务器成功处理了请求,但不需要返回任何实体内容
301Moved Permanently永久重定向
302Found临时重定向
400Bad Request语法错误
401Method Not Allowed未经身份验证
403Not Found服务器拒绝执行请求
404Forbidden资源不存在
405Unauthorized请求方法不支持
409Conflict资源冲突
415Unsupported Media Type不支持的媒体类型

文件共享

C/S(客户端-服务器)

网络协议在线编辑速度与性能特点
局域网 (LAN)SMB极快Windows生态标准(macOS与Linux也支持)
NFS极快Linux/Unix系统标准
互联网 (WAN)WebDAV中等基于HTTP
FTP/SFTPFTP以明文传输
SFTP基于SSH
rsync极快Linux/Unix快速增量同步协议,用于远程服务器间的数据备份

FTP

  • 协议
协议描述
FTP建立两条 TCP 连接,控制连接用于登录、切换目录、删除文件等,数据连接用于传输文件内容
SFTP基于 SSH 的安全文件传输协议
FTPS基于FTP 增加 TLS/SSL 加密
  • FTP连接方式
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接收和管理邮件支持多设备同步、搜索、标记、归档
  • SMTP常见端口
端口常见用途说明
25邮件服务器之间转发邮件主要用于 MTA 到 MTA 的投递,很多云厂商或 ISP 会限制 25 端口出站,防止垃圾邮件
587客户端提交邮件标准的 Message Submission 端口,通常配合 STARTTLS 和身份认证使用
465隐式 TLS 的邮件提交客户端连接时直接建立 TLS 加密通道,很多邮件服务商仍然支持

传输层

  • TCP 连接:三次握手建立连接,四次挥手断开连接

机制:发送端可以一次发送任意字节,接收端也可以分批读取。数据严格按发送顺序到达,自带拥塞控制、流量控制和重传机制,不丢包、不重复

  • 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 地址
Licensed under CC BY-NC-SA 4.0