簡體   English   中英

如何知道Android智能手機的MTU大小

[英]How to know the MTU size of Android Smartphone

有什么命令可以知道 Android 的 MTU 大小嗎?

您應該使用NetworkInterface類來查詢和獲取網絡接口,然后調用getMTU()

今天看netcfg的代碼看到接口的配置在/sys/class/net..然后就想到你了! (我昨天看了你的問題)

如果您有 root 訪問權限,請打開終端並運行

cat /sys/class/net/<interface>/mtu

無需ROOTING您的手機,您可以使用來自Windows/Mac/Unix系統的ping命令。 但是, ping -options 的語法對於不同的操作系統是非常不同的。

對於 Windows

嘗試這個:

ping /l 1473 /f 10.68.34.75

/l <Size> — 指定發送的回顯請求消息中數據字段的長度(以字節為單位)。 默認值為 32。

/f — 指定發送回聲請求消息時,IP 標頭中的“請勿分段”標志設置為 1(僅適用於 IPv4)。

使用-l命令行選項調整有效負載。 當您達到上限時,您將看到此消息並找到 MTU 大小:

> The packet needs to be fragmented but DF set.

更多詳情: https : //kb.netgear.com/19863/Ping-Test-to-determine-Optimal-MTU-Size-on-Router

了解Android MTU大小的方法:

  1. 終端ifconfig $DEVICE | egrep addr\\|MTU ifconfig $DEVICE | egrep addr\\|MTU
  2. 通過Android 調試橋(adb)
    • adb shell netcfg | grep UP adb shell netcfg | grep UP找到所需的地址和
    • adb shell ip addr show rmnet0adb shell ip addr show rmnet0的情況下adb shell ip addr show rmnet0 rmnet0
    • adb shell cat /sys/class/net/rmnet0/mturmnet0情況下(如@patedit 所述)

1480,我相信,但您可以通過使用ifconfig $DEVICE和根設備進行檢查,並檢查那里的 MTU。

對於大多數網絡訪問,MTU 可以通過 MTU 發現解決。 您可以使用具有不同有效載荷大小的 Ping 命令,並且不要分段查找克萊斯勒值。 祝你好運

無需ROOTING您的手機,您可以使用來自Windows/Mac/Unix系統的ping命令。 但是, ping -options 的語法對於不同的操作系統是非常不同的。

來自大多數 Unix/Linux/Mac 系統(無需ROOTING 手機)

你可以從你的手機共享互聯網連接,然后從任何連接到你的 android-phone 的 PC 上運行ping命令:

ping www.yahoo.com -s 1413 -M do

man ping說:

-s <packetsize> — 指定要發送的數據字節數。 默認值為 56,當與 8 個字節的 ICMP 標頭數據組合時,它轉換為 64 個 ICMP 數據字節。

-M <pmtudisc_opt> — 選擇路徑 MTU 發現策略。 <pmtudisc_option>可以是do (禁止分片,甚至是本地分片)、 want (做 PMTU 發現,當數據包大小很大時在本地分片)或dont (不設置DF標志)。

使用-s命令行選項調整有效負載(例如: 1200, 1300, 1400, 1500, 1450, 1425, 1440, ... )。 當您達到上限時,您會看到這樣的消息,您會發現 MTU 大小:

> From 192.168.1.1 icmp_seq=1 Frag needed and DF set (mtu = 1500)
ping: local error: Message too long, mtu=1500

我的回答是基於 Windows 的這個回答回答 #25165641

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM