一种数据处理方法及装置的制造方法
【技术领域】
[0001] 本发明涉及计算机技术领域,尤其涉及一种数据处理方法及装置。
【背景技术】
[0002] 随着信息技术的发展,网络设备所要处理的数据量与日俱增,传统的单一处理器 已经不能处理如此大量的数据。如今,网络设备中通常采用多个中央处理单元(Central Processing Unit,CPU)协同工作的方式对数据进行处理。
[0003] 具体的,网络设备通过设置的全局监听表,使该网络设备中的多个CPU监听各端 口接收的数据,且CPU在监听到某个端口接收到数据时,对该数据进行处理。
[0004] 在现有技术中,网络设备一般通过对全局监听表加锁的方式,使多个CPU协同工 作。如图1所示,其过程具体为:网络设备对全局监听表加锁,CPU1和CPU2读取该全局监 听表时,需要争抢全局监听表上的锁,如图1所示,CPU1抢到全局监听表上的锁,因此只有 CPU1可以根据该全局监听表监听端口,并对端口接收到的数据进行处理,对于未争抢到锁 的CPU2而言,便不能读取该全局监听表,只能进入等待状态。持有锁的CPU1完成数据处理 后会释放锁,此时,CPU1和CPU2便开始新一轮对锁的争抢,以便处理后续的数据。也即,只 有抢到锁的CPU才能读取该全局监听表,以监听相应的端口,并对端口接收到的数据进行 处理,未抢到锁的CPU只能等待。
[0005] 显然,加锁的方式会使各CPU -直处于争抢-等待的过程,同一时刻只有一个CPU 能抢到锁,未争抢到锁的CPU不能进行数据的处理,只能等待下一轮争抢,降低了数据处理 的效率。
【发明内容】
[0006] 本发明实施例提供一种数据处理方法及装置,用以解决网络设备中的多个CPU由 于争抢锁导致数据处理效率低的问题。
[0007] 本发明实施例提供的一种数据处理方法,包括:
[0008] 针对每个中央处理单元CPU,根据全局监听表,生成该CPU对应的本地监听表;其 中,所述本地监听表中包含的信息与所述全局监听表包含的信息相同;
[0009] 指示该CPU通过所述本地监听表监听数据。
[0010] 本发明实施例另提供的一种数据处理方法,包括:
[0011] 针对每个中央处理单元CPU,根据全局连接表,生成该CPU对应的本地连接表;
[0012] 指示该CPU在建立连接后,将所述连接对应的连接状态信息写入所述本地连接表 中。
[0013] 本发明实施例另提供的一种数据处理装置,包括:包括:生成模块和指示模块,其 中,
[0014] 所述生成模块,用于针对每个中央处理单元CPU,根据全局监听表,生成该CPU对 应的本地监听表;其中,所述本地监听表中包含的信息与所述全局监听表包含的信息相 同;
[0015] 所述指示模块,用于指示该CPU通过所述本地监听表监听数据。
[0016] 本发明实施例还提供的一种数据处理装置,包括:生成模块和指示模块,其中,
[0017] 所述生成模块,用于针对每个中央处理单元CPU,根据全局连接表,生成该CPU对 应的本地连接表;
[0018] 所述指示模块,用于指示该CPU在建立连接后,将所述连接对应的连接状态信息 写入所述本地连接表中。
[0019] 本发明实施例提供一种数据处理方法及装置,网络设备中的操作系统根据全局监 听表,生成各CPU的本地监听表,各CPU通过各自的本地监听表,就可以直接监听相应的端 口,无需再争抢全局监听表上的锁,从而可以提升各CPU数据处理的效率。
【附图说明】
[0020] 此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0021] 图1为现有技术中多个CPU抢锁过程的示意图;
[0022] 图2为本发明实施例提供的指示CPU监听数据的过程示意图;
[0023] 图3为本发明实施例提供的全局监听表以及CPU1?4中的本地监听表的示意图;
[0024] 图4为本发明实施例提供的指示CPU使用数据连接的过程示意图;
[0025] 图5为本发明实施例提供的全局连接表以及CPU1?4中的本地连接表的示意图;
[0026] 图6为本发明实施例提供的用于数据处理装置结构示意图;
[0027] 图7为本发明实施例提供的用于数据处理装置结构示意图。
【具体实施方式】
[0028] 为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及 相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一 部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做 出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0029] 图2为本发明实施例提供的指示CPU监听数据的过程,该过程具体包括以下步 骤:
[0030] S201,针对每个CPU,根据全局监听表,生成该CPU对应的本地监听表。其中,所述 本地监听表中包含的信息与所述全局监听表包含的信息相同。
[0031] 在本发明实施例中,所述的全局监听表,具体是由网络设备的操作系统在该网络 设备启动时所生成的数据表。其中,该全局监听表中包含有该网络设备所有端口的端口信 息(如:端口标识以及各端口标识所对应的端口的状态等)。在全局监听表生成后,网络设 备的操作系统复制该全局监听表,将复制后生成的数据表作为CPU的本地监听表。显然, CPU对应的本地监听表与全局监听表的内容相一致。在本发明实施例中,操作系统将与CPU 对应的本地监听表存储于内存中,其中,一个CPU对应一个本地监听表。
[0032] 需要说明的是,上述的端口信息,具体可以为端口的套接字(socket)。上述网络 设备的端口是指:网络设备的逻辑传输端口,如:传输控制协议(Transmission Control Protocol,TCP)端口,或,用户数据报协议(User Datagram Protocol,UDP)端口等。所述 的网络设备包括但不限于:服务器、交换机等为终端设备提供网络服务的设备,也可以包括 终端设备。
[0033] S202,指示该CPU通过所述本地监听表监听数据。
[0034] 网络设备的操作系统可指示CPU根据对应的本地监听表,监听相应的端口中的数 据。
[0035] 具体地,对于上述步骤S202,网络设备的操作系统通过系统进程向该CPU下发携 带端口标识的监听指令,以指示该CPU根据所述本地监听表,监听所述端口标识对应的端 口接收到的数据。也就是说,操作系统向各CPU下发的监听指令中,所携带的端口标识可 相同,也可不同,从而各CPU可监听同一端口接收到的数据,也可监听不同端口接收到的数 据。
[0036] 通过上述方法,不同的CPU均获得了各自的本地监听表,各CPU根据自身对应的本 地监听表,就可以直接监听端口中的数据,不需要再通过抢锁的方式来监听端口中的数据。
[0037] 下面以一个具体实例对上述技术效果进行说明。
[0038] 例如:如图3所示,假设网络设备中共有4个CPU,且在图3中,该网络设备的操作 系统生成的全局监听表的格式及内容如下表1所示。
[0039]
[0040]表1
【主权项】
1. 一种数据处理方法,其特征在于,包括: 针对每个中央处理单元CPU,根据全局监听表,生成该CPU对应的本地监听表;其中,所 述本地监听表中包含的信息与所述全局监听表包含的信息相同; 指示该CPU通过所述本地监听表监听数据。
2. 如权利要求1所述的方法,其特征在于,指示该CPU通过所述本地监听表监听数据, 具体包括: 通过系统进程向该CPU下发携带端口标识的监听指令,W指示该CPU根据所述本地监 听表,监听所述端口标识对应的端口接收到的数据。
3. 如权利要求2所述的方法,其特征在于,所述方法还包括: 对该CPU对应的本地监听表进行监控; 当监控到不存在该CPU对应的本地监听表时,为所述全局监听表加锁,指示其他CPU根 据加锁的全局监听表,监听所述端口标识对应的端口接收到的数据。
4. 如权利要求1所述的方法,其特征在于,所述全局监听表和所述本地监听表中包含 的信息包括;端口信息。
5. -种数据处理方法,其特征在于,包括: 针对每个中央处理单元CPU,根据全局连接表,生成该CPU对应的本地连接表; 指示该CPU在建立连接后,将所述连接对应的连接状态信息写入所述本地连接表中。
6. 如权利要求5所述的方法,其特征在于,所述方法还包括: 通过系统进程向该CPU下发携带待发送数据的发送指令,W指示该CPU根据所述本地 连接表,发送所述待发送数据。
7. -种数据处理装置,其特征在于,包括;生成模块和指示模块,其中, 所述生成模块,用于针对每个中央处理单元CPU,根据全局监听表,生成该CPU对应的 本地监听表;其中,所述本地监听表中包含的信息与所述全局监听表包含的信息相同; 所述指示模块,用于指示该CPU通过所述本地监听表监听数据。
8. 如权利要求7所述的装置,其特征在于,所述指示模块,具体用于: 通过系统进程向该CPU下发携带端口标识的监听指令,W指示该CPU根据所述本地监 听表,监听所述端口标识对应的端口接收到的数据。
9. 如权利要求8所述的装置,其特征在于,所述装置,还包括:监控模块,用于对该CPU 对应的本地监听表进行监控,当监控到不存在该CPU对应的本地监听表时,为所述全局监 听表加锁,指示其他CPU根据加锁的全局监听表,监听所述端口标识对应的端口接收到的 数据。
10. 如权利要求7所述的装置,其特征在于,所述全局监听表和所述本地监听表中包含 的信息包括;端口信息。
11. 一种数据处理装置,其特征在于,包括;生成模块和指示模块,其中, 所述生成模块,用于针对每个中央处理单元CPU,根据全局连接表,生成该CPU对应的 本地连接表; 所述指示模块,用于指示该CPU在建立连接后,将所述连接对应的连接状态信息写入 所述本地连接表中。
12. 如权利要求11所述的装置,其特征在于,所述装置还包括;发送模块,用于通过系 统进程向该CPU下发携带待发送数据的发送指令,W指示该CPU根据所述本地连接表,发送 所述待发送数据。
【专利摘要】本发明公开了一种数据处理方法及装置,该方法包括:针对每个中央处理单元CPU,根据全局监听表,生成该CPU对应的本地监听表;其中,所述本地监听表中包含的信息与所述全局监听表包含的信息相同;指示该CPU通过所述本地监听表监听数据。网络设备中的操作系统根据全局监听表,生成各CPU的本地监听表,各CPU通过各自的本地监听表,就可以直接监听相应的端口中的数据,无需再争抢全局监听表上的锁,从而提升了CPU处理数据的效率。
【IPC分类】G06F9-46
【公开号】CN104572259
【申请号】CN201410555131
【发明人】林晓峰, 陈渝, 李晓栋, 茅俊杰, 何嘉权, 牟旋
【申请人】新浪网技术(中国)有限公司, 清华大学
【公开日】2015年4月29日
【申请日】2014年10月17日