术语说明
P2P隧道出口端:一个P2P隧道会存在一个隧道出口。P2P隧道出口端要求可以通过IP直接访问到TCP服务器地址。
P2P隧道入口端:一个P2P隧道会有一个或者多个隧道入口端。一般P2P隧道入口端会运行在远端局域网,不能直接通过IP访问TCP服务
设备端:P2P隧道客户端,主要用来连接设备的TCP服务器的P2P隧道客户端程序。作为隧道出口端。
客户端:P2P隧道客户端,主要用来转发TCP请求到设备端TCP服务器的P2P隧道客户端程序。作为隧道入口端。
设备端ID:设备用来登录到P2P隧道服务器的验证字段。
客户端ID:手机或者PC端用来登录到P2P隧道服务器的验证字段。
隧道模块客户端有什么特征?
隧道模块的客户端是完全对等的,所有的客户端都可以通过配置作某个隧道的出口端或者入口端,所有的客户端都需要有一个ID用来登录到P2P隧道服务器。
怎样生成和验证客户端的ID?
问题详细描述:
客户希望构建一个非对等网络,客户端主要作为隧道的入口,同时客户端可能分发到其他用户手中,不方便在服务器生成ID然后分配给客户端。那么这时可以利用某种规则在客户端生成ID,同时在服务器端定制某种规则去验证这样生成的ID。
这样就需要知道获取手机或者其他客户端设备中存在的特征数据,比如获取MAC地址,手机的IMEI等等,然后通过一些算法来计算出这个ID。
同时还可以在P2P服务插件中编程对这样生成的ID做特别的认证。这个可以在安装好P2P隧道服务器后通过阅读服务器安装包中附带的《pgTunnelSvr 服务器端开发手册 v1.8.doc》来获取P2P服务器插件编程的相关知识。
示例:
1.客户端ID生成方式:
Mac地址加UUID
2. P2P隧道服务器验证方式:
3. P2P隧道服务器插件验证示例代码: