首页> 中国专利> 一种通过FTP协议实时获取HTTP资源的方法

一种通过FTP协议实时获取HTTP资源的方法

摘要

本发明提出一种通过FTP协议实时获取HTTP资源的方法。本发明提出一种FTP代理模块,该FTP代理模块将FTP请求实时转为HTTP请求并将HTTP响应实时转换为FTP响应。在本发明中,客户端首先向FTP代理模块发起FTP请求,在TCP三次握手建连后完成认证登录,客户端再向FTP代理模块发起FTP请求以请求HTTP资源,FTP代理模块基于该FTP请求拼接用于向HTTP源站发起HTTP请求的URL,用拼接完成的URL向HTTP源站发起请求。HTTP源站向FTP代理模块发送HTTP响应,FTP代理模块接收并解析对应的TCP报文,FTP代理模块申请内存,存储临时TCP报文数据,再以FTP格式封装TCP报文,发往客户端,从而达到实时HTTP回源的目的。

著录项

  • 公开/公告号CN113852666A

    专利类型发明专利

  • 公开/公告日2021-12-28

    原文格式PDF

  • 申请/专利权人 天翼数字生活科技有限公司;

    申请/专利号CN202110980462.4

  • 发明设计人 陆涛;孙为国;许文华;

    申请日2021-08-25

  • 分类号H04L29/08(20060101);H04L29/06(20060101);G06F16/955(20190101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人胡利鸣;蔡悦

  • 地址 200072 上海市静安区万荣路1256、1258号1423室

  • 入库时间 2023-06-19 13:26:15

说明书

技术领域

本发明涉及文件传输领域,主要涉及互联网文件(诸如图片、视频等)传输领域。

背景技术

FTP于1971年被提出,是互联网上历史最悠久的网络工具;HTTP于1991年被提出,是互联网上最普及的应用程序协议。随着通信技术的不断发展,FTP和HTTP作为文件传输协议,一直都是互联网非常重要的服务,广泛应用于DVB、IPTV、OTT等领域。

DVB、IPTV技术发展十多年来,用户规模已突破7亿户,存量视频已超千万小时,根据视频注入相关技术规范要求,工单及内容介质默认都通过FTP协议传输,由于DVB和IPTV业务的分省分运营商运营的特性,全国存在数百个运营网络,内容介质在这些网络平台之间均基于FTP协议进行点对点传输,由此引发部署的FTP服务不胜枚举。

相比DVB和IPTV,互联网及OTT上的视听娱乐文件均是基于HTTP协议传输的,并在基于HTTP基础上,通过CDN技术提高了传输效率和效果,使得热门影片、短视频、自媒体等视听娱乐服务深得人心。

目前,有少量业务平台已将内容注入系统升级以兼容HTTP回源,以此通过HTTP回源方式引入互联网的视听娱乐内容,可是此举对现有平台改造较大,且很多平台已不具备改造升级条件。所以,如何能在不改变现有系统的基础上,能通过FTP协议实时获取HTTP资源变得尤为重要。

发明内容

提供本发明内容以便以简化形式介绍将在以下具体实施方式中进一步的描述一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。

根据本发明的一个实施例,提供了一种通过FTP协议实时获取HTTP资源的方法,包括:接收具有URL形式的FTP请求;基于所述FTP请求来拼接成用于向HTTP源站发起HTTP请求的URL;用拼接完成的URL向所述HTTP源站发起HTTP请求;接收来自所述HTTP源站的HTTP响应;解析所述HTTP响应中对应的TCP报文;用FTP格式来封装所述TCP报文;其中所述方法由所述FTP代理模块来实现。

根据本发明的另一个实施例,提供了一种通过FTP协议实时获取HTTP资源的系统,包括:FTP代理模块,所述FTP代理模块被配置用于:接收具有URL形式的FTP请求;基于所述FTP请求来拼接成用于向HTTP源站发起HTTP请求的URL;用拼接完成的URL向所述HTTP源站发起HTTP请求;接收来自所述HTTP源站的HTTP响应;解析所述HTTP响应中对应的TCP报文;用FTP格式来封装所述TCP报文。

根据本发明的另一个实施例,提供了一种用于通过FTP协议实时获取HTTP资源的计算设备,包括:处理器;存储器,所述存储器存储有指令,所述指令在被所述处理器执行时能执行如上所述的方法。

通过阅读下面的详细描述并参考相关联的附图,这些及其他特点和优点将变得显而易见。应该理解,前面的概括说明和下面的详细描述只是说明性的,不会对所要求保护的各方面形成限制。

附图说明

为了能详细地理解本发明的上述特征所用的方式,可以参照各实施例来对以上简要概述的内容进行更具体的描述,其中一些方面在附图中示出。然而应该注意,附图仅示出了本发明的某些典型方面,故不应被认为限定其范围,因为该描述可以允许有其它等同有效的方面。

图1示出了现有技术中采用FTP技术来下载和传输文件的系统的示意图100;

图2示出了根据本发明的一个实施例的用于通过FTP协议实时获取HTTP资源的系统的示意图200;

图3示出了现有技术中网络模型的分层结构;

图4示出了现有技术中的TCP报文图;

图5示出了根据本发明的一个实施例的用于通过FTP协议实时获取HTTP资源的方法500的流程图;

图6示出了根据本发明的一个实施例的用于说明图5各步骤的示意图600-1到600-13;以及

图7示出了根据本发明的一实施例的可应用于本发明的各方面的硬件设备的计算设备700的框图。

具体实施方式

下面结合附图详细描述本发明,本发明的特点将在以下的具体描述中得到进一步的显现。

行业术语解释:

FTP(File Transfer Protocol,文件传输协议)是网络上两台计算机传送文件的协议,运行在TCP之上,是通过Internet将文件从一台计算机传输到另一台计算机的一种途径,并且借助协议天然的认证机制,该协议广泛应用于各行各业的可信文件传输。

HTTP(HyperText Transfer Protocol,超文本传输协议)基于TCP/IP通信协议来传递数据(HTML文件,图片文件,查询结果等),是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。

IPTV(Internet Protocol Television,交互式网络电视)是一种利用宽带有线电视网,集互联网、多媒体、通讯等多种技术于一体,向家庭用户提供包括数字电视在内的多种交互式服务的技术。

CDN(Content Delivery Network,内容分发网络)是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度。

一般而言,现有FTP文件下载都需要预先存储,再进行转发,本发明基于此提出对同基于TCP传输的FTP和HTTP协议的报文进行实时解析和封装,实现实时转换。

图1示出了现有技术中采用FTP技术来下载和传输文件的系统的示意图100。虽然HTTP已广泛应用于各行各业,但因为FTP比HTTP早20年提出,故依旧存在一些业务需通过FTP下载和传输文件。当要从互联网获取文件时,需提前将文件下载并存储起来,再发布提供FTP下载服务,此举不仅要占用较大的存储空间,而且操作耗时长、文件更新不及时。

例如,参见图1,示出了HTTP源站101,文件管理系统102以及业务系统103。一般而言,业务系统103用于向客户端(诸如机顶盒、智能家居等)提供各种服务,诸如视频服务、文件服务等。业务系统103接收来自客户端的请求,向文件管理系统102发起对视频、文件、图片等的请求。文件管理系统102通过HTTP从HTTP源站101下载内容(例如,视频、图片、文件等)并进行存储和管理,业务系统103通过FTP传输从文件管理系统102获取内容。

具体而言,在与IPTV服务有关的现有技术中,除了对工单进行管理的工单管理模块104以及对文件进行审核的文件审核模块105之外,文件管理系统102还提供下载服务模块106、FTP服务模块107和分布式存储模块108。工单管理模块104被配置为对工单进行管理,工单一般指每次发起下载请求的信息列表,比如发起请求的ID、时间、申请下载的文件名称等。文件审核模块105被配置用于确认所请求的文件是否有问题,比如是否是非法内容。在已知要下载的互联网内容URL的前提下,文件管理系统102提前通过下载服务模块106来经由HTTP技术从HTTP源站101下载互联网内容(例如,视频、图片、文件等),并将下载的内容存储在分布式存储模块108中。之后,文件管理系统102以FTP服务方式发布可供下载的内容。在业务系统103通过拼接FTP的URL发起FTP请求传输内容时,文件管理系统102将存储的内容通过FTP传输到业务系统103。

但是,随着业务的发展,文件管理系统102处存量的视频内容也越来越多,引发如下问题:1、FTP存储空间需求也越来越大;2、提前下载内容并进行存储降低了内容引入的速度,导致业务运营效率不高。

图2示出了根据本发明的一个实施例的用于通过FTP协议实时获取HTTP资源的系统的示意图200。

相较于图1的现有技术,在文件管理系统102,图2中采用了FTP代理模块201来代替图1中的下载服务模块106、FTP服务模块107和分布式存储模块107。具体而言,在已知要下载的互联网内容URL的前提下,当业务系统103拼接FTP的URL并请求传输时,FTP代理模块201实时转换FTP请求为HTTP请求,将HTTP响应实时转换为FTP响应,由此提供FTP传输。

在本发明中,FTP代理模块201被配置为提供HTTP和FTP的实时转换,即将FTP请求实时转换为HTTP请求,以及将HTTP响应实时转换为FTP响应。该FTP代理模块201的实现逻辑对业务系统103透明,为业务系统103提供FTP下载服务,可用于下载互联网上的视频、图片、安装包等文件。由此,本发明将现有技术应用场景中的提前下载文件、存储文件和通过FTP发布文件方式,替换为,本发明提出的能够将HTTP和FTP实时转换的FTP代理模块,从而节省存储空间,提高下载速度。

本领域的技术人员可以理解,在文件管理系统102,任何模块可以与任何其他模块通信,但出于容易解说的目的而未示出所有连接。并且,本领域的技术人员完全可以理解,本文仅仅是出于解说的目的来解说上述各个模块,上述模块中的一者或多者的功能可被合并到单个模块或拆分到多个模块中。并且,上述模块中的一者或多者可用软件、硬件或其组合的方式来实现。此外,HTTP源站101、文件管理系统102与业务系统103之间的通信方式采用本领域已知的方式进行,不在本发明的保护范围之内。

实现FTP和HTTP的实时转换在实践上是可行的。图3示出了现有技术中网络模型的分层结构。图4示出了现有技术中的TCP报文图。从图3中可以看到,FTP协议和HTTP协议同属于网络模型的应用层,都基于TCP协议传输,传输的报文都符合TCP格式。本发明基于TCPSocket编程实现,需对TCP报文上层的协议进行解析和处理。

图5示出了根据本发明的一个实施例的用于通过FTP协议实时获取HTTP资源的方法500的流程图。图6示出了根据本发明的一个实施例的用于说明图5各步骤的示意图600-1到600-13。其中,FTP代理模块可被实现在文件管理系统102中。图5的方案是在业务系统已知要获取的HTTP资源在文件管理系统处的URL(例如,在文件管理处的目录位置和名称)的情况下进行的。

总体而言,业务系统首先向FTP代理模块发起FTP建连请求,在TCP三次握手建连后完成认证登录,业务系统再向FTP代理模块发起FTP请求以对文件进行请求,FTP代理模块转换并拼接请求URL,用拼接完成的URL向HTTP源站发起请求。HTTP源站向FTP代理模块发送HTTP响应,FTP代理模块接收并解析对应的TCP报文,FTP代理模块申请内存,存储临时TCP报文数据,再以FTP格式封装TCP报文,发往业务系统,从而达到实时HTTP回源的目的。

在步骤501,业务系统向FTP代理模块发起FTP建连请求,并建立TCP连接。根据本发明的一个实施例,参见图600-1,TCP连接是通过TCP三次握手后建立的。

在步骤502,FTP代理模块对业务系统的登录进行认证。根据本发明的一个实施例,该认证包括:(1)FTP代理模块向业务系统发消息。例如,参见图600-2,在该消息中,code字段220表示新用户服务就绪,arg字段为服务器名称和版本号,ftpProxy 1.0为FTP代理模块的服务名称和版本号;(2)业务系统向FTP代理模块发送request报文。例如,参见图600-3,其中command字段表示该报文里包含的是用户名,arg字段为用户名内容;(3)FTP代理模块回复response报文。例如,参见图600-4,其中code值为331,表示用户名存在,需要输入密码进行验证;(4)业务系统向FTP代理模块发送request报文。例如,参见图600-5,其中command字段表示该报文里包含的是密码,arg字段为密码内容;(5)FTP代理模块回复response报文。例如,参见图600-6,其中code值为230,表示用户已登录,可以继续操作。

在步骤503,业务系统与FTP代理模块建立FTP被动连接。如图4所示,本发明同时支持FTP主动和被动两种模式,本发明以被动模式为例。根据本发明的一个实施例,业务系统向FTP代理模块发送请求以建立被动连接。FTP代理模块进行响应,同意建立被动连接,并且向业务系统发送FTP代理模块的IP和监听端口。根据本发明的一个实施例,例如,参见图600-7,其中被动连接的IP地址为:221.228.56.5,端口为10028。

在步骤504,业务系统向FTP代理模块发送FTP请求以对HTTP资源进行请求。根据本发明的一个实施例,FTP请求具有FTP URL的格式。根据本发明的一个实施例,该FTP请求至少包括以下内容:FTP代理模块的IP地址和端口(一般而言,FTP代理模块的端口为21);所请求HTTP资源在文件管理系统处的目录位置和名称。例如,该FTP请求可以为

在步骤505,FTP代理模块基于接收到的FTP请求来拼接成用于向HTTP源站发起HTTP请求的URL。根据本发明的一个实施例,例如,参考图600-8,拼接URL包括:A)解析步骤504中的FTP请求的TCP报文的目的IP和目的端口(即,FTP代理模块的IP地址和端口),例如,得到221.228.56.5:21;B)解析该TCP报文中Request/Rest关键字,通过正则表达式截取“/”符号后的目录为根目录,例如,文件名为config.txt;C)查询配置文件,取得与该目的IP对应的HTTP源站地址,例如,为221.228.39.45:9080;D)将获得的HTTP源站地址与FTP请求中指示文件目录位置和名称的URL进行拼接,得到与HTTP资源对应的HTTP源站的URL,例如,为

