网络(三)数据链路层

第三章 数据链路层

3.1 链路层的功能

物理层使得1010能够传到对端,而使1010有意义,就是数据链路层,通过组帧的方式实现的。
链路是一条无源的点到点的物理线路,中间没有其他任何交换节点

一. 数据链路层的功能

  1. 链路管理,帧同步
  2. 流量控制,差错控制
  3. 数据和控制信息分开
  4. 透明传输和寻址

二. 组帧

  1. 组帧的概念
    (1)封装成帧是在一段数据的前后分别添加首部和尾部。
    (2)确定帧的界限:首部和尾部的作用就是帧的定界
    (3)MTU是帧的数据部分的最大长度,也是IP数据报的最大传输长度(相当于快递时限制传输包裹不能超过20公斤)
    image_1aubr9mfq1so9di8hec6o53aq9.png-9.5kB

  2. 用控制符进行帧定界
    (1)用控制字符进行帧定界的方法是,在帧的开始和结尾处加上特定的字符,这个字符一般是0X7E
    image_1aubrtad71598jt736b5p41j7t13.png-4.5kB
    (2)透明传输:如果帧的数据部分出现了0X7E(SOH或EOT的字符),则要进行转义

  3. 透明传输的转义方法:
    (1) 字符填充
         因为0x7E=0111 1110,字符填充是在这两个字节中,填充进0xD5。变为(0x7D,0x5E)的组合。
         即0111 1101 1001 1110
    (2)零比特填充
         因为0x7E=0111 1110,带有连续的6个1.因此发送端发送帧数据时,每当发现有连续的5个1,立即填充一个0发送。接收端对帧中的比特流扫描,每当发现5个连续的1,就把后面的1个0删除
         eg:0111 1110变成0111 1101 0进行传输

3.2 差错控制

  1. 检测编码:循环冗余校验码
  2. 纠错编码:汉明码

3.3 流量控制和可靠传输

一. 停止-等待协议

  1. 基本概念
    (1)发送端A发送完帧,必须等待获得对端B对阵个帧发送确认帧,A才能继续发送下一个帧
    (2)由于帧可能再传输中由于线路问题而丢失,B收不到帧从而无法发送确认帧。因此A设置一个超时重传时间。在这个时间后如果还没收到确认帧,A就重新发送该帧。超时重传时间一般设置为2\(\tau^+\)。(\(\tau\)为A到B的传输时延)
    image_1aubt4tsgrj5ofio2rp0bnta1g.png-6.9kB

  2. 停止等待协议的特点
    (1)在发完一个分组后,必须暂时保留已发送的分组的副本
    (2)分组和确认都必须进行编号(才能知道是对哪个分组进行确认)
    (3)超时重传的时间比数据在分组传输的平均往返时间2\(\tau\)更长一些
    (4)ack报文丢失的结果:A向B发送数据帧,当B的ACK确认帧丢失后,A通过超时重传重传丢失的帧。这个帧实际上已经被B接收到了,如果这个帧没序号,B就无法识别这是收到的重复的帧
    (5)综上所述,停止等待协议使用的确认和重传机制,可以在不可靠的传输网路上实现可靠地通信。

  3. ARQ协议
    (1)上面这种可靠传输协议常称为自动重传请求(ARQ--atomic repeat request)。是停止等待的一种实现
    (2)ARQ表明重传请求是自动进行的,接收方不需要请求发送方重传某个出错的数据帧。
    (3)停止等待协议的信道利用率:

\[\frac{T_d}{T_d + RTT + T_A} \]

                              image_1aucjeqrv3l61oie1mvo1m9v5g42a.png-7.7kB

  1. 流水线传输 - 连续的ARQ协议
    发送方可连续发送多个分组,不必发送完一个分组就停下来等待对方确认。可以使信道利用率达到100%。一直有数据向外发送。
    (1)连续的ARQ协议:
    连续的ARQ协议可以连续发送多个数据帧,连续发送的个数成为发送窗口的大小。发送窗口中的帧分为2部分:已发送没确认的帧和等待发送的帧。当收到第一个发送帧的ACK帧后,窗口向后滑动一个位置。
    image_1aucj1n51ehp1o2r17sb4v1f4i1t.png-8.3kB

  2. 累积确认
    (1)接收方的累计确认是指,接收方不必对分割受到的分组逐一确认,逐一发送ACK帧,而是对按需达到的最后一个分组发送方确认帧,表示这个分组及其之前的帧已经正确收到。
    (2)累计确认的优点:容易实现,即使ACK丢失也不必重传(因为后面的确认帧确认了前面的已经收到)
    (3)累计确认的缺点:不能反映出接收方已经正确接受的所有分组的信息。

