技术领域
[0001] 本
发明涉及一种车辆维护服务方法,特别是涉及一种基于点对点穿越的WEB访问方法、系统及客户端。
背景技术
[0002] 随着互联网技术的不断发展,我国互联网用户持续增加,传统的WEB服务一般是通过公网IP地址才能访问,比如访问百度,其实是通过百度的公网IP地址才能访问百度的WEB 服务。然而有些WEB服务是架设在内网的,访问内网的WEB服务需要具有公网IP地址做端口转发才能访问。但是目前对于私人或者家庭来说,运营商一般不会分配公网IP地址给此类用户。对于没有公网IP地址的用户来说部署WEB服务,需要通过DDNS之类的服务才能让外网用户访问该WEB服务。
[0003] 综上,
现有技术存在不分配公网IP地址给私人或者家庭用户,外网用户需通过DDNS 之类的服务访问WEB服务的技术特点,现有技术中存在外网的用户无法直接访问内网的 WEB服务的技术问题。
发明内容
[0004] 鉴于以上现有技术的缺点,本发明的目的在于提供一种基于点对点穿越的WEB访问方法、系统及客户端,应用于
机动车辆的启动过程中,为解决现有技术中存在外网的用户无法直接访问内网的WEB服务的技术问题,本发明提供基于点对点穿越的WEB访问方法、系统及客户端,一种基于点对点穿越的WEB访问方法,包括:一种基于点对点穿越的WEB访问方法,包括:创建点对点穿越
服务器和中继穿越服务器,内网WEB服务设备开机,向点对点穿越服务器发送内网NAT类型信息;点对点穿越服务器转发内网NAT类型信息;内网 WEB服务设备通过
应答机制与客户端进行数据交换,内网WEB连接设备记录穿越路径端口信息并将穿越路径端口信息发送至客户端;在内网NAT类型信息及应用NAT类型信息不支持点对点穿越穿越访问时,点对点穿越服务器建立内部中继穿越服务。
[0005] 于本发明的一实施方式中,创建点对点穿越服务器和中继穿越服务器,内网WEB服务设备开机,向点对点穿越服务器发送内网NAT类型信息,包括:内网WEB服务设备开机;连接点对点穿越服务器的辅助端口,获取内网NAT类型参数;比较内网NAT类型参数,得到内网NAT类型信息;根据内网NAT类型信息得点对点穿越判断信息,发送点对点穿越判断信息至点对点穿越服务器。
[0006] 于本发明的一实施方式中,内网WEB服务设备通过应答机制与客户端进行数据交换,内网WEB连接设备记录穿越路径端口信息并将穿越路径端口信息发送至客户端,包括:内网 WEB服务设备接收HTTP
请求;建立内网WEB服务设备内部中继穿越穿越服务,使用预设端口和内部HTTP服务进行数据交换;内网WEB服务设备设定穿越路径端口信息;内网WEB 服务设备对应的NAT记录穿越路径端口信息;内网WEB服务设备返回穿越路径端口信息并通过点对点穿越服务器转发给客户端。
[0007] 于本发明的一实施方式中,在内网NAT类型信息及应用NAT类型信息不支持点对点穿越穿越访问时,点对点穿越服务器建立内部中继穿越服务,包括:内网WEB服务设备发送设备服务信息到点对点穿越服务器;点对点穿越服务器根据设备服务信息创建一中继穿越服务,等待客户端的HTTP请求;点对点穿越服务器通知内网WEB服务设备建立内部的中继穿越服务;内网WEB服务设备连接点对点穿越服务器的中继穿越服务进行和客户端的数据交换。
[0008] 于本发明的一实施方式中,一种基于点对点穿越的WEB访问系统,包括:处理器和
存储器,存储器存储有程序指令,处理器运行程序指令实现如1~4任一项方法中的步骤。
[0009] 于本发明的一实施方式中,一种基于点对点穿越的WEB访问客户端实现方法,包括:客户端从点对点穿越服务器获取内网NAT类型信息,根据内网NAT类型信息和应用NAT 类型信息发起连接;客户端与内网WEB服务设备通过应答机制建立数据连接,进行数据交换,客户端根据穿越路径端口信息对WEB进行点对点穿越穿越访问;在内网NAT类型信息及应用NAT类型信息不支持点对点穿越穿越访问时,客户端与内网WEB服务设备建立数据连接,客户端对WEB进行中继穿越穿越访问。
[0010] 于本发明的一实施方式中,客户端从点对点穿越服务器获取内网NAT类型信息,根据内网NAT类型信息和应用NAT类型信息发起连接,包括:客户端获取内网NAT类型信息,判断内网NAT类型信息是否为对称类型;若是,则停止点对点穿越穿越;若否,则在内网 NAT类型信息不为对称类型时,客户端向点对点穿越服务器的辅助端口连接,获取应用NAT 类型参数;比较应用NAT类型参数,得到应用NAT类型信息,判断客户端是否为对称类型;若是,则停止点对点穿越穿越;若否,则发起点对点穿越穿越请求,点对点穿越服务器转发点对点穿越穿越请求给内网WEB服务设备;客户端通过辅助端口得到内网WEB服务设备对应的公网地址。
[0011] 于本发明的一实施方式中,客户端与内网WEB服务设备通过应答机制建立数据连接,进行数据交换,客户端根据穿越路径端口信息对WEB进行点对点穿越穿越访问,包括:使用点对点穿越穿越请求中HTTP请求数据请求内网WEB服务设备的HTTP服务,得到HTTP 请求结果数据;提取HTTP请求结果数据中的穿越路径端口信息;客户端使用穿越路径端口信息中的路径完成对WEB的点对点穿越穿越访问。
[0012] 于本发明的一实施方式中,包括:处理器和存储器,存储器存储有程序指令,处理器运行程序指令实现如6~8任一项方法中的步骤。
[0013] 如上所述,本发明提供的一种基于点对点穿越的WEB访问方法、系统及客户端,具有以下有益效果:内网设备架设WEB服务,没有公网地址,不做端口映射,不用DDNS等设置就可以很方便的被外网客户端访问。外网浏览器直接访问内网设备WEB服务。可以通过浏览器等第三方客户端下载内网设备上的文件。可以通过浏览器等第三方客户端上传文件到内网设备。通过APP分享内网设备上的资料库,文件夹,或文件到微信,浏览器等第三方客户端。微信,浏览器等第三方客户端可以观看内网设备上的在线视频,在线音乐。
[0014] 综上,本发明解决了现有技术存在的外网的用户无法直接访问内网的WEB服务的技术问题。
附图说明
[0015] 图1显示为本发明的一种基于点对点穿越的WEB访问方法步骤示意图。
[0016] 图2显示为图1中步骤S1在一
实施例中的具体
流程图。
[0017] 图3显示为图1中步骤S3在一实施例中的具体流程图。
[0018] 图4显示为图1中步骤S4在一实施例中的具体流程图。
[0019] 图5显示为本发明的一种基于点对点穿越的WEB访问客户端实现方法步骤示意图。
[0020] 图6显示为图5中步骤S1’在一实施例中的具体流程图。
[0021] 图7显示为图5中步骤S2’在一实施例中的具体流程图。
[0022] 步骤标号说明
[0023] 图1 S1~S4
[0024] 图2 S11~S14
[0025] 图3 S31~S35
[0026] 图4 S41~S44
[0027] 图5 S1’~S3’
[0028] 图6 S11’~S17’
[0029] 图7 S21’~S23’
具体实施方式
[0030] 以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本
说明书所揭露的内容轻易地了解本发明的其他优点及功效。
[0031] 请参阅图1至图7,须知,本说明书所附图式所绘示的结构,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容所能涵盖的范围内。同时,本说明书中所引用的如”上”、”下”、”左”、”右”、”中间”及”一”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
[0032] 请参阅图1,显示为本发明的一种基于点对点穿越的WEB访问方法步骤示意图,如图1 所示,包括:一种基于点对点穿越的WEB访问方法,包括:
[0033] S1、创建点对点穿越服务器和中继穿越服务器,内网WEB服务设备开机,向点对点穿越服务器发送内网NAT类型信息,普通的点对点穿越方案一般是基于UDP的协议进行穿越,而WEB服务是基于TCP协议的,所以要使客户端能够从外网穿越到内网访问WEB 服务,则必须使穿越能够使用TCP协议上实现;
[0034] S2、点对点穿越服务器转发内网NAT类型信息,HO通过COMM CHAN发送HO NAT 类型给HP2PSERVER;
[0035] S3、内网WEB服务设备通过应答机制与客户端进行数据交换,内网WEB连接设备记录穿越路径端口信息并将穿越路径端口信息发送至客户端,从前面对穿越方案的描述可以看到,P2P穿越方案可以选择最优路径进行穿越,数据传输效率高,但是穿越成功率受 NAT类型的影响,不能100%保证穿越成功,而且由于对源端口绑定的要求,只适用于自己开发的客户端,对于浏览器,微信等第三方的客户端则无法进行P2P穿越,由于P2P穿越需要服务器辅助进行穿越,所以对于HTTP请求较频繁的场景效率会较低。而RELAY 穿越方案可以很好的弥补P2P穿越方案的弱点,包括几乎可以保证100%的穿越成功率,可以使用包括微信,浏览器在内的第三方客户端进行穿越,对于HTTP请求频繁的场景同样适用,唯一的弱点就是数据传输效率相对于P2P穿越来说要低一些。所以对于WEB服务需要对穿越方案进行选择,以便规避穿越方案的弱点,TCP协议使用三次握手进行连接, SYN->SYN+ACK->ACK。要使的TCP穿越成功,则需要客户端将SYN包发送到服务器,首先要得到内网WEB服务对应的公网IP地址(内网发出的IP包经过多层NAT后,最终会经过一个公网IP地址,这个IP地址就是我们需要的地址)。
[0036] 穿越方案选择表:
[0037]
[0038] 穿越方案优先级:自定义客户端优先采用P2P方式穿越,如果失败则才作用RELAY方式进行穿越;
[0039] S4、在内网NAT类型信息及应用NAT类型信息不支持点对点穿越穿越访问时,点对点穿越服务器建立内部中继穿越服务,本发明实现TCP的点对点穿越使用了2种方式来进行:P2P穿越和RELAY穿越,P2P穿越指的是直接穿越不经过任何服务器,RELAY 穿越则需要经过服务器转发而实现穿越。优先级P2P穿越优先于RELAY穿越,也就是说当P2P穿越失败后使用RELAY穿越,保证穿越成功率。
[0040] 请参阅图2,显示为图1中步骤S1在一实施例中的具体流程图,如图2所示,S1、创建点对点穿越服务器和中继穿越服务器,内网WEB服务设备开机,向点对点穿越服务器发送内网NAT类型信息,包括:
[0041] S11、内网WEB服务设备开机,HO设备开机时,使用同一端口向HP2PSERVER服务器的辅助ASSIST PORTS端口1和端口2分别进行两次连接;
[0042] S12、连接点对点穿越服务器的辅助端口,获取内网NAT类型参数,获取PUBLIC IP1-HO和PUBLIC IP2-HO。比较PUBLIC IP1-HO和PUBLIC IP2-HO,如果不同则为 Symmetric NAT,相同则为Cone NAT,P2P穿越时需要得到当前客户端和内网设备端对应的公网NAT设备的IP和端口号,并探测NAT类型,如果是SYMMETRIC类型,则停止穿越,在HP2PSERVER中需要建立3个端口号,一个用于通用信息传递,我们称之为 COMM CHAN端口;另外2个端口用于辅助探测公网IP地址和端口,用于检测NAT类型,我们称之为ASSIST PORTS辅助端口,辅助端口上建立的服务功能是当有客户端连接成功;
[0043] S13、比较内网NAT类型参数,得到内网NAT类型信息,NAT设备的NAT方式按大类分由2种:CONE和SYMMETRIC,CONE指的是锥型NAT,这种NAT类型;
[0044] S14、根据内网NAT类型信息得点对点穿越判断信息,发送点对点穿越判断信息至点对点穿越服务器。
[0045] 请参阅图3,显示为图1中步骤S1在一实施例中的具体流程图,如图3所示,S3、内网 WEB服务设备通过应答机制与客户端进行数据交换,内网WEB连接设备记录穿越路径端口信息并将穿越路径端口信息发送至客户端,包括:
[0046] S31、内网WEB服务设备接收HTTP请求;
[0047] S32、建立内网WEB服务设备内部中继穿越穿越服务,使用预设端口和内部HTTP 服务进行数据交换,我们需要在一个具有公网IP地址的服务器上架设帮助实现P2P穿越的服务,我们称之为HP2PSERVER服务器,当内网设备访问公网IP地址后,除这个公网 IP发送的数据包能够转到内网设备外,其它的公网IP地址通过这个内网设备对应NAT设备的公网IP地址和端口号也可以将数据发送到内网设备;
[0048] S33、内网WEB服务设备设定穿越路径端口信息,当客户端设备发送IP包进行穿越前,需要打通这条路径,由于TCP连接时是有状态连接,当内网设备发送的IP包经过多层NAT设备后到达了目的IP地址(这个IP地址是你客户端对应的公网NAT公网IP地址),由于目的IP地址上没有建立NAT Mapping路径,所以目的地址的NAT设备会直接回RST包,这样NAT设备上刚建立的NAT Mapping就会被移除,就无法进行穿越。所以我们需要将内网发出的IP包进行改造,使这个IP包发送到对应NAT公网设备后,停止路由跳跃,这样就可以保留建立的NAT mapping路径。控制IP包跳跃数量的是IP 包中的TTL字段,我们需要
修改这个数值,使得IP包能够刚刚穿越到NAT公网设备后就停止跳跃,TTL值为穿越NAT设备数量+1;
[0049] S34、内网WEB服务设备对应的NAT记录穿越路径端口信息,当内网设备发送IP 包到公网地址,内网设备和公网IP设备之间的NAT设备会留下一条NAT Mapping(NAT 地址映射)路径,公网IP地址上的IP包通过这条路径到达内网设备;
[0050] S35、内网WEB服务设备返回穿越路径端口信息并通过点对点穿越服务器转发给客户端,HO设备通过COMM CHAN返回P2P RESP结果并通过HP2PSERVER转发给客户端/APP,P2P RESP信息包含:穿越状态:继续或者停止,状态来自于STEP4,5,6的执行结果;如果是继续则还包含以下信息;HO设备的P2P公网IP地址和端口;HTTP请求结果数据。我们对发送的IP包(SYN包)进行自定义组包后通过RAW SOCKET发送。确定TTL值时,需要使用ICMP包,组包时先将ICMP包中的TTL设置成1,然后对NAT 设备的公网IP地址进行发送,如果返回失败,则将TTL值+1,直到返回成功,然后将这个TTL值再+1就是我们需要的TTL值。
[0051] 请参阅图4,显示为图1中步骤S4在一实施例中的具体流程图,如图4所示,S4、在内网NAT类型信息及应用NAT类型信息不支持点对点穿越穿越访问时,点对点穿越服务器建立内部中继穿越服务,包括:
[0052] S41、内网WEB服务设备发送设备服务信息到点对点穿越服务器,RELAY穿越方案通过RELAY(中继)服务器,将客户端的TCP数据通过RELAY服务器转发给内网设备,内网设备的数据通过RELAY服务器转发给客户端实现穿越。这种穿越方式在网络正常的情况下,成功率接近100%;
[0053] S42、点对点穿越服务器根据设备服务信息创建一中继穿越服务,等待客户端的HTTP 请求,SYMMETRIC指的是对称性NAT,这种NAT类型,当内网设备不同的SOCKET 访问不同的公网IP地址时,NAT设备上对应的端口号是变化的(可以是递增,也可能是随机变化的),这个时候外网客户端由于无法获知内网设备对应的公网NAT端口号而无法访问内网设备,从而无法实现P2P穿越;
[0054] S43、点对点穿越服务器通知内网WEB服务设备建立内部的中继穿越服务,RELAY 服务器建立一个中继服务供客户端和内网设备交换数据,这个中继服务是作为服务端供客户端连接;内网设备建立2个客户端socket,分别连接HTTP SERVER和RELAY服务器,然后交换数据,这个服务是2个客户端交换数据。由于TCP的特性,只能这样建立的服务才能使穿越成功;
[0055] S44、内网WEB服务设备连接点对点穿越服务器的中继穿越服务进行和客户端的数据交换,内网设备由于NAT的原因,外网数据直接往内网设备发送数据会被阻止(这就是
防火墙的作用),只能由内网设备发起向RELAY服务器的连接,然后客户端向RELAY 服务器也发起一个连接,两端连接成功后交换数据。数据发送到内网设备后,内网设备通过建立和HTTP SERVER的交换数据服务将客户端转发的数据和HTTP SERVER进行交互,此时一条客户端到内网设备的通道建立起来了,穿越成功后,客户端和内网设备端的数据传输则直接进行点对点交换而不经过任何服务器。HP2PSERVER仅用于辅助穿越而不用于穿越成功后的数据传输。
[0056] 于本发明的一实施方式中,一种基于点对点穿越的WEB访问系统,包括:处理器和存储器,存储器存储有程序指令,处理器运行程序指令实现如1~4任一项方法中的步骤。
[0057] 请参阅图5,显示为本发明的一种基于点对点穿越的WEB访问客户端实现方法步骤示意图,如图5所示,一种基于点对点穿越的WEB访问客户端实现方法,包括:
[0058] S1’、客户端从点对点穿越服务器获取内网NAT类型信息,根据内网NAT类型信息和应用NAT类型信息发起连接,客户端/APP通过COMM CHAN获取HO NAT类型,如果是Symmetric NAT,则穿越停止,客户端向这个公网IP地址发送SYN包,不出意外会被NAT设备的防火墙阻止(这个是必要的,否则外网的数据包都可以直接经过NAT 设备到达内网,内网设备就会暴露在公网中,这是相当危险的,会被直接攻击。),所以直接由客户端向内网WEB服务对应的公网IP地址发送SYN包是无法穿越的;
[0059] S2’、客户端与内网WEB服务设备通过应答机制建立数据连接,进行数据交换,客户端根据穿越路径端口信息对WEB进行点对点穿越穿越访问,户端/APP使用同一端口向 HP2PSERVER服务器的辅助ASSIST PORTS端口1和端口2分别进行两次连接,获取 PUBLIC IP1-C和PUBLIC IP2-C。比较PUBLIC IP1-C和PUBLIC IP2-C,如果不同则为 Symmetric NAT,相同则为Cone NAT,辅助端口上建立的服务功能是当有客户端连接成功后,立刻返回探测到的公网地址和端口号给客户端,内网设备或客户端需要绑定同一个源端口,然后分别对辅助端口1和辅助端口2发起连接,得到公网IP地址和端口号,而 COMM CHAN端口上建立的服务则主要用于内网设备和客户端之间公网IP地址和端口号信息交换,以便于设备端发起P2P连接请求和P2P穿越,内网设备端发起NAT Mapping;
[0060] S3’、在内网NAT类型信息及应用NAT类型信息不支持点对点穿越穿越访问时,客户端与内网WEB服务设备建立数据连接,客户端对WEB进行中继穿越穿越访问,NAT 设备有一个特性,当内网设备向外访问一个公网IP地址后,由这个公网IP地址发出的IP 包就可以经过NAT设备到达内网(这个是必须的,内网计算机访问外网WEB服务就是这个原理,否则内网计算机就无法访问任何外网
网站)使用P2P REQ中HTTP请求数据请求HO设备的HTTP服务,得到HTTP请求结果数据。
[0061] 请参阅图6,显示为图5中步骤S1’在一实施例中的具体流程图,如图6所示,步骤S1’、客户端从点对点穿越服务器获取内网NAT类型信息,根据内网NAT类型信息和应用NAT 类型信息发起连接,包括:
[0062] S11’、客户端获取内网NAT类型信息,判断内网NAT类型信息是否为对称类型,比较这2个IP和端口,如果一致则是CONE类型NAT,继续穿越;否则就是SYMMETRIC NAT,停止穿越;
[0063] S12’、若是,则停止点对点穿越穿越,客户端/APP通过COMM CHAN获取HO NAT 类型,如果是Symmetric NAT,则穿越停止;
[0064] S13’、若否,则在内网NAT类型信息不为对称类型时,客户端向点对点穿越服务器的辅助端口连接,获取应用NAT类型参数,客户端/APP使用同一端口向HP2PSERVER 服务器的辅助ASSIST PORTS端口1和端口2分别进行两次连接;
[0065] S14’、比较应用NAT类型参数,得到应用NAT类型信息,判断客户端是否为对称类型,获取PUBLIC IP1-C和PUBLIC IP2-C。比较PUBLIC IP1-C和PUBLIC IP2-C,如果不同则为Symmetric NAT,相同则为Cone NAT;
[0066] S15’、若是,则停止点对点穿越穿越;
[0067] S16’、若否,则发起点对点穿越穿越请求,点对点穿越服务器转发点对点穿越穿越请求给内网WEB服务设备,如果客户端/APP是Symmetric NAT,则穿越停止。否则通过 COMM CHAN发起P2P REQ请求,请求参数中携带HTTP请求数据。HP2PSERVER服务器通过COMM CHAN转发P2P REQ请求给HO;
[0068] S17’、客户端通过辅助端口得到内网WEB服务设备对应的公网地址,客户端/APP 使用源端口,请求P2P RESP中返回的URL,穿越完成。
[0069] 请参阅图7,显示为图5中步骤S2’在一实施例中的具体流程图,如图7所示,步骤S2’、客户端与内网WEB服务设备通过应答机制建立数据连接,进行数据交换,客户端根据穿越路径端口信息对WEB进行点对点穿越穿越访问,包括:
[0070] S21’、使用点对点穿越穿越请求中HTTP请求数据请求内网WEB服务设备的HTTP 服务,得到HTTP请求结果数据;
[0071] S22’、提取HTTP请求结果数据中的穿越路径端口信息;
[0072] S23’、客户端使用穿越路径端口信息中的路径完成对WEB的点对点穿越穿越访问。
[0073] 于本发明的一实施方式中,包括:处理器和存储器,存储器存储有程序指令,处理器运行程序指令实现如6~8任一项方法中的步骤。
[0074] 综上所述,本发明提供的一种基于点对点穿越的WEB访问方法、系统及客户端,具有以下有益效果:内网设备架设WEB服务,没有公网地址,不做端口映射,不用DDNS等设置就可以很方便的被外网客户端访问。外网浏览器直接访问内网设备WEB服务。可以通过浏览器等第三方客户端下载内网设备上的文件。可以通过浏览器等第三方客户端上传文件到内网设备。通过APP分享内网设备上的资料库,文件夹,或文件到微信,浏览器等第三方客户端。微信,浏览器等第三方客户端可以观看内网设备上的在线视频,在线音乐。
[0075] 综上,本发明解决了现有技术存在的外网的用户无法直接访问内网的WEB服务的技术问题,具有很高的商业价值和实用性。