在步骤506,FTP代理模块用拼接完成的URL向HTTP源站发起HTTP请求。根据本发明的一个实施例,例如,参考图600-9,FTP代理模块与HTTP源站通过三次握手来建立TCP连接。根据本发明的另一个实施例,FTP代理模块根据配置文件中的常用源站地址进行配置,选择是否使用长连接池,减少建连拆连的时间消耗。

在步骤507,HTTP源站向FTP代理模块发送HTTP响应。根据本发明的一个实施例,例如,参考图600-10,该HTTP响应包括文件数据。

在步骤508,FTP代理模块接收并解析HTTP响应中对应的TCP报文,并申请内存以存储临时数据。根据本发明的一个实施例,FTP代理模块申请内存以存储临时TCP报文数据。具体而言,FTP代理模块对步骤507得到的HTTP报文进行解析,除去HTTP报文的字段并临时存储起来。为每个HTTP连接创建大小为256的内存池,为每个请求创建大小为4096的内存池。内存池通过链表和指针进行管理,包括申请、占用、统计和释放等。例如,图600-11示出了内存池模型。

在步骤509,FTP代理模块封装TCP报文,并向客户端发送该封装后的TCP报文。根据本发明的一个实施例,例如,参考图600-12,FTP代理模块将步骤508中临时存储的响应数据,以FTP格式封装为TCP报文,并将封装后的TCP报文发往客户端。

