发明名称 基于虚拟网卡技术的多隧道并发模型实现方法
摘要 基于虚拟网卡技术的多隧道并发模型实现方法:建立隧道时,应用程序的处理进程获取虚拟地址,进行虚拟网卡使用实例的注册,建立与虚拟网卡通信的文件描述字;当虚拟网卡接收到协议栈转发的数据时,根据数据包的目的地址,将数据包转发给相应的文件描述字,从而交由正确的处理进程进行处理;每个隧道的处理过程分为建立隧道、数据转发以及拆除隧道:建立隧道时客户端发送建立隧道请求,隧道网关的应用程序fork一个新的进程来处理该请求:隧道建立成功后,隧道网关负责转发客户端与应用服务器之间的通信数据:当客户端断开tcp连接或是超时,拆除隧道连接,隧道网关将回收地址池分配出去的虚拟地址,进行虚拟网卡虚拟实例注销。
申请公布号 CN101626337A 申请公布日期 2010.01.13
申请号 CN200910033851.5 申请日期 2009.06.18
申请人 南京联创科技股份有限公司 发明人 黄林;杨震;张尊平;沈超;任建国;陆志强;庞海东
分类号 H04L12/46(2006.01)I;H04L29/06(2006.01)I;H04L12/56(2006.01)I;H04L29/12(2006.01)I 主分类号 H04L12/46(2006.01)I
代理机构 南京天翼专利代理有限责任公司 代理人 陈建和
主权项 1、一种基于虚拟网卡技术的多隧道并发模型实现方法:建立隧道时,应用程序的处理进程获取虚拟地址,进行虚拟网卡使用实例的注册,建立与虚拟网卡通信的文件描述字;当虚拟网卡接收到协议栈转发的数据时,根据数据包的目的地址(即虚拟地址),将数据包转发给相应的文件描述字,从而交由正确的处理进程进行处理;其特征是每个进程处理一个隧道,一个隧道的处理过程分为建立隧道、数据转发以及拆除隧道,具体步骤如下:●建立隧道客户端发送建立隧道请求,隧道网关的应用程序fork一个新的进程来处理该请求:1)fork一个新的进程,处理客户端的建立TCP连接请求;2)接收客户端的建立隧道请求;3)选取一个未使用的虚拟地址,准备分配给客户端;4)以该虚拟地址为关键IP,调用虚拟网卡的DUMMY_INSTANCE_REGISTER服务,完成虚拟网卡使用实例的注册;5)返回给客户端隧道建立成功报文;●数据转发隧道建立成功后,隧道网关负责转发客户端与应用服务器之间的通信数据:1)客户端将IP数据包封装入隧道报文,将隧道报文发送给隧道网关;2)隧道网关处理进程接收到数据包后,解析隧道报文,提取其中封装的IP数据包,然后将IP数据包通过与虚拟网卡关联的文件描述字,提交给虚拟网卡驱动;3)虚拟网卡驱动将数据包提交给协议栈,协议栈通过路由匹配,将数据包转发给应用服务器;4)应用服务器将响应数据包发送给隧道网关;5)隧道网关协议栈根据路由,将数据包传送给虚拟网卡;6)虚拟网卡驱动根据数据包的目的地址(虚拟地址),查看与其对应的虚拟网卡实例是否已经注册,如果已经注册,则唤醒相应的隧道网关处理进程读取数据;否则丢弃该数据包;7)隧道网关处理进程读取数据之后,将其封装入隧道报文,发送给客户端;●拆除隧道当客户端断开tcp连接或是超时,则需要拆除隧道连接,隧道网关将回收地址池分配出去的虚拟地址,并调用虚拟网卡的DUMMY_INSTANCE_UNREGISTER服务,进行虚拟网卡的虚拟实例的注销。
地址 210013江苏省南京市定淮门12号16楼