5.3.1 广播信道的局域网
- 最初的局域网使用同轴电缆进行组网,总线型拓扑。
- 广播信道使用带冲突检测的载波侦听多路访问( CSMA/CD )机制通信,发生冲突了就停止通信并且发送之前看线路是否被占用。CSMA/CD 就是广播信道使用的数据链路层协议,使用
CSMA/CD
协议的网络就是以太网。 - 点到点链路就不用冲突检测,因此没必要使用
CSMA/CD
协议。
广播信道的特点就是电脑 A 发消息给电脑 B 的时候,其他所有电脑都会收到,但他们的 mac 地址不匹配,只有 B 才能正常的接收,其他电脑会拒绝接收。广播通信必须有 MAC 地址,不然计算机不知道跟谁通信。
- 使用集线器组建的局域网也是广播信道,是总线型拓扑。
5.3.2 以太网标准
- 以太网(Ethernet)是一种计算机局域网组网技术。IEEE 制定的 IEEE 802.3 标准给出了以太网的技术标准,即以太网的介质访问控制协议(CSMA/CD)及物理层技术规范(包括物理层的连线、电信号和介质访问层协议的内容)。
- 在 IEEE 802.3 标准中,为不同的传输介质制定了不同的物理层标准,在这些标准中前面的数字表示传输速度,单位是 “Mbps”,最后的一个数字表示单段网线长度(基准单位是 100m),Base 表示“基带”的意思。
5.3.3 CSMA/CD 协议
- 总线型网络使用 CSMA/CD 协议进行通信,即带冲突检测的载波侦听多点接入技术。
- 即便检测出总线上没有信号,开始发送数据后也有可能和迎面而来的信号在链路上发生碰撞。
- 比如,A 计算机发送的信号和 B 计算机发送的信号在链路 C 处发生碰撞,碰撞后的信号相互叠加,在总线上电压变化幅度将会增加,发送方检测到电压变化超过一定的门限值时,就认为发生冲突,这就是冲突检测。
- 使用 CSMA/CD 协议的以太网不可能进行全双工通信而只能进行双向交替通信(半双工通信)。
5.3.4 以太网最短帧
- 为了能够检测到正在发送的帧在总线上是否产生冲突,以太网的帧不能太短,如果太短就有可能检测不到自己发送的帧产生了冲突。下面咱们探讨以太网的帧最短应该是多少字节。
- 下图因为帧太短不能检测到自己发的帧是否发生了冲突
- 以太网设计最大端到端长度为 5km(实际上的以太网覆盖范围远远没有这么大),单程传播时延为大约为25.6μs , 往返传播时延为 51.2μs,10M 标准以太网最小帧为:
10Mb/s × 51.2μs = 107b/s × 51.2×10-6s = 512b
512 比特也就是 64 字节,这就意味着以太网发送数据帧如果前 64 字节没有检测出冲突,后面发送的数据就一定不会发生冲突。换句话说,如果发生碰撞,就一定在发送前 64 字节之内。由于一旦检测出冲突就立即终止发送,这时发送的数据一定小于 64 字节,因此凡是长度小于 64 字节的帧都是由于冲突而异常终止的无效帧,只要收到了这种无效帧,就应当立即将其终止。
5.3.5 冲突解决方法—退避算法
总线型网络中的计算机数量越多,在链路上发送数据产生冲突机会就多。
- 计算机要想知道发送的帧在链路上是否发生碰撞必须等待
2τ
,2τ
称为争用期。 以太网使用截断二进制指数退避(truncated binary exponential backoff)算法来解决碰撞问题。
- 1)确定基本退避时间,它就是争用期2τ。以太网把争用期定为 51.2μs。对于 10Mb/s 以太网,在争用期内可发送 512bit,即 64 字节。也可以说争用期是 512 比特时间。1比特时间就是发送 1 比特所需的时间。所以这种时间单位与数据率密切相关。
- 2)从离散的整数集合[0,1,…,(2k-1)]中随机取出一个数,记为r。重传应推后的时间就是r倍的争用期。上面的参数k按下面的公式计算:
k = Min[重传次数,10]
可见当重传次数不超过 10 时,参数 k 等于重传次数;但当重传次数超过 10 时,k就不再增大而一直等于 10。 - 3)当重传达 16 次仍不能成功时(这表明同时打算发送数据的站太多,以致连续发生冲突),则丢弃该帧,并向高层报告。
5.3.6 以太网帧格式
常用的以太网 MAC 帧格式有两种标准,一种是 EthernetV2 标准(即以太网 V2 标准),另一种是 IEEE 的 802.3 标准。使用得最多的是以太网 V2 的 MAC 帧格式。
- Ethernet II 的帧比较简单,由五个字段组成。
- 前两个字段分别为 6 字节长的目的 MAC 地址和源 MAC 地址字段。
- 第三个字段是 2 字节的类型字段,用来标志上一层使用的是什么协议,以便把收到的 MAC 帧的数据上交给上一层的这个协议。第四个字段是数据字段,其长度在 46 到 1500 字节之间。
- 最后一个字段是 4 字节的帧检验序列 FCS(使用 CRC 检验)
- 以太网帧格首部
- 当数据字段的长度小于46字节时,数据链路层就会在数据字段的后面加入一个整数字节的填充字段,以保证以太网的MAC帧长不小于64字节,接收端还必须能够将添加的字节去掉。
以太网帧格式
利用率是指的发送数据的时间占整个时间的比例。
如图所示,平均发送一帧所需要的时间,经历了 n 倍争用期 2τ,T0 为发送该帧所需时间,τ 为该帧传播时延。
- 从公式可以看出,要想提高信道利用率最好是 n 为 0,这就意味着以太网上的各个计算机发送数据不会产生碰撞(这显然已经不是 CSMA/CD,而需要一种特殊的调度方法),并且能够非常有效的利用网络的传输资源,即总线一旦空闲就有一个站立即发送数据。这种情况算出来的信道利用率是极限信道利用率。
- 要想提高极限信道利用率就要降低公式中的比值。T0
τ 值和以太网连线的长度有关,这就意味着τ值要小, 以太网网线的长度就不能太长。带宽一定的情况下 T0 和帧的长度有关,这就意味着,以太网的帧不能太短。
5.3.8 网卡的作用
网卡是工作在链路层和物理层的网络组件,是局域网中连接计算机和传输介质的接口,不仅能实现与局域网传输介质之间的物理连接和电信号匹配,还涉及帧的发送与接收、帧的封装与拆封、帧的差错校验、介质访问控制(以太网使用 CSMA/CD 协议)、数据的编码与解码以及数据缓存的功能等。
5.3.9 MAC 地址
- 在广播信道实现点到点通信,这就需要网络中的每个网卡有一个地址。这个地址称为物理地址或 MAC 地址(因为这种地址用在 MAC 帧中)。IEEE802 标准为局域网规定了一种 48 位的全球地址。
- 这种 6 字节的 MAC 地址已被固化在网卡的 ROM 中。因此,MAC 地址也叫作硬件地址(hardware address)或物理地址。当这块网卡插入(或嵌入)到某台计算机后,网卡上的 MAC 地址就成为这台计算机的 MAC 地址了。
- 在广播信道实现点到点通信,这就需要网络中的每个网卡有一个地址。这个地址称为物理地址或 MAC 地址(因为这种地址用在 MAC 帧中)。IEEE802 标准为局域网规定了一种 48 位的全球地址。
- 这种 6 字节的 MAC 地址已被固化在网卡的 ROM 中。因此,MAC 地址也叫作硬件地址(hardware address)或物理地址。当这块网卡插入(或嵌入)到某台计算机后,网卡上的 MAC 地址就成为这台计算机的 MAC 地址了。
- 网卡有过滤功能,适配器从网络上每收到一个MAC帧就先用硬件检查MAC帧中的目的地址。如果是发往本站的帧则收下,然后再进行其他的处理。否则就将此帧丢弃,不再进行其他的处理。这样做就不浪费主机的处理机和内存资源。这里“发往本站的帧”包括以下三种帧:
- 单播(unicast)帧(一对一),即收到的帧的 MAC 地址与本站的硬件地址相同。
- 广播(broadcast)帧(一对全体),即发送给本局域网上所有站点的帧(全1地址)。
可以看到广播包是全 f10.7.87.2
在询问谁有 10.7.87.23
的 mac 地址
- 多播(multicast)帧(一对多),即发送给本局域网上一部分站点的帧。
5.3.10 实战:查看和更改MAC地址
5.3.11 查看其他电脑的 MAC 地址
TCP 协议中有个 ARP 协议,ARP 会发送一个广播帧,该广播帧的 MAC 地址是FF:FF:FF:FF
全F
,它会询问目标计算机 (IP) 的 MAC 地址是多少,所有的计算机都会接收到此广播帧,只有对应的计算机( IP)会做出响应,源计算机就会将目标计算的 MAC 地址缓存到本机中,再发数据包的时候就会知道目标计算机的 MAC 地址是多少,我们可以通过抓包工具抓取目标计算机的 MAC 地址。
查看本计算机缓存的 MAC 地址:C:\Users\wu>arp -a
```powershell C:\Users\wu>arp -a
接口: 192.168.80.1 —- 0x7 Internet 地址 物理地址 类型 192.168.80.255 ff-ff-ff-ff-ff-ff 静态 224.0.0.2 01-00-5e-00-00-02 静态 224.0.0.22 01-00-5e-00-00-16 静态 224.0.0.100 01-00-5e-00-00-64 静态 224.0.0.251 01-00-5e-00-00-fb 静态 224.0.0.252 01-00-5e-00-00-fc 静态 233.3.168.192 01-00-5e-03-a8-c0 静态 239.255.255.250 01-00-5e-7f-ff-fa 静态
接口: 192.168.56.1 —- 0x9 Internet 地址 物理地址 类型 192.168.56.255 ff-ff-ff-ff-ff-ff 静态 224.0.0.2 01-00-5e-00-00-02 静态 224.0.0.22 01-00-5e-00-00-16 静态 224.0.0.100 01-00-5e-00-00-64 静态 224.0.0.251 01-00-5e-00-00-fb 静态 224.0.0.252 01-00-5e-00-00-fc 静态 233.3.168.192 01-00-5e-03-a8-c0 静态 239.255.255.250 01-00-5e-7f-ff-fa 静态
接口: 192.168.3.192 —- 0x12 Internet 地址 物理地址 类型 192.168.3.1 a4-c7-4b-84-f4-43 动态 192.168.3.9 4a-97-c5-64-8d-0d 动态 192.168.3.19 f2-1a-75-d4-1f-ea 动态 192.168.3.89 a4-17-31-f4-bd-8c 动态 192.168.3.154 72-2b-2a-1e-71-32 动态 192.168.3.173 e8-9a-8f-3b-73-da 动态 192.168.3.200 14-6b-9c-df-ba-a4 动态 192.168.3.219 4c-20-b8-e6-c0-0a 动态 192.168.3.233 b0-be-83-5f-df-c5 动态 192.168.3.241 e8-6f-38-54-dd-ad 动态 192.168.3.255 ff-ff-ff-ff-ff-ff 静态 224.0.0.2 01-00-5e-00-00-02 静态 224.0.0.22 01-00-5e-00-00-16 静态 224.0.0.100 01-00-5e-00-00-64 静态 224.0.0.251 01-00-5e-00-00-fb 静态 224.0.0.252 01-00-5e-00-00-fc 静态 233.3.168.192 01-00-5e-03-a8-c0 静态 239.255.255.250 01-00-5e-7f-ff-fa 静态 255.255.255.255 ff-ff-ff-ff-ff-ff 静态
接口: 192.168.10.1 —- 0x14 Internet 地址 物理地址 类型 192.168.10.255 ff-ff-ff-ff-ff-ff 静态 224.0.0.2 01-00-5e-00-00-02 静态 224.0.0.22 01-00-5e-00-00-16 静态 224.0.0.100 01-00-5e-00-00-64 静态 224.0.0.251 01-00-5e-00-00-fb 静态 224.0.0.252 01-00-5e-00-00-fc 静态 233.3.168.192 01-00-5e-03-a8-c0 静态 239.255.255.250 01-00-5e-7f-ff-fa 静态
C:\Users\wu>
``
192.168.3.192是我本机的 ip 地址,动态 代表临时的 MAC 地址,不用了就会被删除,用的时候就重新生成。<br />想缓存那个计算机的 MAC 地址只要
ping`一下对应计算机的 ip 地址就可以了。
查看同网段所有计算机
借助工具 maxcanner 查询
maxcanner .mp3