← 返回 计算机网络原理

计算机网络原理

第六章 第4节

第六章收尾:LAN、VLAN、MPLS、数据中心、Web 请求全过程

1. 小型机构网络:交换机和路由器一起用

一个学校、公司、实验室里,通常是这样的结构:

主机接入交换机汇聚交换机路由器外部网络\text{主机}\to \text{接入交换机}\to \text{汇聚交换机}\to \text{路由器}\to \text{外部网络}

普通电脑;

mail server;

web server;

多个交换机;

一个连接外网的路由器。

这里可以先理解:

交换机负责“局域网内部转发”; 路由器负责“连接不同网络”。

如果整个机构内部使用一个 IP 子网,比如:

192.168.1.0/24192.168.1.0/24

那么这些主机在同一个 IP 子网内,彼此之间可以通过交换机转发帧。

如果要去外部网络,就要走默认网关,也就是路由器。

2. 交换机 和 路由器

交换机和路由器都是存储转发设备。

也就是说它们都会:

收到分组/暂存查表转发\text{收到分组}/\text{帧}\to \text{暂存}\to \text{查表}\to \text{转发}

但是它们看的层次不同。

2.1 交换机看链路层头部

交换机工作在链路层。

它主要看:

MAC地址MAC\text{地址}

所以交换机收到的是一个以太网帧:

MAC,目的MAC,type,data,CRC\text{源}MAC,\text{目的}MAC,type,data,CRC

然后它根据目的 MAC 地址查交换表。

交换机表大概长这样:

MAC 地址 | 接口 | TTL MAC-A | port 1 | 60 MAC-B | port 3 | 60

交换机表是通过自学习得到的。

也就是:看源 MAC 学习位置,看目的 MAC 决定转发方向。

2.2 路由器看网络层头部

路由器工作在网络层。

它主要看:

目的IP地址\text{目的}IP\text{地址}

路由器收到帧之后,会先拆掉链路层头部,取出里面的 IP 数据报。

然后根据目的 IP 查路由表。

路由表大概长这样:

目的网络 | | | | 下一跳 | | | 接口 10.0.1.0/24 | | | | - | | | Eth0 10.0.2.0/24 | | | | 10.0.1.2 | | | Eth1 default | | | | 某下一跳 | | | Eth2

路由表通常来自:

静态配置;

RIP;

OSPF;

BGP;

SDN 控制器。

所以可以总结:

对比 | 交换机 | 路由器 工作层次 | 链路层 | 网络层 看什么地址 | MAC 地址 | IP 地址 转发单位 | 帧 frame | IP 数据报 datagram 表 | 交换表 | 路由表 表怎么来 | 自学习 | 路由算法/协议 作用范围 | LAN 内部 | 不同网络之间

交换机解决“这个局域网里帧该往哪个端口走”; 路由器解决“这个 IP 数据报下一跳该去哪个网络”。

3. 为什么需要 VLAN?

先看没有 VLAN 的情况。

第六章 第4节 配图 1

一个大 LAN 里面有很多交换机、主机、服务器。问题是:

所有设备都在同一个广播域里。

广播域的意思是:

一个广播帧会被整个 LAN 里的所有设备收到。

比如:

ARP 请求;

DHCP 请求;

目标 MAC 未知时的泛洪帧。

如果网络很大,广播帧到处飞,会带来几个问题。

3.1 问题一:广播范围太大

比如计算机学院 CS 和电子工程 EE 都接在同一批交换机上。

CS 里面有人发 ARP 广播,EE 里面的人也会收到。

这像:一个班点名,整栋楼都听见了。

浪费带宽。

3.2 问题二:安全和隐私问题

如果所有部门都在一个 LAN 里,广播和泛洪流量可能被不相关部门看到。

比如:

财务;

教务;

学生实验室。

如果都混在同一个广播域,管理和安全都麻烦。

3.3 问题三:管理不方便

比如一个 CS 系用户搬到 EE 楼里的办公室。

物理位置变了,但逻辑上他仍然应该属于 CS 网络。

如果没有 VLAN,可能要重新拉线、重新接交换机、重新规划网络。

所以需要一种办法:

物理上接在同一批交换机上,逻辑上分成不同 LAN。

这就是 VLAN。

4. VLAN 是什么?

VLAN 全称:

VirtualLocalAreaNetworkVirtualLocalAreaNetwork

虚拟局域网。

朴素理解:VLAN 就是在一台或多台交换机上,逻辑上切出多个“小局域网”。

