精华内容
下载资源
问答
  • 总线式以太网到SDN交换机OpenVSwitch

    千次阅读 2019-12-11 22:42:08
    最开始的以太网总线以太网,所有的站点主机均连接在一条总线上,通过网桥可以连接两根总线: #####pic 此时以太网的所有操作均在站点主机侧完成。总线以太网唯一的智能操作就是传输仲裁,这个是通过CSMA/CD来...

    本文结合自己的经历梳理一下SDN交换机的脉络。

    史前

    注定爆发的,必有缘由。

    以太网已经发展了30~40多年,我们必须从头说起。

    经理应该除外,经理不必关注这些。

    总线式以太网

    最开始的以太网是总线以太网,所有的站点主机均连接在一条总线上,通过网桥可以连接两根总线:
    在这里插入图片描述
    此时以太网的所有操作均在站点主机侧完成。总线式以太网唯一的智能操作就是传输仲裁,这个是通过CSMA/CD在主机网卡来完成。

    总线以太网的特征在于: 中间没有盒子! 此时专门的网络厂商非常少,因为它们发挥的作用非常有限,对于广域传输,嫁接在传统的通信网即可,网络厂商几乎生产不了任何除了网桥之外有用的设备!

    关于以太网的理论细节,参见:
    https://blog.csdn.net/dog250/article/details/91350133
    https://blog.csdn.net/dog250/article/details/90446782
    https://blog.csdn.net/dog250/article/details/90340322

    交换式以太网

    随着站点主机的增加,传输仲裁方式必须改变,CSMA/CD的分布式仲裁变得不再适用,取而代之的是集中式仲裁,交换式以太网取代总线以太网。

    以太网交换机出现了。

    随着TCP/IP成为事实上的标准,IP路由器也开始遍地开花,网络上从此布满了越来越多的盒子。

    在某种现实意义上,这意味着 “计算机”“网络” 开始分道扬镳了。

    计算机领域在几乎同期被Intel的x86架构迅速统一了底层硬件平台,逐渐走上了纯软件化的可编程路线。程序员属于这个阵营。

    网络领域则正好相反,各个专门生产网络盒子的厂商寒武纪大爆发,走向了专门的定制硬件和定制协议路线,程序员探究网络设备内幕的路子也被设备厂商封死。网络工程师属于这个阵营。

    从此,程序员和网工交集甚少。

    各个厂商的路由器,交换机各有各的风格,操作接口不一致,甚至出现了很多私有协议,如此一来,互操作便不再可能,这些盒子相当于一个个的黑盒子。用户必须选择或者拒绝某个厂商的整个解决方案,而不是某一款产品。

    这个阶段催生了一类巨无霸公司以及一类专业的职业:

    • 公司:Cisco,Juniper,H3C,华wei(不让提这名字就不提)等。为了占领解决方案市场,斗争激烈。
    • 职业:CCIE,CCNP,HCSE等认证工程师。每一类设备就需要一类专门的操作员。

    这几乎和计算机软件领域隔行如隔山,软件企业的程序员不需要知道什么是BGP,而网络设备厂商的工程师也不必学习Java。

    对于我自己而言,我是被迫夹在二者中间。


    以交换机为例,虽然很多厂商都生产交换机,但这些交换机在逻辑上其实都是很简单的。这些交换机无非也就是实现以下的功能:

    • 按照ingress port/source MAC学习生产Port/MAC映射表。
    • 按照Port/MAC映射表进行自转发。
    • 实现STP协议。
    • 可选实现其它802.3族标准。
    • 可选实现ACL,防火墙等。

    说白了,所谓的交换机就是一台转发数据包的机器,最简单的交换机当然就是以太网交换机,它的转发策略就是 “根据Port/MAC映射表就行转发” , 事实上,后面我们可以看到,所谓的三层交换机,路由器,SDN交换机它们和以太网交换机都没有本质的区别,都是数据包转发设备,它们的区别仅仅在于 “流表” 不同,对于以太网交换机而言,它的流表就是Port/MAC映射表。

    如果厂商们提供的交换机一致,便无法区分它们,于是厂商的方略便是:

    • 采用更好更贵的硬件提高性能。
    • 采用私有协议制造门槛。

    好吧,Cisco最爱干这事。

    软网桥:Linux bridge

    Linux的出现让事情开始发生变化。

    Linux正是Linus为了在自有的x86机器上运行一个系统而被迫开发的,所以我们对比现在的结论,事实上SDN最终也几乎x86化,在1990年就埋下了种子。

    当然,除了Intel网卡,不能忽略Netronome,Mellanox。Intel网卡的优势就是可以集成自家的芯片,又可以到主机CPU用DPDK来offload。

    我对Linux bridge是再熟悉不过了,2010年我面试一家公司的时候就被问到了Linux bridge,当时回答的还算可以,然而在当时也只是纸上谈兵。

    机缘巧合,我在2012年开始接手一个摊子铺的很大的网关产品。既然也是一个部署在网络上的盒子,这意味着我们要做和网络设备厂商一样的事,但是由于我们只做软件,所以我们不能像那些巨无霸设备厂商一样做板卡和系统的定制开发。

    我们能做的只是修改Linux内核协议栈,并且 “用软件实现一个满足需求的交换机。”

    Linux bridge只能实现以太网交换机的标准功能:

    • 自学习。
    • 自转发。
    • STP协议。

    它没有能力实现防火墙和NAT,而我们的产品需求中偏偏有这个。

    事后来看,简单配置一个OVS就能满足需求,我们按照tuple匹配数据包并添加到流表,并设置DROP action即可。只是在2012年产品预研阶段,我们没有OVS。

    Linux bridge提供的 nf_call_iptables 这么一个有用的机制:

    • 被bridge处理的数据包可以穿过IP层的Netfilter HOOK链。

    在这里插入图片描述

    这已经是一个事实上的SDN模型了,虽然并不是标准的。

    我们知道iptables可以配出几乎所有的ACL/防火墙/mangle需求,如果实在不行,那就求助于xtables-addons,如果还不行,那就照猫画虎自己写一个match/target,而我自己在那些年也写了很多。

    如此一来,Linux bridge配合Netfilter几乎可以满足需求了。唯一的问题在于iptanles规则集超过8000条后的单机性能问题。

    连续几个月,我大部分的时间和精力都投入到了Netfilter的性能优化,关于nf_conntrack的优化自然不必再说,这里列出几个关于iptables规则预处理的优化(这些文章是后面补的,在产品研发上线阶段,哪有时间写这些):
    ipset高大上性能果断将nf-HiPac逼下课
    https://blog.csdn.net/dog250/article/details/41171643/
    可编译易用的模块化nf-HiPAC移植成功
    https://blog.csdn.net/dog250/article/details/41383897
    玩转高性能超猛防火墙nf-HiPAC
    https://blog.csdn.net/dog250/article/details/41289217
    iptables高性能前端优化-无压力配置1w+条规则
    https://blog.csdn.net/dog250/article/details/77618319
    探索iptables BPF模块的悲惨历程
    https://blog.csdn.net/dog250/article/details/9103817
    使用iptables的bpf match来优化规则集-HiPAC/ipset/n+1模型之外的方法
    https://blog.csdn.net/dog250/article/details/77790504


    Linux bridge的意义在于:

    • 它在通用Linux上软实现了一个交换机并且可以跑在通用x86平台上,验证了可编程交换机的可行性,相当于一个POC。

    然而,通过Linux bridge实现软件交换机的并不多,即使后来也没有。因为,SDN来了,OVS来了。

    无论如何,Linux bridge,包括Linux的IP forward都为程序员探究网络打开了一个口子,而且这个口子越开越大。

    SDN软交换机:OpenVSwitch

    小溪可以汇成洪流,当有越来越多的需求传统网络设备厂商满足不了的时候, 可编程 的优势就凸显出来了!

    随着云业务需求的爆发,虚拟化技术飞速发展。

    系统管理越来越不能忍受数据中心机房里堆满的那些又占地方又傻瓜的交换机设备,同样不能容忍的是配置一条交换机命令必须由行动缓慢的厂商认证的网络管理员来操作。

    云计算业务不再需要系统管理员和网络管理员的职责边界,这是导火索,直接导致了SDN时代的到来!

    如果说业务无关的核心传输网络需要专业的网络管理员来管理还可以理解,那么数据中心这种业务重地,势必就要网工网管免进了。

    插句玩笑话,如果交换机是可编程的,那便可以彻底踢开不懂编程只会敲特定厂商设备命令行的网工网管了吧。

    SDN概念的发生,发展本文不谈,那是学术圈的事,我们关注的是,它的标准已经在事实上确定了,这些标准包括但不限于SDN各组件间的编程接口和通信协议,虽然学术界和业界对此均尚未达成一致,但我们能看到的是, 各种“可以互操作”的自研交换机 已经在各大云厂商的数据机房遍地开花了。

    有了编程标准和协议标准,实现一个交换机便不是什么难事,其实我上面的Linux bridge/Netfilter交换机按照这些标准进行重构,也是一个自研实现。

    软实现

    OpenVSwitch是一款很好用的SDN软件交换机,详见:
    https://www.openvswitch.org/

    前面提到过,SDN交换机本质上和以太网交换机是一致的,都是数据包转发设备,不同的是SDN交换机的转发策略更加灵活,而以太网交换机只有Port/MAC映射转发一种策略。

    策略的灵活性表现在SDN交换机拥有 “可编程的复杂流表” ,由于其灵活的可编程特征,必然以性能为代价,所以它必须作为一个独立的控制面存在,而数据面则作为流表项的cache用来做快速转发。

    因此,OpenVSwitch的数据面在内核态实现转发,这个类似于Linux bridge,而用户态的
    ovs-vswitchd守护进程则作为控制面存在。和标准的offload机制一样,OVS也会执行下面的逻辑:
    在这里插入图片描述

    更加直观的一幅来自OVS设计Paper的经典图示:
    在这里插入图片描述
    关于流表和cache的事情,参考一篇Paper就够了:
    http://www.openvswitch.org//support/papers/nsdi2015.pdf
    我会再写一篇文章,谈谈我自己对流表cache的理解,可能稍微和OVS作者们有所不同。

    Linux switchdev模型

    如果仅仅是软件实现一个OVS并打成包,那实在就是开发者的自娱自乐了,真正可部署的交换机还是需要硬件实现,换句话说,软件OVS仅仅是一个高版本的另一个POC,应付高性能场景,专有硬件offload必不可少。

    专有转发硬件与Linux的接口依然不够友好,厂商可以让自己的硬件支持Linux,然而必须配以厂商专用的软件工具,换句话说,Linux没有针对硬件的通用驱动接口来实现对交换机的配置。

    Linux的switchdev模型完成了这一使命:
    https://lwn.net/Articles/675826/

    我们来看一个关于switchdev的框图,来自Linux内核Document的 Documentation/networking/switchdev.txt :
    在这里插入图片描述

    HW Offload自研交换机

    统一的配置接口OpenFlow/OVS有了,统一的驱动接口switchdev有了,剩下的就是设计硬件并编写代码实现这些接口了,硬件可以交给硬件团队来做,以下三类实现形式可供选择:

    1. ASIC实现。
    2. FPGA实现。
    3. NFP实现。

    编写代码这种事那便是程序员的专场了,于是你看,阿里,腾讯,百度,均有自己的自研交换机团队,你看,程序员都来靠编程做网络设备了,你看,这就是软件定义网络了。


    有趣的是,传统的巨无霸厂商也在逐渐往通用处理上靠了,比如数据面也有ARM/NFP实现的了。

    历史一次又一次证明,使用专用硬件是得不偿失的,它只能在最开始稍微制造点性能门槛,而性能问题,时间总是可以解决的。

    回到最初

    我们可以预见,机房里的景色回到了总线式以太网的最初:
    在这里插入图片描述
    没有盒子 的样子。


    浙江温州皮鞋湿,下雨进水不会胖。

    展开全文
  • CSMA/CD总线以太网和交换式以太网

    千次阅读 2019-06-09 08:24:00
    为什么以太网最初没有采用TDM或者FDM或者随便别的什么xxDM,而是采用随机统计分时复用的CSMA/CD呢? 以太网流量是突发的 以太网流量不要求实时 以太网无连接 其实,甚至 冲突检测 都是次要的,它只是优化,而并非...

    在规划一群计算机如何使用网络介质传输数据包而不是一群人如何使用电话线实时通话的时候,不得不换一种思路。

    为什么以太网最初没有采用TDM或者FDM或者随便别的什么xxDM,而是采用随机统计分时复用的CSMA/CD呢?

    • 以太网流量是突发的
    • 以太网流量不要求实时
    • 以太网无连接

    其实,甚至 冲突检测 都是次要的,它只是优化,而并非核心。有冲突就要有退避,所以,紧随着冲突,以太网采用的二进制指数退避,也并非核心!如果把所有的冲突检测以及退避机制都交给上层,那么保留一个核心的简洁以太网模型来分析是必要的。

    只需要假定以太网流量符合泊松分布就足够了。在基于这个假设的结论进行分析之前,必须先来看一下 为什么冲突并非核心。 不然就不敢随意抛弃它。

    如果一个站点已经检测到信道空闲,那为什么还会有冲突呢?因为数据帧的传输是有传播时延的,数据帧传输速度有上限,即光速cc,也就是说对于每一个站点的冲突检测机制来讲,它有一个所谓的 视界 视界外面的东西,站点是检测不到的。

    • 站点只能检测到数据帧到达目的地之前Lc\dfrac{L}{c}(LL为线缆长度)时间的冲突!

    所以说,冲突是由光速极限引起的,这种物理世界的局限,或者你说缺陷也行,冲突并非由算法导致,所以冲突并非核心。

    然而,日常物理世界诺大的光速到了纳秒,微秒,毫秒计时的计算机网络世界,却是一个非常日常的参数。所以,虽然它不是算法的核心,但是引发的冲突导致的重传将会极大影响以太网的效率。


    按照假设,以太网的流量符合泊松分布,忽略复杂的二进制指数退避,再假设重传概率是常数,那么信号的效率EE可以表示为:

    E=11+2BLeclE=\dfrac{1}{1+\dfrac{2 B Le}{cl}}

    其中,BB为带宽,LL为线缆长度,ll为帧长度,ece,c为常数。

    由此,LL越长,BB越大,CSMA/CD的效率就越低,反之,帧长ll越长,效率就越高!所谓的以太网最小帧长度64B,普通帧长度1500B,理论上都是可以从这公式里算出来的,之所以我们现在都接受1500B是以太网卡的普遍MTU,其实是因为这样在泊松分布的假设下效率最高。

    所以说,随着对带宽需求的提高,对距离的需求提高,CSMA/CD逐渐变得不再适用,也因此,后来的千兆,万兆以太网,干脆不再支持CSMA/CD了。当然,CSMA/CD时代的1500B这个默认MTU值,作为以太网的标志依然被兼容性地保留了下来。


    由于CSMA/CD的冲突是光速固有极限带来的,所以在时间域上我们没有办法消除。

    要想消除冲突,必须将时间域上的统计分时复用转换到空间域上的统计缓存复用。

    在时间域的CSMA/CD时代,统计分时复用机制是分布在每一个站点上被实现的,这就是 介质访问子层 的作用,如果转换到了空间域的缓存统计复用,那么介质访问子层便不再需要,有帧就直接发,所有的分布式介质访问子层的功能将统一集中于交换节点的队列管理系统。

    这就是交换式以太网,在纯交换式以太网中,已经不再需要CSMA/CD,交换机取代了介质访问子层的作用。当然,在工程上,兼容是必须的,所以,支持CSMA/CD并不意味着一定就采用了它。


    说回冲突。

    在时间域上,同一个时间槽,只能有一个帧在传输,如果别的帧也传输了,就会造成冲突,两者皆退避。

    在空间域上,发生着完全相同的事情。

    同一个缓存位置,只能有一个帧占据,如果同时来了两个帧,针对该位置,那就是冲突了。然而队列机制可以将这次冲突暂时 积累 下来,使用 下一个位置 ,和时间域不同,时间只能纵向延展,而空间域则可以横向扩展。

    最终,当空间域用尽了整个缓存后,需要将积累的冲突进行一次性惩罚,即积累式退避,这就是AIMD中MD的意义,其实就是空间域的积累式指数退避。积累式退避也是空间域的,即可发送字节数的MD,而不是等待时间MD。

    介质访问子层功能在交换式以太网时代已经被架空了,事实上它也控制不了 什么时候发送 ,它只需要知道能发多少就是了。


    这就是总线式以太网向交换式以太网进化过程中背后的故事。

    值得一提的是,不要纠结于为什么以太网流量符合泊松分布,事实上,以太网流量根本就不符合泊松分布,之所以采用这个泊松分布假设,是因为在数学上比较容易处理,其背后的假设也是合理的:

    • 数据帧的发送是独立的随机事件。

    浙江温州皮鞋湿,下雨进水不会胖。

    展开全文
  • 基交换式以太网实现多现场总线集成rar,现场总线; 交换式以太网; 信息集成; 变电站自动化
  • 以太网

    千次阅读 2018-03-17 11:20:34
    3.0以太网发展过程与内容简介以太网是当今最广泛的局域网。... 最初以太网是总线式以太网(共享式以太网)以太网交换机诞生,共享式以太网转变为交换式以太网交换导致大量MAC帧广播导致危害,VLAN出现三层交...

    3.0以太网发展过程与内容简介

    以太网是当今最广泛的局域网。

    1、 传输媒体从采用同轴电缆到双绞线缆和光纤

    2、 从共享式以太网发展到交换式以太网

    3、 出现VLAN和三层交换技术

    4、 从低俗以太网发展到高速以太网

     

    同轴电缆缺点:太硬不适合布线

    双绞线和光纤联合布线。

     

    最初以太网是总线式以太网(共享式以太网)

    以太网交换机诞生,共享式以太网转变为交换式以太网

    交换导致大量MAC帧广播导致危害,VLAN出现

    三层交换机结合路由器和交换机,三层交换机完美的解决了以太网VLAN划分,VLAN通信和VLAN间通信的问题。

    以太网速率从低速到高速。

     

    3.1总线型以太网

    拓扑结构:简单

    距离问题:互联起来的终端距离有什么要求呢?

    中继器:完成信号再生。

    功能需求:发送和接收

    发送方:

    数据封装:发送端以帧发送,接收端以帧接收

    帧对界问题:

    检测总线状态:任何一个时刻只能有一个终端往总线上发送数据

    发送端空闲时才能发送

    公平竞争总线:有一种机制保证发数据且公平。

    寻址:每一个终端能够判断自己是不是该接收数据

    所以综合起来,需要考虑的问题有:寻址,公平竞争总线,数据封装,帧对界,数据与信号转换,检测总线状态。

    TCP/IP网络接口层往下是传输网络,比如以太网,令牌环网,SDH等

    以太网网络接口层以下的传输网络是以太网分为物理层和MAC层

    物理层:帧对界,数据与信号转换,检测总线状态

    MAC层:寻址,公平竞争总线,数据封装;

     

    总线式以太网物理层实现方法:

    基带传输和曼彻斯特编码

    基带传输:用基带信号实现数据传输

    基带传输需要解决:如何用基带信号表示和还原数据

    特性:幅度,人工确定;宽度:码元长度

    码元长度与数据传输速率有关,可以进行计算

    怎么控制码元长度呢?设置时钟

    让时钟周期与码元相同。

    10MHz时钟来控制10Mbps数据传输速率。

    要求发送方与接收方的时钟频率一致,但是有误差累计,让接收端隔几位校正一次。校正指的让接收端的时钟周期开始位置与码元的起始位置一致。码元的起始位置可以通过跳变来让接收端检测到。

    如果一直0和1会没有变频部分就没办法校正

    曼彻斯特编码出现了

    曼彻斯特编码:实现位同步,用曼彻斯特编码中间跳变的地方来同步接收端的时钟信号。

    每一个数字都有跳变,由此可以判断若有跳变则总线上有数据在传输,如果没有跳变则总线处于空闲状态。

    曼彻斯特编码传输一个二进制位变成两个码元。所以此时波特率=2*数据传输速率,波特率的提高对信道的带宽要求提高了。

    当传输速率提高到100Mbps以上的时候就不用曼彻斯特编码了。

     

    MAC层功能实现方法:数据封装MAC帧

    MAC地址就是PC的网卡地址,由4个字节48位二进制位组成。总线上的一台电脑可以跟一台或者多台PC发送消息,所以MAC地址分为单播地址,组播地址和广播地址。

    MAC地址最后一位置0表示单播地址;

    MAC地址最后一位是1表示组播地址;

    MAC的48位全部置1表示广播地址。

    MAC帧:

    (类比信封的格式)

    目的地址+源地址+数据

    进一步考虑,网络里面数据类型是可以不一样的,可以是IP分组也可以是ARP请求等等,不同类型数据接收端接收后送给不同的进程来完成。IP进程,ARP进程。

    所以要增加数据类型字段

    目的地址+源地址+数据类型+数据

    为了检测数据是否正确还要增加检错码。

    目的地址+源地址+数据类型+数据+FCS

    数据字段是真正要传输的字段,是MAC帧的净荷字段,长度是46~1500个字节。

    设置上限的原因:

    一是接收端的缓存空间有限

    二是数据太长,一旦失败损失很大

    三是每个终端不能一次占用的时间太长

    帧对界(物理层实现)

    曼彻斯特编码使得总线数据传输状态和空闲状态是不一样的。

    两个帧之间至少存在一段总线的空闲时间,使得接收端把属于每一帧的二进制位流分割开来。

    为了帮助物理层的帧对界功能,MAC层在首部加入先导码和帧开始分界符,,先导码是7字节二进制位流类似10101010组成的一组编码,之后是帧开始分解符,1字节10101011组成的一组编码告诉接收端这个编号之后真正的MAC帧开始了。

    先导码+帧开始分解符+目的地址+源地址+类型+数据+FCS

     

    CSMA/CD算法:

    MAC层有个任务:让终端公平竞争总线

    CSMA/CD算法是为了让终端公平竞争总线而设计的一种算法。

    CSMA/CD:载波倾听,多点接入,和冲突检测

    (Carrie Sense Multiple Access withCollision Detection)

    总线式以太网是半双工通信。

    1、 先听后讲:侦听总线是否有载波,检测到没有进行下一步

    2、 等待帧间最小间隔:当检测到总线空的时候,并不是马上就可以发送数据,二是要等待一个小时间段。设置帧间最小间隔的原因:

    发送端发送两个MAC帧是同一个终端,需要给接收端留出时间去腾出缓冲空间。

    避免一个终端连续发送多个MAC帧。

    让终端正确检测到先导码和帧开始分界符

    3、 边听边讲:检测是否发生了冲突,若发生冲突采取措施,没有发生冲突才能继续发送。

    发生冲突则发送阻塞信号告诉总线上的所有终端此时有冲突发生,然后停止发送,后退等待一段时间,进入第四个步骤,就是退后再讲。

    后退算法:

    后退算法要求:

    1、 每一个终端生成的延迟时间都是随机的,并且相互独立;

    2、 最小延迟时间最小为0,并且只有一个为0

    3、 所有终端的平均延迟时间尽可能小。

    后退算法:

    1、 K为重估次数。初始的时候K=0,每发生一次冲突,K就+1,但K不能超过10,因此

    K=min{冲突次数,10}

    2、 从整数集合{0,1,。。。,2^k-1}中随机选择某个证书r

    3、 根据r计算出后退时间T=r*t(t:协议规定的时间,不哦那个传输速率t不同)

    4、 如果某个终端连续重传了16次都检测到冲突发生则终止传输,并向高层协议报告。

    这是一种自适应的后退算法,少量终端发生冲突可以减少终端的平均延迟时间;大量终端发生冲突不断增大整数集合尽量有终端能争取到使用权。

    CSMA/CD算法缺陷:

    1、 只适应轻负荷

    2、 存在捕获效应

    3、 存在最短帧长与冲突域直径之间的制约

    1、 有大量终端发送数据时冲突概率比较大,这样导致总线上的终端不是处于终端与别的终端冲突中,就是处于延迟等待状态。导致总线利用率低。

    2、 捕获效应:如果两个终端都想连续发送数据,经过CSMA/CD延迟之后,一个终端长时间内一直争到总线发送数据,另一个终端长时间内一直争不到总线发送数据。

    3、 冲突域直径:冲突域里相距最远的终端,我们一般用发送此距离的时间t表示。

    CSMA/CD是边发送边检测,只有在发送的时候检测到冲突才有意义。考虑一种极端情况。A发送MAC帧,经过t到达B,此时B正好要发送数据所以产生冲突,B向A发送一个阻塞信号,A过t才能接收。这就意味着终端A发送一帧MAC帧的时间大于等于2t的时候,才能检测到这种情况下发生的冲突。

    2t发送时间的MAC帧长度为最短帧长。

    最短帧长=2t终端发送速率

    t在以太网标准里面是有规定的,比如10Mbps以太网标准规定t=5.6us,算出来的最短帧长是64B

    继续考虑这种特性会对网络的发展带来什么影响:

    若t不变,以太网100Mbps最短帧长上升到640B,就算只发送两个字节也必须要扩充到640个字节。

    若最短帧长不变,100Mbps的t=2.56us,无中继器的冲突域直径为512m

    以此类推:

    冲突域直径与最短帧长存在制约关系,这种制约关系严重影响了网络速度的发展。

    所以,总线型以太网走到尽头,必须改革!

     

     

    3.2网桥与冲突域分割

    由于CSMA/CD存在适应轻负荷,存在捕获效应,L与t之间制约等问题,解决思路考虑减少终端和减少冲突域直径

    网桥分割冲突域的基本原理:把大的以太网冲突域分割成若干个小的冲突域,让每个冲突域里的终端数量减少,距离缩短,然后用一个设备把这些冲突域连接起来,这个设备称为网桥。

    网桥的两个端口和其他终端的作用是一样的,可以收也可以发。

    集线器把信号从一个端口接收以后再生后从另外一个端口发出去。

    网桥不同,网桥的作用主要有:

    隔断电信号,使得不同冲突域不会干扰

    转发MAC帧。

    但是网桥不是所有MAC帧都转发,网桥收到一个MAC帧以后发现若是在同一冲突域则丢弃,不同冲突域转发。

    网桥如何判断MAC帧的源和目的终端是否位于网桥不同端口连接的冲突域中呢?

    网桥有转发表

    MAC地址+转发端口

    发送和接收端口是同一个说明不需要转发,不同在不同的冲突域需要转发。

    网桥是可以有多个端口的,连接多个冲突域。

    网桥从端口1收到MAC帧,若装发表中找不到目的MAC地址,则从端口1以外的所有其他端口广播此MAC地址,有转发项,端口相同丢弃,不同转发。

    转发表的来源;

    网桥自动学习。

    可以利用源MAC地址判断源终端连接在网桥的哪个端口上的。根据源MAC地址到转发表中查找,没有查找到的话可以把源终端所连接的端口号加到转发项,之后设置定时器。查到转发项更新端口(位置可能变了)以及定时器。设置定时器:某终端发送数据后可能地理位置移动了,所以信息有可能错误,这个终端再也不会在这个物理位置发送数据了。所以要把经过一段时间没有发送MAC帧的终端删掉,所以设置定时器。

     

    网桥分割冲突域,冲突域还是存在的。

    但是如果网桥端口和网桥端口连接的终端之间采用全双工通信则消除了冲突域。

    总结:网桥是一个分组交换设备,是以太网从共享到交换的转变,以太网进入到一个新的发展时期。

     

     

    集线器是一个多端口中继器,端口支持的传输媒体类型通常为双绞线。集线器用一对双绞线作为输入,用另一对双绞线作为输出,但是任何一个终端发送数据的时候,连接在集线器上的其他终端的输入端口都会接收到发送信息,所以连接在集线器上的终端任何时候也只能有一台终端发送数据。

    用集线器连接终端方式构建的以太网仍然是一个共享式以太网。

     

    3.3交换式以太网与VLAN

    网桥的工作过程让大量MAC帧在网络中广播方式传播,会给以太网造成危害,VLAN可以

     

    广播域:所有网桥以广播方式输出MAC帧时MAC帧遍历的网络范围。

    一个大的广播域可能包含多个冲突域。

    如果网桥与网桥,网桥与终端之间是全双工通信的话,广播域中就不存在冲突域。

    广播在以太网中的危害:

    一是浪费网络链路带宽和网桥,终端的处理能力。

    二是引发安全问题。数据里面可能包含密码等私密信息遇到坏终端。

    有两种情况必须广播:

    网桥建立完整转发表之前,广播;

    大量网络协议都是广播协议,广播。

     

    广播不可避免,存在危害。

    解决方法:缩小广播域:减少资源浪费

                         避免引发安全问题:将有相同工作特性和安全等级的终端划分在一个广播域里面,这种划分具有物理位置无关性,广播范围动态性(安全等级变化)

    VLAN:划分物理以太网产生的每一个广播域等同于一个逻辑上独立的以太网,由于这些逻辑上独立的以太网存在于同一个物理以太网中,因此被称为虚拟局域网(VLAN)

    VLAN特性:

    1、 划分VLAN:不需要改变已经有的以太网的物理结构。

    2、 改变VLAN不需要改变已有以太网的物理结构

    3、 终端归属于哪个VLAN,与终端在物理以太网中的位置无关。

     

    网桥:具有地址学习,MAC帧转发等分组交换功能的设备

    以太网交换机(交换机);增加了VLAN划分以及其他一些增强网络性能的功能的设备

    以交换机为分组交换设备构建的以太网称为交换式以太网。

    VLAN的划分过程:

    确定属于每一个VLAN的交换机端口;

    在属于相同VLAN的端口之间生成交换路径。

    单交换机VLAN划分过程:

    在一个交换机里设置划分广播域相当于逻辑上的多个集线器分割的广播域

    跨交换机VLAN划分:

          

    跨交换机VLAN划分:

    将物理以太网中不同交换机中的任意端口组合分配到某个VLAN中

    建立这些交换机端口之间的交换路径

    端口配置原则:

    允许:将属于不同交换机的多个端口分配到同一个VLAN

    保证:同一VLAN中任何两个端口都存在交换路径

    采用一种方式。比如两个交换机,交换机1中的A端口要和交换机2的D端口划分在同一个VLAN中,可以将交换机1的B端口和交换机2的C端口相连。

    存在问题:

    一是交换机端口浪费,每个跨交换机的VLAN都要有两个端口来建立交换机之间的交换路径。

    二是交换机之间的物理链路数量是不确定的,随着跨交换机VLAN数量的变化而变化。与VLAN划分要求,地理位置无关性和VLAN范围变化无关性是相违背的。

     

    802.1Q

    考虑交换机1和交换机2之间建立共享端口可以让多个VLAN域共享

    但是这样一来就存在共享端口收到MAC帧不知道往哪儿转发的问题了。可以在MAC帧里面加上一个VLAN的标记

    VLAN标记以8100H开头,有VLAN ID

    802.1Q帧格式:

    把携带有VLAN标识符字段的MAC帧结构称为802.1Q帧格式。

     

    确定MAC帧所属VLAN规则

    端口分类:

    共享端口:同时属于多个VLAN

    接入端口:只属于单个VLAN

    混合端口:具有共享端口和接入端口双重功能

    对于共享端口:

    MAC帧需要携带VLAN标识符

    携带的VLAN标识符与共享端口所属的VLAN范围一致。

    根据MAC帧携带的VLAN标识符确定该MAC帧所属的VLAN

    接入端口:

    MAC帧不能携带VLAN标识符

    根据输入MAC帧的端口确定该MAC帧所属的VLAN

    混合端口:

    对于携带VLAN标识符的MAC帧,且携带的VLAN标识符与共享端口所属的VLAN范围一致,根据MAC帧携带的VLAN标识符确定该MAC帧所属的VLAN

    对于没有携带VLAN标识符的MAC帧,根据输入MAC帧的端口确定该MAC帧所属的VLAN

                                                                          
    展开全文
  • 冲突域(collision domain):所有直接连接在一起的,而且必须竞争以太网总线的节点都可以认为是处在同一个冲突域中,说白了就是一次只有一个设备发送信息,其他的只能等待。 广播域(broadcast domain):广播域是...

        冲突域(collision domain):所有直接连接在一起的,而且必须竞争以太网总线的节点都可以认为是处在同一个冲突域中,说白了就是一次只有一个设备发送信息,其他的只能等待。

        广播域(broadcast domain):广播域是一个逻辑上的计算机组,该组内的所有计算机都会收到同样的广播信息。

        共享式以太网:所有物理端口在同一个冲突域,所有物理端口在一个广播域。

        交换式以太网:每个物理端口是一个独立冲突域,所有物理端口在一个同一个广播域。

    转载于:https://my.oschina.net/u/1996355/blog/350999

    展开全文
  • 目录以太网概述总线以太网结构及功能需求各层功能基带传输和曼切斯特编码MAC地址及帧CSMA/CD算法集线器和星形以太网结构 以太网概述 时间 事件 1973 ALTO ALOHA网络 1979 DIX以太网1.0规范(DEC硬件 ...
  • 星形网,总线网,环形网,树形网 当时很可靠的星形拓扑结构较贵,人们都认为无源的总线结构更加可靠,但实践证明,连接有大量站点的总线式以太网很容易出现故障,而现在专用的ASIC芯片的使用可以讲星形结构的集线器...
  • 摘要:为了实现低功耗以太网接口电路的设计,同时满足兼容多种微处理器的目的,本文采用低功耗并支持SPI及Non-PCI总线以太网控制器AX88796C作为核心芯片,提出了一种低功耗以太网接口电路的设计方案,同时给出了...
  • 一、AFDX发展概述①新一代航空电子系统的通信业务已经从传统的数据、话音通信扩展为高速 数据、图像、多媒体等多种业务,传统的以ARINC 429或Mil-STD-1553总线 构架的信息传输网络不足以达到如此高的带宽和速率等...
  • 工业以太网和CAN现场总线比较

    千次阅读 2014-06-20 09:15:02
    基于TCP / IP的以太网是一种标准开放的网络,由其组成的系统兼容性和互操作性好,资源共享能力强,可以很容易的实现将控制现场的数据与信息系统上的资源共享;数据的传输距离长、传输速率高;易与Internet连接,低成本、...
  • 研究一种采用通用以太网物理层元件和FPGA器件构成的现场总线FED(Fieldbus based on Ethernet Devices),在片上系统(soc,System On Chip)上开发出实用的现场总线通信装置.FED不需要复杂的驱动程序就可以实现链路...
  • 现场总线是应用在生产现场,在微机化测量控制设备之间实现双向串行多节点数字通信的系统 ,也被称为开放 ,数字化 ,多点通信的底层控制网络 。在整个工厂的控制网络中 ,现场总线处于重要的基础地位。讯记科技...
  • Technorati 标签: 存储 第一章 以太网 第二章 共享总线式以太网 2.1.1 连起来 最简单的连接多节点的方法:总线技术。总线就是一个公共的媒介,每个节点都连在上面,所以每个节点的信号,其他节点都会感知到。 早期的...
  • 西门子 基于开放工业以太网标准的自动化pdf,使用PROFINET整合现有系统和网络将不再是问题,例如,PROFINET支持接入现有的PROFIBUS网络和其它现场总线系统,如AS-Interface。不仅可以保障现有投资,且可逐步升级至...
  • 通过对各种现场总线技术及其应用情况的分析,指出了PROFIBUS、FF等不同总线的优...从通信协议分析,现场总线设备层可用以太网实现,并与管理层、控制层相结合,形成工业以太网,构成管控一体化的工业开放互连系统。
  • LCFNET系列CAN转光纤以太网设备与点对点CAN光纤转换器CANFiber系列、总线级联LCAN-FOB系列及环网冗余LCAN-FOBR系列不同,点对点CAN光纤转换器CANFiber系列、总线级联CAN光纤转换器LCAN-FOB系列及环网冗余...
  • PROFIBUS传送速度可在 9.6kbaud~12Mbaud范围内选择且当总线系统启动时,所有连接到总线上的装置应该被设成相同的速度。广泛适用于制造业自动化、流程工业自动化和楼宇、交通电力等其他领域自动化。PROFIBUS是一种...
  • 以太网(数据链路层)学习笔记

    万次阅读 2016-05-05 18:08:44
    从共享式以太网发展到交换式以太网总线形以太网拓扑结构 为了解决信号的衰弱问题,需要加入适当的中继器。总线形以太网功能需求要实现两个终端之间的数据通信,必须解决 发什么?收什么? 以帧为单位发收数据。...
  • 车载以太网

    2021-03-02 11:05:30
    1. 为什么要研究车载以太网? ...随着处理器运算能力和硬件的高速发展,ADAS,高品质的车载娱乐以及远程升级等新增功能的需求,使得ECU网络带宽需求呈现爆炸增长,同时也促使车载以太网成为车载
  • 以太网视频笔记

    2020-12-31 14:59:34
    3.局域网技术基础-什么是局域网 局域网 城域网 广域网 分类、...6.局域网技术基础-共享式以太网 物理总线 逻辑总线 7.局域网技术基础-交换式以太网 交换机功能 硬件并行 软件:动态更新MAC表、已知单播帧、未知单
  • 局域网技术—以太网

    千次阅读 2018-11-01 10:52:06
    (2)以太网分为共享式以太网和交换式以太网。 (3)当前以太网使用的拓扑结构有总线型和星状结构两种,以星状拓扑结构为主,使用的网络设备主要是集线器与交换机。 (4)传输速率较高,从最初的10Mb/s到万兆以太网...
  • 以太网交换机

    2013-07-08 10:58:00
    以太网交换机是基于以太网传输数据的交换机,以太网采用共享总线型传输媒体方式的局域网。以太网交换机的结构是每个端口都直接与主机相连,并且一般都工作在全双工方式。交换机能同时连通许多对端口,使每一对相互...
  • 以太网_巨帧数据包

    千次阅读 2020-09-01 10:36:40
    以太网有两类:第一类是经典以太网,第二类是交换式以太网,使用了一种称为交换机的设备连接不同的计算机。经典以太网是以太网的原始形式,运行速度从3~10 Mbps不等;而交换式以太网正是广泛应用的以太网,可运行在...
  • 工业以太网和CAN现场总线比较 工业以太网的优势及存在问题 (1)优势 基于TCP / IP的以太网是一种标准开放的网络,由其组成的系统兼容性和互操作性好,资源共享能力强,可以很容易的实现将控制现场的数据与信息系统上...
  • 局域网中的以太网

    2015-03-01 09:51:12
    1.以太网的网络结构为总线式。总线传输的一大特点是同一时刻只允许一台计算机发送数据。 2.这一特点引入的问题及如何解决? 3.根据CSMA/CD的载波监听,每个站点在发送数据前已经确定总线上没有信号,没...
  • LCFNET系列CAN转光纤以太网设备与点对点CAN光纤转换器CANFiber系列、总线级联LCAN-FOB系列及环网冗余LCAN-FOBR系列不同,点对点CAN光纤转换器CANFiber系列、总线级联CAN光纤转换器LCAN-FOB系列及环网冗余...
  • 从变电站自动化系统的分层分布式结构及其通信任务和要求出发,分析了目前现场总线技术标准过多,信息交互困难及...最后,指出采用交换高速以太网,并使节点工作在全双工方式,能满足变电站数据传输的实时性和可靠性要求。

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 285
精华内容 114
关键字:

总线式以太网