如何将iAMT SOL的传输速度提高到默认的十倍

时间:2020-12-11 14:28:24
了解Intel AMT SOL特性的人都知道,SOL是串口传输,速度不是很快。我算了一下,即使SOL使用的串口能够达到115200 比特率,其最大速度也就是115200 bits/s= 14400 bytes/s,也就是说理论上最大值是将近14KB/s的速度。 基于SOL特性,我们自己开发了一个工具,我们暂时叫做“应急网络通道”,解决的问题是在客户端操作系统的物理网卡驱动级别发生故障,或者是配置错误TCP/IP参数的时候,提供另外一条网络通道,这个通道是基于SOL,但网络应用程序可以直接在上面以Socket的方式传数据,而无需了解SOL的传输方法和参数。在我们这个工具开发出来以后,我们计划是能够让Windows远程桌面流畅运行。初步的测试结果时,在用FTP方式传文件时,最大的网络速度大概能达到 12.5 KB/s,考虑到一定的封装损耗后,实际值和上面的理论值基本差不多。在这个速度上,Windows远程桌面只能很满的运行,停滞、等待的感觉比较重。

      我是一个在技术上信心比较强的人,根据我对iAMT的理解,觉得速度不应该只有这么多,应该能更快。因为,SOL Serial COM Port只是一个虚拟的串口,其应该是通过HECI驱动直接和ME交互的,应该有与物理串口不一样的特性和速度,所以我坚信SOL能有一个更快的速度。坚持不懈就有结果,参天不负苦心人,很幸运,经过我不断实验,不断调优程序在串口读写上的性能,以及设置不同的SOL串口参数。突然,在用FTP测试文件传输速度时,速度达到了78KB/s,非常吃惊,这个速度比512Kb的ADSL还要快了;马上测试Windows远程桌面,乖乖,相当流畅了,和通过512K ADSL访问效果差不多了。

     后来自己在核对测了一下,发现问题时串口的UART FIFO参数设置的问题,默认情况下,驱动安装好后,这个参数是没有测试的,也就是在注册表中没有相关的参数值。如果通过驱动属性那个界面手动设置后,只需要点击一下“默认值”按钮就可以,注册表中就有相应的值了。注册表中的值应该是这样:[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\PCI]下面设置这几个参数:
        ForceFifoEnable    REG_DWORD    0x000000001
        RxFIFO             REG_DWORD    0x00000000e
        TxFIFO             REG_DWORD    0x000000010

        你可以通过DTK工具包中的Intel AMT Terminal工具来测试,测试文件的传输,你能够发现网络的利用率从原来的 0.09%(大约是90Kb/s) 提升到了 1%(大约是1Mb/s),也就是有超过10倍的提升。

        在我们自己开发的工具里面,程序在加载时候就自己会把上述串口参数加入到注册表中,这样,通过我们的工具在串口上传输任何网络数据就能达到一个相对理想的状态了(因为,大家对512K的ADSL宽带速度还是能够接受的)。

8 个解决方案

#2


恩,顶

#3


继续顶

#4


快乐顶贴,快乐看贴,快乐学习。

#5


路过 留个手印

#6


支持下

#7


  mark之!!!

#8


必须 要顶

#1


#2


恩,顶

#3


继续顶

#4


快乐顶贴,快乐看贴,快乐学习。

#5


路过 留个手印

#6


支持下

#7


  mark之!!!

#8


必须 要顶