欢迎来到互联网:网络核心概念 (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。
- 主机名 (子域名):例如 www 或 mail。
2.2 域名系统 (DNS)
域名系统 (DNS) 的核心目的在于将人类可读的 FQDN 转换为机器可读的 IP 地址。
类比:DNS 是互联网的电话簿。你查找某人的名字(域名)来获取他们的电话号码(IP 地址)。
DNS 如何通过域名服务器工作
- 用户在浏览器中输入 FQDN(例如 www.example.com)。
- 设备向域名服务器 (DNS Server) 发送查询请求。
- 如果本地 DNS 服务器不知道 IP 地址,它会查询其他服务器(从根服务器开始),直到找到该域名的权威服务器。
- 权威服务器返回与 FQDN 对应的 IP 地址。
- 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 协议栈通常描述为四层,从上(最接近用户)到下(最接近物理硬件)依次为:
-
应用层 (Application Layer):
- 角色:直接为用户的应用程序(如 Web 浏览器或电子邮件客户端)提供服务。
- 此处使用的协议包括 HTTP, FTP, SMTP, POP3, IMAP 等。
-
传输层 (Transport Layer, TCP 或 UDP):
- 角色:管理端到端的连接。它将数据分解为段(TCP 中),并确保可靠的数据传输(顺序正确、无丢失)或快速、不可靠的传输(UDP 中)。
- TCP (传输控制协议) 负责重组分组并确认传输成功。
-
网络层 (Internet Layer, IP):
- 角色:处理寻址和路由。这里使用 IP 地址来确保分组到达正确的目标网络。
- 此处的主要协议是 IP (互联网协议)。路由器主要在这一层运行。
-
链路层 (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 电子邮件协议
发送或接收电子邮件时,过程通常涉及两个关键步骤,以及依赖电子邮件服务器的几个协议:
-
发送邮件:
- 发送者的邮件客户端使用 SMTP (简单邮件传输协议) 将邮件发送到他们本地的电子邮件服务器。
- 本地服务器随后使用 SMTP 与收件人的邮件服务器通信。
-
接收邮件:
- 收件人的邮件客户端使用 POP3 或 IMAP 从他们的电子邮件服务器检索邮件。
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)。