【干货】以太网的起源和发展,看完你就明白了!
基础知识
1. About Ethernet
Ethemet(以太网)于20世纪70年代中期,由Xerox公司分部Palo Alto研究中心( PARC )开发的。Xerox最早发明的是一个2Mbps的以太网,后来又和Intel 和DEC合作开发了出了10Mbps 的以太网,俗称(Ethernet II或Ethemet DIX),后来IEEE通过802委员会(802 Comitee)把Ethernet标准化为IEEE 802.3.它和Ethernetll十分相似。
在TCP/IP中以太网的IP数据报文的封装格式由RFC 894定义,IEEE802.3网络的IP数据报文封装由RFC1042定义。当今最常使用的封装格式是RFC894定义的格式,通常称为Ethernet II或者Ethemet DIX.
2.管理 MAC表
show mac address-table
clear mac address-table
绑定一个mac地址到一个接口
Switch(config)# mac address-table static机器的mac接口vlan vlan号
要取消用no mac addres s-static ....
以太网的数据链路层
在以太网中,针对不同的双工模式,提供不同的介质访问方法:
●在半双工模式下采用的是CSMA/CD的访问方式。
●而在全双工模式 下则可以直接进行收发,不用预先判断链路的忙闲状态。
半双工和全双工是物理层的概念,而针对物理层的双工模式提供不同访问方式则是数据链路层的概念,这样就形成了以太网的一个重要特点:数据链路层和物理层是相关的。
由于以太网的物理层和数据链路层是相关的,针对物理层的不同工作模式,需要提供特定的数据链路层来访问。这给设计和应用带来了一些不便。
为此一些组织和厂家提出把数据链路层再进行分层分为逻辑链路控制子层( LLC )和媒体访问控制子层MAC )。这样不同的物理层对应不同的MAC子层, LLC子层则可以完全独立。如图1-4所示。
1. MAC子层
MAC子层负责如下任务:
●提供物理链路的访问。
●链路级的站点标识 :在数据链路层识别网络上的各个站点。
●也就是说,在该层次保留了一个站点地址,即MAC地址,来标识网络上的唯一个站点。
●链路级的数据传输 :从LLC子层接收数据,附加上MAC地址和控制信息后把数据发送到物理链路上;在这个过程中提供校验等功能。
MAC子层是物理层相关的,也就是说,不同的物理层有不同的MAC子层来进行访问。在以太网中,主要存在两种MAC :
●半双工MAC :物理层运行模式是半双工时提供访问。
●全双工 MAC :物理层运行模式是全双工时提供访问。
这两种MAC都集成在网卡中,网卡初始化的时候一般进行自动协商, 根据自动协商的结果决定运行模式,然后根据运行模式选择相应的访问MAC.
MAC地址
MAC地址是烧录在网卡( Network Interface Contoller,NIC )的ROM里的
高位是individual/group位,当它的值为0时,就可以认为这个地址实际上是设备的MAC地址。当它的值为1时,就可以认为这个地址表示以太网中的广播地址或组播地址,或者表示TR和FDDI中的广播地址或功能地址。下一位是G/L位(也称为U/L,这里的U表示全局)当这-位设置为0时,就表示一个全局管理地址(由IEEE分配),当这一位为1时,就表示一个在管理上局部本地的地址(就像在DECnet中-样)以太网一直使用全局唯一地址。
2.以太网帧格式
PS :在以太网中,由于冲突的存在,共享介质上两台主机同时发frame ,将产生冲突。根据特定的算法,以
太网中, frame的最小长度为64字节。
PS :目前我们所使用到的以太网帧基本都是Ethemet II帧
IEEE802.3帧根据DSAP和SSAP字段的取值又可分为以下几类:
●当DSAP和SSAP都取特定值0xff时, 802.3帧就变成了Netware ETHERNET帧,用来承载NetWare类型的数据。
●当DSAP和SSAP都取特定值0xaa时, 802.3帧就变成了ETHERNET_SNAP帧。
ETHERNET_SNAP 帧可以用于传输多种协议。因此, SNAP可以被看作一种扩展,它允许厂商创建自己的以太网传输协议。
ETHERNET_SNAP标准由IEEE802.1委员会制定以保证IEEE802.3局域网和以太网之间的互操作性。
●DSAP和SSAP其他的取值均为纯IEEE802.3帧。
3. LLC子层
在前文的介绍中提到了MAC子层形成的帧结构,包括IEEE802.3的帧和ETHERNET_II帧。
在ETHERNET_II帧中,由Type字段区分上层协议,这时候就没有必要实现LLC子层,仅包含一个MAC子层。而IEEE802.3帧中的LC子层除了定义传统的链路层服务之外,还增加了一些其他有用的特性。这些特性都由DSAP、SSAP 和Control字段提供。
例如以下三种类型的点到点传输服务:
●无连接的数据包传输服务
目前的以太网实现就是这种服务.
●面向连接的可靠的数据传输服务
预先建立连接再传输数据,数据在传输过程中可靠性得到保证。
●无连接的带确认的数据传输服务。
该类型的数据传输服务不需要建立连接,但它在数据的传输中增加了确认机制,使可靠性大大增加。
下面通过一个例子来说明SSAP和DSAP的应用。假设终端系统A和终端系统B要使用面向连接的可靠的数据传输服务,这时候会发生如下过程:
A给B发送一个数据帧,请求建立一个面向连接的可靠连接。
B接收到以后,判断自己的资源是否够用(即是否建立了太多的连接) ,如果够用,则返回-个确认信息,该确认信息中包含了识别该连接的SAP值.
A接收到回应后,知道B已经在本地建立了跟自己的连接。A也开辟一个SAP值,来表示该连接,并发一个确认给B,连接建立。
A的LLC子层把自己要传送的数据进行封装,其中DSAP字节填写的是B返回的SAP,SSAP字节填写的是自己开辟的SAP ,然后发给MAC子层。
A 的MAC子层加上MAC地址和LENGTH字段之后,发送到数据链路上。
B 的MAC子层接收到该数据帧之后,提交给LLC子层, LLC子层根据DSAP字段判断出该数据帧属于的连接。
B 根据该连接的类型进行相应的校验和确认,通过这些校验和确认后,才向上层发送。
数据传输完毕之后, A给B发送一个数据帧来告诉B拆除连接,通信结束。
看完有没有瞬间清醒!
借此再来一个实操岂不是更快乐?