计算机网络与因特网

1.1 因特网是什么?

1.1.1 组成结构描述

  • 因特网连接了全球数十亿计算设备,包括传统计算机、服务器、智能手机、平板电脑和物联网设备。
  • 所有设备统称为“主机”或“终端系统”,2017年约有180亿设备接入,预计2022年达到285亿。
  • 网络通过通信链路和分组交换机将终端系统互联。
  • 数据传输时被分割为数据包,并添加头部信息。
  • 分组交换机主要包括路由器和链路层交换机,分别用于核心网络和接入网络。
  • 数据包在网络中经过的路径称为路由或路径。
  • Cisco预测到2022年全球IP流量将达到每年近5泽字节(Zettabytes)。
  • 网络服务提供商(ISP)提供多种接入方式,如宽带、局域网、移动无线等。
  • ISP之间通过国家和国际层级的上层ISP互连。
  • 因特网运行协议控制信息发送和接收,其中TCP和IP是最重要的两个协议。
  • 因特网标准由IETF制定,文档称为RFC(请求评论),定义了TCP、IP、HTTP、SMTP等协议。
  • IEEE 802委员会制定了以太网和WiFi等链路标准。

1.1.2 服务视角描述

  • 因特网可看作一个为分布式应用提供服务的基础设施。
  • 常见应用包括电子邮件、网页浏览、移动应用、实时交通地图、音乐/视频流、社交媒体、视频会议、多人游戏、基于位置的推荐系统等。
  • 应用程序运行在终端系统上,而非网络核心的分组交换机中。
  • 程序间的数据交换依赖于网络提供的服务接口——套接字(Socket)接口。
  • 类比邮政服务:程序需遵循特定规则(如封装数据、指定目标地址)才能让因特网正确传输数据。
  • 因特网提供多种服务供不同应用选择。

1.1.3 协议是什么?

image-20250712220647112
  • 协议定义了多个实体之间消息的格式、顺序及发送/接收消息时采取的动作。
  • 类比人类交流中的礼仪:问候语→回应→进一步沟通。
  • 如果通信双方使用不同协议,则无法正常交互。
  • 网络协议由硬件或软件组件实现,例如:
    • 物理链路上的比特流控制协议;
    • 拥塞控制协议;
    • 路由器中的路径选择协议。
  • 示例:访问Web服务器时的协议流程:
    • 客户端发送连接请求;
    • 服务器响应连接;
    • 客户端发送GET请求获取页面;
    • 服务器返回页面内容。
  • 协议的核心要素:消息格式、顺序、处理动作。

1.2 网络边缘

1.2.1 接入网络

家庭接入方式

  • DSL
    • 使用电话线进行数据传输;
    • 下行速率可达52 Mbps,上行16 Mbps;
    • 采用频分复用技术分离语音和数据信号;
    • 受距离限制,通常不超过5~10英里。
  • 电缆接入(Cable)
    • 利用有线电视网络基础设施;
    • 采用混合光纤同轴(HFC)架构;
    • 下行速率可达1.2 Gbps,上行100 Mbps;
    • 是共享广播介质,用户并发下载会影响实际速率;
    • 需要多路访问协议协调上传数据传输。
  • 光纤到户(FTTH)
    • 提供高达Gbps级别的接入速度;
    • 包括主动光网络(AON)和被动光网络(PON)两种架构;
    • PON示例:Verizon FiOS;
    • 使用ONT(光网络终端)和OLT(光线路终端)完成光电转换。
  • 5G固定无线接入
    • 不需要铺设物理线路;
    • 使用波束成形技术从基站向家庭发送数据;
    • 提供高速住宅接入;
    • 与WiFi路由器集成使用。

企业与家庭LAN接入

  • 以太网
    • 最常见的局域网技术;
    • 用户通过双绞铜线连接至以太网交换机;
    • 传输速率可达100 Mbps至10 Gbps。
  • WiFi(IEEE 802.11)
    • 无线局域网技术;
    • 支持高达100 Mbps以上的共享传输速率;
    • 广泛应用于大学、办公室、咖啡馆、家庭等场景;
    • 用户需靠近接入点(通常几十米范围内)。

移动广域无线接入

  • 3G / 4G LTE / 5G
    • 用于移动设备的数据通信;
    • 支持消息、照片分享、移动支付、视频流等功能;
    • 覆盖范围远大于WiFi(可达数十公里);
    • 5G提供更高带宽和更低延迟;
    • 第4代(4G)下载速率最高可达60 Mbps;
    • 第5代(5G)正在部署中,支持更高速率和大规模物联网接入。

1.2.2 物理媒体

引导型介质

  • 双绞线铜缆(Twisted Pair)
    • 成本最低、最常用的引导型传输介质;
    • 用于电话网络和以太网接入;
    • 支持10 Mbps至10 Gbps速率(取决于线径和距离);
    • Cat6a类电缆可在百米内实现10 Gbps。
  • 同轴电缆(Coaxial Cable)
    • 用于有线电视系统和互联网接入;
    • 支持高数据传输速率;
    • 可作为共享介质,多个终端系统共用一条电缆;
    • DOCSIS标准支持下行1.2 Gbps、上行100 Mbps。
  • 光纤(Fiber Optics)
    • 传输光脉冲表示比特;
    • 支持数十甚至数百Gbps的传输速率;
    • 抗电磁干扰、低信号衰减(可达100 km);
    • 适合长距离传输,广泛用于长途电话网和因特网骨干;
    • OC标准速率从51.8 Mbps至39.8 Gbps(OC-1至OC-768);
    • 成本较高,主要用于骨干网络和数据中心。

非引导型介质(无线)

  • 地面无线电频道
    • 无需物理布线;
    • 可穿透墙壁、支持移动接入;
    • 根据覆盖范围分为短距(几米)、局域(十至几百米)、广域(数十公里);
    • 存在路径损耗、阴影衰落、多径衰落和干扰问题;
    • 应用于蓝牙、WiFi、蜂窝网络等。
  • 卫星无线电频道
    • 通信卫星连接地球站;
    • 接收信号后通过转发器再生并重新发射;
    • 两类卫星:
      • 地球同步卫星(Geostationary):位于36,000 km高空,存在约280 ms传播延迟;
      • 低轨卫星(LEO):轨道高度较低,绕地运行,需多颗卫星实现连续覆盖;
    • 卫星链路常用于无DSL或有线接入的偏远地区;
    • LEO卫星未来可能用于互联网接入。## 1.3 网络核心

1.3.1 分组交换Packet Switching

