第一章: C/S 网络介绍

本书介绍了在 Rust 中编写网络应用程序。标题提出了两个问题: 我们为什么要关于网络?为什么要使用 Rust 进行网络编程? 我们试图在本章回答第一个问题,我们将在后续章节中介绍 Rust 和 Rust 网络编程。 首先,在本章中,我们将从一些历史开始,并尝试理解网络架构在过去的一百年中是如何演变的。 在后面的章节,我们将了解现代网络如何分层和如何寻址。然后,我们将描述网络中使用的常见服务模型。我们将在最后一节总结 Linux 公开的与网络相关的编程接口。 请注意,本书故意忽略其他操作系统中的网络编程,并且为了简单起见仅关注 Linux 。虽然 Rust 编译器与平台无关,但在某些情况下,与 Linux 相比,其他平台的某些内容会有所不同。随着我们的进步,我们将指出这些差异。

在本章中,我们将介绍以下主题:

  • 网络历史:网络为何以及是如何投入使用,网络是如何发展的
  • 网络分层:分层和封装的工作原理
  • 寻址:如何在互联网上唯一标识网络和单个主机
  • IP 路由是如何工作的
  • DNS 的工作原理
  • Linux 网络编程接口