USB 2.0 手机用 WiFi 6-7 直连电脑的高速文件传输(VBS+PowerShell+Batch)
手机行业已然成熟,然而即使是 2024 年最新的产品也充满了 USB 2.0 的陷阱。不慎被屏幕、处理器、内存或电池技术忽悠,下单后发现踩雷怎么办?本文将肩负这一难,提供一套简单的IT方案。因此,这套方案必须尽可能简单,不需要预装运行环境,同时操作逻辑无限接近插数据线文件传输(MTP)。
教程难度:中高
- 需要亿点 CMD 和 PowerShell 使用经验
- 需要修改安卓系统应用耗电/电源管理功能
- 需要操作开发者选项
方案优势
- 省去一个 WiFi 6 路由器的成本,却比电脑到手机之间中继一个路由器要更快
- 由于 FTP 传输并不影响 MTP,因此本方案可以实现 FTP+MTP 或 FTP+ADB pull-push 双线路传输,从而:
- 大幅提高 USB 3.0 手机的峰值传输速度
- 小幅提高 USB 2.0 手机的峰值传输速度
注:本教程处于发布初期,有问题请留言
传输速度预期
广告说,WiFi 6 802.11ax 6Ghz 的传输速度是 10 Gbps / 1250 MBps。但实际情况是 5GHz 频率的信号宽度下,WiFi 6 的基准速度只有 1.2 Gbps / 1200 Mbps / 150MBps。PCHardware 测试了多款路由器后得到的情况是 5 Ghz 下最多只有 839 Mbps / 104.9 MBps。可以断定,这个速度数据虽远低于广告宣传,且远低于 USB 3.0 受 MTP 拖累后所剩的 250 MBps,但也远比 USB 2.0 的 42 MBps 要快。
- 图:对比多款 WiFi 6 路由器的速度,来源:PCHardware
- 因此,的传输预期是 100 MBps / 800 Mbps 左右,最大 150 MBps / 1200 Mbps。同时也反映了没有 USB 3.0 的手机具体残废到了何种程度。
使用场景(Use Case)
- α:下载视频与字幕到电脑,再一并传输到手机上观看。产生每月从电脑传输几次 16~90 GB 文件到手机的高顺序读写需求
- β:将整部手机录制拍摄的内容导出到电脑,或从电脑导入到手机以备份,代表 100~400 GB 的高顺序读写,高随机读写需求
- γ:在配置新手机的时候,用 TWRP 之类的 Recovery 工具做手机全系统存档点备份,然后传给电脑保存,产生每月从手机传输 50~200 GB 文件到电脑的随机+顺序读写需求
——所以前提是:
- 兼容:最少要支持 UTF-8 文件名
- 易用:必须支持一次传输超过一个文件
- 隐私:完全不经过网盘或其它第三方服务
- 高速:手机最低需要 UFS 3.0 存储颗粒
- 稳定:传输协议需要高稳定性,至少要比 MTP 稳定
- 高速:电脑至少应该支持 WiFi 6,最好支持 WiFi 6E 或更高
- 稳定:传输过程需要保证手机端的散热和供电,以保证传输的速度和稳定性
- 高速:内容创作者——电脑需要用固态硬盘来保证最高传输速度
步骤
为了减少长篇大论,本文的分析部分会后置,教程部分提前。
配置 WiFi 6-7 的步骤概览
- 检查手机最高支持的 WiFi 规格
- 检查电脑主板最高支持的 WiFi 规格,并确保无线网卡的驱动已经更新到最新
- 手机安装 Servers Ultimate 并简单配置一个 FTP 服务器
- 手机端设置热点到支持的最高规格
- 手机关闭 WiFi 和移动数据,并创建 WiFi 6 / 802.11ax 热点
- 电脑连接手机的热点
- Windows 端将脚本保存为批处理并运行
注:Windows 端的防火墙不用额外设置,其 允许的应用
里 FTP 服务器
的栏目是将 Windows 作为 FTP 服务器的用途,不是连接 FTP 服务器
注:Windows 端不建立 FTP 服务器是因为操作过程会变成手机进入电脑找文件下载,而不是电脑上传到手机的特定文件夹,与 MTP 传输文件的操作逻辑不符
检查手机与电脑最高支持的 WiFi 规格
浏览器中搜索自己拥有手机的型号,然后在 技术规格 Technical Specification / Specs
页面查找:“802.11”或“WiFi”;如果有“ax”,WiFi 6 等字样就代表手机支持。
- 如果标注了“160 MHz”,则代表支持速度更快的 WiFi 6E
- 如果有“be”,WiFi 7 字样则代表支持速度快于 WiFi 6E 的 WiFi 7
- 图:一加 Ace 3 的 WiFi 规格
- 图:一加 8 的 WiFi 规格
- 图:小米 12 的 WiFi 规格
- 注:这里小米官网把 Ghz 写错成 G 了,是比较常见的过度缩写
其它支持 WiFi 6 的手机列表:
目前较新的英特尔平台独占了 BE200NGW,Killer BE1750x 等 WiFi 7 网卡。而 AMD 最新的 x670/b650 平台没有任何支持 WiFi 7 的方案。无线网卡的最新驱动可以在主板或笔记本厂商官网上查找和下载。
手机端配置 WiFi 热点
- 设置一个熟悉的热点名称
- 关闭移动数据网络共享(必选),蓝牙网络共享(必选),USB 网络共享(必选),和 WiFi 网络共享(可选)
- 设置信号频段为 5.0 Ghz,或手机和电脑同时支持的最高频段
- 此处的使用场景是手机可以直接放在电脑的 WLAN 天线上,所以只要电脑支持,就可以设置为 6 Ghz,尽管支持的手机和电脑可能很少
- 设置为使用 WiFi 6 标准热点,或手机和电脑同时支持的最高标准
图:一加 8 的 WiFi 热点设置。
注:经调查,结论是只要手机支持 WiFi 6,安卓系统就会开放指定 WiFi 6 热点的选项,若不支持则更可能是手机厂商的限制
注:Windows 系统目前最高支持创建 WiFi 5 / 802.11ac 热点
手机端配置 FTP 服务器
FTP 服务器中,安卓手机的选择是 Servers Ultimate 或 Servers Ultimate Pro。它搭载的 FTP 服务器不是一般的 FTP 服务器——而(很可能)是全安卓唯一支持传输 UTF-8 文件名的 FTP 服务器。配置过程很简单:
- 打开 Servers Ultimate,进入
Servers
菜单 - 点击右上角的
+
- 在打开的界面下滑并点击
FTP Server
- 点击新添加的服务器以进入配置菜单
- 设置端口号
Port
为 9999,或为了与别的服务器区分而起个名字右划进入
Specific
菜单,可以看到Encoding
栏目设置为Automatic
- 如果需要配置专门的用户账户登录,则右划到
Users
栏目配置 - 其中
Passive ports range
代表被动端口,也就是客户端不直接连接刚才设置的主动端口号的补救措施,无需设置
- 如果需要配置专门的用户账户登录,则右划到
- 在下栏选项中勾选“Respawn”和“Enable Partial Wake Lock”,以降低进程被省电功能结束的概率
- 点击右上角的保存完成配置,并回到主菜单,点击
Exit
(⏻)以退出
手机端关闭 Servers Ultimate 的耗电优化
- 设置 --> 电池(--> 更多设置)--> 应用耗电管理 --> Servers Ultimate 中,启用“允许完全后台行为”
- 设置 --> 电池(--> 更多设置)--> 耗电异常优化 --> Servers Ultimate 中,选择“不优化”
- 设置(--> 更多设置/其它设置)--> 开发者选项 --> 打开“停止限制子进程”
Windows 配置 WiFi 文件共享权限
由于 Windows 会将 IP 地址不同的热点视为新的公用网络,而公用网络不可以传输文件或打印,所以每次连接都要设定连接种类为专用网络。解决方法是将以下 PowerShell 脚本储存为任意后缀为 .ps1
的文件,建议命名为 Windows-NetworkProfileToPrivate.ps1
,并与下面的批处理置于同一文件夹目录下,否则记得在下面的批处理中更改打开这个 PowerShell 脚本的文件名和路径
# 获取管理员权限 1
function Test-Admin {
$currentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())
$currentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
}
#获取管理员权限2
if ((Test-Admin) -eq $false) {
# Get the script's directory
$scriptPath = $MyInvocation.MyCommand.Path
$scriptDirectory = Split-Path $scriptPath -Parent
# 在脚本位置打开具有管理员权限的 PowerShell
# Start the elevated process in the script's directory
Start-Process powershell.exe -Verb RunAs -ArgumentList ("-noprofile -file `"{0}`" -elevated" -f $scriptPath) -WorkingDirectory $scriptDirectory
exit
}
echo $SelectedSSID
# 检查是否有符合条件的连接
# Check if there is valid connections
if ((Get-NetConnectionProfile -InterfaceAlias WLAN -IPv4Connectivity LocalNetwork -NetworkCategory Public -ErrorAction SilentlyContinue) -eq $null) {
Write-Warning "× 没有可供更改的网络连接,或之前已经修改公用连接为专用"
Start-Sleep -Seconds 1
exit
}
# 获取批处理导出的 WLAN SSID
$ssidFile = Join-Path (Get-Location) "temp_wlan_ssid.txt"
$SelectedSSID = Get-Content $ssidFile
# 根据 $SelectedSSID 参数获取待修改的网络
# Get the network to modify connection, specified by parameter $SelectedSSID
$network = Get-NetConnectionProfile -InterfaceAlias WLAN -IPv4Connectivity LocalNetwork -NetworkCategory Public `
| Where-Object { $_.Name -match $SelectedSSID }
Write-Host "`n无线网络的 SSID 为:"$network.Name
# The SSID of specified WLAN is: " + $network.Name
# 检查并纠正多个匹配的链接到一个
if ($network.GetType().BaseType.Name -eq "Array") {
Write-Warning "`n?:同一个无线网络 SSID 匹配了多个连接的无线网络,将选择其中的第一个"
$network = $network[0]
}
# 将无线网络连接配置从公用改为专用
# Change public connection to private
Set-NetConnectionProfile -InputObject $network -NetworkCategory Private
# 将无线网络连接配置从专用改为公用
# Change private connection to public
# Set-NetConnectionProfile -InputObject $network -NetworkCategory Public
# 展示更改结果
# Show result
Write-Host "`n更改结果:"
Get-NetConnectionProfile -InterfaceAlias WLAN -IPv4Connectivity LocalNetwork | Select-Object Name,InterfaceAlias,NetworkCategory,IPv4Connectivity,DomainAuthenticationKind
Start-Sleep -Seconds 2
exit
配置 Visual Basic(VBS)脚本
该脚本用于在 Windows 我的电脑/此电脑/文件资源管理器首页添加 FTP 服务器的网络位置。解决用户意外关闭窗口后,难以重新在文件资源管理器中回到原本窗口的问题。
- 由于每次打开移动热点,手机的网络地址都会改变,所以用完后应右键-删除网络地址
' Credit: (MC ND, Andrew Morton) https://stackoverflow.com/questions/30912161/add-new-network-location-not-map-network-drive
Option Explicit
Function CreateNetworkLocation( networkLocationName, networkLocationTarget )
Const ssfNETHOOD = &H13&
Const fsATTRIBUTES_READONLY = 1
Const fsATTRIBUTES_HIDDEN = 2
Const fsATTRIBUTES_SYSTEM = 4
CreateNetworkLocation = False
' Instantiate needed components
Dim fso, shell, shellApplication
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set shell = WScript.CreateObject("WScript.Shell")
Set shellApplication = WScript.CreateObject("Shell.Application")
' Locate where NetworkLocations are stored
Dim nethoodFolderPath, networkLocationFolder, networkLocationFolderPath
nethoodFolderPath = shellApplication.Namespace( ssfNETHOOD ).Self.Path
' Create the folder for our NetworkLocation and set its attributes
networkLocationFolderPath = fso.BuildPath( nethoodFolderPath, networkLocationName )
If fso.FolderExists( networkLocationFolderPath ) Then
Exit Function
End If
Set networkLocationFolder = fso.CreateFolder( networkLocationFolderPath )
networkLocationFolder.Attributes = fsATTRIBUTES_READONLY
' Write the desktop.ini inside our NetworkLocation folder and change its attributes
Dim desktopINIFilePath
desktopINIFilePath = fso.BuildPath( networkLocationFolderPath, "desktop.ini" )
With fso.CreateTextFile(desktopINIFilePath)
.Write "[.ShellClassInfo]" & vbCrlf & _
"CLSID2={0AFACED1-E828-11D1-9187-B532F1E9575D}" & vbCrlf & _
"Flags=2" & vbCrlf
.Close
End With
With fso.GetFile( desktopINIFilePath )
.Attributes = fsATTRIBUTES_HIDDEN + fsATTRIBUTES_SYSTEM
End With
' Create the shortcut to the target of our NetworkLocation
Dim targetLink
targetLink = fso.BuildPath( networkLocationFolderPath, "target.lnk" )
With shell.CreateShortcut( targetLink )
.TargetPath = networkLocationTarget
.Save
End With
' Done
CreateNetworkLocation = True
End Function
' Main script logic to handle parameters
Dim networkLocationName, networkLocationTarget
If WScript.Arguments.Count < 2 Then
WScript.Echo "Usage: script.vbs networkLocationName networkLocationTarget"
WScript.Quit 1
End If
networkLocationName = WScript.Arguments(0)
networkLocationTarget = WScript.Arguments(1)
If CreateNetworkLocation(networkLocationName, networkLocationTarget) Then
WScript.Echo "Network location created successfully."
Else
WScript.Echo "Failed to create network location."
End If
配置批处理脚本
安卓系统底层会生成不可更改的,随机生成移动热点 IP 地址的类 DHCP 机制,也就是说每次打开热点,IP 地址都会改变(真的...唉)。因此需要一套批处理脚本来选择正确的 IP 地址,传输协议,以及端口号,再调用 explorer.exe
才能打开正确的 FTP IP。
注:该批处理会调用同路径下的.ps1,.vbs两个文件。如果需要更改文件名,则应当在批处理对应的位置中一并更改:
%~dp0\Windows-CreateNetworkLocation.vbs
%~dp0\Windows-NetworkProfileToPrivate.ps1
解决方法是将如下的命令储存为批处理脚本,如 Windows-Explorer-FTP-Connect.bat
:
chcp 65001
@echo off
REM 设定 SSID 到你设置的移动端 FTP/HTTP 服务器端口号,如2121,2221
set port=9999
set http_port=8080
REM 待自动设置的服务器地址变量
set store=""
echo:
echo 1. 检查是否已连接到热点网络。未连接时什么都不会显示,可输入 Ctrl+C 以退出
echo:
echo 2. 检查系统输入法是否切换到英文,否则无法输入 y/n
echo:
netsh wlan show interface | findstr /C:"Description" /C:"SSID" /C:"Radio" /C:"Transmit" /C:"Receive" /C:"Signal" /C:"State"
echo:
echo 刚刚连接到无线热点时,Windows 需要 30 秒的时间完成配置,请等待,然后手动继续
pause
echo:
setlocal enabledelayedexpansion
REM 查找 IPv4 地址中,所有的 Default Gateway 行,通过": " 实现分离
REM 目标是得到如 "Default Gateway . . . . . . . . . : 192.168.43.129" 中的 IP 地址
for /f "tokens=2 delims=:" %%a in ('ipconfig ^| findstr /i "Default Gateway"') do (
REM 提取 Default Gateway 地址
set ip=%%a
REM 去除可能存在的前导空格
set ip=!ip:~1!
REM 将 Default Gateway 地址分割成四个 octet
for /f "tokens=1-4 delims=." %%b in ("!ip!") do (
set _o1=%%b
set _o2=%%c
set _o3=%%d
set _o4=%%e
)
REM 用户确认是否将该 IP 地址储存到 FTP/HTTP 服务器变量中
set /p "store=?. FTP 服务器的地址是否为 !_o1!.!_o2!.!_o3!.!_o4! (y/n): "
if /i "!store!"=="y" (
REM 将 IP 地址存储到变量中
set "stored_ips=!_o1!.!_o2!.!_o3!.!_o4!"
REM 离开循环
goto :EndLoopI
)
)
:EndLoopI
REM 没有 FTP/HTTP 地址可用时退出
if "%stored_ips%"=="" (
echo:
echo 没有 FTP 地址可用,或没有在正确的地址上输入 y 以确认,按任意键退出
pause
goto :End
)
echo:
echo 2. 获取无线热点网络的名称(SSID),从而将网络类型从公用改成专用
echo:
REM 2. 网络类型必须为专用,否则不能传输文件
REM 用于储存 WLAN SSID 的变量
set "wlan_ssid="
REM 列举所有已连接的无线网络,用户选择正确的 SSID
for /f "tokens=1,* delims=:" %%A in ('netsh wlan show interfaces ^| findstr "\<SSID\>"') do (
REM 提取 SSID 名称
set wlan_ssid=%%B
REM 去除可能存在的前导空格
set wlan_ssid=!wlan_ssid:~1!
set /p "store=?. 无线热点的 SSID 是否为 !wlan_ssid! (y/n): "
if /i "!store!"=="y" (
REM 离开循环
goto :EndLoopII
)
)
:EndLoopII
REM 没有 SSID 可用时退出
if "!wlan_ssid!"=="" (
echo:
echo 没有 SSID 可用,或没有在正确的地址上输入 y 以确认,按任意键退出
pause
goto :End
)
REM 导出 SSID 到当前路径
echo !wlan_ssid! > %~dp0\temp_wlan_ssid.txt
REM 将 SSID 发送到 PowerShell 脚本中,以更改网络类型到专用
start /wait powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%~dp0\Windows-NetworkProfileToPrivate-ZH.ps1"
echo ?. 在连接无线热点 30 秒内执行此脚本,会因为 Windows 尚未创建 WLAN Profile 而导致找不到配置文件,如果遇到则使用 Ctrl+C 以立即退出此脚本
echo ?. 正常运行时,该脚本会显示一个 Get-Content 错误,请无视
timeout /t 1
del %~dp0\temp_wlan_ssid.txt
REM 3. 用户选择传输协议类型。FTP 速度最快也最不安全,SFTP/FTPes 的速度受到 openSSL 限制
echo:
echo 当前的 FTP 服务器端口号配置为 %port%,HTTP 服务器端口号配置为 %http_port%
:prompt
set /p "pr=文件服务器使用哪种传输协议 [1: FTP/FTPes | 2: SFTP | 3: HTTP]?: "
REM 限制用户输入内容到 1-3
if "%pr%"=="1" (
echo:
echo ...选择了 FTP/FTPes 文件服务器
) else if "%pr%"=="2" (
echo:
echo ...选择了 SFTP 文件服务器
) else if "%pr%"=="3" (
echo:
echo ...选择了 HTTP 文件服务器
) else (
echo 输入异常,请重试
goto prompt
)
echo:
echo 请检查 FTP 服务器是否启动再继续。
REM 4. 根据用户选择的协议得到完整的地址
if %pr%==1 set "proto=ftp://"
if %pr%==2 set "proto=sftp://"
if %pr%==3 set "proto=http://"
if %pr%==3 set "port=%http_port%"
echo:
set /p "store=确认打开 FTP/HTTP 服务器地址: %proto%%stored_ips%:%port% (y/n): "
if /i %store%==y (
echo 4. 正在创建网络位置:我的电脑/此电脑\!wlan_ssid!
echo 由于每次打开移动热点,手机的网络地址都会改变,所以用完后应删除网络地址 !wlan_ssid!
echo %~dp0Windows-CreateNetworkLocation.vbs "!wlan_ssid!" "%proto%%stored_ips%:%port%"
cscript //nologo %~dp0\Windows-CreateNetworkLocation.vbs "!wlan_ssid!" "%proto%%stored_ips%:%port%"
echo:
echo 正在打开: %proto%%stored_ips%:%port%
start %SystemRoot%\explorer.exe "%proto%%stored_ips%:%port%"
echo:
echo 5. 如果要传输的文件名有特殊字符,则传输到 FTP 服务器会导致错误 501
echo 可将含特殊字符文件名的文件放置于文件夹中,或将其所在的文件夹传输到 FTP 服务器
echo:
echo 6. 传输完成后应首先在电脑端断开 WLAN,再关闭其他服务
echo 由于每次打开移动热点,手机的网络地址都会改变,所以用完后应删除网络地址 !wlan_ssid!
)
echo:
echo FTP 窗口会自动打开,请等待 50~90 秒,传输完成后请按 Enter 继续...
pause
REM 5. 删除当前 WiFi Profile
echo 正在删除当前 SSID 无线配置,以避免下次使用时需要等待的时间增加
netsh wlan delete profile name="!wlan_ssid!"
echo:
echo 如果以下列表中有其它无线热点,则会导致每次使用时需要等待的时间增加,使用 netsh wlan delete profile name="SSID名称" 删除
netsh wlan show profiles
pause
:End
这个批处理脚本会临时生成一个文本文件,以便前面的 PowerShell 脚本导入(直接作为参数导入时,会与 PowerShell 脚本获取管理员权限的功能冲突),并且自动在过程中打开前面的 PowerShell 脚本,同时。利用 Windows 系统中自带的 explorer.exe
完成 FTP 的访问读写操作,从而尽可能接近 MTP 的使用体验。
开始传输
注意:请按顺序操作
- 手机关闭无线网络
- 如果之前配置 WiFi 热点时,未选择不共享移动数据,则此处还要关闭移动数据
- 手机打开热点
图:此时手机的 IP 地址会变成热点的 IP 地址,而不是无线网络下的 IP 地址
- 电脑连接手机的移动热点
- **手机打开
Servers Ultimate --> Servers --> 运行之前创建的 FTP
- 保持手机屏幕打开,否则手机系统会为省电而结束 FTP 进程
- 运行上述
Windows-Explorer-FTP-Connect-以管理员身份运行.bat
脚本- 进行每一步都读一下说明,不要狂按回车
- 在第二步中会打开一个 PowerShell 窗口以获取管理员权限
- 看到
explorer.exe
正常打开了 FTP 传输,就完成了
方案分析
可以看到,这套方案无论是配置还是使用,都足够方便和快速。同时:
- 传输的功能本身不与 WiFi 规格绑定,因此也会支持未来的 WiFi 7,8,9,从而变得更快
- 传输大文件的时候将手机放在距离电脑 WiFi 天线 0.1 毫米左右的距离还可以变得更快
- 可以按
Ctrl+Shift+Esc
打开任务管理器来观察连接的协议和传输速度。如: - 此处峰值 890 Mbps / 111.25 MBps,比前文 PCHardware 测试路由器得到的 839 Mbps / 104.875 MBps 快了 51 Mbps / 6.375 MBps
- 考虑到一加 8 是较早支持 WiFi 6 的机型,在散热和技术限制下无法传输的更快了,但新的手机可以期待跑满峰值的 1.2Gbps / 150 MBps
- 一加 Ace 3 可以跑满 WiFi 6E 的极限速度,峰值大约在 980Mbps(下图 1),但可能是因为协议的关系,每隔一小段时间网速就会跌到 890Mbps(下图 2)
进一步提高操作效率
- 如图。
缺陷
- 需要管理员权限
- 由于手机系统往往会采用激进的省电策略,所以就算解除了所有电池优化项目,一旦关闭屏幕则系统会杀死FTP服务器
- 如果一开始使用机械硬盘,那么 WiFi 5、6 和 USB 3.0 MTP 传输的速度都会遇到瓶颈
- Servers Ultimate 是试用软件,如果没有经常传输大文件(如摄影和录制)的需求,则可能不适合解除试用
- 支持 UTF-8 文件名,也就是不支持 UTF-16(NTFS)的文件名,因此特殊情况下仍然需要重命名删改繁体,异体汉字
- 可以先打包成
.zip
再发送,接收端接收完了再解压 - 除非有人开发出支持 UTF-16 文件名的 FTP 服务器,并且做一个移动端界面才有希望支持
- 可以先打包成
传输速度列表
虽然实际情况有快有慢,但此处只使用了实际速度来判断瓶颈大小。
手机端存储协议(MTP 限制下)
“协议”代表与实际速度无关的标准最大带宽。NAND 闪存决定了实际速度,但使用比闪存速度更慢的协议也会限制最大速度。
“受限”代表手机和电脑间使用了 Media Transfer Protocol (MTP) 传输文件。这对传输速度的影响极大,一般会使传输速率减半,因此通过乘以 0.5 来受限的传输速度。
另外,MTP 的稳定性也很差,有时连旗舰手机的使用体验都不好:
存储协议 | UFS 2.2 MTP | UFS 3.0 MTP | UFS 3.1 MTP | UFS 4.0 MTP |
---|---|---|---|---|
受限顺序读/写 | 500/130 MBps | 1050/205 MBps | 1050/600 MBps | 2100/900 MBps |
换算一 | 4000/1040 Mbps | 8400/1640 Mbps | 8400/4800 Mbps | 16800/7200 Mbps |
换算二 | 4/1 Gbps | 8.4/1.64 Gbps | 8.4/4.8 Gbps | 16.8/7.2 Gbps |
电脑端的存储(平均)
存储协议 | SATA 3.0 HDD | SATA 3.0 SSD | PCIE 3.0 SSD | PCIE 4.0 SSD |
---|---|---|---|---|
标称顺序读/写 | × 150/130 MBps | × 550/550 MBps | × 3500/3500 MBps | × 5000/5000 MBps |
换算一 | 1200/1040 Mbps | 4400/4400 Mbps | 28000/28000 Mbps | 40000/40000 Mbps |
换算二 | 1.2/1.04 Gbps | 4.4/4.4 Gbps | 28/28 Gbps | 40/40 Gbps |
USB 的传输速度
下表的“真实速度”代表去掉了传输开销条件,包括数据包的结构,校验,编码数据宽度等保证数据正常传输的措施数据后,留给数据的传输速度。一般会占用 25%~35% 的传输带宽。此处通过将标称速度乘以 0.7 得到:
传输技术 | USB 2.0 | USB 3.2 Gen 1 / 3.0 | USB 3.2 Gen 2 / 3.2 | USB 3.2 Gen 2x2 |
---|---|---|---|---|
标称速度 | × 480 Mbps | × 5000 Mbps | × 10000 Mbps | × 20000 Mbps |
真实速度 | 336 Mbps | 3500 Mbps | 7000 Mbps | 14000 Mbps |
换算一 | 0.336 Gbps | 3.5 Gbps | 7 Gbps | 14 Gbps |
换算二 | 42 MBps | 437.5 MBps | 875 MBps | 1750 MBps |
可以看到,从电脑往手机上传输的理论最大速度是 205 MBps 或 1.64 Gbps,而实测 PCIE 3.0 SSD 通过 USB 3.0 传输一份 1GB 的文件到手机,平均速度稳定在 250 MBps,或 2 Gbps。
也可以看到,USB 2.0 真实的传输速度有多么糟糕。那么就这样。
更新信息
- 增加了 PowerShell 更改网络连接为专用的脚本,解决了 PC 重启后 FTP 权限失效问题
- 增加了 Windows 连接热点(相当于初次连接无线网)时需要等待一段时间完成配置的提示
- 改良了 PowerShell 脚本的调用体验,实现了自动关闭窗口
- 改良了批处理脚本选择服务器类型时,拦截输入错误的能力
- 增加了最后删除当前 WiFi 热点配置文件,并展示现有的 WiFi 热点配置文件列表,以防止第二及其后打开 FTP 窗口的步骤被大幅增加延迟的 Window bug
打赏信息
——Buy me a coffee 链接
——PayPal 链接
——新纪录!这玩意现在年收入 20 人民币