System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,特别涉及一种端口监听方法、装置、设备及介质。
技术介绍
1、容器技术是一种比虚拟机技术更加节省计算资源也更加灵活的虚拟化技术。随着容器技术的发展,出现了很多容器编排引擎,用于对容器进行管理。在云时代,分布式微服务架构下的应用也日益丰富,在单个主机节点上的运行的服务也会特别多。在传统的套接字编程中,一个套接字实例通常只能监听一个端口,而每个套接字实例都会占用一定的系统资源,包括内存和处理能力,那么当需要监听大量端口时,创建多个套接字实例可能会导致资源消耗过高。而且每个套接字实例需要独立的配置、绑定和管理,使用多个套接字监听多个端口会极大地增加代码复杂性和管理难度,给企业造成了很大的人力维护以及时间成本。
2、综上,如何提供更高效的端口监听方式,以减少资源占用,以及降低编写监听多个端口代码的复杂性和管理难度是目前有待解决的问题。
技术实现思路
1、有鉴于此,本专利技术的目的在于提供一种端口监听方法、装置、设备及介质,能够提供更高效的端口监听方式,以减少资源占用,以及降低编写监听多个端口代码的复杂性和管理难度。其具体方案如下:
2、第一方面,本申请公开了一种端口监听方法,应用于服务器,包括:
3、获取客户端用于请求目标应用组件的服务的各网络数据包;
4、在每一所述网络数据包传入至传输层时,利用服务器中的预设套接字监听所述网络数据包中的目标端口信息,并运行所述预设套接字中预先注入的目标分发程序;其中,所述目标分发程序为预
5、利用所述目标分发程序从预先已建立关联关系的第一存储器和第二存储器中分别选择与所述目标端口信息匹配的目标端口和目标套接字,以利用所述目标端口和所述目标套接字传输所述网络数据包;其中,所述第一存储器中预先被注入所述目标应用组件需要监听的端口并记录有所述端口与相应套接字地址之间的对应关系,并且,所述第二存储器中预先存储有通过所述探测器获取到的所述目标应用组件的套接字句柄。
6、可选的,所述利用所述目标分发程序从预先已建立关联关系的第一存储器和第二存储器中分别选择与所述目标端口信息匹配的目标端口和目标套接字,包括:
7、利用所述目标分发程序从第一存储器中查找与所述目标端口信息匹配的目标端口和目标套接字地址;
8、从第二存储器中存储的套接字句柄中查找与所述目标套接字地址匹配的目标套接字。
9、可选的,所述获取客户端用于请求目标应用组件的服务的各网络数据包之前,还包括:
10、基于扩展伯克利包过滤器构建探测器,并将所述探测器加载至内核;
11、将所述第一存储器和所述第二存储器加载至所述内核,并在所述探测器和所述第二存储器之间建立关联关系;
12、利用基于扩展伯克利包过滤器构建的探测器在所述预设套接字中注入所述目标分发程序;
13、利用基于扩展伯克利包过滤器构建的探测器获取所述目标应用组件的套接字句柄,以基于所述关联关系将所述套接字句柄存储至所述第二存储器;
14、根据预设配置信息获取所述目标应用组件需要监听的若干数量个端口,以利用端口注入器将所述端口注入至所述第一存储器,并在所述第一存储器中建立所述端口与套接字地址之间的对应关系;
15、相应的,所述利用所述目标分发程序从第一存储器中查找与所述目标端口信息匹配的目标端口和目标套接字地址,包括:
16、利用所述目标分发程序从第一存储器中查找与所述目标端口信息匹配的目标端口,并基于所述对应关系确定与所述目标端口对应的目标套接字地址。
17、可选的,所述利用基于扩展伯克利包过滤器构建的探测器在所述预设套接字中注入所述目标分发程序,包括:
18、获取所述预设套接字所属的命名空间;
19、利用基于扩展伯克利包过滤器构建的探测器在所述命名空间的文件句柄上注入所述目标分发程序。
20、可选的,所述获取客户端用于请求目标应用组件的服务的各网络数据包,包括:
21、利用物理网卡获取客户端用于请求目标应用组件的服务的各网络数据包;
22、基于预设中断方式将各所述网络数据包从所述物理网卡传输至内核协议栈;所述内核协议栈包括应用层、所述传输层、网络层、数据链路层和物理层。
23、可选的,所述基于预设中断方式将各所述网络数据包从所述物理网卡传输至内核协议栈,包括:
24、基于硬中断将各所述网络数据包从所述物理网卡传输至内核协议栈;
25、或,基于软中断将各所述网络数据包从所述物理网卡传输至内核协议栈。
26、可选的,所述端口监听方法,还包括:
27、预先在预设的容器编排平台上部署用于提供对外服务的目标应用组件,以便所述客户端请求所述目标应用组件的服务。
28、第二方面,本申请公开了一种端口监听装置,包括:
29、数据包获取模块,用于获取客户端用于请求目标应用组件的服务的各网络数据包;
30、程序运行模块,用于在每一所述网络数据包传入至传输层时,利用服务器中的预设套接字监听所述网络数据包中的目标端口信息,并运行所述预设套接字中预先注入的目标分发程序;其中,所述目标分发程序为预先利用基于扩展伯克利包过滤器构建的探测器向所述预设套接字中注入的分发程序;
31、匹配模块,用于利用所述目标分发程序从预先已建立关联关系的第一存储器和第二存储器中分别选择与所述目标端口信息匹配的目标端口和目标套接字,以利用所述目标端口和所述目标套接字传输所述网络数据包;其中,所述第一存储器中预先被注入所述目标应用组件需要监听的端口并记录有所述端口与相应套接字地址之间的对应关系,并且,所述第二存储器中预先存储有通过所述探测器获取到的所述目标应用组件的套接字句柄。
32、第三方面,本申请公开了一种电子设备,包括:
33、存储器,用于保存计算机程序;
34、处理器,用于执行所述计算机程序,以实现前述公开的端口监听方法的步骤。
35、第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的端口监听方法的步骤。
36、可见,本申请通过服务器获取客户端用于请求目标应用组件的服务的各网络数据包;在每一所述网络数据包传入至传输层时,利用服务器中的预设套接字监听所述网络数据包中的目标端口信息,并运行所述预设套接字中预先注入的目标分发程序;其中,所述目标分发程序为预先利用基于扩展伯克利包过滤器构建的探测器向所述预设套接字中注入的分发程序;利用所述目标分发程序从预先已建立关联关系的第一存储器和第二存储器中分别选择与所述目标端口信息匹配的目标端口和目标套接字,以利用所述目标端口和所述目标套接字传输所述网络数据包;其中,所述第一存储器中预先被注入所述目标应用组件需要监听的端本文档来自技高网...
【技术保护点】
1.一种端口监听方法,其特征在于,应用于服务器,包括:
2.根据权利要求1所述的端口监听方法,其特征在于,所述利用所述目标分发程序从预先已建立关联关系的第一存储器和第二存储器中分别选择与所述目标端口信息匹配的目标端口和目标套接字,包括:
3.根据权利要求2所述的端口监听方法,其特征在于,所述获取客户端用于请求目标应用组件的服务的各网络数据包之前,还包括:
4.根据权利要求3所述的端口监听方法,其特征在于,所述利用基于扩展伯克利包过滤器构建的探测器在所述预设套接字中注入所述目标分发程序,包括:
5.根据权利要求1所述的端口监听方法,其特征在于,所述获取客户端用于请求目标应用组件的服务的各网络数据包,包括:
6.根据权利要求5所述的端口监听方法,其特征在于,所述基于预设中断方式将各所述网络数据包从所述物理网卡传输至内核协议栈,包括:
7.根据权利要求1至6任一项所述的端口监听方法,其特征在于,还包括:
8.一种端口监听装置,其特征在于,应用于服务器,包括:
9.一种电子设备,其特征在于,包
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的端口监听方法的步骤。
...【技术特征摘要】
1.一种端口监听方法,其特征在于,应用于服务器,包括:
2.根据权利要求1所述的端口监听方法,其特征在于,所述利用所述目标分发程序从预先已建立关联关系的第一存储器和第二存储器中分别选择与所述目标端口信息匹配的目标端口和目标套接字,包括:
3.根据权利要求2所述的端口监听方法,其特征在于,所述获取客户端用于请求目标应用组件的服务的各网络数据包之前,还包括:
4.根据权利要求3所述的端口监听方法,其特征在于,所述利用基于扩展伯克利包过滤器构建的探测器在所述预设套接字中注入所述目标分发程序,包括:
5.根据权利要求1所述的端口监听方...
【专利技术属性】
技术研发人员:王成龙,孙言弟,
申请(专利权)人:济南浪潮数据技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。