type
slug
status
summary
icon
category
date
tags
password

5.0 链路层和局域网

网卡实现了链路层和物理层的功能
网络层以子网为单位进行路由。
网络层解决了一个网络如何到达另外一个网络的路由问题 在一个网络内部如何由一个节点(主机或者路由器)到达另外一个相邻节点
链路层的点到点传输层功能
notion image
点到点:我通过链路发给你你收到,单纯解封装问题,不存在抢介质/抢链路问题,一般在广域网采用。
多点:我发出去,理论上来说和我连接的点都可以收到,谁收(寻址编址问题),我和他同时发(抢占),一般在局域网采用。接到一个共享介质(交换机)/交换机集合然后连接。
局域网内采用点到点?全教室都是线
广域网采用多点?介质带宽非常大,广域碰撞,距离远延迟大不好布局。专用点对点线路,不存在冲突。
notion image
 
notion image

5.1 引论和服务

5.1.1 链路层:导论

一些术语:
  • 主机和路由器是节点(网桥和交换机也是):nodes
  • 沿着通信路径,连接个相邻节点通信信道的是链路links
    • 有线链路
    • 无线链路
    • 局域网,共享性链路
  • 链路层协议数据单元帧frame,封装数据报
    • 路由器来了一个分组,决定通过这个网卡把分组打出去。
    • 那么分组需要封装成网卡对应标准的帧
数据链路层负责
从一个节点通过链路将帧(数据报)发送到相邻的物理节点(一个子网内部的2节点)
回顾网络层功能:端到端的传输
传输层功能:进程到进程,加强网络层从不可靠变成可靠
应用层:加强传输层应用实现功能

5.1.2 链路层:上下文

  • 数据报(分组)在不同的链路上以不同的链路协议传送
    • 第一跳链路:以太网
    • 中间链路:帧中继链路
    • 最后一跳802.11:
  • 不同的链路协议提供不同的服务
    • 例如在链路层上提供(或没有)可靠数据传送
  • 传输类比
    • 从Princeton到Lausanne
    • 轿车:Princeton到JFK
    • 飞机:JFK to Geneva
    • 火车:Geneva to Lausanne
  • 旅行者=数据报datagram
  • 交通段=通信链路communication link
  • 交通模式=链路层协议:数据链路层和局域网protocol
  • 票务代理=路由算法routing algorithm

5.1.3 链路层服务

  • 成帧,链路接入
    • 数据报封装在帧中,加上帧头,帧尾
    • 如果采用的是共享性介质,信道接入获得信道访问权
    • 帧头部使用“MAC”(物理)地址来标示源和目的
      • 不同于IP地址
  • 在(一个网络内)相邻两个节点完成可靠数据传递
    • 已经学过了(第三章)
    • 在低出错率的链路上(光纤和双绞线电缆)很少使用
    • 在无线链路经常使用:出错率高
  • 一般化的链路层服务,不是所有的链路层都提供这些服务
    • 一个特定的链路层只是提供其中一部分的服务(总服务的子集)
    • 比如以太网就无法进行可靠数据传输

链路层服务(续)
  • 在相邻节点间(一个子网内)进行可靠的转发
    • 我们已经学习过(见第三章)!
    • 低差错率链上很少使用(光纤,一些双绞线)
      • 出错率低,没有必要在每一个帧中做差错控制的工作,协议复杂
        • 发送端对每一帧进行差错控制编码,根据反馈做相应的动作
        • 接收端进行差错控制解调,反馈给发送端(ACK,NAK)
      • 在本层放弃可靠控制的工作在网络层或者是传输层做可靠控制的工作,或者根本就不做可靠控制的工作
    • 高差错链路层链路上需要进行可靠的数据传送
      • 高差错率:无线链路;
      • Q: 为什么要在采用无线链路的网络上,链路层做可靠数据传输工作?还要在传输层做端到端的可靠工作?
        • 原因:出错率高,如果在链路层不做差错控制工作,漏出去的错误比较高;到了上层如果需要可靠控制的数据传输代价会很大(反向回答,如果不做会造成…影响)
          • 如不做local recovery 工作,总体代价大

链路层服务(续)
  • 流量控制:
    • 使得相邻的发送和接收方节点的速度匹配
  • 错误检测:
    • 差错由信号衰减和噪声引起
    • 接收方检测出的错误:
      • 通过发送端进行重传或丢弃
  • 差错纠正:
    • 接收端检查和纠正bit错误,不通过重传来纠正错误,接收方根据网络编码直接纠错
  • 半双工和全双工:
    • 半双工:在半双工模式,链路的两个节点都可以发送数据,但是不能同时发送

