欢迎来到互联网:网络核心概念 (9645)

你好!在这个至关重要的章节中,我们将从编程概念转入激动人心的网络与网络安全 (Networking and Cyber Security)领域。我们将深入探讨互联网的实际运作方式——包括基础架构、寻址系统以及那些让全球数十亿设备能够无缝通信的关键协议。
理解互联网不仅仅是理论学习;它是现代计算机科学的骨干。让我们开始吧!


1. 互联网结构与数据传输 (3.14.3)

1.1 分组交换与路由器

互联网并非单一实体,而是一个由多个网络互联组成的巨大网络。为了处理流经其中的海量数据,互联网使用了一种称为分组交换 (Packet Switching)的机制。

什么是分组交换?

想象一下,你要寄一封长信(即你的数据)到世界各地。与其把整封信装进一个沉重的信封里寄出,不如把它拆分成许多小巧、易于处理的明信片(即分组/数据包)。

  • 定义:分组交换将数据拆分为小的、易于管理的块,称为分组 (Packets)
  • 这些分组随后会在网络中独立传输,它们可能会走不同的路径,最后在目的地被重新组装。

类比:想想传统的电话呼叫(电路交换),你需要全程占用一条专用线路,而分组交换则是发送大量独立的报文,它们共享网络资源,这使得网络效率高得多!

路由器的角色

如果分组走的是不同的路径,是谁在指挥它们呢?这就是路由器 (Router)的工作。

  • 路由器是连接网络的专用设备(例如将你的家庭 Wi-Fi 网络连接到互联网服务提供商的网络)。
  • 它们会读取每个传入分组中包含的目标地址 (Destination Address)
  • 通过使用复杂的路由表,路由器可以为该分组确定到达最终目标的最佳路径(即最高效的下一跳)。

1.2 分组的构成

为了让分组找到路径并被成功重组,它必须携带关键信息,即元数据 (Metadata),以及实际的数据(即载荷/有效载荷 (Payload))。

标准互联网分组的主要组成部分包括:

  • 源地址 (Source Address):发送方设备的 IP 地址。
  • 目标地址 (Destination Address):接收方设备的 IP 地址。
  • 分组序号 (Packet Sequence Number):由于分组到达的顺序可能不一致,该序号告诉接收设备分组的原始位置,以便正确重组数据。
  • 生存时间 (Time to Live, TTL):一个计数器,限制分组可以通过的跳数(路由器)。如果 TTL 达到零,路由器将丢弃该分组,防止其在网络中无限循环(这是一个常见的错误,需要避免!)。
  • 载荷 (Payload):实际传输的数据块(例如网页的一部分或电子邮件的一部分)。
  • 错误检测/纠正信息:接收方用来检查分组是否完整且未损坏的数据(如校验和)。

1.3 如何实现路由

路由是在网络中选择传输路径以发送网络流量的过程。

当路由器接收到一个分组时,它会在其内部的路由表 (Routing Table)中查找目标 IP 地址。该表包含目标网络到下一个应发送分组的路由器(即“下一跳”)的映射。此过程逐跳重复,直到分组到达目标设备的本地网络。

快速回顾:分组要素

路由是通过路由器利用分组首部中的目标地址来决定下一跳实现的,并使用生存时间 (TTL)计数器防止无限循环。


2. 互联网上的命名与寻址 (3.14.3, 3.14.4.3, 3.14.4.4)

如果你想访问 www.google.com,你输入的是一个名称,但计算机之间的通信使用的是数字。本节将解释这些名称和数字是如何协同工作的。

2.1 统一资源定位符 (URL) 与域名

统一资源定位符 (URL) 是人类可读的地址,用于在互联网环境中定位资源(如网页或文件)。

URL 示例:https://www.oxfordaqa.com/cs/index.html

域名与完全限定域名 (FQDN)
  • 域名 (Domain Name) 是标识网站的唯一名称(例如 oxfordaqa.com)。
  • 完全限定域名 (FQDN) 包括主机名和域名,指定了资源的精确位置,并以一个最后的点结束(尽管在浏览器中通常省略)。
  • 示例: www.oxfordaqa.com. (其中 www 是主机,oxfordaqa 是二级域名,com 是顶级域名)。
域名的组织方式

域名是分层的,从右到左组织:

  • 根域 (Root):(不可见的最高层)。
  • 顶级域名 (TLD):例如 .com, .org, .uk
  • 二级域名:例如 google.com 中的 google
  • 主机名 (子域名):例如 wwwmail

2.2 域名系统 (DNS)

域名系统 (DNS) 的核心目的在于将人类可读的 FQDN 转换为机器可读的 IP 地址

类比:DNS 是互联网的电话簿。你查找某人的名字(域名)来获取他们的电话号码(IP 地址)。