二. 后退N帧协议(GBN)

  1. GBN的基本概念
    设想一种场景:加入1到5号帧,如果只有3号帧接收失败,但是要重传3,4,5号帧),发送方要把后面的3个分组重新再传一遍。这种方法就叫做Go-Back-N(回退N)。表示需要退回来重传已经发送的N个分组。

三. 选择重传协议(SR)

  1. SR的基本概念
    (1)当接收方发现某个帧传输出错后,气候继续达到的正确帧不能立即送给接收方得高层,需要先存放在一个缓冲区,同时要求发送方重传出错的一个帧。
    (2)一旦接收到重传的帧后,就可以和缓冲区中的正确帧按照顺序递交给上层
    (3)选择重传协议,使用连续ARQ发送,但不能使用累积确认。

  2. 滑动窗口设置
    (1)发送方设置一个变量,作为发送窗口SWS(Send Window Size):表示在没收到确认帧的情况下,发送端最多能发送的帧个数。(停止等待协议中SWS=1)
            接收方设置一个变量,作为接收窗口RWS(Recieve Window Size)
    (2)设置滑动窗口的目的是重复使用有限的序号列。(序号需要包含在帧头部,无限增加的序号会导致帧序号字段所占位数增大。eg:2bit帧序号能表示序号0 ~ 3)
    (3)发送窗口的规则:
            发送窗口内的帧都是允许发送的帧,不用考虑是否收到确认。
            每发送完一个帧,允许发送的帧数就减1,但是发送窗口的位置不变。
            如果允许发送的帧数都发送完毕,但没有收到任何确认,则不能继续发送任何数据。
            发送端没接受到一个ACK确认,发送窗口向前移动一个帧的位置。
    (4)接收窗口的规则(RWS):

  1. 接收窗口大小RWS,表示能够接受的帧序号的上限,规定了哪些序号的帧可以接受,哪些不能。即:当收到的帧的序号落在窗口内才允许接受该数据帧。(停止等待协议中的RWS = 1)
  2. 为了减少开销,连续的ARQ协议还规定接收端不必每收到一个正确的数据帧就发送一个确认帧,而是连续收到几个正确帧后,才对最后一个数据帧确认。
  3. 有时为了减少开销,也会采用捎带确认机制(ACK帧不包含发送时间,只有在信道上传播的时间)
  4. 接收窗口的大小需要根据需要设定
    (1)RWS=1:表示一次只能接受一个帧
    (2)RWS=SWS:可以将发送端发送的帧全部接受
    (3)RWS>SWS:无意义
  5. 接收窗口的规则:
    (1)只有当接收的帧序号和接受窗口的序号一致时才能接受该帧,否则丢弃该帧
    (2)没收到一个序号正确的帧,接受窗口向前滑动一个位置(使可接收序号变化),同时发送ACK确认。所以接收窗口的大小,只是起到了累积确认,按序重组数据帧的作用。
    (3)接受窗口滑动了,发送窗口才能滑动。
  1. 如何设定发送窗口(SWS)的大小:
    (1)发送窗口的大小等于序号大小就一定最好吗
         (i) 假设序号为0到7,发送窗口大小设置为8(与序号个数一样),接收窗口设置为1,这样好吗?答案是不好。
         (ii) 假设接收方返回的1到8号确认帧丢失了,使得发送方重传1到8号帧,这是发送方发送的其实是接收方已经接收到的重复帧,但是接收方并没意识到自己收到的是重复帧。
         (iii) 为了解决这个问题,只要把发送窗口大小,设置的比序号至少小1即可。
         image_1aucndhusc37rh61hd4a9j1n2a2n.png-16.5kB
    (2)\(SWS_{max}\) = 序号个数 - RWS:
            保证发送窗口大小与接收窗口大小的和为n,就能保证接收方识别出重传的帧
    (3)退后N帧的发送窗口最大:\(2^n -1\)
            选择重传的发送窗口最大:\(2^{(n-1)}\)

3.4 介质访问

一. 介质访问控制

1、 信道划分介质访问控制
     复用是通信技术的基本概念
(1)频分复用FDM
     频分复用的所有用户在同样的时间使用不同的带宽资源(不同Hz的信道)
(2)时分复用TDM
     (i) 时分复用是将时间划分为一段登场的复用帧(TDM帧)。每一个时分复用的用户在每一个TDM帧中占用固定序号的时隙。
     (ii) 每一个用户所占时隙周期性的出现(周期就是TDM帧的长度)
     (iii)TDM信号也成等时
     (v) 时分复用的所有用户在不同时间占用相同的频带宽度
(3)波分复用(WDM)
     光纤通信中,每个用户占用不同的波长
