分享

光模块兼容性问题,背后你应该知道的事情

 源源不断 2020-03-02

光模块、DACAOC,各种坑


  从来没有碰到光模块/DAC/AOC各种坑的网工,肯定不是真网工,相信我这么说没人会反对。哪怕是要求再苛刻的甲方,也没法完全杜绝因为光模块/DAC/AOC而带来的各种问题。以至于很多甲方朋友们,采购这些网络配件的时候,宁可价格高点,也一定要用原厂的,但是即便如此,也仍然不可避免碰到问题。

  而且大家碰到的故障千奇百怪,比较常见的端口不UP,链路闪断,大量CRC错包,丢包,还有光模块烧掉,光模块跑着跑着就down了,或者跑着跑着就开始丢包了,用某厂商的光模块AOC都没问题但就是换了DAC就有问题了,号称80km的单模模块在实际网络里面用到四五十公里就不行了,网卡温度一升高光模块就丢包,一个模块插上去附近好多个其它端口都down了,一端是UP的另外一端却是down的,还可以列举出好多好多。

  中国的光模块厂商很多很多,多得远远超过大多数人的想象,而这中间,90%以上的都规模很小,甚至有些说他们是小作坊也不为过。

  那么,这个产业的门槛真的是如此之低吗?为什么还会有这么多坑?光模块不是很成熟的产品了吗?大家的技术差异到底在哪里?为什么不同厂商的光模块价格差异这么大?一些设备商要求客户用原厂模块,到底是为了赚钱还是真的有道理? AOC/DAC/光模块到底有什么差异?使用光模块/AOC/DAC有哪些需要注意的地方?这篇文章主要来解答这些疑问。


光模块的内部结构


  这是网上的一个图片,提到了几个核心部件。其中 TransmitterReceiver合起来就是光收发器,其中最主要的是激光器,另外还有探测器和放大器,而IC Design就是MCU控制芯片,里面运行了驱动程序。激光器就是光模块里面最核心的东西,也是成本最高,技术含量最高的东西。一般说来越是高端的光模块产品,激光器在成本结构里面占比就越高。除此之外,还有滤波器,金手指,PCB电路板以及电容电阻电感,EEPROM,结构件以及隐藏于其中的焊锡,胶等等。

  全球能做光模块/AOC/DAC的厂商多如牛毛,但是所有这些厂商,用的激光器和MCU芯片,都来自有限的一些供应商,主要都是海外的,国内也有厂商能做其中一部分,在一些低端的上面也比较成熟,但是中高端的都是老外的。

为什么光模块/AOC/DAC技术门槛低?


  当然这个说法并不严谨,因为有些高端的产品,全球能做的厂商还是比较少,比如400G光模块。另外,同样的产品,比如100G单模,在大多数厂商只能做到10几公里的时候,少数厂商已经可以做到40公里。但是对于绝大多数成熟的产品来说,这个领域门槛确实太低,这就导致了有大量小作坊,几十个人就能搞起一个模块公司。

  门槛低的原因就在于光模块/AOC/DAC基本上可以算作是一个纯硬件产品,MCU控制器上尽管也跑了驱动,但都是相对来说比较简单,比较标准的东西(当然,还是有厂商之间的差异,很多兼容性问题就来自于这种差异)。而该硬件产品所用到的核心器件,大家都可以拿到,而且大家都可以很容易拿到大厂商的硬件方案进行参考模仿,甚至是有的供应商会直接提供耦合好的板子给下游厂商。这就意味着对模块厂商来说,很多成熟的产品,大家用的技术方案都高度相似,而且没太多门槛。这跟交换机很不同,虽然所有交换机厂商都可以拿到相同的无质量差别的CPU和交换芯片,但是整体板子的设计差异和复杂的软件系统的差异,导致了整体上质量和能力差异巨大。

大家的差异性在哪里?