5.1.4 网卡:链路层功能在哪里实现?

  • 在每一个主机上,在每个路由器上,也在交换机的每个端口上
    • 每个主机/路由器上插入多个网卡每个网卡上实现了链路层和相应物理层功能
  • 链路层功能在“网络适配器”上实现(aka network interface card NIC)或者在一个芯片组上(称为网卡
    • 以太网卡,802.11 网卡;以太网芯片组
    • 实现链路层和相应的物理层功能
  • 接到主机的系统总线上(上电自动运行)
  • 硬件、软件和固件的综合体
notion image

适配器通信
notion image
  • 发送方:
    • 上面来了分组,通过系统总线(网卡驱动)到网卡上
    • 将分组(数据报)封装为帧
    • 加上差错控制编码,实现RDT和流量控制功能等
    • 借助网卡物理层的功能,将帧中每个bit/bit组打出去
  • 接收方:
    • 每个bit的物理信号还原成数字信号
    • 检查有无出错(判断帧头帧尾),执行RDT(可能实现可能不实现)和流量控制功能等
    • 解封装数据报,通过系统总线将至交给上层
  • 适配器是半自治的实现了链路和物理层功能

5.2 差错检测和纠正

5.2.1 EDDC检验

notion image
D+EDC通过电磁波/有形线缆传播,都可能受到干扰。那么到接收方后判断D’和EDC’的差错编码关系,不符合约定的差错编码关系,那么一定出错。符合差错编码关系通过差错编码检测,可能没出错,也可能出错。
notion image

5.2.2 一比特奇偶校验

notion image

5.2.3 二维奇偶校验

notion image
  • 特点:
    • 可以检测并纠正单个比特差错(数据或校验位中)
    • 能够检测(但不能纠正)分组中任意两个比特的差错
  • 例题:
    • notion image
      notion image
      规定为奇数校验,那么每行/每列1的个数为奇数,通过校验,写0;
      1的个数为偶数,那么没有通过校验,写1.
      最右下角的奇偶校验位为最后一行(绿色)来决定
      notion image
      假设一个位出错(即发生位翻转),这个位所在的行横向校验出错,这个位所在的列,纵向校验出错。通过行号列号可以精准定位到出错位
      notion image
      notion image
      notion image

5.2.3 Internet校验和方法

notion image
notion image
notion image
notion image
 

5.2.4 循环冗余校验(CRC)

发送方CRC中冗余位R的计算
知识点:
1.模2运算,加减法都不进位退位(异或运算,相同为0,不同为1
2.比特序列的两种表示
位串表示:1001
多项式表示:x^3+0*x^2+0*x^1+x^0
3.生成多项式:r次方的一个多项式(r+1位的一个比特序列,因为从0次方开始)
G=x^3+1 对应比特序列(r+1位=4)1001
  1. 约定
    1. notion image
      notion image
希望这个式子成立(即<D,R可以被G整除,不出错)、
notion image
notion image
 
计算方式
首先将D左移r位(补0,R位为生成多项式的阶次/位数-1)→D*2^r
然后除以生成多项式,取到的余数就是R
notion image
D=101110 G=1001 四位,位数-1→r=3 D左移3位(添加3个0)101110000
 
位和位之间没有任何关系,适合硬件
发送方发送
notion image
 
接收方接收
DR/G判断余数
notion image
notion image
 

5.2.5 差错检验方式比较

notion image
 

5.3 多点访问链路和协议

5.3.1 多路访问链路

两种网络链路(一个子网内部链路连接形式):
  • 点对点链路:链路两端各一个节点。一个发送和一个接收。
    • 拨号访问的PPP
    • 以太网交换机和主机之间的点对点链路
  • 广播链路(共享线路或媒体):多个节点连接到一个共享的广播信道
    • 传统以太网
    • HFC上行链路
    • 802.11无线局域网
  • 广播:任何一个节点传输一帧时,信号在信道上广播,其他节点都可以收到一个拷贝
    • 常用于局域网LAN中,如早期的以太网和无线局域网
  • 本节主要学习广播链路的信道共享技术
  • 多路访问问题:如何协调多个发送和接收节点对共享广播信道的访问。相关技术即是多路访问协议(也称多址访问协议)
 

5.3.2 多路访问协议

  • 目的:协调多个节点在共享广播信道上的传输。
    • 避免多个节点同时使用信道,发生冲突(碰撞),产生互相干扰
  • 冲突(collide):两个以上的节点同时传输帧,使接收方收不到正确的帧(所有冲突的帧都受损丢失)
    • 造成广播信道时间的浪费。
    • 多路访问协议可用于许多不同的网络环境,如有线和无线局域网、卫星网等
  • 单个共享的广播型链路(所有节点都采用这个共享介质发送接收)
  • 2个或更多站点同时传送:冲突(collision)
    • 多个节点在同一个时刻发送,则会收到2个或多个信号叠加
  • 多路访问协议(介质访问控制协议:MAC)
    • 分布式算法-决定节点如何使用共享信道,即:决定什么节点什么时候可以发送?
  • 关于共享控制的通信必须用借助信道本身传输!(即数据发送接收,站点协商都在这一个信道内)
    • 没有带外的信道,各节点使用其协调信道使用
    • 用于传输控制信息
  • 理想的多路访问协议
    • 给定速率:Rbps的广播信道
    • 必要条件:
      • 当一个节点要发送时,可以R速率发送。
      • 当M个节点要发送,每个可以以R/M的平均速率发送
      • 完全分布的:
        • 没有特殊节点(主节点)协调发送
        • 没有时钟和时隙的同步
    • 简单
 
MAC(介质访问控制协议)协议:分类
3大类:
  • 信道划分协议
    • 把信道划分成小片(时隙:时间、频率、编码)
    • 分配片给每个节点专用
  • 随机访问协议
    • 不划分信道,允许冲突
    • 冲突后恢复
  • (依次)轮流协议
    • 节点依次轮流
    • 但是有很多数据传输的节点可以获得较长的信道使用权(要发送的节点越多使用时间越长)

5.3.3 信道划分协议

主要有TDMA、FDMA、CDMA三种。设信道支持 N 个节点,传输速率是 R b/s。
  • 时分多路访问(TDMA: time division multiple access)
    • 将时间划分为时间帧,每个时间帧再划分为N个时隙(长度保证发送一个分组,长度=帧传输时间),分别分配给N个节点。每个节点只在固定分配的时隙中传输帧。
    • TDMA特点:
      • 避免冲突、公平:每个节点专用速率R/N
      • 节点速率有限: R/N
      • 效率不高:节点必须等待它的传输时隙
        • 如果站点无帧传输,时隙空闲→浪费
        • 例如:6站LAN,1、3、4有数据报,时隙2、5、6空闲
          • notion image
  • 频分多路访问(FDMA: frequency division multiple access)
    • 信道的有效频率范围被分成一个个小的频段。每个站点被分配一个固定的频段。如总信道带宽位R bps,每个小频段带宽位R/N,分给N个节点
    • FDMA特点:
      • 避免冲突、公平:N个节点公平划分带宽;
      • 节点带宽有限、效率不高:节点带宽为R/N.
        • 分配给站点的频段如果没有被使用,则空闲
        • 例如:6站LAN,1、3、4有数据报,频段2、5、6空闲
          • notion image
  • 码分多路访问(CDMA:code division multiple access)
    • 所有站点整个频段同时进行传输,采用编码原理加以区分
      • 每个节点分配一个唯一的编码
      • 每个节点用它唯一的编码来对它发送的数据进行编码
      • 允许多个节点“共存”,信号可叠加,即可以同时传输数据而无冲突(如果编码 是“正交化”的)
  • 总结(比方)
    • TDM: 不同的人在不同的时刻讲话
    • FDM: 不同的组在不同的小房间里通信
    • CDMA: 不同的人使用不同的语言讲话

5.3.4 随机访问协议

当节点有要发送时
  • 以信道带宽的全部R bps发送(全速发送)
  • 没有节点间的预先协调
  • 两个或更多节点同时传输,会发生→冲突“collision”
 
  • 随机访问协议规定:
    • 如何检测冲突
    • 如何从冲突中恢复(如:通过稍后的重传)
  • 典型的随机访问协议
    • ALOHA协议(纯ALOHA,时隙ALOHA)
    • 载波监听多路访问CSMA协议
    • 带冲突检测的载波监听多路访问CSMA/CD
    • 带冲突避免的载波监听多路访问CSMA/CA

5.3.4.1 时隙ALOHA

  • 要求各个节点在时间上保持同步,所有发送的帧等长,满足在一个时隙内能够发出。
  • 假设
    • 所有帧是等长
    • 时间被划分成相等的时隙
    • 每个时隙可发送一帧
    • 节点只在时隙开始时发送帧
    • 节点在时钟上是同步
    • 如果两个或多个节点一个时隙传输所有的站点都能检测到冲突
  • 运行
    • 节点获取新的帧,在下一个时隙开始时传输
    • 传输时没有检测到冲突,成功
      • 节点确定下一时刻发送新帧
    • 检测时如果检测到冲突,失败
      • 节点在每一个随后的时隙帧率p(概率)重传帧直到成功
notion image
C1时隙是一个激烈碰撞的时隙,下个时隙大家都决定不重传帧(都决定不抛筛子),信道空闲。C2时隙12碰撞。下个时隙2决定发。在下个时隙信道空,再下个时隙1,3碰撞。一切都是随机的。没有上限(这里的上限的意思是在某个遥远的t时间,一定能传完,不存在这样到达t。如果大家一直碰撞/很多节点)
三种时隙:冲突时隙,空闲时隙,传输时隙(发送成功的时隙)
  • 优点
    • 节点可以以信道带宽全速连续传输
    • 高度分布仅需要节点之间在时隙上的同步(分布的意思就是互不干扰/独立)
    • 简单
  • 缺点
    • 存在冲突,浪费时隙(冲突时隙没有传)
    • 即使有帧要发送,仍然有可能存在空闲的时隙(空闲时隙
    • 节点检测冲突的时间<帧传输的时间,无用的帧传输时间太大,造成时隙浪费
      • 已知在时隙开始就开始传输,那么刚刚开始不久就已经发生冲突。但必须传完,所以出现时隙浪费
    • 需要时钟上同步
      • 即每个节点都在时隙开始的时候进行新一帧的发送
notion image
一个节点传输成功的概率:我发,N-1个节点都不发
求导求极值→N无穷大的时候,最大效率37%(即37%的时隙是传输成功的时隙)

5.3.4.2 纯ALOHA(非时隙)

  • 无时隙ALOHA:简单无须节点间在时间上同步
  • 有帧需要传输:马上传输
  • 如果与其他帧产生冲突,在该冲突帧传完之后
    • 概率p立即重传该帧;
    • 等待一个帧的传输时间,再以概率p传输该帧或者以概率1-p等待另一个帧的时间。
  • 冲突的概率增加:
    • 帧在t0发送,和其它在[t0-1,to+1]区间内开始发送的帧冲突
    • 和当前帧冲突的区间(其他帧在此区间开始传输)增大了一倍
notion image
notion image

5.3.4.3 CSMA(载波侦听多路访问carrier sense)

  • 载波侦听CS:某个节点发送之前,先监听信道
    • 信道忙:有其他节点正往信道发送帧,该节点随机等待(回退)一段时间,然后再侦听信道。(推迟传送)
    • 信道空:该节点开始传输整个数据帧
  • 冲突检测 CD边发送边监听即节点在传输同时侦听信道
    • 如果检测到有其他节点正在传输帧,发生冲突,立即停止传输,并用某种方法来决定何时再重新传输。
  • 人类类比: 自己说话之前,先听一下有没有其他人正在说话,不要打断他人说话!
  • CSMA的特点
    • 发前监听,可减少冲突。(不可避免冲突)
    • 由于传播时延的存在,仍有可能出现冲突,并造成信道浪费
  • CSMA冲突
    • 冲突仍然可能发生:由传播延迟造成,两个节点可能侦听不到正在进行的传输
      • 节点依赖本地的信道使用情况,来判断全部信道的使用情况(即我在听我脚底下的信号,但对方信号可能没到我脚底,局部探知窥探全局
    • 冲突:整个冲突帧的传输时间都被浪费了,是无效的传输(红黄区域)
    • 注意:传播延迟(距离)决定了冲突的概率
notion image
notion image

5.3.4.4 带冲突检测的CSMA(CSMA/CD)

  • CSMA:
    • 载波侦听CSMA:和在CSMA中一样发送前侦听信道
    • 没有传完一个帧就可以在短时间内检测到冲突
    • 冲突发生时则传输终止,减少对信道的浪费
  • 冲突检测CD技术,有线局域网中容易实现:
    • 检测信号强度,比较传输与接收到的信号是否相同
    • 通过周期的过零点检测
    • 边说边听:发送同时进行冲突检测:一旦检测到冲突就立即停止传输, 尽快重发。
  • 人类类比:礼貌的对话人
notion image
notion image
notion image
两者选择同一个值的时候会发生碰撞,随着碰撞次数增加,两者碰撞的几率降低,但是等待时间会增加。
notion image
 
例题1:
notion image
notion image
 
notion image
在计网中的单位换算
单位符号
全称
换算为 bit
1 kbps
1 kilobit/s
10^3= 1,000 bit/s
1 Mbps
1 megabit/s
10^6= 1,000,000 bit/s
1 Gbps
1 gigabit/s
10^9= 1,000,000,000 bit/s
1 Tbps
1 terabit/s
10^12= 1,000,000,000,000 bit/s
概念
定义
信号传播
比特在物理媒介(如光纤、电缆)中“移动”的速度。类似于“光速”或“电波传播速度”。
数据传输
一段时间内你“发送了多少比特”。这是数据发送的速率,如 1 Mbps、1 Gbps。
notion image
notion image
notion image
2^n-1 n=5 范围在0~31
notion image
A.
 

5.3.5 轮流协议(Taking Turns)

回顾:
信道划分协议:
  • 共享信道在高负载时是有效和公平的(已用时隙多)
  • 在低负载时效率低下(空闲时隙多)
    • 只能等到自己的帧开始发送或者利用1/N的信道频率发送
    • 当只有一个节点有帧传时,也只能够得到1/N个带宽分配
随机访问协议:
  • 低负载时效率高,单个节点可以完全利用信道全部带宽(完全传输,冲突概率低)
  • 高负载时:冲突开销较大,效率低,时间很多浪费在冲突中
轮流协议 有二者的优点!但实现复杂。

  • 论询
    • 主节点邀请从节点依次传送
    • 从节点一般比较“dumb”
    • 优点:
      • 高负载的时候,问到就发,利用整个信道带宽,利用率高,也没有碰撞。低负载的时候也是问到就发利用整个信道带宽,利用率高,也没有碰撞。
    • 缺点:
      • 轮询开销:轮询本身消耗信道带宽
      • 等待时间:每个节点需等到主节点轮询后开始传输,即使只有一个节点,也需要等到轮询一周后才能够发送
      • 单点故障:主节点失效时造成整个系统无法工作
        • 在网络中忌讳单点故障点,可靠性不高,一崩全崩
notion image
  • 令牌传递
    • 控制令牌(token)循环从一个节点到下一个节点传递
    • 令牌报文:特殊的帧
    • 优点:
      • 高低负载利用率高,且没有冲突。
      • 高不过信道划分,低不过随机。
    • 缺点:
      • 令牌开销:本身消耗带宽
      • 延迟:只有等到抓住令牌,才可传输
      • 单点故障(token)
        • 令牌丢失系统级故障,整个系统无法传输
        • 复杂机制重新生成令牌
          • 令牌标志位1表示令牌,0表示数据。有数据发,就抓住令牌(即修改令牌标志位1变为0),在令牌后面加上数据。此时令牌帧变为数据帧。
          • 数据帧绕圈一周,会碰到目标节点copy。一边收(目标节点拷贝)一边转(发送)。最后绕往一周,原节点吸收。
           
notion image

5.3.7 MAC协议(多路访问协议)总结

多点接入问题:对于一个共享型介质各个节点如何协调对它的访问和使用
  • 信道划分:按时间、频率或者编码
    • TDMA、FDMA、CDMA
  • 随机访问(动态)
    • ALOHA、S-ALOHA、CSMA、CSMA/CD
      • 载波侦听:在有些介质上很容易(wire:有线介质),但在有些介质上比较困难(wireless:无线)
    • CSMA/CD:802.3 Ethernet中使用
    • CSMA/CA、802.11WLAN中使用
  • 依次轮流协议:
    • 集中:由一个中心节点轮询;
    • 分布:通过令牌控制
    • 蓝牙、FDDI、令牌环

5.4 交换局域网LANs

5.4.1 常见的网络拓扑结构

notion image
 
notion image
notion image
notion image

5.4.2 链路层寻址

每个节点有网络层地址和链路层地址。
  • 网络层地址:节点在网络中分配的一个唯一地址(IP地址)。
    • 用于把分组送到目的IP网络
    • 长度为32比特(IPv4)。
    • 前n-1跳(数据报到达目标IP子网网络号),最后一跳,完成最后一个路由器到目标主机的分组传递(主机号)
  • 链路层地址:又叫做MAC地址或物理地址、局域网地址。
    • 用于把数据帧一个节点(网卡)传送到另一个节点(网卡)(一个网络内部)。
    • 主机内部
  • MAC地址(LAN地址、物理地址)
    • 节点“网卡”本身所带的地址(唯一)
    • MAC地址长度通常为6字节(48比特),共248个。
    • 6字节地址用16进制表示,(48位对应12个十六进制数)。
      • notion image
    • 网卡的MAC地址是永久的(生产时固化在其ROM里)
 
 
  • 局域网地址
    • 局域网中每个网卡都有唯一的局域网地址
    • notion image
  • MAC地址分配
    • 由专门机构IEEE管理物理地址空间
      • 负责分配六个字节中的前三个字节(高24位,地址块
    • MAC 地址是平面结构
      • 带有同一网卡的节点,在任何网络中都有样的MAC地址
    • IP地址具有层次结构
      • 当节点移动到不同网络时,节点的IP地址发生改变。
notion image
notion image
  • 地址之间如何进行转换:主机名→IP地址→MAC地址
    • DNS域名系统:将主机名解析到IP地址。
      • DNS为在因特网中任何地方的主机解析主机名。
    • ARP地址解析协议:将IP地址解析到MAC地址。
      • ARP只为在同一个LAN上的节点解析IP地址。
网络地址和mac地址分离
  1. IP地址和MAC地址的作用不同 a) IP地址是分层的
      • 一个子网所有站点网络号一致,路由聚集,减少路由表
      • 需要一个网络中的站点地址网络号一致,如果捆绑需要定制网卡非常麻烦
      • 希望网络层地址是配置的IP地址完成网络到网络的交付
      • ARP协议:IP地址到MAC地址的转换,从而才能使得PDU封装成为帧,从输入端口到目标端口。
      b) MAC地址是一个平面的
      • 网卡生产时不知道被用于哪个网络,因此给网卡一个唯一的标示
      • 用于区分一个网络内部不同的网卡
      • 可以完成一个物理网络内部的节点到节点的数据交付

网络地址和mac地址分离
  1. 分离好处 a) 网卡坏了,ip不变,可以捆绑到另外一个网卡的mac上 b) 物理网络(链路层实体)还可以除IP之外支持其他网络层协议,链路协议为任意 上层网络协议,如IPX等
  1. 捆绑的问题 a) 如果仅仅使用IP地址,不用mac地址,那么它仅支持IP协议 b) 每次上电都要重新写入网卡IP地址; c) 另外一个选择就是不使用任何地址;不用MAC地址,则每到来一个帧都要上传到IP层次,由它判断是不是需要接受,干扰一次
