本笔记参考:UCB CS168: Introduction to the Internet
原版 Textbook 链接:Home | CS 168 Textbook
中文译版:首页 - CS 168 Textbook
§1 Introduction
1.1 Introduction to the Internet
Internet 是一种在全球设备之间传输数据的工具。
Internet 是一个联邦式系统,它要求不同运营者之间具备互操作性。联邦式结构使 Internet 能够达到巨大的规模。
Protocol (协议):规定了实体之间如何通信。
RFC (Request For Comments) : 许多 protocol 标准会以 RFC 文档发布,并最终被广泛接受,不过并不是所有 RFC 最后都会被采用。RFC 文档带有编号,有时人们会用 RFC 编号来指代 protocol。
1.2 Layers of the Internet
Layer 1: Physical
物理层进行跨越空间的信号传递。
使用的技术需要能跨空间传输 bit。常见技术有电线上的电压变化、无线电波、光纤中的光脉冲等等。
Layer 2: Link
这一层在本地网络创造链路。
Link(链路):用于连接两台机器。采用有线、无线、光纤等方式实现。
LAN(局域网):用 link 将一批彼此相近的计算机连接起来。
packet(数据包):将 bit 组织成的数据单元。是网络的基本传输单位。
核心问题:需要定义 packet 在物理信号中的起始与结束位置;解决诸如「多人同时共享同一根线发送数据」之类的问题。
Layer 3: Internet
这一层连接许多网络形成 Internet。
一个 network 中包括:一个 router/switch + 其他 end host
switch(交换机)/ router(路由器):负责在不同网络之间通信的“邮局”。当 network A 中的人想与 network B 中的人通信时,他只需将邮件发送到 A 中的邮局。该邮局会把邮件转发到 B 中的邮局,再由后者投递到最终目的地。
end host(端系统):通过 Internet 通信的机器,例如 server、laptop、phone 等。
在不同 switch 之间继续建立链路,就可以把 local network 连接起来。当 local network 和链路足够多时,就能把全世界连接起来,从而形成 Internet。
Internet 也被称为“网络的网络”。
核心问题:当一个 switch 收到 packet 时,它如何知道应当把 packet 转发到哪里,才能让 packet 更接近最终目的地;确保链路具有足够容量(capacity)来承载数据;将网络中的实体视作现实中的企业与组织,并考虑它们的经济与政治激励。
抽象层:基于抽象的模块化是构建大型系统的基本方式。
Best-Effort 服务模型:如果你通过 Layer 3 发送数据,Internet 会「尽力」传输它,但并不保证数据一定送达,也不会告诉你传输是否成功。
Packet 抽象:如果 application 想要发送大量数据(例如视频),就必须把这些数据拆分成多个 packet,并让每个 packet 独立穿越 network。
Layer 4: Transport
这一层可靠地传输 packet,形成连接。
这一层以 Layer 3 为基础构件,并实现额外 protocol,用于:
- 重传丢失 packet;
- 将数据拆分成 packet;
- 对乱序到达(out-of-order)的 packet 重新排序;
- 以及其他功能。
这让我们转而从 flow (数据流)的角度理解通信:即两个 endpoint 之间交换的一系列 packet 流。
Layer 7: Application
这一层在互联网基础设施之上部署服务。
例:假如在 lower layer 中,我们专门构建了一个「用于视频传输」的基础设施,那么 email client 就不得不再单独建设一套用于邮件传输的基础设施。
Internet 的设计使它能够成为一个通用通信网络,从而支持任意类型的 application data。
原本的 Layer 5 和 Layer 6 已过时,功能由 Layer 7 取代。
1.3 Headers
header(头部):告诉网络基础设施应该如何处理 packets 的元数据(metadata)。
payload(载荷):发送的 packet 除了 header之外的东西。
Internet 上的所有人(每个 end host、每个 switch)都需要就 header 的格式达成一致。
header 应该包含的内容:
- 目的地址(destination address)
- 源地址(source address)
- checksum(校验和)用于确保 packet 是否损坏
- packet 长度等其他 metadata
多层 headers:在 Internet 上,同一层的 peer 通过在该层建立 protocol 来通信。这个 protocol 只对该特定层的实体有意义。
network address(网络地址)是某个值,用来告诉我们一个 host 位于 network 中的哪里。
Internet 中不同 layer 使用最适合该 layer 的不同 addressing scheme(寻址方案)。
对于 hosts 和 routers 来说,底部3层会在所有地方实现,但顶部2层只需要在 hosts 上实现。每个 router 解析 Layer 1 到 Layer 3,而 end host 解析 Layer 1 到 Layer 7。
Comments