前段时间搞完openwrt,就接着上级安排的任务:搞新CPU。但对于android我实在是新手,各种目录各种库,简单地拆分内核、文件系统,跑个helloworld程序,都搞了好久。刚刚看了几天,领导拿了一台X86的工控机给我,安排我测试其性能,要和之前搞的x86的设备对比。幕后安排事务是另外一个领导,我们老大也没发电子邮件,只是口头说。本来想具体写这个小小题外话,但想想还是算了。对于小兵来说,谁安排不是安排。

我刚刚在脑中演练了一下要进行的测试的计划,并于每天早会汇报时,老大说,某大部门有个网络问题要排查,今天下班前给结论:什么原因,能不能解决,评估什么时候可完成。于是临时中断测试计划转而投入到网络问题排查中。然,经过短短一天的排查,完全没有头绪,这个设备与其它设备在网络模块上有些不同,因此我说软件上很难解决——但我不是不去想办法解决。由于涉及较多部门,信息严重不对称,我建议助理请某大部门主导开个小会梳理梳理。但该大部门说下周才有空。于是又暂停了网络问题而继续工控机性能测试事务。该事务按我制定的计划和时间顺利完成。虽然某大部门一直没动静,但我不能干等不干事。于是又继续搞网络问题。截至现在,虽然没有真正知道解决方案,但总算有了一些眉目。

今年我基本离不开网络问题。年初遇到设备接千兆交换机再过光纤转换器到机房出现视频数据传输不实时;年中不时遇到前人维护的内核的千兆百兆自动切来切去问题;前不久又遇到某设备连千兆网络时连时断问题(领导叫我排查,但过了一天,又叫我暂停)。现在又遇到某设备直接另一设备网络时连时断问题(领导叫我排查,但过了一天,又叫我暂停)。

以上就是事件的复杂的来源及个人牢骚。下面正式进入主题。

背景

某设备MX,与某工控机“唉踢斯”网络直连,“唉踢斯”上保存的视频数据断断续续。经简单测试,在设备MX和“唉踢斯”之间用iperf工具测试网络带宽,60秒中有30秒是断开的。问题简化为网络传输而非业务程序。另外,如果两者经过一个交换机,则一切正常。当设备不使能自动协商时,对端的“唉踢斯”由于自动协商,得到半双工,这种情况下连接正常。而使用某设备JX与该工控机直连,也是正常的,视频完整。设备MX与设备JX在主板硬件上几乎一样,包括CPU和外设,因而共用一套底层内核驱动。但设备MX由于其些特性,网络用尾线引出来,速率只有百兆。(公司主张硬件问题软件解决,我不能直接说硬件不同,没法解决)

自动翻转

想到网线的直连、交叉,纯粹偶然,是在周末的一个下午。因而正好利用周末时间了解了一下这方面的知识。一般来说,现代的网络芯片都支持了自动翻转功能(Auto-Crossover)。现在的交换机或PC都支持了,所以现在很少有人注意网线的线序,直接插上就能正常通信了。在PHY寄存器中有设置,在0x10寄存器的5、6比特,硬件复位默认值为11,表示自动翻转。在0x11寄存器的第6比特有自动翻转的状态值。为1表示MDIX,为0表示MDI。写此文时,懒得翻IEEE标准了,我查了Atheros AR系列网络芯片以及Intel的几款经典网络芯片手册,都是如此的,有一定代表性。但是,不是所有的网络芯片都支持自动翻转,比如DM9000就不支持。一般在Datasheet开头的芯片特性那里会有说明,比如支持自动翻转会写:Automatic MDI/MDIX crossover。网上有资料说只有在自动协商使能(AN)情况下自动翻转功能才有效。但我看手册没发现里面强调一定要自动协商。我猜测应该是芯片厂商定义不同而不同。

在两台均支持自动翻转的的设备用直连线连接,一台显示为MDIX,一台显示为MDI。ethtool工具可以看当前的网络接口是否翻转。查看ethtool代码,发现只有在双绞线情况下才会打印此内容,也就是port的值为PORT_TP。而很多设备是MII接口的。但是,即使硬改为TP也需要驱动层的支持,否则显示Unknown。如下面是在一台X86的linux中打印的信息,MDI-X一项为on。

Settings for eth1:Supported ports: [ TP ]Supported link modes:   10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supported pause frame use: SymmetricSupports auto-negotiation: YesAdvertised link modes:  10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: SymmetricAdvertised auto-negotiation: YesSpeed: 1000Mb/sDuplex: FullPort: Twisted PairPHYAD: 1Transceiver: internalAuto-negotiation: onMDI-X: on (auto)
Cannot get wake-on-lan settings: Operation not permittedCurrent message level: 0x00000007 (7)drv probe linkLink detected: yes

回到问题上,两种设备用的网络芯片都支持自动翻转,所以问题不在这,这个方向走不通。不过从中获取到不少的知识。关于MDI和MDIX,可以参考这个文章: http://encyclopedia2.thefreedictionary.com/auto+MDI%2fMDIX

网线工艺

又是一个周五,无头绪之际,打硬件同事座机聊这个问题,再次回到网线接口上,因为该设备网线变压器到RJ45上只有4根线连接(正常网线是8根)。之前就谈过,但没注意到这个细节,因为不是网工出身,没有这方面的敏感度。结果证实,还真是与这个小小细节有关。

当天我做了一根特制的网线,保留1、2、3、6线,剪掉其它的。用于上文提到的直连正常的设备上,结果发现,本来正常的设备竟然出现了时连时断的现象,也就是说,使用8芯网线正常的设备,使用4芯网线不正常了。再次利用周末的时间学习了网线制作的工艺。实际上,网线数据传输本身使用4根线的,即1、2、3、6,其它是保留给电话用的。关于到底连4芯还是8芯,论坛上有很多争论。我不掺和,我是个老实人,人家说网线是8芯的,我就是老老实实地接8根线。