按说光模块的标准很统一,门槛也低,那理论上模块厂商之间应该没什么差异了。但是其实不然,现实情况是,不同模块跟不同设备之间的兼容性问题千奇百怪,甚至同厂商同型号的模块在同样的设备上都会有差异。原因很多,但是如果简单归纳,就是工程质量和供货质量的差别。

  • PCB的质量,选用电容电阻的质量,金手指的长短宽厚,焊锡的质量,甚至胶水的质量,都影响着产品的质量,比如电压电流有抖动,温度升高,就出现问题。

  • 耦合工艺的差异,比如COB耦合方式,SMD耦合方式,每个厂商的选择都不同,甚至同一个厂商不同产品的选择也不同,他们在成本,散热,耐高温上都会导致差异。

  • 生产测试设备的差异,设备数量的多少,种类丰富程度,自动化程度,交换机/服务器网卡等第三方设备的丰富程度,这些会导致良品率和兼容性的差异。比如我认识的一个厂商,光买用于兼容性测试的交换机、路由器、服务器等第三方设备就买了小几千万,而有的模块厂商,我曾经碰到过他们的DAC跟某个著名网卡不兼容,后来问了一下,这个厂商那里居然这个网卡。再比如,有的模块厂商连用来看光眼图的眼图仪都没有。

  • 不同厂商研发能力,质量管控能力的差异。

  • 不同厂商拿到的上游芯片质量的差异,一般说来,出货量越大的厂商,拿到的上游电子元器件的质量越高。比如同样是10G 80KM的激光器,个体上是有差异的,有的接收灵敏度可以到接近-30db,而有的只能到-24db左右,在供货的时候,接近-30db的这些个体,会优先供给大厂商,尽管小厂商也能拿到一些,但是比例远低于大厂商。导致的结果就是,同样都是10G 80km的光模块,在光损耗太厉害的线路上,有的光模块能UP,而有的就无法UP或者丢包严重。打个比喻,就像卖苹果,一些个头大,卖相好的苹果,被大客户优先挑走了。剩下的虽然可能也有个头大卖相好的,但是比例就低了。

  • 真正能体现厂商技术能力差异的地方,一般都是在高端产品上,比如100G/400G的模块,特别是长距离的。一般新产品,大厂商会提前投入设备和研发,提前积累起技术优势,在产能有限的情况下,上游厂商也会优先把芯片、激光器提供给大厂商,所以大厂商通常都会在新品上领先小厂商至少一年的时间。而对于成熟产品,大多数厂商差异不大,但是技术牛逼的厂商,可以在一些细节技术参数上做到极致,比如在温度范围,电压范围,接收灵敏度等参数上比别人高一点,这些优势的差异,在一般使用环境里面都体现不出来,但是在苛刻的环境里面对比就明显了。

AOC和光模块的差异在哪里?


AOC(Active Optical Cable)就是一根光纤两端都各拴着一个模块,相当于线和模块一体。

      AOC现在在很多客户那里也大量使用,因为它的成本比起单独的两个模块+一个光纤要便宜。那么从技术的角度,AOC跟模块+光纤有什么区别呢? AOC跟光模块一样,仍然是光驱动的,里面的核心器件一个都不少。他们的差异主要是工艺难度上的差异。对于光模块来说,在内部器件耦合的时候,因为对端情况可能差别很大,所以需要适配不同情况,对激光器要求高,人工操作复杂度高。而AOC,因为对端是固定的,所以不需要考虑各种情况,对激光器要求低,外围配套器件相对简单,人工操作也简单,这样就可以降低一些成本,这也是为什么AOC价格会比两个模块+一根光纤更低的原因。但是由于成本最高的核心器件一个都没省掉,所以成本的差异算不上非常显著(注意:成本不等于售价)。

  当然,就算对于同一个厂商,他们的光模块跟AOC在芯片方案,耦合方式上可能会有不同,这也是为什么同一个厂商的光模块和AOC在同一个第三方设备上表现也可能不同的原因,但是总的来说,由于都是光驱动,所以差异不会太大。

       AOC虽然成本更低一些,但是相比光模块,也有缺陷。比如AOC线缆中,如果一个模块或者光纤出问题,就需要全部换掉,而光模块则不需要;特别是在一些已经布线完成的环境里面,AOC线要抽出来,是个很麻烦的事情;另外,如果两端的设备是不同厂商的,使用光模块方案,可以分别采购不同厂商的模块,避免兼容性问题,而如果使用AOC方案,则只能让AOC供货商,提前写码,甚至有可能需要在AOC线缆上标记好,哪一端对应哪个厂商。

DACAOC的差异在哪里?


