[发明专利]UDP报文的分发方法、设备及存储介质有效
申请号: | 202110307839.X | 申请日: | 2021-03-23 |
公开(公告)号: | CN113132356B | 公开(公告)日: | 2023-06-27 |
发明(设计)人: | 杨鹏程 | 申请(专利权)人: | 网宿科技股份有限公司 |
主分类号: | H04L69/164 | 分类号: | H04L69/164;G06F16/901;G06F16/903;H04L69/16;H04L69/06 |
代理公司: | 上海晨皓知识产权代理事务所(普通合伙) 31260 | 代理人: | 成丽杰 |
地址: | 200030 上海市徐汇区*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | udp 报文 分发 方法 设备 存储 介质 | ||
本发明公开了一种UDP报文的分发方法、设备及存储介质。本发明中,通过将需要分发的UDP报文的四元组作为查找套接字的键在预先构建的记录UDP报文与分发UDP报文的套接字的对应关系的套接字管理表中查找对应的键值,进而根据查找结果和预定义的数据结构映射关系图来确定最终进行UDP报文分发的套接字的方式,能够精准的确定接收到的UDP报文应该交由哪个套接字绑定的UDP进程进行处理,从而保证相同的UDP报文能够始终被同一个套接字对应的UDP进程处理,避免分发到其他UDP进程,进而能够解决多进程在服务重启或进程异常时,UDP报文被分发到其他进程导致的异常,以及旧的进程无法安全关闭的问题。
技术领域
本发明实施例涉及数据处理技术领域,特别涉及一种UDP报文的分发方法、设备及存储介质。
背景技术
目前的高性能用户数据报协议(User Datagram Protocol,UDP)应用服务大多是采用多进程与端口复用(reuseport)的架构,即启用了多个进程,通过内核协议支持的端口复用机制,为同一个UDP应用服务对应的每一个进程分别绑定(bind)端口和地址(具体为本机端口和本机地址,实际应用中也可以称为目的端口和目的地址)均相同的套接字(socket)。这样当多个UDP报文(携带了源端口号、源网际互联协议IP地址、目的端口号和目的IP地址)到达提供UDP应用服务的内核时,内核协议便会将携带了相同的源端口、源地址、目的端口和目的地址的UDP报文分发给同一个socket,进而由同一个进程对UDP报文进行处理。
在实际应用中,为了尽可能提升用户体验,高可靠UDP应用服务可能被要求在服务重启时,延迟关闭旧的进程,待新的进程启动后接管新的UDP报文后在关闭旧的进程。对于这种业务需求,由于UDP协议无连接的特性,上述架构就会存在一个不可避免的缺陷:当新的进程启动后,旧的进程还未关闭时,旧的UDP报文,就可能因为新加入reuseport组的socket个数的变化而切换到其他socket对应的进程,同理新接收到的本该由新的进程处理的UDP报文也会因为旧进程的存在,被分发到旧的进程进行处理,进而导致UDP报文服务异常,以及旧的进程无法安全关闭。
为了解决上述缺陷,目前的解决方案是使用UDP套接字的连接(connect)套接口,即UDP服务应用下的每一个进程,每次接收到新的UDP报文时,则新建一个connect套接口,并绑定一个四元组(源端口号、源IP地址、目的端口号和目的IP地址),使得新建的connect套接口在架构上与原有的监听套接口分离出来,由新建的connect套接口来收发新的UDP报文。与传输控制协议(Transmission Control Protocol,TCP)类似,使用connect套接口之后相当于在UDP协议层面进行了数据流连接管理,进而保证了进程重启时原数据正常服务以及解决由于进程异常导致进程组服务异常的问题。但是,connect方案有个致命的缺点:由于UDP协议是无连接的,内核UDP协议的socket管理使用了哈希表实现,具体是利用目的端口号和目的IP地址作为键存储到哈希表中,因此不论对于从哪一设备接收到的UDP报文,由于分发UDP报文的目的端的目的端口号和目的IP地址都是相同的,就会出现导致哈希冲突的socket都在同一个哈希表中管理。而使用connect套接口后的所有socket都是哈希冲突的,这就造成了所有UDP报文都在同一个哈希表上管理,查找的性能为O(n),会造成CPU软中断跑高,从而大大降低单机服务能力,违背了高性能UDP应用服务的初衷。
发明内容
本发明实施例的目的在于提供一种UDP报文的分发方法、设备及存储介质,旨在解决上述技术问题。
为解决上述技术问题,本发明的实施例提供了一种UDP报文的分发方法,包括以下步骤:
将需要分发的UDP报文中的四元组作为查找套接字的键;
在预先创建的套接字管理表中查找所述键对应的键值,所述套接字管理表用于记录所述UDP报文与分发所述UDP报文的套接字之间的对应关系;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于网宿科技股份有限公司,未经网宿科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110307839.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种电解除油增效剂
- 下一篇:一种吸汗透气的聚氨酯海绵及其制备方法、一种文胸