公司前台那台打印机,连着交换机后总在批量打印时卡住;监控室的NVR录像偶尔断流,重启网线就恢复;甚至你自己的办公电脑,明明是千兆网卡,测速却死死卡在80MB/s上不去——这些看似零散的问题,背后可能藏着同一个锅:交换机端口协商成了半双工。
半双工不是‘复古’,是带宽砍半+冲突翻倍
全双工(Full-duplex)能同时收发数据,就像双向四车道;半双工(Half-duplex)只能单向通行,收和发得轮流来,像单车道还带红绿灯。更麻烦的是,半双工下设备靠CSMA/CD机制‘听空再发’,一旦两头同时发,就撞车(collision),重传再重传,延迟飙升、丢包频发。
为啥会协商成半双工?别怪交换机,先看这三处
1. 网线不达标或老化
用一根超五类线硬接千兆口?或者线缆被压过、弯折多次、水晶头氧化?物理层信号衰减大,自协商失败后降级到100Mbps半双工保命,很常见。
2. 一端手动设了速率/双工,另一端还在自协商
比如你在PC网卡属性里把速度强制设为“100Mbps全双工”,而交换机口仍设为auto,它就会妥协匹配成“100Mbps半双工”——这是IEEE标准规定的协商规则,不是Bug,是坑。
3. 老旧设备或固件bug
某些十年前的SOHO交换机、国产小厂POE交换机,自协商逻辑有缺陷;或是某次升级后固件出问题,反复握手失败,最终退到最保守的10Mbps半双工也不稀奇。
怎么一眼看出是不是半双工?命令行比看灯靠谱
登录交换机,进接口视图查状态:
Switch# show interface gigabitethernet 0/1
GigabitEthernet0/1 is up, line protocol is up
Hardware is Gigabit Ethernet, address is aabb.cc00.1234
MTU 1500 bytes, BW 1000000 Kbit/sec
Full-duplex, 1000Mb/s, link type is auto, media type is RJ45
重点盯这两行:
→ 如果写的是 Half-duplex, 100Mb/s,基本坐实问题;
→ 如果显示 Full-duplex 但速率只有100Mb/s,也得查网线和对端配置。
动手解法:从物理层开始一层层撸
第一步:换根靠谱网线
不用纠结Cat6还是Cat7,一根全新、整根无接头、长度<90米的超六类线,直插交换机和终端,观察端口指示灯是否跳成绿色千兆(有些交换机会标‘1000’或闪烁快)。很多问题在这一步就消失了。
第二步:两端都设auto,别手贱硬设
Windows网卡属性里,把‘连接速度与双工设置’从‘100 Mbps全双工’这类手动选项,改回‘自动协商’;交换机侧也确认没做speed 100 duplex half这类静态配置。
第三步:关掉自协商?不,除非你真懂
极少数场景(比如对接老工控设备)必须关闭auto,那务必两端严格一致:
interface gigabitethernet 0/1
speed 100
duplex half
no negotiation auto但日常网络中,关auto=埋雷,不推荐。