赞
踩
最近遇到了一个非常棘手的问题,在这里做一个记录。
一、实现功能。
1、一台电脑通过交换机和7台设备通信。
2、使用TCP通信协议。
3、我的电脑开7个线程,相当于开7个客户端去连接,7台服务器。
4、7台设备依次改了7个不同的ip地址。
二、现象。
1、单独只连接一台时通信和连接都完全没有问题,可以正常通信。
2、当连接多台时,会出现连接不上的问题,有时候要连好几次才能连上服务器。
3、当同时连多台时,单台发送数据和异常的卡,基本会卡个3秒左右,多台同时发数据时,会出现随机设备直接卡掉线的情况(网络直接断开了)。
三、解决方法。
1、刚开始以为是没有开辟7个线程,都还是在一个线程里运行,所以才会这么卡,后面打印了线程的ID,发现的确是开辟了7个不同的线程,线程问题排除。
2、这里我直接用网络抓包工具Wireshark来查看,如下:
发现每一次发送都会出现大量的重传,就是这个重传表现出来就是通信非常卡的现象。
四、最终解决方法。
在了解了交换机的工作原理后,(原来交换机是根据不同的MAC地址来区分不同的设置的),之前只是IP不同,但是所有的设备都是用的一个MAC地址。
最后将7台设备改为不同的MAC地址再通信就可以了,完全没有卡顿,连接也很流畅。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。