推广 热搜: 行业  机械  设备    经纪  教师  系统  参数    蒸汽 

网络连通性测试(ping/tcp)(qnx和android能ping通但是tcp有问题)(iperf带宽测试)

   日期:2024-11-10     移动:http://tiush.xhstdz.com/mobile/quote/65879.html

问题引申

网络连通性测试(ping/tcp)(qnx和android能ping通但是tcp有问题)(iperf带宽测试)

qnx和android之间通过socket做一些远程调用,一开始android只有一个网络接口eth0,两者通信没有问题。 后来android系统需要做多vlan,eth0依然是0网段的ip,又在eth0基础上虚拟了多个vlan接口,两个系统起来后能正常ping通,走0网段,但是应用侧反应change合入后,双方的socket通信能连接上但是无法正常通信。

最终分析结果

根据netstat -n命令,发现tcp的连接状态,发现建立连接的两个网段都不一样,这样铁定不能通信的。

经过分析,因为我们qnx系统除了网段0,也创建了个vlan3的3网段;android也有网段0,vlan3的网段3网段,还有其他多个vlan,这样的话,android和qnx系统会有两个网段能通。

默认情况下应该是通过0网段通信,经分析,应该是android作为tcp server,监听any接口, qnx这边网段3先建立,所以qnx的数据走的是3网段,发出了3网段的请求连接,后面再次创建规则0网段优先,所以3网段的。

等会儿再继续想一想

# netstat -n Active Internet connections Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 172.20.0.34.30501 172.20.3.36.30491 ESTABLISHED tcp 0 0 172.20.0.34.30501 *.* LISTEN tcp 0 0 *.20900 *.* LISTEN tcp 0 0 *.3490 *.* LISTEN tcp 0 0 *.2049 *.* LISTEN tcp 0 0 *.111 *.* LISTEN tcp 0 0 *.5555 *.* LISTEN tcp 0 0 *.* *.* CLOSED tcp 0 0 *.22 *.* LISTEN tcp 0 0 *.8000 *.* LISTEN tcp 0 0 *.23 *.* LISTEN tcp 0 0 *.514 *.* LISTEN tcp 0 0 *.21 *.* LISTEN udp 0 0 *.* *.* udp 0 0 239.255.3.1.30490 *.* udp 0 0 172.20.3.34.30490 *.* udp 0 0 *.3490 *.* udp 0 0 *.2049 *.* udp 0 0 *.1023 *.* udp 0 0 *.111 *.* udp 0 0 *.514 *.* Active Internet6 connections Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp6 0 0 *.111 *.* LISTEN udp6 0 0 *.* *.* udp6 0 0 *.1023 *.* udp6 0 0 *.111 *.* Active UNIX domain sockets

网络连通性首先要看ping是否能够通

qnx系统里有工具iperf、telenet,android系统里有

iperf3、telnet、nc命令(有些命令需要busybox

测试TCP连通性

qnx侧作为iperf server,命令: # iperf2 -s Server listening on TCP port 5001 TCP window size: 977 KByte (default) android使用nc连接,命令: busybox nc -vv 172.20.0.34 5001 172.20.0.34 (172.20.0.34:5001) open 此时server端会打印, [ 4] local 172.20.0.34 port 5001 connected with 172.20.0.36 port 35161 地方

项目遇到同事说,tcp连接能连通,但是无法传输数据,虽然很费解,但是还是得测一下

qnx只有telent和iperf2能够进行tcp连接

所以在qnx作为iperf2 server,android作为nc/telent client连接server时,在android侧用tcpdum工具抓包,android侧可以输入一些数据,也可以发送server端

130|hqcos:/ # nc -v 172.20.0.34 5001 nc: Unknown option 'v' (see "nc --help") 1|hqcos:/ # busybox nc -v 172.20.0.34 5001 172.20.0.34 (172.20.0.34:5001) open 11 22 33 44 55 99999999

android侧抓一下tcpdump数据

hqcos:/ # tcpdump -i eth0 -nn -v host 172.20.0.34 -w /data/88.pcap

使用wireshark打开

截部分图, 发现数据里面带着我们输入的33、44、9999999发送到了server端,说明tcp数据发送也正常

测试UDP连通性

 
 

一方作为server,一方作为client来连接,但是iperf3和iperf2不兼容 server:iperf3/iperf2 -s 172.20.0.36 client: iperf3/iperf2 -c 172.20.0.36 -p 端口

https://www.cnblogs.com/linxiu-0925/p/11531446.html

如果一方有iperf3或者iperf2测试TCP、UDP都可以,另一方有telnettelnet基于TCP协议)命令

可以一方设置为iperf 的server,比如

iperf3/iperf2 -s 172.20.0.36

另一方(android)用telnet

127|hqcos:/ # busybox telnet 172.20.0.34 5001 Connected to 172.20.0.34

另一方为(qnx)用telnet

# telnet 172.20.0.36 5201 Trying 172.20.0.36... Connected to 172.20.0.36. Escape character is '^]'.

有Connected to IP,说明已经TCP连通

一方通过iperf设置为server

另一方通过sshTCP协议)来测试连通性

命令:ssh -v ip -p 端口号 在回显中有connection establised表示端口是通的。

nc可以用来聊天,传文件,测试网络连通性

我这儿是两边有一个设备没有nc,所以nc作为client,另一侧server用iperf模拟

1|hqcos:/ # busybox nc -v -w 1 172.20.0.34 -z 5001 172.20.0.34 (172.20.0.34:5001) open

#nc -v 110.242.68.66 80 Connection to 110.242.68.66 80 port [tcp/http] succeeded!

聊天 nc还可以作为简单的字符下聊天工具使用,同样的,server2上需要启动监听: [root@hatest2 tmp]# nc -lp 1234 server1上传输: [root@hatest1 ~]# nc 192.168.228.222 1234 这样,双方就可以相互交流了。使用Ctrl+D正常退出。

利用nc传文件: 注意这里要记住的是接收文件的是服务器端,发送文件的是客户端: 服务器端命令nc -l ip地址 端口号 > 接收的文件名 客户端命令
本文地址:http://tiush.xhstdz.com/quote/65879.html    物流园资讯网 http://tiush.xhstdz.com/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


0相关评论
相关最新动态
推荐最新动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号