LAN 地址和ARP
局域网上每个适配器(网卡)都有一个唯一的LAN地址
  • MAC地址由IEEE管理和分配
  • 制造商购入MAC地址空间(保证唯一性)
  • 类比: (a) MAC地址:社会安全号 (b) IP地址:通讯地址
  • MAC平面地址 → 支持移动
    • 可以将网卡到接到其它网络
  • IP地址有层次→不能移动
    • 依赖于节点连接的IP子网,与子网的网络号相同(有与其相连的子网相同的网络前缀)
 

5.4.3 ARP(地址解析协议)

ARP: Address Resolution Protocol
问题:已知B的IP地址,如何确定B的MAC地址?
  • 在局域网上的每个节点(主机、路由器)都有一个ARP表
  • ARP表:局域网节点IP←→MAC地址的映射
    • <IP address: MAC address: TTL>
    • TTL时间:存活时间,是指地址映射时失效(被删除:适应变化缓存:用的快)的时间(通常为20min)
notion image

ARP协议:在同一个LAN(网络)
notion image
  • A主机要发送数据报给B主机,B的IP地址(已知),但B的MAC地址不在A的ARP表中
  • A广播包含B的IP地址的ARP查询包
    • 目标MAC地址: FF-FF-FF-FF-FF-FF
    • LAN上的所有节点都会收到该查询包
  • B接收到ARP包,回复A自己的MAC地址
    • 包含B的MAC地址的帧发送给A
    • 用A的MAC地址(单播,选择性定向传播。前面的广播是泛洪)
  • 主机A在自己的ARP表中,缓存IP-to-MAC地址映射关系(地址对),直到信息超时
    • 软状态:靠定期刷新维持的系统状态,信息超时会被删除
    • 定期刷新周期之间维护的状态信息可能和原有系统不一致
  • ARP是即插即用的
    • 节点自己创建ARP的表项
    • 无需网络管理员的干预

