跳转至

术语表

本术语表改编自 CS 168 过往开课版本

术语 定义
ACK

设置了 ACK flag 的 TCP packet,表示数据已经被接收。

ARP

Address Resolution Protocol。允许设备把 IP 地址映射到 MAC address 的 protocol。设备会发送(broadcast)ARP Request message,以找出某个 IP address 对应的 MAC address。被查询的设备会用 ARP Response message 进行响应(unicast)。MAC address 和 IP address 之间的 mapping 存储在 ARP table 中,ARP table 作为 cache 使用。ARP table 中的 entry 会 timeout(soft state)。

Autonomous System

由单个实体或组织统一管理和监督的一个 network 或一组 network。单个 ISP 通常是一个 AS;不过,有些 ISP 会把自己的 network 划分为多个 AS。每个 AS 都会被分配一个 number,在 BGP 中用于标识 path。

AXE

一种提出过的 STP 替代方案,它不需要 spanning tree,而是通过 duplicate suppression 来防止 loop。也是一些绝妙诗歌的来源。

Bad things that can happen to packets

丢失、损坏、乱序、延迟、重复。

Bandwidth-Delay Product

即 (bandwidth) * (propagation delay),表示「填满管道」所需的 bit 数量。换句话说,如果 sender 以 link 的 bandwidth 发送数据,这就是已经发送但尚未收到的 bit 数量。

Bellman Ford Equation

这个方程表示:你到某个 destination 的 shortest distance,是所有 neighbor 中「你到该 neighbor 的 cost 加上该 neighbor 到 destination 的 distance」的最小值。更具体地说,Node u 到给定 destination v 的 cost 是:d(u,v) = min(nbrs w) [c(u,w) + d(w,v)]。

Best Effort

按需交付方式;系统除了会尽力而为之外,不提供任何性能保证。

Border Router

连接到另一个 network 中 router 的 router。

Checksum

用于检测 corruption 的数值,它基于 packet 的某一部分计算得到(具体取决于 protocol)。

CIDR

Classless Interdomain Routing 的缩写。它把 IP address 和 network mask 结合起来,用于确定哪些 bit 是 network bit。相比原始 IP addressing scheme 或 classful addressing,它灵活得多。

Circuit Switching

一种数据传输方法,其中 end system 会沿一条 path 预留 bandwidth,也就是建立一条 circuit,用于通信。不需要 packet。

Classful Addressing

一种确定 IP address 中 network bit 和 host bit 的方案。我们处理三类地址:Class A address 以 0 开头,用前 8 bit 标识 network,后 24 bit 标识 host。Class B address 以 10 开头,用前 16 bit 标识 network,后 16 bit 标识 host。Class C address 以 110 开头,用前 24 bit 标识 network,后 8 bit 标识 host。

Control Plane

指用于计算 routing table 和其他 forwarding information 的网络机制。

Convergence

当所有参与方都拥有最新信息,并且在 network topology 不变的情况下,之后发送和接收的所有「update」都不会影响 routing state 时,我们说这个 algorithm 已经 converged。

Core/Backbone Router

连接到其他 internal router 的 router。

Cost Table

router 上的数据结构,包含到所有 neighbor 的 cost 集合。

Count-to-Infinity Problem

由于使用 Distance Vector 时信息传播具有 asynchronous 特性而可能发生的一类 routing loop。它通常由 link down 引起:某个 router 原本使用一条已经 broken 的 path 到达某个 destination,却以为自己的 neighbor 仍然拥有到该 destination 的 valid path,于是在不知道这条 path 包含自己原先 broken path 的一部分时采用了它。两个 neighbor 会不断收到彼此的 update,并不断采用这条 broken path。

Cumulative ACK

ACK 表示「直到这个 packet(或 byte)之前的所有 packet(或 byte)我都已经收到」。

Data Plane

指用于转发 data 的网络机制。

Datacenters

由大量机器组成的集合。

David Clark

Internet 的无名英雄。他是 chief architect,并提出了 end-to-end principle。

Dead End

当 packet 到达 router 或 switch,但 forwarding decision 没有得到 outgoing port,迫使 packet 被丢弃时,就出现 dead end。

