用于在多个套接字之间通信的方法和设备的制作方法

文档序号:7924656阅读:321来源:国知局
专利名称:用于在多个套接字之间通信的方法和设备的制作方法
技术领域
本发明涉及在通信网络内在多个套接字之间的通信,其可应用于通过
因特网通信网络从多个源接收消息或数据并使用诸如TCP (传输控制协 议)等的协议进行操作的处理。
背景技术
一般地,套接字包括用于列出包含所接收的数据流的緩冲存储器接收 列表和用于列出包含将要发送的数据流的緩冲存储器的发送列表。
接收列表和发送列表被称为是"双链接的,,,因为组成接收列表和发 送列表的緩冲存储器的每一个都具有包括用于指示在对应的列表中在当前 緩冲存储器之前的緩沖存储器的"前一个"指针和用于指示在对应的列表 中在当前緩冲存储器之后的緩冲存储器的第二 "下一个"指针的结构。
只使用 一个套接字,该处理可以在等待消息或数据到达所述套接字的 接收列表时接收消息或数据。
使用多个套接字,则需要首先对接收列表执行循环分析以发现已接收 了想要被读取的消息的套接字。
多个已知的解决方案,尤其是那些已知为"select" 、 "poU"、 "kqueue,, 和"epoll"的解决方案已被提出以实现该分析。
这些已知的解决方案是相对满意的,但没有考虑消息到达的顺序,并 涉及附加任务。
结果是网络性能显著劣化,随着该劣化变大,需要读取的套接字也更 多,例如,超过1000个套接字。

发明内容
本发明用于緩解该缺陷。
本发明涉及用于在通信网络内在多个套接字之间通信的通信设备,其 中,每个套接字包括用于列出包含所接收的数据流的緩冲存储器的接收列 表,所述緩沖存储器的每一个具有包括用于指示在对应的接收列表中在当 前緩冲存储器之前的緩冲存储器的"前一个"指针和用于指示在对应的接 收列表中在当前緩冲存储器之后的緩冲存储器的第二 "下一个,,指针的结 构。
根据本发明的总定义,所述套接字中的一个被指定为能够接收由与所
选择的处理相关联的每个套接字接收的数据流;
所述被指定的套接字还包括附加接收列表,其列出包含由所选择的处 理所涉及的所有套接字接收的数据流的緩冲存储器;
每个套接字的緩冲存储器同时属于两个接收列表,每一个緩冲存储器 还包括用于指示在附加接收列表中在当前緩冲存储器之前的緩冲存储器的 附加"前一个,,指针和用于指示在附加接收列表中在当前緩冲存储器之后 的緩冲存储器的附加"下一个"指针。
这样,本发明的设备对于所述被指定的套接字可以访问由所述处理所 涉及的所有套接字接收的数据流,并按照所述所接收的数据流到达的顺序 进行访问。
结果是网络性能优于现有的结构。
本发明的另一个目的是由上述的通信设备执行的通信方法。


