zoukankan      html  css  js  c++  java
  • 计算机网络--链路层

    数据链路层服务

    术语

    • 主机和路由器:结点(nodes)
    • 连接相邻结点的通信信道:链路(links)
      • 有线链路(wired links)
      • 无线链路(wireless links)
      • 局域网(LANs)
    • 链路层(第2层)数据分组:帧(frame),封装网络层数据报

    数据链路层负责通过一条链路从一个节点向另一个物理链路直接相连的相邻结点传送数据报。

    链路层服务

    • 组帧(framing)
      • 封装数据报构成数据帧,加首部和尾部
      • 帧同步
    • 链路接入(link access)
      • 如果是共享介质,需要解决信道接入(channel access)
      • 帧首部中的“MAC”地址,用于标识帧的源和目的
      • 不同于IP地址!
    • 相邻结点间可靠交付
      • 在低误码率的有线链路上很少采用 (如光纤,某些双绞线等)
      • 无线链路:误码率高,需要可靠交付
    • 流量控制(flow control)
      • 协调(pacing)相邻的发送结点和接收
    • 差错检测(error detection)
      • 信号衰减和噪声会引起差错.
      • 接收端检测到差错:
        • 通知发送端重传或者直接丢弃帧
    • 差错纠正(error correction)
      • 接收端直接纠正比特差错
    • 全双工和半双工通信控制
      • 全双工:链路两端结点同时双向传输
      • 半双工:链路两端结点交替双向传输

    链路层的具体实现

    • 每个主机或路由器接口
    • 链路层在“适配器”(即网络接口卡-NIC)中实现 或者在一个芯片上实现
      • 以太网网卡,802.11网卡;以太网芯片组
      • 实现链路层和物理层
    • 链接主机的系统总线
    • 由硬件、软件与固件组成

    网卡间通信

    差错编码


    奇偶校验码

    Internet 校验和(Checksum)

    循环冗余校验码(CRC)

    • 检错能力更强大的差错编码
    • 将数据比特,D,视为一个二进制数
    • 选择一个r+1位的比特模式 (生成比特模式),G
    • 目标:选择r位的CRC比特,R,满足
      • <D,R>刚好可以被G整除(模2)
      • 接收端检错:利用G除<D,R>,余式全0,无错;否则,有错!
      • 可以检测所有突发长度小于r+1位差错。
    • 广泛应用于实际网络 (以太网,802.11 WiFi,ATM)

    多路访问控制(MAC)

    • 单一共享广播信道
    • 两个或者两个以上结点同时传输:干扰(interference)
      • 冲突(collision)
        • 结点同时接收到两个或者多个信号→接收失败!
    • 多路访问控制协议(multiple access control protocol)
    • 采用分布式算法决定结点如何共享信道,即决策结点何时可以传输数据
    • 必须基于信道本身,通信信道共享协调信息!
      • 无带外信道用于协调

    理想MAC 协议

    MAC 协议分类

    • 三大类:
    • 信道划分(channel partitioning)MAC协议
      • 多路复用技术
      • TDMA、FDMA、CDMA、WDMA等
    • 随机访问(random access)MAC协议
      • 信道不划分,允许冲突
      • 采用冲突“恢复”机制
    • 轮转(“taking turns”)MAC协议
      • 结点轮流使用信道

    信道划分MAC 协议:TDMA

    • TDMA: time division multiple access
    • “周期性”接入信道
    • 每个站点在每个周期,占用固定长度的时隙(e.g.长度=分组传输时间)
    • 未用时隙空闲(idle)
    • 例如:6-站点LAN,1,3,4传输分组,2,5,6空闲

    信道划分MAC 协议:FDMA

    • FDMA: frequency division multiple access
    • 信道频谱划分为若干频带(frequency bands)
    • 每个站点分配一个固定的频带
    • 无传输频带空闲
    • 例如: 6站点LAN, 1,3,4频带传输数据, 2,5,6频带空闲。

    随机访问MAC 协议

    • 当结点要发送分组时:
      • 利用信道全部数据速率R发送分组
      • 没有事先的结点间协调
    • 两个或多个结点同时传输:➜ “冲突”
    • 随机访问MAC协议需要定义:
      • 如何检测冲突
      • 如何从冲突中恢复 (e.g., 通过延迟重传)
    • 典型的随机访问MAC协议:
      • 时隙(sloted)ALOHA
      • ALOHA
      • CSMA、CSMA/CD、CSMA/CA

    时隙ALOHA 协议





    CSMA 协议

    • 载波监听多路访问协议CSMA (carrier sensemultiple access)
    • 发送帧之前,监听信道(载波):
      • 信道空闲:发送完整帧
      • 信道忙:推迟发送
      • 1-坚持CSMA
      • 非坚持CSMA
      • P-坚持CSMA
    • 冲突可能仍然发生:信号传播延迟

    CSMA/CD 协议



    CSMA/CD效率

    轮转访问MAC协议

    • 信道划分MAC协议:
      • 网络负载重时,共享信道效率高,且公平
      • 网络负载轻时,共享信道效率低!
    • 随机访问MAC协议:
      • 网络负载轻时,共享信道效率高,单个结点可以利用信道的全部带宽
      • 网络负载重时,产生冲突开销
    • 轮转访问MAC协议:综合两者的优点!

    轮询(polling):

    • 主结点轮流“邀请”从属结点发送数据
    • 典型应用:“哑(dumb)” 从属设备

    令牌传递(token passing):

    • 控制令牌依次从一个结点传递到下一个结点.
    • 令牌:特殊帧

    MAC 协议总结

    • 信道划分MAC协议:时间、频带、码片划分
      • TDMA、FDMA、CDMA
    • 随机访问MAC协议:
      • ALOHA, S-ALOHA, CSMA, CSMA/CD
      • CSMA/CD应用于以太网
      • CSMA/CA应用802.11无线局域网
    • 轮转访问MAC协议:
      • 主结点轮询;令牌传递
      • 蓝牙、FDDI、令牌环网
  • 相关阅读:
    【爬虫】python+urllib+beautifusoup爬取花瓣网美女图片
    Django urls.py报错: raise TypeError('view must be a callable or a list/tuple in the case of include()
    python国内豆瓣源
    python pip使用报错:Fatal error in launcher: Unable to create process using '"'
    warning: refname 'HEAD' is ambiguous解决方法
    twisted.internet.error.DNSLookupError: DNS lookup failed: address "'http:" not found: [Errno 11001] getaddrinfo failed.解决办法
    react + iscroll上拉加载下拉刷新分享
    盘点网页图标几种解决方案
    宽度自适应布局
    jqueryUI
  • 原文地址:https://www.cnblogs.com/ygjzs/p/12740008.html
Copyright © 2011-2022 走看看