Skip to content

CS168: Intro to Internet - Notes

本笔记参考: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。常见技术有电线上的电压变化、无线电波、光纤中的光脉冲等等。

这一层在本地网络创造链路

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。

About this Post

This post is written by Ezra Yang, licensed under CC BY-NC 4.0.

#notes #networks

Comments