术语表¶
本术语表改编自 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)。 |