首页
学习
活动
专区
圈层
工具
发布

WinSCP 远程p2p上传文件到webdav异常

当前测试 WinSCP 通过P2P远程访问webdav服务器,网络框架如下:

WinSCP --> p2p tunnel client --> p2p tunnel server --> remote webdav server

就是本地 WinSCP 通过 p2p tunnel隧道,访问远端的 webdav server;

当前,遇到一个问题,就是WinSCP上传一个小文件的时候,WinSCP 客户端出现 socket 连接异常超时。

具体分析如下:

1. WinSCP 执行 PUT 操作,上传一个文件;

2. WinSCP 执行 PUT 操作,发送给 p2p tunnel client; 那么,p2p tunnel client为了提供通信效率,分配一个大缓存 send buffer;

此时,p2p tunnel client 快速接收 WinSCP 的PUT操作;

3. WinSCP 上传一个小文件,只需要1秒钟,就可以上传完数据。其实,这个数据没有传输到 远端 remote webdav server;

此时,存储本地 P2P tunnel client;

那么,WinSCP 就等待3秒钟左右,没有收到 webdav 协议数据包,就认为 socket 连接异常。

针对这个情况,无法改变WinSCP。就考虑增加一个 webdav agent 代理,如下:

WinSCP --> local webdav server agent --> p2p tunnel client --> p2p tunnel server --> remote webdav server

增加一个 local webdav server agent 本地的 webdasv 代理。

那么,WinSCP 发送数据,发送给本地 local webdav server agent;

例如,执行 PUT 上传文件,就上传给 local webdav server agent,此时,local webdav server agent 执行2个操作:

1. 把数据转发给 p2p tunnel client;

2. 给WinSCP 返回 http 102 状态码,表示请求还在继续运行;

这样就解决WinSCP无法及时获取 webdav server 返回数据,提示连接超时异常。

但是,由于增加了 local webdav server agent 节点,也导致通信速率下降。

有好办法的同学,也帮忙给点意见,谢谢了哈

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OejuZiZNYxSdZlsWXnpM5yGA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。
领券