计网自顶向下-第六章-链路层和局域网
第 6 章 链路层和局域网
6.1 链路层概述
- 节点
- 运行链路层协议的任何设备均称为节点
- 主机、路由器、交换机和 WIFI 接入点
- 链路
- 沿着通信路径连接相邻节点的通信信道称为链路
IP 数据报被封装在链路层帧中,在链路中传播

类比旅游中乘坐的交通工具有多种,游客类比数据报,每个运输区段类比链路,每个运输方式类比链路层协议,旅行社类比路由选择协议
6.1.1 链路层提供的服务
-
成帧
- 链路层帧封装 IP 数据报
- 一个帧由一个数据字段和若干首部组成,IP 数据报封装在数据字段中
- 帧的结构由链路层协议规定
-
链路层接入
- 媒体访问控制 MAC 协议规定了帧在链路上传输的规则
-
可靠交付
-
当协议提供此服务时,保证无差错地传输每个网络层数据报
-
通常通过确认和重传
-
易于产生高差错率的链路
- 无线链路:目的是在差错发生的链路上纠正一个差错,并不是通过运输层或者应用层协议进行端到端的数据重传
-
低比特差错的链路,可靠交付会是一种不必要的开销,因此许多有线链路层协议不提供
-
-
比特差错
- 1 与 0 颠倒
- 信号衰减、电磁噪声
- 发送节点和接收节点在帧进行差错检测比特
- 复杂,硬件实现
- 接收方不仅能检测,还能定位,纠正
6.1.2 链路层在何处实现

上述是典型的主机体系结构
链路层的主题是网络适配器,也称网络接口卡 NIC ,核心是链路层控制器,通常是一个实现了许多链路层服务的专用芯片,即链路层控制器是硬件实现的
6.2 差错检测和纠正技术

在发送节点使用差错检测和纠正比特 EDC 来增强数据 D
保护的数据不仅包括从网络层传递下来需要通过链路传输的数据报,还有链路帧首部的信息
差错检测和纠正技术有时也可能有未检出比特差错,需要使用更复杂更高效的技术来避免
-
奇偶校验
-
检验和方法:更多用于运输层
-
循环冗余检验:应用在适配器中的链路层
6.2.1 奇偶校验

1 比特
偶校验:发送方添加一个附加比特,使得这串比特 1 的总数是偶数个
奇校验:同理,为奇数个
差错经常是“突发”方式,多个比特同时变化导致未检测出差错的概率较大

二维偶校验如上,奇校验同理
假设 1 个比特出现差错,可将其检验和纠正,校验和比特出错也可以被检验和纠正
多比特出错是可以检测,但纠正不了
接收方检测和纠正差错的能力被称为前向纠错FEC,通常被用于音频设备中
前向纠错可避免不得不等待的往返时延
6.2.2 检验和方法
简单方法:
d 比特数据作为一个 k 比特整数序列处理,全部加起来,和作为差错检测比特
因特网检验和基于此,再取反码,接收方则将数据和检验和的和取反码,若为全为 1 则正确
TCP、UDP则是这种,16 比特
6.2.3 循环冗余检测
现在广泛使用的是此种 CRC 编码,也称多项式编码

发送方在数据后 + r 比特(实际上是 D * 2^r XOR r,以模 2 算术,加法不进位,减法不借位,同异或一样),再双方协商一个 (r + 1) 比特的 G,最高位为 1 ,接收方接收到 (d + r) 比特后,除以 G,得到余数,若为 0 则正确,否则则出错

得到R


6.3 多路访问链路和协议
-
点对点链路
- 链路的一端的单个发送方和链路另一端的单个接收方组成
- 点对点协议PPP、高级数据链路控制HDLC
-
广播链路
-
多个发送方和接收方都连接到相同的、单一的、共享的广播信道上
-
以太网和无线局域网
-
多路方向协议,节点通过这些协议来规范它们在共享的广播信道上的传播行为

多个节点可能同时传输帧,多个节点同时接收到多个帧,在接收方处则出现了碰撞
碰撞时,没有一个节点能有效获得任何有效的帧,此次碰撞的所有帧都消失了,碰撞时间间隔内的广播信道被浪费了
多路访问协议被划分为 3 种类型
- 信道划分协议
- 随机接入协议
- 轮流协议
在理性的状态下,对于速率为 R bps 的广播信道,多路方向协议应具有以下特性:
- 当仅有一个节点发送数据时,节点具有 R bps 的吞吐量
- 当有 M 个节点发送数据时,每个节点的吞吐量是 R / M bps,平均传输速率为 R / M
- 协议是分散的,不会因某节点而全面崩溃
- 协议是简单的
6.3.1 信道划分协议
时分复用 TDM,频分复用 FDM

