KangLin/RabbitRemoteControl

Customized point-to-point protocol [自定义点对点协议]

KangLin opened this issue · 3 comments

Requirement:
Solve the problem of remote control of a host in one intranet through the Internet to control another host in another intranet.
solution:

  1. Point-to-point control
    1.1 Add a point-to-point connection channel to the original protocol
    1.1.1 Discovery of network connectivity: ICE can be used, currently there are the following two open source libraries to support, need to verify which is suitable
    1.1.1.2 ICE library:
    1.1.1.2.1 libnice: https://github.com/paullouisageneau/libjuice
    1.1.1.2.2 libdatachannel: https://github.com/paullouisageneau/libdatachannel
    1.1.2 Define the connection protocol: there is no ready-made connection protocol for remote control, you need to define it yourself.
  2. One-to-many control
    2.1 Add a point-to-point proxy service
    2.1.1 Establish a point-to-point connection channel, the same method as in 1.1.
    2.1.2 To complete the proxy agreement on the point-to-point channel, there are two ideas to determine which is appropriate:
    2.1.2.1 Existing agency agreement (SOCKES 5)
    2.1.2.2 Customized Agency Agreement

需求:
解决处于一个内网主机通过互连网控制另一个处于另一内网中主机远程控制的问题。
解决方案:

  1. 点对点控制
    1.1 在原有协议上增加点对点连接通道
    1.1.1 发现网络连通性:可使用 ICE ,目前有下面两种开源库支持,需要验证哪种合适
    1.1.1.2 ICE库:
    1.1.1.2.1 libnice:https://github.com/paullouisageneau/libjuice
    1.1.1.2.2 libdatachannel:https://github.com/paullouisageneau/libdatachannel
    1.1.2 定义建立连接协议:无现成的针对于远程控制的连接协议,需要自行定义。
  2. 一对多控制
    2.1 增加加一个点对点代理服务
    2.1.1 建立点对点连接通道,与 1.1 中的方法相同。
    2.1.2 在点对点通道上完成代理协议,有下面两种想法需要确定哪种合适:
    2.1.2.1 现有的代理协议(SOCKES 5)
    2.1.2.2 自定义代理协议
  • 优点与缺点
    方法1,需要修改源码,以及原有通信层。
    方法2,如果原来程序支持SOCKET5协议,则不需要修改代码。

方法2,已实现。详见:https://github.com/KangLin/RabbitProxyServer

方法1,已实现。