notion image
notion image
notion image
notion image
源MAC是路由器右边端口的MAC地址(一个路由器有很多网卡,每个网卡有唯一MAC的地址)

5.4.4 以太网(Ethernet)

  • 到目前为止,以太网是最为著名的有线局域网技术
  • 以太网的物理拓扑结构
    • 总线(bus): 一直流行到90年代中期
      • 同轴电缆,总线传播,每个节点都可以听到所有节点都属于相同的冲突域
      • 所有节点在一个碰撞域内,一次只允许一个节点发送
      • 可靠性差,如果介质破损,截面形成信号的反射,发送节点误认为是冲突,总是冲突
    • 星形(star):目前最主流
      • 连接选择: hub 或者 switch
      • 中心是交换机
      • 每个端口运行一个独立的以太网协议(节点相互之间不发生碰撞)
      • notion image
notion image
 
下面可以看到虽然叫以太网,也知道是个局域网,但是可以看作一个特殊的链路层。所以提供的服务是关于适配器的无连接不可靠服务,协议是CSMA/CD

5.4.4.1 以太帧结构

  • 发送方适配器在以太网帧封装IP数据报,或其他网络层协议数据单元
  • 常用的以太网 MAC 帧格式有两种标准
    • DIX Ethernet V2 标准(最常用的MAC帧是以太网V2的格式。)
    • IEEE的802.3 标准
    • notion image
    • 前同步码(8字节)
      • 前7字节:10101010,最后一个字节:10101011
      • 用来同步接收方和发送方的时钟速率
        • 使得接收方将自己的时钟调到发送端的时钟
        • 从而可以按照发送端的时钟来接收所发送的帧
        • 接收方一旦收到连续的8字节前同步码,可确定有帧传过来。
      • 前同步码是“无效信号”,接收方收到后删除,不向上层传送。
      • CRC的校验范围不包括前同步码。
    • 地址:各6字节:源MAC地址,目标MAC地址
      • 如:帧目标地址=本站MAC地址,或是广播地址,接收,递交帧中的数据到网络层
      • 否则,适配器忽略该帧
    • 类型
      • 指出高层协议(大多情况下是TP,但也支持其它网络层协议Novell IPX和AppleTalk)
      • 以太网可以“多路复用”(支持)多种网络层协议。通过“类型”字段区分。
      • 发送方填入网络层协议“类型”编号;
      • 接收适配器根据“类型”字段,将数据字段传递给相应的网络层协议。
    • 数据字段(46~1500 字节)
      • 携带网络层传来的IP数据报
      • 以太网的最大传输单元MTU是1500字节:若IP数据报超过1500字节,必须将该数据报分段。
      • 最小长度是46字节:如果IP数据报小于46字节,必须填充为46字节。接收方网络层去除填充内容。
    • CRC(4字节):在接收方校验。如果没有通过校验,丢弃错误帧
      • 发送主机计算CRC:范围包括目的地址、源地址、类型、数据字段的比特,结果放入帧CRC字段。
      • 接收主机进行CRC校验:接收主机对收到的帧进行同样计算,并校验结果是否和CRC字段的内容相等。若计算结果不等于CRC字段的值(CRC校验失败),该帧有差错。