Destination-Based Routing

只依赖 destination 的 routing。从两个不同 source 到同一个 destination 的 path 一旦重叠,后续路径必须一致。

DHCP

Dynamic Host Configuration Protocol。当 host 连接到 network 时,为它提供 IP address 的 protocol。host 连接到新 network 时,会发送 DHCP Discovery message,通知 DHCP server 自己需要一个 IP address。server 发送 Offer message,其中包含一个 offered IP address、subnet mask、first-hop router 的 IP address,以及 lease time。host 会发送与自己想接受的 offer 对应的 Request。server 用 Acknowledgement/Acceptance message 响应。所有 DHCP message 都是 broadcast 的。

Distance Vector Routing

Distance vector routing 是一种 scalable 且 distributed 的 routing algorithm,其中每个 router 都维护一个 distance「vector」,以及到每个 destination 的 next-hop router。每个 node 会把自己的 shortest distance vector flood 给 neighbor;收到 vector 后,每个 router 使用 Bellman-Ford 更新自己的 vector。

DNS

Domain Name Service,一个把 name 与 address 关联起来的系统,常用于在给定 name 时查找 host 的 address。

Dotted-quad notation

一种 IPv4 address 记法,把地址写成 4 个数字,每个 byte 一个数字。例如 12.34.158.5。

Duplicate ACKs

一连串确认同一批已接收数据的 cumulative ACK;这是 isolated packet loss 的信号,因为这些额外 ACK 表明 data 仍在被接收。

Edge Router

连接 end host 的 router。

End to End Principle

帮助判断某个功能应该在 network 中实现,还是只在 end host 中实现。本课程给出三种解释:Only-if-necessary:如果某个功能可以由 host 实现,就不要在 network 中实现。Only-if-sufficient:只有当某个功能可以在这一层完整实现,并且能减轻 host 负担时,才在这一层实现它。Only-if-useful:如果某个功能在 network 中实现可以提升性能,且不会给不需要它的 application 增加负担,就在 network 中实现它。

Enterprises

公司和大学。

Fate Sharing

把 state 存储在依赖该 state 的实体中,使该实体不会被其他 failure 影响。

First-hop router

当 host 想把 packet 发送到 L2 network 之外的 destination 时,会先把 packet 发给的 router。

Flooding

在本课程中,flooding 指在单个 switch 中,把 packet 从所有 port(incoming port 除外)发出去的行为。

Flow

两个 process 之间的一串 packet。

Forwarding

把 packet 朝 destination 发送。具体做法是读取 packet header 中的 address,在 routing state 中查找正确 output port,并从该 port 发送 packet。这是 router 内部的 local process,发生在 data plane 中,并且必须快速完成。

Forwarding Entry

forwarding table 中的一条 entry,把一个 address 或一组 address 映射到 outgoing port。

Forwarding Table

router 为自己计算的一张 table,用来指导 forwarding decision。forwarding table 使用 peer table 和 cost table 中的信息计算得到。

Fragmentation

把一个 packet 分割成更小的 packet,以适配某条 link 的 maximum transmission unit(MTU)。

Full-information ACK

描述目前为止所有已接收 data 的 ACK,可以表示为「直到这个 packet 之前的所有 packet 我都已经收到,此外还收到了这些额外 packet」。

Hard State

处于「hard state」的系统不会让信息 timeout;它们假设一旦获得某些知识,这些知识就会一直真实有效,直到被明确告知相反信息。

Host bits

IP address 中用于标识该 network 内 host 的部分。

Host/End System

network 的 endpoint。这些实体负责生成 data packet,然后这些 packet 会在 network 中被 route。

Individual ACK

表示「我收到了这个单独、特定 packet」的 ACK。

Internet

连接所有联网计算设备的核心网络基础设施。

IP Address

Layer 3 使用的 addressing scheme。

IPv4

IP protocol 的第 4 版。

ISP (Internet Service Provider)/ISP Network

由 packet switch 和 communication link 组成、为 end system 提供 network access 的 network。

LAN

Local area network,一个覆盖较小地理范围的 L2 network,例如一户家庭。

Layering