在步骤510,数据传输完成后,断开业务系统与FTP代理之间的TCP连接。根据本发明的一个实施例,例如,参考图600-13,通过TCP四次挥手来断开TCP连接。

与此同时,本发明还在如下方面对FTP代理模块进行优化:

1、断点续传:FTP协议是通过REST指令实现断点续传指令的,HTTP协议是通过RANGE指令实现范围请求的,所以在实现整个文件传输的基础上,还实现了断点续传功能的协议转换。

2、热点缓存:考虑到业务系统短时间可能会多次请求同一个文件,所以通过对热点文件的临时缓存,可加快文件响应速度,同时,参考HTTP的no-cache指令,可对该功能进行开关控制。

3、连接复用:作为代理,需要不断与源站建立TCP连接,而源站又是通过配置的,数量不会太多,所以引入与指定源站的长链接池,节省三次握手和四次挥手的时间,并可防止大量并发下出现大量TIMEWAIT状态,导致信道过载的情况。

相比现有技术,本发明至少具有以下优点:

1)在本发明的技术方案中,文件管理系统无需提供FTP存储服务用于下载内容介质,只需部署一个FTP的代理服务,减少了储存空间需求量;

2)在本发明的技术方案中,文件管理系统无需提前下载文件,节省了时间,提高了效率,提高了内容介质在网络及平台之间的整体传输速度。

