Skip to content

Commit

Permalink
fix typo
Browse files Browse the repository at this point in the history
  • Loading branch information
isno committed Feb 4, 2025
1 parent 300aff2 commit 38c61d2
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 8 deletions.
8 changes: 4 additions & 4 deletions network/network-layer.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@
|层级|名称|含义|
|:--|:--|:--|
|7|应用层(Application Layer)|应用层是 OSI 模型的顶层,直接与用户的应用程序交互。该层的协议有 HTTP、FTP、SMTP 等。|
|6|表示层(Presentation Layer)|负责数据的格式转换、加密和解密,确保发送方和接收方之间的数据格式一致。该层的协议有 SSL/TLS、JPEG、MIME 等|
|6|表示层(Presentation Layer)|负责数据的格式转换、加密和解密,确保发送方和接收方之间的数据格式一致。该层的协议有 SSL/TLS、JPEG、MIME 等|
|5|会话层(Session Layer)|管理应用程序之间的会话,负责建立、维护和终止会话。|
|4|传输层(Transport Layer)|提供端到端的数据传输服务,负责数据分段、传输可靠性以及错误恢复。该层的协议有 TCP 和 UDP。|
|3|网络层(Network Layer)|提供逻辑地址(如 IP 地址),负责数据的路由选择和传输,解决不同网络之间的通信。该层的协议有 IPv4、IPv6、ICMP、ARP 等|
|2|数据链路层(Data Link Layer)|负责局域网(LAN)内的数据传输,对传输的单元(数据帧)提供错误检测和纠正功能。该层的协议有 Ethernet、PPP、HDLC 等|
|1|物理层(Physical Layer)|物理层是 OSI 模型的第一层,它负责比特流在物理介质上的传输|
|3|网络层(Network Layer)|提供逻辑地址(如 IP 地址),负责数据的路由选择和传输,解决不同网络之间的通信。该层的协议有 IPv4、IPv6、ICMP、ARP 等|
|2|数据链路层(Data Link Layer)|负责局域网(LAN)内的数据传输,对传输的单元(数据帧)提供错误检测和纠正功能。该层的协议有 Ethernet、PPP、HDLC 等|
|1|物理层(Physical Layer)|物理层是 OSI 模型的第一层,负责比特流在物理介质上的传输|

通常情况下,数据链路层的数据单元称为“帧”(Frame),网络层的数据单元称为“数据包”(Packet),传输层的数据单元称为“数据段”(Segment),而应用层的数据单元则称为“数据”(Data)。为了简化表述,本书大部分内容不会严格区分这些术语,统一使用“数据包”泛指各层数据单元。

6 changes: 2 additions & 4 deletions network/networking.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 3.2 Linux 系统收包流程

本节,我们了解数据包进入网卡(eth0)后,Linux 内核中各个模块是如何相互协作的,对 Linux 系统下网络包的接收过程有个全局性的认识
本节,我们了解数据包进入网卡(eth0)后,Linux 内核中各个模块是如何协作,对 Linux 系统的数据包处理机制有个系统的认识

总结 Linux 系统收包流程,如图 3-1 所示。
:::center
Expand All @@ -18,8 +18,6 @@
- 传输层(L4 Transport layer):处理网络地址转换(NAT)、连接跟踪(conntrack)等。
7. 内核协议栈处理完成后,数据包被传递到 socket 接收缓冲区。应用程序利用系统调用(如 Socket API)从缓冲区读取数据。至此,整个收包过程结束。

分析 Linux 系统处理网络数据包的过程,我们注意到潜在问题:**数据包的处理流程过于冗长**。处理流程涉及到多个网络层协议栈(如数据链路层、网络层、传输层和应用层),网络层协议栈之间需要封包/解包,还有频繁的上下文切换(Context Switch),都让 Linux 内核的瓶颈不可忽视。对于设计网络密集型系统,优化内核参数是不可或缺的一环。

除了想办法优化内核参数,业界提出了“绕过内核”的技术思路,如图 3-1 所示的 XDP 和 DPDK 技术,笔者将在 3.4 节中详细介绍它们的原理与区别。
从上述流程可见,Linux 系统的数据包处理涉及多个网络层协议栈(如数据链路层、网络层、传输层和应用层),需要进行封包/解包操作,并频繁发生上下文切换(Context Switch),都让 Linux 内核的瓶颈不可忽视。在设计网络密集型系统时,优化内核参数是不可或缺的环节。除了优化内核参数,业界还提出了“绕过内核”的解决方案,如图 3-1 所示的 XDP 和 DPDK 技术。笔者将在 3.4 节中详细介绍它们的原理与区别。

接下来,我们将继续深入 Linux 内核网络模块,研究 Linux 内核是如何过滤、修改和转发数据的。

0 comments on commit 38c61d2

Please sign in to comment.