路由器 必须接收到整个数据包之后,才能开始将它发送到下一个链路。也就是说,不能“边收边发”。

存储转发传输

image-20250712221524803
  • 数据包在发送前必须被完整接收。
  • 发送时间计算公式为 L/R(L 为数据包大小,R 为链路速率)。
  • 示例:源发送 3 个数据包时,总延迟为 4L/R。
解释

源主机有 3 个数据包,每个数据包大小为 L bits

每条链路的传输速率为 R bps (bits per second)

不考虑传播延迟(propagation delay)或排队、处理时间

使用存储转发(store-and-forward)方式进行传输

  1. 源开始发送数据包 1(大小为 L 位)
  2. 经过时间 L/R 秒后,源完成发送,路由器完全收到整个数据包
  3. 路由器这时才开始发送数据包 1
  4. 再经过 L/R 秒,目的主机收到这个数据包

👉 所以,总延迟为: \[ \text{总延迟} = \frac{L}{R} + \frac{L}{R} = \frac{2L}{R} \]


📦 多个数据包的流水传输(以 3 个为例)

  • 第 1 个数据包到达目的地的时间是 2L/R
  • 第 2 个数据包到达目的地的时间是 3L/R
  • 第 3 个数据包到达目的地的时间是 4L/R

为什么不是每个都 2L/R?因为数据包之间是流水线式重叠发送

  • 当路由器转发第 1 个数据包时,源可以开始发送第 2 个
  • 这种流水线效应减少了整体延迟
全部传完的时间 = 4L/R

排队延迟与丢包

image-20250712222003115
  • 输出缓冲区存储等待传输的数据包。

  • 延迟取决于网络拥塞程度。分组在缓冲区中等着被发送,这个等待时间是不确定且可变的,取决于网络的拥塞程度

  • 缓冲区满时会导致数据包丢失。

  • 类比银行排队或收费站等待。排队等候服务的顾客就像在缓冲区中的分组

    如果银行空间满了,新来的人就只能被拒绝(丢包)

转发表与路由协议

当一个 分组(packet) 到达路由器时,它并不知道接下来应该去哪个方向。这就像人在路口迷路一样,不知道该往哪个出口走。

🧠 解决办法:每个路由器都有一张“转发表(forwarding table)”来查路!

  • 每个终端系统有 IP 地址,路由器根据地址查找转发表。
  • 转发表映射目的地址到输出链路。是一个查找表,记录着:目标地址(或部分地址) → 哪条出链路(outbound link)
  • 问题:转发表是怎么设置的?路由器通过路由协议自动设置转发表。
  • 路由协议的作用是:
    • 交换网络中的路由信息
    • 计算从每个路由器到每个目的地的最佳路径
    • 然后自动设置好各个路由器的转发表
  • 路由协议决定最短路径并配置转发表。

1.3.2 电路交换

在网络中,有两种主要方式来传输数据:

方式 特点
电路交换(Circuit Switching) 在通信开始前建立连接并预留资源
分组交换(Packet Switching) 按需使用资源,无需事先预留

基本概念

  • 在通信会话期间预留资源(缓存、链路带宽)。

  • 区别于分组交换,资源不按需使用。

  • 类比餐厅预订:提前预留桌位 vs 到达后可能需要等待。

    • 餐厅类型 类比什么网络? 特点
      需要提前预订的餐厅 电路交换 虽然要提前打电话预约,但到了直接入座
      不需要预约的餐厅 分组交换 省事,但可能到了现场要排队等位

多路复用技术

  • 频分多路复用 (FDM)
    • 频率谱划分为多个频段。
    • 每个连接独占一个频段。
  • 时分多路复用 (TDM)
    • 时间划分为帧,每帧包含多个时隙。
    • 每个连接占用固定时隙。
    • 传输速率为帧率 × 每时隙比特数。

分组交换 vs 电路交换

  • 分组交换优势
    • 更高效共享传输容量。
    • 实现更简单、成本更低。
    • 支持突发流量。
  • 电路交换优势
    • 提供可预测的端到端延迟。
    • 适合实时服务(如电话、视频会议)。
  • 示例分析表明分组交换在统计上优于电路交换。

1.3.3 网络的网络结构

网络结构演进

  • 结构 1:所有接入 ISP 连接单一全球骨干 ISP。
  • 结构 2:多个全球骨干 ISP 竞争。
  • 结构 3:引入区域 ISP 和 Tier-1 ISP。
  • 结构 4:增加 PoP、多宿主、对等互联和 IXP。
  • 结构 5:加入内容提供商网络(如 Google)。

对等互联与 IXPs

  • 同级 ISP 可直接对等互联以减少费用。
  • 对等通常免结算费用。
  • 第三方建立 IXP 提供多个 ISP 的对等平台。
  • 全球已有超过 600 个 IXP。

内容提供商网络

  • 如 Google 自建私有网络,连接至较低层级 ISP。
  • 减少向高层 ISP 支付费用。
  • 更好控制服务交付质量。
  • 仍需连接至 Tier-1 ISP 以覆盖更多用户。

1.4 分组交换网络中的延迟、丢包与吞吐量

1.4.1 分组交换网络中的延迟概述

延迟类型

image-20250712223426654
  • 处理延迟 (dproc)
    • 检查数据包头部、错误检测。
    • 高速路由器中通常为微秒级。
  • 排队延迟 (dqueue)
    • 等待传输的时间。
    • 依赖流量强度和到达模式。
  • 传输延迟 (dtrans)
    • 将数据包推入链路所需时间。
    • 计算公式为 L/R。
  • 传播延迟 (dprop)
    • 比特从一个路由器传播到下一个的时间。
    • 与距离成正比,速度约为光速的 2/3。

总节点延迟公式

  • dnodal = dproc + dqueue + dtrans + dprop

类比理解

  • 高速公路类比:
    • 路程 = 传播延迟。
    • 收费站处理 = 传输延迟。
    • 车辆车队 = 数据包序列。

1.4.2 排队延迟与丢包

排队延迟特性

  • 随流量强度 La/R 变化。
  • 当 La/R > 1 时,队列无限增长,延迟趋近无穷。
  • 平均排队延迟随流量强度接近 1 而迅速上升。

丢包机制

  • 队列容量有限,满时丢弃新到达的数据包。
  • 用户视角表现为数据包进入网络但未到达目的地。
  • 丢包概率随流量强度增加而上升。

1.4.3 端到端延迟

总延迟计算

  • dend-end = N × (dproc + dtrans + dprop)
  • 扩展公式考虑异构延迟和平均排队延迟。

Traceroute 工具

  • 测量路径及各跳延迟。
  • 示例输出显示 14 个中间路由器及其往返延迟。
  • 可观察跨大西洋光纤链路带来的显著传播延迟。

1.4.4 网络吞吐量

定义与计算

  • 瞬时吞吐量:接收端每秒接收比特数。
  • 平均吞吐量:文件大小 F / 总传输时间 T。
  • 影响因素包括瓶颈链路速率、并发流量等。

示例分析

  • 两链路网络:吞吐量 = min{Rs, Rc}
  • N 条链路网络:吞吐量 = min{R1, R2, …, RN}
  • 核心网过载:若共享链路 R 为瓶颈,吞吐量 = R / 下载数量。

现实网络影响因素

  • 核心网通常高带宽,瓶颈常在接入网。
  • 多用户下载时共享链路可能导致吞吐下降。## 1.5 协议层次及其服务模型

1.5.1 分层架构

航空系统的类比

  • 将航空系统功能划分为多个层级,如购票、行李托运、登机口、起飞降落、航线调度等。
  • 每一层通过本层操作和下层服务实现特定功能,例如登机层使用跑道到跑道的运输服务完成乘客上下飞机。

网络协议的分层

  • 网络协议也采用分层结构,每层提供特定服务并依赖下层服务。
  • 分层优势:模块化设计便于更新与维护;改变某层实现不影响其他部分。
  • 缺点:可能重复实现底层功能(如链路层与端到端错误恢复);跨层信息需求破坏分层隔离。

1.5.2 因特网协议栈

五层模型

  • 应用层
    • 包含HTTP、SMTP、FTP等协议;
    • 提供Web请求、电子邮件、文件传输等功能;
    • DNS用于域名解析为IP地址。
  • 传输层
    • 使用TCP或UDP协议;
    • TCP提供可靠连接、流量控制、拥塞控制;
    • UDP提供无连接、不可靠传输。
  • 网络层(IP层)
    • 负责将数据报从源主机传送到目的主机;
    • IP协议定义数据报格式及路由器处理方式;
    • 包含多种路由协议决定路径。
  • 链路层
    • 在相邻节点间传输帧;
    • 支持以太网、WiFi、DOCSIS等协议;
    • 不同链路可能使用不同链路层协议。
  • 物理层
    • 传输比特流;
    • 依赖具体传输介质(双绞线、光纤等);
    • Ethernet有多种物理层标准适配不同介质。

1.5.3 封装过程

  • 数据在发送端逐层封装,添加各层头部信息。
  • 应用层消息 → 传输层添加Ht生成段 → 网络层添加Hn生成数据报 → 链路层添加Hl生成帧。
  • 接收端逐层剥离头部,还原原始数据。
  • 类比:公司内部备忘录通过多层信封封装邮寄,接收方逐步拆封。

1.6 网络攻击

常见安全威胁

恶意软件感染

  • 网络上传输的数据可能包含病毒、蠕虫、木马等恶意程序;
  • 感染后可能导致文件删除、隐私窃取、加入僵尸网络;
  • 自我复制机制使传播速度呈指数级增长。

拒绝服务攻击(DoS/DDoS)

  • 漏洞攻击:向目标发送精心构造的数据包导致崩溃。
  • 带宽洪水攻击:发送大量数据包阻塞目标访问链路。
  • 连接洪水攻击:建立大量虚假TCP连接耗尽资源。
  • DDoS利用僵尸网络发起分布式攻击,更难检测与防御。

数据包嗅探

  • 在无线或广播环境中被动监听所有传输数据;
  • Wireshark等工具可轻松捕获敏感信息;
  • 加密是主要防御手段。

欺骗攻击

  • 构造虚假源地址的数据包进行伪装;
  • 可能误导路由器修改转发表;
  • 需要端到端身份验证机制防范。

1.7 计算机网络与因特网的发展历史

1.7.1 分组交换技术的诞生(1961–1972)

  • Leonard Kleinrock提出排队理论支持分组交换;
  • Paul Baran(Rand Institute)与Donald Davies(NPL)独立研究分组交换;
  • ARPAnet于1969年部署首个节点,成为因特网前身;
  • 1972年推出首个主机间通信协议NCP;
  • Ray Tomlinson发明电子邮件系统。

1.7.2 专用网络与互联网络(1972–1980)

  • 出现ALOHANet、Telenet、Cyclades等私有网络;
  • Cerf与Kahn提出互联网架构,开发TCP/IP协议;
  • TCP早期版本整合可靠传输与转发功能;
  • 后期分离出IP与UDP协议;
  • ALOHA协议启发以太网发展;
  • Metcalfe与Boggs开发以太网奠定局域网基础。

1.7.3 网络大爆发(1980–1990)

  • ARPAnet连接约200台主机,1990年全球因特网主机达10万;
  • BITNET、CSNET、NSFNET推动大学互联;
  • NSFNET主干速率从56kbps提升至1.5Mbps;
  • 1983年ARPAnet全面切换至TCP/IP;
  • Jacobson提出基于主机的拥塞控制机制;
  • DNS系统研发成功,实现域名到IP的映射;
  • 法国Minitel项目推广家庭数据网络,早于互联网普及。

1.7.4 因特网爆炸性发展(1990年代)

  • NSFNET解除商业用途限制,商业化进程开启;
  • WWW由Tim Berners-Lee在CERN发明,结合HTML、HTTP、浏览器、服务器四大要素;
  • Mosaic/Netscape浏览器推动Web普及;
  • 微软加入引发浏览器大战;
  • 电子商务、即时通讯、P2P文件共享成为“杀手级应用”;
  • 互联网泡沫破裂后,Google、Amazon、eBay等企业崛起。

1.7.5 新世纪的发展(2000年至今)

  • 宽带接入普及(DSL、FTTH、5G固定无线);
  • 视频流媒体(YouTube、Netflix)、视频会议(Skype、FaceTime)兴起;
  • 无线设备数量超过有线设备,智能手机推动移动互联网;
  • 社交网络(Facebook、Twitter、微信)构建人与人之间的大规模连接;
  • 大型云服务商(Google、Microsoft、阿里云)建设私有骨干网优化性能;
  • 云计算平台(AWS、Azure)提供弹性计算与存储服务。## 1.8 小结

