一种信息传输方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种信息传输方法及装置。
背景技术
随着信息技术的发展,诸如手机、平板电脑、计算机等终端作为信息载体和呈现窗口,广泛应用于人们生活和工作中。使用接入互联网的终端(在本申请中也称作第一终端),用户可以便捷地访问互联网,以获取大量其所需的信息。使用未接入互联网的终端(在本申请中也称作第二终端)与第一终端连接后,就可以将两个终端中的信息进行传输,以交互分享或存储信息。其中,第一终端和第二终端均可以是计算机或移动终端。
在现有技术中,当第二终端(未接入互联网)与第一终端进行连接后(该第二终端与该第一终端的连接包括但不限于通过有线方式实现,如:USB连接),就可以从第一终端中接收来自互联网或该第一终端本地的数据。
但是,上述情况下,第二终端从互联网中或该第一终端本地接收的数据只能依赖于第一终端主动推送。例如:一台已联网的计算机(第一终端)与手机(第二终端)通过数据线连接后,手机若要获取互联网中的信息,其过程只能是:用户通过计算机从互联网中检索并下载对应的信息,将下载后的信息先存储于计算机中,然后通过计算机内部安装的软件将已下载的信息发送给手机。
也就是说,在第一终端和第二终端连接的情况下,第二终端与互联网之间的信息传输过程繁琐、耗时较长,导致信息传输效率较低。
发明内容
本申请实施例提供一种信息传输方法及装置,用以解决在已联网的第一终端和未联网的第二终端相连接的情况下,第二终端与互联网之间的信息传输过程繁琐、耗时较长,导致信息传输效率较低的问题。
本申请实施例提供的一种信息传输方法,其中,第一终端与外部网络连接,第二终端未与外部网络连接,第一终端与第二终端相连,所述方法包括:
第一终端基于自身与所述第二终端的连接,以及自身与外部网络的连接,建立所述第二终端与外部网络的信息传输通道;
将所述第二终端发出的信息请求通过所述信息传输通道转发至外部网络,并且将接收到的所述信息请求对应的信息通过该信息传输通道转发至所述第二终端;
其中,建立所述第二终端与外部网络的信息传输通道,具体包括:
创建所述第一终端与所述第二终端的端口映射;
第一终端将联网代理端口信息发送至所述第二终端,使所述第二终端根据所述联网代理端口信息配置所述第二终端自身的收发端口。
本申请实施例提供的一种信息传输装置,包括:信息通道建立模块以及传输模块,其中,
所述信息通道建立模块,用于基于所述第一终端与所述第二终端的连接,以及所述第一终端与外部网络的连接,建立所述第二终端与外部网络的信息传输通道;
所述传输模块,用于将第二终端发出的数据请求通过该信息传输通道发送至外部网络,并且将该数据请求对应的数据通过该信息传输通道反馈至所述第二终端;
所述信息通道建立模块,具体包括:端口映射模块、配置模块,其中,
所述端口映射模块,用于创建所述第一终端与所述第二终端的端口映射;
所述配置模块,用于将第一终端的联网代理端口信息发送至所述第二终端,使所述第二终端根据所述联网代理端口信息配置所述第二终端自身的收发端口。
本申请实施例提供一种信息传输方法及装置,该方法第一终端基于自身与所述第二终端的连接,以及自身与外部网络的连接,建立所述第二终端与外部网络的信息传输通道,将所述第二终端发出的信息请求通过所述信息传输通道转发至外部网络,并且将接收到的所述信息请求对应的信息通过该信息传输通道转发至所述第二终端。通过上述方法,未联网的第二终端与已联网的第一终端进行连接后,该第二终端通过与第一终端的端口映射以及配置的收发端口,便可以直接与外部网络进行信息传输,从而,第二终端可以直接向外部网络获取信息或者将信息上传至外部网络中,不用再被动接收第一终端的调取或推送,实现了第二终端与外部网络信息传输的无缝连接,有效的提升了信息传输效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的信息传输过程;
图2为本申请实施例提供的在实际应用场景下的信息传输过程;
图3为本申请实施例提供的信息传输装置结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的信息传输过程,该过程具体包括以下步骤:
S101:第一终端基于自身与所述第二终端的连接,以及自身与外部网络的连接,建立所述第二终端与外部网络的信息传输通道。
其中,第一终端与外部网络连接,第二终端未与外部网络连接,第一终端与第二终端相连。
所述的第二终端包括但不限于:计算机或手机、平板电脑等移动终端。在本申请中,可预先建立接入外部网络的终端设备(即,第一终端)与第二终端的连接,所述的外部网络包括但不限于是互联网或外部局域网络。第一终端与第二终端的连接可采用诸如红外、蓝牙、近场通信(Near Field Communication,NFC)等无线方式或采用诸如通用串行总线(Universal Serial Bus,USB)、并行总线等有线方式进行连接。
在第一终端和第二终端建立连接后,第一终端将进一步建立第二终端与外部网络的信息传输通道。
通过所述的信息传输通道,可以将第一终端所接入的外部网络与第二终端连接起来,使第二终端与外部网络直接进行信息传输,用户无需将所需的信息先通过第一终端下载并存储,再通过软件传输至第二终端,也即,信息不在第一终端中停留,信息通过所述的信息传输通道直接从外部网络传输至第二终端,有效提高了信息的传输效率。
其中,第一终端建立所述第二终端与外部网络的信息传输通道,具体包括:创建所述第一终端与所述第二终端的端口映射,将联网代理信息发送至所述第二终端,其中,所述联网代理信息中含有第一终端的联网代理端口信息,使第二终端根据所述联网代理端口信息配置所述第二终端自身的收发端口。
这里需要说明的是,端口映射是将终端的互联网协议(Internet Protocol,IP)地址或传输接口的物理地址进行转换,例如:多个终端分别连接到路由器而构成局域网络,并通过该路由器实现与外部网络的连接,在该局域网络中,各终端具有各自的内部IP地址(如:192.168.1.2,该内部IP地址也可称为内网IP地址),而在其他局域网络中的终端也可以使用同样的内部IP地址,若终端直接使用这些内部IP地址访问外部网络,则在外部网络中就会导致IP地址冲突,所以当终端访问外部网络时,将进行端口映射,将内部IP地址转化成路由器接受的由外部网络分配的唯一的公网IP地址。
那么,在本申请实施例中,第二终端与第一终端进行端口映射后,可以视为由该第二终端和该第一终端二者形成的局域网络,该第二终端(可看作是该局域网络中的终端)将通过该第一终端(可看作是该局域网络中的路由设备)访问外部网络。更为具体地,第二终端与第一终端进行端口映射的过程为:第一终端获取所述第二终端的内网IP地址信息,建立所述第一终端自身的公网IP地址信息与所述第二终端的内网IP地址信息的映射关系,并记录。其中,第一终端自身的公网IP地址信息为外部网络分配给所述第一终端的、且具有唯一性的网络IP地址的信息。
当然,在进行端口映射的过程中,所述的第一终端从第二终端获取的信息并不限于该第二终端的内网IP地址信息,在一种场景中,第一终端可获取该第二终端的传输接口的接口信息,该接口信息中包括但不限于该第二终端的物理地址和当前传输接口的接口标识。那么,即使在第二终端未被分配相应的内网IP地址的情况下,也可以从相应的接口信息中获取到该第二终端的物理地址、传输接口标识等信息,于是通过该接口信息就可以确定该第二终端以及该第二终端的该传输接口,以便进行端口映射。
端口映射完成后,在信息请求发送过程中,第一终端会将第二终端的内网IP地址信息或接口信息,都替换成第一终端自己的公网IP地址信息,然后再发向外部网络,那么,在外部网络看来,这个信息请求就来源于这个公网IP地址,使用公网IP地址符合传输规范且不会有IP地址冲突的情况发生;在信息反馈过程中,第一终端根据记录的映射关系,将自己的公网IP地址信息替换成第二终端的内网IP地址信息,信息就发向这个内网IP地址,也就是发向第二终端。
在由该第一终端和第二终端构成的局域网络中,该第一终端就相当于具有代理功能的路由设备,那么在建立信息传输通道的过程中,第一终端会将自身的联网代理信息发送至该第二终端,第二终端则根据该联网代理信息在其系统中配置访问所需的收发端口(该收发端口指向该第一终端中的联网代理端口),在配置收发端口后,该第二终端将其中的各类联网请求都发送至该第一终端的联网代理端口。
其中,所述的联网代理端口,是第一终端充当路由设备时与外部网络进行信息传输的端口。在上述过程中,第二终端配置收发端口,其实就是第二终端通过指定的第一终端的端口进行信息传输,第二终端会将信息请求交给第一终端,由第一终端通过第二终端指定的这个端口发送信息请求至外部网络,此时可以认为是第一终端“代理”了第二终端发送信息请求的操作。
由此,基于公网IP地址与内网IP地址的映射关系和第二终端配置的收发端口,就建立了第二终端与外部网络之间的信息传输通道,从而第二终端便可以直接与外部网络进行信息传输,即步骤S102。
S102,将第二终端发出的信息请求通过所述信息传输通道转发至外部网络,并且将接收到的所述信息请求对应的信息通过该信息传输通道转发至所述第二终端。
其中,将所述第二终端发出的信息请求通过该信息传输通道发送至外部网络,具体包括:所述第一终端接收所述第二终端发送的信息请求,所述信息请求中携带该第二终端的内网IP地址信息以及该第二终端配置的收发端口信息,所述第一终端根据所述映射关系,将所述信息请求中所含的第二终端的内网IP地址信息转换为该第一终端自身的公网IP地址信息,所述第一终端将转换后的含有该第一终端自身的公网IP地址信息的信息请求发送至外部网络中。
将该信息请求对应的数据通过该信息传输通道反馈至所述第二终端,具体包括:所述第一终端接收所述外部网络返回的与所述信息请求对应的信息,所述信息中含有该第一终端自身的公网IP地址信息,所述第一终端根据所述映射关系,确定与该第一终端自身的公网IP地址信息对应的所述第二终端的内网IP地址信息,根据所述第二终端的内网IP地址信息,将信息反馈至所述第二终端中。
在实际应用场景中,第一终端可能会同时与多个第二终端连接,为了避免信息传输发生混乱,第一终端将对已建立的映射关系进行记录,当外部网络返回数据时,该第一终端根据记录的映射关系将该数据准确地反馈给相应的第二终端。
通过上述步骤,未接入外部网络的第二终端与已接入外部网络的第一终端连接后,该第二终端通过与第一终端的端口映射以及配置的收发端口,便可以直接与外部网络进行信息传输,从而,第二终端可以直接向外部网络获取信息或者将信息上传至外部网络中,不用再被动接收第一终端的调取或推送,实现了第二终端与外部网络信息传输的无缝连接,有效的提升了信息传输效率。
结合图2,本申请实施例中信息传输的实际应用如下:
在该实际应用场景中,所述的第一终端为接入互联网的计算机,所述的第二终端为未接入互联网的手机,手机和计算机通过USB数据线建立连接,并且以手机上运行安卓系统(Android)的情况为例。手机与计算机通过安卓调试桥(Android Debug Bridge,ADB)建立连接。连接完成后,计算机中创建ADB服务进程,并在计算机的后台运行,以此作为与手机交互的唯一接口;相应的,手机中创建ADBD(Android Debug Bridge Device)进程,以接收计算机中ADB服务进程发送的信息,并作出对应操作。在此场景下:
S201,由计算机中的ADB服务进程向手机中的ADBD进程发起ADB-forward端口映射。
其中,ADB-forward是基于安卓系统的端口映射指令,当计算机向手机发起该指令后,计算机将从手机的ADBD进程中获取手机的连接信息(该连接信息包括但不限于手机的内网IP地址信息、手机的物理地址信息等),并创建计算机自身的公网IP地址信息与手机的连接信息的映射关系,从而建立计算机和手机两者之间的端口映射。
本场景中,设定计算机的公网IP地址为111.204.252.208,手机的内网IP地址为192.168.1.2。
S202,计算机中的代理服务进程将计算机的联网代理端口信息发送至ADBD进程。
联网代理端口信息由计算机中的代理服务进程生成,在本场景中,计算机与手机组成了小型的局域网络,而计算机在该局域网络中相当于具有代理功能的路由设备,将后续手机发出的信息请求通过联网代理端口转发至互联网中。其中,设定本场景中联网代理端口的端口号为5000(终端设备的端口号的范围是0~65535)。
S203,手机中的ADBD进程在接收到计算机发送的联网代理端口信息后,根据该联网端口信息对其收发接口进行配置。
手机中的ADBD进程将根据该联网代理端口信息设置手机自身的收发端口,即手机将内部的收发端口设置为与该联网代理端口信息中的端口一致,本场景中,计算机中的联网代理端口信息中的联网代理端口号为5000,那么,手机在接收到该联网代理端口信息之后,会将其内部的收发端口也设置为5000,而且,该收发端口指向计算机的公网IP地址,也即,收发端口指向111.204.252.208:5000。如此一来,手机中产生的各类请求都会直接发向该端口。
S204,手机中的应用程序调用ADBD进程以发送信息请求。
应用程序发出的信息请求对应着不同的目的IP地址和目的端口,该目的IP地址和目的端口可能会指向相应的网络服务器或数据库,即应用程序发出的信息请求均是超文本传输协议(Hypertext Transfer Protocol,HTTP)请求。
这里需要说明的是,手机中的多个应用程序会分别发出不同的信息请求,并通过同一端口传输,为了区别不同的应用程序进程和连接,计算机会将应用程序发出的信息请求进行处理,生成套接字(Socket)数据包,其中,Socket数据包中含有该信息请求以及该信息请求对应的五元组信息,即,源IP地址信息、源端口信息、目的IP地址信息、目的端口信息以及传输协议信息。其中,这里的源IP地址信息是手机的内网IP地址信息,即192.168.1.2,源端口信息是计算机的联网代理端口信息(已配置),即5000,目的IP地址信息是该信息请求所要访问的服务器的IP地址信息,如220.181.118.87,目的端口信息是该信息请求所要访问的服务器的端口信息,如8080。
ADBD进程将记录每一次调用操作以及该调用操作的发起者,其记录的内容可以是发起该调用操作的应用程序的程序标识,如:程序名称、版本号等信息,当然,实际应用场景中还可以是记录其他信息,在此并不构成对本申请的限定。
S205,手机的ADBD进程将该信息请求发送至计算机,计算机则通过ADB服务进程接收该信息请求。
S206,ADB服务进程根据映射关系,将Socket数据包中的源IP地址信息(即手机的内网IP地址信息)转换为计算机的公网IP地址信息。
具体地,计算机根据映射关系,会将手机内网IP地址192.168.1.2替换为计算机自身的公网IP地址111.204.252.208。
S207,计算机中的ADB服务进程将转换后的Socket数据包发送至计算机的代理服务进程。
由于手机将自身的收发端口进行配置后指向111.204.252.208:5000,所以,ADB服务进程会将Socket数据包整体发给计算机中公网IP地址下端口号为5000的联网代理端口。
S208,代理服务进程根据Socket数据包中的目的IP地址信息和目的端口信息,将信息请求发送至互联网。
此时,源IP地址已经变为111.204.252.208(即计算机的公网IP地址),源端口为5000(即计算机的联网代理端口)。代理服务进程会将该信息请求发送至对应服务器的对应端口中,以获取信息。
S209,计算机接收互联网返回的与Socket数据包中的信息请求对应的信息,并经由该计算机中的ADB服务进程根据映射关系,将该信息发送至手机的ADBD进程。
返回的信息由服务器发向计算机,此时,之前信息请求中的目的IP地址和目的端口已经变为源IP地址和源端口,即源IP地址为220.181.118.87,源端口为8080。而计算机的公网IP地址111.204.252.208和联网代理端口5000分别变为了信息的目的IP地址和目的端口。
信息送达至计算机之后便立即发向手机,此时,计算机的公网IP地址111.204.252.208和联网代理端口5000分别变为了信息的源IP地址和源端口,该信息的目的IP地址变为手机的内网IP地址192.168.1.2,并通过联网代理端口5000直接传输至手机中。
S210,手机的ADBD进程再将该信息反馈给对应的应用程序。
手机的ADBD进程将根据之前所记录的内容,将信息反馈给对应的应用程序。
另外,若计算机又与一台平板电脑通过USB数据线连接,该平板电脑的内网IP地址为192.168.1.3,则计算机会重复上述步骤,建立该平板电脑与互联网的信息传输通道。需要说明的是,计算机将会记录与手机和平板电脑之间的端口映射。对于手机发出的信息请求所对应的信息,计算机将根据记录的映射关系,将信息发送至192.168.1.2;对于平板电脑发出的信息请求所对应的信息,计算机将根据记录的映射关系,将信息发送至192.168.1.3,即可以避免信息反馈时出现混乱。
可见,手机与互联网直接进行信息传输,信息虽然经过计算机的中转,但是信息不再存储于计算机上,这样一来,减小了信息传输过程中的流量消耗,同时,信息存储在计算机中存在丢失或泄露的风险,那么,手机与互联网直接进行信息传输也提升了信息传输过程中的安全性。
上述内容针对第二终端与外部网络的信息传输,在另一种场景中,采用上述方法,第二终端利用建立的信息传输通道,还可以直接与第一终端进行信息传输。
以上为本申请实施例提供的信息传输方法,基于同样的思路,本申请实施例还提供一种信息传输装置,如图3所示。
图3中的信息传输装置,设置在第一终端中,其中,第一终端与外部网络连接,第二终端未与外部网络连接,第一终端与第二终端相连,所述装置包括:信息通道建立模块301以及传输模块302,其中,
所述信息通道建立模块301,用于基于所述第一终端与所述第二终端的连接,以及所述第一终端与外部网络的连接,建立所述第二终端与外部网络的信息传输通道;
所述传输模块302,用于将第二终端发出的数据请求通过该信息传输通道发送至外部网络,并且将该数据请求对应的数据通过该信息传输通道反馈至所述第二终端。
具体地,所述信息通道建立模块301,包括:端口映射模块3011、配置模块3012,其中,
所述端口映射模块3011,用于创建所述第一终端与所述第二终端的端口映射;
所述配置模块3012,用于将第一终端的联网代理端口信息发送至所述第二终端中,并使第二终端根据所述联网代理端口信息配置所述第二终端自身的收发端口。
所述端口映射模块3011,具体用于获取所述第二终端的内网IP地址信息,建立所述第一终端自身的公网IP地址信息与所述第二终端的内网IP地址信息的映射关系,并记录,其中,所述公网IP地址信息为所述外部网络分配给所述第一终端的具有唯一性的网络IP地址的信息。
在建立了信息传输通道之后,所述传输模块302,具体用于接收所述第二终端发送的信息请求,所述信息请求中携带该第二终端的内网IP地址信息以及该第二终端配置的收发端口信息,根据记录的所述映射关系,将所述信息请求中所含的第二终端的内网IP地址信息转换为该第一终端自身的公网IP地址信息,并将转换后的信息请求发送至外部网络中。
上述过程为将第二终端的信息请求发送至外部网络,而对于从外部网络返回信息时,所述传输模块302,具体用于接收所述外部网络返回的与所述信息请求对应的信息,所述信息中含有该第一终端自身的公网IP地址信息,根据记录的所述映射关系,确定与该第一终端自身的公网IP地址信息对应的所述第二终端的内网IP地址信息,并根据所述第二终端的内网IP地址信息,将信息反馈至所述第二终端中。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。