请教大家一个关于网络(host is down)问题.

系统有两台嵌入式主机,每台有三个网卡en0,en1,en2.
en0,en1,与en2
socket 编程时,设置socket属性时(包括 SO_LINGER等),en0,en1一样,
与en2不一样.用到en2的socket没有设置立即关闭属性.

问题:机器复位,对于en2偶尔,启动后,通过机器1的en2 ping 机器2的en2时,
出现host is down ,但是en0,en1从没出现过,而且可以确保en2的链路
没问题,再把双机重启一下又好了,


难道上层的socket属性设置会影响网卡的工作?

补充一点:en0,en1是通过swith跟别的机器连的,en2是直连的

直连的意思是用cross cable连的吗?可以用 nicinfo /dev/io-net/en2 检查一下 en2 的 speed, duplex是不是正常。这些通常是自动检测的。不过,在cross两端的网卡有时不能正常检测。

你可以试试用switch或hub连en2,还有一个办法是在io-net的命令行上强行指定en2的speed和duplex,这样可以避免自动检测。