TDM公平,但是有两个主要的缺陷
- 节点被限制在 R / N bps 的平均速率内,即使只有它要发送分组
- 节点必须总是等待它在传输序列中的轮次,即使它是唯一一个有时间帧要发送的节点
FDM避免了碰撞,公平等划分了带宽,但也有缺点,当某个节点是唯一要分组时,只能使用 R / N 带宽
码分多址 CDMA
每个节点分配不同的编码,每个节点使用此编码来对发送数据进行编码,接收方知道发送方的编码,可以正确接收
6.3.2 随机接入协议
一个传输节点总是以信道的全部速率发送,当碰撞时,涉及的每个节点反复重发帧,直到帧无碰撞。
当一个节点已经经历一次碰撞后,它等待一个随机时延后再重发该帧,涉及碰撞的节点均独立随机选择时延
最常见的是 ALOHA 协议与 CSMA 协议
1.时隙 ALOHA
先假设
-
所有帧 L 比特
-
时间被划分 L / R 秒时隙,即一时隙等于传输一帧的时间
-
节点只在时隙起点开始传输帧
-
节点是同步的,每个节点都知道时隙何时开始
-
如果在一个时隙中有两个或者多个帧碰撞,则所有节点在该时隙结束之前检测到该碰撞
p 概率,在每个节点中,时隙 ALOHA 的操作是
- 当节点有一个新的帧要发送时,它等到下一个时隙开始并在该时隙传播整个帧
- 没有碰撞则成功传输,不需要重传,如果有新的帧,则准备
- 有碰撞,在该时隙结束之前检测到,以 p 概率在后续的每个时隙中重传它的帧,直到帧被无碰撞传输出去
在某个时隙重传概率 p,(1 - p) 则是跳过此时隙,在下一个时隙再重新计算
当节点是唯一节点时,时隙ALOHA 允许该节点全速 R 连续传输
多个节点时

如图,三个节点在不同的时隙成功传输
刚好有一个节点传输的时隙称为一个成功时隙
时隙多路访问协议的效率:
当有大量的活跃节点且每个节点总有大量的帧要发送时,长期运行中成功时隙的份额
此协议最大的效率为 1 / e = 0.37
2.ALOHA
第一个 ALOHA 协议实际上是非时隙、完全分散的协议
当一帧都次到达,节点立即将该帧完整地传输进广播信道
如果一个帧与一个或者等多个传输经历了碰撞,这个节点将立即以概率 p 传输该帧,否则则等待一个帧传输时间,再在下一个时隙以 p 概率重新开始

最大效率为 1 / (2e),为时隙 ALOHA 的一半
3.载波侦听多路访问(CSMA)
- 载波侦听
- 一个节点在传输前先听信道,如果来自另外节点的帧在信道上发送,节点则等待直到检测到一小段时间没有传输,则开始传输
- 碰撞检测
- 一个节点在传输时一直侦听此信道,如果检测到另外节点在传输干扰帧,则停止传输,在“侦听-当空闲时传输”循环等待

虽然所有的节点都进行载波侦听,但还是会发送碰撞,如图,B 在 t0 时刻侦测到信道是空闲的,因此则发送比特,但由于端到端信道传播时延,在 t1 时刻仍为到达 D 所在的信道,此时 D 侦听到信道空闲,于是也发送了比特,最终导致了碰撞,碰撞后仍继续传输比特直到帧结束
4.具有碰撞检测的载波侦听的多路访问(CSMA / CD)

