[英]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 的語法對於不同的操作系統是非常不同的。
嘗試這個:
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
ifconfig $DEVICE | egrep addr\\|MTU
ifconfig $DEVICE | egrep addr\\|MTU
adb shell netcfg | grep UP
adb shell netcfg | grep UP
找到所需的地址和adb shell ip addr show rmnet0
在adb shell ip addr show rmnet0
的情況下adb shell ip addr show rmnet0
rmnet0
或adb shell cat /sys/class/net/rmnet0/mtu
在rmnet0
情況下(如@patedit 所述)1480,我相信,但您可以通過使用ifconfig $DEVICE
和根設備進行檢查,並檢查那里的 MTU。
對於大多數網絡訪問,MTU 可以通過 MTU 發現解決。 您可以使用具有不同有效載荷大小的 Ping 命令,並且不要分段查找克萊斯勒值。 祝你好運
無需ROOTING您的手機,您可以使用來自Windows/Mac/Unix系統的ping命令。 但是, ping
-options 的語法對於不同的操作系統是非常不同的。
你可以從你的手機共享互聯網連接,然后從任何連接到你的 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.