网络组成与结构

  • 因特网是由硬件和软件组成的复杂网络系统。
  • 从网络边缘开始,介绍了终端系统(主机)、应用程序以及传输层提供的服务。
  • 接入网络中常见的链路层技术和物理媒体被详细探讨。
  • 深入到网络核心,分析了分组交换与电路交换两种基本数据传输方式,并比较了它们的优缺点。
  • 因特网是“网络的网络”,其层级结构由不同级别的ISP构成,这种结构支持因特网扩展至数千个网络。

核心网络概念

  • 分析了分组交换网络中的延迟、吞吐量和丢包原因。
  • 建立了传输延迟、传播延迟、排队延迟及吞吐量的定量模型。
  • 协议分层和服务模型是网络架构的关键原则。
  • 调查了当前因特网中普遍的安全攻击问题。
  • 简要回顾了计算机网络的发展历史。

学习路径与章节安排

本书路线图

  • 第2章至第6章为核心内容,围绕五层因特网协议栈的上四层展开:
    • 第2章:应用层
    • 第3章:传输层
    • 第4章:网络层(数据平面)
    • 第5章:网络层(控制平面)
    • 第6章:链路层与局域网
  • 第7章和第8章聚焦现代网络中的两个重要主题:
    • 第7章:无线与移动网络(包括WiFi、蓝牙、蜂窝网络等)
    • 第8章:网络安全(加密基础与安全应用)

教学方法说明

  • 采用自顶向下的教学方式,先学习应用层以理解所需网络服务,再向下探索其实现方式。
  • 提前讲解应用层有助于激发后续学习的兴趣与动机。

思维导图节点补充

作业与练习题概览

第1.1节

  • 主机与终端系统的定义与区别
  • 协议在外交关系中的类比解释
  • 协议标准化的重要性

第1.2节

  • 四种接入技术及其分类(家庭、企业、广域无线)
  • HFC的共享特性与冲突可能性
  • 不同地区的住宅接入技术比较

第1.3节

  • 分组交换网络中的端到端延迟计算
  • 电路交换与分组交换的优劣对比
  • ISP对等与IXP盈利机制
  • 内容提供商自建网络的原因(如Google)

第1.4节

  • 延迟组件分析(传输、传播、处理、排队)
  • 数据包传播时间与传输速率的关系
  • 吞吐量计算与文件传输时间估算

第1.5节

  • 协议分层任务分配与职责划分
  • 分层中可能存在的重复功能
  • 路由器、链路层交换机和主机处理的层次

第1.6节

  • 自我复制型恶意软件的概念
  • 僵尸网络构建与DDoS攻击原理
  • 中间人攻击(Trudy)可能造成的危害

问题与练习摘要

应用层协议设计

  • 设计ATM与银行主机之间的协议流程,包括验证、查询余额和取款操作。

延迟与吞吐量分析

  • 计算多个链路下的端到端延迟
  • 分析数据包在不同链路条件下的传播与传输行为
  • 探索实时语音传输(VoIP)的时间延迟因素

分组交换与电路交换比较

  • 用户共享链路时的并发使用概率计算
  • 使用二项分布模型分析同时传输用户数的概率分布

网络性能评估

  • 利用Little公式计算平均数据包到达率
  • Traceroute实验分析路由路径与延迟变化
  • Metcalfe定律验证:网络价值与用户数量平方关系

数据传输方式选择

  • 大文件传输场景下,比较通过高速链路传输与使用快递服务(如FedEx)的效率

卫星通信与带宽延迟积

  • 计算地球同步卫星链路的传播延迟与带宽延迟积
  • 探讨连续传输所需的最小图像大小

消息分段与网络性能优化

  • 比较有无消息分段时的数据传输时间
  • 分析消息分段的优势与潜在缺点
  • 寻找最优分段大小以最小化传输延迟

实际应用案例

  • Skype如何实现PC到普通电话的通话(结合因特网与电话网络)### Wireshark 实验

网络协议观察工具

  • Wireshark 是一种免费的网络封包嗅探器,可在 Windows、Linux/Unix 和 Mac 系统上运行。
  • 它可以捕获和显示计算机发送和接收的消息内容,包括各协议字段的详细信息。
  • 用户可通过图形界面查看捕获的数据包列表、选中数据包的头部细节以及其十六进制和 ASCII 内容。

实验目的与方法

  • 通过实际操作加深对网络协议的理解。
  • 观察两个协议实体之间交换消息的顺序,深入研究协议运作机制。
  • 在真实网络环境中(如因特网)运行应用程序并分析其使用的网络协议。
  • 学生将作为实验的一部分,亲自参与协议行为的触发与观察。

实验内容示例

  • 下载并安装 Wireshark 工具。
  • 使用浏览器访问网站并捕获浏览器与服务器之间的通信过程。
  • 深入了解 HTTP 协议交互流程。

访谈:Leonard Kleinrock 的互联网愿景

职业背景

  • Leonard Kleinrock 是加州大学洛杉矶分校(UCLA)的计算机科学教授。
  • 1961 年提出分组交换数学理论,成为互联网核心技术基础。
  • 1969 年 UCLA 的计算机成为首个互联网节点。

对互联网诞生的回忆

  • 第一条主机间消息为“Log”,但“g”导致斯坦福主机崩溃,最终消息变为“Lo!”。
  • 当时未意识到这一事件的历史意义,仅用于远程登录测试。
  • 早前曾预言未来可通过家庭或办公室设备轻松接入计算资源,如今已实现。

未来网络愿景

  • 基础设施方面
    • 无线和移动设备将在智能空间中广泛应用,形成“隐形互联网”。
    • 环境中的各种物体(桌椅、墙壁、穿戴设备等)将具备感知、处理和通信能力。
    • 房间能识别用户进入,环境可自然响应语音、手势甚至脑机接口指令。
  • 技术组件方面
    • 部署定制化智能软件代理,动态挖掘和处理数据。
    • 区块链技术提供不可篡改的分布式账本和信誉系统。
    • 自组织系统管理高速网络流量。
  • 应用与服务方面
    • 应用往往出人意料地快速涌现,如电子邮件、社交网络、短视频分享等。
    • 未来仍将持续出现“突如其来”的创新服务。

对学生的建议

  • 互联网是一个充满挑战与机遇的新领域。
  • 不要被现有技术所限制,应大胆想象并推动技术进步。

应用层

2.1 网络应用原理

2.1.1 网络应用架构

image-20250712230335689

客户端-服务器架构

  • 服务器始终在线,为多个客户端提供服务。
  • 客户端不直接通信,通过服务器中转。
  • 服务器具有固定、已知的IP地址。
  • 常见应用:Web、FTP、Telnet、电子邮件。

