专题路线

计算机网络与数据库

学习网络传输、Web 请求、关系查询、索引与事务。

2 个阶段12 章预计 16 小时
学习进度0/12 章完成
0%
开始学习网络分层与时延
先修内容

具备编程和数据结构基础,希望理解网络服务与数据存储的读者。

学习阶段

阶段自测

  1. 学完 C05 · 网络测量与故障排查

    说明打开一个 HTTPS 页面时,DNS、IP、TCP、TLS 与 HTTP 各自承担的任务。

  2. 学完 C06 · 数据库日志与恢复

    以银行转账为例,说明事务原子性、隔离与日志恢复分别解决什么问题。

综合练习

练习完成进度:0/2

难度 2/5

传输与传播时延

1500 B 的分组经过 100 Mbit/s 链路,单程传播时延为 2 ms。忽略排队与处理,求从开始发送到最后一位到达的时间。

查看提示

先把分组长度换为位,再将传输时延与传播时延相加。

展开分步解答

传输时延为 1500×8/100000000 s,即 0.12 ms。总时间为 2.12 ms。

结果核验:链路速率提高到 1 Gbit/s 时,传输时延降至 0.012 ms,总时间为 2.012 ms;传播时延保持 2 ms。

难度 3/5

事务并发更新

余额初始为 100。事务 A 和 B 都先读到 100,A 加 20 后写入 120,B 减 10 后写入 90。求最终余额与串行执行的余额,并给出一种修正方法。

查看提示

比较后一次写入与两次更新都生效时的结果,关注读写操作之间的保护范围。

展开分步解答

最终余额为 90,A 的更新丢失。两种串行顺序都得到 110。可以在事务中先锁定余额行,完成读取与更新后再释放锁;也可以使用数据库保证原子性的余额增减语句。

结果核验:采用行锁后,第二个事务读取第一个事务提交的结果,得到 100+20-10=110。

参考资料