欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 文件共享方法、通信装置及存储介质独创技术48612字

文件共享方法、通信装置及存储介质

2021-04-08 17:44:21

文件共享方法、通信装置及存储介质

  技术领域

  本申请涉及通信技术领域,特别涉及文件共享方法、通信装置及存储介质。

  背景技术

  服务消息块(Server Message Block,SMB)协议是一种用于文件共享的协议,例如,一台运行有SMB协议的主机可以访问与该主机在同一个局域网内的另外一台主机中的共享文件。

  但是在一些场景中,客户端例如进行访问的主机和目标服务器例如被访问的主机可能不在同一个局域网内,需要代理服务器作为中间媒介对两个主机之间交互的信息进行转发。由于代理服务器无法获取目标服务器的IP地址,无法进行正常的转发,从而导致客户端无法正常访问该目标服务器中的共享文件。

  发明内容

  本申请提供了一种文件共享方法、通信装置及存储介质,以实现客户端可以正常的跨网络访问该目标服务器中的共享文件。

  第一方面,本申请提供了一种文件共享方法,该方法包括:代理服务器接收终端发送的第一连接建立请求,所述第一连接建立请求包括目标服务器的IP地址;所述代理服务器根据所述第一连接建立请求与所述终端建立第一连接;所述代理服务器根据所述目标服务器的IP地址与所述目标服务器建立第二连接;所述代理服务器接收所述终端发送的文件共享指令,并将所述文件共享指令转发给所述目标服务器。通过本实施例提供的方案,实现了客户端可以正常的跨网络访问该目标服务器中的共享文件。

  在一种可能的设计中,所述第一连接建立请求为同步序列编号SYN报文,所述SYN报文的选项字段包括所述目标服务器的IP地址。

  在一种可能的设计中,所述代理服务器接收终端发送的第一连接建立请求之后,所述方法还包括:所述代理服务器将所述目标服务器的IP地址、所述终端的IP地址和所述终端的端口号存储在数据库;所述代理服务器根据所述目标服务器的IP地址与所述目标服务器建立第二连接之前,所述方法还包括:所述代理服务器从所述数据库获取所述目标服务器的IP地址。通过本实施例提供的方案,使得一个终端可访问多个目标服务器,一个目标服务器也可被多个终端所访问,从而使得该代理服务器可对多个终端和多个目标服务器之间的数据进行转发,提高了数据转发的效率。

  在一种可能的设计中,所述代理服务器从所述数据库获取所述目标服务器的IP地址,包括:所述代理服务器从所述数据库获取与所述终端的IP地址和所述终端的端口号对应的所述目标服务器的IP地址。

  在一种可能的设计中,所述代理服务器接收终端发送的第一连接建立请求,包括:所述代理服务器接收所述终端发送的TCP连接建立请求;所述代理服务器根据所述第一连接建立请求与所述终端建立第一连接,包括;所述代理服务器根据所述TCP连接建立请求,与所述终端建立TCP连接。通过本实施例提供的方案,相比于通过解析SMB协议,从该SMB协议中获取该目标服务器的IP地址,可节约网络资源。

  在一种可能的设计中,所述代理服务器根据所述目标服务器的IP地址与所述目标服务器建立第二连接之前,所述方法还包括:所述代理服务器根据所述目标服务器的IP地址,向所述目标服务器发送第二连接建立请求。

  在一种可能的设计中,所述文件共享指令包括如下至少一种:共享文件读指令、共享文件写指令、共享文件检索指令。

  第二方面,本申请提供一种文件共享方法,该方法包括:终端向代理服务器发送第一连接建立请求,所述第一连接建立请求包括目标服务器的IP地址;所述终端与所述代理服务器建立第一连接,所述目标服务器的IP地址用于所述代理服务器与所述目标服务器建立第二连接;所述终端向所述代理服务器发送文件共享指令,以使所述代理服务器将所述文件共享指令转发给所述目标服务器。

  在一种可能的设计中,所述第一连接建立请求为同步序列编号SYN报文,所述SYN报文的选项字段包括所述目标服务器的IP地址。

  在一种可能的设计中,所述终端向代理服务器发送第一连接建立请求之前,所述方法还包括:所述终端生成第三连接建立请求,所述第三连接建立请求用于所述终端与所述目标服务器建立连接,所述第三连接建立请求包括所述目标服务器的IP地址;所述终端根据所述第三连接建立请求,生成所述第一连接建立请求。

  第三方面,本申请提供一种通信装置,包括:接收模块,用于接收终端发送的第一连接建立请求,所述第一连接建立请求包括目标服务器的IP地址;连接建立模块,用于根据所述第一连接建立请求与所述终端建立第一连接;根据所述目标服务器的IP地址与所述目标服务器建立第二连接;所述接收模块还用于接收所述终端发送的文件共享指令;发送模块,用于将所述文件共享指令转发给所述目标服务器。

  在一种可能的设计中,所述第一连接建立请求为同步序列编号SYN报文,所述SYN报文的选项字段包括所述目标服务器的IP地址。

  在一种可能的设计中,所述通信装置还包括:存储模块,用于在所述接收模块接收终端发送的第一连接建立请求之后,将所述目标服务器的IP地址、所述终端的IP地址和所述终端的端口号存储在数据库;获取模块,用于在所述连接建立模块根据所述目标服务器的IP地址与所述目标服务器建立第二连接之前,从所述数据库获取所述目标服务器的IP地址。

  在一种可能的设计中,所述获取模块具体用于:从所述数据库获取与所述终端的IP地址和所述终端的端口号对应的所述目标服务器的IP地址。

  在一种可能的设计中,所述接收模块在接收终端发送的第一连接建立请求时,具体用于:接收所述终端发送的TCP连接建立请求;所述连接建立模块在根据所述第一连接建立请求与所述终端建立第一连接时,具体用于:根据所述TCP连接建立请求,与所述终端建立TCP连接。

  在一种可能的设计中,所述发送模块还用于:在所述连接建立模块根据所述目标服务器的IP地址与所述目标服务器建立第二连接之前,根据所述目标服务器的IP地址,向所述目标服务器发送第二连接建立请求。

  在一种可能的设计中,所述文件共享指令包括如下至少一种:共享文件读指令、共享文件写指令、共享文件检索指令。

  第四方面,本申请提供一种通信装置,包括:发送模块,用于向代理服务器发送第一连接建立请求,所述第一连接建立请求包括目标服务器的IP地址;连接建立模块,用于与所述代理服务器建立第一连接,所述目标服务器的IP地址用于所述代理服务器与所述目标服务器建立第二连接;所述发送模块还用于:向所述代理服务器发送文件共享指令,以使所述代理服务器将所述文件共享指令转发给所述目标服务器。

  在一种可能的设计中,所述第一连接建立请求为同步序列编号SYN报文,所述SYN报文的选项字段包括所述目标服务器的IP地址。

  在一种可能的设计中,所述通信装置还包括:生成模块,用于在所述发送模块向代理服务器发送第一连接建立请求之前,生成第三连接建立请求,所述第三连接建立请求用于所述终端与所述目标服务器建立连接,所述第三连接建立请求包括所述目标服务器的IP地址;重定向模块,用于根据所述第三连接建立请求,生成所述第一连接建立请求。

  第五方面,本申请提供一种通信装置,包括处理器和收发器,处理器和收发器通过内部连接互相通信;所述收发器用于接收终端发送的第一连接建立请求,所述第一连接建立请求包括目标服务器的IP地址;所述处理器用于根据所述第一连接建立请求与所述终端建立第一连接;根据所述目标服务器的IP地址与所述目标服务器建立第二连接;所述收发器还用于:接收所述终端发送的文件共享指令,并将所述文件共享指令转发给所述目标服务器。

  在一种可能的设计中,所述第一连接建立请求为同步序列编号SYN报文,所述SYN报文的选项字段包括所述目标服务器的IP地址。

  在一种可能的设计中,所述处理器还用于:在所述收发器接收终端发送的第一连接建立请求之后,将所述目标服务器的IP地址、所述终端的IP地址和所述终端的端口号存储在数据库;以及在根据所述目标服务器的IP地址与所述目标服务器建立第二连接之前,从所述数据库获取所述目标服务器的IP地址。

  在一种可能的设计中,所述处理器具体用于:从所述数据库获取与所述终端的IP地址和所述终端的端口号对应的所述目标服务器的IP地址。

  在一种可能的设计中,所述收发器在接收终端发送的第一连接建立请求时,具体用于:接收所述终端发送的TCP连接建立请求;所述处理器在根据所述第一连接建立请求与所述终端建立第一连接时,具体用于:根据所述TCP连接建立请求,与所述终端建立TCP连接。

  在一种可能的设计中,所述收发器还用于:在所述处理器根据所述目标服务器的IP地址与所述目标服务器建立第二连接之前,根据所述目标服务器的IP地址,向所述目标服务器发送第二连接建立请求。

  在一种可能的设计中,所述文件共享指令包括如下至少一种:共享文件读指令、共享文件写指令、共享文件检索指令。

  第六方面,本申请提供一种通信装置,包括:处理器和收发器,处理器和收发器通过内部连接互相通信;所述收发器用于向代理服务器发送第一连接建立请求,所述第一连接建立请求包括目标服务器的IP地址;所述处理器用于与所述代理服务器建立第一连接,所述目标服务器的IP地址用于所述代理服务器与所述目标服务器建立第二连接;所述收发器还用于:向所述代理服务器发送文件共享指令,以使所述代理服务器将所述文件共享指令转发给所述目标服务器。

  在一种可能的设计中,所述第一连接建立请求为同步序列编号SYN报文,所述SYN报文的选项字段包括所述目标服务器的IP地址。

  在一种可能的设计中,所述处理器还用于:在所述收发器向代理服务器发送第一连接建立请求之前,生成第三连接建立请求,所述第三连接建立请求用于所述终端与所述目标服务器建立连接,所述第三连接建立请求包括所述目标服务器的IP地址;以及根据所述第三连接建立请求,生成所述第一连接建立请求。

  第七方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如第一方面或第二方面所述的方法。

  第八方面,本申请提供一种计算机程序,当所述计算机程序被计算机执行时,用于执行第一方面或第二方面所述的方法。

  在一种可能的设计中,第八方面中的程序可以全部或者部分存储在与处理器封装在一起的存储介质上,也可以部分或者全部存储在不与处理器封装在一起的存储器上。

  第九方面,本申请实施例还提供一种通信系统,包括上述第三方面和第四方面所述的通信装置。

  第十方面,本申请实施例还提供一种通信系统,包括上述第五方面和第六方面所述的通信装置。

  可见,在以上各个方面,通过代理服务器接收客户端发送的第一连接建立请求,使得代理服务器可以根据该第一连接建立请求与该客户端建立第一连接,另外,该第一连接建立请求包括目标服务器的IP地址,使得代理服务器根据目标服务器的IP地址与目标服务器建立第二连接,客户端可通过代理服务器向目标服务器发送文件共享指令,从而实现了客户端可以正常的跨网络访问该目标服务器中的共享文件。

  附图说明

  图1为本申请实施例提供的一种应用场景示意图;

  图2为本申请提供的另一种应用场景示意图;

  图3为本申请提供的再一种应用场景示意图;

  图4为本申请提供的又一种应用场景示意图;

  图5为本申请提供的一种文件共享方法的信令图;

  图6为本申请提供的另一种文件共享方法的示意图;

  图7为本申请提供的再一种文件共享方法的示意图;

  图8为本申请提供的一种通信装置的结构示意图;

  图9为本申请提供的又一种通信装置的结构示意图;

  图10为本申请提供的另一种通信装置的结构示意图;

  图11为本申请提供的又一种通信装置的结构示意图。

  具体实施方式

  本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。

  本申请实施例可应用于各种类型的通信系统。图1为本申请实施例提供的一种应用场景示意图。如图1所示的通信系统,主要包括网络设备11和终端12。

  其中,1)网络设备11可以是网络侧设备,例如,无线局域网(Wireless Local AreaNetwork,WLAN)的接入点(Access Point,AP)、4G的演进型基站(Evolved Node B,eNB或eNodeB)、下一代通信的基站,如5G的新无线接入技术(New Radio Access Technology,NR)基站(next generation Node B,gNB)或小站、微站,还可以是中继站、发送和接收点(Transmission and Reception Point,TRP)、路边单元(Road Side Unit,RSU)等。在本实施例中,不同通信制式的通信系统中的基站不同。为了区别起见,将4G通信系统的基站称为长期演进(Long Term Evolution,LTE)eNB,5G通信系统的基站称为NR gNB,既支持4G通信系统又支持5G通信系统的基站称为演进型长期演进(Evolutional Long Term Evolution,eLTE)eNB,这些名称仅为了方便区别,并不具有限制意义。

  2)终端12又称之为用户设备(User Equipment,UE),是一种向用户提供语音和/或数据连通性的设备,例如,具有无线连接功能的手持式设备、车载设备、具有车与车(vehicle to vehicle,V2V)通信能力的车辆等。常见的终端例如包括:手机、平板电脑、笔记本电脑、个人计算机(personal computer,PC)、掌上电脑、移动互联网设备(mobileinternet device,MID)、可穿戴设备,例如智能手表、智能手环、计步器等。

  3)“多个”是指两个或两个以上,其它量词与之类似。“和/或”,描述关联对象的对应关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

  需要说明的是,图1所示的通信系统中所包含的终端12的数量和类型仅仅是一种举例,本申请实施例并不限制于此。例如,还可以包括更多的与网络设备11进行通信的终端12,为简明描述,不在附图中一一描述。此外,在如图1所示的通信系统中,尽管示出了网络设备11和终端12,但是该通信系统可以并不限于包括网络设备11和终端12,例如还可以包括核心网节点或用于承载虚拟化网络功能的设备等,这些对于本领域技术人员而言是显而易见的,在此不一一赘述。

  另外,本申请实施例不仅可应用于以长期演进(Long Term Evolution,LTE)为代表的4G无线通信系统、车对外界(vehicle to everything,V2X)通信系统、设备到设备(Device-to-Device,D2D)通信系统,LTE的后续演化等,还可应用于下一代无线通信系统,即5G通信系统,以及应用于未来可能出现的其他系统,例如下一代的wifi网络、5G车联网等。

  需要说明的是,随着通信系统的不断演进,未来可能出现的其他系统中,上述各个网元的名称可能会发生变化,在这种情况下,本申请实施例提供的方案同样适用。

  图2为本申请实施例提供的另一种应用场景示意图。如图2所示,终端12还可以通过网络设备11与服务器13通信。在本实施例中,终端12可以是客户端,服务器13可以是服务端。终端12和服务器13可以通过SMB协议进行通信,使得终端12可以访问服务器13中的共享文件。

  图3为本申请实施例提供的再一种应用场景示意图。如图3所示,终端31为个人计算机PC,终端31中的客户端通过互联网访问服务器13中的共享文件。也就是说,服务器13负责通过网络为终端31提供可用的共享文件。终端31和服务器13之间可以通过传输控制协议/因特网互联协议(Transmission Control Protocol/Internet Protocol,TCP/IP)、互联网数据包交换协议(Internetwork Packet Exchange protocol,IPX)、或增强用户接口(NetBios Enhanced User Interface,NetBEUI)协议建立连接。终端31和服务器13之间一旦建立连接,终端31就可以通过向服务器13发送文件共享指令,以完成对服务器13中共享文件的操作,例如,读取共享文件、在共享文件中写入数据、检索共享文件等。

  通常情况下,如果终端31和服务器13位于同一个局域网内,则终端31和服务器13可以直接通信。但是,在一些场景中,终端31和服务器13并不在同一个局域网内,也就是说,终端31和服务器13可能部署在不同的局域网内,此时,终端31和服务器13之间需要代理服务器来转发SMB协议数据。如图4所示,14表示代理服务器。在本实施例中,为了和代理服务器14进行区分,可以将服务器13记为目标服务器。由于代理服务器14在跨网络转发SMB协议数据时,代理服务器14无法解析获取目标服务器13的IP地址,从而导致无法实现跨网络文件共享。针对该问题,本实施例提供了一种文件共享方法,下面结合具体的实施例对该方法进行详细的介绍。

  图5为本申请提供的一种文件共享方法的信令图。如图5所示,本实施例所述的文件共享方法包括如下步骤:

  步骤S501、客户端向代理服务器发送第一连接建立请求,所述第一连接建立请求包括目标服务器的IP地址。

  在本实施例中,客户端具体可以是图1-图4中的终端,例如,可以是图4中的终端31。或者,该客户端也可以是终端31中安装的应用程序。当客户端需要和目标服务器进行通信,例如,客户端需要访问目标服务器中的共享文件时,由于客户端和目标服务器不在同一个局域网内,因此,客户端可以通过代理服务器与该目标服务器建立连接及通信。具体的,客户端向代理服务器发送第一连接建立请求,该第一连接建立请求可包括目标服务器的IP地址。

  步骤S502、所述代理服务器与所述客户端建立第一连接。

  代理服务器接收到客户端发送的第一连接建立请求后,代理服务器可根据该第一连接建立请求与该客户端建立第一连接。本实施例并不限定客户端和代理服务器之间建立第一连接的方式,例如,客户端和代理服务器之间可传输控制协议(Transmission ControlProtocol,TCP)建立TCP连接。相应的,该第一连接建立请求为TCP连接建立请求。

  可以理解,在客户端和代理服务器建立TCP连接时,客户端和代理服务器需要进行三次握手,在第一次握手中,客户端需要向代理服务器发送同步序列编号(SynchronizeSequence Numbers,SYN)报文,假设该SYN=j。在第二次握手中,代理服务器接收到客户端发送的SYN报文(SYN=j),并对该SYN报文(SYN=j)进行确认,确认信息记为(Acknowledgement,ACK),ACK=j+1,同时,代理服务器自己也生成一个SYN报文,假设该SYN=k,代理服务器将该SYN报文(SYN=k)和ACK(ACK=j+1)一起发送给客户端。在第三次握手中,客户端接收到代理服务器发送的SYN和ACK,并对该SYN和ACK进行确认,向代理服务器发送确认信息,该确认信息发送完毕之后,客户端和代理服务器进入TCP连接成功状态,完成了三次握手。客户端和代理服务器完成三次握手之后,客户端和代理服务器可以开始传输数据。

  在一种可能的方式中,客户端向代理服务器发送的第一连接建立请求为客户端和代理服务器建立TCP连接过程即三次握手连接中的第一个SYN报文,该SYN报文的选项字段包括所述目标服务器的IP地址。其中,该选项字段即option字段可以是该SYN报文中原有的字段,也可以是客户端在该SYN报文中增加的字段。客户端向代理服务器发送该SYN报文之前,客户端在该选项字段中写入该目标服务器的IP地址。

  步骤S503、所述代理服务器与所述目标服务器建立第二连接。

  代理服务器在接收到客户端发送的SYN报文时,可对该SYN报文中携带的目标服务器的IP地址进行解析。具体的,该代理服务器可包括IP解析模块(pkt-peek),IP解析模块可类似于抓包工具,可用来解析该代理服务器从客户端接收到的报文,例如,SYN报文中携带的目标服务器的IP地址。

  进一步,代理服务器在解析出目标服务器的IP地址之后,根据该目标服务器的IP地址,与该目标服务器建立第二连接,该第二连接具体可以是SMB连接。

  另外,在一些实施例中,代理服务器与所述目标服务器建立第二连接之前,该代理服务器还可以根据所述目标服务器的IP地址,向所述目标服务器发送第二连接建立请求,该第二连接建立请求具体可以是SMB连接建立请求。

  步骤S504、客户端向代理服务器发送文件共享指令。

  可以理解,在客户端与代理服务器建立第一连接,代理服务器与目标服务器建立第二连接之后,客户端即可通过代理服务器与目标服务器通信。具体的,客户端向代理服务器发送文件共享指令,该文件共享指令包括如下至少一种:共享文件读指令、共享文件写指令、共享文件检索指令。

  步骤S505、代理服务器将所述文件共享指令转发给所述目标服务器。

  代理服务器接收客户端发送的文件共享指令后,代理服务器将该文件共享指令转发给目标服务器。当该文件共享指令为共享文件读指令时,客户端可以读取该目标服务器中的共享文件;当该文件共享指令为共享文件写指令时,客户端可以在该目标服务器中的共享文件中写入数据;当该文件共享指令为共享文件检索指令时,客户端对该目标服务器中的共享文件进行检索操作。

  本实施例通过代理服务器接收客户端发送的第一连接建立请求,使得代理服务器可以根据该第一连接建立请求与该客户端建立第一连接,另外,该第一连接建立请求包括目标服务器的IP地址,使得代理服务器根据目标服务器的IP地址与目标服务器建立第二连接,客户端可通过代理服务器向目标服务器发送文件共享指令,从而实现了客户端可以正常的跨网络访问该目标服务器中的共享文件。

  在一些应用场景中,一个终端可能会访问多个目标服务器,而一个目标服务器也可能被多个终端所访问。此时,代理服务器需要对多个终端和多个目标服务器之间的数据进行转发。如图6所示,终端1需要通过代理服务器访问目标服务器1中的共享文件,终端2需要通过代理服务器访问目标服务器2中的共享文件。终端1和终端2可以是不同操作系统的终端,例如,终端1的操作系统是Windows操作系统,终端2的操作系统是Linux操作系统。终端1和终端2可安装有相同的客户端,该客户端用于访问目标服务器中的共享文件。具体的,终端1的客户端可生成用于与目标服务器1建立连接的请求。为了与上述实施例中的第一连接建立请求和第二连接建立请求加以区分,此处,可以将客户端生成的用于与目标服务器建立连接的请求记为第三连接建立请求。具体的,该请求的源IP地址是终端1的IP地址,例如,终端1的IP地址记为A;该请求的源端口号是终端1的端口号,例如,p1;该请求的目的IP地址是目标服务器1的IP地址,例如,目标服务器1的IP地址记为C;该请求的目的端口号是445,即SMB协议固定使用的端口号。但是,由于终端1和目标服务器1不在同一个局域网内,终端1需要通过代理服务器与目标服务器通信。因此,终端1需要将其与目标服务器1建立连接的请求重定向到代理服务器。所谓的重定向具体是指,将该请求的目的IP地址替换为代理服务器的IP地址,例如,代理服务器的IP地址记为B。如图6所示,终端1的Windows客户端驱动将该请求中的目的IP地址即目标服务器1的IP地址C替换为代理服务器的IP地址B。重定向之后的请求即为上述实施例中的第一连接建立请求,该第一连接建立请求中的选项字段包括目标服务器1的IP地址C。

  同理,终端2中的客户端可生成用于与目标服务器2建立连接的请求。例如,该请求的源IP地址是终端2的IP地址,例如,终端2的IP地址记为D;该请求的源端口号是终端2的端口号,例如,p2;该请求的目的IP地址是目标服务器2的IP地址,例如,目标服务器2的IP地址记为E;该请求的目的端口号是445。终端2的网络过滤层可以将该请求重定向到代理服务器,重定向后的请求的目的IP地址是代理服务器的IP地址B,重定向后的请求中的选项字段包括目标服务器2的IP地址E。

  具体的,代理服务器中的IP解析模块可以通过目的端口号对代理服务器接收到的数据或报文进行解析,例如,IP解析模块可以对目的端口号是445的数据或报文进行解析。当代理服务器接收到终端1重定向后的请求、以及终端2重定向后的请求时,代理服务器中的IP解析模块可通过解析该请求中的选项字段,得到目标服务器1的IP地址C和目标服务器2的IP地址E,并且将终端1的IP地址A、终端1的端口号p1和目标服务器1的IP地址C存储到数据库中,该数据库具体可以是Redis数据库。同理,还可以将终端2的IP地址D、终端2的端口号p2和目标服务器2的IP地址E存储到该数据库中。可选的,该Redis数据库以哈希值存储终端的IP地址、终端的端口号和目标服务器的IP地址。

  另外,代理服务器可根据终端1重定向到该代理服务器的请求,与该终端1建立连接,该连接具体可以是上述实施例所述的第一连接,例如,TCP连接。当代理服务器与该终端1建立连接后,该代理服务器可从该Redis数据库中获取目标服务器1的IP地址C,具体的,该代理服务器可根据终端1的IP地址和终端1的端口号,从该Redis数据库中获取与该终端1的IP地址和终端1的端口号对应的目标服务器1的IP地址C。进一步,该代理服务器根据该目标服务器1的IP地址C与该目标服务器建立连接,该连接具体可以是上述实施例所述的第二连接,在本实施例中,该第二连接具体可以是socket连接,也就是说,在代理服务器确定目的IP地址是目标服务器1的IP地址C、以及目的端口号是445的情况下,该代理服务器可以和目标服务器1建立socket连接。具体的,该代理服务器向目标服务器1发送连接建立请求,该连接建立请求具体可以是上述实施例所述的第二连接建立请求。该连接建立请求的源IP地址是该代理服务器的IP地址,例如,该代理服务器的IP地址记为B;该连接建立请求的源端口号是该代理服务器的一个端口号,例如,p3;该连接建立请求的目的IP地址是目标服务器1的IP地址C;该连接建立请求的目的端口号是445。

  同理,代理服务器可根据终端2重定向到该代理服务器的请求,与该终端2建立连接,该连接具体可以是上述实施例所述的第一连接,例如,TCP连接。当代理服务器与该终端2建立连接后,该代理服务器可从该Redis数据库中获取目标服务器2的IP地址E,具体的,该代理服务器可根据终端2的IP地址和终端2的端口号,从该Redis数据库中获取与该终端2的IP地址和终端2的端口号对应的目标服务器2的IP地址E。进一步,该代理服务器根据该目标服务器2的IP地址E与该目标服务器建立连接,该连接具体可以是上述实施例所述的第二连接,在本实施例中,该第二连接具体可以是socket连接,也就是说,在代理服务器确定目的IP地址是目标服务器2的IP地址E、以及目的端口号是445的情况下,该代理服务器可以和目标服务器2建立socket连接。具体的,该代理服务器向目标服务器2发送连接建立请求,该连接建立请求具体可以是上述实施例所述的第二连接建立请求。该连接建立请求的源IP地址是该代理服务器的IP地址,例如,该代理服务器的IP地址记为B;该连接建立请求的源端口号是该代理服务器的一个端口号,例如,p4;该连接建立请求的目的IP地址是目标服务器2的IP地址E;该连接建立请求的目的端口号是445。

  可以理解的是,上述实施例中的部分或全部步骤或操作仅是示例,本申请实施例还可以执行其它操作或者各种操作的变形。此外,各个步骤可以按照上述实施例呈现的不同的顺序来执行,并且有可能并非要执行上述实施例中的全部操作。

  另外,本实施例以SMB协议为例,本实施例还可以适用于其他的应用层协议。具体实现方式与本申请实施例的实现方式类似,此处不再赘述。

  本实施例通过代理服务器接收终端重定向后的连接建立请求,从该连接建立请求中获取目标服务器的IP地址,并将该终端的IP地址、该终端的端口号和该目标服务器的IP地址存储到数据库中,当代理服务器与该终端建立连接后,该代理服务器可从该数据库中获取与该终端的IP地址和端口号对应的目标服务器的IP地址,并根据该目标服务器的IP地址与该目标服务器建立连接,使得代理服务器可以对该终端和该终端需要连接的目标服务器之间的数据进行转发,从而使得一个终端可访问多个目标服务器,一个目标服务器也可被多个终端所访问,从而使得该代理服务器可对多个终端和多个目标服务器之间的数据进行转发,提高了数据转发的效率。

  根据上述实施例可知,在客户端和代理服务器建立连接的过程中,客户端将目标服务器的IP地址发送给代理服务器。例如,客户端和代理服务器建立TCP连接过程即三次握手连接中的第一个SYN报文的选项字段包括所述目标服务器的IP地址。

  在另外一些实施例中,客户端还可以在与代理服务器建立连接之后,将目标服务器的IP地址发送给代理服务器。如图7所示,客户端和代理服务器首先进行SMB连接建立,建立SMB连接的过程包括步骤S701-S703。进一步,客户端和代理服务器进行会话建立,该会话建立的过程包括步骤S704-S706。进一步,客户端和代理服务器进行树连接(TreeConnect),在树连接的过程中,客户端向代理服务器发送请求,该请求中包括目标服务器的IP地址。也就是说,代理服务器在树连接的过程中才获取到目标服务器的IP地址,而此时,客户端和代理服务器已经建立SMB连接,即代理服务器需要通过解析SMB协议,从该SMB协议中获取该目标服务器的IP地址。而通过在客户端和代理服务器建立TCP连接过程即三次握手连接中的第一个SYN报文的选项字段包括目标服务器的IP地址,可使得代理服务器在与客户端建立SMB连接时即可获取到目标服务器的IP地址。相比于图7所示的方法,在TCP连接过程即三次握手连接中的第一个SYN报文的选项字段包括目标服务器的IP地址,解决了SMB协议建立连接前无法获取到目标服务器的IP地址的问题,另外,相比于通过解析SMB协议,从该SMB协议中获取该目标服务器的IP地址,可节约网络资源。

  可以理解的是,上述实施例中的部分或全部步骤骤或操作仅是示例,本申请实施例还可以执行其它操作或者各种操作的变形。此外,各个步骤可以按照上述实施例呈现的不同的顺序来执行,并且有可能并非要执行上述实施例中的全部操作。

  可以理解的是,以上各个实施例中,由终端实现的操作或者步骤,也可以由可用于终端的部件(例如芯片或者电路)实现,由网络设备(例如代理服务器、目标服务器)实现的操作或者步骤,也可以由可用于网络设备的部件(例如芯片或者电路)实现。

  图8给出了一种通信装置的结构示意图。通信装置可用于实现上述方法实施例中描述的网络设备(例如代理服务器、目标服务器)对应部分的方法、或者终端对应部分的方法,具体参见上述方法实施例中的说明。

  所述通信装置80可以包括一个或多个处理器81,所述处理器81也可以称为处理单元,可以实现一定的控制功能。所述处理器81可以是通用处理器或者专用处理器等。

  在一种可选地设计中,处理器81也可以存有指令83,所述指令可以被所述处理器运行,使得所述通信装置80执行上述方法实施例中描述的对应于终端或者网络设备的方法。

  在又一种可能的设计中,通信装置80可以包括电路,所述电路可以实现前述方法实施例中发送或接收或者通信的功能。

  可选地,所述通信装置80中可以包括一个或多个存储器82,其上存有指令84或者中间数据,所述指令84可在所述处理器上被运行,使得所述通信装置80执行上述方法实施例中描述的方法。可选地,所述存储器中还可以存储有其他相关数据。可选地处理器中也可以存储指令和/或数据。所述处理器和存储器可以单独设置,也可以集成在一起。

  可选地,所述通信装置80还可以包括收发器85。

  所述处理器81可以称为处理单元。所述收发器85可以称为收发单元、收发机、收发电路、或者收发器等,用于实现通信装置的收发功能。

  若该通信装置用于实现对应于图5所示实施例中代理服务器的操作时,例如,可以是收发器从终端接收第一连接建立请求,所述第一连接建立请求包括目标服务器的IP地址。收发器还可以进一步完成其他相应的通信功能。而处理器用于完成相应的确定或者控制操作,可选的,还可以在存储器中存储相应的指令。各个部件的具体的处理方式可以参考前述实施例的相关描述。

  若该通信装置用于实现对应于图5中的客户端的操作时,例如,可以由收发器向代理服务器发送第一连接建立请求,所述第一连接建立请求包括目标服务器的IP地址。收发器还可以进一步完成其他相应的通信功能。而处理器用于完成相应的确定或者控制操作,可选的,还可以在存储器中存储相应的指令。各个部件的具体的处理方式可以参考前述实施例的相关描述。

  本申请中描述的处理器和收发器可实现在集成电路(integrated circuit,IC)、模拟IC、射频集成电路RFIC、混合信号IC、专用集成电路(application specificintegrated circuit,ASIC)、印刷电路板(printed circuit board,PCB)、电子设备等上。该处理器和收发器也可以用各种1C工艺技术来制造,例如互补金属氧化物半导体(complementary metal oxide semiconductor,CMOS)、N型金属氧化物半导体(nMetal-oxide-semiconductor,NMOS)、P型金属氧化物半导体(positive channel metal oxidesemiconductor,PMOS)、双极结型晶体管(Bipolar Junction Transistor,BJT)、双极CMOS(BiCMOS)、硅锗(SiGe)、砷化镓(GaAs)等。

  可选的,通信装置可以是独立的设备或者可以是较大设备的一部分。例如所述设备可以是:

  (1)独立的集成电路IC,或芯片,或,芯片系统或子系统;

  (2)具有一个或多个IC的集合,可选地,该IC集合也可以包括用于存储数据和/或指令的存储部件;

  (3)ASIC,例如调制解调器(MSM);

  (4)可嵌入在其他设备内的模块;

  (5)接收机、终端、蜂窝电话、无线设备、手持机、移动单元,网络设备等等;

  (6)其他等等。

  图9为本申请实施例提供的一种通信装置的结构示意图。如图9所示,该通信装置90包括:接收模块901、连接建立模块902和发送模块903;其中,接收模块901用于接收终端发送的第一连接建立请求,所述第一连接建立请求包括目标服务器的IP地址;连接建立模块902用于根据所述第一连接建立请求与所述终端建立第一连接;根据所述目标服务器的IP地址与所述目标服务器建立第二连接;接收模块901还用于接收所述终端发送的文件共享指令;发送模块903用于将所述文件共享指令转发给所述目标服务器。

  在图9中,进一步地,所述第一连接建立请求为同步序列编号SYN报文,所述SYN报文的选项字段包括所述目标服务器的IP地址。

  一种可能的方式中,该通信装置90还包括:存储模块904和获取模块905;其中,存储模块904用于在所述接收模块接收终端发送的第一连接建立请求之后,将所述目标服务器的IP地址、所述终端的IP地址和所述终端的端口号存储在数据库;获取模块905用于在所述连接建立模块根据所述目标服务器的IP地址与所述目标服务器建立第二连接之前,从所述数据库获取所述目标服务器的IP地址。

  另一种可能的方式中,获取模块905具体用于:从所述数据库获取与所述终端的IP地址和所述终端的端口号对应的所述目标服务器的IP地址。

  可选的,接收模块901在接收终端发送的第一连接建立请求时,具体用于:接收所述终端发送的TCP连接建立请求;连接建立模块902在根据所述第一连接建立请求与所述终端建立第一连接时,具体用于:根据所述TCP连接建立请求,与所述终端建立TCP连接。

  可选的,发送模块903还用于:在所述连接建立模块根据所述目标服务器的IP地址与所述目标服务器建立第二连接之前,根据所述目标服务器的IP地址,向所述目标服务器发送第二连接建立请求。

  可选的,所述文件共享指令包括如下至少一种:共享文件读指令、共享文件写指令、共享文件检索指令。

  图9所示实施例的通信装置可用于执行上述方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述,可选的,该通信装置可以是代理服务器,也可以是代理服务器的部件(例如芯片或者电路)。

  图10为本申请实施例提供的另一种通信装置的结构示意图。如图10所示,该通信装置100包括:发送模块1001和连接建立模块1002;其中,发送模块1001用于向代理服务器发送第一连接建立请求,所述第一连接建立请求包括目标服务器的IP地址;连接建立模块1002用于与所述代理服务器建立第一连接,所述目标服务器的IP地址用于所述代理服务器与所述目标服务器建立第二连接;发送模块1001还用于:向所述代理服务器发送文件共享指令,以使所述代理服务器将所述文件共享指令转发给所述目标服务器。

  在图10中,进一步地,所述第一连接建立请求为同步序列编号SYN报文,所述SYN报文的选项字段包括所述目标服务器的IP地址。

  一种可能的方式中,该通信装置100还包括:生成模块1003和重定向模块1004,生成模块1003用于在所述发送模块向代理服务器发送第一连接建立请求之前,生成第三连接建立请求,所述第三连接建立请求用于该通信装置100与所述目标服务器建立连接,所述第三连接建立请求包括所述目标服务器的IP地址;重定向模块1004用于根据所述第三连接建立请求,生成所述第一连接建立请求。

  图10所示实施例的通信装置可用于执行上述方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述,可选的,该通信装置可以是终端,也可以是终端的部件(例如芯片或者电路)。

  应理解以上图9-图10所示通信装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块以软件通过处理元件调用的形式实现,部分模块通过硬件的形式实现。例如,连接建立模块可以为单独设立的处理元件,也可以集成在通信装置,例如终端的某一个芯片中实现,此外,也可以以程序的形式存储于通信装置的存储器中,由通信装置的某一个处理元件调用并执行以上各个模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。

  例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,ASIC),或,一个或多个微处理器(digital singnal processor,DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,FPGA)等。再如,当以上某个模块通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central ProcessingUnit,CPU)或其它可以调用程序的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。

  图11为本申请实施例提供的又一种通信装置的结构示意图。如图11所示,通信装置110包括:处理器112和收发装置113,收发装置113向代理服务器发送第一连接建立请求,所述第一连接建立请求包括目标服务器的IP地址;处理器112与所述代理服务器建立第一连接,所述目标服务器的IP地址用于所述代理服务器与所述目标服务器建立第二连接;收发装置113还用于向所述代理服务器发送文件共享指令,以使所述代理服务器将所述文件共享指令转发给所述目标服务器。进一步的,还包括存储器111,用于存储计算机程序或者指令,处理器112用于调用所述程序或者指令。

  图11所示实施例的通信装置可用于执行上述方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述,此处不再赘述,该通信装置可以是终端,也可以是终端的部件(例如芯片或者电路)。

  在图11中,收发装置113可以与天线连接。在下行方向上,收发装置113通过天线接收基站发送的信息,并将信息发送给处理器112进行处理。在上行方向上,处理器112对终端的数据进行处理,并通过收发装置113发送给基站。

  可选的,处理器112可以用于实现如图10所示的通信装置的重定向模块1004中的相应功能,收发装置可以用于实现图10所示的通信装置的发送模块1001的相应功能。或者,以上各个模块的部分或全部也可以通过集成电路的形式内嵌于该终端的某一个芯片上来实现。且它们可以单独实现,也可以集成在一起。即以上这些模块可以被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application SpecificIntegrated Circuit,ASIC),或,一个或多个微处理器(digital singnal processor,DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,FPGA)等。

  本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述实施例所述的通信方法。

  此外,本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,当其在计算机上运行时,使得计算机执行上述实施例所述的通信方法。

  在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid StateDisk)等。

《文件共享方法、通信装置及存储介质.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)