链路层服务的原则:
- 错误检测,校正
- 共享广播信道:多址访问
- 链路层寻址
- 局域网:以太网,VLAN
实例化,各种链路层技术的实现
6.1 链路层概述
- 节点:主机和路由器
- 链路:沿着通信路径连接相邻节点的通信信道,分为有线和无线链路
- 帧:数据链路层的分组单元
数据链路层的主要功能:负责将数据包通过链路从一个结点传输到物理上相邻的节点
数据链路层的简单模型:一个主机向另一个主机发送数据,期间经过多个路由器,通过了多个网络,数据在这些网络中流动。
说明:
- 数据报咋不同链路上可能由不同的链路层协议进行处理
- 如第一段链路由PPP处理,最后一段链路由以太网处理等
- 不同的链路层协议可能提供不同的服务,如可靠传递等
6.1.1 链路层提供的服务类型
- 成帧、链路访问
- 将数据加上头部和尾部,以此封装为数据帧
- 共享介质的信道访问
- 帧头部用MAC地址标识源和目的,不同于IP地址
- 可靠传递
- 很少用于误码率低的链路(光纤、双绞线链路)
- 用于误码率高的链路(无线链路)
- 流量控制
- 在相邻的收发节点之间限制流量
- 差错检测
- 信号衰减和电磁干扰噪声容易导致出错,接收方检测到错误存在时,会给发送方发送信号要求重传或者丢弃该数据帧
- 差错纠正
- 接收方检测和纠正帧中错误,不用重传
- 半双工和全双工
- 半双工时链路两段的节点都能够传输分组但不能同时传输
6.1.2 链路层在何处实现
链路层的主体部分是在网络适配器中实现的,网络适配器有时也称为网络接口卡,位于网络适配器的核心是链路层控制器,其中实现了多个链路层服务。
适配器通信
- 在每一台设备上都有一个适配器(主机、交换机、路由器等)
- 链路层在适配器或芯片上实现
- 直接与主机的系统总线相连,与其他连接主机的IO设备相同
- 是硬件、软件和固件的结合体
- 适配器是半自治单元
- 网络接口卡或芯片是适配器
- 帧的发送和接收、检错、丢弃都是适配器自主进行的
- 向上提交数据时,需要节点干预
- 最终受控于节点
- 发送方在一个帧内封装数据报,增加差错检测位,可靠交付,流量检测等;接收方查找错误,可靠交付,进行流量控制,取出数据报并交给网络层。
6.2 差错检测和纠正技术
在发送节点,为了保护比特免受差错,使用差错检测和纠正比特EDC来增强数据D。通常要保护的数据不仅从网络层传递下来需要通过链路传输的数据报,而且包括链路层首部中的链路级的寻址信息、序号和其他字段。链路级帧中的D和EDC都被发送到接收节点。差错检测不是100%可靠的,EDC越长可靠程度越高,检错和纠错的能力越强。
6.2.1 奇偶校验
最简单的差错检测方式就是单个比特的奇偶校验,但是检错能力太差了,因此可以使用二维奇偶校验方法,包含比特值改变的列和行的校验值都将会出现差错,因此接收方不仅可以检查到单个比特出错,还可以纠正。
接收方检测和纠正差错的能力被称为前向纠错。
6.2.2 检验和方法
因特网检查和
- 目标:检测发送包中的错误,仅用于运输层
- 发送方:
- 将数据段的内容作为16比特的整数序列
- 校验和:累加求和,计算和的反码
- 发送方将得到的校验和值放入到PDU校验和字段
- 接收方
- 计算收到的数据段的校验和
- 检查计算出的校验和与校验和字段中的值是否相同
- 如果不同则检测到错误
- 如果相同则认为没有监测错误(不代表就一定没有错误)
- 仅用于TCP、UDP和IPv4协议之中
6.2.3 循环冗余纠错CRC
对于d个比特的数据D,选择r+1比特模式(生成多项式)表示为G,目标是选择r个CRC比特R使得:
- <D,R>刚好能够被G整除(模2计算)
- 接收方已知G,用G去除<D,R>,如果余数不为0则检测到错误
- 能检测到所有小于r+1个比特的错误
6.3 多路访问(即多址访问)链路与协议
链路分为两种:
- 点到点链路,由链路一端的单个发送方和链路另一端的单个接收方组成。如PPP、以太网交换机和主机之间点到点的链路
- 广播链路,能够让多个发送和接收节点连接到相同的、单一的、共享的广播信道上。如传统以太网、802.11无线LAN。
- 特点:
- 单个共享广播信道
- 当两个或多个节点同时传输时,会产生相互干扰。
- 碰撞:一个节点同时收到两个或多个信号
- 特点:
多址访问协议:
- 分布式算法决定节点如何共享信道,如结点何时可以传输数据
- 特别注意:有关共享信道的通信需要使用信道本身,没有额外的信道用于协调
- 理想的多址访问协议需要满足:
- 假定:信道为速率为Rb/s的广播信道
- 当只有一个节点有数据发送时,该结点的吞吐量为R
- 当M个节点有数据发送时,每一个结点的吞吐量为R/M
- 分散,没有特定节点用于调整传输,没有时钟同步
- 简单,容易实现
- 多路访问协议的分类:
- 信道划分协议
- 将信道划分为多个小片(使用时隙、频率、编码等划分)
- 将不同的片分配给不同的节点使用
- 随机访问协议
- 信道没有被分割,允许碰撞
- 需要有碰撞恢复的技术
- 轮流协议
- 节点轮流传送,但是数据量大的节点轮流更长时间
- 信道划分协议
6.3.1 信道划分协议
信道划分分为时分复用、统计时分复用、频分复用和随机访问这几种。
信道划分协议TDMA
- 时分复用TDM
- 循环访问信道,每一个结点在每一次循环中得到固定长度的时隙(时隙长度=传输单个分组的时间)
- 没有数据发送的时隙空闲
- 统计时分复用STDM
- 使用STDM帧作为基本单位,一个STDM帧可以容纳多个分组,时隙数量小于用户数量。
- 每当用户需要发送分组时将其发送到集中器中的集中缓存
- 集中器按照一定的顺序依次扫描用户是否输入,将缓存中的输入数据放到STDM帧中,没有数据的缓存跳过,当一个帧的数据放满时发送。
- 是时分复用的改进
- 信道划分协议FDMA
- 信道按照频谱分为若干个频段
- 每一个节点分配固定的频段
- 在频段不用时该部分信道就被闲置浪费了
6.3.2 随机访问协议
- 当节点有数据发送时
- 以信道全部速率R传输
- 没有主节点起到协调作用
- 两个或多个节点传送时会发送碰撞
- 需要有检测碰撞和恢复碰撞的技术,如延时之后重传
- ALOHA,时隙ALOHA等
ALOHA
Additive Link On-Line HAwaii system,是计算机网络早期发展中一个著名的网络,至今还在运行。
特征:
- 网络拓扑采用星形结构
- 为了节省费用和易于组网,网络中各个站点的通信采用无线传输介质
- 由于采用无线电信道。考虑到无法申请更多的频率点,因此所有站点都使用同一的频率通过主机交换信息
工作原理:
- 当一帧首次到达(即一个网络层数据报在发送节点从网络层传递下来),节点立刻将该帧完整地传输到广播信道中,取帧传输时间为时间单元。
- 在任何给定时间,某个结点传输一个帧的概率为p。在其传输过程中其他节点不能传输,根据计算,一次传输成功的概率为p(1-p)2(N-1)。ALOHA协议的最大效率为1/2e。
- 如果发生了碰撞,节点等待随机的一段时间之后重新发送分组。
- ALOHA系统中一个节点并不会关心其他结点是否正在发送帧,这也就是为什么纯ALOHA一次传输成功的概率为p(1-p)2(N-1),对于一个在t时刻开始传输的帧(所有帧传输时间为1)而言,需要从t-1到t+1的这段时间内都没有其他的帧开始传输,可见如果传播速率足够快,在该帧还没有发送完的时候,已经有节点能够接收该帧了,但它不会因此而阻止自己不发送自己需要发送的帧。
时隙ALOHA
将整个链路以时隙分割,每一个主机如果要发送分组,则必须在每一个时隙之内将分组发送完成。如果有冲突则随机等待几个时隙之后重发。
载波侦听多路访问CSMA
在时隙和纯ALOHA中,一个节点传输的决定独立于连接到这个广播信道上的其他节点的活动。特别是一个结点不关心在它开始传输时是否有其他节点正在传输。
载波侦听:在传输前首先对链路进行监听,如果信道空闲,则传输整个帧,否则等待。但是碰撞还是可能发生。如果一个信道的延迟时间比较长,当其他主机开始发送分组时,这个分组可能不会很快地传到当前主机,使得当前主机误以为信道中没有分组正在传输,因此可能存在其传输还未完成时发现有碰撞的情况。
CSMA分类:
- 非坚持CSMA,一旦监听到信道忙,就不再继续监听,而是根据协议的算法延迟一个随机的时间之后重新监听。如果进行载波监听时发现信道空闲,则将准备好的帧发送出去。
- 时隙非坚持CSMA,采用划分时隙的随机接入CSMA协议,协议规定只能在每一个时隙开始时才能发送帧。
- 1坚持CSMA,一个站点要传送数据之前首先监听信道,如果忙则持续等待到监听到信道空闲时发送数据,如果发生冲突则站点等待一个随机长的时间然后重新开始。
- P坚持CSMA,一个站点要传送数据之前首先监听信道,如果忙则持续等待到监听到信道空闲时,以概率P发送数据,而以(1-P)延迟一段时间τ(网络中最远的端到端传播时延),重新监听信道。如果发生冲突,站点等待一个随机长的时间,然后重新开始。
CSMA比较:
- 非坚持:不能充分利用信道刚刚转入空闲期的这段时间
- 1坚持:容易在上述这段时间之内产生冲突,实际网络常用
- P坚持:很难选择一个用于各种通信量度的P值
具有碰撞检测的载波监听多路访问(CSMA/CD)
- 在短时间内碰撞能够被检测
- 在有线LANs中比较容易:测量信号强度,比较收发的信号
- 在无线LANs中比较困难:传输时接收器关闭,接收的信号远小于发送的信号强度
- 碰撞之后停止传输,减少信道浪费
- 强化碰撞
- 当发送数据的站一旦发现产生碰撞,除了立即停止发送数据之外,还要继续发送若干比特的人为干扰信号,以便让所有的用户都知道现在已经发生了碰撞
争用期:
- 最先发送数据帧的站,在发送数据帧之后至多经过2τ(最长的端到端时延)时间就可以知道发送的数据帧是否遭受碰撞
- 以太网的端到端往返时延2τ称为争用期,或碰撞窗口
- 经过争用期这段时间还没有检测到碰撞,就可以确认这次发送没有碰撞
以太网CSMA/CD算法:
- 网卡从网络层接收数据报,并创建数据帧
- 如果网卡检测信道空闲,则开始进行帧传输
- 如果网卡检测信道忙,则等待直到信道关闭,然后发送
- 如果网卡发送整个帧没有探测到另一个传输,则网卡完成帧发送
- 如果网卡检测到另一个传输,则传输终止并发送干扰信号
- 传输终止之后,使用二进制退避(网卡随机从0/1/2/3/…/2m-1之中选择K,网卡等待K*512bit时间,返回第2步)越多的碰撞决定越大的退避间隔
6.3.3 轮流协议
为了满足:当有M个节点活跃时,每一个活跃节点的吞吐量接近R/M bps,开发了此协议。
- 信道划分协议的特点:
- 在负荷重时,共享信道有效公平
- 在负荷轻时效率低,信道访问延时,即使只有一个活动结点也只能分配到1/N的带宽
- 随机访问协议的特点:
- 在负荷轻时效率高,只有一个节点也能够充分利用信道
- 在负荷重时将会产生巨大的碰撞开销
轮询协议
- 要求这些节点之一要被指定为主节点。
- 主节点以循环的方式轮询每一个节点。主节点首先向节点1发送一个报文说明其能够传输的帧的最多数量,然后在节点1传输了某些帧之后,主节点再发送报文向节点2说明,以此类推。
- 这个协议引入了轮询时延的开销,且如果主节点故障,整个网络都将崩溃。
令牌传递协议
- 没有主节点,一个称为令牌的小的特殊帧在节点之间以某种固定的次序进行交换。
- 当一个节点收到令牌时,仅当它有一些帧要发送时,它才持有这个令牌,否则立即向下一个节点转发该令牌。当一个节点收到令牌时,如果它确实有帧要传输,它发送最大数目的帧数,然后把令牌转发给下一个节点。
- 令牌传递分散,并高效,但一个节点的故障可能会使整个信道崩溃。如果一个节点偶然忘记了释放令牌,则必须调用某些恢复步骤使得令牌返回到循环。
总结:对共享介质的处理
- 信道划分,可基于时间、频率、编码,分为时分和频分
- 随机划分(动态)
- ALOHA,S-ALOHA,CSMA,CSMA/CD
- 载波侦听:有线较容易,无线较困难
- CSMA/CD 用于以太网
- CSMA/CA 用于802.11
- 轮流
- 主节点轮询,令牌传递
6.4 交换局域网
6.4.1 链路层寻址与ARP
MAC地址(LAN地址,物理地址)
作用:在数据链路层表示每一块网络适配器,使得能够在广播信道上寻找目标节点
组成:
- 48 bit
- 前24bit由IEEE分配管理——OUI号
- 后24bit由厂商自行分配
- IEEE管理MAC地址空间
MAC地址是烧在网络适配器的ROM中,不可修改(软件模拟的可以修改)
与IP地址比较:
- MAC地址是平面地址,类似于身份证号
- IP地址是层次地址,类似于邮政通信地址
- MAC地址在不同的网络之间迁移时,不会改变
- IP地址在不同的网络之间迁移时,需要改变以适应新的网络配置
- 无线网络中进行漫游时,如果在不同的网络之间切换时,改变网络设置会导致连接中断。
MAC地址的重要性:
- 局域网设备不能识别IP地址,因为其工作在链路层,因此只能够通过MAC地址寻找主机。
- 进程产生的套接字是端口号+IP地址,在局域网中是通过IP地址获得MAC地址。
- 通过ARP(地址解析协议)可以在已知IP地址的情况下,获得MAC地址。
地址解析协议(ARP)
目标:根据目标的IP地址获取其MAC地址
ARP高速缓存(ARP表)
- 每一个IP节点(主机、路由器)都有ARP表
- 局域网节点的IP/MAC地址映射:<IP; MAC; TTL>
- TTL:时限,Time to Live,超过TTL的地址映射会被删除(一般20分钟)
ARP协议工作流程:
- 建立ARP请求包
- 广播发送该ARP请求包,其中包含目标的IP地址。广播的MAC地址为全1,即FF:FF:FF:FF:FF:FF
- 目的主机接收到该ARP请求包,建立包含自己的MAC地址的ARP应答包(请求包和应答包的源、目标是不一致的)并发送
- 发出请求的主机接收到该数据包之后,更新ARP高速缓存
当一台主机需要发送数据到另一个子网的主机时,首先需要通过ARP报文获取目标主机的MAC地址,然后在发送IP报文时,MAC地址不应该填目标主机的MAC,而应该是路由器的MAC,这样路由器才能将这个报文转发到另外一个子网。
6.4.2 以太网
类型:
- 总线式以太网:所有的主机都与一条总线连接,接收到不是发送到本机的报文则不予理会。
- 交换式以太网:主机与主机通过交换机连接为网状结构。
以太网帧结构
- 数据字段:46~1500字节
- 前同步码:8字节,前面7个字节的格式为10101010,最后一个字节为10101011,用于同步发送方与接收方的时钟
- 地址:6字节,若适配器收到以太网帧,目的地址为自己的MAC地址或广播地址,就将帧中的数据传给网络层,否则适配器丢弃该帧
- 类型:上层协议类型(大多为IP协议,也支持其他协议)
- CRC:由接收方检查,如果检测到错误就将该帧丢弃
以太网提供的服务:
- 无连接服务:在发送适配器和接收适配器之间不需要另外的连接操作
- 不可靠服务:接收适配器不发送确认帧或否认帧给发送方
- 交给网络层的数据包可能存在间隙,如果应用使用TCP,间隙会被填充,否则应用会看见间隙
以太网使用的CSMA/CD
- 没有时隙
- 当适配器侦听到其他的适配器在传输时,它不传输帧,即载波侦听
- 正在传输的适配器如果检测到其他适配器也在传输,则其终止自己的传输,即碰撞检测
- 在重新传输之前,适配器等待一段随机时间,即随机访问
算法流程:
- 适配器收到来自网络层的数据包,创建帧
- 若适配器检测到信道空闲,则开始传输帧;若检测到信道忙,就开始等待,直到信道空闲时才开始传输该帧
- 若适配器传输了整个帧而没有检测到其他适配器的传输,则该适配器完成该帧的传输
- 若适配器在传输时检测到其他适配器也在传输,则停止传输并发出拥塞信号
- 终止传输之后适配器进入指数回退阶段,在经历第m次碰撞之后,适配器随机从{0, 1, 2, …, 2m-1}中选择k值。适配器等待k*512比特时间之后返回第2步
拥塞信号:用于确保所有传输者都能检测到碰撞而传输的信号,共48比特
比特时间:传输1个比特所用的时间
指数回退算法
- 目的:适配器重传时试图估计正确的负载。
- 重载:随机等待的时间可能会更长。
- 第一次碰撞:从{0, 1}中选择K;延迟是K*512比特传输时间
- 第二次碰撞:从{0, 1, 2}中选择K
- …
重要特性:
- 使用CSMA/CD协议的以太网不能进行全双工通信,而只能使用双向交替通信(半双工通信)
- 每一个站在发送数据之后的一小段时间之内存在遭遇碰撞的可能性
- 这种发送的不确定性使得整个以太网的平均通信量远小于以太网的最高数据率
争用期长度:
- 10Mb/s的以太网取51.2μs为争用期的长度,100Mb/s为其1/10
- 对于10Mb/s的以太网,在争用期之内可以发送512比特(64字节)
- 以太网在发送数据时,如果前64字节没有发生碰撞,则后续的数据旧不会发生碰撞
最短有效帧长
- 如果发生碰撞,就一定会发生在发送的前64字节内
- 由于一检测到碰撞就立刻中止发送,则此时已经发送出去的数据量一定小于64字节
- 以太网规定最短的有效帧长为64字节,凡是长度小于64字节的帧都是由于冲突而异常中止的无效帧
物理层简介
信号编码:
- 曼彻斯特编码:设置0为上升沿,1为下降沿
- 差分曼彻斯特编码:0翻转,1不翻转
集线器互联
- 主干集线器互联LAN网段
- 扩展了节点之间的最大距离
- 原先独立的网段碰撞域变成了一个大的碰撞域
- 不能将10BaseT和100BaseT的以太网互联
- 10和100代表速率,T代表使用双绞线
- 节点连接到集线器,是一个星形的拓扑形状。在节点和集线器之间的最大距离为100m
- 10Base5代表粗同轴电缆,可靠性好,抗干扰能力强。
- 收发器:用于发送、接收数据,冲突检测,电气隔离等。
- AUI:连接件单元接口
- 这种电缆一般使用总线型拓扑,用于网络骨干连接
- 10Base2代表细同轴电缆,可靠性稍差
- 使用BNC T型接头连接,使用总线型拓扑,可用于办公室LAN
- 集线器
- 集线器本质上是物理层的中继器
- 从一个接口收到的比特流会传给其他所有接口
- 同样速率
- 没有帧缓存
- 集线器没有CSMA/CD,由适配器检测碰撞
- 提供网络管理功能(可网管、智能、网络分段)
- 千兆以太网
- 使用标准以太网帧格式
- 允许点对点链路和共享的广播信道
- 共享信道时使用CSMA/CD,为了得到可接受的效率,节点之间的距离需要短一些
- 对于点到点链路可以以1Gbps的速率全双工工作
6.4.3 链路层交换机
- 链路层设备
- 存储、转发以太网帧
- 查看输入帧的MAC地址,选择性地将帧输出到一个或多个输出链路,使用CSMA/CD
- 对外透明,主机不知道交换机的存在
- 即插即用,自学习,交换机无需配置
- 交换机:多路同时传输
- 主机直接连接到交换机
- 交换机缓存到数据包
- 每一条链路都采用了以太网协议,但之间没有冲突,全双工通信
- 每一条链路是其自身的冲突碰撞域
- 这里的全双工通信指的是当两个主机之间存在至少一台交换机时,可以进行全双工通信,其中的每一条物理链路都是半双工的,但由于交换机可以进行存储转发工作,所以两边的两个分组在某一个交换机会相遇,然后各自继续在链路中传输。
- 交换机中存在一个交换表
- 表结构:主机MAC地址,连接主机的接口,时间戳(产生表项的时间)
- 与路由表类似
- 交换机通过学习可知通过哪一个接口可以到达哪一个主机
- 当数据帧进入交换机时,交换机学习发送方连接的接口,并将发送方/接口对记录到交换表
- 交换机:帧过滤/转发
- 使用发送方输入接口与MAC地址
- 使用目标MAC地址检索交换表
- 如果检索到目标地址对应的接口,当目标地址接口不是来源接口时,从该接口转发数据帧,否则丢弃该数据帧。如果没有检索到接口则向所有非来源接口转发数据帧广播
网桥互联
- 网桥实质上就是一种存储-转发设备,用于实现MAC层的LAN互连
- 工作原理:
- 不断监听各端口是否有信号
- 收到无差错的帧则缓存,反之将差错帧丢弃
- 若所收帧的目的MAC地址属于另一网段,则通过站表决定向何端口转发
- 网桥不转发同一“网段”内通信的帧
- 目的主机和源主机不连接在网桥的同一个接口上才会转发
- 网桥不会修改所转发的帧的源地址
- 网桥的优势
- 过滤通信量
- 扩大了局域网的物理范围
- 提高可靠性
- 可互联不同物理层、不同MAC子层和不同速率的局域网
- 网桥的缺点
- 接收和转发产生时延
- MAC子层没有流量控制功能,网络负荷重时,网桥缓存空间可能发生溢出,产生帧丢失现象
- 不同MAC子层的网段桥接时,在转发帧之前要修改帧的某些字段,这也需要时间
- 广播风暴。网桥只适合用户少于几百个和通信量不太大的局域网,当广播信息过多时会产生拥塞
- 网桥和集线器的区别
- 集线器只是将网络覆盖距离简单地延长,且距离有限,实现在物理层。网桥不仅具有将LAN的覆盖距离延长的作用,而且理论上可以做到无限延长,具体实现在MAC层
- 集线器仅具有简单的信号整形和放大功能,网桥属于一种智能互联设备,主要提供信号的存储、转发、数据过滤、路由选择等能力
- 集线器仅是一种硬件设备,网桥还有软件
- 集线器只能互联同类的LAN,而网桥可以互联不同类型的LAN
- 透明网桥:网桥对于局域网其他的站点时不可见的
- 网桥的问题:当一个局域网中有不止一个网桥时,一个帧可能从一个网桥传到另一个网桥,然后另一个网桥又传回来,导致兜圈子现象
- 解决方法:支撑树算法
- 互联在一起的网桥彼此通信后,能够找出原来的网络拓扑的一个子集,在这个子集里面整个连通的网络中不存在回路。一旦支撑树确定,网桥会断开某些端口,以确保原来的拓扑是一个支撑树。
- 支撑树算法选择一个网桥为树的根,然后以最短路径为依据,找到树上的每一个结点
- 为了让支撑树能够反映网络拓扑的变化,每隔几秒钟每个网桥要广播其标识号,和它知道的所有其他网桥
- 缺点:互联的局域网数量很大时,支撑树算法开销会显著增加
- 解决方法:支撑树算法
- 多端口网桥
- 链路层可以实现直通交换:帧从入端口转发到出端口不需要收集整个帧,实际上只需要找到帧开头的目的地址即可,这样能够少量减少延迟。
- 以太网交换机与路由器的比较
- 两者都是存储转发设备,但路由器是网络层设备,交换机是链路层设备
- 路由器维护的是路由表,实现路由算法,而交换机维护交换表,实现MAC地址过滤和自学习
6.4.4 虚拟局域网VLAN
在一个局域网内,所有的第二层广播流量都将穿过整个局域网,这对于安全性不利,并且传播的数据报数量较大,也会影响效率。
虚拟局域网VLAN:是基于接口的VLAN,交换机对接口进行分组使得单一的交换机设备可以为多个虚拟的局域网工作,像是多台交换机实现的功能。
功能:
- 流量隔离,一个VLAN内的帧不能传递到其他的VLAN中
- 动态分组,交换机的接口可以动态组合,因此VLAN也是可以动态分配的
- 数据转发,通过VLAN间路由转发
trunk接口:多个物理交换机上多个VLAN中的帧发送。VLAN中跨交换机进行转发的帧不能够简单地使用802.1帧格式,而是必须携带VLAN ID信息。802.1q协议(VLAN标记协议)可在trunk接口处增加/删除附加的帧的首部字段
6.7 回顾Web页面请求的历程
- 沿着协议向下依次为应用层、传输层、网络层、链路层
- 目标:通过请求www页面场景,识别、回顾、理解协议
- 场景:学生在校园网中用笔记本电脑访问www.google.com并接收信息
Step 1: 计算机连接到Internet
正在连接的笔记本需要获得校园网局域网的IP地址、网关、DNS服务器等信息。
- DHCP请求依次进行UDP封装、IP封装、802.3以太网帧封装
- 以太网向局域网发送广播,由运行DHCP server的网关路由器收到
- 以太帧解封装,IP解封装,UDP解封装,得到DHCP请求
- DHCP server生成DHCP ACK报文,包含客户端IP、掩码、网关、DNS服务器
- DHCP server进行封装,将数据帧通过局域网转发(交换机自学习),在客户端进行解封装
- DHCP client收到DHCP ACK应答,现在学生笔记本拥有了自己的IP地址以及DNS服务器、网关
Step 2: ARP协议获取网关路由器MAC
- 广播发送ARP请求,路由器收到之后发送ARP应答,给出路由器接口的MAC地址
- 客户端知道了网关路由器的MAC地址之后就可以发送包含DNS请求的数据帧了
Step 3: DNS查询
- 将包含DNS查询的IP数据报通过局域网交换机转发到网关路由器
- 校园网的IP数据包路由转发到comcast网络(路由表由RIP、OSPF、IS-IS和/或BGP协议产生的DNS服务器)
- 多路分解到DNS server
- DNS server向客户端发送包含www.google.com的IP的DNS应答
Step 4: TCP连接
- 客户端首先创建到web服务器的TCP套接字
- TCP SYN报文的域间路由到web server
- web server回应TCP SYNACK
- 建立TCP连接
Step 5: HTTP请求与响应
- 将HTTP请求发送到TCP socket
- 包含HTTP请求的IP数据报路由转发到 www.google.com
- web server进行HTTP reply响应,包含web page
- 包含HTTP响应的IP数据报被路由转发回客户端