图7示出了根据本发明的一实施例的可应用于本发明的各方面的硬件设备的计算设备700的框图。

参考图7,现在将描述一种计算设备700,该计算设备是可应用于本发明的各方面的硬件设备的一个示例。例如,图5中的客户端、代理模块和/或HTTP源站可被实现为计算设备700。计算设备700可以是可被配置成用于实现处理和/或计算的任何机器,可以是但并不局限于工作站、服务器、桌面型计算机、膝上型计算机、平板计算机、个人数字处理、智能手机、车载计算机或者它们的任何组合。前述的各种方法/装置/服务器/客户端设备可全部或者至少部分地由计算设备700或者类似设备或系统来实现。

计算设备700可包括可经由一个或多个接口和总线702连接或通信的组件。例如,计算设备700可包括总线702、一个或多个处理器704、一个或多个输入设备706以及一个或多个输出设备708。该一个或多个处理器704可以是任何类型的处理器并且可包括但不限于一个或多个通用处理器和/或一个或多个专用处理器(例如,专门的处理芯片)。输入设备706可以是任何类型的能够向计算设备输入信息的设备并且可以包括但不限于鼠标、键盘、触摸屏、麦克风和/或远程控制器。输出设备708可以是任何类型的能够呈现信息的设备并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。计算设备700也可以包括非瞬态存储设备710或者与所述非瞬态存储设备相连接,所述非瞬态存储设备可以是非瞬态的并且能够实现数据存储的任何存储设备,并且所述非瞬态存储设备可以包括但不限于磁盘驱动器、光存储设备、固态存储器、软盘、软磁盘、硬盘、磁带或任何其它磁介质、光盘或任何其它光介质、ROM(只读存储器)、RAM(随机存取存储器)、高速缓冲存储器和/或任何存储芯片或盒式磁带、和/或计算机可从其读取数据、指令和/或代码的任何其它介质。非瞬态存储设备610可从接口分离。非瞬态存储设备710可具有用于实施上述方法和步骤的数据/指令/代码。计算设备700也可包括通信设备712。通信设备712可以是任何类型的能够实现与内部装置通信和/或与网络通信的设备或系统并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信设备和/或芯片组,例如蓝牙设备、IEEE 1302.11设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似设备。