对等网络(P2P)架构

每个节点既可以作为客户端,也可以作为服务器. 也可以在一个通信会话中明确谁是 client、谁是 server:谁发起连接就是 client。

  • 最少或无依赖中心服务器。
  • 直接在对等主机之间通信。
  • 用户设备作为节点,自行上传和下载数据。
  • 自扩展性强,资源利用率高。
  • 成本低但面临安全与稳定性挑战。
  • 示例:BitTorrent 文件共享。

2.1.2 进程通信

在网络中运行的其实不是“程序”,而是“进程(process)”在相互通信:

  • 进程:在一个终端系统中运行的程序的实例(运行态的程序)。
情况 通信方式
两个进程在同一个主机上 使用 操作系统提供的进程间通信机制(如管道、消息队列、共享内存等)
两个进程在不同主机上 必须通过 计算机网络进行通信,也就是我们重点要学习的内容

进程与套接字

image-20250712230825414
  • 套接字就像进程用来收发消息的“门”。每个进程通过 socket 和网络打交道:
    • 要发消息:把消息通过 socket 发出去
    • 要收消息:通过 socket 接收
  • 网络应用由多台终端上的进程组成。
  • 进程间通过交换消息通信。
  • 消息通过“套接字”进出网络。在五层协议栈中,socket 位于应用层和传输层之间
  • 类比房屋与门:进程是房屋,套接字是门。

客户端与服务器进程定义

  • 发起通信的进程为客户端。
  • 等待连接的进程为服务器。
  • 在特定会话中,一个进程可以同时是客户端和服务器。

地址标识

  • 主机通过IP地址唯一标识。
  • 进程通过端口号识别。
  • 常见端口:
    • Web服务器:80;
    • 邮件服务器(SMTP):25;
    • 列表可在 iana.org 查看。

2.1.3 应用可获得的传输服务

可靠数据传输

  • 数据包可能在网络中丢失或损坏。
  • 重要应用(如邮件、文件传输)需要可靠传输。
  • TCP 提供可靠数据传输服务。
  • 多媒体应用容忍一定数据丢失。

吞吐量

  • 吞吐量指发送方到接收方的数据传输速率。
  • 传输协议可提供保证吞吐量的服务。
  • 实时语音/视频应用需最低吞吐量保障。
  • 弹性应用(如邮件)适应不同吞吐量。

时间延迟

  • 传输延迟影响实时应用体验。
  • 实时通信、多人游戏等要求严格时间控制。
  • 非实时应用偏好低延迟但无硬性限制。

安全性

  • 传输层可提供加密、完整性验证、身份认证。
  • TLS 是 TCP 的增强版,提供加密与安全服务。
  • UDP 不提供安全性,需上层实现。

2.1.4 Internet 提供的传输服务

TCP 特性

  • 面向连接:握手建立连接,全双工通信。
  • 可靠传输:确保数据完整有序到达。
  • 流量控制:防止接收方缓冲区溢出。
  • 拥塞控制:调节发送速率以避免网络拥塞。

UDP 特性

  • 无连接:无需握手,直接发送数据。
  • 不可靠传输:不保证数据送达或顺序。
  • 适用于实时应用(如语音通话、游戏)。
  • 缺乏拥塞控制,可能导致网络拥堵。

不提供的服务

  • 不保证吞吐量与时延。
  • 实时应用需自身设计机制应对不确定性。

2.1.5 应用层协议

  • 定义进程间消息格式、语义、交互规则。
  • 公共协议如 HTTP、SMTP、FTP。
  • 私有协议如 Skype 使用自有协议。
  • 协议是网络应用的重要组成部分,但非全部。

2.1.6 本书涵盖的应用

  • Web:HTTP 协议为核心。
  • 电子邮件:使用 SMTP、POP、IMAP。
  • DNS:域名解析服务。
  • 视频流:基于 DASH 或其他协议。
  • P2P 文件共享:如 BitTorrent。

2.2 Web 与 HTTP

2.2.1 HTTP 概述

  • HTTP 是 Web 的应用层协议。
  • 客户端(浏览器)与服务器交互获取网页。
  • 使用 TCP 作为传输协议。
  • 无状态协议:每次请求独立处理。

2.2.2 HTTP 请求方法

  • GET:请求文档。
  • POST:提交数据。
  • HEAD、PUT、DELETE 等用于其他用途。

2.2.3 HTTP 响应状态码

  • 2xx:成功(如 200 OK)。
  • 3xx:重定向。
  • 4xx:客户端错误(如 404 Not Found)。
  • 5xx:服务器错误(如 500 Internal Server Error)。

2.2.4 非持续与持续连接

  • 非持续连接:每个请求单独建立 TCP 连接。
  • 持续连接:复用单个 TCP 连接发送多个请求。
  • 服务器通过 Set-Cookie 头设置 Cookie。
  • 客户端在后续请求中携带 Cookie。
  • 用于用户跟踪、个性化内容等。

2.2.6 Web 缓存(代理服务器)

  • 缓存服务器保存副本,减少原始服务器负载。
  • 减少响应时间,节省带宽。
  • 使用 If-Modified-Since 验证缓存有效性。

2.2.7 条件 GET

  • 如果资源未修改,则返回 304 Not Modified。
  • 减少不必要的数据传输。## 2.2 Web 与 HTTP

2.2.1 HTTP 概述

Web 的发展背景

  • 1990年代前,互联网主要用于科研和学术交流。
  • 1990年代初,万维网(World Wide Web)出现,成为首个面向大众的互联网应用。
  • Web 的核心协议是 HTTP,定义在 RFC 1945、RFC 7230 和 RFC 7540 中。
  • Web 改变了人们的工作和生活方式,成为互联网的核心平台。

Web 页面与对象

  • Web 页面由多个对象组成,如 HTML 文件、图片、视频等。
  • 每个对象通过 URL 定位,包含主机名和路径名。
  • 例如:http://www.someSchool.edu/someDepartment/picture.gif
  • 浏览器实现 HTTP 客户端,服务器实现 HTTP 服务端。

HTTP 的工作方式

  • 使用 TCP 作为传输协议。
  • 客户端发起 TCP 连接,发送 HTTP 请求。
  • 服务器响应请求,返回 HTTP 响应。
  • HTTP 是无状态协议,服务器不保存客户端状态信息。

2.2.2 非持续连接与持续连接