(4)码分复用(CDM)
     码分多址CDMA(Code Division Multiple Access)
     (i) 每一个比特时间划分为m个短的间隔,成为码片。所有用户一起发送的结果就是这些码片向量的叠加
     (ii) 码片序列:
          每个站被指派一个唯一的m个码片序列
          eg:发送比特1,则发送m个bit的码片。
          发送比特0,就发送这m个bit码片的二进制反码
          eg:S站的码片序列为00011011,则如果发送比特0,则发送的是11100100。而CDMA往往用-1代表0(利于后面的正交计算)。所以S站的原始码片序列为(-1 -1 -1 +1 +1 -1 +1 +1)
     (iii) CDMA的特点:每个站分配的码片必须正交(使用伪随机码序列)

\[正交关系的公式:S*T = \frac{1}{m}\sum S_i*T_i = 0 \]

          eg:向量S为(-1 -1 -1 +1 +1 -1 +1 +1),向量T为(-1 -1 +1 -1 +1 +1 +1 -1)。把向量S和T的各分量之带入S*T。和为0.
     (v)CDMA分码,使得向量自己和自己做内积,结果是1。向量和自己的反码做内积,结果是-1.
          image_1auctkcc01sf51utr1laj1pqo1u7d9.png-175.3kB
          image_1auctljra1a0u16d4k96r4o15ghm.png-289.9kB

二. 随机介质访问控制

  1. ALOHA协议
    (1)用户有帧即可发送。采用冲突监听与随机重发机制。这种系统是竞争系统系统
    (2)帧长统一,但两帧冲突或重叠,则会被破坏,因此效率不高
    (3)在泊松分布下,每个帧时间为尝试发送次数G=0.5时,信道吞吐量S=0.184
    (4)只能用原信道吞吐量的18.4%

  2. 载波监听多路访问CSMA
    (1)当一个站点需要发送数据前,需要先监听总线
    (2)如果总线上没有其他站点发送信号,则该站可以发送信号。如果有其他站点发送信号。则需要等待一段时间再重新监听总线,再根据总线的忙闲情况决定是否发送数据。

  3. CSMA/CD协议
    (1)CSMA只是监听总线是否空闲,当两个站点同时监听到总线空闲后,会同时发送数据,还是会造成冲突。
    (2)CSMA/CD利用以太网广播的方式进行单播通信。即线路上的所有站点都能收到总线上的数据,但只有指定的接收方会对该信号作出回应。
    (3)CSMA/CD协议用于以太网。以太网的传输特点有以下2中方式:
         (i) 采用灵活的无连接工作方式。即不必先建立连接就可以发送数据
         (ii)以太网对发送的帧不进行编号,也不要求对方发回确认(因为局域网的信道质量很好,产生差错的概率很低)
    (4)以太网提供的服务
    以太网提供的是不可靠服务,尽最大努力交付
    当目的站收到有差错数据时就丢弃,其他的什么也不做、
    (5)CD的意思是碰撞检测:就是边发数据边检测是否有其他站点发送信号。发生碰撞时,总线上传输的信号产生严重失真,无法恢复有用的信息。因此,使用CSMA/CD协议的以太网不能进行全双工通信,而只能进行双向交替通信(半双工通信)。每个站在发送数据后的一小段时间内,都存在遭遇碰撞的可能性。最先发送数据帧的站,最多在发送数据后的2\(\tau\)时间后,就可以知道是否发生了碰撞。
    (6)以太网端到端的往返延时2\(\tau\)称为征用期或碰撞窗口
    (7)当发送的时候,检测到了碰撞,则要二进制指数退避算法延时后再次发送数据
         (i)重传次数k = Min[重传次数,10],设随机数r是从0到$ (2^k-1)\(中随机取出来的整数。重传所需的时延就是r倍的2\)\tau\(      (ii)当重传16次仍发现冲突时,就丢弃该帧,向上层告报告 (8)以太网征用期的长度为51.2\)\mu s$
         因此对于10Mbps的以太网,征用期内能发送512字节的数据帧,即64字节。即如果在发生64自节后,还没检测到冲突,则此次发送不会砸发生冲突。
    (9)64字节称为最短有效帧长。
         若信道长度为L,带宽为c,传播速率为D,则最短有效帧长为\(2*C*\frac{L}{D}\)

  4. CSMA/CA协议
    (1)CSMA/CA在无线网中使用、无线网由于没有一条确定的通信线路,因此cd算法的征用期无法计算,所以不适合用CSMA/CD协议
    (2)CSMA/CA协议尽量在发送时避免冲突,同时使用停止等待,一次只发送一个数据帧。
    (3)CSMA/CA的流程:当检测到信道空闲,还要等待一小段时间后才能发送数据帧,为了让高优先级的帧发送

3.5 局域网

