以太网
1 以太网历史简介
…………………..
2.1 CSMA/CD
现阶段成熟的局域网技术有三种:以太网(Ethernet)、令牌环(Token Ring)和光纤分布式数据接口(FDDI),其中以太网技术逐步成为局域网技术的主流。
图1 多路访问控制协议分类
图2 CSMA/CD发送数据帧流程图
2.2 以太网帧结构
Preamble/SFD(Start-of-Frame Delimiter):每个以太网帧发送时都是以8个字节的前导码开始,Preamble是1和0交替(1 0 1 0 1 0…….)的7个字节数据,该部分的作用是通知接收方有数据帧到来,使其与输入的时钟保持同步,56bit 模式容许站点在帧的开始可以丢弃一些bit。SFD是一个字节10101011,最后使用11,来通知接收方下一字段就是目的主机的地址了。实际上前导码都是在物理层加进去的,并不是帧的一部分。
DA(Destination Address):6个字节,目的节点的MAC地址。
SA(Source Address):6个字节,源节点的MAC地址。
Type/Length:2字节,根据数值的不同代表2种不同的封装格式,如果字段值在0x0000-0x05DC范围内,则表示该字段为Length,该帧为802.3 raw封装。如果字段值在0x0600-0xFFFF范围内,则表示该字段为Type字段,该帧为Ethernet II封装,0x05DD-0x05FF保留没有使用。
PayLoad:上层协议有效载荷,最小为46字节,最大为1500字节,对于Type封装格式,上层协议必须保证该字段的值大于46字节,对于Length封装,对于有效载荷不够46字节的报文链路层必须进行填充。
FCR:4字节的校验和。
另外以太网还有如下所示的封装格式:
802.3/802.2 LLC封装
802.3/802.2 LLC封装中,DSAP、SSAP用来标志上层协议,比如NetBiOS为0xF0,IPX为0xE0。
802.3/802.2 SNAP 中Org Code代表机构编码,是全球唯一的表示组织机构的代码OUI,PID(Protocol Identifier)是协议标志,每个组织机构可以有独立的协议标识。如苹果公司的OUI为08-00-07,其APPleTalk协议的PID为0x809B,这种封装中Org Code+PID唯一标识一个上层协议。
802.3/802.2 SNAP RFC1042封装,Org code使用一个特殊的数值00-00-00,当这个字段为00-00-00时,Type字段与Ethernet II封装中的Type具有相同的含义。
ip协议支持两种封装,分别是Ethernet II封装和SNAP RFC1042封装,Type均为0x0800,IPX协议支持四种封装Ethernet II、SNAP RFC1042、raw 802.3、802.3/802.2 LLC,在Ethernet II和SNAP RFC1042封装中,Type字段为0x8137,raw 802.3封装在Length后紧跟0xFFFF标志。802.3/802.2 LLC封装中,DSAP和SSAP=0xE0。Apple Talk支持Ethernet II和SNAP RFC1042封装,Type均为0x809B。
目前使用最广泛的是Ethernet II封装。802.3/802.2 SNAP封装使用很少,因此一般所说的SNAP封装都指SNAP RFC1042封装。
2.3 以太网速率计算
以太网传送数据时,每两个帧之间存在帧间隙IFG(Inter Frame Gap),帧间隙的作用是使介质中的信号处于稳定状态,同时让帧接收者对接收的帧作必要的处理(如调整缓存取的指针、更新计数、发中断让主机对报文进行处理)。对于Ethernet(10M)帧间隙时间为9.6usec,100M快速以太网帧间隙为0.96usec,1000M帧间隙为0.096usec,10GE帧间隙为0.0096usec,这个时间正好相当于传送96bit数据的时间。
以太网速率与pps进行换算,假设数据帧的长度为 k bytes(包括CRC),端口速率为R,转化后的PPS为N,那么:
N=R/(k×8+8×8+96)
其中k×8表示实际数据帧的长度(bits),8×8表示前导码(Preamble+SFD)的长度,96bit相当于帧间隙占用的bits。
下面举例说明,假设端口速率为100M,发送数据帧的长度为64字节,那么线速发送报文换算成pps后,
N=100 000 000/(64×8+8×8+96)≈148810 pps
2.4 冲突域和广播域
使用同轴电缆和HUB连接的主机就属于一个冲突域。
一个站点发送一个广播报文其余节点能够接收到的节点的集合,就是一个广播域。
传统的网桥(Bridge)可以根据MAC表对单播报文进行转发,对于广播报文向所有的端口都转发,所以网桥的所有端口连接的节点属于一个广播域,但是每个端口属于一个单独冲突域。
传统的二层交换机所有端口都属于一个广播域,用户需要重新连线来选择所在的LAN。因此,在传统二层交换机上引入了VLAN(virtual LAN)。每个VLAN中的所有节点在同一个广播域,每个VLAN是逻辑LAN,VLAN之间是二层隔离的。
2.5 半双工、全双工、自协商
同一时刻只能接收或发送数据的工作模式为半双工模式。在半双工模式下,使用CSMA/CD的机制来避免冲突。
全双工模式下,同一时刻可以同时接收和发送数据帧。
自协商功能允许一个网络设备能够将自己所支持的工作模式信息传达给网络上的对端,并接收对方可能传递过来的相应信息。对于两端处于自协商工作方式的设备,最终协商的结果是采用二者技术能力域中优先级低的网口提供的工作方式工作。协商级别一般为1000Mfull,1000Mhalf,100Mfull,100Mhalf,10Mfull,10Mhalf。
10BASE-T的以太网接口(它只支持10M,不支持自协商)在链路UP之前会发送Link Test Pulse(LTP),该脉冲用以检测链路是否应该UP;而100BASE-T以太网接口(它只支持100M,不支持自协商)在链路UP之前会发送FAST ETHERNET IDLE流,用以检测链路是否应该UP。
自协商机制
支持自协商(Autonegotiation)的以太网接口则在链路UP之前发送FLP(Fast Link Pulse),FLP实际上是一组LTP和数据脉冲的组合,它们表明一种含义:例如我支持100M全双工。较旧的设备例如10BASE-T仍然将这些FLP识别为LTP,而自协商设备则能够识别FLP的含义并通过交互这种握手信息来使链路成为最优配置。如果自协商设备看到有一般的LTP(不是有特定含义的FLP)输入,它就将本端设置为10M半双工。如果自协商设备看到有FAST ETHERNET IDLE输入,它就将本端设置为100M半双工。以上所述的自协商机制只对10/100兆铜缆接口或千兆光/电口有效,100BASE-FX不支持自协商。
BASE前的数字表示网络的数据传输率,比如说:10BASE指数据传输率为10Mbps,1000BASE为1000Mbps
BASE指基带传输,即未经过调制,不能复用的传输,与其对应的BROAD指宽带传输(多用于有线电视网)
BASE后的字母或数字指的是传输介质,反应介质特点,比如说10BASE-T中的T指双绞线,
10BASE-5指传输距离500米(即粗缆)
BASE基带 CX铜缆 FX 光缆
TX表示电接口(双绞线)
FX表示光接口(光纤)
SX表述短距离的光接口
LX表示长距离光接口(1310nm)
ZX表示长距离光接口(1500nm)
2.6 流控
流控指当接收者没有能力处理接收到的报文时,为了防止丢包,接收者需要通知报文的发送者一段时间内停止发送报文。
对于半双工模式和全双工模式,流控通过不同的方式来实现。在全双工模式下,接收者通过发送一种特殊的数据帧来通知发送者,停止发送报文,这种特殊的数据帧称为pause帧,下面是PAUSE帧的结构:
图3 PAUSE帧格式
PAUSE帧的长度固定为64字节(包括CRC),PAUSE帧的目的MAC为组播MAC :0180-c200-0001,源MAC为发送PAUSE帧的节点的MAC,LENTH/TYPE字段固定为0x8808。MAC CONTROL parameterS字段表示要求发送者暂停发送流量的时间,数值有效范围为0-65535, 单位为512bit time(bit time指链路上传输1bit需要的时间,如100M链路bit time为10ns)。如果数据报文的接收者在发送PAUSE帧后,在PAUSE帧发送的等待时间超时之前可以处理数据报文,则再发送一个等待时间为0的PAUSE帧通知数据发送者开始发送数据。
PAUSE的接收者(也是数据报文的发送者),收到PAUSE帧后会根据PAUSE帧中的等待时间停止发送报文,等待时间超时后继续发送报文。
半双工模式下,以太网利用CSMA/CD机制处理冲突和链路使用问题。根据CSMA/CD机制,半双工的模式下,采取的流控方式为Backpressure,即背压。该种方法有两种实现,一个是数据接收者有意制造一次冲突,数据发送者检测到冲突采取Backoff,这样就延缓了数据的发送;另外一个方法是制造载波信号,使数据发送者感觉到接收者要发送数据,从而通过检测到载波而进行延时传输。
相关阅读
1、不同是IP是无连接的,x.25与ATM是面向连接的2、帧中继FR是x.25演变而来的,x.25去掉校验就是FR3、ATM与帧中继的区别是:ATM是异步传
以太网链路聚合技术通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽、提高链路可靠性和实现负载分担的