没有配置,比较枯燥,二可以认识线缆,
三比较重要,慢慢理解,事半功倍。
各位老少爷们,在下给大家说段以太网交换机原理,说得不好大家多多包涵,说得好呢,大家叫个好,有钱的帮个钱场,没钱的帮个人场,在下给大家鞠躬了。
一、以太网交换机的发展史
1.1 发展历史
早在1972年,Robert Metcalfe(被尊称为“以太网之父”)为Xerox公司设计了一套网络,把公司的计算机都连接起来。Metcalfe把这个网络正式命名为以太网(Ethernet),这就是最初的以太网试验原型,该网络运行在粗同轴电缆,速率为2.94Mbp。
1982年发布的标准,经过长期的发展,以太网已成为应用最为广泛的局域网,包括标准以太网(10 Mbit/s)、快速以太网(100 Mbit/s)、千兆以太网(1000 Mbit/s)和万兆以太网(10 Gbit/s)等。
在TCP/IP中,以太网的IP数据报文的封装格式由RFC894定义,IEEE802.3网络的IP数据报文封装由RFC1042定义。当今最常使用的封装格式是RFC894定义的格式,通常称为Ethernet_II或者Ethernet DIX。
上述摘抄自百度百科及华为官网,感兴趣的同学可以自行查询。
二、认识以太网
2.1 OSI参考模型
互联网发展初期,各个局域网自己玩自己的,语言不互通,所以ISO组织在1985年研究的网络互连模型,制度相关标准,就有OSI(Open System Interconnect),即开放式系统互连。OSI参考模型分为七层。一句话:从下往上-物、数、网、传、会、表、应。
网络工程师一般常常关注5层:物理层、数据链路层、网络层、传输层、应用层。(这块说法4层也对,不计较太多)
2.1.1 物理层
位于OSI参考模型的最底层,它直接承担数据传输的物理介质(即通信通道),物理层的传输单位为比特(bit),即一个二进制位(“0”或“1”)。就是最基本的电信号或光信号,是最基本的物理传输特征。物理层规定了以太网的基本物理属性,如电气特性或机械特性等。
2.1.2 数据链路层
OSI参考模型中的第二层,介于物理层和网络层之间。最基本的服务是将源设备网络层转发过来的数据可靠地传输到相邻节点的目的设备网络层。
由于物理层的不同工作模式,需要提供特定的数据链路层来访问。一些组织和厂家提出把数据链路层再进行分层,分为媒体接入控制子层(MAC)和逻辑链路控制子层(LLC)。
数据链路层 | LLC子层 |
MAC子层 | |
物理层 | 物理层 |
不同的物理层对应不同的MAC子层,LLC子层则可以完全独立。
网络层、传输层、应用层,就先不说了,这次主要聊聊交换机。每层各自有各自的功能,做不同的事情,总之不同层次定义相关协议,厂商会研制相关设备承载这些协议。
层次是按照相关协议来划分的,而不是设备。
以前也写过这类文章,可以看看,不同时期理解不同。
2.2 了解以太网物理层介质-线缆标准
2.2.1 常见线缆
名称 | 电缆 | 有效距离 | 速率 |
---|---|---|---|
10BASE-5 | 粗同轴电缆 | 500m | 10兆 |
10BASE-2 | 细同轴电缆 | 200m | 10兆 |
10BASE-T | 双绞线 | 100m | 10兆 |
10BASE-F | 光纤 | 2000m | 10兆 |
100Base-T4 | 四对三类双绞线 | 100m | 100兆 |
100Base-TX | 两对五类双绞线 | 100m | 100兆 |
100Base-FX | 单模光纤或多模光纤 | 2000m | 100兆 |
1000Base-LX | 多模光纤和单模光纤 | 316m | 1000兆 |
1000Base-SX | 多模光纤 | 316m | 1000兆 |
1000Base-TX | 超5类双绞线或6类双绞线 | 100m | 1000兆 |
10GBASE-T | CAT-6A或CAT-7 | 100m | 10000兆 |
10GBase-LR | 单模光纤 | 10km | 10000兆 |
10GBase-SR | 多模光纤 | 几百米 | 10000兆 |
2.2.2 常见光纤接口
2.2.3 认识光电转换器
2.3 CSMA/CD
CSMA/CD(Carrier Sense Multiple Access/Collision Detection),即:载波侦听多路访问/冲突检测。
CS:载波侦听
- 在发送数据之前进行侦听,以确保线路空闲,减少冲突的机会。
MA:多路访问
- 每个站点发送的数据,可以同时被多个站点接收。
CD:冲突检测
- 由于两个站点同时发送信号,信号叠加后,会使线路上电压的摆动值超过正常值一倍。据此可判断冲突的产生。
- 边发送边检测,发现冲突就停止发送,然后延迟一个随机时间之后继续发送。
2.3.1 工作过程
以太网设计初期,计算机及相关设备是共享一条物理链路连接在一起。
为避免通信故障,设备不停地检测链路状态,空闲时就进行发送,非空闲状态就等待。
如果两台/多台终端同时发送数据,必定会发生冲突,导致链路电信号不稳定。
当设备检测到信号不稳定时,就立即停止发送数据。
并且设备会发送干扰脉冲,然后等待一段时间(时间是随机的)之后再进行发送数据。
2.3.2 最小帧长
由于CSMA/CD算法的限制,以太网中,最小帧长为64字节,这是由最大传输距离和冲突检测机制共同决定的。
规定最小帧长是为了避免这种情况发生:A已经将一个数据包的最后一个Bit发送完毕,但这个报文的第一个Bit还没有传送到距离很远的B。B认为线路空闲继续发送数据,导致冲突。
2.4 双工模式与协商
双工模式:以太网的物理层存在半双工和全双工两种模式。
2.4.1 半双工
代表设备HUB。
- 任意时刻只能接收数据或者发送数据。
- 采用CSMA/CD机制。
- 有最大传输距离的限制。
2.4.2 全双工
代表设备网卡、交换机、路由器等。
- 同一时刻可以接收和发送数据。
- 最大吞吐量达双倍速率。
- 消除了半双工的物理距离限制
全双工从根本上解决了以太网的冲突问题,以太网由共享式转变为交换式,以太网从此告别CSMA/CD。
2.4.3 协商的由来
随着互联网的发展,全双工更好的解决CSMA/CD的冲突问题,但是依旧还有很多旧设备使用半双工的工作模式,全双工与半双工如何组网对接?于是,提出了自动协商技术来解决这种矛盾。
-
自动协商
使物理链路两端的设备通过信息交互自动选择同样的工作参数。自动协商的内容主要包括双工模式、运行速率以及流控等参数。一旦协商通过,链路两端的设备就锁定在同样的双工模式和运行速率。
2.4.4 自动协商的工作原理
-
网络设备间建立连接的一种方式,设备双方根据彼此工作模式信息的交集,按照双方都支持的最优工作模式建立连接。
-
使用双绞线连接的以太网:没有数据传输时,链路不是空闲状态,而是每隔16ms发送一个高脉冲,用来维护链路层的连接,这种脉冲成为NLP(Normal Link Pulse)码流;
在NLP码流中再插入一些频率更高的脉冲,可用来传递更多的信息,这串脉冲成为FLP(Fast Link Pulse)码流。
自协商功能的基本机制就是将协商信息封装进FLP码流中,以达到自协商的目的。
-
对于使用光模块和光纤连接的以太网:也是发送码流来进行自协商的,这种码流称为C码流,也就是配置(Configuration)码流。与电口不同的是,光口一般不协商速率,并且一般工作在双工模式,所以自协商一般只用来协商流控。
如果协商通过,网卡就把链路置为激活状态,可以开始传输数据了。如果不能通过,则该链路不能使用。
如果有一端不支持自动协商,则支持自动协商的一端选择一种默认的方式工作,一般情况下是10M半双工模式。
2.4.5 自动协商是一直协商吗?
自协商完全由物理层芯片设计实现,IEEE 802.3规范要求在下列任一情况下启动自协商:
- 链路中断后恢复
- 设备重新上电
- 任何一端设备复位
- 有重新自协商(Renegotiation)请求
除此之外,连接双方并不会一直发送自协商码流。自协商并不使用专用数据包或带来任何高层协议开销。
2.5 冲突域和广播域
2.5.1 冲突域
电信号冲突的范围。CSMA/CD该技术是个缓解方案,当一个共享带宽域内设备越来越多,冲突无法避免。
冲突域内所有终端设备竞争同一带宽,一个终端设备发出的报文(无论是单播、组播、广播)域内所有终端都可以收到。
那么如何解决冲突域?分割冲突域,分割电信号,引入一个设备-网桥。但网桥好是好,就是端口少,那就做个多端口的网桥-交换机,即:每个端口都是不同的冲突域。
上面说过全双工的工作模式+多端口网桥=现在市面上的最基本的交换机,冲突域拿捏!
2.5.2 广播域
一个广播数据所能传递的范围。因为网络中使用了广播,会占用带宽,降低设备的处理效率,必须对广播加以限制。
交换机很好,但解决不了广播,最经典的(搞不定全1,mac地址为FFFF-FFFF-FFFF的广播地址)即:默认情况下交换机所有接口都属于一个广播域。
那么如何解决广播域?路由器能隔离广播域,即: 每个端口都是不同的广播域。但是路由器成本高-贵、转发性能不高,那又有什么物美价廉的技术呢?VLAN 技术 (virtual local area network):虚拟局域网,分割广播源,广播域拿捏!
三、交换机的工作原理
3.1 二层交换机
我们知道交换机工作在OSI参考模型的第二层-数据链路层,它对数据包的转发是建立在MAC(Media Access Control )地址基础之上,交换机每个端口都是不同的冲突域,所以可以隔离冲突域。
交换机通过学习以太网帧的源MAC来维护MAC地址与接口的对应关系(保存MAC与接口对应关系的表称为MAC表),通过其目的MAC来查找MAC表决定向哪个接口转发。
解释一下:
形成MAC地址表【依靠的是源MAC】
- 交换机任意时刻在任何一个端口上,接收到数据。都会将该数据的源MAC地址,和数据入端口的对应关系记录下来,形成MAC地址表。
- 即:MAC地址 — 端口
查找MAC地址表【依靠的是目标MAC】
- 交换机在处理完源MAC地址,就会继续查看目的MAC地址,同时去MAC地址表中确认一下是否存在 目的MAC地址对应的条目。
- 查到该条目,则从端口发送出去;
- 没查到该条目,则进行广播/洪泛/泛洪;即,将数据从除了 入端口外 的 其他所有端口 都发送出去。
交换机核心工作表,就是维护MAC地址表,完成数据交换的工作。
3.2 三层交换机
三层交换机一般是通过VLAN来划分二层网络并实现二层交换,同时能够实现不同VLAN间的三层IP互访。
三层交换机并不路能完全替代路由器,由器所具备的丰富的接口类型、良好的流量服务等级控制、强大的路由能力等仍然是三层交换机的薄弱环节。
三层交换机维护MAC地址表、ARP表、三层转发信息表、直连路由表,完成数据交换工作。
源主机在发起通信之前,将自己的IP与目的主机的IP进行比较(用网络掩码计算后具有相同的网络号),会出现两种情况:
1.源主机IP与目的主机IP同一网段:
那么源主机直接向目的主机发送ARP请求,在收到目的主机的ARP应答后获得对方的物理层(MAC)地址,然后用对方MAC地址作为报文的目的MAC地址进行报文发送。
2.源主机IP与目的主机IP不同网段:
会通过网关(Gateway)来传递报文,即发送ARP请求来获取网关IP地址对应的MAC,在得到网关的ARP应答后,用网关MAC作为报文的目的MAC发送报文。此时发送报文的源IP是源主机的IP,目的IP仍然是目的主机的IP。
解释:
1与3.1二层交换机原理过程一样,源MAC学习,目的MAC查表,有则转发,无则除入端口之外广播所有接口。
2
- 首先源主机A发现自己与目标主机B不是一个网段,那么主机A就会向网关(也就是三层交换机)发送ARP请求。
- 当三层交换机收到ARP请求后,检查报文发现是自己的三层接口IP,所以就发送一个ARP应答给主机A,应答里面包含自己三层接口的MAC地址。与此同时,三层交换机将主机A的IP与MAC地址记录在自己的ARP表项中。
- 主机A收到三层交换机的ARP应答报文,开始正式封装ICMP请求报文,该报文包含目的MAC地址(三层交换机的)、源MAC(主机A)、源IP(主机A)、目的IP(主机B)。
- 三层交换机收到报文后,首先根据报文的源MAC+VLAN ID更新MAC表。然后,根据报文的目的MAC+VLAN ID查找MAC地址表,发现匹配了自己三层接口MAC的表项,说明需要作三层转发,于是继续查找交换芯片的三层表项;
- 交换芯片根据报文的目的IP去查找其三层表项,由于之前未建立任何表项,因此查找失败,于是将报文送到CPU去进行软件处理;
- CPU根据报文的目的IP去查找其软件路由表,发现匹配了一个直连网段(主机B对应的网段),于是继续查找其软件ARP表,仍然查找失败。然后三层交互机会在目的网段对应的VLAN下的所有接口发送请求主机B对应MAC的ARP请求;
- 当主机B收到三层ARP请求报文后,检查发现是自己的IP地址, 那么就会回复一个ARP应答报文给到三层交换机,该报文包含主机B的MAC地址。
- 三层交换机收到主机B的ARP应答后,将其主机B的IP和MAC对应关系记录到自己的ARP表中,并将主机A的ICMP请求报文发送给主机B,报文的目的MAC修改为主机B的MAC,源MAC修改为自己的三层接口MAC。同时,在交换芯片的三层表项中添加表项三层转发信息(内容包括IP、MAC、出口VLAN、出接口),这样后续的主机A与主机B的报文就可以通过该硬件三层表项直接转发了;
- 主机B收到三层交换机转发过来的ICMP请求报文以后,将ICMP应答报文发送给主机A。ICMP应答报文的转发过程与前面类似,只是由于三层交换机在之前已经得到主机A的IP和MAC对应关系了,也同时在交换芯片中添加了相关三层表项,因此这个报文直接由交换芯片硬件转发给主机A;
-
即“一次路由(首包CPU转发并建立三层硬件表项)、多次交换(后续包芯片硬件转发)”