我是靠谱客的博主 忧郁鸡,最近开发中收集的这篇文章主要介绍3.3 使用广播信道的数据链路层 + CSMA/CD协议,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

3.3 使用广播信道的数据链路层 + CSMA/CD协议

(计算机网络,P82)

零散知识点:

局域网拓扑连接形式有:星型网、环型网、总线网;

通常信道采用随机接入的形式(可能会发生碰撞);

集线器工作在物理层

计算机通过适配器(adapter)网络接口卡与局域网连接;

适配器收到正确帧后,使用中断通知计算机,并将其交付给网络层;

主要内容如下

  • CSMA/CD协议
  • 使用集线器的星形拓扑
  • 以太网的MAC层、MAC帧
  • 扩展以太网与交换机
  • 高速以太网
  • PPPoE

CSMA/CD协议 —— 交替半双工通信

以太网采取无连接、不可靠交付的形式,利用曼彻斯特编码传输数据;

CSMA/CD:载波监听多点接入/碰撞检测;

  • 载波监听:不停的检测信道
  • 碰撞检测:边发边监听

电磁波在1km电缆上传播时延约为5us

单程端到端传播时延记为 τ tau τ, 所以最多在 2 τ 2tau 2τ内就能确定是否发生碰撞;

发送流程:(以下针对10Mbit/s以太网)

  1. 发送(最短64B,512bit,51.2us)
  2. 碰撞窗口期/争用期(512比特时间),用来检测到碰撞;
  3. 强化碰撞(发送32bit或48bit人为干扰数据,以便所有用户都知道发生了碰撞)
  4. 截断二进制指数退避(所以以太网每发送完一帧,都要把数据暂存一下);
  5. 循环1、2、3直到重发16次失败,丢弃帧报告;或者发送成功;
  6. 若成功,帧最小间隔(等待96比特时间)才可继续发送;

经过争用期,没有发生碰撞,才能肯定此次发送不会发生碰撞;凡数据帧长度小于64B的帧,都是由于冲突而异常终止的无效帧。

截断二进制指数退避:(下面的 t 指代 τ tau τ )

k = min{ 碰撞次数, 10 };
推迟发送时间 = rand[1, (2^k - 1)] * 2 * t

使用集线器的星形拓扑 —— 逻辑上仍是一个总线网,仍用 CSMA/CD 协议

  • 集线器 → 物理层;
  • 网络适配器 → 物理层 + 数据链路层;
  • 交换机 → 数据链路层;

以太网的信道利用率:(P92)

a = τ T 0 a = frac{tau}{T_0} a=T0τ
T 0 T_0 T0 是发送数据成功占用的时间; τ tau τ 是单程端到端的传播时延;

极限的信道利用率:

S m a x = T 0 T 0 + τ = 1 1 + a S_{max} = frac{T_0}{T_0 + tau} = frac{1}{1 + a} Smax=T0+τT0=1+a1
所以,只有参数a远小于1时,才能尽可能提高极限信道利用率(实际情况下,利用率到30%,网络就已经处于重载了)。

以太网的MAC层、MAC帧

mac地址为48位二进制数;

局域网中的“地址”应该是每个硬件的“名字”或者标识符;

MAC地址 = 3B + 3B 
        = OUI(公司标识符) + 扩展标识符 
        = EUI (扩展唯一标识符)

MAC地址     第一字节最低位  I/G位   1(组播/广播)、0(单个地址)
            第一字节次第位  G/L位   1(本地地址)、0(全球唯一地址)

发往本地的帧包含三种帧: 单播、广播、组播;

嗅探器(Sniffer)工作在混杂方式;

MAC帧格式:(802.3标准MAC帧)

前同步码    目的地址    源地址  类型        数据      FCS
7 + 1       6           6       2       46~1500     4

前同步码:7B 的 10101010…… + 1B 的 10101011;(SONET/SDH无需前同步码)

类型: 0x0800 → IP数据报; 0x8137 → 表示帧由IPX发送过来;

无需结束码,结束时不发0也不发1,没有电平跳转,即结束(曼彻斯特码好处);

802.3规定的无效帧:

  • 帧长度不是整数字节;
  • FCS查出有差错(通常误码率为 1 0 − 8 10^{-8} 108,出错但MAC层未检测到概率为 1 0 − 14 10^{-14} 1014);
  • 客户数据字段长度不在46~1500B之间;

扩展的以太网

用集线器连接多个局域网:

  • 共享碰撞域,会使主机平局吞吐量变小;
  • 若局域网采用不同技术以太网(10Mbit/s与100Mbit/s),则会以速率小的为标准;

以太网交换机特点:独占传输媒体,无碰撞的传输数据;

大部分以太网交换机对收到的帧采用存储转发的方式进行转发,也有采用直通的交换方式;

自动学习:通过查看每个接口发来的帧地址,确定地址与接口的对应关系;

过滤:C、D因为地址不对,丢弃帧;只有B才手下目的地址正确的帧;

STP(生成树协议):消除消息兜圈子的现象(防止从A转发出的消息,再被转发回A,无限兜圈循环);

虚拟局域网VLAN(交换机实现):VLAN限制了接受广播信息的计算机数量,使得局域网不会因广播信息过多,造成性能恶化(广播风暴);

虚拟局域网的以太帧需要在源地址与类型之间加入 4B 的VLAN标记;

……  源地址  VLAN标记    类型    ……
        6       4       2

VLAN标记:

2B  +   3bit    +   1bit    +   12bit
0x81   用户优先级    CFI          VID
  • 2字节的固定内容(方便数据链路层检查,是否有VLAN标记);
  • CFI(规范格式指示符);
  • VID(VLAN标识符,唯一标识了以太网帧属于哪一个VLAN);

高速以太网

  • 100BASE-T:
    • 全双工下无冲突;
    • 半双工下使用 CSMA/CD 协议;
    • 以太网标准帧;
    • 不支持同轴电缆;
  • GE(吉比特以太网):
    • 全双工下不适用 CSMA/CD 协议;
    • 半双工使用 CSMA/CD 协议;
    • 载波延伸:争用期增大到 512B(512*8比特时间);
    • 最短帧仍为 64B ,不足 512B 的补足到 512B;
    • 增加分组突发方式:第一个短针不全到512B,后续短帧留有最小间隔时间,连续发送,直至达到1500字节或更多一些;
  • 10GE及更快的以太网
    • 只工作在全双工模式
    • 帧格式与之前以太网帧格式完全相同;

PPPoE —— 在以太网上运行PPP (P108)

把PPP帧再封装到以太网中传输,现在光纤接入都要使用PPPoE;

最后

以上就是忧郁鸡为你收集整理的3.3 使用广播信道的数据链路层 + CSMA/CD协议的全部内容,希望文章能够帮你解决3.3 使用广播信道的数据链路层 + CSMA/CD协议所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部