300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 马上:网络故障排查的思路和方法

马上:网络故障排查的思路和方法

时间:2020-11-07 21:48:09

相关推荐

马上:网络故障排查的思路和方法

马上:网络故障排查的思路和方法

安卓日常开发工作中,总会遇上些网络问题需要排查清楚。比如我遇上了,线上app网络状态是良好的,但是上传日志失败、接口404但公司网络能请求成功200、直播推流失败、耗流量大、MQTT连接异常…

基本网络知识

了解网络通信的基础设备和其对应的OSI层次

最基本的网络设备交换机、三层交换机、路由器、防火墙。OSI七层模型中的数据链路层、网络层等TCP/IP五层和四层网络模型

网络的基本架构

网络组网的经典模型,接入层-汇聚层-核心层-出口层 (中小型企业网络)如我了解的学校接入网一般为大二层和三层组网两种模式

网络排错基本思路

检查物理链路是否有问题 (就是网线,网口,网卡,WIFI,路由器,这个很好排查,对比一下正常的)检查本机IP地址、路由、DNS、网关、子网掩码、DHCP或静态IP设置是否有问题检查ping公网ip的通畅情况 如(114.114.114.114)检查DNS的通畅情况,可以直接ping网站,但是有些网站限制ping

需要注意:关注数据走向,必须先检测网络物理链路,设备的网卡,网线(检查水晶头、网线的连接、网线的质量),设备连接的交换机和路由器

基本网络命令

网络命令有很多,这里只是提及Android7.12下的常用命令,如跟踪路由命令window的tracert和mac的traceroute,arp等命令不细说

ping命令,太常见了!top1

ping 网关地址或局域网已知IP,是否有响应判断设备是否联通,否可以使用arp命令ping 公网IP 如114.114.114.114,能通,能基本说明网络是没有问题的(考虑防火墙)

ifconfig命令用于显示或设置网络设备。windows的是ipconfig

arp 命令是Address Resolution Protocol,地址解析协议,是通过解析网络层地址来找寻数据链路层地址的一个网络协议包中极其重要的网络传输协议。

busybox arp -a //android 需要安装busybox或使用termux,windows,mac,linux都自带

nslookup查询DNS的记录,查看域名解析是否正常. 如果ping网站地址不通的话,就需要进行dns检查。

#安卓上没有nslookup 或nslookup交互方式nslookup 114.114.114.114 指定DNS服务器

关于DNS记录的type,A 地址记录(直接查询默认类型IPV4),AAAA 地址记录(IPV6),CNAME等

dig 也是查询DNS的流行神器

#安卓需要使用termuxdig @8.8.8.8

netstat命令用于显示各种网络相关信息

netstatDisplay networking information.-r Display routing table.-a Display all sockets (Default: Connected).-l Display listening server sockets.-t Display TCP sockets.-u Display UDP sockets.-w Display Raw sockets.-x Display Unix sockets.-e Display other/more information.-n Don't resolve names.-W Wide Display.-p Display PID/Program name for sockets.

iftop — 网络带宽监控

iftopDisplayRxTxnameMTU bytespackets errs drpd bytespackets errs drpdlo 65536 1316442490013164424900eth01500 8016 1070012423413600

线上案例分析

某地区的安卓发起直播失败

Android7.12系统, app 通过推流sdk发起直播,观看识别==推流失败,回捞日志sdk确实是推流时链接失败。

由于sdk只能提示链接失败,需要进一步排查

先排查设备的网络是否联通公网,是否能ping通推流地址,这里使用的是阿里云rtmp,默认端口1935,windowstelnet命令.或者在线网站检测端口是否开放。防火墙没问题!进行下一步

同一网络下直播推流工具对比:

安卓:sdk推流失败

安卓:FFmpeg推流失败,有具体的错误信息:RTMP handshake response 失败

PC:FFmpeg 推流直播成功;

PC:sdk 推流直播成功;

工具问题不大,同一网络下直播推流运营商对比:

安卓:sdk&FFmpeg推流阿里云失败

安卓:sdk&FFmpeg推流腾讯云成功

PC:sdk&FFmpeg推流阿里云成功;

PC:sdk&FFmpeg推流腾讯云成功

结论:TMD太奇怪了,让平台同事配置腾讯云的流地址来用

某地方访问业务接口404, 公司网络能访问

由于公司服务器禁止ping, 所以排查方式,先直接喊用户打开浏览器,输入域名官网web地址,结果也是404 , 排查了DNS设置无问题。找运维看,结果说服务器已经返回200,TMD。

由于没电脑,app运行智能终端上,那定位一下问题所在,解决问题吧。前面确定了设备的DNS,8.8.8.8,常用DNS服务器,访问其它网站是欧凯的。这里我猜测是DNS解析出了问题。我通过 IP/IPv6查询,服务器地址查询 得到IP地址,通过IP地址打开网站,发现是欧凯的,那就是域名DNS问题交给运维去解决。在解决问题的过程中我去了解JAVA、安卓的DNS底层实现。这里不具体展开,查看我的另一博文记录。Android DNS解析过程

耗流量大

要用抓包工具来分析,Wireshark工具,charles 工具,安卓上的抓包精灵,VNET 等工具。

结果分析, 平台业务数据有缺陷,img地址的文件是视频文件,导致图片框架加载失败,不断重试。

MQTT异常

Wireshark工具,抓包发现, 握手(CONNACK) ,服务器并没有返回CONNACK消息作为响应,导致超时断连。

参考网站

ipv6test

test-ipv6

一文看懂网络七层协议/OSI七层模型

cloudflare&DNS

diggui

windows & linux dig download

ping & net

MQTT心跳

mqtt

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。