CN119420825A 一种TCP socket本地网络通信优化方法及系统 (麒麟软件有限公司)_第1页
CN119420825A 一种TCP socket本地网络通信优化方法及系统 (麒麟软件有限公司)_第2页
CN119420825A 一种TCP socket本地网络通信优化方法及系统 (麒麟软件有限公司)_第3页
CN119420825A 一种TCP socket本地网络通信优化方法及系统 (麒麟软件有限公司)_第4页
CN119420825A 一种TCP socket本地网络通信优化方法及系统 (麒麟软件有限公司)_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一种TCPsocket本地网络通信优化方法及本发明公开了一种TCPsocket本地网络通对服务端和客户端中使用socket通信的应用程序采用钩子函数技术对socket网络接口函数进网络通信。本发明将服务端和客户端之间的TCP2务端和客户端中使用socket通信的应用程序采用钩子函数技术对socket网络接口函数进2.根据权利要求1所述的TCPsocket本地网络通信的socket网络接口函数包括重写的服务端的接受链接函数accept和重写的客户端的请求3.根据权利要求2所述的TCPsocket本地网络通S101,在收到客户端的建立链接通信请求后,使用原始的接受链接函数original_S102,根据与客户端socket连接的属性信息判断与客户端的socket连接是否为TCP连S103,获取客户端的IP地址client_ip和服务端的IP地址serv地址client_ip和服务端的IP地址server_ip相同,则判定与客户端socket连接是TCPS104,创建一个UDSsocket服务端通信,通过调用socket函数盖TCPsocket本地网络通信的文件描述符,使得服务端只存在UDSsocketd服务端通信的文件描述符,然后再用绑定端口函数bind、监听端口函数listen、原始的接受链接函数original_accept来继续初始化UDSsocket服务端的通信,等待客户端的UDSsocket连接端之间的写函数write或发送函数sendto、读函数read或接收函数recvfrom的通信操作均4.根据权利要求3所述的TCPsocket本地网络通信优化方法,S201,使用原始的请求链接函数original_connect向服务端发起建立链接通信请求,如果是TCP连接则跳转执行步骤S203;否则,直接返回原始的请求链接函数original_S203,获取客户端的IP地址client_ip和服务端的IP地址serv地址client_ip和服务端的IP地址server_ip相同,则判定与服务端的socket连接是TCPS204,创建一个UDSsocket客户端通信,通过调用socket函数3盖TCPsocket本地网络通信的文件描述符使得客户端只存在UDSsocketd客户端通信的文端之间的写函数write或发送函数sendto、读函数read或接收函数recvfrom的通信操作均5.根据权利要求4所述的TCPsocket本地网络通信中根据与客户端socket连接的属性信息判断与服务端的socket连接是否为TCP连接时,包括判断与客户端socket连接的属性信息中是否包含TCP连接的协议簇AF_INET,如果包含TCP连接的协议簇AF_INET则判定与服务端的socket连接是TCP连接,否则判定与服务端的socket连接不是TCP连接;步骤S202中根据与服务端socket连接的属性信息判断与服务端接的协议簇AF_INET,如果包含TCP连接的协议簇AF_INET则判定与服务端的socket连接是6.根据权利要求4所述的TCPsocket本地网络通信优化方针对服务端和客户端中使用socket通信的应用程序采用钩子函数技术对socket网络接口函数进行劫持和重写时,包括使用预先加载共享库环境变量LD_PRELOAD来加载动态库信的应用程序使用重写的客户端的请求链接函数co7.根据权利要求1所述的TCPsocket本地网服务端和客户端中使用socket通信的应用程序采用钩子函数技术对socket网络接口函数数listen为socket通信绑定端口并开被编程或配置以通过处理器执行权利要求1~7中任意一项所述TCPsocket本地网络通信4网络通信优化方法及系统,本发明旨在解决TCPsocket本地网络通信场景下通信速率低端中使用socket通信的应用程序采用钩子函数技术对socket网络接口函数进行劫持和重[0005]进一步的,所述重写的socket网络接口函数包括重写的服务端的接受链接函数accept和重写的客户端的请求链接函数cS102,根据与客户端socket连接的属性信息判断与客户端的socket连接是否为TCP连接,如果是TCP连接则跳转执行步骤S103;否则,直接返回原始的接受链接函数的IP地址client_ip和服务端的IP地址server_ip相同,则判定与客户端socket连接是TCPS104,创建一个UDSsocket服务端通信,通过调用socket函数来新建一个UDS5制并覆盖TCPsocket本地网络通信的文件描述符,使得服务端只存在UDSsocketd服务端数original_accept来继续初始化UDSsocket服务端的通信,等待客户端的UDSsocket连客户端之间的写函数write或发送函数sendto、读函数read或接收函数recvfrom的通信操S202,根据与服务端socket连接的属性信息判断与服务端socket连接是否为TCP的IP地址client_ip和服务端的IP地址server_ip相同,则判定与服务端的socket连接是TCPsocket本地网络通信,跳转执行步骤S204;否则,直接返回原始的请求链接函数S204,创建一个UDSsocket客户端通信,通过调用socket函数来新建一个UDS制并覆盖TCPsocket本地网络通信的文件描述符使得客户端只存在UDSsocketd客户端通服务端之间的写函数write或发送函数sendto、读函数read或接收函数recvfrom的通信操[0008]进一步的,步骤S102中根据与客户端socket连接的属性信息判断与服务端的接的协议簇AF_INET,如果包含TCP连接的协议簇AF_INET则判定与服务端的socket连接是连接的属性信息判断与服务端socket连接是否为TCP连接时,包括判断与服务端socket连函数技术对socket网络接口函数进行劫持和重写时,包括使用预先加载共享库环境变量LD_PRELOAD来加载动态库unsocket_hook.so,通过dlsym动态劫持socket网络接口函数然后进行重写,使得服务端使用socket通信的应用程序使用重写的服务端的接受链接函数6程序或指令,该计算机程序或指令被编程或配置以通过处理器执行任意一项所述TCP被编程或配置以通过处理器执行任意一项所述TCPsocket本地网络本发明采用钩子函数技术对服务端和客户端的socket网络接口函数进行劫持和符可以让不同的计算机或同一个计算机的进程或者线程性能优势:UDS不需要经过网络协议栈,数据不需要经过网络接口、IP协议和7本实施例提出一种TCPsocket本地网络通信优化方法,解决网络通信速率低下、技术(hook技术)拦截socket网络编程的接口来达到优化TCPsocket本地网络通信的目的,主要是通过对socket编程的某些接口拦截然后进行重写,将TCPsocket本地通信转换成数listen为socket通信绑定端服务端和客户端分别针对服务端和客户端中使用socket通信的应用程序采用钩享库环境变量LD_PRELOAD来加载动态库unsocket_hook.so,通过dlsym动态劫持socket网8S102,根据与客户端socket连接的属性信息判断与客户端的socket连接是否为TCP连接,具体是判断与客户端socket连接的属性信息中是否包含TCP连接的协议簇AF_获取套接字名称函数getsockname获取服务端的IP地址server_ip,判断服务端的IP地址server_ip和客户端的IP地址client_ip是否相同,如果客户端的IP地址client_ip和服务S104,创建一个UDSsocket服务端通信,通过调用socket函数来新建一个UDS口函数listen、原始的接受链接函数original_accept来继续初始化UDSsocket服务端的客户端之间的写函数write或发送函数sendto、读函数read或接收函数recvfrom的通信操信时,使用hook技术拦截接受链接函数accept,先使用拦截到的原始的接受链接函数称函数getpeername函数来判断此socket通信的服务端和客户端是否为同一个ip地址,如果是则在hook的接受链接函数accept创建一个udssocket服务端初始化,然后把udssocket服务端初始化的文件描述符socket_fd1复制替换tcpsocket之前的文件描述符,这通过write/sendto,read/recvfrom等接口都是udssocket的接口进S202,根据与服务端socket连接的属性信息判断与服务端socket连接是否为TCP连接,具体是判断与服务端socket连接的属性信息中是否包含TCP连接的协议簇AF_INET,如果包含TCP连接的协议簇AF_INET则判定与服务端的socket连接是TCP连接,否则判定与9S203,使用获取套接字名称函数getsockname获取获取客户端的IP地址client_server_ip和客户端的IP地址client_ip是否相同,如果客户端的IP地址client_ip和服务S204,创建一个UDSsocket客户端通信,通过调用socket函数来新建一个UDS在UDSsocketd客户端通信的文件描述符scoket_fd2,然后再用原始的请求链接函数服务端之间的写函数write或发送函数sendto、读函数read或接收函数recvfrom的通信操信时,使用hook技术拦截请求链接函数connect,先使用拦截到的原始的请求链接函数original_connect完成客户端的连接请求,判断此socket通信是否为包含TCP连接的协议名称函数getpeername函数来判断此socket通信服务端和客户端是否为同一个ip地址,如果是则在hook的请求链接函数connect创建一个udssocket客户端初始化,然后把udssocket客户端初始化的文件描述符scoket_fd2复制替换并覆盖tcpsocket之前本地网络端将TCPsocket本地通信转换成UDSsocket通信的一、对于socket服务端,在启动socket的应用中,通过hook技术在服务端调用1.先使用original_accept原始的接受函数,先接受tcpsocket客[0043]3.使用getsockname和getpeername函数判断服务端和客户如果相同则为tcpsocket本地通信,则进行下一步,如果不相同则直接返回步骤2的网络通信的文件描述符,这样就会只存在udssocketd服务端的文件描述符、然后再用[0045]5.后续使用被新udssocket覆盖的tcpsocket本地通信生成的文件描述符来进[0046]6.通过LD_PRELOAD=unsocket_hook.so来执行scoket_app通信进行网络数据传输的应用程序,这样就可以在应用层通过dlsym()函数对特定函数进行劫持并重明tcpsocket本地通信已成功被转化为udssocket通信,如何使用tcpdump工具是本领域[0048]二、对于scoket客户端,在启动socket的应用中,通过hook技术在服务端调用[0050]3.使用getsockname和getpeername函数判断服务端和客户如果相同则为tcpsocket本地通信,则进行下一步,如果不相同则直接返回步骤2的客户端通信的文件描述符,然后通过dup3函数将这个文件描述符复制覆盖前面的tcp后再用original_connect函数来请求网络连接,从而完成客户端请求链接服务器端的请[0052]5.后续使用被新udssocket覆盖的tcpsocket本地通信生成的文件描述符来进[0053]6.通过LD_PRELOAD=unsocket_hook.sosoc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论