通过以下的详细描述和附图,本发明的其它特征和优点将变得更加明 显,其中
图1示意性地示出根据本发明的具备指定套接字的通信设备; 图2示意性地示出根据本发明的緩冲存储器的结构。
具体实施例方式
在图1中,示出了 TCP/IP消息处理。
该处理经由使用TCP协议进行操作的通信网络从多个源接收消息。 套接字SC与每个源相关联,并被单独标记为SC1、 SC2和SC3。 每个套接字SC包括接收列表RX,其列出包含所接收的数据的緩冲存 储器SKB。
每个套接字还包括发送列表(未示出),其列出包含将要发送的数据 流的緩冲存储器。
在图2中,接收列表RX的结构是使得每个緩沖存储器SKB包括用于 指示在对应的列表中在当前緩冲存储器之前的緩沖存储器SKB的"前一
个,,指针PP和用于指示在对应的列表中在当前緩冲存储器之后的緩冲存 储器的第二 "下一个"指针。
对于所选择的套接字,緩冲存储器彼此相链接。
每个緩冲存储器SKB识别设备ND的结构,其中数据分组向该设备 ND发送或者从该i殳备ND接收。
緩冲存储器SKB与每个分组相关联。分组的头部通过一组指针TH、 IPH和MAC被正确地定位。
对于给定的套接字,緩冲存储器相互链接,并包含诸如到协议头的链 接和与分组相关联的设备的信息。
再次参考图1。
套接字SC3被指定为额外接收从与所选择的处理(诸如消息处理)相 关联的每个套接字SC1、 SC2和SC3接收的数据流。
套接字SC3包括附加接收列表RXS,其列出包含由所述处理所涉及的 一组套接字接收的数据流的緩沖存储器SKB。
再次参考图2。
每个套接字SC1、 SC2和SC3的緩冲存储器SKB同时属于两个接收 列表RX、 RXS。
每一个緩沖存储器SKB还包括用于指示在附加接收列表RXS中在当前緩冲存储器之前的緩冲存储器的附加"前一个"指针PPS和用于指示在 附加接收列表RXS中在当前緩冲存储器之后的緩冲存储器的附加"下一 个"指针PPS。
在由此被指定的套接字SC3中,可以访问由所述处理所涉及的一组套 接字接收的数据流,并且按照所述所接收的数据流到达的顺序进行访问。
这是因为附加接收列表RXS包含可以按照该数据到达各套接字的顺 序定位所接收的数据流的指针信息。
例如,在图1中,所接收的数据流按照以下的顺序到达
Skb 3.1
Skb 2.1
Skb 1.1
Skb 3.2
Skb 1.2
Skb 1.3。
使用附加接收列表RXS,可以按照该顺序访问数据流,然而当没有附 加接收列表时,访问是基于套接字的排位,即,首先套接字SC1,然后套 接字SC2,然后SC3。在这种情况下,处理数据流的顺序是
Skb 1.1
Skb 1.2
Skb 1.3
Skb 2.1
Skb 3.1
Skb 3.2。
权利要求
1. 一种用于在通信网络内在多个套接字(SC1,SC2,SC3)之间通信的通信设备,其中,每个套接字(SC1,SC2,SC3)都包括用于列出包含所接收的数据流的缓冲存储器(SKB)的接收列表(RX),在所述接收列表(RX)具有的结构中,每个缓冲存储器(SKB)包括用于指示在对应的接收列表中在当前缓冲存储器之前的缓冲存储器的“前一个”指针(PP)和用于指示在对应的接收列表中在当前缓冲存储器之后的缓冲存储器的第二“下一个”指针;其特征在于,所述套接字(SC)中的一个套接字(SC3)被指定为能够接收由与所选择的处理相关联的每个套接字接收的数据流;被指定的套接字(SC3)还包括附加接收列表(RXS),其列出包含由所选择的处理所涉及的所有套接字接收的数据流的缓冲存储器;每个套接字(SC1,SC2,SC3)的缓冲存储器(SKB)同时属于两个接收列表(RX,RXS),每个缓冲存储器(SKB)还包括用于指示在所述附加接收列表(RXS)中在当前缓冲存储器之前的缓冲存储器的附加“前一个”指针(PPS)和用于指示在所述附加接收列表(RXS)中在当前缓冲存储器之后的缓冲存储器的附加“下一个”指针(PSS);这使被指定的套接字(SC3)可以按照所述所接收的数据流到达的顺序访问由所述处理所涉及的一组套接字接收的数据流。
2. —种用于在通信网络内在多个套接字(SC1, SC2, SC3)之间通信 的通信方法,其中,每个套接字(SC1, SC2, SC3)包括用于列出包含所 接收的数据流的緩沖存储器(SKB)的接收列表(RX),在所述接收列表 (RX)具有的结构中,每个緩冲存储器(SKB)包括用于指示在对应的接 收列表中在当前緩沖存储器之前的緩冲存储器的"前一个"指针(PP)和 用于指示在对应的接收列表中在当前緩冲存储器之后的緩冲存储器的第二 "下一个"指针;其特征在于,所述套接字(SC)中的一个套接字(SC3)被指定为能够接收由与所选择的处理相关联的每个套接字接收的数据流;被指定的套接字(SC3)还包括附加接收列表(RXS),其列出包含 由所选择的处理所涉及的所有套接字接收的数据流的緩冲存储器;每个套接字(SCI, SC2, SC3)的緩冲存储器(SKB)同时属于两个 接收列表(RX, RXS),每个緩冲存储器(SKB)还包括用于指示在所述 附加接收列表(RXS)中在当前緩冲存储器之前的緩冲存储器的附加"前 一个"指针(PPS)和用于指示在所述附加接收列表(RXS)中在当前緩 沖存储器之后的緩沖存储器的附加"下一个,,指针(PSS);这使被指定的套接字(SC3)可以按照所述所接收的数据流到达的顺 序访问由所述处理所涉及的一組套接字接收的数据流。
全文摘要
用于在多个套接字之间通信的方法和设备,其中多个套接字(SC)中的一个(SC3)被指定为能够接收由与所选择的处理相关联的每个套接字接收的数据流,被指定的套接字(SC3)还包括附加接收列表(RXS),其列出包含由所选择的处理所涉及的所有套接字接收的数据流的缓冲存储器;每个套接字(SC1,SC2,SC3)的缓冲存储器(SKB)同时属于两个接收列表(RX,RXS),每个缓冲存储器(SKB)还包括用于指示在附加接收列表(RXS)中在当前缓冲存储器之前的缓冲存储器的附加“前一个”指针(PPS)和用于指示在附加接收列表(RXS)中在当前缓冲存储器之后的缓冲存储器的附加“下一个”指针(PPS),这使被指定的套接字(SC3)可以按照所述所接收的数据流到达的顺序访问由所述进程所涉及的一组套接字接收的数据流。
文档编号H04L12/56GK101488910SQ200810209899
公开日2009年7月22日 申请日期2008年12月18日 优先权日2007年12月18日
发明者M·拉扎尔, T·弗罗门特 申请人:阿尔卡特朗讯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1