CN101488910B - 用于在多个套接字之间通信的方法 - Google Patents

用于在多个套接字之间通信的方法 Download PDF

Info

Publication number
CN101488910B
CN101488910B CN2008102098992A CN200810209899A CN101488910B CN 101488910 B CN101488910 B CN 101488910B CN 2008102098992 A CN2008102098992 A CN 2008102098992A CN 200810209899 A CN200810209899 A CN 200810209899A CN 101488910 B CN101488910 B CN 101488910B
Authority
CN
China
Prior art keywords
buffer storage
socket
tabulation
reception
data flow
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.)
Expired - Fee Related
Application number
CN2008102098992A
Other languages
English (en)
Other versions
CN101488910A (zh
Inventor
M·拉扎尔
T·弗罗门特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alcatel Lucent SAS
Original Assignee
Alcatel Lucent SAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alcatel Lucent SAS filed Critical Alcatel Lucent SAS
Publication of CN101488910A publication Critical patent/CN101488910A/zh
Application granted granted Critical
Publication of CN101488910B publication Critical patent/CN101488910B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information 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 
Skb 3.2。 

Claims (1)

1.一种用于在通信网络内在多个套接字之间通信的通信方法,其中,所述多个套接字的每一个都包括用于列出包含所接收的数据流的缓冲存储器的接收列表,在所述接收列表具有的结构中,每个缓冲存储器包括用于指示在对应的接收列表中在当前缓冲存储器之前的缓冲存储器的“前一个”指针和用于指示在对应的接收列表中在当前缓冲存储器之后的缓冲存储器的第二“下一个”指针;
其特征在于,所述多个套接字中的一个套接字被指定为能够接收由与所选择的处理相关联的每个套接字接收的数据流;
被指定的套接字还包括附加接收列表,其列出包含由所选择的处理所涉及的所有套接字接收的数据流的缓冲存储器;
每个套接字的缓冲存储器同时属于所述接收列表和所述附加接收列表,每个缓冲存储器还包括用于指示在所述附加接收列表中在当前缓冲存储器之前的缓冲存储器的附加“前一个”指针和用于指示在所述附加接收列表中在当前缓冲存储器之后的缓冲存储器的附加“下一个”指针;
这使被指定的套接字可以按照所述所接收的数据流到达的顺序访问由所述处理所涉及的一组套接字接收的数据流。
CN2008102098992A 2007-12-18 2008-12-18 用于在多个套接字之间通信的方法 Expired - Fee Related CN101488910B (zh)

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 CN101488910A (zh) 2009-07-22
CN101488910B true 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)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101789959B (zh) * 2009-12-30 2013-05-08 北京天融信科技有限公司 一种多核系统中的skb重用方法及装置
CN101827026B (zh) * 2010-04-01 2012-04-18 东方电子股份有限公司 一种iec61850高层协议报文发送的管理方法
CN102316116B (zh) * 2011-09-29 2014-05-21 高新兴科技集团股份有限公司 一种支持多平台网络通讯处理系统及方法
CN102508783B (zh) * 2011-10-18 2014-04-09 深圳市共进电子股份有限公司 一种避免数据混乱的内存回收方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073177A (en) * 1997-08-05 2000-06-06 Sterling Software, Inc. Dynamic method for connecting a client to a server application
US6609161B1 (en) * 2000-06-01 2003-08-19 Adaptec, Inc. Two-dimensional execution queue for host adapters
CN1742469A (zh) * 2003-01-23 2006-03-01 思科技术公司 用于在存储区域网之间传输数据的方法和设备

Family Cites Families (17)

* Cited by examiner, † Cited by third party
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
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 株式会社東芝 分散監視制御システム及び方法並びに分散監視制御用ソフトウェアを記録した記録媒体
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
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
CN1860768A (zh) * 2003-09-30 2006-11-08 皇家飞利浦电子股份有限公司 客户请求的外部地址映射
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
US7616566B2 (en) * 2006-04-28 2009-11-10 Samsung Electroncis Co., Ltd Data flow control apparatus and method of mobile terminal for reverse communication from high speed communication device to wireless network
US7911948B2 (en) * 2007-10-17 2011-03-22 Viasat, Inc. Methods and systems for performing TCP throttle

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073177A (en) * 1997-08-05 2000-06-06 Sterling Software, Inc. Dynamic method for connecting a client to a server application
US6609161B1 (en) * 2000-06-01 2003-08-19 Adaptec, Inc. Two-dimensional execution queue for host adapters
CN1742469A (zh) * 2003-01-23 2006-03-01 思科技术公司 用于在存储区域网之间传输数据的方法和设备

Also Published As

Publication number Publication date
CN101488910A (zh) 2009-07-22
JP2011509004A (ja) 2011-03-17
KR20100097705A (ko) 2010-09-03
EP2073127A1 (fr) 2009-06-24
KR101428138B1 (ko) 2014-08-07
US20090310611A1 (en) 2009-12-17
FR2925190B1 (fr) 2009-11-20
JP4938134B2 (ja) 2012-05-23
ATE534082T1 (de) 2011-12-15
EP2073127B1 (fr) 2011-11-16
US7852858B2 (en) 2010-12-14
FR2925190A1 (fr) 2009-06-19
WO2009080997A1 (fr) 2009-07-02

Similar Documents

Publication Publication Date Title
CN102047618B (zh) 网络处理器单元和用于网络处理器单元的方法
CN102377640B (zh) 一种报文处理装置和报文处理方法、及预处理器
CN101223745A (zh) 用于通信资源分配的电子设备和方法
CN101873269B (zh) 数据转发设备和端口缓存的分配方法
CN1146804C (zh) 快速16位分离事务i/o总线
CN103856361A (zh) 实现远程调试的方法及系统
CN102185833B (zh) 一种基于fpga的fc i/o并行处理方法
US20080095170A1 (en) Sequence-preserving deep-packet processing in a multiprocessor system
CN101488910B (zh) 用于在多个套接字之间通信的方法
CN107623632B (zh) 基于dpdk的网络协议的连接方法及系统
CN101123529A (zh) 基于pcie交换网的组播实现方法、系统及设备
CN109684269A (zh) 一种pcie交换芯片内核及工作方法
CN104660520A (zh) 分组处理装置
US10089268B2 (en) Network subscriber
CN106411778A (zh) 数据转发的方法及装置
US20130003754A1 (en) Automation System
CN104584492A (zh) 报文处理方法、设备及系统
CN106059964B (zh) 报文转发方法及装置
CN1781293A (zh) 用于修改从源传输到目的地的数据的系统和方法
CN101136841A (zh) 基于现场可编程门阵列的隧道实现装置及方法
CN105635000A (zh) 一种报文存储转发方法和电路及设备
CN105357148A (zh) 避免网络交换芯片输出报文乱序的方法及系统
CN102694712B (zh) 网络系统及网络至网络桥接器
US20220191144A1 (en) System and method for low latency network switching
CN114513383A (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

Granted publication date: 20120523

Termination date: 20171218

CF01 Termination of patent right due to non-payment of annual fee