第三章 数据链路层

链路(Link):从一个结点到相邻结点的一段物理线路,中间没有其他交换结点

数据链路(Data Link):把实现通信协议的硬件和软件+链路

三个重要问题:封装成帧、差错检测、可靠传输

封装成帧

给上层交付的协议数据单元添加帧头和帧尾,用于定界和包含控制信息。

透明传输:数据链路层对上层交付的数据不应有限制(如数据被误判成帧定界符)。

字节填充:通过把定界符和转义字符前添加1个字节的转义字符(十进制值27),扫描时扫描到转义字符即表示后面1个字节为数据而非定界符或转义字符,然后将其抹掉。

比特填充:01111110定界,则把每5个1后面插1个0保证唯一性。传输后再剔除11111后面的0。

最大传输单元(MCU):帧的数据部分长度上限。

差错检测

比特差错:又称误码,即1错变成了0,0错变成了1。

误码率(BER):一段时间内传输错误的比特占全部比特的的比率。

奇偶校验:待发送的数据后面添加1奇偶校验位,使得整个数据中1的个数为奇数(奇校验)或偶数(偶校验)。奇数个位发生变化才能检出,偶数个位发生变化会漏检。

循环冗余校验(CRC):漏检率极低,应用较广。

(1)双方约定好一个生成多项式,如$G(x)=x^3+x^2+1$,注意常数项1是生成多项式必须有的。

(2)计算冗余码:先在帧后面加入k位0,k为多项式次数,然后将其作为被除数,多项式各项系数作为除数,进行模2除法(不向上位借位,也不比较除数和被除数的相同位数值的大小,只要以相同位数进行相除即可,相当于异或运算)。如帧为101001,则为101001000除以1101。将除得的余数作为冗余码加入到原始帧后。要注意的是,余数的位数一定要比除数位数正好少一位,哪怕前面位是0,甚至全为0也都不能省略。

(3)校验:将得到的新帧对多项式各项系数做模2除法,若余数为0则没有误码,否则即产生了误码。

可靠传输

可靠传输服务:不可靠传输服务只需丢弃含有误码的帧,与之相对,可靠传输服务要求发出端和接受端完全一致,即需要让含有误码的帧重新得到正确的帧。一般有线链路服务不要求可靠传输,而无线链路服务误码率较高,要求可靠传输服务。

传输错误不只有比特差错,还有分组丢失,分组失序,分组重复,后三种一般出现在上层。所以可靠传输服务不止局限在数据链路层。

停止-等待协议SW:发送方发送完一个分组后,停止发送下一个分组,等待接受方返回确认分组(ACK)或否认分组(NAK),确认则发送下一个,否认则重传。若分组丢失导致接受超时则重传原来数据分组(超时重传),超时计时器选为略大于往返时间。为避免返回确认分组丢失导致的超时重传,每个分组都需要带一个序号0或1,交替使用,判断是否重复分组。为防止确认迟到,确认分组也可带序号,但数据链路层一般不需要。

信道利用率:$U=T_D/(T_D+RTT+T_A)$,其中TD为数据分组发送时延,RTT为往返时间,TA为确认分组发送时延。

回退N帧协议GBN:采用n个比特给分组编号,发送窗口长度WT(1≤WT≤2n-1),每次发送窗口内的全部数据,接收方按序接收数据,并返回确认分组(为减少开销,不一定每一个分组都返回一个确认分组,可累计确认或捎带确认)。接受方受到未按序到达的分组则丢弃并返回最近接受的数据分组确认。发送方收到重复确认可在重传计时器超时前尽早重传。发送方收到确认则向后滑动窗口到相应位置。若有分组超时重传,其之后的分组也必须一起重传,即发送窗口回退n帧。

选择重传协议SR:扩大接收窗口长度WR(1≤WR≤WT,一般取等于),对每个正确接受到的分组逐一确认,发送完确认分组后滑动接收窗口。发送方接受确认分组后滑动窗口,但不应越过未接收确认分组的分组。发送方只超时重传未接受到确认分组的分组。注意此时发送窗口长度WT(1≤WT≤2n-1),以免接受方无法分辨新旧分组。

点对点协议PPP

因特网正式标准,点对点数据链路层协议,主要由以下三部分构成:

  • 对各种协议数据报的封装方法
  • 链路控制协议LCP,用于建立、配置、测试数据链路的连接
  • 一套网络控制协议NCPs,每一个协议支持不同的网络层协议

帧格式如下图所示:

透明传输:字节填充:7E转义成7D,5E,7D转义成7D,5D,小于0x20的数转义成7D,原数据+0x20。

                    比特填充:帧的数据部分每5个1后面填充1个0,保证6个连续1为定界。

差错检验:CRC生成多项式X16+X12+X5+1。

可靠传输:PPP协议不提供可靠传输服务。

媒体接入控制

媒体接入控制(MAC):如何协调多个发送和接收站点对一个共享传输媒体的占用。

  • 静态划分信道:预先固定分配信道,无线网络层中常用,数据链路层不用
    • 频分多址、时分多址、码分多址
  • 动态接入控制
    • 受控接入
      • 集中控制:主站轮询每个站点有无数据发送,缺点为易单点故障
      • 分散控制:令牌沿环形网络逐站传递,有令牌者发送数据并传递令牌给下一个站点
    • 随机接入:所有站点可随机发送,需处理减小冲突和冲突后恢复通信问题

随着技术的发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交換式局域网在有线领域已完全取代了共享式局域网。但由于无线信道的广播天性,无线局域网仍然使用的是共享媒体技术。

避免碰撞:对于有线网使用载波监听多址接入/碰撞检测(CSMA/CD)协议,对于无线网使用载波监听多址接入/碰撞避免(CSMA/CA)协议。