一般来说,layering 是把复杂系统拆分成彼此构建在对方之上或彼此依赖的独立层级。在 Internet 语境中,它指一组特定 layer(physical = L1,datalink = L2,internetworking = L3,transport = L4),每一层只与正上方或正下方的 layer 交互。

Layers

Application(对 app 的 network support)。4:Transport(可靠/不可靠的 end-to-end delivery)。3:Network(全局 best-effort delivery)。2:Datalink(本地 best-effort delivery)。1:Physical(bit 通过某种 medium 传输)。

Learning Switches

通常在 L2 与 spanning tree protocol 结合使用。Learning switch 维护一张 forwarding table,把 destination 映射到 output link。它们从 packet 的「source」field 学习。当 packet 到达时,switch 检查 destination 是否在自己的 table 中。如果在,就沿对应 link 转发 packet。如果不在,就 flood 这个 packet。

Linecard

router 中用于接收/发送 packet 的硬件部件。它们会更新各种 field(checksum、TTL 等)并选择 outgoing port。

Link

连接 router 的物理基础设施组件。

Link-State Routing

在 Link-State routing 中,每个 router 会把自己的 link state 发送给 network 中所有其他 router(使用 protocol-specific broadcast mechanism)。这样,每个 router 都会学到完整的 network graph。然后,每个 router 使用某种有效 algorithm(例如 Dijkstra)计算自己到所有其他 node 的 least-cost path。

Loop

packet 永远在同一组 node 之间循环。

LPM

Longest-prefix-match:当一个 IP Address 匹配多个 prefix 时,选择最长的匹配。(可以理解为沿 prefix tree 遍历,直到 address「掉出」树。)

MAC Address

用于 L2 routing。MAC Address 是一个 48 bit number,写入 host 和 router 的 network interface 中。MAC address 编码在存储于 Read-Only memory 的物理硬件中,因此是永久 identifier。

Maximum Transmission Unit (MTU)

一条 link 能作为单个 unit 传输的最大 bit 数,也就是可以跨 link 发送的最大 packet size。

Modularity

把一个问题分解为 task 或 abstraction。这会导向 layering 的设计原则。

Multihoming

把一个 host 连接到多个不同 network,使得某个 parent network 离线时,该 host 仍然可达。它会阻碍 aggregation。

NACK

「Non-acknowledgement」message,即「我没有收到这份 data(我原本期望收到它)」。

Network

非正式使用时,它指由 end system、router/switch 和 link 组成,并能在 host 之间传输 data 的系统(例如 Berkeley 的 campus network)。正式使用时,它指共享同一个 IPv4 network address 的一组 network element,并且常与 subnet 同义使用。

Network Address

IP address 中指代 network(或 subnet)而不是 host 的组成部分。

Network bits

IP address 中用于标识 host 所在 network 的部分。

Network mask

一串类似 IP address 的 bit,用来标识 IP Address 中的 network 部分。它由固定数量的 1(每个 network address bit 一个 1)后接全 0 构成。

Network Name

host 的 name(对人类友好的东西)。

Network Stack

host 上的 networking software。它复制了一些 router 中也有的功能,并添加额外功能(例如 socket、TCP header 等)。

Packet

一包 bit。它由两部分组成:Header,包含让 network 和 network stack 做 decision 的有意义信息;Body,包含 payload。例如 file、image、application header 等。

Packet Switching

一种数据传输方法,其中 data 被切分为 packet,router/switch 会检查每个收到 packet 的 header,并独立服务每个 packet。

Path Vector Routing

类似 distance vector routing,但向 neighbor advertise 时,不是发送自己的 shortest distance,而是发送自己到 destination 的 path。

Payload

packet 中携带的 data。

Peer Table

router 上的数据结构,包含该 router 的各个「peer」或「neighbor」发送给它的信息副本。

Poison Reverse

一种试图缓解 count-to-infinity problem 的方法:对某个你在通往 destination 的 path 上使用的 neighbor,不 advertise 自己能够到达该 destination(也就是 advertise distance 为 infinity)。例如,router A 创建一份临时 vector 副本发给 router C,其中对所有 router A 使用 link AC 的 destination,都 advertise distance 为 infinity。

Port (Logical)

OS 分配给 socket、用于标识该 socket 的 number。