notion image

5.4.4.2 以太网服务

  • 以太网:无连接、不可靠的服务
    • 无连接:帧传输前,发送方和接收方适配器之间没有握手
    • 不可靠:接收方适配器不发送ACKS或NAKS给发送方
      • 递交给网络层的数据报流可能有gap(比特差错)
        • 如上层使用像传输层TCP协议这样的rdt,gap会被补上(源主机,TCP实体)
        • 否则,应用层就会看到gap
      • 收到正确帧,不发确认帧
      • 收到出错帧,丢弃该帧,不发否定帧。
      • 发送适配器不会重发出错帧
    • 以太网的MAC协议:采用二进制退避的CSMA/CD介质访问控制形式
 

5.4.4.3 以太网使用CSMA/CD

  • 以太网使用CSMA/CD
    • 发送前先监听,边发边监听。发生冲突放弃,隔一个时间后尝试重发。如果再冲突,碰撞窗口加倍,随机选择一个值,间隔时间后再重发,
    • 没有时隙
    • 载波侦听carrier sense:NIC如果侦听到其它NIC在发送就不发送:
    • 冲突检测collision detection:发送时,适配器当侦听到其它适配器在发送就放弃对当前帧的发送,
    • 随机访问random access:冲突后尝试重传,重传前适配器等待一个随机时间,
