CN101488910A - 用于在多个套接字之间通信的方法和设备 - Google Patents
用于在多个套接字之间通信的方法和设备 Download PDFInfo
- Publication number
- CN101488910A CN101488910A CNA2008102098992A CN200810209899A CN101488910A CN 101488910 A CN101488910 A CN 101488910A CN A2008102098992 A CNA2008102098992 A CN A2008102098992A CN 200810209899 A CN200810209899 A CN 200810209899A CN 101488910 A CN101488910 A CN 101488910A
- Authority
- CN
- China
- Prior art keywords
- buffer storage
- socket
- tabulation
- rxs
- skb
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Abstract
用于在多个套接字之间通信的方法和设备,其中多个套接字(SC)中的一个(SC3)被指定为能够接收由与所选择的处理相关联的每个套接字接收的数据流,被指定的套接字(SC3)还包括附加接收列表(RXS),其列出包含由所选择的处理所涉及的所有套接字接收的数据流的缓冲存储器;每个套接字(SC1,SC2,SC3)的缓冲存储器(SKB)同时属于两个接收列表(RX,RXS),每个缓冲存储器(SKB)还包括用于指示在附加接收列表(RXS)中在当前缓冲存储器之前的缓冲存储器的附加“前一个”指针(PPS)和用于指示在附加接收列表(RXS)中在当前缓冲存储器之后的缓冲存储器的附加“下一个”指针(PPS),这使被指定的套接字(SC3)可以按照所述所接收的数据流到达的顺序访问由所述进程所涉及的一组套接字接收的数据流。
Description
技术领域
本发明涉及在通信网络内在多个套接字之间的通信,其可应用于通过因特网通信网络从多个源接收消息或数据并使用诸如TCP(传输控制协议)等的协议进行操作的处理。
背景技术
一般地,套接字包括用于列出包含所接收的数据流的缓冲存储器接收列表和用于列出包含将要发送的数据流的缓冲存储器的发送列表。
接收列表和发送列表被称为是“双链接的”,因为组成接收列表和发送列表的缓冲存储器的每一个都具有包括用于指示在对应的列表中在当前缓冲存储器之前的缓冲存储器的“前一个”指针和用于指示在对应的列表中在当前缓冲存储器之后的缓冲存储器的第二“下一个”指针的结构。
只使用一个套接字,该处理可以在等待消息或数据到达所述套接字的接收列表时接收消息或数据。
使用多个套接字,则需要首先对接收列表执行循环分析以发现已接收了想要被读取的消息的套接字。
多个已知的解决方案,尤其是那些已知为“select”、“poll”、“kqueue”和“epoll”的解决方案已被提出以实现该分析。
这些已知的解决方案是相对满意的,但没有考虑消息到达的顺序,并涉及附加任务。
结果是网络性能显著劣化,随着该劣化变大,需要读取的套接字也更多,例如,超过1000个套接字。
发明内容
本发明用于缓解该缺陷。
本发明涉及用于在通信网络内在多个套接字之间通信的通信设备,其中,每个套接字包括用于列出包含所接收的数据流的缓冲存储器的接收列表,所述缓冲存储器的每一个具有包括用于指示在对应的接收列表中在当前缓冲存储器之前的缓冲存储器的“前一个”指针和用于指示在对应的接收列表中在当前缓冲存储器之后的缓冲存储器的第二“下一个”指针的结构。
根据本发明的总定义,所述套接字中的一个被指定为能够接收由与所选择的处理相关联的每个套接字接收的数据流;
所述被指定的套接字还包括附加接收列表,其列出包含由所选择的处理所涉及的所有套接字接收的数据流的缓冲存储器;
每个套接字的缓冲存储器同时属于两个接收列表,每一个缓冲存储器还包括用于指示在附加接收列表中在当前缓冲存储器之前的缓冲存储器的附加“前一个”指针和用于指示在附加接收列表中在当前缓冲存储器之后的缓冲存储器的附加“下一个”指针。
这样,本发明的设备对于所述被指定的套接字可以访问由所述处理所涉及的所有套接字接收的数据流,并按照所述所接收的数据流到达的顺序进行访问。
结果是网络性能优于现有的结构。
本发明的另一个目的是由上述的通信设备执行的通信方法。
附图说明
通过以下的详细描述和附图,本发明的其它特征和优点将变得更加明显,其中:
图1示意性地示出根据本发明的具备指定套接字的通信设备;
图2示意性地示出根据本发明的缓冲存储器的结构。
具体实施方式
在图1中,示出了TCP/IP消息处理。
该处理经由使用TCP协议进行操作的通信网络从多个源接收消息。
套接字SC与每个源相关联,并被单独标记为SC1、SC2和SC3。
每个套接字SC包括接收列表RX,其列出包含所接收的数据的缓冲存储器SKB。
每个套接字还包括发送列表(未示出),其列出包含将要发送的数据流的缓冲存储器。
在图2中,接收列表RX的结构是使得每个缓冲存储器SKB包括用于指示在对应的列表中在当前缓冲存储器之前的缓冲存储器SKB的“前一个”指针PP和用于指示在对应的列表中在当前缓冲存储器之后的缓冲存储器的第二“下一个”指针。
对于所选择的套接字,缓冲存储器彼此相链接。
每个缓冲存储器SKB识别设备ND的结构,其中数据分组向该设备ND发送或者从该设备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
Skh 3.2。
Claims (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),其列出包含由所选择的处理所涉及的所有套接字接收的数据流的缓冲存储器;
每个套接字(SC1,SC2,SC3)的缓冲存储器(SKB)同时属于两个接收列表(RX,RXS),每个缓冲存储器(SKB)还包括用于指示在所述附加接收列表(RXS)中在当前缓冲存储器之前的缓冲存储器的附加“前一个”指针(PPS)和用于指示在所述附加接收列表(RXS)中在当前缓冲存储器之后的缓冲存储器的附加“下一个”指针(PSS);
这使被指定的套接字(SC3)可以按照所述所接收的数据流到达的顺序访问由所述处理所涉及的一组套接字接收的数据流。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0759931 | 2007-12-18 | ||
FR0759931A FR2925190B1 (fr) | 2007-12-18 | 2007-12-18 | Procede et dispositif de communication entre plusieurs interfaces de connexion |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101488910A true CN101488910A (zh) | 2009-07-22 |
CN101488910B CN101488910B (zh) | 2012-05-23 |
Family
ID=39577259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102098992A Expired - Fee Related CN101488910B (zh) | 2007-12-18 | 2008-12-18 | 用于在多个套接字之间通信的方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7852858B2 (zh) |
EP (1) | EP2073127B1 (zh) |
JP (1) | JP4938134B2 (zh) |
KR (1) | KR101428138B1 (zh) |
CN (1) | CN101488910B (zh) |
AT (1) | ATE534082T1 (zh) |
FR (1) | FR2925190B1 (zh) |
WO (1) | WO2009080997A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101827026A (zh) * | 2010-04-01 | 2010-09-08 | 东方电子股份有限公司 | 一种iec 61850高层协议报文发送的管理方法 |
CN101789959B (zh) * | 2009-12-30 | 2013-05-08 | 北京天融信科技有限公司 | 一种多核系统中的skb重用方法及装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102316116B (zh) * | 2011-09-29 | 2014-05-21 | 高新兴科技集团股份有限公司 | 一种支持多平台网络通讯处理系统及方法 |
CN102508783B (zh) * | 2011-10-18 | 2014-04-09 | 深圳市共进电子股份有限公司 | 一种避免数据混乱的内存回收方法 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5991520A (en) * | 1996-02-02 | 1999-11-23 | Sony Corporation | Application programming interface for managing and automating data transfer operations between applications over a bus structure |
US7181525B1 (en) * | 1996-08-05 | 2007-02-20 | Computer Associates Think, Inc. | Dynamic method for connecting a client to a server application |
US6073177A (en) * | 1997-08-05 | 2000-06-06 | Sterling Software, Inc. | Dynamic method for connecting a client to a server application |
US6343321B2 (en) * | 1997-10-27 | 2002-01-29 | Sun Microsystems, Inc. | Method and apparatus for network transport independence |
US6138186A (en) * | 1998-07-20 | 2000-10-24 | Hewlett-Packard Company | Burst transfer management system utilizing pointers to ensure that there is enough space in a buffer to receive burst transfers without corrupting data |
JP4299928B2 (ja) * | 1999-08-30 | 2009-07-22 | 株式会社東芝 | 分散監視制御システム及び方法並びに分散監視制御用ソフトウェアを記録した記録媒体 |
US6609161B1 (en) * | 2000-06-01 | 2003-08-19 | Adaptec, Inc. | Two-dimensional execution queue for host adapters |
US6922727B2 (en) * | 2001-06-26 | 2005-07-26 | International Business Machines Corporation | Method and system for managing parallel data transfer through multiple sockets to provide scalability to a computer network |
US7269661B2 (en) * | 2002-02-12 | 2007-09-11 | Bradley Richard Ree | Method using receive and transmit protocol aware logic modules for confirming checksum values stored in network packet |
US7957409B2 (en) * | 2003-01-23 | 2011-06-07 | Cisco Technology, Inc. | Methods and devices for transmitting data between storage area networks |
US7430623B2 (en) * | 2003-02-08 | 2008-09-30 | Hewlett-Packard Development Company, L.P. | System and method for buffering data received from a network |
US20050010644A1 (en) * | 2003-07-07 | 2005-01-13 | Brown Scott T. | High performance electronic message delivery engine |
WO2005032106A1 (en) * | 2003-09-30 | 2005-04-07 | Koninklijke Philips Electronics, N.V. | Client requested external address mapping |
JP4343760B2 (ja) * | 2004-04-28 | 2009-10-14 | 株式会社日立製作所 | ネットワークプロトコル処理装置 |
US7533176B2 (en) * | 2004-07-14 | 2009-05-12 | International Business Machines Corporation | Method for supporting connection establishment in an offload of network protocol processing |
US7769905B1 (en) * | 2004-08-13 | 2010-08-03 | Oracle America, Inc. | Adapting network communication to asynchronous interfaces and methods |
US7957379B2 (en) * | 2004-10-19 | 2011-06-07 | Nvidia Corporation | System and method for processing RX packets in high speed network applications using an RX FIFO buffer |
US7751346B2 (en) * | 2005-12-01 | 2010-07-06 | Electronics And Telecommunications Research Institute | Apparatus for searching TCP and UDP sockets |
KR100866204B1 (ko) * | 2006-04-28 | 2008-10-30 | 삼성전자주식회사 | 고속 통신 기기로부터 무선 네트워크로의 역방향 통신을위한 이동 단말의 데이터 흐름 제어 장치 및 방법 |
US7911948B2 (en) * | 2007-10-17 | 2011-03-22 | Viasat, Inc. | Methods and systems for performing TCP throttle |
-
2007
- 2007-12-18 FR FR0759931A patent/FR2925190B1/fr not_active Expired - Fee Related
-
2008
- 2008-12-11 EP EP08171344A patent/EP2073127B1/fr not_active Not-in-force
- 2008-12-11 KR KR1020107013547A patent/KR101428138B1/ko not_active IP Right Cessation
- 2008-12-11 AT AT08171344T patent/ATE534082T1/de active
- 2008-12-11 JP JP2010538856A patent/JP4938134B2/ja not_active Expired - Fee Related
- 2008-12-11 WO PCT/FR2008/052278 patent/WO2009080997A1/fr active Application Filing
- 2008-12-15 US US12/314,652 patent/US7852858B2/en not_active Expired - Fee Related
- 2008-12-18 CN CN2008102098992A patent/CN101488910B/zh not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101789959B (zh) * | 2009-12-30 | 2013-05-08 | 北京天融信科技有限公司 | 一种多核系统中的skb重用方法及装置 |
CN101827026A (zh) * | 2010-04-01 | 2010-09-08 | 东方电子股份有限公司 | 一种iec 61850高层协议报文发送的管理方法 |
CN101827026B (zh) * | 2010-04-01 | 2012-04-18 | 东方电子股份有限公司 | 一种iec61850高层协议报文发送的管理方法 |
Also Published As
Publication number | Publication date |
---|---|
US20090310611A1 (en) | 2009-12-17 |
JP4938134B2 (ja) | 2012-05-23 |
EP2073127B1 (fr) | 2011-11-16 |
FR2925190B1 (fr) | 2009-11-20 |
FR2925190A1 (fr) | 2009-06-19 |
ATE534082T1 (de) | 2011-12-15 |
EP2073127A1 (fr) | 2009-06-24 |
US7852858B2 (en) | 2010-12-14 |
WO2009080997A1 (fr) | 2009-07-02 |
JP2011509004A (ja) | 2011-03-17 |
CN101488910B (zh) | 2012-05-23 |
KR20100097705A (ko) | 2010-09-03 |
KR101428138B1 (ko) | 2014-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102047618B (zh) | 网络处理器单元和用于网络处理器单元的方法 | |
CN102377640B (zh) | 一种报文处理装置和报文处理方法、及预处理器 | |
CN101223745A (zh) | 用于通信资源分配的电子设备和方法 | |
CN103856361A (zh) | 实现远程调试的方法及系统 | |
CN103401783A (zh) | 实现Openflow多级流表的方法及装置 | |
CN101488910B (zh) | 用于在多个套接字之间通信的方法 | |
CN101123529A (zh) | 基于pcie交换网的组播实现方法、系统及设备 | |
US8295298B2 (en) | Device with ethernet switch function and single ethernet connector | |
US10089268B2 (en) | Network subscriber | |
CN106411778A (zh) | 数据转发的方法及装置 | |
US20130003754A1 (en) | Automation System | |
CN1781293A (zh) | 用于修改从源传输到目的地的数据的系统和方法 | |
US8532100B2 (en) | System and method for data exchange in a heterogeneous multiprocessor system | |
CN105635000A (zh) | 一种报文存储转发方法和电路及设备 | |
CN110417687A (zh) | 一种报文发送与接收方法及装置 | |
CN104584492A (zh) | 报文处理方法、设备及系统 | |
CN104768176B (zh) | 无线网络中sFlow采样的方法、装置 | |
US11658911B2 (en) | System and method for low latency network switching | |
CN108521416A (zh) | 一种ecn板卡 | |
CN101160867A (zh) | 分组处理装置、通信系统、分组处理方法和执行所述方法的程序 | |
CN102780640A (zh) | 交换芯片中实现多层lm的方法及装置 | |
CN114125497B (zh) | Sfu架构及其媒体传输方法及电子设备 | |
US20090303989A1 (en) | Communication system | |
CN113422741B (zh) | 一种时间触发以太网交换机结构 | |
CN108347424B (zh) | 弹载设备分时通讯协议设计方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120523 Termination date: 20171218 |