Port (Router)

把 router 通过 link 连接到另一个 router 的物理 port。

Prefix Aggregation

使用共同 prefix 把 routing table entry 合并为一条 entry(例如把 101 和 100 合并为 10*)。

Prefix Tree

表示 IP address lookup 中 matching bit 的 binary tree(也就是 lookup table 的遍历方式)。

Reliability (see Robustness)

两种解释:1)network 能从 failure 中快速恢复,让两个未被 partition 的 endpoint 能够通信。2)network failure 不会干扰 endpoint semantics。

Reliable Delivery

在 best-effort delivery 之上构建可靠的 transport service。

Reliable Transport

一个 transport mechanism 当且仅当满足以下条件时是「reliable」的:(a)重发所有 dropped 或 corrupted packet;(b)尝试取得 progress。

Resource Accountability

知道谁正在使用哪些 resource(bandwidth)的能力,从而可以让他们对此负责。这是 Internet architecture 的一个失败之处。

Robustness (see Reliability)

只要 network 没有被 partition,两个 host 最终应该能够通信,并且 failure 永远不应该干扰 application semantics。

Route Aggregation

不为每台 host 保留一条 forwarding entry,而是为一组拥有相同 prefix、且都从同一个 port 发出的 host 保留一条 entry。

Route Poisoning

一种缓解 network inconsistency 的过程:当 A 和 B 之间的 link down 时,router B 应该向所有 neighbor advertise 自己不再拥有到 router A 的 link(也就是 B advertise distance 为 infinity),以表示自己不能再到达 A。

Routing

把 packet 从 source 引导到 destination(可以用许多方式完成,见 link-state、distance vector、spanning tree 等)。这是一个天然的 global process,因此必须 scale。它发生在 control plane 中,可以较慢完成。

Routing Table

类似 Forwarding Table,但可以指 router 拥有的全部信息(包括来自其他 peer 的信息),而不只是最佳 forwarding entry。

Slash notation

一种谈论 subnet 的 notation。形式类似 1.2.0.0/10,其中 1.2.0.0 的前 10 bit 是 subnet prefix。

Sliding window

允许处于 in flight 状态且尚未被 ack 的 packet 的有限数量;出于效率目的,在达到这个数量前我们可以继续发送更多 packet。

Socket

OS 用来把 process 连接到 networking stack 的机制。

Soft State

允许存储的知识「time out」的概念,前提是假设这些知识可能已经改变、不再 valid 等。运行在 soft state 下的系统会周期性「忘记」自己知道的内容,并需要通过再次请求信息、等待新 message 和新 information 等方式重新学习。带有 lease time 的 DHCP offer、会 timeout 的 cached ARP entry,以及 Distance-Vector Routing 中的 periodic message,都是 soft-state 的例子。

Spanning Tree Protocol

一种 distributed protocol,其中 switch 会从 node X 发送格式为 (Y, d, X) 的 message,提议 Y 作为 root,并 advertise 自己到 Y 的 distance 为 d。这个 protocol 会识别 ID 最低的 node,并以该 node 为 root 构建一棵 spanning tree。

Split Horizon

Split horizon 提供与 poison reverse 相同的功能,但用不同方式表达信息。Split Horizon 用于 full update 的语境中,router 不会把任何到 destination X 的 route advertise 给它用来到达 destination X 的 neighbor。

Statistical Multiplexing

各个 flow 最大速率之和,大于把这些 flow 合并后再寻找最大值所得的结果。

Subnet

在本课程中,我们用这个术语指 network 的一部分;它由 L2 连接,并共享相同 network address。

Time to Live (TTL)

在 IP 中,它指 packet 在被丢弃前可以经过的 hop 数,这有助于防止 loop。更一般地说,TTL 指某个东西到期前的时间(例如 cached entry)。

Valid Routing State

当且仅当不存在 loop 且不存在 dead end(假设没有 packet replication)时,routing state 是 valid 的。如果存在 packet replication,则条件变为至少一个 replica 不会遇到 dead end。

WAN

它可以指任意 L3 network(也就是说,不只是 local area network),也可以指跨越较大地理距离的 network(也就是说,不是 datacenter)。