本章学习地图Learning Map
| 核心问题 | 对应小节 | 你将得到的关键结论 |
|---|---|---|
| 计算机怎么连起来? | 4.1 | PAN/LAN/MAN/WAN 按范围分类;总线与星型拓扑;协议是共同遵守的规则 |
| 网络如何变大变远? | 4.1 ★ | 中继器/网桥/交换机延长同类网络;路由器连接异构网络成互联网 |
| 机器怎么找到彼此? | 4.2 ★ | IP 地址分层分配;域名由 DNS 查找翻译成 IP 地址 |
| 网页怎么送到屏幕上? | 4.3 | 浏览器 + Web 服务器 + HTTP + URL + HTML |
| 报文如何穿过因特网? | *4.4 / *4.5 | 应用→传输→网络→链路四层;TCP 可靠、UDP 高效;socket 一窥究竟 |
| 上网如何自保? | 4.6 ★ | 认识病毒/蠕虫/木马/钓鱼/DoS;防火墙 + 加密 + HTTPS + 数字签名 |
网络基础Networking Fundamentals
网络 network:为共享信息和资源而相互连接的计算机系统。先看第一种分类方式——按通信范围:
| 分类 | English | 覆盖范围与例子 |
|---|---|---|
| 个人域网 PAN | personal area network | 几米之内:无线耳机 ↔ 手机、无线鼠标 ↔ PC |
| 局域网 LAN | local area network | 一个(群)建筑物:大学校园网、制造厂内部网 |
| 城域网 MAN | metropolitan area network | 中型:横跨一个本地社区 |
| 广域网 WAN | wide area network | 相邻城市乃至世界两端 |
开放式 open:内部操作基于公共领域的设计,人人可用同一份标准实现兼容产品(例:全球因特网)。封闭式/专有 closed/proprietary:基于特定实体拥有并控制的创新,细节不公开。
总线 bus:所有机器共享一条公共通信线路。星型 star:中央机器为焦点,其余机器都连到它——中央机器称接入点 access point(AP),协调所有通信。
组合网络:延长总线,还是连接网络?Combining Networks
动画演示:四种连接设备如何转发报文
| 设备 | 做法 | 结果 |
|---|---|---|
| 中继器 repeater | 在两段总线间简单来回传送信号(常带放大),不管信号含义 | 一根更长的同类总线 |
| 网桥 bridge | 检查每条报文的目的地址,只把跨段的报文转发过去 | 同段通信互不干扰 |
| 交换机 switch | 相当于多口网桥:连接若干条总线“辐条”,只转发跨辐条报文 | 以交换机为中心的星型 |
| 路由器 router | 连接使用不同协议的网络,向适当方向转发报文 | 形成互联网 internet |
互联网 internet:两个以上不同协议的网络连接而成,原始网络保持独立、继续各自运行。因特网 Internet:一种独特的、世界范围的互联网——就是我们现在用的这个。
一个网络与互联网相连接的“点”,是该网络通向外部世界的通道,有多种形式。
进程间通信与分布式系统Interprocess Communication & Distributed Systems
服务器 server 持续执行、随时等待,为许多客户机 client 提供服务;客户机发起请求。
进程既为对方提供服务、也接受对方的服务;通常都是临时执行。
| 分布式系统 | English | 一句话释义 |
|---|---|---|
| 集群计算 | cluster computing | 多台计算机密切配合,提供堪比大型机的计算/服务:高可用性 high-availability + 负载平衡 load-balancing |
| 网格计算 | grid computing | 耦合度低于集群,靠专门软件分发数据与算法,共同完成大型任务 |
| 云计算 | cloud computing | 把网络上大量共享计算机按需分配给客户机使用;“云”= 网络上可用的计算资源 |
- 网络按范围分 PAN/LAN/MAN/WAN,按设计分开放式/封闭式,按拓扑分总线/星型(AP 居中协调);协议是互通的前提。
- 中继器/网桥/交换机只是“延长总线”;路由器连接异构网络成 internet,大写 Internet 特指因特网;网关是网络通向外部世界的口。
- 进程协作两模式:客户/服务器(服务器常驻)与 P2P(互为服务);分布式系统有集群、网格、云三形态。
因特网The Internet
因特网是相连网络的集合,本质上是一个通信系统,连接着全世界的设备和网络。因特网服务提供方 ISP(Internet service provider)是因特网构建和维护的组织者——说“连接一个 ISP”,实际指连接由该 ISP 提供的网络。
因特网编址:每台机器都有唯一门牌号Internet Addressing
因特网范围内每台计算机的唯一标识地址。书写采用点分十进制:每个字节用十进制整数、圆点分隔,如 192.168.1.1。
非营利国际组织,协调因特网运营:把连续编号的 IP 地址块授予 ISP,域名注册也在其管辖之下(由注册商 registrar 办理)。
域名与 DNS:好记的名字,机器用的地址Domain Names & DNS
域 domain:单个机构运营的因特网“区域”,须注册;域名 domain name 全球唯一,如 mu.edu。后缀是顶级域名 TLD:.com 商业、.edu 教育、.gov、.mil 军事、.au/.ca 国家地区代码。机构可在域内自由扩展子域 subdomain。
助记地址方便人,因特网传送消息仍用 IP 地址。名称服务器 name server 提供“助记地址 → IP 地址”的目录转换服务;全体名称服务器构成因特网范围的分布式目录系统 DNS,转换过程称 DNS 查找 DNS lookup。
动画演示:DNS 分层查找 lectroid.propulsion.A.com
因特网应用(早期与现在)Internet Applications
| 应用 | 协议 | 说明 |
|---|---|---|
| 新闻阅读 | NNTP 网络新闻传送协议 | 早期独立程序,各遵循一个网络协议 |
| 文件传输 | FTP 文件传送协议 | 通过网络列出和复制文件 |
| 远程登录 | telnet → SSH 安全外壳 | 访问远距离的另一台计算机 |
| 电子邮件 | SMTP 简单邮件传送协议 | 精确定义 HELO/MAIL/RCPT/DATA/QUIT 等步骤与数字响应码 |
| 万维网 | HTTP 超文本传送协议 | 浏览器普及后,越来越多传统应用改经网页处理(见 4.3) |
| 网络电话 / 流媒体 | VoIP / streaming | 软电话(P2P)、模拟电话适配器、嵌入式 VoIP 电话;流 = 音视频的实时传输(单播/N 播/多播) |
- IP 地址全网唯一、分层分配(ICANN→ISP→客户);书写用点分十进制(如 192.168.1.1)。
- 助记域名全球唯一、子域向左扩展;DNS 是因特网范围的分布式目录:本地名称服务器起查,沿顶级域逐层下钻直到权威转换。
- 早期应用各自遵循专门协议(NNTP/FTP/telnet/SMTP);Web 成熟后 HTTP 承载越来越多应用。
万维网The World Wide Web
万维网源于蒂姆·伯纳斯-李(Tim Berners-Lee)的工作:他意识到将互联网技术与超文本 hypertext(含可点击链接、可在文档间跳转的文本)结合的潜力,并于 1990 年 12 月发布了第一个实现万维网的软件。
安装在用户计算机上:负责获取用户请求的资料,并条理清晰地展示给用户——Web 交互中的客户机。
驻留在存放超文本文档的计算机中:根据客户机(浏览器)的请求,提供对本机文档的访问权。
超文本文档通常使用 HTTP 在浏览器与服务器之间传输;每个文档被赋予唯一地址 URL。许多浏览器假定:URL 未明确说明协议时,默认使用 HTTP。
创建于 1994 年,通过开发协议标准(W3C 标准,包括 XML 与众多多媒体标准)促进万维网发展,使大量因特网产品彼此兼容。
HTML 与 XML:网页是怎样写成的HTML & XML
标签 tag:超文本文档中的特殊符号,描述文档如何呈现、需要哪些多媒体资源、哪些项链接到其他文档。超文本标记语言 HTML(hypertext markup language)就是这个标签系统——浏览器扮演“排版人员”,读标签决定文本如何呈现在屏幕上。
<html> <head> <!-- 头:文档的预备性信息 --> <title>demonstration page</title> </head> <body> <!-- 体:屏幕上呈现的实质内容 --> <h1>My Web Page</h1> <p>Click <a href="http://crafty.com/demo.html">here</a> for another page.</p> </body> </html>
一种标准化风格,用于设计“把数据表示为文本文件”的符号系统;可自定义标签描述数据(如乐谱的声部、调性、小节)。
① 浏览器按 URL 联系 Web 服务器请求页面副本 → ② 服务器把 HTML 文本文档发给浏览器 → ③ 浏览器解释标签,呈现页面。
- 万维网 = 浏览器 + Web 服务器 + HTTP + URL;伯纳斯-李 1990 年首发,W3C 定标准。万维网 ≠ 因特网:Web 是跑在因特网之上的超文本系统。
- HTML 用标签描述呈现(head 预备信息 / body 实质内容);XML 用于把数据表示为文本文件。
因特网协议Internet Protocols
报文 message:网络设备之间传输数据的信息单元(可包含数据、控制信息、错误信息)。报文如何穿过因特网?靠软件单元的层次结构——四层,每层由软件例程 routine(可复用的代码段)完成:
动画演示:一条报文的四层之旅
| 层 | 职责 |
|---|---|
| 应用层 application layer | 从应用的角度处理报文(如 HTTP 请求、邮件) |
| 传输层 transport layer | 把报文切成适合因特网的段;接收方重组后交给正确的应用程序 |
| 网络层 network layer | 指导段通过因特网的方向(选路) |
| 链路层 link layer | 处理段从一台机器到另一台机器的实际传输 |
TCP/IP 协议簇The TCP/IP Suite
开放式网络需要颁布标准,不同厂商的产品才能协同工作。TCP/IP 协议簇就是因特网使用的协议标准集合,用来实现四层通信层次结构——TCP 与 IP 只是其中最著名的两个名字。
比较可靠,但不太高效——确认、重传、按序重组,适合网页、邮件等“不能丢”的数据。
比较高效,但不太可靠——尽力投递,适合实时音视频等“快比全重要”的场景。
- 四层各司其职:应用管内容、传输管拆装、网络管方向、链路管传输;发送下行、接收上行。
- TCP/IP 协议簇 = 因特网协议标准的集合;TCP 求可靠、UDP 求效率。
简单的客户机/服务器A Simple Client/Server in Python
套接字 socket:网络栈应用层进程的抽象,进程借它经传输层与网络上的其他进程连接。下面一对最小 Python 脚本,一台当服务器、一台当客户机(本例中二者同机,经 localhost 通信)。
# 客户机 client import socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # TCP sock.connect(('localhost', 1313)) sock.sendall(b'To Infinity...') reply = sock.recv(11) print(reply.decode()) sock.close()
# 服务器 server import socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind(('localhost', 1313)) sock.listen(1) client, addr = sock.accept() client.sendall(b'And Beyond!') client.close()
| 关键点 | 说明 |
|---|---|
| connect vs bind/listen/accept | 客户机主动 connect();服务器先 bind() 占用端口、listen() 标记就绪、accept() 阻塞等待客户机 |
| 端口号 1313 | 无特殊含义(本书第 13 版的彩蛋);1024–65535 之间未被占用的端口皆可 |
| localhost | 主机把它解释为自己——本例两端同机演示;换远程主机需查其 IP 地址(并注意安全策略) |
| b'...' 与 decode() | socket 收发按字节,print 按 UTF-8 字符串,二者需转换 |
- 套接字对上(应用)是进程、对下(传输层)是通道:客户机 connect 发请求,服务器 bind → listen → accept 等请求。
- 几十行代码,就是客户/服务器模式的骨架——先跑服务器,再跑客户机。
网络安全Cybersecurity
网络安全 cybersecurity:保护计算机、网络和数据免受网络犯罪 cybercrime(未授权访问与恶意破坏)的攻击。攻击往往集中在软件上,但硬件和人类用户本身也可能是重要弱点——实现网络安全有软件、硬件和人 3 个部分。
攻击的形式:认识你的对手Forms of Attack
把自身嵌入已有程序来感染计算机;“宿主”程序被执行时病毒也被执行,并尝试把自身传送到其他程序——可拖慢系统、擦除数据、毁坏程序。
自主程序:通过网络传送自己、驻留计算机并把副本转发到其他计算机;副本激增会使合法应用性能下降,最终让网络过载。
伪装成合法/有用的程序,诱骗用户安装运行,进而窃取数据、破坏系统或远程控制设备。
间谍软件收集本机活动并报告给攻击发起者;钓鱼 phishing 伪装成可信实体(银行/社交平台)骗取口令、卡号——属社会工程攻击。
用过载耗尽目标资源,使服务中断、合法用户无法访问;从多个来源同时发起的称为 DDoS。
向海量不特定收件人发送广告、诈骗或恶意链接邮件,占用网络资源、制造安全风险。
防护和对策:给网络装上“门卫”Protection and Cures
监控并控制网络流量的安全屏障,按预设规则阻止未授权访问;可软硬件结合。变体:垃圾邮件过滤器 spam filter。
充当客户机与服务器之间的中介,目标是保护客户机免受服务器不利动作的影响。
检测、预防并移除恶意软件;扫描文件、监控活动、分析行为;每类产品针对特定类型的感染。
绝不打开陌生来源的邮件附件;绝不下载未确认可靠的软件;绝不轻易响应弹出广告;没必要时绝不把计算机挂在因特网上。
密码学:让窃听者拿到报文也没用Cryptography
报文在网络中会被未知实体中继 relay,单靠口令不够。密码学 cryptography 研究在对手面前安全地收发报文:加密 encryption 把可读的明文 plaintext 转换为不可读的密文 ciphertext,只有持有密钥 key 的人才能还原。
加密与解密使用同一把预先共享的密钥;解密是加密的逆过程。快,但密钥如何安全分发是难题。
一对密钥:公钥 public key 公开分发、用于加密;私钥 private key 秘密保存在目的地、用于解密。即使中间人知道公钥并截获报文,也无法解密。
公钥系统的隐患:怎么保证拿到的公钥确实属于对方?由可信的认证机构维护各方公钥列表,以证书 certificate 的形式提供可靠公钥。
加密/解密密钥作用可颠倒:发送者用自己的私钥“加密”报文即得数字签名,接收者用其公钥验证——只有私钥持有者能生成。鉴别 authentication:确认报文作者确属其声称的一方。
HTTPS:一次安全访问的五步握手HTTPS Handshake
HTTPS(Hypertext Transfer Protocol Secure)是 HTTP 的安全版本:加密 + 身份验证 + 数据完整性,防窃听、防篡改、防伪造。访问一个 HTTPS 网站时:
| 步骤 | 动作 |
|---|---|
| ① 客户端请求 | 浏览器输入 HTTPS URL,向服务器请求建立安全连接 |
| ② 服务器发送证书 | 服务器返回含其公钥的数字证书,由可信 CA 签署 |
| ③ 验证证书 | 客户端验证证书有效性:CA 可信?域名与请求相符? |
| ④ 协商密钥 | 双方协商加密算法与会话密钥(通常为对称密钥) |
| ⑤ 加密传输 | 用会话密钥开始加密传输,数据在两端之间安全流动 |
- 对手:病毒(寄生)、蠕虫(自传播)、木马(伪装)、间谍软件(窃听)、钓鱼(诈骗)、DoS/DDoS(耗资源)、垃圾邮件。
- 对策:防火墙拦流量、代理服务器做中介、防病毒软件清恶意代码,再加使用者的四条“绝不”。
- 密码学:对称密钥快、公钥解决分发与鉴别;CA 证书担保公钥;私钥签名可验证身份;HTTPS 五步:请求 → 送证书 → 验证书 → 协商会话密钥 → 加密传输。
课堂练习参考答案Answer Key
参考答案(共 10 题)
| 小节 | 题号 | 答案 | 一句话解析 |
|---|---|---|---|
| 4.1 网络基础 | Q1 | B | 一个(群)建筑物 = 局域网 LAN;PAN 只有几米,MAN/WAN 更远 |
| Q2 | D | 路由器连接异构网络并保持各自独立;前三种只是“延长总线” | |
| 4.2 因特网 | Q3 | B | ICANN 把地址块授予 ISP,ISP 再分给客户组织 |
| Q4 | C | DNS = 助记域名 → IP 地址的因特网范围目录系统 | |
| 4.3 万维网 | Q5 | A | 未写明协议时,浏览器默认使用 HTTP |
| Q6 | B | head 是预备性信息;实质内容在 body 里 | |
| *4.4 协议 | Q7 | B | TCP 可靠但低效;UDP 高效但不保证可靠 |
| *4.5 套接字 | Q8 | B | 服务器:bind 占端口 → listen 就绪 → accept 等待 |
| 4.6 安全 | Q9 | C | 伪装可信实体骗取敏感信息 = 网络钓鱼(社会工程) |
| Q10 | B | 私钥签名、公钥验证——只有私钥持有者能生成该签名 |
本章重点名词中英对照Glossary
★ 为考试高频词
| 中文 | English | 一句话释义 |
|---|---|---|
| 网络 / 拓扑 | network / topology | 共享信息与资源的互连系统 / 节点连接布局 |
| PAN / LAN / MAN / WAN ★ | personal / local / metropolitan / wide area network | 按覆盖范围的四级分类 |
| 协议 ★ | protocol | 保证网络可靠运行的规则 |
| 中继器 / 网桥 / 交换机 ★ | repeater / bridge / switch | 延长同类总线的三种设备 |
| 路由器 / 网关 ★ | router / gateway | 连接异构网络 / 网络通向互联网的口 |
| 互联网 vs 因特网 ★ | internet vs Internet | 泛指异构互连 vs 特指全球大网 |
| 客户/服务器 · 对等 | client/server · peer-to-peer | 常驻服务 vs 互为服务 |
| 分布式 / 集群 / 网格 / 云 | distributed / cluster / grid / cloud | 多机协作的三种常见形态 |
| IP 地址 / 点分十进制 ★ | IP address / dotted decimal | 全网唯一标识 / 字节点分写法 |
| ISP / ICANN | internet service provider / ICANN | 接入服务商 / 地址分配协调机构 |
| 域名 / 顶级域 / 子域 ★ | domain name / TLD / subdomain | 助记地址,向左分层扩展 |
| DNS / DNS 查找 ★ | domain name system / DNS lookup | 域名 → IP 的全球目录系统 |
| 万维网 / 超文本 ★ | World Wide Web / hypertext | 链接文档系统,伯纳斯-李 1990 |
| 浏览器 / Web 服务器 / URL | browser / webserver / URL | 客户机 / 服务端 / 文档唯一地址 |
| HTTP / HTML / XML ★ | hypertext transfer / markup / XML | 传输协议 / 呈现标签 / 数据符号 |
| 四层模型 / TCP / UDP ★ | layers / TCP / UDP | 应用-传输-网络-链路;可靠 vs 高效 |
| 套接字 | socket | 应用层进程的网络抽象 |
| 病毒 / 蠕虫 / 木马 / 钓鱼 ★ | virus / worm / Trojan / phishing | 寄生 / 自传播 / 伪装 / 诈骗 |
| 防火墙 / 代理 / 防病毒 | firewall / proxy / antivirus | 流量门卫 / 中介 / 清毒 |
| 明文 / 密文 / 密钥 | plaintext / ciphertext / key | 原文 / 编码文 / 加解密钥匙 |
| 公钥加密 / CA / 数字签名 ★ | public-key / CA / digital signature | 公钥加密私钥解密 / 证书担保 / 私钥签名 |
| HTTPS / DoS | HTTP Secure / denial of service | 加密的 HTTP / 耗尽资源的攻击 |
第 4 章 · 组网及因特网 —— 完