计算机网络(六) 局域网
广播信道 与 接入控制 (介质访问控制)
广播信道(Broadcast Channel)允许信息从一个发送方同时传输到多个接收方。
由于广播信道需要共用传输介质进行广播通信,为了确保信息被正确有序地传输,需要接入控制技术对设备的通信进行控制。
通常有两类方法,一种是静态划分信道,如频分复用、时分复用、波分复用和码分复用等,用户分配了不同的信道资源,就不会和其他用户产生冲突。但在局域网中,通过此法分配的信道资源在大部分时间内占用率很低,不适合局域网使用。
另一种是动态媒体接入控制,又称为多点接入,其特点是信道并非固定的分配给用户,而是动态划分给需要的用户。这里又分为两类:随机接入和受控接入,随机接入(如 CSMA/CD)允许用户随机地发送信息,但是如果恰巧有两个用户同时发送了信息,则产生冲突,发送失败,需要重发。受控接入 (如令牌总线、令牌环) 则不允许用户随机发送信息,而必须接受一定的控制。随机接入现在被绝大多数以太网采用。
CSMA/CD
CSMA/CD 全称: Carrier Sense Multiple Access with Collision Detection,载波监听多点接入、冲突检测技术。
CS 的含义:载波监听,即主机在发送数据之前需要检测总线上是否有其他主机在发送数据。
MA 的含义:多点接入,即多台主机可以同时接入网络总线,可以随机发送信息。
CD 的含义:冲突检测,即主机在发送数据时,边发送边监听,以及时发现两台主机同时发送信息导致的冲突(collision)
可以看出, CSMA/CD 是适用于半双工通信的接入控制协议。
二进制指数规避算法
CSMA/CD 用这个算法计算碰撞后重传的退避时间。
定义 \tau 为以太网中单程最大传播时延,显然,从主机开始发送数据,到碰撞被检测的最长可能时间为 2\tau,称 2\tau 为争用期
,表示一个完整的争用周期。
现定义基本退避时间
为 1 个争用期。
定义变量 k=0,表示重传次数,每次触发重传时自增 1。但是 k 不超过 10。
每次重传时,从 [0, 2^k-1] 中随机选取一个整数 n,再乘上基本退避时间,得到当前重传需要等待的退避时间 2n\cdot\tau。
重复 16 次重传后,认为当前网络过于拥挤,不再重传并向上层抛出错误。
最小帧长问题
如果一个数据帧太短了,在检测到碰撞之前,数据帧已经发送完毕,主机就会错误的认为这个数据帧顺利地被发送而没有发生碰撞。为了避免这种局面,CSMA/CD 规定数据帧长度必须大于指定的最小帧长。
最小帧长的计算方法:
在以太网中,根据经验,规定最短帧长为 64 字节,如果需要发送长度小于此值的数据帧,则需要补 0 填充。
以太网
以太网是一种逻辑拓扑为总线型的小型网络。使用 CSMA/CD(由 IEEE 802.3 标准或 DIX Ethernet V2 标准定义)介质访问控制方法。
使用集线器的以太网,物理拓扑为星型(或拓展星型),但集线器完成的任务仅仅是将比特进行简单转发,因此其逻辑拓扑仍然是总线型。
在以太网中,接收方只对数据进行差错检测,差错帧直接丢弃,没有规定重传机制和纠错机制。因此以太网提供的服务只实现无差错接收,不实现可靠传输。
IEEE 802.3 标准全名是:以太网介质访问控制协议(CSMA/CD)及物理层技术规范。
10BASE-T 以太网
这是一种比较古老的经典以太网类型。10BASE-T 以太网的具体含义是 传送速率为 10Mbps 的基带信号(的没有经过调制的原始电信号)的双绞线以太网,T 表示传输介质为双绞线,10 表示传输速率为 10Mbps,BASE 表示使用基带信号。
10BASE-T 以太网有以下几个特点
- 采用曼彻斯特编码
- 每段双绞线不超过 100m
适配器、MAC地址
适配器是计算机与外界有线局域网进行连接的专门设备,通常指的就是网络接口板(网卡)。如今,网卡大多直接集成在主板上。
适配器上有单独的处理器、RAM 和 ROM。在出厂时,ROM 中会储存一个独一无二的 MAC 地址。
MAC(Media Access Control)地址又称为硬件地址、物理地址。它类似于指纹,是一个 48 位二进制数,前 24 位代表厂家(由 IEEE 分配),后 24 位由厂家自己指定。常用 6 个 16 进制数表示,如 02-60-8c-e4-b1-21。
以太网 MAC 帧
- MAC 数据帧格式
每个 MAC 数据帧包含固定的 14 字节的头部和 4 字节的尾部。其中,头部由 6 字节的目的 MAC 地址、6 字节的源 MAC 地址、2 字节的类型字段(用来标记 IP 层使用的是什么协议,以便数据在的 IP 层的解析)组成。尾部是 4 字节的 FCS(就是 CRC-32 校验的帧检验序列)
- 前导码
以太网在物理层规定,需要在 MAC 数据帧的前面插入一段前导码
,用于发送发和接收方的时钟同步(可以理解为告知接收方接下来将开始传送数据)。
前导码由两部分组成:7 字节的前同步码,固定为 101010...(10 的循环);1 字节的帧开始界定符,固定为 10101011。
3. 数据长度
在使用共享信道时,为了防止数据帧过长而长时间占用信道,降低信道共享性,我们需要规定数据帧的最大长度。同时,数据帧也不能过短,因为 CSMA/CD 规定了最小帧长 64 字节。
最大可传输单元 MTU 规定以太网数据帧的数据部分的最大长度。为了尽可能提高数据传输效率(有效数据长度与数据全长的比值)的同时保证各中带宽下的以太网的共享性不会受到太大影响,根据经验,以太网规定 MTU 为 1500 字节。
最小数据长度则为 CSMA/CD 规定的 64 字节 减去固定的头尾长度 14+4 字节,得到 46 字节。