一种网络接口在条件接收卡中的实现方法和装置的制造方法
【技术领域】
[0001 ]本发明属于数字电视技术领域,尤其涉及一种网络接口在条件接收卡中的实现方法和装置。
【背景技术】
[0002]目前的CA/DRM客户端或其他第三方客户端一般是基于标准的网络接口进行开发,都是基于设备(机顶盒、主机或条件接收卡)具有真实网卡应用开发的,如果设备没有自带网卡,在实现这些基本应用上就会出现网络调用出错,需要这些客户端提供商逐一说明每个网络调用函数的定义,集成商重新构造函数,对于Linux的网络操作来说,至少有四方面的函数需要实现:
[0003]I)特定的网络函数,例如socket, send ,recv, getaddrinfo ,gethostbyname等,不同的客户端调用的函数不同,需要定制化封装,系统平台增加就意味着增加编写封装函数;
[0004]2)Linux对于设备都有通用的接口,open,read,write ,close , 1ctl都是通用的,修改网络的10处理就同时要实现所有的其他10的处理;
[0005]3)Poll ,select的10复用函数虽然不是和网络直接相关,但是往往和网络调用函数组合使用,也需要附带封装实现;
[0006]4)不同平台调用的函数虽然类似,但是定义不同,移植不同操作系统平台时需要修改。
[0007]现有技术的缺点主要表现在以下几个方面:
[0008]I)网络相关的函数个数众多,即使是客户端提供商也难以完全列出所有相关函数,例如函数gethostbyname和gethostbyname_r,函数名相近但是功能有差异,客户端提供商也有遗漏说明的,定制的工作量大;
[0009]2)Linux的所有的设备驱动都可以以文件方式进行处理,网络函数封装也包含了文件处理函数封装的工作,如果系统平台更改就需要重现编写,实现的难度大工作量大;
[0010]3)10复用函数虽然不是和网络直接相关,却是有效处理多个设备常用方法,往往和网络调用函数组合使用,也需要附带封装实现,这些函数是服务于所有10设备的,涉及到系统内核的调用策略,修改难度大;
[0011]4)迀移平台都要封装函数,不同客户端使用的函数不一样不能一次性包括所有函数,不同平台的集成都需要定制集成,工作量大。
【发明内容】
[0012]本发明实施例提供一种网络接口在条件接收卡(简称CAM)中的实现方法和装置,旨在解决现有技术中没有真实网卡的设备网络接口实现困难的问题。
[0013]本发明实施例是这样实现的,一种网络接口在条件接收卡中的实现方法,该方法包括:
[0014]通过虚拟网卡获取网络数据包;
[0015]解析网络数据包中的IP地址以及端口;
[0016]将网络数据包按照端口对应的协议类型重新封装;
[0017]将重新封装后的网络数据包发送给IP地址对应设备的对应端口。
[0018]本发明实施例还提供一种网络接口在条件接收卡中的实现装置,该装置包括:
[0019]网络数据包获取模块,用于通过虚拟网卡获取网络数据包;
[0020]解析模块,用于解析网络数据包中的IP地址以及端口;
[0021 ]封装模块,用于将网络数据包按照端口对应的协议类型重新封装;
[0022]网络数据包发送模块,用于将重新封装后的网络数据包发送给IP地址对应设备的对应端口。
[0023]本发明通过利用虚拟网卡在条件接收卡中实现实体网卡的功能,使得能够为不同的CA/DRM和网络应用客户端提供一个统一标准的接口,相对于重新封装系统函数gI ibe,本发明提供的方法只需要封装UDP/TCP/ARP包,既免除了标准1函数/10复用函数的重新封装,又免除了 CA/DRM客户端为集成商定制接口或由于集成商重新封装函数难以实现而修改流程的问题。本发明提供的网络接口在条件接收卡中的实现方法具有普遍适应性,能够广泛应用于不同客户端的移植,特别是对于不同条件接收产品来说,移植不同CA客户端能共用一套成熟的虚拟网卡驱动,对于系统众多的网络函数都能够处理,一次实现可以在不用应用客户端使用,不需要应用客户端更改接口,减少了实现难度,且虚拟网卡的驱动处理能够在应用层开发,方便对接应用层的调试。
【附图说明】
[0024]图1是本发明实施例一提供的一种网络接口在条件接收卡中的实现方法的流程图;
[0025]图2是本发明实施例二提供的一种网络接口在条件接收卡中的实现方法的流程图;
[0026]图3是本发明实施例三提供的一种网络接口在条件接收卡中的实现方法的流程图;
[0027]图4是本发明实施例四提供的一种网络接口在条件接收卡中的实现方法的流程图;
[0028]图5是本发明实施例五提供的一种网络接口在条件接收卡中的实现方法的流程图;
[0029]图6是本发明实施例六提供的一种网络接口在条件接收卡中的实现装置的结构示意图;
[0030]图7是本发明的一个示例提供的一种网络接口在条件接收卡中的实现装置的结构示意图;
[0031 ]图8为本发明实施例的虚拟网卡的工作原理示意图。
【具体实施方式】
[0032]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0033]由于目前的CA/DRM客户端或其他第三方客户端一般都是基于设备具有真实网卡的标准的网络接口应用开发的,如果设备没有自带网卡,在实现这些基本应用上就会出现网络调用出错,需要这些客户端提供商逐一说明每个网络调用函数的定义,需要集成商重新构造函数,逐个驱动集成,本发明正是针对目前这一现状带来的接口实现难度大、工作量大提供的一种解决方案。
[0034]实施例一
[0035]图1是本发明实施例一提供的一种网络接口在条件接收卡中的实现方法的流程图,下面结合图1来具体描述根据本发明的一个实施例的网络接口在条件接收卡中的实现方法,如图1所示,该方法包括以下步骤:
[0036]SlOl、通过虚拟网卡获取网络数据包。
[0037]其中,该网络数据包等同于IP数据包,虚拟网卡(S卩TUN/TAP设备)是软件的接口,它替代了真实网卡的功能,可以将TCP/IP协议栈处理好的网络分包传给任何一个使用TUN/TAP设备驱动的进程,由进程重新处理后再发到物理链路中。它承接着TCP/IP协议栈发送的命令,同时回应着TCP/1P协议栈的命令,当然对这些命令的处理都只是转接到真实网卡,都是内核层之间的操作。
[0038]S102、解析网络数据包中的IP地址以及端口 ;
[0039 ] SI 03、将网络数据包按照端口对应的协议类型重新封装。
[0040]其中,封装的内容包括但不限于会话号(包括IP地址以及端口)、负载数据、协议命令等等。会话号是条件接收和主机之间通讯的ID号,虚拟网卡根据端口对应的会话号与目标设备建立连接。
[0041]协议类型主要包括:TCP协议(用6表示),UDP协议(用17表示)。
[0042]S104、将重新封装后的网络数据包发送给IP地址对应设备的对应端口。
[0043]为了更好的理解本实施例现提供图8,图8为本发明实施例的虚拟网卡的工作原理示意图,如图8所示,其中的数字标注表示接口,具体的对应关系如下:
[0044]①表示网络应用客户端和TCP/IP协议栈的接口;②表示TCP/IP协议栈和TUN/TAP设备