CSMA / CD 则在节点中加入碰撞检测,在检测到碰撞后在很短的时间内放弃传输,有助于改善协议的性能
从广播信道相连的适配器角度总结运行:
-
适配器从网络层获得数据报,封装进链路层帧,再将其放入帧适配器缓存中
-
侦听到信道空闲,开始传输帧;侦听到信道在忙,等待,直到侦听到没有信号能力开始传输帧
-
传输过程,监视来自其他使用该广播信号的适配器的信号能量存在
-
没有检测到,适配器完成了该帧;检测到,中止传输帧
-
等待随机时间,返回第 2 步
随机时间是为了防止两个节点同时传输帧,碰撞后等待相同时间,他们会不断碰撞下去
二进制指数后退:当传输一个给定帧时,在经历了一连串的 n 次碰撞后,节点随机地从 [0, 2^n - 1]中选择一个 K 值,于是碰撞越多, K 值越大
以太网中一个节点等待的实际时间量是 K * 512 比特时间
n 的最大值在 10 以内

每次适配器要准备传输一个新的帧时,都要运行 CSMA / CD 算法,不考虑近期过去的时间内可能已经发生的任何碰撞,于是当其他适配器处于指数后退时,有可能有新帧的节点能立即插入一次成功的传输
5.CSMA / CD 效率
定义:当有大量的活跃节点,且每个节点都有大量的帧要发送时,帧在信道中无碰撞地传输的那部分时间在长期运行时间内的份额
d(prop):信号能量在任意两个适配器之间传播的最大时间
d(trans):传输一个最大长度的以太网帧的时间
效率 = 1 / (1 + 5d(prop) / d(trans))
当 d(prop) 接近 0 时,效率接近 1 ,即无传播时延时,碰撞的节点立即中止,不会浪费信道
当 d(trans) 无穷大时,效率也接近于 1 ,即当一个帧取得了信道时,传输时间无限大,信道无浪费,则效率当然高
6.3.3 轮流协议
轮流协议:当有 M 个节点活跃时,每个活跃节点的吞吐量接近 R / M bps
-
轮询协议
-
节点之一被指定为主节点
-
主节点循环方式轮询每个节点
-
主节点能够观察在信道上是否缺乏信号,来决定一个节点何时完成了帧的发送
-
主节点首先向节点 1 发送一个报文,告诉节点 1 能够传输的帧的最多数量,在节点 1 传输了某些帧之后,再告诉节点 2 能传输的帧的最多数量
-
以上述方式不断进行
-
消除了随机接入协议的碰撞和空时隙
-
引入了轮询时隙,当只有一个节点还需要多次轮询
-
主节点有障碍时,整个信道都不可操作
-
-
令牌传递协议
- 没有主节点
- 被称为令牌的小特殊帧在节点之间以某种固定的次序进行交换
- 当一个节点收到令牌时,仅当它要发送帧时才持有,否则立即向下一个节点转发该令牌
- 确实要发送帧,则发送最大数目的帧,再将令牌发送给下一个节点
- 令牌传递是分散的,有很高的效率
- 一个节点的故障会导致整个信道的崩溃
- 节点偶然忘记释放令牌,需要调用恢复步骤使令牌返回到循环中
6.3.4 DOCSIS:用于电缆因特网接入的链路层协议


6.4 交换局域网

6.4.1 链路层寻址和 ARP
1. MAC 地址
事实上,不是主机或者路由器具有链路层地址,而是适配器(网络接口)具有链路层地址,于是具有多个网络接口的主机或者路由器具有与之相关联的多个链路层地址
链路层交换机并不具有与它们的接口相关联的链路层地址,因为其任务是在主机和路由器之间承载数据报,透明地执行该任务,也即主机或者路由器不必明确将帧寻址到其间的交换机

链路层地址有多个称呼: LAN 地址、物理地址、 MAC 地址,一般而言常称 MAC 地址
大多数 MAC 地址长度为 6 字节,即有 2^48 个 可能的 MAC 地址,常用 十六进制表示法,每个字节被表示为一对十六进制数
一般而言 MAC 地址是永久的,但软件还是可以改变一个适配器的 MAC 地址
一般而言 IP 地址很容易改变,而 MAC 一般不会改变
当某适配器要向某些目的适配器发送一个帧时,发送适配器将目的适配器的 MAC 地址插入到该帧中,并将该帧发送到局域网上
一台交换机偶尔将一个入帧广播到它的所有接口
当适配器接收到一个帧时,将检查该帧中的目的 MAC 地址是否与自己的 MAC 地址匹配,匹配则提取出封装的数据报,并向上传递,不匹配则丢弃该帧
有时发送适配器需要让局域网上所有其他适配器来接收并处理它打算发送的帧,此时需要在该帧的目的地址字段插入一个特殊的 MAC 广播地址
对于使用 6 字节地址的局域网来说,此广播地址是连续 48 个 1 组成的字符串,即十六进制表示会是 FF-FF-FF-FF-FF-FF
主机、路由器除了网络层地址外还有 MAC 地址原因:
- 局域网为任意网络层协议设计的,不只用于 IP 和 因特网
- 适配器如果使用网络地址,则必须存储在 RAM 中,每次移动和启动都需要重新设置
2.地址解析协议
ARP地址解析协议,对网络层和链路层地址进行转换

