日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/16 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 马上:网络故障排查的思路和方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

馬上:網絡故障排查的思路和方法

安卓日常開發工作中,總會遇上些網絡問題需要排查清楚。比如我遇上了,線上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 baidu.com 或nslookup交互方式 nslookup baidu.com 114.114.114.114 指定DNS服務器

關于DNS記錄的type,A 地址記錄(直接查詢默認類型IPV4),AAAA 地址記錄(IPV6),CNAME等

dig 也是查詢DNS的流行神器

#安卓需要使用termux dig @8.8.8.8 baidu.com

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 — 網絡帶寬監控

iftopDisplayRx Tx name MTU bytes packets errs drpd bytes packets errs drpd lo 65536 131644 249 0 0 131644 249 0 0 eth0 1500 8016 107 0 0 124234 136 0 0

線上案例分析

某地區的安卓發起直播失敗

Android7.12系統, app 通過推流sdk發起直播,觀看識別==推流失敗,回撈日志sdk確實是推流時鏈接失敗。

由于sdk只能提示鏈接失敗,需要進一步排查

  • 先排查設備的網絡是否聯通公網,是否能ping通推流地址,這里使用的是阿里云rtmp,默認端口1935,windows telnet命令.或者在線網站檢測端口是否開放。防火墻沒問題!進行下一步

  • 同一網絡下直播推流工具對比:

    安卓: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

    總結

    以上是生活随笔為你收集整理的马上:网络故障排查的思路和方法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。