notion image
notion image
等待时间的计算:一个bit位的传输时间*512*k
notion image
很近和帧大好
 
  • 以太网技术
    • Base:采用基带信号
    • 节点连接达到HUB上:物理上星型
      • 逻辑上总线型,盒中总线
    • T:双绞线,绝缘线扭合,反向电势小,传输速率高
    • notion image
notion image

5.4.5 链路层网路交换设备:Hub和交换机(Switch)

  • Hub:集线器
    • notion image
    • 一个铁盒子里面含有很多端口。设备可以通过双绞线接在这些端口上。下面也可以级联其他的Hub。一个设备通过一个端口发送信号,这个Hub能将这个端口发出的信号向其他端口同时散发。物理上星型,逻辑上总线。盒中总线
    • 本质上是物理层的中继器:从一个端口收,转发到所有其他端口;速率一致;没有帧的缓存
    • 不允许两个端口上的设备同时发送。
    • 网段(LAN segments):可以允许一个站点发送的网络范围(也叫一个碰撞域)
      • 在一个碰撞域,同时只允许一个站点在发送
      • 如果有2个节点同时发送,则会碰撞
      • 通常拥有相同的前缀,比IP子网更详细的前缀
    • 所有以hub连到一起的站点处在一个网段,处在一个碰撞域
      • 骨干hub将所有网段连到了一起
      • 即所有连hub的设备都在一个碰撞域内。
    • 在hub端口上没有CSMA/CD机制,适配器检测冲突
      • 高负载的情况下CSMA/DA,碰撞反复发生,信道利用率低
    • 通过hub可扩展节点之间的最大距离
    • 通过HUB,不能将10BaseT和100BaseT的网络连接到一起

  • 交换机(Switch)
    • 外观和hub类似也是一个盒子,从一个端口收将这个帧存下来(是一个存储转发的设备)可以选择性地从另外一个端口发送并不是向所有其他端口发送
    • 选择性是因为:要根据帧头帧尾的地址选择端口,转发之前需要使用CSMA/DA机制,所以可以认为每个端口是一个网段
    • 这两个端口发送接收,同时,另外两个端口就可以发送和接收
    • 就像这两个端口之间有个瞬间交换的设备
    • 链路层设备:扮演主动角色(端口执行以太网协议)
      • 帧进行存储和转发
      • 对于到来的帧,检查帧头,根据目标MAC地址进行选择性转发
      • 当帧需要向某个(些)网段进行转发,需要使用CSMA/CD进行接入控制
      • 通常一个交换机端口一个独立网段
    • 透明:主机对交换机的存在可以不关心
      • 很多子网很多子网(网络层的n-1跳),最后一跳(同一子网内部):目标路由器将分组交给目标主机(网络层看作一跳)
      • 但是从链路层的角度来看,采用交换机实现多跳(端口)。
      • 主机对交换机的存在可以不关心:意思是主机、路由器是网络层面的东西,而交换机是多个端口的集合,只要把帧mac地址标注好,无论如何通过交换机,通过多少个交换机,目标路由器(主机)都不关心,知道能到达目标主机即可。(透明:不关心)
      • 通过交换机相联的各节点好像这些站点是直接相联的一样
      • 有MAC地址,无IP地址(端口的盒子:MAC地址 )
    • 即插即用,自学习:
      • 交换机无需配置
      • 交换表/站表:决定转发的目标端口,交换机自学习而来
      notion image