一. 以太网与IEEE 802.3

  1. 以太网是符合DIX Ethernet V2标准的局域网。

  2. IEEE 802.3规定数据链路层分为2层:
    (1)LLC逻辑链路控制层:与媒体无关,与IP层打交道
    (2)MAC媒体控制接入子层

  3. MAC地址
    (1)共48bit的物理地址:前24位(3字节)由RA负责向厂家分配。后3字节由厂家分配
    (2)MAC帧的结构:
    image_1aud1iov9acvoqo1iq21h0u1c6e13.png-16.2kB
         MAC帧的数据部分长度范围是46到1500字节。
         上限由MTU决定,下限由最短帧长决定。最短帧长为64字节(黄色部分+粉色的FCS部分占18个字节,加起来就是64字节)
    (3)无效MAC帧:
         数据字段长度不在461500字节的,有效MAC帧长不在641518字节的帧都是无效帧。

  4. 三种不同物理层标准

    标准 线路材质
    100BASE-TX 使用2对UTP5类线或屏蔽双绞线STP
    100BASE-FX 使用2对光纤
    100BASE-T4 使用4对UTP3类线或5类线

3.6 广域网

一. PPP协议 - 面向字节

  1. 全世界使用最多的点对点协议PPP
  2. ppp是点对点的,所以不是总线型,也就不用CSMA/CD协议。一次没有最短帧限制(不用2t的争用期),所以信息段范围是0~1500字节
  3. 用户拨号上网电话线介入因特网时,一般使用PPP协议。
  4. PPP协议由三个部分组成
    (1)将IP数据报封装到串行链路的方法
    (2)链路控制协议LCP
    (3)网络控制协议NCP
  5. PPP在同步线路上采用零比特填充解决透明传输(同HDLAC),在异步线路上采用字符定界确定帧边界0x7E(默认做法)
  6. PPP不采用帧序号和帧确认,是不可靠链路,只能进行全双工通信。只检错不纠错。

二. HDLAC - 面向比特

  1. 主站和从站的概念:
  2. 主站到从站的帧称为命令帧
    从站到主站的帧称为响应帧
  3. 采用全双工通信,对帧编号,采用CRC校验
  4. HDLAC只有3种帧:信息帧,监督帧,无编号帧。

3.7 数据链路层设备

一. 网桥

  1. 网桥具备过滤帧的功能:
    网桥收到一个帧时,并不是向所有接口发送此帧。而是先检查此帧的目的地址。然后确定将该帧转发到哪一个接口。

  2. 网桥内部结构
    image_1aud2l88o1rqoj6p1os4di91jj31g.png-3.9kB

  3. 网桥的好处
    (1)过滤通信量
    (2)扩大物理范围
    (3)提高可靠性
    (4)可互连不同物理层,不同速率的局域网。
    (5)网桥可以隔离碰撞域,可以引起广播风暴(目的地址为FFFFFF)

  4. 网桥转发表的建立 - 自学习
    (1)若A站发出的帧从接口x进入了某网桥,那么从这个接口出发沿反方向一定可以吧一个帧发送到A
    (2)网桥每接收到一个帧,如果转发表中没有此项,就记下源地址和网桥接口,作为转发表的一项。如果有该站的表项,则更新表项。
    (3)如果发现转发的地址和源地址在一个接口,则不予转发
    (4)初始时,网桥的转发表为空,所以网桥会把帧转发到所有的接口。
    (5)网桥中的转标表项有三个部分:MAC地址,转发接口,倒计时。倒计时是用来限制转发表项的生存时间的,因为联路上的机器时常更新,所以转发表也要时常更新。比如如果倒计时设为10s,则如果在10秒内没有帧发往此站,则此转发表项将删除

二. 交换机

  1. 交换机是有十几个接口的网桥
  2. 以太网交换机分为共享式和独占式。如果是共享式,每个接口的带宽为总代快的n分之1
  3. 交换机的性能指标 - 转发技术
    (1)直通式交换:收到数据包后,只看帧的前6个字节(目的地址),然后直接转发
    此种方法速度快,但是没有对帧进行校验,可能转发了无效帧
    (2)存储转发式交换
    存储转发技术要求交换机在接收到完整的数据报后决定如何转发。先进行校验正确性和完整性
    (3)碎片隔离式
    也是接收完整帧,但只校验帧长是否大于64字节,
  4. 交换机时延:
    从交换机接收到数据包开始向目的端口复制数据包之间的间隔
    (1)采用直通转发的交换机有固定的时延。取决于交换机解读数据包前6字节目的地址的速率
    (2)采用存储转发技术的交换机由于要接受完整的数据包,因此时延和帧长度有关

【注】:网桥不能隔离广播域。但是交换机可以通过组建虚拟局域网来隔离广播域。

posted @ 2016-10-08 11:12  moon_lord  阅读(3511)  评论(0编辑  收藏  举报