DNS 如何通过域名服务器工作
  1. 用户在浏览器中输入 FQDN(例如 www.example.com)。
  2. 设备向域名服务器 (DNS Server) 发送查询请求。
  3. 如果本地 DNS 服务器不知道 IP 地址,它会查询其他服务器(从根服务器开始),直到找到该域名的权威服务器。
  4. 权威服务器返回与 FQDN 对应的 IP 地址。
  5. IP 地址被返回给用户的设备,从而允许设备直接与 Web 服务器通信。

2.3 IP 寻址 (3.14.4.3)

IP 地址 (Internet Protocol address) 是分配给参与计算机网络的每个设备的唯一数字标签。

网络标识符与主机标识符

IP 地址分为两部分:

  • 网络标识符:标识设备所在的特定网络。同一本地网络上的所有设备共享此部分。
  • 主机标识符:标识该网络内的特定设备(主机)。这在同一网络上的每个设备中必须是唯一的。

示例:如果你的 IP 是 192.168.1.50,那么 192.168.1 可能标识你的家庭网络,而 50 标识你的笔记本电脑。

子网掩码的作用

计算机如何知道哪部分是网络,哪部分是主机呢?它使用子网掩码 (Subnet Mask)
子网掩码是一个用于“屏蔽”IP 地址的数字。通过执行按位“与”运算,设备可以立即隔离出 IP 地址中的网络标识符部分。

IPv4 与 IPv6
  • IPv4 (IP 第 4 版):使用 32 位,通常显示为四个由点分隔的十进制数字(例如 192.168.1.1)。它提供约 43 亿个唯一地址。
  • IPv6 (IP 第 6 版):使用 128 位,提供几乎无限数量的唯一地址。

为什么要引入 IPv6?
由于连接到互联网的设备数量极其庞大(手机、物联网设备等),全球可用的 IPv4 地址已经耗尽。引入 IPv6 对于确保互联网的持续增长和功能至关重要。

可路由与不可路由 IP 地址
  • 可路由 IP 地址 (公网 IP):这些地址在互联网上全球唯一。它们由 ISP 分配,并由路由器用于在全球不同网络之间引导分组。
  • 不可路由 IP 地址 (私网 IP):这些地址保留在专用网络(如家庭或学校局域网)内使用。它们在公共互联网上是不可见的,也不能直接被路由。它们允许内部设备在不需要全局唯一地址的情况下进行通信(节省了宝贵的公网地址)。

2.4 互联网注册机构

互联网注册机构(如 ICANN、IANA 和地区性互联网注册机构)是管理全球 IP 地址和域名分配的基础服务机构。
它们确保分配的每个 IP 地址和域名都是全球唯一的,防止冲突并维持互联网的结构化组织。


3. TCP/IP 模型 (3.14.4)

通信需要规则。在互联网上,这些规则称为协议。最基本的协议集是 TCP/IP 协议栈,它管理数据如何被封装、寻址、发送和接收。

3.1 为什么要进行协议分层

像 TCP/IP 这样的网络协议使用分层有几个关键原因:

  • 分解与简化:复杂的网络任务(如发送文件)被分解为由不同层处理的、更小、更简单且独立的任务。
  • 标准化与互操作性:每一层仅负责其特定功能,使得开发者可以构建兼容的硬件和软件,而不必担心整个协议栈。
  • 模块化:如果某一层技术发生变更(例如从铜缆升级到光纤),则只需更新该特定层的协议,其他层不受影响。

类比:想象盖房子。地基层处理地面,框架层处理墙壁等等。每一层都有特定的规则,且不会干扰其他层。

3.2 TCP/IP 协议栈的四层结构

TCP/IP 协议栈通常描述为四层,从上(最接近用户)到下(最接近物理硬件)依次为:

  1. 应用层 (Application Layer):
    • 角色:直接为用户的应用程序(如 Web 浏览器或电子邮件客户端)提供服务。
    • 此处使用的协议包括 HTTP, FTP, SMTP, POP3, IMAP 等。
  2. 传输层 (Transport Layer, TCP 或 UDP):
    • 角色:管理端到端的连接。它将数据分解为段(TCP 中),并确保可靠的数据传输(顺序正确、无丢失)或快速、不可靠的传输(UDP 中)。
    • TCP (传输控制协议) 负责重组分组并确认传输成功。
  3. 网络层 (Internet Layer, IP):
    • 角色:处理寻址和路由。这里使用 IP 地址来确保分组到达正确的目标网络。
    • 此处的主要协议是 IP (互联网协议)。路由器主要在这一层运行。
  4. 链路层 (Link Layer / 网络访问层):
    • 角色:负责同一本地网络段内设备之间的数据物理传输(例如处理 Wi-Fi 或以太网电缆)。
    • 该层使用 MAC 地址