交换机:多路同时传输
  • 主机有一个专用直接到交换机的连接
    • 这个叫做点到点的连接。主机直接接到某个交换机到达端口上
    • 如果是一个交换机下面接一个hub然后再接主机,就不是点到点连接。
  • 交换机缓存到来的帧
  • 对每个帧进入的链路使用以太网协议(端口有协议:CSMA/CD,没有碰撞全双工
    • 专用直接连接:没有碰撞
    • 每条链路都是一个独立的碰撞域
    • MAC协议在其中的作用弱化了(载波侦听)
      • 发和收的时候都没有人和它抢,所以MAC协议的作用减弱了
  • 交换,A-to-A’ 和 B-to-B’ 可以同时传输,没有碰撞

交换机转发表
Q: 交换机如何知道通过接口1到达A,通过接口5到达B?
A: 每个交换机都有一个交换表switch table,每个表项:
  • (主机的MAC地址,到达该MAC经过的接口,时戳)
  • 比较像路由表!
Q: 每个表项是如何创建的?如何维护的?
  • 有点像路由协议?

交换机:自学习得到交换表
  • 交换机通过学习得到哪些主机(mac地址)可以通过哪些端口到达
    • 当接收到帧,交换机学习到发送站点所在的端口(网段)
    • 记录源MAC地址/进入端口映射关系,在交换表中
    • 时戳:到时将对应关系删除
      • 存储是为了快,删是为了适应网络的变化
      • 对应关系可能会变
notion image
 
notion image
notion image
A发送给A’
  • 此时交换机知道A主机传给1端口,就记录表项A,1,TTL=60
  • 这个时候帧到达交换机
    • 交换机不知道A’的端口号,不知道A’位置:泛洪(向所有端口进行转发)
    • 知道目标A对应的链路:选择性发送到那个端
    •  
notion image
  • 交换机:过滤/转发算法
    • 当交换机收到一个帧,记录进入链路,发送主机的MAC地址
    • 使用目标MAC地址对交换表进行索引查询
    • 查到了
      • 如果目标端口是源端口/或者说已经到达过的端口/进入端口,那么丢掉该帧(过滤)
      • 如果通过目标端口转,那么转(转发)
    • 没有查到
      • 泛洪:除了帧到达的网段,向所有网络接口
  • 交换机级联
    • 和Hub级联不同:Hub级联,所有设备在一个碰撞域内
    • Q:A to G的发送-交换机S1如何知道经过从S3和S4最终达到F?
      • A:泛洪和自学习(和在一个交换机联接所有站点-样!)
    • 多交换机自学习的例子
notion image
C向I进行转发,C发送帧……泛洪泛洪之后到I
回来的时候是单播(选择性)不是广播(泛洪)
因为过来的时候已经在各交换表内登记
notion image
这个表的生成如下:
回顾上面所学的交换表项生成:交换机通过学习得到哪些主机(mac地址)可以通过哪些端口到达
  • 接收到帧,交换机学习到发送站点所在的端口(网段)
  • 记录源MAC地址/进入端口映射关系,在交换表中
那么我们就可以知道除了S1和S3的C\I两项是关于发送节点,通过哪个端口。其他MAC地址都是目标MAC地址,然后需要通过哪个端口到达。因为如果交换机不知道,目标地址的端口,那么就会泛洪发送(发送给每个端口,最后确认一条到目标MAC地址的端口记入表项,这里就是自学习和泛洪得到交换表)那么我们S1:C就是通过3端口发送,那么记为(C,3)。报文到达S1,问到I需要通过4端口,所有记作(I.4)。S4,目标MAC地址C,那么需要通过1端口,所以记作(C,1),目标端口I,需要通过3号端口,记作(I,3)。S2的表就是目标MAC地址C,需要通过端口4,记作(C,4)。(这里如果需要I的表项,则为(I,4))。S3中I需要记录的是进入I的端口,也就是(I,3)。如果对于目标MAC地址C,需要通过的端口是4,那么需要记录的是(C,4)。只有源MAC和最后的目标MAC地址比较特殊,需要记录的是出和入的最后的端口。其他表中表项,都可以看作到这个目标地址x,需要经过端口y,记作(x,y)。别忘了TTL
 
 
  • 交换机的交换特点
    • 识别目的MAC地址根据交换表进行端口选择
    • 识别源MAC地址更新交换表
    • Q:在识别目的MAC地址和源MAC地址的过程中是否需要接收并缓存完整的帧呢?
      A:不一定需要。
    • 交换机的交换方式:
      • 存储转发(缓存整个帧后再转发)
        • notion image
      • 快速分组又称直通交换(识别出目的地址直接转发)
        • notion image
  • 交换机的交换方式讨论
    • 存储转发:具有差错检测功能转发时延较大适用于出错率高的链路。
    • 快速分组又称直通交换不具有差错检测功能转发时延较小适用于时延要求高,出错率低的链路。
  • 三层交换机
    • 三层交换是相对于传统的交换概念而提出的
    • 传统的交换技术是在OSI网络参考模型中的第二层(即数据链路层)进行操作的,通常称做“二层交换机”。
    • 三层交换技术能够在网络模型中的第三层实现数据包的高速转发。
    • 简单地说,三层交换技术就是二层交换技术+三层转发技术,三层交换机就是“二层交换机+基于硬件的路由器
    • 工作原理:
      • 发送站点A在开始发送时,把自己的IP地址与B站的IP地址比较,判断B站是否与自己在同一子网内。
      • 若目的站B与发送站A在同一子网内,则进行二层的转发。
      • 若两个站点不在同一子网内,则发送站A要向“缺省网关”发出ARP请求,请求获得B的MAC地址。
      • 如果三层交换机知道B的MAC地址,则向A回复B的MAC地址。
      • 否则三层交换机根据路由信息向B站广播一个ARP请求,B站得到此ARP请求后向三层交换机回复其MAC地址,三层交换机将B站的MAC地址保存到二层交换引擎的MAC地址表中,并回复给发送站A。
      • A直接用B的MAC地址封装数据帧,三层交换机接收到数据后直接进行二层交换
  • 交换机 vs. 路由器
    • 两者都是存储转发设备:
      • 路由器: 网络层设备(检查网络层头部)
      • 交换机:链路层设备(检查链路层头部)
    • 两者都有转发表:
      • 路由器:使用路由算法计算转发表,基于IP地址转发
      • 交换机:通过泛洪、自学习来学习转发表,基于MAC地址转发
    • 交换机的优缺点
      • 即插即用:不需网络管理员干预(自学习和泛洪);
      • 较高的分组过滤和转发率:二层数据处理;
      • 拓扑结构限制为一棵生成树: 防止广播帧循环。
      • 较大的ARP表产生可观的ARP流量和处理量;可能产生“广播风暴”:
        • eg:某台主机失控,并传输无穷的以太网广播帧流,交换机将转发所有这些帧,导致整个以太网的崩溃。
    • 路由器的优缺点
      • 网络寻址是层次的;(IP地址是层次的
      • 若网络中存在冗余路径分组不会在路由器中循环
      • 无生成树限制,使用路由器构建因特网可以采用大量丰富的拓扑结构。
      • 可以使用源和目的之间的最佳路径。为第二层的广播风暴提供防火墙保护。
      • 非即插即用:路由器及主机都需配置IP地址
      • 每个分组的处理时间比交换机长。
      notion image
notion image
notion image
notion image

5.4.6 VLANS(Virtual Local Area Network)

虚拟局域网:根据某些属性将用交换机连接的所有节点都在一个局域网(并不一定是物理上局域网的连接)
  • 利用支持VLAN的交换机,可以在一个实际的物理局域网内,定义多个虚拟的局域网
  • 基于端口的VLAN
    • 基于端口的VLAN:利用交换机内置的管理软件将端口分组,使得一个单独的交换机像多个交换机那样工作(一个局域网虚拟成多个局域网,为什么说虚拟,因为物理上还在一个局域网,这里是通过软件分组)
    • 流量隔离:从1-8号端口进/出的帧,只能访问1-8号端口
    • 动态成员:端口可以在VLAN之间动态调整(软件管理,设置参数)
    • VLAN间转发:通过路由完成(在实际中,厂商会将路由功能和交换功能都整合在一台设备中)
notion image
notion image
  • 跨越多个交换机的VLAN
    • Trunk Port(干线端口): 每台交换机上的一个特殊端口被配置为干线端口,干线端口属于所有VLAN,发送到任何VLAN的帧经过干线链路转发到其他交换机。
    • 干线端口承载定义在多个物理交换机之上的VLAN间的流量
    • 某一个VLAN内的流量帧,如果要跨域物理的交换机,需使用802.1q格式(带有VLAN ID 信息)
    • 802.1q协议的作用:实现VLAN间的帧传输,对干线端口之间传输的帧,添加/移除额外的头部字段
 
第4章:网络层Chapter1:Introduction
Loading...
🐟🐟
🐟🐟
在坚冰还盖着北海的时候,我看到了怒放的梅花
最新发布
1-4-1 USART串口协议
2025-6-27
2-6-1 uC/OSII 在STM32上的移植
2025-6-23
1-6 定时器与PWM
2025-6-21
一些工具
2025-6-21
第5章:链路层和局域网
2025-6-19
第4章:网络层
2025-6-19
公告
🎉 欢迎来到鱼鱼的博客~ 🎉
--- 很高兴认识你~ ---
👏一起成为理想中的自己吧!👏