在发送主机中的 ARP 模块将取在相同局域网上的任何 IP 地址作为输入,返回相应的 MAC 地址
ARP 类似 DNS,但 DNS 为在因特网中任何地方的主机解析主机名,而 ARP 只为在同一个子网上的主机和路由器解析 IP 地址
每台主机或路由器在其内存中具有一个 ARP 表,包含 IP 地址到 MAC 地址的映射关系,同时还有寿命 TTL
不需要拥有该子网的所有 IP 地址的映射关系

当发送方的 ARP 表中没有目的主机的表项时将构建一个 ARP 分组,包含发送、接收的 IP 地址及 MAC 地址,查询分组和响应分组格式相同
查询分组目的是询问子网上所有其他主机和路由器,来确定要解析的 IP 地址对应的 MAC 地址
-
查询报文是在广播帧发送的,响应报文则是在标准帧发送的
-
ARP 是自动建立的,不需要管理员来配置,如果主机和子网断开连接,表项会被删除
-
ARP 协议看成是跨越链路层和网络层边界两边的协议
3.发送数据报到子网外


6.4.2 以太网
集线器:
- 物理层设备
- 作用比特而不是帧
- 某个比特到达接口,重新生成此比特并放大能量,向其他所有接口传输出去
- 广播局域网,向所有其他接口发送比特的副本
- 同时收到两个不同的帧,出现碰撞,需要重新传输帧
交换机代替集线器,“无碰撞”,运行在第二层
1.以太网帧结构

以太网帧不仅能承载 IP 数据报,也能承载其他网络层分组
发送适配器在一个以太网帧中封装一个 IP 数据报,并把该帧传递到物理层
接收适配器从物理层接收这个帧,提取出 IP 数据报,并将 IP 数据报传递到网络层
-
数据字段
- 承载了 IP 数据报
- 以太网最大传输单元 MTU 是 1500 字节,IP 数据报超过了则需要分片
- 数据字段最小长度是 46 字节,IP 数据报少于时则被填充到 46 字节,填充时传递到网络层则包括 IP 数据报和填充部分,使用 IP 数据报首部的长度字段去除填充部分
-
目的地址
- 6 字节
- 包含目的适配器的 MAC 地址
- 适配器收到了本身的 MAC 地址或 MAC 广播地址则将该帧传递给网络层
- 否则丢弃
-
源地址
- 6 字节
-
类型字段
- 2 字节
- 允许以太网复用多种网络层协议
- 如 IP、ARP 等
-
CRC
- 4 字节
- 循环冗余检测
- 使得接收适配器检测帧中是否引入了差错
-
前同步码
- 以太网帧以 8 字节的前同步码字段开始
- 前 7 字节的值都是 10101010
- 最后一个字节是 10101011
- 前 7 字节为唤醒适配器,同步时钟
- 适配器的发送速率虽然是额定的,但仍有一些偏移
- 接收适配器通过锁定前 7 字节比特,就能锁定发送适配器是时钟
- 第 8 字节的最后 2 个比特 “11”提醒适配器内容来了
以太网技术都是无连接的,两个适配器之间的通信是没有先握手的,类似 IP 数据报或者 UDP报文
以太网技术都是不可靠的,接收适配器无论帧是否损坏,都没有通知发送适配,于是传递到网络层的数据报流其实是有间隙的
对于丢弃了以太网帧而存在间隙,TCP 则会重传
2.以太网技术
以太网是链路层也是物理层的规范,并且能够经各种物理媒体承载
6.4.3 链路层交换机
任务:接收入链路层帧并将土木转发到出链路
交换机自身对于子网中的主机和路由器是透明的
某主机 / 路由器 向另外一个主机 / 路由器寻址一个帧,顺利将帧发进局域网,并不知道某交换机将会接收该帧并将它转发到另一个节点
1.交换机转发和过滤
过滤:决定一个帧应该转发到某个接口还是应当将其丢弃的交换机功能
转发:决定一个帧应该被导向哪个接口,还是把该帧移动到那些接口的交换机功能
借助于交换机表,包含某局域网上某些主机和路由器的部分表项
- MAC 地址
- 通向该 MAC 地址的交换机接口
- 表项放置在表中的时间

