一种Linux内核接管socket链接的方法和装置制造方法及图纸

技术编号:12095616 阅读:114 留言:0更新日期:2015-09-23 13:29
本发明专利技术公开了一种Linux内核接管socket链接的方法和装置,包括在Linux用户空间创建socket链接,socket链接在Linux用户空间完成协商和认证等链路管理工作,设置Linux内核接管socket链接,Linux内核中使用socket链接传输Linux内核空间的数据。减少了Linux操作系统中socket链接资源的浪费,避免了多个socket链接相互关联的复杂性,更加符合Linux操作系统软件的设计原则。

【技术实现步骤摘要】

本专利技术涉及控制系统软件设计
,具体涉及一种Linux内核接管socket链接的方法。
技术介绍
在Linux操作系统上进行软件设计时,原则之一就是内核空间程序尽量精简,复杂的工作如果不是必须在Linux内核中处理的就尽量放到Linux用户空间去处理。在数据通信时,采用socket链接建立的链路,为了确保通信双方参数设置的一致性,以及身份认证的安全性,等等相关链路管理工作是有必要的,并且此类处理更适合在Linux用户空间的程序中执行。如果通信双方被传输的数据都在Linux内核空间中,那么采用socket链接建立链路时,传统的做法一般有两种。一种方法是直接在Linux内核空间建立socket链接,并在Linux内核中完成协商、认证等一系列的链路管理工作,然后用此socket链接传输Linux内核空间中的数据。这种处理的缺点是使得Linux内核增加了不必要的复杂性,违背Linux内核空间程序尽量精简的原则。另一种方法是在Linux用户空间和Linux内核空间分别各建立一条socket链接,然后让这两条链接建立关联关系,协商、认证等链路管理工作由Linux用户空间的socket链接来完成,然后再有Linux内核空间的socket链接开始数据传输。这种处理方式缺点就是带来了 socket资源的浪费。如果对该方法稍作改进,完成协商和认证等链路管理工作之后关闭Linux用户空间中socket链接,但仍然涉及多socket链路相互关联,增加了耦合性和复杂性,并且关闭socket链路的过程需要解除关联,增加了出现故障的概率。
技术实现思路
为了解决上述技术问题,本专利技术提供了一种Linux内核接管socket链接的方法和装置,在节约Linux系统资源的条件下,使得同一条socket链接既能在Linux用户空间完成协商和认证等链路管理性工作,又能承担Linux内核空间数据传输任务。为了达到本专利技术目的,本专利技术提供了一种Linux内核接管socket链接的方法,其特征在于,包括:在用户空间,建立socket链接;在用户空间完成socket链路管理工作;设置Linux内核接管socket,将socket链接下发到内核空间;在内核中使用socket链接传输内核空间的数据。进一步地,所述socket链路管理包括:链路协商、和/或身份认证。进一步地,在需要内核数据传输前,进行链路协商、和/或身份认证的链路管理。进一步地,如果链路协商、和/或身份认证不成功,则关闭socket链接。进一步地,所述Linux内核接管包括:将Linux用户空间的socket链接的标识符传递到Linux内核;Linux内核根据socket链接的标识符,获得并标记此socket链接在Linux内核中使用;关闭Linux用户空间的socket。进一步地,所述在内核中使用socket链接传输内核空间的数据是利用Linux内核中socket链接的数据发送和接收函数接口进行的。为了达到本专利技术目的,本专利技术提供了一种用于Linux内核接管socket链接的装置,其特征在于,包括:socket链接建立单元402,用于在用户空间建立socket链接;socket链路管理单元404,用于在用户空间完成链路管理工作;S0Cket链接接管单元406,用于设置socket链接的内核接管;数据传输单元408,用于进行Linux内核空间的数据传输。进一步地,所述socket链路管理包括:链路协商、和/或身份认证。进一步地,在需要内核数据传输前,进行链路协商、和/或身份认证的链路管理。进一步地,所述Linux内核接管包括:将Linux用户空间的socket链接的标识符传递到Linux内核;Linux内核根据socket链接的标识符,获得并标记此socket链接在Linux内核中使用;关闭Linux用户空间的socket。进一步地,所述Linux内核空间的数据传输是利用Linux内核中socket链接的数据发送和接收函数接口进行的。与现有技术相比,本专利技术的有益效果是:减少了 Linux操作系统中socket链接资源的浪费,避免了多个socket链接相互关联的复杂性,更加符合Linux操作系统软件的设计原则,为Linux操作系统中socket链接的设计提供了很高的参考价值。【附图说明】附图用来提供对本专利技术技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本专利技术的技术方案,并不构成对本专利技术技术方案的限制。附图1示出了根据本专利技术一实施例的socket链接在Linux用户空间完成协商和认证的示意图;附图2示出了根据本专利技术一实施例的socket链接进行Linux内核接管的示意图;附图3示出了根据本专利技术一实施例的socket链接在Linux内核空间承担数据传输任务的不意图;附图4示出了根据本专利技术一实施例的Linux内核接管socket链接装置的框图。【具体实施方式】为使本专利技术的目的、技术方案和优点更加清楚明白,下文中将结合附图对本专利技术的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。本专利技术包括在Linux用户空间创建socket链接,socket链接在Linux用户空间完成协商和认证等链路管理工作,设置Linux内核接管socket链接,Linux内核中使用socket链接传输Linux内核空间的数据。根据本专利技术的一实施例,下面结合图1-3详细说明Linux内核接管socket链接的方法。分布式设备的多个控制器或多个主机运行Linux操作系统,其包括用户空间和内核空间。下面以控制器之间的数据通信为例进行说明,但该数据通信的执行主体不限于控制器之间,也可以是主机之间或控制器与主机之间。参考图1,当控制器的内核空间之间需要数据通信时,本端控制器与其他控制器在用户空间通过socket建立链接。在Linux用户空间,通过socket链接传输协商和认证信息。进一步地,若链路协商成功且安全认证通过,则继续下边步骤,否则标识该socket链接通信链路不安全,关闭程序。参考图2,Linux用户空间socket链接建立的链路协商和认证过程成功后,设置Linux内核接管。Linux内核接管可通过如下步骤设置:将Linux用户空间的socket链接的标识符传递到当前第1页1 2 本文档来自技高网...

【技术保护点】
一种Linux内核接管socket链接的方法,其特征在于,包括:在用户空间,建立socket链接;在用户空间完成socket链路管理工作;设置Linux内核接管socket,将socket链接下发到内核空间;在内核中使用socket链接传输内核空间的数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:李美欣闫永刚
申请(专利权)人:浪潮北京电子信息产业有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1