使用这个特制的网线,连接2台同是千兆网卡的设备上,自动协商使用约半分钟,让我一度以为无法通信。而使用它连接交换机和设备,很快网口灯就亮了。

回到问题上,使用正常网线,如果关闭自动协商的话,另一端设备只能得到半双工,这种情况下,视频连接是正常的。而两边设备都设置为百兆全双工,也是正常的。我又不得不往自动协商方向怀疑了。

李迟 2015年11月14日 周六



记一下最近遇到的网络时断时连问题相关推荐

  1. 电脑频繁断网怎么回事_家里网络间歇性断网什么原因 家里网络间歇性断网怎么解决【介绍】...

    网络不稳定时常发生,最烦人的是打游戏时忽然掉网,网络不稳定的原因有很多,除去网络线,和网络接入信号是正常的情况下,家里网络间歇性断网是怎么回事呢?下面给大家介绍一下引起网络间歇性断网的几种比较常见的情 ...

  2. zabbix snmp异常超时、不稳定、时通时断:Timeout while connecting...

    转载来源 : zabbix snmp异常超时.不稳定.时通时断:Timeout while connecting : https://www.jianshu.com/p/e59249a9165a 作者 ...

  3. 外网业务访问故障,ping时通时断,显示有请求超时time out处理过程

    类似问题参考: ip地址冲突导致ping时通时断显示超时问题处理过程_wj31932的博客-CSDN博客 无法上网故障排查过程及复现过程系ip冲突造成_wj31932的博客-CSDN博客_arp获取不 ...

  4. 小米note3无线显示电脑连接服务器,小米Note3解决WiFi锁屏时断网的方法教程

    小米Note3WiFi在锁屏时断网怎么办?现在的手机不管是聊天软件还是阅读软件,它都需要流量才可以使用,但是绝大部分用户在条件允许的情况下会通过wif上网,这样不仅可以节省我们的手机流量,而且网速还相 ...

  5. 云服务器出现网络闪断问题如何解决

    1检查内网 2检查外网 内网检查首先用ping命令测试网络连通性即可, 比如网关地址为192.168.1.1,格式为ping 192.168.1.1 -t,如果出现丢包,证明电脑到网关有问题,检查内网 ...

  6. Macbook pro 2016/2017 接入扩展坞时断 WIFI 问题的解决办法

    Macbook pro 2016/2017 接入扩展坞时断 WIFI 问题的解决办法 参考文章: (1)Macbook pro 2016/2017 接入扩展坞时断 WIFI 问题的解决办法 (2)ht ...

  7. 苹果iPhone升级到10.3.3后,4G数据网络经常性断网无法连接???

    苹果iPhone升级到10.3.3后,4G网络经常性断网无法连接??? 还是最近上海天气的问题? 垃圾!

  8. android p2p 连接服务器上,当通过Wi-Fi P2P使用网络服务发现时无法连接到Android设备每个人都可以使用网络服务发现...

    ! 我正在开发一个Android应用程序,允许与附近已安装此应用程序的设备聊天.为了做到这一点,我使用Wi-Fi P2P API和网络服务发现来搜索附近的设备. 我已经编写了用于在服务启动的线程中搜索 ...

  9. 计算机网络断网吗,教您解决电脑网络常常断网掉线的方法?

    原标题:教您解决电脑网络常常断网掉线的方法? 在这科技发达的时代,电脑是每人必备的工具.那么,问题就来了,在使用电脑的过程中网络突然经常断网掉线,这是怎么回事呢?不急!接下来,让小编与您分享一个如何解 ...

最新文章

  1. shell中cut-b_Shell中cut用法
  2. 实现一个简单的代码字计数器(二)
  3. 洛谷P1198 [JSOI2008]最大数
  4. BeetleX之FastHttpApi服务使用详解
  5. 外键约束 mysql
  6. IOS图标 HTML规范,IOS用户界面(UI)设计规范图表——APP设计师必看!
  7. 小米手表外观官宣:方表盘+黑银两色
  8. 整合vue_直指核心,7天成为Vue高手
  9. 简述Git(Linux、Android~~开源)
  10. ip查询js获取页面属性
  11. cmmi实践访谈测试ppt_CMMI3_实践篇.ppt
  12. 最详细全国区号汇总(json格式)
  13. cad计算机绘图实操视频,CAD电脑绘图教程视频
  14. 终端模拟器常用快捷键
  15. matlabapp窗口图像_matlab的App designer使用
  16. 气导耳机有哪些品牌?南卡、韶音、cleer、索尼气传导耳机评测分享
  17. ThinkPHP3.2.3 实现微信小程序微信授权登录
  18. WRF后处理总结:wrf-python与NCL在WRF后处理中的基本应用——变量提取、计算与可视化
  19. 2,服务通讯C++与python
  20. Burpsuite破解用户名和密码

热门文章

  1. docker build
  2. 永恒的夜晚 kuen aun pen niran(歌词)
  3. 如何与爱发脾气的人相处
  4. 神武4手游等待服务器响应,《神武4》手游:转服功能终上线,认准长安袁守诚...
  5. 简单性能测试:springboot-2.x vs actix-web-4.x benchmark
  6. 记录一个Goland导包失败问题解决办法
  7. Spring官网下载SpringFramework
  8. DZY Loves Partition
  9. 汇编语言与接口技术(第4版)清华大学出版社 第2章 80*86微处理器 课后题答案
  10. 云米冰箱能控制扫地机器人_叫Pro的不只是iPad:云米互联网扫地机器人Pro了解一下...