DACDirect Attach Cable),外表看起来跟AOC长得比较像,也是一根线两头拴着两个模块,只是中间的线不是光纤,而是铜缆。

        AOC被称为有源光缆,而DAC分为有源和无源两种,主流是无源。有的厂商为了让DAC可以传更远,里面加了一个信号放大芯片,这就是有源铜缆。

  严格来说,DAC不能算是光模块的范畴,它只是外表长得像光模块,但是在内里,它跟光模块一毛钱的关系都没有。里面没有激光器,没有放大器,没有探测器,也没有像光模块那么复杂的MCU控制器,换句话说,光模块/AOC里面最贵的关键器件,DAC都没有,只有一个简单的电信号的控制芯片,它从头到尾都是电信号在传输。这就是为什么DAC的价格远低于光模块和AOC的原因。

  我们知道交换机接口上插上光模块或者AOC的时候,在交换机上用命令可以看到该接口光模块的电压、电流、温度、接收光功率和发送光功率等信息。但是如果插DAC通常读取不到这些信息,这是为什么呢?原因就是光模块和AOC里面,都有一个DDM存储区,存放这些信息。而DAC里面,一方面因为本身没有接收和发送光功率的概念,另外一方面没有功能很强的MCU芯片从而无法探测温度电压和电流,所以DAC通常都没有DDM信息。当你看到DAC读取不到这些信息的时候,不要去怀疑交换机,也不要去怀疑DAC,这就是业界通用做法。

  由于DAC纯粹是电驱动的,所以距离一般都不远,因为电信号比光信号更容易受到距离的限制(抗干扰能力差),一般5M以内,除非有源电缆,加了放大器。相比较光,电信号更容易被距离、温度、辐射、电缆折叠等问题所干扰,所以DACAOC更容易有兼容性问题,取决于两端设备的驱动能力。而对于AOC来说,它的主要问题是光纤容易折断,当然,现在的很多光线抗折叠能力都不错。

  所以总的来说,如果使用环境可控,距离不长,对价格敏感,能提前排除兼容性问题,DAC是不错的选择。

什么是光模块/AOC/DAC的写码加密?


  大家应该都经常听到光模块加密或者写码的说法,特别是一些大厂的网络设备,都要求用自己原装模块,否则就会怎样怎样的,那么,到底什么是写码加密?各个第三方模块厂商,又是如何应对设备厂商写码加密的?是否可以破解?破解不了会怎么样?

  首先有个概念要搞清楚,严格来说,我们平时说的兼容性问题,跟写码加密不是一码事,兼容性问题是指上面说的那些问题,因为对标准实现得有差异,导致一起工作的时候不匹配,不是故意为之。但是写码加密导致的模块在设备上无法工作,那是故意为之。

  根据光模块的行业标准规范里面的定义,光模块里面有2个区域各128字节的写码区,这两个写码区里面存放了厂商,型号,序列号,以及DDM信息(允许的电压、电流、温度、收发光功率范围以及实际采集到的这些数值)和兼容码等很多信息。很多设备商,在交换机等网络设备里面,做了限定,光模块插进去之后,会通过交换机的I2C总线去读取光模块里面写码区的信息,通过这些信息,该设备可以判断出该模块是否是自己原厂的模块,如果它发现不是原厂的,就可以采取一些动作。这里不同厂商会有不同的做法,主要有这么几类。

  1. 不做任何兼容控制,也即是设备不去读取模块里面的兼容码来做判断,任何模块插上去都能用,基本上所有的白牌交换机厂商都会这么做,比如盛科网络,部分品牌厂商也都会这么做,有的大厂商的低端产品,也都不做写码控制。

  2. 会去检查模块里面的兼容码从而判断是否兼容。但是由于兼容码是明文,任何第三方模块厂商都可以轻易获取到这个兼容码,这样这些第三方模块厂商出厂的时候,只要在自己的模块里面写上要兼容厂商的兼容码,就可以兼容。所以这种做法,相当于还是不设防。很多网卡厂商的部分或者全部产品,都是这种做法。

  3. 模块里面的兼容码是动态兼容码,是根据模块里面的一些信息,比如序列号,甚至是芯片里面的一些唯一ID,然后通过特定的算法,计算出来后写进去的,这种情况下,第三方要破解的难度是比较大的,但是只要能知道算法和所有的参与算法的字段以及存放位置,那也是可以的。一些大厂的部分产品,都是这种做法。

  对于上面23中要检查兼容性的厂商,一旦他们发现不兼容,又会有一些不同措施,有的是直接不UP(相当于是说你不用我原厂模块,我就不让你工作),有的是会告警和/或让你看不到DDM信息(相当于是说你不用我原厂模块,我让你用得不爽)。当前厂商一般都用后者,属于比较温和的做法。这都不是技术问题,而是市场策略问题。

写码器


        光模块里面的写码区是有行业标准的(不同种类的光模块标准不同),设备(交换机、路由器、网卡等)跟光模块直接的接口也是标准的(I2C标准),所以理论上做个写码器出来是很容易的,写码器是模块厂商的必备品。而其实很多人不知道的是,交换机厂商也完全可以把交换机当做写码器来用,而且可以做到批量写码,因为交换机跟光模块之间也是标准的I2C接口。只是看交换机厂商是否愿意去做了。盛科网络的交换机就开放了这种能力。

  理论上写码器可以把A厂商的光模块写成B厂商的码,模块厂商为了防止有别人乱写自己的模块,都设置了密码保护,你不知道密码,写了之后,一旦设备重启或者模块重新插拔,写的码就丢失了。

最后,一些可能有帮助的FAQ


综上所述,我们可以回答一下用户平时很关心的一些问题。

Q1: 大设备商把原厂模块卖得很贵,是否合理?我是否一定要用原厂模块?

A1应该说,他们的价格里面,一部分原因是让你心安,纯粹是为了多赚钱,但是另外一部分的原因,用原厂模块确实质量更有保证,而且确实可以避免兼容性问题,乱用模块引起的问题确实不少。特别是有些客户手里各种第三方的模块,谁的便宜用谁的,导致的问题是很多的。当然,有一些第三方光模块,实力雄厚,质量控制和兼容性测试做得都很好很全面。所以这个问题没有标准答案,还是得用户自己权衡一下自己更在意什么,以及运维能力如何。

Q2A模块厂商说他们比B模块厂商规模大,质量肯定更好,这个是否是真的?

A2对于成熟的模块来说,差别比较小,尽管还是会有点差别,但是主要是一些极端情况下能体现出来,一般用用都没问题。而越是新的模块,越是高端的,差别越明显一些。但无论大厂还是小厂,要购买前务必确认他们的模块在你用的设备上兼容过。

Q3我从一个交换机原厂买了AOC,但是发现用来连服务器无法UP,这是不是他们的责任?

A3很可能双方都有责任,因为AOC/DAC采购之前,要先问清楚,对端设备是什么设备,需要预先写码。

Q4模块的传输距离是什么决定的?

A4一般说来,光模块和AOC的传输距离,取决于模块和AOC本身,跟设备关系不大。DAC则是设备和DAC一起决定的。但是对于支持FEC(前向纠错)的光模块,需要设备也支持FEC,才能传得更远,比如现有的40G 单模,如果不支持FEC,只能传30km,而支持FEC的时候,能传40km

Q5: 买长距离单模光模块,都需要看哪些参数?

A5对于40km/80km的光模块,买的时候绝对不能只看宣称的距离和客户实际的光纤距离,还得看宣称的接收灵敏度和客户实际的线路光衰,否则你会发现宣称的80km光模块,根本传不到80km

Q6什么是14线缆

A6基本上所有设备的40G QSFP+端口,都可以通过配置,把140G拆分成410G来用;而绝大部分比较新的100GQSP28端口,都可以通过配置,把1100G拆分成410G或者425G来用(部分老的设备,只能拆分成10G,不支持25G)。14线缆有DACAOC两种,此外还有模块和光纤分离的。

Q7: 我的模块写的码,为什么能用在A厂商的型号1的网卡上,但是不能用在他们型号2的网卡上?

A7: 可能是他们型号2的网卡对兼容码的检查机制变了,现在要看兼容码了,型号1不看。

Q8: 我这个第三方模块,在别的很多设备上都用好好的,为什么在你们设备上就不行?

A8这未必是设备有问题,很可能是这个模块去跟其它设备兼容过(注意:兼容不是指写码,是指各种信号规范等),但是没跟这个设备兼容过。

Q9现在两端只有一端UP,另外一端不UP,不是应该要么都UP,要么都不UP吗?

A9收和发是分开的,出现这种问题不奇怪

Q10:现在线路有丢包,你这个设备上的端口上,收到了大量CRC错包,肯定是你的设备有问题

A10端口上收到CRC错包,这些错包是对端发过来的,首先要去检查对端设备,以及线路(特别是中间线路上还可能有第三方设备)

Q10:端口不UP,都可能有哪些原因?

A10原因太多了,比如一端是自协商,一端是强制;比如一端温度异常;比如模块跟设备有兼容性问题,比如两端设备之间有兼容性问题;比如光纤异常;比如写码不对;比如一端开了FEC,一端没开(不同设备,如果都支持FEC,有的默认enable,有的默认disable);比如光衰太厉害,超过了光模块额定范围。等等还有很多,包括设备本身的行为,比如环路保护,链路抖动保护等等。

Q11:丢包,都可能有哪些原因?

A11丢包的原因比端口不UP更多,比如其中一端温度异常;比如模块跟设备之间,或者两端设备之间兼容性问题;比如光纤异常;比如光衰太多等等。而除了这些端口和线路的原因之外,还有很多设备或者配置的原因,比如拥塞,比如Burst,比如配置错误。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多