总线702可以包括但不限于工业标准结构(ISA)总线、微通道结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外部设备互连(PCI)总线。

计算设备700还可包括工作存储器714,该工作存储器714可以是任何类型的能够存储有利于处理器704的工作的指令和/或数据的工作存储器并且可以包括但不限于随机存取存储器和/或只读存储设备。

软件组件可位于工作存储器714中,这些软件组件包括但不限于操作系统716、一个或多个应用程序718、驱动程序和/或其它数据和代码。用于实现本发明上述方法和步骤的指令可包含在所述一个或多个应用程序718中,并且可通过处理器704读取和执行所述一个或多个应用程序718的指令来实现本发明的上述方法500。

也应该认识到可根据具体需求而做出变化。例如,也可使用定制硬件、和/或特定组件可在硬件、软件、固件、中间件、微代码、硬件描述语音或其任何组合中实现。此外,可采用与其它计算设备、例如网络输入/输出设备等的连接。例如,可通过具有汇编语言或硬件编程语言(例如,VERILOG、VHDL、C++)的编程硬件(例如,包括现场可编程门阵列(FPGA)和/或可编程逻辑阵列(PLA)的可编程逻辑电路)利用根据本发明的逻辑和算法来实现所公开的方法和设备的部分或全部。

尽管目前为止已经参考附图描述了本发明的各方面,但是上述方法、系统和设备仅是示例,并且本发明的范围不限于这些方面,而是仅由所附权利要求及其等同物来限定。各种组件可被省略或者也可被等同组件替代。另外,也可以在与本发明中描述的顺序不同的顺序实现所述步骤。此外,可以按各种方式组合各种组件。也重要的是,随着技术的发展,所描述的组件中的许多组件可被之后出现的等同组件所替代。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号