非持续连接(HTTP/1.0)

  • 每个对象请求后关闭 TCP 连接。
  • 每次请求需建立新连接,造成延迟。
  • 示例:请求包含 1 个 HTML 和 10 张图片的页面需建立 11 个 TCP 连接。
  • 总响应时间 ≈ 2 RTT + 传输时间。

持续连接(HTTP/1.1)

  • 服务器在发送响应后保持 TCP 连接。
  • 同一连接可传输多个请求/响应。
  • 支持流水线(pipelining),请求连续发送。
  • 默认使用持续连接,性能更优。

2.2.3 HTTP 消息格式

HTTP 请求消息

  • 包含请求行、头部行、空行和实体体。
  • 请求行包含方法(GET、POST 等)、URL 和 HTTP 版本。
  • 常见头部:
    • Host:请求主机;
    • Connection: close 表示非持续连接;
    • User-Agent:浏览器类型;
    • Accept-Language:语言偏好。

HTTP 响应消息

  • 包含状态行、头部行、空行和实体体。
  • 状态行包含 HTTP 版本、状态码和状态消息。
  • 常见状态码:
    • 200 OK:请求成功;
    • 301 Moved Permanently:对象永久移动;
    • 400 Bad Request:请求格式错误;
    • 404 Not Found:对象不存在;
    • 505 HTTP Version Not Supported:协议版本不支持。
  • 常见头部:
    • Connection: close 表示关闭连接;
    • Date:响应生成时间;
    • Server:服务器类型;
    • Last-Modified:对象最后修改时间;
    • Content-Length:对象大小;
    • Content-Type:对象类型。

2.2.4 用户-服务器交互:Cookie

  • HTTP 响应中的 Set-Cookie 头部;
  • HTTP 请求中的 Cookie 头部;
  • 浏览器管理的 Cookie 文件;
  • 网站的后端数据库。
  • 用户首次访问网站,服务器生成唯一 ID;
  • 浏览器将 ID 存入 Cookie 文件;
  • 后续请求自动携带 Cookie ID;
  • 服务器通过 ID 识别用户,提供个性化服务。
  • 购物车管理;
  • 用户身份识别;
  • 个性化推荐;
  • 登录状态保持。

隐私问题

  • 可能被用于用户行为追踪;
  • 存在隐私泄露风险。

2.2.5 Web 缓存(代理服务器)

Web 缓存的工作原理

  • 代理服务器存储常用对象副本;
  • 用户请求首先发送到代理服务器;
  • 若缓存命中,直接返回对象;
  • 若未命中,代理服务器向源服务器请求并缓存。

Web 缓存的优势

  • 减少响应时间;
  • 降低网络带宽需求;
  • 减轻源服务器负载;
  • 提高整体网络性能。

缓存示例

  • 机构网络通过缓存降低对外带宽压力;
  • CDN(内容分发网络)广泛使用缓存技术;
  • 共享 CDN(如 Akamai)和专用 CDN(如 Google、Netflix)。

2.2.6 条件 GET

缓存对象更新机制

  • 缓存对象可能过期;
  • HTTP 提供条件 GET 机制验证对象是否更新;
  • 使用 If-Modified-Since 头部进行验证。

条件 GET 流程

  • 缓存向服务器发送带 If-Modified-Since 的 GET 请求;
  • 若对象未修改,服务器返回 304 Not Modified;
  • 缓存继续使用本地副本;
  • 若对象已修改,服务器返回新对象。

2.2.7 HTTP/2

HTTP/2 的目标

  • 减少感知延迟;
  • 支持请求/响应多路复用;
  • 提供请求优先级和服务器推送;
  • 高效压缩头部字段。

HTTP/2 的核心技术

  • 帧化(Framing):将消息拆分为小帧,交错传输;
  • 优先级(Prioritization):按权重优先传输重要对象;
  • 服务器推送(Server Push):提前推送后续所需对象;
  • 二进制编码:提升解析效率,减少帧大小。

HTTP/2 的优势

  • 减少 TCP 连接数量;
  • 避免 Head-of-Line(HOL)阻塞;
  • 支持多路复用;
  • 提升网页加载速度。

2.2.8 HTTP/3

HTTP/3 的基础

  • 基于 QUIC 协议(应用层协议,运行于 UDP);
  • 提供多路复用、流控、快速连接建立等特性。

HTTP/3 的特点

  • 许多 HTTP/2 功能由 QUIC 实现;
  • 设计更简洁高效;
  • 正在标准化中(截至 2020 年)。## 2.3 因特网中的电子邮件

2.3.1 SMTP

  • SMTP 是因特网电子邮件的核心协议,用于从发送方邮件服务器向接收方邮件服务器传输邮件。
  • 使用 TCP 提供的可靠数据传输服务。
  • 邮件内容限制为 7 位 ASCII 编码,需对多媒体内容进行编码。
  • SMTP 客户端与服务器在发送邮件时直接通信,不使用中间邮件服务器。
  • 示例流程:
    • Alice 使用用户代理编写邮件并发送;
    • 邮件进入 Alice 邮件服务器的队列;
    • SMTP 客户端连接 Bob 邮件服务器并发送邮件;
    • Bob 邮件服务器接收邮件并存入其邮箱;
    • Bob 使用用户代理读取邮件。
  • SMTP 会话示例包含命令:HELO、MAIL FROM、RCPT TO、DATA、QUIT。
  • SMTP 使用持久连接,可复用 TCP 连接发送多个邮件。

2.3.2 邮件消息格式

  • 邮件消息由头部和正文组成,RFC 5322 定义了邮件格式。
  • 头部信息包括:
    • From: 发件人地址;
    • To: 收件人地址;
    • Subject: 邮件主题;
  • 头部与正文之间以空行分隔(CRLF.CRLF)。
  • 头部字段为可读文本格式,关键字后跟冒号和值。
  • 邮件正文为 ASCII 文本。

2.3.3 邮件访问协议

  • SMTP 用于邮件从发送方服务器到接收方服务器的传输。
  • 接收方使用 IMAP 或 HTTP 从邮件服务器获取邮件。
  • 用户代理无法使用 SMTP 拉取邮件,因为 SMTP 是推送协议。
  • Web 邮件或移动应用使用 HTTP 获取邮件。
  • 邮件客户端(如 Outlook)使用 IMAP 协议(RFC 3501)访问邮件。
  • IMAP 允许用户管理服务器上的邮件夹,支持移动、删除、标记等操作。

2.4 DNS — 因特网的目录服务