假设目的地址为 DD-DD-DD-DD-DD-DD 的帧到达接口 x
-
表中没有此选项,交换机向除了接口 x 的所有接口转发该帧的副本,即广播该帧
-
表中有表项将此 MAC 地址与接口 x 联系起来,即该帧从一个局域网网段来的,局域网内转发,无需通过交换机,丢弃该帧,过滤功能
-
表中有表项将此 MAC 地址与接口 y != x 联系起来,被转发到与接口 y 项相连的局域网,转发功能

如目的地址为 62-FE-F7-11-89-A3 的帧从接口 1 到达 交换机,此时此帧会被丢弃,因为其在包含目的地的局域网网段广播过了
假如是从接口 2 到达的,则会被像接口 1 的输出缓存转发该帧
2.自学习
表是自动的、动态的和自治地建立的
- 交换机表初始是空的
- 对于在每个接口接收到的入帧,在表中存储
- 帧的源地址字段的 MAC 地址
- 到达该帧的接口
- 当前时间
- 在一段时间,即老化期后,没有收到以该地址作为源地址的帧,则在表中删除了
即插即用设备,双工
3.链路层交换机的性质
- 消除碰撞
- 在交换机构建的局域网,没有因碰撞而浪费的带宽
- 交换机缓存帧不会在网段上同时传输多与一个帧
- 最大聚合带宽是交换机所有接口速率之和
- 提供比广播链路的局域网高得多的性能改善
- 异质的链路
- 将链路彼此隔离,于是局域网不同的链路能以不同速率且在不同的媒体上运行
- 管理
4.和路由器的比较
路由器是使用网络层地址转发分组的存储转发分组交换机,第三层交换机;交换机是使用 MAC 地址的存储转发分组交换机,第二层

交换机
- 优点
- 即插即用
- 相对高的分组过滤和转发速率
- 缺点
- 分组被限制在一颗生成树上
- 不对广播风暴不提供任何保护措,可能导致以太网的崩溃
路由器
- 优点
- 分组不会被限制在一颗生成器上,使用源和目的地址的最佳路径
- 对第二层的广播风暴提供了防火墙保护
- 缺点
- 不是即插即用,需要人为配置
- 分组处理时间长

通场在几百台主机组成的小网络有几个局域网网段,此时交换机足够,因为不需要 IP 地址的配置就能使流量局部化并增加总计吞吐量
在几千台主机组成的更大网络,则需要路由器,能提供更健壮的流量隔离方式和对广播风暴的控制
6.4.4 虚拟局域网

- 缺乏流量隔离
- 广播流量仍然必须跨越整个机构网络,限制这些广播流量将改善局域网性能
- 为了安全、隐私的目的
- 交换机的无效使用
- 组比较小,交换机剩余端口多
- 管理用户
- 用户的主机移到将需要改变布线
虚拟局域网 VLAN :直接 VLAN 的交换机允许经一个单一的物理局域网基础设施定义多个虚拟局域网,在一个 VLAN 内的主机彼此通信,仿佛他们与交换机连接
在一个基于端口的 VLAN 中,交换机的端口被划分为组,每组组成一个 VLAN ,在每个 VLAN 中的端口形成一个广播域

而此时电气工程系的流量无法发送到计算机系,解决方法则是将 VLAN 的一个端口与路由器相连并进行配置,而到现在 VLAN 和路由器已集合在一起
VLAN 交换机通过 VLAN 干线连接进行扩展性互联,两个 VLAN 交换机各自一个端口配置为干线端口,使用干线链路互联

交换机通过一种扩展的以太网帧格式知道到达干线端口的帧属于某个特定 VLAN

