V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xingyue
V2EX  ›  远程工作

FRP+RDP, 30ms 下窗口拖动卡顿是必然的吗?

  •  
  •   xingyue · 2020-03-05 17:58:16 +08:00 · 5056 次点击
    这是一个创建于 1714 天前的主题,其中的信息可能已经有所发展或是发生改变。

    环境:
    杭州阿里云 t6 实例按量付费,带宽 23Mbps (峰值)
    本地湖北移动 ping=>t6 26ms,稳定
    公司杭州电信 ping=>t6 4ms,稳定
    frp 基本默认配置,开启了 tls tls_enable = true

    表现:
    显示非常清晰,但是快速拖动窗口和切换窗口时,常常会感到明显的延迟和掉帧的感觉。
    疑惑:
    用了一下午 rdp 跑的流量居然只有一百多兆,带宽几乎没用过,rdp 体验设置项默认自动选择连接质量,后来也试过(wan/lan >10M),延迟感并没有消失。我打 LOL 40-60ms 走位都可以回流身法为啥到了 RDP 这里不行了呢?

    ps:frp 的这个流量统计每次我断开了 rdp 才会统计,似乎非实时; frp 的几乎不用 cpu。。。(赞)
    frp 流量统计图
    阿里云实例统计图

    16 条回复    2020-03-06 09:08:23 +08:00
    kokutou
        1
    kokutou  
       2020-03-05 18:19:34 +08:00
    30ms 。。。

    你可以试试把笔记本接在电视机上。
    试试增加 30ms-60ms 的延迟是什么感觉。
    kokutou
        2
    kokutou  
       2020-03-05 18:20:10 +08:00
    云桌面做不起来,很大原因就是这个延迟。。。
    xingyue
        3
    xingyue  
    OP
       2020-03-05 20:00:13 +08:00
    @kokutou #1 那为啥打游戏的时候 60ms 以下都感觉不出来,求关键词。。。
    kokutou
        4
    kokutou  
       2020-03-05 20:11:18 +08:00
    @xingyue #3
    输入延迟
    找电视的输入延迟对比看看。
    windyland
        5
    windyland  
       2020-03-05 20:13:47 +08:00 via Android
    我 1Mbps 都不会非常明显的感到卡顿
    Buges
        6
    Buges  
       2020-03-05 20:19:22 +08:00 via Android   ❤️ 2
    @xingyue 因为你打游戏的时候画面是本地渲染的,而那个延迟是与服务器交换数据的网络延迟。
    比如你点一下人物移动,本地客户端立刻渲染往那里移动的动画同时向服务器发送你点位置的坐标,服务器接收并计算后再向其他玩家同步,几十 ms 后其他玩家的客户端接受到数据开始渲染你移动的动画。大概是这么个流程,还有一些预测之类的技术,并且所有人都有延迟,所以除非太高不然你基本无感。
    远程桌面则是服务端渲染画面,即使微软的 rdp 黑科技把部分工作移到客户端也会有一定的延迟,VNC 这种纯粹传输画面且要编解码的协议更加明显。
    cst4you
        7
    cst4you  
       2020-03-05 20:23:10 +08:00
    试试 zerotier 打满带宽看看, 然后走内网 IP 用 anydesk
    Ultraman
        8
    Ultraman  
       2020-03-05 20:24:23 +08:00
    #6 那个例子,你去找个人跟你玩多人的跳一跳看一下双方的屏幕就一目了然了
    kokutou
        9
    kokutou  
       2020-03-05 20:40:03 +08:00
    你对游戏程序的输入延迟是很低的,可能就几毫秒,鼠标点击,窗口移动,键盘输入都是几毫秒这样。游戏都是立刻反应的。
    然后游戏里的网络延迟是 60ms,这个可以优化的,其中一种方法就是本地先立即移动,输入发送到服务器,服务器同步后发送回客户端,再立即修正显示的位置。
    就是那种延迟 1000 多 ms 或者网络不稳定丢包的时候,你人动了然后又回到了原地,这种情况遇到过吧。。。

    你看到网络 30ms,不等于你的操作输入了,然后远程桌面显示这个之间的延迟也是 30ms。。。实际上程序捕捉输入,编码,传到远端输出输入的数据,然后等程序反应,远程桌面在截取到了反应数据,传送回来,解码,再显示等等,这除了传输的 30ms,还有别的开销。。。
    dremy
        10
    dremy  
       2020-03-05 21:50:07 +08:00 via iPhone
    云游戏了解一下,这就是不被看好的原因
    xcstream
        11
    xcstream  
       2020-03-05 23:38:04 +08:00
    游戏是本地先动的再同步
    LU35
        12
    LU35  
       2020-03-05 23:48:42 +08:00   ❤️ 1
    @xingyue
    你说的卡顿好像是由画面算法导致的.
    同样尝试过用阿里云 frp 中转 rdp,也试过使用 zerotier 直接打洞本市跨带宽直连.拖动窗口都有明显的卡顿感觉.
    但是使用 teamviewer 却非常流畅.而 teamviewer 国内也是用的阿里云中转.
    所以最大的可能还是显示算法的问题.
    henvm
        13
    henvm  
       2020-03-06 00:11:46 +08:00 via Android
    @LU35 对是这个感觉,我试过局域网 rdp 连另外台电脑上的 steam 游戏就不正常。teamviewer 连就正常。注意哦是本地局域网测试。
    LU35
        14
    LU35  
       2020-03-06 00:16:06 +08:00
    @henvm 尝试过各种办法,最后还是用回 teamviewer 了.
    如果你发现更好的解决方案,麻烦留言 @下.
    hanxiV2EX
        15
    hanxiV2EX  
       2020-03-06 09:07:51 +08:00 via Android
    windows 上 vnc 服务端就行了,把 vnc 的端口映射出去。有个免费的 windows 版,用过一阵时间,忘记名字了。
    hanxiV2EX
        16
    hanxiV2EX  
       2020-03-06 09:08:23 +08:00 via Android
    @LU35 用 vnc 试试
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4772 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 04:02 · PVG 12:02 · LAX 20:02 · JFK 23:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.