2.4.1 DNS 提供的服务

  • 主要任务:将主机名解析为 IP 地址。
  • DNS 是一个分布式数据库,采用客户端-服务器架构。
  • DNS 协议运行在 UDP 上,使用端口 53。
  • 应用层协议如 HTTP、SMTP 依赖 DNS 进行域名解析。
  • 其他服务包括:
    • 主机别名:提供更易记的主机名;
    • 邮件服务器别名:使邮件地址更易记;
    • 负载均衡:通过 DNS 轮换 IP 地址实现服务器负载分担。

2.4.2 DNS 工作原理概述

  • DNS 采用分布式、分层数据库结构。
  • 包括三类服务器:
    • 根 DNS 服务器:全球分布的 13 组服务器;
    • 顶级域(TLD)服务器:如 .com、.org、.edu;
    • 权威 DNS 服务器:为特定域名提供解析;
  • 本地 DNS 服务器(Local DNS Server):
    • 不属于 DNS 层级结构,但对 DNS 架构至关重要;
    • 通常由 ISP 提供;
    • 执行 DNS 查询代理功能;
  • DNS 查询流程示例:
    • 查询 www.amazon.com:
      • 客户联系根服务器获取 .com TLD 地址;
      • 联系 TLD 服务器获取 amazon.com 权威服务器地址;
      • 联系权威服务器获取 www.amazon.com 的 IP 地址。

2.4.3 DNS 缓存

  • DNS 缓存用于提升性能、减少网络流量。
  • DNS 服务器缓存查询结果,设定 TTL(生存时间)后删除。
  • 本地 DNS 服务器缓存 TLD 地址后可跳过根服务器。
  • 大多数 DNS 查询通过缓存完成,根服务器仅处理极小部分请求。

2.4.4 DNS 记录与消息

DNS 记录类型

  • A 记录:主机名到 IPv4 地址映射;
  • AAAA 记录:主机名到 IPv6 地址映射;
  • NS 记录:域名到权威 DNS 服务器主机名;
  • CNAME 记录:别名主机名到规范主机名;
  • MX 记录:邮件服务器别名到规范主机名;
  • 示例:
    • (relay1.bar.foo.com, 145.37.93.126, A)
    • (foo.com, dns.foo.com, NS)
    • (foo.com, relay1.bar.foo.com, CNAME)
    • (foo.com, mail.bar.foo.com, MX)

DNS 消息格式

  • DNS 查询与响应消息格式相同:
    • 头部(12 字节)
      • 标识符(16 位):匹配请求与响应;
      • 标志位:查询/响应、权威、递归请求等;
      • 四个数量字段:问题数、答案记录数、授权记录数、附加信息数;
    • 问题部分
      • 查询名称与类型(如 A、MX);
    • 答案部分
      • 返回的资源记录(如 A、NS、CNAME、MX);
    • 授权部分
      • 其他权威服务器记录;
    • 附加信息部分
      • 辅助信息(如 MX 响应中包含邮件服务器的 A 记录);

2.4.5 向 DNS 数据库插入记录

  • 域名注册时需提供权威 DNS 服务器名称与 IP 地址;
  • 注册商将 NS 与 A 记录插入 TLD 服务器;
  • 示例:
    • 注册 networkutopia.com;
    • 插入 NS 记录:(networkutopia.com, dns1.networkutopia.com, NS);
    • 插入 A 记录:(dns1.networkutopia.com, 212.212.212.1, A);
  • 需在权威 DNS 服务器中配置 Web 服务器(A)与邮件服务器(MX)记录;
  • DNS 动态更新协议(RFC 2136、RFC 3007)允许动态修改 DNS 记录。

2.4.6 DNS 安全漏洞

  • DDoS 攻击:如 2002 年攻击根服务器、2016 年攻击 Dyn;
  • 中间人攻击:伪造 DNS 响应;
  • DNS 缓存投毒:欺骗 DNS 服务器缓存虚假记录;
  • DNSSEC:提供安全扩展,防止伪造与篡改;
  • DNSSEC 正在逐步部署,提升 DNS 安全性。## 2.5 对等文件分发

P2P 架构的可扩展性

客户端-服务器架构与 P2P 架构对比

  • 客户端-服务器架构的分布时间
    • 服务器需为每个对等方传输一个文件副本,总传输量为 N × F
    • 分布时间下限:Dcs = max(NF/us, F/dmin)
    • 随着对等方数量增加,分布时间线性增长。
  • P2P 架构的分布时间
    • 每个对等方可重新分配已接收的数据。
    • 下限公式:DP2P = max(F/us, F/dmin, NF/(us + u1 + ... + uN))
    • 网络整体上传能力提升,分布时间更短。
    • 自我扩展性强,适合大规模文件分发。

BitTorrent 协议

  • 基本机制
    • 文件被分割为 256KB 的块。
    • 用户加入“种子”后逐步下载并上传数据块。
    • 可选择继续共享或离开网络。
  • 追踪器(Tracker)的作用
    • 维护当前参与的对等方列表。
    • 新用户加入时随机选取部分对等方提供连接信息。
  • 邻居节点管理
    • 建立 TCP 连接后定期更新可用数据块信息。
    • 使用“稀有优先”策略请求数据块,提高整体传播效率。
  • 流量激励机制(Tit-for-Tat)
    • 优先向上传速率高的邻居发送数据。
    • 每 30 秒随机选择新节点进行测试,促进公平交换。

2.6 视频流与内容分发网络

互联网视频基础

  • 视频特性
    • 数据率高,压缩后仍可达 100kbps 至 4Mbps。
    • 多版本编码支持不同带宽环境。
  • 性能指标
    • 平均端到端吞吐量是关键。
    • 必须满足视频码率需求以保证流畅播放。

HTTP 流媒体与 DASH

  • HTTP 流媒体问题
    • 所有客户端接收相同编码,无法适应带宽变化。
  • DASH(动态自适应流媒体)
    • 支持多码率版本。
    • 客户端根据带宽选择合适片段。
    • 实现自适应质量切换,优化观看体验。

内容分发网络(CDN)

  • 传统单数据中心方案的问题
    • 跨洲际链路可能成为瓶颈。
    • 同一内容重复传输浪费带宽。
    • 单点故障风险高。
  • CDN 设计理念
    • 全球部署多个服务器集群。
    • 缓存热门内容减少回源压力。
    • 根据地理位置和网络状况选择最佳 CDN 节点。
  • 两种部署策略
    • Enter Deep(深入接入网):
      • Akamai 方案,在 ISP 内部部署大量小型集群。
      • 更接近终端用户,降低延迟。
      • 管理复杂度高。
    • Bring Home(集中式):
      • Limelight 方案,在少量 IXP 地点部署大型集群。
      • 管理成本低但可能牺牲部分性能。
  • CDN 内容复制机制
    • 不强制推送所有内容。
    • 使用拉取策略,按需缓存热门内容。
    • 存储满时淘汰不常访问的内容。

2.7 套接字编程:创建网络应用

UDP 套接字编程

  • 客户端流程
    • 创建 UDP 套接字。
    • 输入文本并发送至服务器。
    • 接收处理后的响应并显示。
    • 关闭套接字。
  • 服务器流程
    • 创建绑定端口的 UDP 套接字。
    • 接收客户端请求。
    • 将文本转为大写后返回。
    • 循环等待下一个请求。
  • 代码示例
    • UDPClient.py:发送请求、接收响应。
    • UDPServer.py:监听端口、处理请求。

TCP 套接字编程

  • TCP 特性
    • 面向连接,确保数据有序可靠传输。
    • 客户端主动发起连接(三次握手)。
    • 服务器使用欢迎套接字接受连接,并创建专用连接套接字。
  • 客户端流程
    • 创建 TCP 套接字并连接服务器。
    • 发送文本请求。
    • 接收响应并关闭连接。
  • 服务器流程
    • 创建监听套接字并绑定端口。
    • 接受连接并创建专用套接字。
    • 处理请求后关闭连接套接字。
  • 代码示例
    • TCPClient.py:建立连接、发送/接收数据。
    • TCPServer.py:监听、接受连接、处理请求。

2.8 总结

  • P2P 架构优势
    • 自我扩展性强,适合大规模文件分发。
    • BitTorrent 采用稀有优先与 Tit-for-Tat 机制实现高效协作。
  • 视频流技术发展
    • DASH 支持自适应码率切换,提升用户体验。
    • CDN 通过全球部署优化内容分发效率。
  • 套接字编程基础
    • UDP 提供无连接通信,适用于实时场景。
    • TCP 提供可靠连接,适用于需要数据完整性的应用。
    • Python 示例展示了基本的客户端-服务器交互模型。## 2.8 总结与回顾

本章核心内容回顾

网络应用架构

  • 客户端-服务器架构
    • 被多数互联网应用采用。
    • 服务器始终在线,拥有固定IP地址。
    • 应用于HTTP、SMTP、DNS等协议。
  • P2P架构
    • 减少对中心服务器的依赖。
    • 对等节点之间直接通信。
    • 高扩展性,但存在安全和稳定性挑战。
    • 示例:BitTorrent 文件共享。

应用层协议

  • HTTP
    • Web的核心协议。
    • 使用TCP传输,无状态。
    • 支持GET、POST等请求方法及缓存机制(如条件GET)。
  • SMTP/POP/IMAP
    • 电子邮件相关协议。
    • SMTP用于邮件发送,POP/IMAP用于接收。
  • DNS
    • 域名解析服务。
    • 将域名转换为IP地址。
  • CDN与视频流
    • CDN提升视频分发效率。
    • DASH支持自适应码率流媒体。

Socket编程

  • TCP套接字
    • 面向连接,可靠数据传输。
    • 服务器需监听并接受连接,每个连接使用独立套接字。
  • UDP套接字
    • 无连接,不保证可靠性。
    • 更低延迟,适用于实时应用。

协议理解深化

  • 协议不仅定义消息格式和顺序,还包括行为逻辑。
  • TCP提供可靠传输、流量控制和拥塞控制。
  • UDP简单高效,适合对时延敏感的应用。
  • TLS在TCP基础上提供加密和安全性。

后续章节展望

  • 下一章将深入研究传输层协议(TCP/UDP)的工作原理。
  • 探讨如何实现可靠传输、流量控制和拥塞控制等机制。### Socket 编程实验

实验一:Web 服务器

  • 开发一个简单的 Web 服务器,能处理单个 HTTP 请求。
  • 创建连接套接字、接收请求、解析文件名、获取文件内容。
  • 构建 HTTP 响应并发送给客户端。
  • 若文件不存在,返回“404 Not Found”。
  • 提供骨架代码,需自行完成并测试。

实验二:UDP Pinger

  • 编写 UDP 客户端,向服务器发送 10 次 ping 请求。
  • 计算往返时延 RTT。
  • 设置超时为 1 秒,若未收到响应则认为丢失。
  • 服务器代码已提供,需编写客户端代码。

实验三:邮件客户端

  • 使用 SMTP 协议与邮件服务器建立 TCP 连接。
  • 发送电子邮件,并关闭连接。
  • 提供骨架代码,需自行完成并测试(如使用 Google 或学校邮箱服务器)。

实验四:Web 代理

  • 开发支持缓存的 Web 代理服务器。
  • 接收浏览器请求,向原始服务器转发。
  • 获取响应后返回给客户端。
  • 提供骨架代码,需完成并测试。

Wireshark 实验

Wireshark Lab: HTTP

  • 分析 HTTP GET/响应交互过程。
  • 观察消息格式、大文件传输、嵌入 URL 文件下载。
  • 研究持续连接与非持续连接差异。
  • 包含身份验证和安全性相关内容。
  • 完整实验说明请访问 www.pearsonhighered.com/cs-resources。

Wireshark Lab: DNS

  • 观察 DNS 客户端行为。
  • 发送域名查询请求,接收 IP 地址响应。
  • 理解 DNS 层级结构背后的递归与迭代查询机制。
  • 客户端仅与本地 DNS 服务器交互。
  • 完整实验说明请访问 www.pearsonhighered.com/cs-resources。

人物访谈:Tim Berners-Lee

背景介绍

  • 万维网发明者,提出 HTTP 协议原型。
  • 2016 年图灵奖获得者。
  • 现任牛津大学和 MIT 教授。

网络与物理的关系

  • 类似于从微观规则推导宏观世界,网络设计也是构建规则以实现大规模系统目标。
  • 一个是分析,一个是设计,但思维方式相似。

为何选择网络方向

  • 微处理器兴起时期,通信行业正转向基于微处理器的系统。
  • 电信领域充满创新机会。

工作中的挑战

  • 在不同意见之间找到共识,推动标准统一。
  • 需要深入理解各方立场,消除误解。

启发他的人

  • 父母早期参与计算机工作,激发兴趣。
  • CERN 的 Mike Sendall 和 Peggie Rimmer 给予指导和支持。
  • 受 Vanevar Bush、Doug Englebart、Ted Nelson 思想启发。