斯坦福 CS144 计算机网络播客:计算机网络简介 - 分层模型、 ARP 、 IP 和应用层
从应用程序的精巧设计,到全球社区的协同治理,再到永不停歇的技术革新与挑战,我们看到互联网不仅是一组冰冷的协议,更是一个充满活力、不断自我完善的生态系统。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
当我们在浏览器中输入一个网址,按下回车,绚丽的网页便呈现在眼前。这个看似瞬间完成的动作背后,是一个由无数协议、路由器和链路组成的复杂而又优雅的系统在默默工作。这个系统就是互联网。
本文将以斯坦福大学 CS 144 课程的核心思想为基础,带你深入探索互联网的基石——从网络设计的宏伟蓝图(四层模型),到其最核心的协议(IP),再到地址分配与路由的精妙细节。
宏观设计:互联网的四大支柱
为了管理网络通信的复杂性,计算机科学家们借鉴了软件工程中的分层思想,将整个互联网的功能划分为四个层次。这种分层设计不仅降低了系统的复杂度,更让每一层都可以独立演进,极大地促进了技术创新。
四层互联网模型 (The Four-Layer Internet Model)
想象一下寄送一个包裹。你需要先将物品(数据)打包(应用层),然后写上收件人和寄件人信息(传输层),再贴上具体的街道地址(网络层),最后由快递员选择具体的交通工具和路线(链路层)送达。互联网的四层模型与此类似:
应用层 (Application Layer):这是我们最常接触的一层。它定义了应用程序之间如何交流,例如,Web 浏览器使用HTTP协议获取网页,邮件客户端使用SMTP协议发送邮件。这一层关心的是通信内容的具体语义。传输层 (Transport Layer):负责端到端(end-to-end)的数据传输。它为应用层提供可靠的通信渠道。最著名的协议是TCP(Transmission Control Protocol),它能确保数据完整、有序地到达目的地,并处理网络拥塞。对于一些实时性要求高、但能容忍少量数据丢失的应用(如视频通话),则会使用更轻量的UDP(User Datagram Protocol)。网络层 (Network Layer):这是整个互联网的心脏。它负责将数据包从源头主机跨越多个网络,一路“接力”到目标主机。网络层的核心协议就是IP (Internet Protocol)。它定义了地址格式和路由规则,将全球无数个子网络粘合成一个统一的互联网。链路层 (Link Layer):这是最底层,负责在单个物理链路上(例如,你的电脑和路由器之间,或两个路由器之间)传输数据。我们熟悉的以太网 (Ethernet) 和 Wi-Fi 都属于链路层技术。封装 (Encapsulation):层层打包的艺术
分层模型带来了一个关键操作——封装。当应用程序的数据向下传递时,每一层都会给它加上自己的“头部信息”(Header),就像层层打包一样。
一个HTTP请求的旅程是这样的:
HTTP数据。传输层将其打包成一个TCP段(Segment),并加上TCP头部(包含端口号等信息)。网络层将TCP段打包成一个IP数据报(Datagram),并加上IP头部(包含源/目的 IP 地址等信息)。链路层将IP数据报打包成一个帧(Frame),并加上链路层头部(包含 MAC 地址等信息),最后通过物理介质发送出去。这个过程可以用下图清晰地表示:
+------------------------------------------------------------+| 链路层头部 | 网络层头部 | 传输层头部 | 应用层数据 | 链路层尾部 || (Ethernet) | (IP) | (TCP) | (HTTP) | (Ethernet) |+------------------------------------------------------------+ <----------------------- IP Datagram -----------> <----------- TCP Segment ----------->
接收方则会执行相反的“解包”过程,逐层剥离头部,最终将原始的应用层数据交给应用程序。
在以太网(Ethernet)中,帧(Frame)由三部分组成:
[ 以太网头部 (Ethernet Header) ] + [ IP 数据报 (Payload) ] + [ 以太网尾部 (Ethernet Trailer) ]以太网头部(Ethernet Header):包含目的 MAC 地址、源 MAC 地址、类型字段 (EtherType)。IP 数据报(Payload):就是整个网络层的数据(IP 头 + 上层数据)。以太网尾部(Ethernet Trailer):通常只有一个字段——FCS (Frame Check Sequence, 帧校验序列),用来检测链路层传输是否出错。长度 4 字节。
所以你图里写的链路层尾部,其实指的就是FCS,它不是必然有复杂含义,只是链路层用来做差错检测的校验字段。
有些教材/画图会忽略它,因为它对理解分层结构不是核心,但严格来说它确实存在。
HTTP 处于应用层,它的“数据”就是我们真正关心的内容(网页内容、请求报文等)。
在封装时,HTTP 数据会被逐层打包:
HTTP 数据 → 加上 TCP 头部 → 成为 TCP SegmentTCP Segment → 加上 IP 头部 → 成为 IP DatagramIP Datagram → 加上以太网头部和尾部 → 成为 Ethernet Frame
所以:
在 TCP 眼里,HTTP 就是“数据”。在 IP 眼里,整个 TCP 段(包括 HTTP)就是“数据”。在 Ethernet 眼里,整个 IP 数据报就是“数据”。这就是分层封装的关键:每一层只看自己要处理的头部,把上层全部当作“数据”。
网络核心:IP 协议的“薄腰”哲学
在四层模型中,网络层的IP协议扮演着一个无可替代的角色,它被称为互联网的“薄腰 (thin waist)”。这意味着,无论上层的应用(HTTP, FTP, DNS)如何变化,也无论下层的链路技术(以太网, Wi-Fi, 5G)如何演进,它们都必须通过IP协议这个“腰部”来进行连接。
这种设计的背后,蕴含着深刻的哲学。
IP 服务模型:简单即是美
IP协议的设计者们选择了一种极其简洁的服务模型,其核心特点可以概括为:
IP协议不保证数据包一定能送达。它可能会在传输过程中丢失、损坏、延迟或被重复发送。尽力而为 (Best-Effort):虽然不可靠,但IP协议承诺会尽其所能地投递数据包,不会无故丢弃(除非网络拥塞或数据包生命周期结束)。无连接 (Connectionless):IP协议在发送数据前,源和目的之间不建立任何连接。每个数据包都被独立对待,各自寻找自己的路径,这使得网络核心的路由器可以非常简单和高效。端到端原则 (End-to-End Principle)
既然IP协议如此“不靠谱”,那我们如何实现可靠的通信呢?答案是端到端原则。
这个原则主张,像可靠性、拥塞控制这类复杂的功能,应该由通信的两个端点(即用户的计算机)来负责,而不是由网络中间的路由器来承担。
这样做的好处是巨大的:
保持网络核心简单:路由器只需专注于快速转发数据包,这使得它们可以做得更便宜、更快速、更稳定。应用灵活定制:应用程序可以根据自身需求,在端系统上选择实现不同程度的可靠性。需要高可靠性的文件传输可以使用TCP,而实时视频则可以使用更简单的UDP,将可靠性的实现留给应用本身。易于创新:新的应用功能可以在端系统上快速部署和迭代,无需改动整个互联网的核心设备。IPv4 头部字段一览
为了实现上述功能,每个IP数据报都带有一个头部,其中包含了路由和处理所需的所有信息。下面是 IPv4 头部的主要字段:
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Version| IHL |Type of Service| Total Length |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Identification |Flags| Fragment Offset |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Time to Live | Protocol | Header Checksum |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Source Address |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Destination Address |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Options | Padding |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+Version (版本):指明协议版本,对 IPv4 来说,这个值是4。Time to Live (TTL, 生存时间):一个 8 位的数值,每经过一个路由器就减 1。当 TTL 减到0时,数据包将被丢弃。这个机制可以防止数据包因路由错误在网络中无限循环。Protocol (协议 ID):告诉接收方,IP数据包的载荷(payload)应该交给哪个传输层协议处理。例如,6代表TCP,17代表UDP。Source/Destination Address (源/目的地址):32 位的 IP 地址,是整个转发过程的依据。Header Checksum (头部校验和):用于检测IP头部在传输过程中是否发生损坏。
地址与顺序:网络通信的规范
字节序 (Byte Order):大端与小端的约定
当我们在内存中存储一个多字节的数字(比如一个 32 位的整数)时,存在两种排列方式:
大端序 (Big-endian):最高有效字节(Most Significant Byte)存储在最低的内存地址。这符合人类的阅读习惯。小端序 (Little-endian):最低有效字节(Least Significant Byte)存储在最低的内存地址。Intel x86 架构的处理器就是典型的小端序。让我们用一个 32 位整数0x12345678来举例:
内存地址 大端序存储低 ----> 高 低 ----> 高+------+ +----+----+----+----+| 0x100 | | 12 | 34 | 56 | 78 |+------+ +----+----+----+----+| 0x101 | 小端序存储+------+ +----+----+----+----+| 0x102 | | 78 | 56 | 34 | 12 |+------+ +----+----+----+----+| 0x103 |+------+
不同的机器可能有不同的字节序,为了保证通信的正确性,互联网协议规定:所有在网络上传输的二进制数据,都必须采用大端序,这也被称为网络字节序 (Network Byte Order)。
为了方便开发者,C 语言等编程语言的网络库提供了htons()(Host to Network Short)、ntohl()(Network to Host Long) 等函数,用于在主机字节序和网络字节序之间进行自动转换。
IPv4 地址与 CIDR
IPv4 地址是一个 32 位的数字,通常被写成点分十进制的形式(如171.64.0.0)。为了高效地管理和路由,IP地址被分为网络部分和主机部分。
早期的 A、B、C 类地址划分方式非常僵化,造成了大量的地址浪费。如今,我们使用无类别域间路由 (Classless Inter-Domain Routing, CIDR)来分配和表示IP地址块。
CIDR 使用“IP 地址/前缀长度”的格式,例如171.64.0.0/16。这里的/16表示地址的前 16 位是网络部分,后32-16=16位是主机部分。这个前缀长度可以是任意的,极大地提高了地址分配的灵活性。
最长前缀匹配 (Longest Prefix Match)
当一个路由器收到数据包时,它如何决定从哪个端口转发出去呢?答案是查询其内部的转发表 (Forwarding Table),并遵循最长前缀匹配 (Longest Prefix Match, LPM)原则。
路由器的转发表由一系列 CIDR 条目组成。当一个数据包到达时,路由器会用其目的IP地址去匹配表中的所有条目,并选择前缀最长的那一个。
看一个例子:
路由器转发表+--------------------+--------------+| 前缀 | 下一跳 |+--------------------+--------------+| 128.10.0.0/16 | 接口 A || 128.10.1.0/24 | 接口 B || 0.0.0.0/0 | 接口 C | <-- 默认路由+--------------------+--------------+如果一个数据包的目的地址是128.10.2.5,它同时匹配/16和/0,但/16更长,所以数据包会从接口 A 转发。如果目的地址是128.10.1.5,它同时匹配/16、/24和/0。/24是最长的前缀,所以数据包会从接口 B 转发。如果目的地址是192.168.1.1,它只匹配/0(默认路由),所以会从接口 C 转发。
地址解析协议 (Address Resolution Protocol - ARP)
IP地址工作在网络层,它解决了全局路由的问题。但是当数据包到达最终的局域网后,如何把它准确地交给目标机器呢?这需要链路层的地址,也就是我们常说的MAC 地址。
地址解析协议 (Address Resolution Protocol, ARP)就是用来建立IP地址和 MAC 地址之间映射关系的桥梁。
工作流程如下:
主机 A 想给同一局域网下的主机 B (IP:192.168.1.100) 发送数据,但它只知道 B 的IP地址,不知道其 MAC 地址。主机 A 先检查自己的 ARP 缓存表,看是否有192.168.1.100的记录。如果没找到,主机 A 会在局域网内广播一个 ARP 请求包,内容是:“谁的IP地址是192.168.1.100?请告诉我你的 MAC 地址。”局域网内所有主机都会收到这个请求,但只有主机 B 会响应。主机 B 向主机 A 发送一个 ARP 响应包,内容是:“我的IP是192.168.1.100,我的 MAC 地址是XX:XX:XX:XX:XX:XX。”主机 A 收到响应后,就知道了主机 B 的 MAC 地址,并将这个映射关系存入自己的 ARP 缓存,然后就可以封装链路层帧并发送数据了。从宏观的分层设计,到IP协议简洁而强大的“薄腰”模型,再到字节序、地址分配、路由匹配和地址解析等具体实现,我们看到了互联网设计中的智慧与权衡。它通过“保持核心简单,将复杂性推向边缘”的端到端原则,构建了一个既稳定又极具创新活力的全球网络。理解这些基本原理,是深入学习更高级网络概念(如TCP的可靠传输、DNS的域名解析等)的坚实基础。
在上面的讨论中,我们探索了互联网的底层基石:从优雅的四层模型到作为“细腰”的 IP 协议。我们理解了数据包如何在网络中被寻址和路由。现在,让我们将目光上移,看看运行在这个坚实基础之上的应用程序,并探讨这个伟大的全球网络是如何演进、被治理,以及它将走向何方。
应用的千姿百态:不同的通信模型
几乎所有的网络应用程序,从浏览网页到视频通话,其核心诉求都可以归结为一个简单的模型:在两台计算机之间建立一个可靠的双向字节流 (reliable two-way byte stream)。这意味着程序可以像读写本地文件一样,向这个“管道”的一端写入数据,并确信这些数据会完整、有序地出现在另一端。TCP协议正是为满足这一需求而生。
然而,不同的应用在实现这一目标时,采用了截然不同的架构。
万维网 (World Wide Web):经典的客户端-服务器模型
这是我们最熟悉的模型。当你访问一个 时:
模型:严格的客户端-服务器 (Client-Server)模型。你的浏览器是客户端,运行 的机器是服务器。协议:HTTP(HyperText Transfer Protocol)。流程:你的浏览器(客户端)向 服务器的80或443端口发起一个TCP连接。连接建立后,浏览器发送一个HTTP GET请求,请求特定的网页资源。服务器处理请求,然后回送一个HTTP响应,其中包含状态码(如200 OK)和网页的HTML内容。浏览器接收并解析HTML,最终渲染出我们看到的页面。这个模型简单、直观,但所有压力都集中在服务器上。如果访问量过大,服务器就会不堪重负。
BitTorrent:去中心化的点对点模型
为了解决中心化下载的瓶颈,BitTorrent 采用了一种截然不同的方法:
模型:点对点 (Peer-to-Peer, P2P)模型。在这个网络中,每个参与者既是下载者(客户端),也是上传者(服务器)。核心概念:文件块 (Pieces):一个大文件被切分成许多小的数据块。
群 (Swarms):所有正在下载或共享同一个文件的用户的集合。
Tracker 服务器:一个协调者。它不存储文件本身,只负责记录当前“群”里有哪些用户(peer)在线,以及他们各自拥有哪些文件块。
流程
你打开一个.torrent文件,你的客户端联系 Tracker 服务器,获取当前在线的用户列表。你的客户端直接与其他用户建立TCP连接。你从不同的用户那里下载不同的文件块,同时,也将你已经下载好的文件块上传给其他需要的人。通过这种“人人为我,我为人人”的模式,下载的人越多,速度反而越快,极大地分散了带宽压力。
Skype:应对复杂现实的混合模型
Skype 的目标是让用户间的语音和视频通话尽可能流畅。然而,一个巨大的障碍是 网络地址转换 (Network Address Translator, NAT)。多数家庭和公司的设备都位于 NAT 路由器之后,它们拥有的是私有 IP 地址,无法从公网直接访问,这给 P2P 通信带来了巨大挑战。
为了穿透 NAT,Skype 设计了一套巧妙的混合模型:
会合服务器 (Rendezvous Server):当你登录 Skype 时,你的客户端会与一个公网上的会合服务器建立连接。这个服务器扮演着“介绍人”的角色。反向连接 (Reverse Connection):当 Alice 想呼叫位于 NAT 之后的 Bob 时,直接连接是行不通的。此时:Alice 的客户端通知会合服务器:“我想呼叫 Bob”。服务器找到 Bob 已经建立的连接,通过它向 Bob 的客户端发送指令:“Alice 想呼叫你,请你主动向 Alice 的公网 IP 和端口发起连接”。Bob 的客户端主动向 Alice 发起TCP连接。因为这个连接是从 NAT 内部发起的,所以能够成功穿透 NAT。中继服务器 (Relay Server):如果 Alice 和 Bob 双方都位于复杂的 NAT 之后,连反向连接也无法成功,该怎么办?此时,Skype 会启用最后的备用方案:
Alice 和 Bob 的客户端都分别与一台公网上的中继服务器建立连接。双方的通话数据包都先发送给中继服务器,再由服务器转发给对方。这三种连接方式的示意图如下:
// 理想情况:直接连接Alice <----------------------> Bob// 方案二:反向连接 (Bob 在 NAT 后)1. Alice -> Rendezvous Server -> Bob2. Bob ----------------------> Alice (Bob 主动发起连接)// 方案三:中继 (双方都在 NAT 后)Alice <--------> Relay Server <--------> Bob
Skype 的成功,很大程度上归功于这套务实的、多层次的连接策略,它优先尝试最高效的 P2P 连接,失败后则优雅地降级到服务器辅助的模式。
互联网的脉动:演进、治理与挑战
互联网并非一个一成不变的技术造物,它是一个不断发展、由全球社区共同治理的生命体。
谁在掌管互联网?
互联网没有单一的“所有者”,它的技术标准和资源分配由多个国际组织协同管理:
IETF (Internet Engineering Task Force):互联网工程任务组。它负责制定绝大多数互联网协议标准(如 IP, TCP, HTTP)。IETF 以其独特的“思想优胜制 (meritocracy of ideas)”和“大致共识与运行代码”的务实文化而闻名。W3C (World Wide Web Consortium):万维网联盟。它专注于 Web 应用层面的标准,如HTML、CSS等。ICANN (Internet Corporation for Assigned Names and Numbers):互联网名称与数字地址分配机构。它负责管理全球的域名系统(DNS)和 IP 地址的分配。演进案例:SIP 与 VoIP 的革命
在 1990 年代末,随着网络带宽和计算能力的提升,通过 IP 网络传输语音,即VoIP (Voice over IP),成为可能。这场革命的关键技术之一是会话发起协议 (Session Initiation Protocol, SIP)。
SIP 的诞生源于软交换 (Soft Switching)的思想:将传统昂贵、笨重的电话交换机的控制逻辑,用运行在通用计算机上的软件来替代。SIP 正是这样一种信令协议,它负责建立、修改和终止通话会照(如语音通话或视频会议)。
SIP 成为了连接传统电话世界和 IP 网络的桥梁。像 Skype Out/In 这样的服务,正是通过 SIP 协议,让你能用电脑呼叫一部普通的电话,反之亦然。然而,为了被市场和传统电信运营商广泛接受,SIP 在设计上做出了一些妥协,例如允许中间服务器查看信令信息,这在一定程度上偏离了互联网纯粹的端到端原则。
新兴趋势与未来挑战
互联网的演进从未停止,新的技术和挑战不断涌现:
软件定义网络 (Software Defined Networking, SDN):与软交换类似,SDN 将网络的控制平面(决定数据包如何路由)与数据平面(实际转发数据包)分离。这使得网络管理变得更加集中化、可编程和灵活,对传统的网络设备制造商构成了颠覆性的挑战。隐私与安全:“棱镜门”等事件引发了全球对网络监控的担忧。IETF 成立了PerPass等工作组,积极探讨如何通过加密和改进协议设计,来增强互联网的隐私保护能力。内容分发网络 (Content Distribution Networks, CDNs):像 Netflix、YouTube 等流量巨头,通过在全球部署 CDN 服务器,将内容缓存到离用户更近的地方,极大地提升了访问速度和网络效率。未来,不同 CDN 之间的协同工作将成为新的研究热点。传统网络融合的阵痛:当互联网与传统电话网络深度融合时,一些老问题也找到了新的“温床”。例如,骚扰电话 (Robocalling)利用 VoIP 技术的低成本和匿名性,变得愈发猖獗。如何建立跨网络的身份认证体系,以追溯和阻止这些骚扰行为,已成为一个紧迫的法律和技术难题。结语
从应用程序的精巧设计,到全球社区的协同治理,再到永不停歇的技术革新与挑战,我们看到互联网不仅是一组冰冷的协议,更是一个充满活力、不断自我完善的生态系统。它在连接信息的同时,也深刻地塑造着我们的社会。理解它的过去,洞察它的现在,是为了更好地参与并构建它的未来。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
嘻哈律动!七彩虹iGame RTX 50 Ultra系列显卡开售
七彩虹iGame RTX 50 Ultra系列显卡正式上市:全新黑色美学强势登场 2026年3月13日,显卡市场迎来重磅新品。国际知名硬件品牌七彩虹正式发布了旗下全新配色的iGame GeForce RTX 50 Ultra系列显卡。本次推出的深邃黑色版本,以极具侵略性的深色基调为核心设计语言,与经
从180°C蒸汽技术到行业白皮书 石头洗地机重构地面清洁标准
石头科技惊艳亮相AWE2026,以尖端智能清洁产品矩阵与突破性技术,定义现代家庭深度洁净新范式。 备受瞩目的2026年中国家电及消费电子博览会(AWE)于3月12日在上海正式启幕。全球顶尖的智能清洁品牌石头科技,携众多创新成果重磅登场,全面展现了其在洗地机、扫地机器人等领域的领先实力。展台上,全新发
荣耀Magic V6赤兔红首销告捷!开售20分钟全平台售罄
荣耀折叠旗舰Magic V6全面开售,赤兔红配色首发秒罄 荣耀新一代折叠屏旗舰Magic V6甫一亮相,便凭借其全面革新的综合体验,迅速引爆了市场消费热情。尤其是在昨日发布会后,备受瞩目的全新“赤兔红”配色版本开售即被抢购——短短二十分钟内,全渠道所有库存宣告售罄,其市场热度与用户认可度可见一斑。
飞利浦32M2N8800P显示器开售:4K 240Hz QD-OLED面板
飞利浦32英寸4K 240Hz OLED电竞显示器正式发售,首发价格5999元 3月13日,飞利浦推出了备受游戏玩家期待的新款显示设备——32M2N8800P。这款显示器率先在淘宝平台开启预售,核心卖点是将4K超高清分辨率、240Hz电竞级刷新率与自发光OLED面板技术深度结合。它不仅面向硬核电竞玩
荣耀林林称全新 MagicBook 数字系列和很多其它厂商思路非常不同,可提供不同屏幕和 ID 设计选择
荣耀全新MagicBook数字系列正式发布,差异化思路提供多元购买选择 近日,荣耀正式对外发布了旗下全新的MagicBook数字系列笔记本电脑,该系列的定位策略与市面上常见的“青春版”或“次旗舰”思路截然不同,呈现出独特的市场布局。荣耀中国区智慧生活业务部部长林林对此进行了深度解读。 他指出,全新M
- 日榜
- 周榜
- 月榜
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

