<返回更多

一图看完8种常用网络协议

2023-10-09  微信公众号  ByteByteGo
加入收藏

今天我们来聊聊网络协议。

1. OSI模型

网络协议是网络中两台计算机之间传输数据的标准语言。各种计算机系统使用 OSI(Open Systems Interconnection)模型规定的标准相互通信。OSI 模型有七个抽象层,每个层都有不同的职责和协议。

下图显示了 OSI 模型中每一层的功能。每一层都为其上层提供一类功能,并由其下层为其提供服务。

一图看完8种常用网络协议

应用层

应用层最接近终端用户。大多数应用程序都位于这一层。我们从后端服务器请求数据,无需了解数据传输的具体细节。这一层的协议包括 HTTP、SMTP、FTP、DNS 等。

表现层

这一层处理数据编码、加密和压缩,为应用层准备数据。例如,HTTPS 利用 TLS(Transport Layer Security)实现客户端与服务器之间的安全通信。

会话层

该层用于打开和关闭两个设备之间的通信。如果数据量较大,会话层就会设置检查点,避免从头开始重新发送。

传输层

该层处理两个设备之间的端到端的通信。它在发送方将数据分解成段,然后在接收方重新组装。这一层有流量控制,以防止拥塞。这一层的主要协议是 TCP 和 UDP。

网络层

这一层实现不同网络之间的数据传输。它进一步将网段或数据报分解成更小的数据包,并使用 IP 地址找到通往最终目的地的最佳路由。

数据链路层

这一层允许在同一网络的设备之间传输数据。数据包被分解成帧,这些帧被限制在局域网内。

物理层

这一层通过电缆和交换机发送比特流,因此与设备之间的物理连接密切相关。

与 OSI 模型相比,TCP/IP 模型只有 4 层。在讨论网络协议的层次时,必须明确上下文。

2. OSI 封装

既然我们已经了解了每一层的职责,那就让我们用下图来总结一下数据传输过程。这就是所谓的封装(encapsulation)和去封装(decapsulation)。封装是指在数据向目的地传输的过程中为数据添加报头。解封装会移除这些报头,以获取原始数据。

一图看完8种常用网络协议

步骤 1:

当设备 A 使用 HTTP 通过网络向设备 B 发送数据时,最初会在应用层添加一个 HTTP 报头。

步骤 2:

在数据中添加 TCP 或 UDP 报头。它在传输层被封装成 TCP 段。报头包含源端口、目的端口和序列号。

步骤 3:

然后在网络层用 IP 报头对这些段落进行封装。IP 报头包含源 IP 地址和目的 IP 地址。

步骤 4:

在数据链路层为 IP 数据报添加 mac 报头,其中包含源 MAC 地址和目的 MAC 地址。

步骤 5:

封装帧被发送到物理层,并作为比特流在网络上发送。

步骤 6-10:

设备 B 从网络接收到比特流后,会启动去封装过程,这与封装过程相反。报头逐层去除,直到设备 B 可以访问原始数据。

请注意,每一层都使用报头来处理指令,而不需要解封上一层的数据。

3. 常用网络协议

下面的动图展示了常用的一些网络协议及其使用场景。

一图看完8种常用网络协议

  1. HTTP

HTTP 是一种用于获取 html 文档等资源的协议。它是网络数据交换的基础,也是一种客户端-服务器协议。

  1. HTTP/3

HTTP/3 是 HTTP 的下一个重要修订版本。它在 QUIC 上运行。QUIC 是一种新的传输协议,专为移动互联网而设计。它依赖于 UDP 而不是 TCP,这使得网页响应速度更快。VR 应用程序需要更多带宽来迅速呈现虚拟场景的复杂细节,因此迁移到由 QUIC 支持的 HTTP/3 会从中受益。

  1. HTTPS

HTTPS 扩展了 HTTP,并使用加密技术实现安全通信。

  1. WebSocket

WebSocket 是一种通过 TCP 提供全双工通信的协议。客户端通过建立 WebSocket 从后端服务接收实时更新。与总是 "拉取 "数据的 REST 不同,WebSocket 可以 "推送 "数据。在线游戏、股票交易和消息应用程序等都利用 WebSocket 进行实时通信。

  1. TCP

TCP 设计用于在互联网上发送数据包,确保数据和信息在网络上成功传递。许多应用层协议都建立在 TCP 协议之上。

  1. UDP

UDP 直接向目标计算机发送数据包,无需先建立连接。UDP 通常用于对时间敏感的通信,因为这种情况下偶尔丢弃数据包比等待更好。语音和视频应用通常使用此协议发送数据。

  1. SMTP

SMTP 是一种标准协议,用于将电子邮件从一个用户传输到另一个用户。

  1. FTP

FTP 用于在客户端和服务器之间传输计算机文件。它有独立的控制通道和数据通道连接。

我们来把这些网络协议放到分布式系统中看看它们的典型应用。

一图看完8种常用网络协议

关键词:网络协议      点击(11)
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多网络协议相关>>>