MAC地址、IP地址、ARP协议

MAC地址:以太网的MAC子层所使用的地址

IP地址:TCP/IP体系结构网际层所使用的地址

ARP协议:属于TCP/IP体系结构的网际层,其作用是已知设备所分配到的IP地址,使用ARP协议可以通过该P地址获取到设备的MAC地址

MAC地址:标识发送主机和接收主机,固化在网卡(网络适配器)的EEPROM中,也叫硬件地址或物理地址。MAC地址是对网络上接口的唯一标识,一般来说,一台主机有有线无线两个网卡,每个网络适配器有一个全球唯一的MAC地址,而交换机和路由器有更多接口,也就有更多MAC地址。MAC地址可以查询到设备的厂商信息。

MAC地址第一字节的b1位取0为全球管理,取1为本地管理;b0位取1为单播地址,取0为多播地址。

b1b0 MAC地址类型 功能 地址数量占比
00 全球管理单播地址 厂商生产网络设备(网卡、路由、交换机)时固化 246≈70trillion
01 全球管理多播地址 标准网络设备所支持的多播地址,用于特定功能 246≈70trillion
10 本地管理单播地址 网络管理员分配,覆盖网络接口的全球管理单播地址 246≈70trillion
11 本地管理多播地址 用户对主机软件配置,表明其属于哪些多播组 246≈70trillion

特别的,如果48位全为1,即MAC地址为FF-FF-FF-FF-FF-FF,此时即为广播地址。

IP地址:因特网上主机和路由器所使用的地址,用于标识网络编号(因特网上的各网络)和主机编号(同一网络中各主机和路由器接口)。

单独的不接入因特网的网络可只使用MAC地址,接入因特网的网络必须MAC地址和IP地址都使用。

在数据包的转发过程中,源IP地址和目的IP地址始终保持不变,而源MAC地址和目的MAC地址会逐个链路(或逐个网络)改变。相关内容会在网络层详述。

地址解析协议ARP:

ARP高速缓存表:记录IP地址和MAC地址对应关系;动态(自动获得)生命周期为2min,静态(手工配置)不消失。

发送数据包时,将IP地址解析为MAC地址的步骤:

1.源主机在自己的ARP高速缓存表中查找目的主机的IP她址所对应的MAC地址,若找到了则直接发送进行发送;若找不到,则发送ARP请求报文(封装在广播MAC帧中,即地址为FF-FF-FF-FF-FF-FF)。

2.目的主机收到ARP请求报文后,将源主机的IP地址与MAC地址记录到自己的ARP高速缓存表中,然后给源主机发送ARP响应报文(封装在单播MAC帧中,即源主机MAC地址),包含有目的主机的IP地址和MAC地址。

3.源主机收到ARP响应报文后,将目的主机的IP地址与MAC地址记录到自己的ARP高速缓存表中,然后就可以封装之前想发送的MAC帧并发送给目的主机了。

ARP的作用范围:逐段链路或逐个网络使用。

除ARP请求和响应外,ARP还有其他类型的报文,例如用于检测IP地址冲突的“无故ARP,免费ARP(Gratuitous ARP)”。

ARP没有安全验证机制,存在ARP欺骗(攻击)问题。

以太网交换机

集线器:工作在物理层,逻辑接口仍是总线型网络,合并时碰撞域也会增大。

交换机:每个接口是独立碰撞域,交换机可以根据MAC地址过滤帧来隔离碰撞,但不隔离转播。

  • 以太网交换机通常都有多个接口。每个接口都可以直接与一台主机或另一个以太网交换机相连。一般都工作在全双工方式
  • 以太网交换机具有并行性,能同时连通多对接口使多对主机同时通信,无碰撞(不使用 CSMA/CD协议)。
  • 以太网交换机一般都具有多种速率的接口,例如:10Mb/s、100Mb/s、1Gb/s、10Gb/s接口的多种组合。
  • 以太网交换机工作在数据链路层(也包括物理层),它收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。
  • 以太网交换机是一种即插即用设备,上电之后其内部的帧交换表是空的,然后随着网络间各主机的通讯通过自学习算法自动地逐渐建立起来。
  • 帧的两种转发方式:
    • 1.存储转发:收到帧先缓存后再处理
    • 2.直通交换:采用基于硬件的交叉矩阵(交换时延非常小,但不检查帧是否有差错)

帧交换表的自学习算法

  • 1.收到帧后进行登记,登记的内容为帧的源MAC地址及进入交换机的接口号
  • 2.根据帧的目的MAC地址和交换机的帧交换表对帧进行转发,有以下三种情况:
    • 明确转发:交换机知道应当从哪个或哪些接口转发该帧(单播,多播,广播)。
    • 盲目转发:交换机不知道应当从哪个端口转发帧,便选择将其通过除进入交换机的接口外的其他所有接口转发,也称为泛洪。
    • 明确丢弃:交换机知道不应该转发该帧,将其丢弃。

帧交换表中的每条记录都有有效时间,到期删除,因为可能存在改接另一台主机等原因改变MAC地址和接口的对应关系。

生成树协议STP:一般通过添加冗余链路增加以太网的可靠性,但若链路成环则会导致广播风暴、主机重复收到广播帧、交换机帧交换表震荡等问题。STP协议不论交换机物理上怎么链接,都能自动计算并构建一个逻辑上没有环路的连通网络(通过阻塞部分接口)。

虚拟局域网VLAN

多个以太网交换机连接成的网络处于同一个广播域,会形成广播风暴问题。

分割广播域的方法:路由器、虚拟局域网VLAN

虚拟局域网VLAN:一种将局域网内的设备划分成与物理位置无关的逻辑组的技术,这些逻辑组具有某些共同的需求。不同VLAN间不进行广播通讯。

实现机制:未完待续

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