下载此文档

使Linux内核支持Socket重用的方法.docx


文档分类:IT计算机 | 页数:约3页 举报非法文档有奖
1/3
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/3 下载此文档
文档列表 文档介绍
使Linux内核支持Socket重用的方法
专利名称:使Linux内核支持Socket重用的方法
技术领域:
本发明涉及计算机操作系统领域,尤其是一种使Linux内核支持Socket重用的方 法。
背景技术:
操作系统相当于计算机
本发明目的是提供一种在Linux内核中支持Socket重用的方法,既使Linux操作 系统用于Web服务器时的性能得到提高;又能支持用到这个机制的Windows应用在Linux 操作系统上直接运行。WinSock2的TransmitFile ()是对原始Socket机制的优化,与另一个函数 AcceptExO相结合可以改善Wen服务器的效率。,并将文件的内容发送给客户端。这一部分功能的实 现是很简单的,一般的程序员都有这个能力。,即只断开与客户端的连接,但不拆除作为连接端点的 Socket,而是将其保存下来用于Ac^ptEx (),用来接受其它连接请求。真正的Socket重用只能在内核中实现,有人主张在用户空间只从形式上解决这 个问题,其方
法是关闭、即拆除原来的Socket,但马上就再创建一个新的,并使它与原来 的Socket有同样的文件号,然后将这新的Socket用于AcaptEx ()。但是,这样只是在表面 上解决了问题,实际上不但丝毫没有改善性能,倒反而还有所降低,所以不是一个好办法。 相比之下,本发明所述的方法才是从根本上解决了问题。本发明采用的方法是1、为Linux内核增加一个新的系统调用s0ck_reuse (),这个系统调用只有一个参 数,就是代表着目标Socket的文件号。2、在系统调用sockjeuseO中根据文件号找到代表着目标Socket的file结构、 inode结构、socket结构、和sock结构。3、然后按TCP协议的规定使目标Socket断开与对端的连接,但不关闭和拆除目标 Socket,而只是使其回到原始状态。4、在此过程中代表着目标Socket的file结构和inode结构保持不变。本发明有益的效果是本发明提供了一种方法,可以使Linux内核支持Socket重 用,既提高了服务器的效率,也使需用到这个机制的Windows服务器应用有可能在Linux上 运行。
附图1是Linux系统调用close ()用于一个Socket时的流程。附图2是新增系统调用S0Ck_reuSe ()的流程。
具体实施例方式下面结合附图和实施例对本发明作进一步说明附图1是Linux系统调用close ()用于一个Socket时的流程。应用程序以代表着 目标Socket的文件号为参数调用Linux的系统调用close (),从而进入内核中的函数sys_ closeO后,先根据文件号找到代表着目标Socket的file结构,然后从本进程的打开文件 表中删除与此文件号相对应的表项,于是作为一个文件就被关闭了,这个文件号也作废了, 此时目标Socket与应用程序就断绝了关系。然后,以此file结构(实际上是其指针,下 同)为参数调用内核函数filp_cl0Se();后者则在—fputO中进一步找到其inode结构, 然后通过这file结构提供的指针调用其release函数。由于这个file结构代表着一个 Socket,所以

使Linux内核支持Socket重用的方法 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数3
  • 收藏数0 收藏
  • 顶次数0
  • 上传人421989820
  • 文件大小19 KB
  • 时间2022-06-27