比如一台交换机有 16 个端口:

1 到 8 号端口属于 EE VLAN;

9 到 15 号端口属于 CS VLAN。

虽然它们插在同一台物理交换机上,但逻辑上像是两台独立交换机。

4.1 VLAN 的核心作用

VLAN 的核心是:

隔离广播域\text{隔离广播域}

比如:

EE VLAN 内部的 ARP 广播,只在 EE VLAN 内传播;

CS VLAN 内部的 ARP 广播,只在 CS VLAN 内传播。

所以:VLAN 把一个大的广播域切成多个小广播域。

5. 基于端口的 VLAN

最常见的是基于端口划分 VLAN。

比如:

交换机端口 | | | VLAN 1-8 | | | EE VLAN 9-15 | | | CS VLAN

如果主机插在 3 号端口,它就属于 EE VLAN。

如果主机插在 12 号端口,它就属于 CS VLAN。

5.1 VLAN 内部通信

如果 EE VLAN 的两台主机通信,交换机只在 EE VLAN 内转发。

CS VLAN 不会收到这些帧。

所以:

EE内部帧CS内部帧EE\text{内部帧}\ne CS\text{内部帧}

它们被隔离开。

5.2 VLAN 之间通信

注意:不同 VLAN 之间不能直接二层通信。

因为它们相当于不同的 LAN。

如果 EE VLAN 要和 CS VLAN 通信,就需要经过三层设备。

也就是:

EEVLAN路由器/三层交换机CSVLANEEVLAN\to \text{路由器}/\text{三层交换机}\to CSVLAN

这叫 VLAN 间路由。

VLAN 内部靠交换机转发; VLAN 之间靠路由器或三层交换机转发。

6. 跨越多个交换机的 VLAN

第六章 第4节 配图 2

如果 EE VLAN 和 CS VLAN 不只在一台交换机上,而是分布在多台交换机上,怎么办?

比如:

交换机 S1 上有 EE 和 CS;

交换机 S2 上也有 EE 和 CS;

S1 和 S2 之间只有一根线。

这根线要同时承载多个 VLAN 的流量。

这根线对应的端口叫:

trunkporttrunkport

也叫干线端口。

6.1 Access 端口和 Trunk 端口

可以这样理解:

端口类型 | 连接对象 | 是否带 VLAN 标签 Access 端口 | 普通主机 | 通常不带标签 Trunk 端口 | 交换机和交换机之间 | 带 VLAN 标签

普通主机一般不知道 VLAN 标签,所以接主机的 access 端口通常发送普通以太网帧。

交换机之间传输时,要告诉对方:这个帧属于哪个 VLAN。

所以 trunk 上的帧要打标签。

7. 802.1Q VLAN 帧格式

802.1Q 就是 VLAN 标签的标准。

普通以太网帧大概是:

目的MACMACtypedataCRC\text{目的}MAC∣\text{源}MAC∣type∣data∣CRC

802.1Q 帧会在源 MAC 和 type 之间插入一个 VLAN 标签。

结构类似:

目的MACMACVLAN标签typedataCRC\text{目的}MAC∣\text{源}MAC∣VLAN\text{标签}∣type∣data∣CRC

VLAN 标签一共 4 字节,里面重要的是:

TPID:通常是 0x8100,表示这是 802.1Q 帧;

PCP:优先级;

DEI:丢弃指示;

VLAN ID:12 bit,用来表示属于哪个 VLAN。

12 bit VLAN ID 理论上可以表示很多 VLAN。

7.1 为什么 CRC 要重新计算?

因为加了 VLAN 标签之后,帧内容变了。

CRC 是对帧内容进行校验的。

所以插入标签之后:

原来的CRC不能用了\text{原来的}CRC\text{不能用了}

必须重新计算 CRC。

8. VLAN 总结

VLAN 的重点:

VLAN 用来把一个大 LAN 分成多个逻辑 LAN。 VLAN 隔离广播域。 跨交换机传 VLAN 流量时,需要 trunk 和 802.1Q 标签。

VLAN 解决什么问题?

答:广播域过大、管理困难、安全性差。

VLAN 内通信靠什么?

答:二层交换。

VLAN 间通信靠什么?

答:路由器或三层交换机。

trunk 端口为什么要打标签?

答:因为一根链路要承载多个 VLAN 的帧,必须标明帧属于哪个 VLAN。

9. MPLS:多协议标签交换

MPLS 全称:

MultiprotocolLabelSwitchingMultiprotocolLabelSwitching

多协议标签交换。

它有点像处在链路层和网络层之间,所以常被叫作:

2.5层技术2.5\text{层技术}

9.1 IP 转发的问题

普通 IP 路由器转发时,看的是:

目的IP地址\text{目的}IP\text{地址}

然后做最长前缀匹配:

LongestPrefixMatchingLongestPrefixMatching

比如目的 IP 是:

128.119.40.136128.119.40.136

路由器会查路由表,找到最长匹配的前缀,然后决定下一跳。

问题是:

每一跳都要根据 IP 地址查表。 路径主要由目的地址决定,不够灵活。

9.2 MPLS 的想法

MPLS 的想法是:不再每一跳都看完整 IP 地址,而是给分组贴一个短标签 label。

路由器转发时只看标签。

比如:

label=10label=10

路由器查 MPLS 转发表:

入标签 | 出标签 | 出接口 10 | 6 | 1 12 | 9 | 0

如果收到入标签 10,就改成出标签 6,然后从接口 1 转发。

这比查 IP 前缀更像交换机查表,所以叫标签交换。

第六章 第4节 配图 3

10. MPLS 标签格式

MPLS 头部里有几个字段:

字段 | 含义 Label | 标签值,20 bit Exp/TC | 优先级、流量类别 S | 栈底标志 TTL | 防止循环

它插在二层头部和 IP 头部之间。

大致像:

EthernetheaderMPLSlabelIPheaderdataEthernetheader∣MPLSlabel∣IPheader∣data

11. MPLS 怎么转发?

MPLS 网络里的路由器叫:

LSR:LabelSwitchingRouterLSR:LabelSwitchingRouter

标签交换路由器。

转发过程:

入口路由器看到一个 IP 分组;

根据目的、源、业务类型等决定走哪条 MPLS 路径;

给分组加上 MPLS 标签;

中间 MPLS 路由器只看标签转发;

出口路由器去掉标签,还原为普通 IP 分组。

11.1 普通 IP 路由 和MPLS 路由

普通 IP:

路径主要由目的IP决定\text{路径主要由目的}IP\text{决定}

MPLS:

路径可以由目的IP、源IP、流量类型、工程策略共同决定\text{路径可以由目的}IP\text{、源}IP\text{、流量类型、工程策略共同决定}

所以 MPLS 更灵活。

比如普通 IP 可能只能让流量都走最短路径。

MPLS 可以人为规定:

一部分流量走上面; 一部分流量走下面; 某些重要流量走低延迟路径; 链路坏了快速切换到备用路径。

12. MPLS 的好处

12.1 快速转发

中间路由器只查固定长度标签,不用每次做 IP 最长前缀匹配。

12.2 流量工程

MPLS 可以控制流量走指定路径。

比如:

A类流量走路径1B类流量走路径2A\text{类流量走路径}1B\text{类流量走路径}2

这样可以做负载均衡,避免某条链路过载。

12.3 快速重路由

如果一条链路坏了,MPLS 可以提前准备备用路径。

故障发生时快速切换。

12.4 支持 VPN 等业务

运营商经常用 MPLS 给企业提供专线、VPN、隔离网络等服务。

13. MPLS 信令

MPLS 路径不是凭空来的,需要控制平面先分发信息。

课件提到:

OSPF、IS-IS 可以扩展,用来携带链路带宽等信息;

RSVP-TE 可以用来建立带约束的 MPLS 路径。

简单理解:

OSPF/IS-IS 告诉大家网络状态; RSVP-TE 用来预留资源、建立 MPLS 路径; 建好之后,数据平面按标签快速转发。

14. MPLS 的概括

IP 转发看目的 IP,做最长前缀匹配; MPLS 转发看固定长度标签; 入口加标签,中间换标签,出口去标签; 好处是快速转发、流量工程、快速重路由。

15. 数据中心网络

数据中心就是很多服务器集中在一起。

规模可能是:

110万台主机1\text{万}∼10\text{万台主机}

比如:

电商服务;

视频服务;

搜索引擎;

云计算;

数据挖掘。

数据中心里的机器物理位置很近,但是流量巨大。

15.1 数据中心网络的挑战

主要有几个问题:

第一,可靠性要求高

服务不能随便挂。

比如搜索、支付、云服务器,如果网络出问题,影响很大。

第二,负载均衡

外部大量请求进来,要分配给不同服务器。

不能所有请求都打到一台机器上。

所以需要负载均衡器。

第三,避免网络瓶颈

数据中心内部服务器之间也会通信。

比如:

Web 服务器访问数据库;

计算节点之间交换数据;

分布式存储复制数据。

如果网络设计不好,上层交换机可能成为瓶颈。

16. 数据中心网络结构

传统结构大概有几层:

服务器TOR交换机Tier2交换机Tier1交换机边界路由器\text{服务器}\to TOR\text{交换机}\to Tier-2\text{交换机}\to Tier-1\text{交换机}\to \text{边界路由器}

16.1 TOR 交换机

TOR 是:

TopofRackTopofRack

机架顶交换机。

一个机架里有很多服务器,顶部放一个交换机。

服务器先连到 TOR。

16.2 Tier-2 和 Tier-1 交换机

多个 TOR 再连到上层交换机。

这样形成层次化结构。

目的:让大量服务器之间可以互联。

16.3 边界路由器

边界路由器连接数据中心和外部互联网。

外部用户请求进入数据中心,通常先经过边界设备,再进入内部网络。

17. 数据中心为什么需要多路径?

如果只有一条路径,容易拥塞,也不可靠。

所以数据中心网络常常设计成有很多条可选路径。

比如从机架 1 到机架 11,可能有多条不相交路径。

这样做的好处:

增加带宽;

提高可靠性;

支持负载均衡;

某条链路坏了还能绕路。

18. 数据中心的应用层路由

数据中心里经常有负载均衡器。

外部请求进来后,不一定直接给某一台服务器,而是先到负载均衡器。

负载均衡器根据策略决定:

这个请求交给哪台服务器处理。

例如:

用户请求负载均衡器某台Web服务器\text{用户请求}\to \text{负载均衡器}\to \text{某台}Web\text{服务器}

这叫应用层路由或者应用层负载均衡。

19. 数据中心中的协议创新

19.1 链路层

RoCE:

RDMAoverConvergedEthernetRDMAoverConvergedEthernet

可以理解为:

在以太网上支持高性能远程内存访问。

用于低延迟、高吞吐的数据中心通信。

19.2 运输层

ECN:

ExplicitCongestionNotificationExplicitCongestionNotification

显式拥塞通知。

不是等到丢包才知道拥塞,而是提前标记拥塞。

DCTCP、DCQCN 等数据中心协议会用到这类机制。

19.3 路由和管理

数据中心里也大量使用 SDN。

因为数据中心网络结构相对可控,集中管理更方便。

还可以把服务和数据尽量放近一些,比如同一个机架或相邻机架里,减少跨网络通信成本。

20. Web 页面请求全过程

场景:

你的笔记本刚连接到校园网,然后访问 www.google.com。

整个过程会用到:

DHCP;

ARP;

DNS;

TCP;

HTTP;

IP;

Ethernet;

路由协议;

交换机转发。

21. 第一步:连接网络,先要获得 IP 地址

笔记本刚连上网络时,它一开始不知道:

自己的 IP 地址;

默认网关 IP 地址;

DNS 服务器地址。

所以要使用 DHCP。

DHCP 全称:

DynamicHostConfigurationProtocolDynamicHostConfigurationProtocol

动态主机配置协议。

21.1 DHCP 报文怎么封装?

DHCP 是应用层协议。它封装在 UDP 中。

UDP 封装在 IP 中。IP 再封装在以太网帧中。

所以是:

DHCPUDPIPEthernetDHCP\to UDP\to IP\to Ethernet

21.2 DHCP 为什么要广播?

因为客户端刚接入网络时,还不知道 DHCP 服务器在哪里。

所以它只能广播:

有没有 DHCP 服务器?我需要配置。

以太网目的 MAC 是广播地址:

FF:FF:FF:FF:FF:FFFF:FF:FF:FF:FF:FF

这个广播帧在 LAN 内传播,DHCP 服务器收到后响应。

21.3 DHCP 最终给客户端什么?

DHCP 服务器会给客户端:

客户端自己的 IP 地址;

默认网关的 IP 地址;

DNS 服务器的 IP 地址;

子网掩码;

租期等信息。

所以到这一步,客户端知道了:

我的IP是谁默认网关是谁DNS服务器是谁\text{我的}IP\text{是谁}\text{默认网关是谁}DNS\text{服务器是谁}

22. 第二步:访问网站之前,要先 DNS 查询

你输入的是:

www.google.comwww.google.com

但是网络层不认识域名。

IP 层需要的是 IP 地址。

所以要先问 DNS:

22.1 DNS 查询怎么封装?

DNS 是应用层协议,一般用 UDP。

封装关系:

DNSUDPIPEthernetDNS\to UDP\to IP\to Ethernet

IP 数据报的目的 IP 是 DNS 服务器 IP。

但是链路层帧的目的 MAC 是谁?

不是 DNS 服务器的 MAC。因为 DNS 服务器不在本 LAN。

所以这一跳要发给默认网关。

因此需要知道:

默认网关的MAC地址\text{默认网关的}MAC\text{地址}

23. 第三步:DNS 前要先 ARP

客户端知道默认网关 IP,但是不知道默认网关 MAC。

所以要用 ARP:

谁是默认网关 IP?告诉我你的 MAC。

ARP 请求是广播:

目的MAC=FF:FF:FF:FF:FF:FF\text{目的}MAC=FF:FF:FF:FF:FF:FF

默认网关收到后,单播回复:

于是客户端 ARP 表里有了:

默认网关IP默认网关MAC\text{默认网关}IP\to \text{默认网关}MAC

现在客户端可以把 DNS 查询发给网关了。

24. 第四步:DNS 查询发出去

现在客户端构造 DNS 查询。

IP 层:

IP=客户端IP目的IP=DNS服务器IP\text{源}IP=\text{客户端}IP\text{目的}IP=DNS\text{服务器}IP

链路层:

MAC=客户端MAC目的MAC=默认网关MAC\text{源}MAC=\text{客户端}MAC\text{目的}MAC=\text{默认网关}MAC

注意这里非常重要:

目的 IP 是 DNS 服务器; 目的 MAC 是默认网关。

因为 MAC 只管当前这一跳。

DNS 查询经过路由器转发,最终到达 DNS 服务器。

DNS 服务器返回:

www.google.com某个IP地址www.google.com\to \text{某个}IP\text{地址}

客户端得到 Web 服务器的 IP 地址。

25. 第五步:建立 TCP 连接

现在客户端知道 Web 服务器 IP 了。

要发送 HTTP 请求之前,需要先建立 TCP 连接。

TCP 三次握手:

SYNSYNACKACKSYNSYNACKACK

过程:

客户端发送 SYN 给 Web 服务器;

Web 服务器返回 SYNACK;

客户端返回 ACK;

TCP 连接建立。

25.1 TCP 报文怎么封装?

TCP 是运输层协议。

封装关系:

TCPIPEthernetTCP\to IP\to Ethernet

如果还在本地 LAN 内第一跳,链路层目的 MAC 仍然是默认网关 MAC。

IP 层目的 IP 是 Web 服务器 IP。

所以依旧是:

目的IP=Web服务器IP目的MAC=默认网关MAC\text{目的}IP=Web\text{服务器}IP\text{目的}MAC=\text{默认网关}MAC

26. 第六步:发送 HTTP 请求

TCP 连接建立之后,浏览器发送 HTTP 请求。

比如:

GET/HTTP/1.1GET/HTTP/1.1

这个 HTTP 请求会封装为:

HTTPTCPIPEthernetHTTP\to TCP\to IP\to Ethernet

一路经过:

校园网ISP网络Google网络Web服务器\text{校园网}\to ISP\text{网络}\to Google\text{网络}\to Web\text{服务器}

27. 第七步:服务器返回 HTTP 响应

Web 服务器收到 HTTP 请求后,返回网页内容。

HTTP 响应通过 TCP 发回来。

客户端收到之后,浏览器解析页面,显示网页。

于是你看到页面加载完成。

28. Web 请求全过程总图

按时间顺序:

连接网络DHCP获取配置访问域名DNS解析IP不知道网关MACARP查询准备通信TCP三次握手发送请求HTTP请求服务器回复HTTP响应\text{连接网络}\to DHCP\text{获取配置}\text{访问域名}\to DNS\text{解析}IP\text{不知道网关}MAC\to ARP\text{查询}\text{准备通信}\to TCP\text{三次握手}\text{发送请求}\to HTTP\text{请求}\text{服务器回复}\to HTTP\text{响应}

完整一点是:

笔记本接入 LAN;

使用 DHCP 获取 IP、网关、DNS;

浏览器输入 www.google.com;

客户端准备 DNS 查询;

发现 DNS 不在本地网络,要发给默认网关;

用 ARP 获取默认网关 MAC;

DNS 查询发出;

DNS 返回 Web 服务器 IP;

客户端向 Web 服务器发起 TCP 三次握手;