4 字节 VLAN 标签
- 标签协议标识符 2字节 (十六进制81 - 00)
- 标签控制信息 2字节
- 12 比特 VLAN 标识符
- 3 比特 优先权字段
- 12 比特 VLAN 标识符
6.5 链路虚拟化:网络作为链路层
多协议标签交换 MPLS
- 固定长度标签
- 目标:对于基于固定长度标签和虚电路技术,在不放弃基于目的地 IP 数据报转发基础设施的前提下,当可能时通过选择性地标识数据报并允许路由器基于固定长度的标签转发数据报来增强其功能
MPLS使能的路由器处理的链路层帧格式

MPLS 首部,添加在第二层首部和第三层首部之前
包含
- 标签
- 实验:3 比特
- S: 1 比特
- TTL
仅能使用在都支持 MPLS 的路由器(标签交换路由器)之间,否则会被混淆
标签交换路由器在通过在转发表中查找 MPLS 标签,然后立即将数据报传递给适当的输出接口来转发 MPLS 帧,不需要提取目的 IP 地址 和在转发表中进行最长前缀匹配的查找

MPLS
-
优点:
- 流量管理能力,多路路由转发分组的能力
-
其他目的
- 执行 MPLS 转发路径的快速恢复
- 被用于实现虚拟专用网 VPN
6.6 数据中心网络

1.负载均衡
在数据中心内部,外部请求首先被定向到一个负载均衡器
负载均衡器任务是向主机分发请求,以主机当前负载作为函数
大型数据中心通常有多台负载均衡器,每台服务于特定的云应用
负载均衡器基于分组的目的端口(第四层)和目的 IP 地址决定,也被称为“第四层交换机”
- 处理请求
- 接收请求,分发到具体主机,主机返回响应,负载均衡器接收,返回给客户
- 类似 NAT 功能
- 将外部 IP 地址转换为内部适当主机的 IP 地址
3.发展趋势

6.7 回顾:Web 页面请求的历程
学生下载一个 Web 页面