3.3 套接字与 MAC 地址

套接字的角色

在 TCP/IP 协议栈(特别是传输层)中,套接字 (Sockets) 定义了通信的端点。
套接字由 IP 地址端口号 (IP:Port) 组合定义。这确保了数据不仅能到达正确的计算机(IP 地址),还能到达该计算机上运行的正确*应用程序*(端口号)。

示例:如果你访问一个网站,IP 地址将数据传送到服务器,而端口号 80 (HTTP) 或 443 (HTTPS) 则确保数据进入 Web 服务器软件。

MAC 地址的角色

MAC (媒体访问控制) 地址 是永久嵌入在设备网络接口卡 (NIC) 中的唯一物理地址。
虽然 IP 地址负责处理不同网络之间的路由(第 3 层),但 MAC 地址负责处理同一本地网络段内的通信(链路层,第 2 层)。

请记住: IP 地址就像邮政地址(逻辑地址,可变),而 MAC 地址就像汽车发动机的序列号(物理地址,通常是永久的)。


4. 标准应用层协议 (3.14.4.2)

这些协议位于 TCP/IP 协议栈的最顶端,定义了浏览、电子邮件和文件共享等常见互联网服务的具体规则。

4.1 Web 通信:HTTP 与 HTTPS

用于检索和显示网页的核心协议:

  • HTTP (超文本传输协议): 浏览器用于从 Web 服务器 检索网页的标准协议。
  • Web 服务器角色: 存储网页,并在浏览器请求时(通常以文本形式)提供服务。
  • Web 浏览器角色: 使用 HTTP/HTTPS 检索网页及所有关联资源(图像、脚本),然后进行渲染(显示)给用户。
  • HTTPS (超文本传输安全协议): 这是 HTTP 的安全版本。它使用 SSL/TLS 加密来保护通信通道,保护密码和信用卡详细信息等敏感数据。

4.2 文件传输与远程管理

  • FTP (文件传输协议): 用于在 FTP 客户端和 FTP 服务器之间传输文件。访问可以是匿名的(公共文件)或经过身份验证的(需要用户名和密码)。
  • 关于 FTP 安全性的提示: 由于 FTP 以明文形式传输数据(包括密码),存在安全风险,因此正逐渐被淘汰。它正被诸如 SFTP(安全文件传输协议,使用加密)等替代方案所取代。
  • SSH (安全外壳协议): 用于安全的远程管理。它允许用户安全地登录到远程计算机,并通过加密连接执行命令。

4.3 电子邮件协议

发送或接收电子邮件时,过程通常涉及两个关键步骤,以及依赖电子邮件服务器的几个协议:

  1. 发送邮件:
    • 发送者的邮件客户端使用 SMTP (简单邮件传输协议) 将邮件发送到他们本地的电子邮件服务器。
    • 本地服务器随后使用 SMTP 与收件人的邮件服务器通信。
  2. 接收邮件:
    • 收件人的邮件客户端使用 POP3IMAP 从他们的电子邮件服务器检索邮件。
POP3 与 IMAP (区别)
  • POP3 (邮局协议 v3): 通常将邮件从服务器下载到一台设备,并经常从服务器上删除。适合只在一台机器上检查电子邮件的情况。
  • IMAP (因特网消息访问协议): 在服务器和多台设备之间同步电子邮件。邮件保留在服务器上,允许从手机、笔记本电脑或台式机同步访问。

5. 动态主机配置协议 (DHCP) (3.14.4.4)

5.1 DHCP 的目的与运作

动态主机配置协议 (DHCP) 系统实现了网络配置过程的自动化。

  • 目的: DHCP 自动为连接到网络的设备分配唯一的 IP 地址、子网掩码、网关地址和 DNS 服务器信息。
  • 运作方式: 当设备连接时,它会发送一个广播请求。DHCP 服务器通过向设备提供配置租约(IP 地址的临时分配)进行响应。

5.2 DHCP 的优势

相比手动(静态)配置,DHCP 具有显著优势:

  • 减少管理工作: 网络管理员无需手动为每台设备分配 IP 配置,节省了大量时间。
  • 消除错误: 手动配置经常导致错误,例如将同一个 IP 地址分配给两台不同的设备(IP 冲突),这会导致两台设备都无法工作。DHCP 有效防止了这些冲突。
  • 灵活性: 当设备离开网络时,DHCP 服务器会回收其 IP 地址,以便日后由新设备重用。
网络学习要点

互联网依赖由路由器引导的分组交换TCP/IP 协议栈将通信组织为四层:应用层(用户服务)、传输层(可靠性/序列)、网络层(IP 寻址/路由)和链路层(物理传输/MAC)。DNS 将名称 (FQDN) 转换为地址 (IP)。