TCP 连接建立;

发送 HTTP 请求;

Web 服务器返回 HTTP 响应;

浏览器显示页面。

29. 每一层在 Web 请求中的作用

层次 | 作用 应用层 | DHCP、DNS、HTTP 运输层 | UDP 承载 DHCP/DNS,TCP 承载 HTTP 网络层 | IP 寻址和路由 链路层 | Ethernet 帧、MAC 地址、ARP、交换机转发 物理层 | 真正传输比特

30. 回顾

30.1 链路层负责一跳

链路层负责:

相邻节点之间传输\text{相邻节点之间传输}

也就是:

主机交换机交换机路由器路由器下一跳路由器\text{主机}↔\text{交换机}\text{交换机}↔\text{路由器}\text{路由器}↔\text{下一跳路由器}

每一跳都要封装成帧。

30.2 MAC 地址是一跳内用的

MAC 地址不是全局路由地址。

它只在当前 LAN 或当前链路上有意义。

跨子网的时候:

IP源地址和目的地址基本不变MAC源地址和目的地址每一跳都变IP\text{源地址和目的地址基本不变}MAC\text{源地址和目的地址每一跳都变}

30.3 ARP 解决下一跳 MAC

ARP 不是找任意远方主机的 MAC。

ARP 找的是:

同一个LAN内某个IP对应的MAC\text{同一个}LAN\text{内某个}IP\text{对应的}MAC

如果目标在同一 LAN:

ARP找目标主机MACARP\text{找目标主机}MAC

如果目标在别的网络:

ARP找默认网关MACARP\text{找默认网关}MAC

30.4 交换机负责 LAN 内转发

交换机:

看 MAC;

自学习;

查交换表;

不知道就泛洪;

知道就定向转发;

同端口就过滤。

30.5 VLAN 负责逻辑隔离 LAN

VLAN:

隔离广播域;

提高安全性;

方便管理;

跨交换机用 trunk;

trunk 上用 802.1Q 标签。

30.6 MPLS 负责标签交换

MPLS:

普通 IP 看目的 IP;

MPLS 看标签;

入口加标签;

中间换标签;

出口去标签;

适合流量工程和快速重路由。

30.7 数据中心是链路层、网络层、运输层综合应用

数据中心里面:

大量服务器;

多层交换机;

多路径;

负载均衡;

SDN;

高速以太网;

特殊拥塞控制协议。

它本质上是把前面所有东西拿来大规模工程化。

31. 第六章总结

这章可以压缩成下面这样:

链路层 ├── 基本作用 │ ├── 一跳传输 │ ├── 成帧 │ ├── 差错检测 │ └── 多路访问 │ ├── 差错检测 │ ├── 奇偶校验 │ ├── 校验和 │ └── CRC │ ├── 多路访问 │ ├── 信道划分:TDMA / FDMA / CDMA │ ├── 随机访问:ALOHA / CSMA / CSMA/CD / CSMA/CA │ └── 轮次协议:轮询 / 令牌传递 │ ├── LAN │ ├── MAC地址 │ ├── ARP │ ├── Ethernet │ └── 交换机 │ ├── VLAN │ ├── 隔离广播域 │ ├── 基于端口划分 │ ├── trunk端口 │ └── 802.1Q标签 │ ├── MPLS │ ├── 标签交换 │ ├── 入口加标签 │ ├── 中间换标签 │ └── 出口去标签 │ ├── 数据中心网络 │ ├── TOR交换机 │ ├── 多路径 │ ├── 负载均衡 │ └── 协议创新 │ └── Web请求全过程 ├── DHCP获取配置 ├── ARP找网关MAC ├── DNS解析域名 ├── TCP三次握手 └── HTTP请求响应

链路层不负责把数据送到全世界,它只负责把数据送到“下一跳”。 在局域网里,下一跳靠 MAC 地址标识。 如果不知道 MAC,就用 ARP 问。 交换机看 MAC 地址,在 LAN 内转发帧。 VLAN 把一个大 LAN 切成多个逻辑 LAN。 MPLS 给包贴标签,让运营商网络更灵活、更快地转发。 数据中心网络是这些技术的大规模应用。 最后的 Web 请求全过程,是把 DHCP、ARP、DNS、TCP、HTTP、IP、Ethernet 全部串起来。

第六章到这里就完整闭环了。

下一章第七章通常就是无线网络和移动网络,也就是 WiFi、蜂窝网络、移动 IP、切换这些内容。