6.7.1 准备:DHCP、UDP、IP 和以太网
假设以太网电缆连接到学校以太网交换机,交换机与学校路由器相连
路由器又与 ISP 连接,为 comcast.net,且为学校提供 DNS 服务器,DHCP 服务器又运行在路由器中
-
学生的主机生成 DHCP 请求报文,放入目的端口 67 (DHCP服务器),源端口 68 (DHCP客户)的 UDP 报文段,UDP 报文段放置在具有广播 IP 地址 (255.255.255.255)和源 IP 地址 (0.0.0.0) 的 IP 数据报中
-
包含 DHCP 请求报文的 IP 数据报则被放置在 以太网帧中,目的 MAC 地址为 FF:FF:FF:FF:FF:FF ,被广播到与交换机连接的所有设备,包括 DHCP 服务器,源 MAC 地址则是学生的主机 MAC 地址
-
包含 DHCP 请求的广播以太网帧是第一个由学生的主机发送到以太网交换机的帧,交换机的所有出端口广播入帧,包括连接到路由器的端口
-
路由器在它的 MAC 地址为 00:22:6B:45:1F 的接口接收到该广播以太网帧,包含了 DHCP 请求,从帧中抽出 IP 数据报,该报的载荷 UDP 报文段被分解向上到达 UDP,DHCP 报文则从 UDP 报文段中抽取出来,DHCP 路由器知道了此 DHCP 请求报文
-
再假设 DHCP 服务器使用 CIDR 块 68.85.2.0/24 分配 IP 地址,假设分配给学生主机的 IP 地址为 68.85.2.101 ,服务器返回一个 DHCP ACK 报文,包含学生的 IP 地址、DNS 服务器 IP 地址 68.87.71.226 、默认网络的路由器 68.85.2.1、子网块 68.85.2.0/24(即网络掩码);此 ACK 报文被放入 UDP 报文中, UDP 报文再被放入 IP 数据报中,最后进入以太网帧中,帧的源 MAC 地址是路由器连到归属地网络的接口的 MAC 地址 00:22:6B:45:1F:1B,目的 MAC 地址则是学生主机的 MAC 地址 00:16:D3:23:68:8A
-
包含 DHCP ACK 的以太网帧由路由器发送给交换机,自学习的交换机由于先前从学生主机那里收到了 DHCP 请求的以太网帧,于是知道寻址到 00:16:D3:23:68:8A 的帧从通向学生主机的端口发出
-
学生主机收到了 DHCP ACK 的以太网帧,抽取出 IP 数据报、UDP 报文、 DHCP ACK 报文 ,记录下自己的 IP 地址,DNS 服务器的 IP 地址,在 IP 转发表中安装默认网关的地址,向其发送 68.85.2.0/24 以外的数据报
6.7.2 仍在准备:DNS 和 ARP
学生将 www.google.com 输入浏览器时,浏览器通过生成 TCP 套接字,套接字向 www.google.com 发送 HTTP 请求
-
学生主机的操作系统生成一个 DNS 查询报文,将 url 放入 DNS 报文段中,DNS 报文被放在 53 号目的端口的 UDP报文段中,再被放入目的 IP 地址为 68.87.71.226 ,源 IP 地址为 68.85.2.101 的 IP 数据报中
-
数据报仔被放入以太网帧中,再被发送到 学校的网关路由器,但由于不知道此路由器的 MAC 地址,需要使用 ARP 协议
-
生成一个目的地址为 68.85.2.1 的网关 IP 的 ARP 查询报文,再被放入广播目的地址 FF:FF:FF:FF:FF:FF 的以太网帧中,向交换机发送该帧,交换机将该帧发送给所有连接的设备,包括网关路由器
-
网关路由器收到该帧,在 ARP 报文中发现目标 IP 地址匹配它接口的 IP 地址,于是返回 ARP 回答,指示 IP 地址对应的 MAC 地址 00:22:6B:45:1F:1B ,发送给交换机,再由交换机发送给学生的主机
-
学生主机收到 ARP 回答报文的帧,取出网关路由器的 MAC 地址
-
学生主机使包含 DNS 查询的以太网帧寻址到网关路由器的 MAC 地址。该帧的 IP 数据报中 DNS 服务器 IP 目的地址 ,MAC 目的地址则是网关路由器的 MAC 地址。学生主机发送给交换机,再交付给网关路由器
6.7.3 仍在准备:域内路由选择到 DNS 服务器
-
网关路由器收到该帧并抽取包含 DNS 查询的 IP 数据报;路由器查找目的地址,并根据转发表决定该发送到 Comcast 网络中的哪一个路由器和选择哪条链路
-
路由器接收到该帧,抽取数据报,根据目的 IP 地址和转发表确定出接口,转发向 DNS 服务器;转发表根据 Comcast 域内协议和因特网域间协议填写
-
最终 IP 数据报到达 DNS 服务器,服务器抽出 DNS 查询报文,在数据库中查找对应的 IP 地址的 DNS 源记录,生成 主机名到 IP 地址的 DNS 回答报文,放入 UDP、IP 数据报中,最好通过 Comcast 网络反向转发到路由器、交换机、学生主机
-
学生主机抽出 IP 地址
6.7.4 Web 客户 - 服务器交换:TCP 和 HTTP
-
学生主机生成 TCP 套接字,用于向 www.google.com 发送 HTTP GET 报文;先与 www.google.com 中的 TCP 执行三次握手,于是学生客户生成目的端口 80(HTTP)的 TCP SYN 报文段,放在目的地址 64.233.169.105 的 IP 数据报中,再放在 MAC 地址为 00:22:6B:45:1F:1B (网关路由器)的帧中,向交换机发送该帧
-
在学校网络、Comcast 网络、谷歌网络中的路由器朝着 www.google.com 转发包含 TCP SYN 的数据报,使用每个路由器中的转发表,域间链路转发路由表由 BGP 协议决定
-
TCP SYN 的数据报到达 www.google.com,抽取出 TCP SYN 报文并分解到端口 80 相联系的欢迎套接字,再生成连接套接字,产生 TCP SYNACK 报文段,放入发向学生主机的数据报中,再进入链路层帧,选择合适链路和路由器
-
TCP SYN ACK 报文段的数据报通过谷歌、Comcast、学校网络,最终到达学生主机上,数据报被分解到之前生成的 TCP 套接字,进入了连接状态
-
浏览器生成包含要获取的 URL 的 HTTP GET 报文,写入套接字中,成为 TCP 报文的载荷,继而是 IP 数据报,以太网帧,最后到达 www.google.com
-
google 的 HTTP 服务器从 TCP 套接字读取 HTTP GET 报文,生成 HTTP 响应报文,放入 HTTP 响应体中,发送进 TCP 套接字中
-
数据报通过网络到达学生主机,浏览器从套接字读取 HTTP 响应,抽取 Web 网页的 html,显示了 Web网页
浙公网安备 33010602011771号