著录项信息
专利名称 | 一种处理套接字的方法、分组数据传输的方法及装置 |
申请号 | CN201110178421.X | 申请日期 | 2011-06-29 |
法律状态 | 授权 | 申报国家 | 暂无 |
公开/公告日 | 2011-10-19 | 公开/公告号 | CN102223307A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L12/56 | IPC分类号 | H;0;4;L;1;2;/;5;6;;;H;0;4;L;2;9;/;0;8查看分类表>
|
申请人 | 中兴通讯股份有限公司 | 申请人地址 | 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法务部
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 中兴通讯股份有限公司 | 当前权利人 | 中兴通讯股份有限公司 |
发明人 | 梁洁辉;王胜娟;李建勇 |
代理机构 | 北京安信方达知识产权代理有限公司 | 代理人 | 李健;龙洪 |
摘要
本发明提供一种处理套接字的方法、分组数据传输的方法及装置,该方法包括:连接管理应用获取每个业务应用对应的SOCKET标识符,向TCP/IP协议栈发送所述SOCKET标识符和修改指令;所述TCP/IP协议栈查找与所述SOCKET标识符对应的SOCKET文件描述信息,根据所述修改指令对所述SOCKET文件描述信息进行修改。根据本发明无论在单进程和多进程操作系统上,都能进行跨应用的IP绑定操作,而且可以根据用户意愿进行不同数据连接的应用级别流量选择。
1.一种处理套接字SOCKET的方法,包括:
连接管理应用获取每个业务应用对应的SOCKET标识符,向TCP/IP协议栈发送所述SOCKET标识符和修改指令;
所述TCP/IP协议栈查找与所述SOCKET标识符对应的SOCKET文件描述信息,根据所述修改指令对所述SOCKET文件描述信息进行修改。
2.如权利要求1所述的方法,其特征在于:所述连接管理应用获取每个业务应用对应的SOCKET标识符之后,还包括:
提示与所述业务应用相关的网络链路信息。
3.一种套接字SOCKET处理装置,包括:
连接管理应用模块,用于获取每个业务应用对应的SOCKET标识符,向TCP/IP协议栈模块发送所述SOCKET标识符和修改指令;
所述TCP/IP协议栈模块,用于查找与所述SOCKET标识符对应的SOCKET文件描述信息,根据所述修改指令对所述SOCKET文件描述信息进行修改。
4.如权利要求3所述的装置,其特征在于:还包括:
所述连接管理应用模块,获取每个业务应用对应的SOCKET标识符之后还用于,提示与所述业务应用相关的网络链路信息。
5.一种分组数据传输的方法,包括:
连接管理应用获取每个业务应用创建的SOCKET标识符,查找与所述业务应用对应的指定网络链路的IP地址,向TCP/IP协议栈发送所述SOCKET标识符、所述IP地址和链路修改指令;
所述TCP/IP协议栈查找与所述SOCKET标识符对应的SOCKET文件描述信息,根据所述链路修改指令将所述SOCKET文件描述信息中的源IP地址改为所述指定网络链路的IP地址;
所述TCP/IP协议栈通过所述指定网络链路传输所述业务应用的分组数据。
6.如权利要求5所述的方法,其特征在于:所述连接管理应用获取每个业务应用创建的SOCKET之后,还包括:
提示支持的所有网络链路的选项,接收用户选择的一个选项;
所述查找与所述业务应用对应的指定网络链路的IP地址,包括:根据所述用户选择的选项信息查找与该选项对应的网络链路的IP地址。
7.如权利要求5所述的方法,其特征在于:所述查找与所述业务应用对应的指定网络链路的IP地址,包括:
从预存的SOCKET标识符对应的五元组信息与网络链路的对应关系中,根据所述SOCKET标识符对应的五元组信息查找与所述业务应用对应的指定网络链路的IP地址。
8.一种分组数据传输的装置,包括:
连接管理应用模块,用于获取每个业务应用创建的SOCKET标识符,查找与所述业务应用对应的指定网络链路的IP地址,向TCP/IP协议栈模块发送所述SOCKET标识符、所述IP地址和链路修改指令;
所述TCP/IP协议栈模块,用于查找与所述SOCKET标识符对应的SOCKET文件描述信息,根据所述链路修改指令将所述SOCKET文件描述信息中的源IP地址改为所述指定网络链路的IP地址;用于通过所述指定网络链路传输所述业务应用的分组数据。
9.如权利要求8所述的装置,其特征在于,
所述连接管理应用模块,在获取到某个业务应用创建的SOCKET标识符之后还用于,提示所述装置支持的所有网络链路的选项,然后是根据用户选择的选项信息查找与该选项对应的网络链路的IP地址。
10.如权利要求8所述的装置,其特征在于,还包括:
存储模块,用于存储SOCKET标识符对应的五元组信息与网络链路的对应关系;
所述连接管理应用模块,是从所述存储的对应关系中,查找与所述业务应用对应的指定网络链路的IP地址。
一种处理套接字的方法、分组数据传输的方法及装置\n技术领域\n[0001] 本发明涉及通信领域,尤其涉及一种处理套接字的方法、分组数据传输的方法及装置。\n背景技术\n[0002] 目前终端可以具备多种分组数据连接,包括第二代通信系统(2G)的GPRS(General Packet Radio Service,通用分组无线接入)、第三代通信系统(3G)的数据连接(TD-SCDMA(Time Division-Synchronous Code Division Multiple Access,时分同步的码分多址)、WCDMA(Wideband Code Division Multiple Access,宽带码分多址)、CDMA2000)、介于2G与\n3G之前的EDGE(Enhanced Data rates for GSM Evolution,增强数据率的GSM(Global System for Mobile Communications,全球移动通讯系统)演进)、介于3G与4G之间的HSPA(High Speed Packet Access,高速分组接入)、第四代通信系统(4G)的LTE、无线局域网(WLAN)、Wifi(Wireless Fidelity,无线保真)和WiMax(Worldwide Interoperability for Microwave Access,全球微波互联接入)。终端可以同时拥有两种以上数据连接方式,各种数据连接方式的计费和QoS(Quality of Service,服务质量)差异很大,终端上的应用程序如何合理选择不同数据连接以及在多分组数据连接共存的情况下选择最适合的数据连接将会最终影响到用户体验。\n[0003] 目前终端在面对多分组数据连接并存时,一般通过配置路由来进行不同分组数据的流量选择,由于路由配置只涉及目标地址网段区分,无法做到逐个应用层次上的流量选择。终端在面临应用层次上的流量选择时,只能手工绑定相应数据连接的IP地址来进行流量区分,无法自适应按照用户意愿进行流量选择。由于终端的操作系统差异,对于一些嵌入式操作系统(单进程),可以跨应用级别进行IP绑定操作,而有些操作系统(多进程),则无法进行此操作。\n发明内容\n[0004] 本发明要解决的技术问题是提供一种处理套接字的方法、分组数据传输的方法及装置,可以按照用户意愿进行逐应用或者逐业务的分组数据链路选择。\n[0005] 为了解决上述技术问题,本发明提供了一种处理套接字(SOCKET)的方法,包括:\n[0006] 连接管理应用获取每个业务应用对应的SOCKET标识符,向TCP/IP协议栈发送所述SOCKET标识符和修改指令;\n[0007] 所述TCP/IP协议栈查找与所述SOCKET标识符对应的SOCKET文件描述信息,根据所述修改指令对所述SOCKET文件描述信息进行修改。\n[0008] 进一步地,上述方法还具有下面特点:所述连接管理应用获取每个业务应用对应的SOCKET标识符之后,还包括:提示与所述业务应用相关的网络链路信息。\n[0009] 为了解决上述问题本发明还提供了一种套接字(SOCKET)处理装置,包括:\n[0010] 连接管理应用模块,用于获取每个业务应用对应的SOCKET标识符,向TCP/IP协议栈模块发送所述SOCKET标识符和修改指令;\n[0011] 所述TCP/IP协议栈模块,用于查找与所述SOCKET标识符对应的SOCKET文件描述信息,根据所述修改指令对所述SOCKET文件描述信息进行修改。\n[0012] 进一步地,上述装置还具有下面特点:还包括:\n[0013] 所述连接管理应用模块,获取每个业务应用对应的SOCKET标识符之后还用于,提示与所述业务应用相关的网络链路信息。\n[0014] 为了解决上述问题,本发明还提供了一种分组数据传输的方法,包括:\n[0015] 连接管理应用获取每个业务应用创建的SOCKET标识符,查找与所述业务应用对应的指定网络链路的IP地址,向TCP/IP协议栈发送所述SOCKET标识符、所述IP地址和链路修改指令;\n[0016] 所述TCP/IP协议栈查找与所述SOCKET标识符对应的SOCKET文件描述信息,根据所述链路修改指令将所述SOCKET文件描述信息中的源IP地址改为所述指定网络链路的IP地址;\n[0017] 所述TCP/IP协议栈通过所述指定网络链路传输所述业务应用的分组数据。\n[0018] 进一步地,上述方法还具有下面特点:所述连接管理应用获取每个业务应用创建的SOCKET标识符之后,还包括:\n[0019] 提示支持的所有网络链路的选项,接收用户选择的一个选项;\n[0020] 所述查找与所述业务应用对应的指定网络链路的IP地址,包括:根据所述用户选择的选项信息查找与该选项对应的网络链路的IP地址。\n[0021] 进一步地,上述方法还具有下面特点:所述查找与所述业务应用对应的指定网络链路的IP地址,包括:\n[0022] 从预存的SOCKET标识符对应的五元组信息与网络链路的对应关系中,根据所述SOCKET标识符对应的五元组信息查找与所述业务应用对应的指定网络链路的IP地址。\n[0023] 为了解决上述问题,本发明还提供了一种分组数据传输的装置,包括:\n[0024] 连接管理应用模块,用于获取每个业务应用创建的SOCKET标识符,查找与所述业务应用对应的指定网络链路的IP地址,向TCP/IP协议栈模块发送所述SOCKET标识符、所述IP地址和链路修改指令;\n[0025] 所述TCP/IP协议栈模块,用于查找与所述SOCKET标识符对应的SOCKET文件描述信息,根据所述链路修改指令将所述SOCKET文件描述信息中的源IP地址改为所述指定网络链路的IP地址;用于通过所述指定网络链路传输所述业务应用的分组数据。\n[0026] 进一步地,上述装置还具有下面特点:\n[0027] 所述连接管理应用模块,在获取到某个业务应用创建的SOCKET标识符之后还用于,提示所述装置支持的所有网络链路的选项,然后是根据用户选择的选项信息查找与该选项对应的网络链路的IP地址。\n[0028] 进一步地,上述装置还具有下面特点:还包括:\n[0029] 存储模块,用于存储SOCKET标识符对应的五元组信息与网络链路的对应关系;\n[0030] 所述连接管理应用模块,是从所述存储的对应关系中,查找与所述业务应用对应的指定网络链路的IP地址。\n[0031] 综上,本发明提供一种处理套接字的方法、分组数据传输的方法及装置,无论在单进程和多进程操作系统上,都能进行跨应用的IP绑定操作,而且可以根据用户意愿进行不同数据连接的应用级别流量选择。\n附图说明\n[0032] 图1为本实施例的SOCKET处理装置的示意图;\n[0033] 图2为本实施例的分组数据传输的装置的示意图;\n[0034] 图3为本实施例的终端的整体框架图;\n[0035] 图4为本发明实施例提供的一种处理SOCKET的方法的流程图;\n[0036] 图5为本发明实施例提供的一种分组数据传输的方法的流程图;\n[0037] 图6为本发明应用示例的一种分组数据传输的方法的流程图。\n具体实施方式\n[0038] 为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。\n[0039] 图1为本实施例的套接字(SOCKET)处理装置的示意图,本实施例的装置可以是一芯片,可应用于终端等设备,如图1所示,本实施例的装置包括:\n[0040] 连接管理应用模块,用于获取每个业务应用对应的SOCKET标识符,向TCP/IP协议栈模块发送所述SOCKET标识符和修改指令;\n[0041] 所述TCP/IP协议栈模块,用于查找与所述SOCKET标识符对应的SOCKET文件描述信息,根据所述修改指令对所述SOCKET文件描述信息进行修改。\n[0042] 其中,所述连接管理应用模块获取每个业务应用对应的SOCKET标识符之后还用于,提示与所述业务应用相关的网络链路信息。\n[0043] 图2为本实施例的分组数据传输的装置的示意图,本实施例的装置可以是终端等设备,如图2所示,本实施例的装置包括:\n[0044] 连接管理应用模块,用于获取每个业务应用创建的SOCKET标识符,查找与所述业务应用对应的指定网络链路的IP地址,向TCP/IP协议栈模块发送所述SOCKET标识符、所述IP地址和链路修改指令;\n[0045] 所述TCP/IP协议栈模块,用于查找与所述SOCKET标识符对应的SOCKET文件描述信息,根据所述链路修改指令将所述SOCKET文件描述信息中的源IP地址改为所述指定网络链路的IP地址;用于通过所述指定网络链路传输所述业务应用的分组数据。\n[0046] 其中,所述连接管理应用模块在所述SOCKET处理模块获取到某个业务应用创建的SOCKET之后还用于,提示支持所述装置的所有网络链路的选项,然后是根据用户选择的选项信息查找与该选项对应的网络链路的IP地址。\n[0047] 本实施例的装置还可以包括:\n[0048] 存储模块,用于存储SOCKET标识符对应的五元组信息与网络链路的对应关系;\n[0049] 所述连接管理应用模块,是从所述存储的SOCKET文件描述信息与网络链路的对应关系中,查找与所述业务应用对应的指定网络链路的IP地址。\n[0050] 本实施例的终端的整体框架如图3所示,终端上的各个应用可以分别对应于具体业务,例如,彩信、WAP(Wireless Application Protocol,无线应用协议)、IM(Instant Messaging,即时通讯)、PSVT(Packet Switched Video Telephony Services,分组交换视频电话业务)等IP业务;这些应用调用操作系统层的TCP/IP协议栈对上层的一系列API(Application Programming Interface,应用程序编程接口),用来创建UDP(User Datagram Protocol,用户数据包协议)、TCP等套接字(SOCKET)与网络进行通信,然后通过TCP/IP协议栈的路由配置进行流量选择;在多网络链路同时存在时,可以分别从2G网络链路、3G网络链路、4G网络链路、WLAN链路或者WiMax链路进行IP数据分发。终端上的这些应用在操作系统层次上可以作为独立进程或者独立任务存在。\n[0051] 由于现有技术的路由配置的局限性,无法实现应用级别的IP数据区分,因此引入连接管理应用(相当于上述的SOCKET处理模块),可以向用户提示链路选择和按照用户意愿进行流量选择。进行流量选择时需要对指定链路进行绑定,对于TCP/IP协议栈的绑定操作,但现有技术中跨进程或者跨任务是无法执行该操作,因此本发明实施例对TCP/IP协议栈进行扩展,以便能够支持跨任务或跨进程的SOCKET操作,实现基于应用级别的流量选择。\n[0052] 在BSD((Berkeley Software Distribution,伯克利软件套件)TCP/IP协议栈的实现中,跨进程和跨任务是不能直接进行SOCKET操作的,原因是调用TCP/IP协议栈对上层SOCKET接口时,需要从应用提供的SOCKET标识符来查询当前任务或进程的全局SOCKET文件描述信息,每个任务或者进程都有自己独立的SOCKET文件描述信息,在不同任务间或进程间不是共享的。\n[0053] 在进行应用级别的流量选择时,需要对TCP/IP协议栈进行扩展,在上层应用调用TCP/IP协议栈对上的SOCKET接口时,如果当前进程或者任务无法找到SOCKET的文件描述信息,那么通过这些进程的关系遍历系统上的所有进程,在别的进程上搜寻有关SOCKET标识的SOCKET文件描述信息,如果未找到,则仍然按照之前的TCP/IP协议栈进行处理(即如果未找到,则TCP/IP协议栈会返回出错信息,例如错误的SOCKET标识(EBADF)),否则使用其它进程上的SOCKET文件描述信息,这样就对其它进程上的SOCKET文件描述信息进行修改,可以实现跨任务/跨进程的SOCKET操作。\n[0054] 实现上述跨任务/跨进程的SOCKET操作之后,连接管理应用可以容易按照用户的选择对不同应用的数据流量进行控制,在多链路并发时,可以逐个应用选择各个应用的分组数据链路,可以实现IP数据流的分流和汇聚功能。\n[0055] 本发明实施例提供一种处理SOCKET的方法,如图4所示,本实施例的方法包括下面步骤:\n[0056] S10、连接管理应用获取每个业务应用对应的SOCKET标识符,向TCP/IP协议栈发送所述SOCKET标识符和修改指令;\n[0057] S20、所述TCP/IP协议栈查找与所述SOCKET标识符对应的SOCKET文件描述信息,根据所述修改指令对所述SOCKET文件描述信息进行修改。\n[0058] 其中,所述连接管理应用获取每个业务应用对应的SOCKET标识符之后,还包括:提示与所述业务应用相关的连接信息。\n[0059] 这样,本实施例的方法即可以实现跨进程或跨任务的SOCKET操作。\n[0060] 本发明实施例还提供了一种分组数据传输的方法,如图5所示,本实施例的方法包括下面步骤:\n[0061] S100、连接管理应用获取每个业务应用创建的SOCKET,查找与所述业务应用对应的指定网络链路的IP地址,向TCP/IP协议栈发送所述SOCKET标识符、所述IP地址和链路修改指令;\n[0062] S200、所述TCP/IP协议栈查找与所述SOCKET标识符对应的SOCKET文件描述信息,根据所述链路修改指令将所述SOCKET文件描述信息中的源IP地址改为所述指定网络链路的IP地址;\n[0063] S300、所述TCP/IP协议栈通过所述指定网络链路传输所述业务应用的分组数据。\n[0064] 其中,步骤S100中,所述连接管理应用获取每个业务应用创建的SOCKET之后,还包括:提示支持的所有网络链路的选项,接收用户选择的一个选项;则所述查找与所述业务应用对应的指定网络链路的IP地址包括:根据所述用户选择的选项信息查找与该选项对应的网络链路的IP地址。\n[0065] 在一实施例中,所述查找与所述业务应用对应的指定网络链路的IP地址还可以包括:从预存的SOCKET标识符对应的五元组信息与网络链路的对应关系中,根据所述SOCKET标识符对应的五元组信息查找与所述业务应用对应的指定网络链路的IP地址。\n[0066] 为了更好地理解本发明,下面结合附图和具体实施例对本发明作进一步地描述。\n[0067] 如图6所示,本应用示例包括两个应用程序:应用1和应用2,以及连接管理应用和TCP/IP协议栈,本实施例的终端支持2G网络链路、3G网络链路、4G网络链路、WLAN链路和WiMax链路中的两种或两种以上的网络链路。\n[0068] 步骤101、应用1调用操作系统底层TCP/IP协议栈对上层的提供一套API接口中的SOCKET接口创建SOCKET,创建SOCKET后SOCKET接口返回一个SOCKET标识符,在当前应用1所在进程,对应在TCP/IP协议栈上,存储SOCKET标识符与SOCKET标识符对应的五元组信息的对应关系。之后其它应用可以查询到这个SOCKET标识符,从而获取应用1这个SOCKET标识符对应的五元组信息;\n[0069] SOCKET标识符对应的五元组信息包含:使用的协议(TCP、UDP等等)、源IP地址和源端口、目的IP地址和目的端口。\n[0070] 每一个SOCKET标识符对应一个SOCKET五元组信息,包括:使用的协议、源IP地址、源端口、目的IP地址和目的端口。\n[0071] 步骤102、连接管理程序通过定时轮询来获取各个应用建立的SOCKET标识符,将每个应用与相应的业务进行绑定,例如名字为mms的应用对应于彩信业务。\n[0072] 在本实施例中,连接管理应用获取到SOCKET标识符后,向用户提示本终端支持的流量策略(网络链路)的选项,用户就可以进行选择,用户可以任意指定彩信业务数据流量通过2G网络链路、3G网络链路或4G网络链路传输,还是通过WLAN链路或者Wimax链路传输,用户如果没有选择,则按缺省配置进行流量选择;\n[0073] 所述缺省配置可以根据SOCKET标识符对应的五元组信息来设置对应的网络链路,比如,目的端口为80的IP分组数据走WLAN链路,目的端口不为80的其它分组数据的都从3G网络链路走,也可以配置根据使用的协议来选择对应的网络链路,也可以根据源IP地址、源端口、目的IP地址等来配置对应的网络链路策略。\n[0074] 步骤103、用户指定流量选择策略或者应用缺省流量选择策略,连接管理应用找到相应链路当前的IP地址,调用TCP/IP协议栈对上的SOCKET API接口进行IP地址绑定操作。\n[0075] 具体地,连接管理应用将应用1的SOCKET标识符、用户选择的4G网络链路的IP地址和链路修改指令发送给操作系统层的TCP/IP协议栈,这样,TCP/IP协议栈即可以通过SOCKET标识找到应用1所在进程的SOCKET文件描述信息,并对其进行修改,本示例中,假设应用1选择4G网络链路,因此将应用1所在进程的SOCKET文件描述信息中的源IP地址改为4G网络链路的IP地址;\n[0076] 步骤104、应用1调用TCP/IP协议栈层对上提供的SOCKET发送和接收接口准备发送或者接收数据,这时候由于之前已经做了流量选择,这个SOCKET五元组已经有确定的源IP地址,因此不需要再执行路由选择,IP数据流量会按照用户选择的网络链路进行传输;\n[0077] 步骤105、由于应用1选择了4G网络链路,TCP/IP协议栈将在4G网络链路上发送和接收应用1的分组数据。\n[0078] 步骤201、应用2调用TCP/IP协议栈对上提供的SOCKET API接口创建套接字,准备与网络进行通信;\n[0079] 步骤202、连接管理应用轮询操作系统上各个应用所在进程的SOCKET标识符,当检测到应用2准备进行网络通讯时,如果用户选择缺省流量策略,则按缺省流量策略进行流量选择,否则提示用户对应用2的数据流量进行策略配置;\n[0080] 步骤203、按照用户选择的流量策略,连接管理应用将应用2的SOCKET绑定到指定链路的IP地址,本实例中,应用2选择WLAN链路,因为连接管理应用与应用2不在同一个任务或者进程,TCP/IP协议栈需要跨进程查询SOCKET标识符对应的SOCKET文件描述信息,将应用2的SOCKET的源地址修改为WLAN链路的IP地址;\n[0081] 步骤204、应用2调用TCP/IP协议栈对上提供的SOCKET API接口中的发送和接收接口来发送和接收数据;\n[0082] 由于步骤203已经将应用2创建的SOCKET绑定到WLAN链路的IP地址,TCP/IP协议栈不再需要应用路由配置,直接在WLAN链路上发送和接收应用2的分组数据。\n[0083] 终端上的其它应用可以按照应用1、应用2各自选择自己的流量策略,在多个网络链路上同时存在时,各个业务应用可以按照用户的选择分别同时在指定网络链路上发送和接收分组数据。\n[0084] 本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。\n[0085] 以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
法律信息
- 2017-02-15
- 2014-06-11
实质审查的生效
IPC(主分类): H04L 12/56
专利申请号: 201110178421.X
申请日: 2011.06.29
- 2011-10-19
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-12-12
|
2007-05-15
| | |
2
| |
2011-03-09
|
2010-10-20
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |