KR20100097705A - 통신 방법 및 디바이스 - Google Patents

통신 방법 및 디바이스 Download PDF

Info

Publication number
KR20100097705A
KR20100097705A KR1020107013547A KR20107013547A KR20100097705A KR 20100097705 A KR20100097705 A KR 20100097705A KR 1020107013547 A KR1020107013547 A KR 1020107013547A KR 20107013547 A KR20107013547 A KR 20107013547A KR 20100097705 A KR20100097705 A KR 20100097705A
Authority
KR
South Korea
Prior art keywords
buffer memory
list
additional
data stream
rxs
Prior art date
Application number
KR1020107013547A
Other languages
English (en)
Other versions
KR101428138B1 (ko
Inventor
마리우스 라자르
토마스 프로멘트
Original Assignee
알까뗄 루슨트
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 알까뗄 루슨트 filed Critical 알까뗄 루슨트
Publication of KR20100097705A publication Critical patent/KR20100097705A/ko
Application granted granted Critical
Publication of KR101428138B1 publication Critical patent/KR101428138B1/ko

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)에 동시에 속하고, 상기 추가 수신 리스트(RXS)에서 상기 현재 버퍼 메모리에 선행하는 버퍼 메모리를 나타내는 추가 선행 포인터와 상기 추가 수신 리스트(RXS)에서 상기 현재 버퍼 메모리에 후속하는 버퍼 메모리를 나타내는 추가 후속 포인터를 더 포함하며, 상기 프로세스에 수반되는 커넥션 인터페이스 세트에 의해 수신되는 데이터 스트림을 상기 수신된 데이터 스트림이 도달한 순서로 액세스하는 것을 가능하게 한다.

Description

통신 방법 및 디바이스{METHOD AND DEVICE FOR COMMUNICATING BETWEEN SEVERAL CONNECTION INTERFACES}
본 발명은 통신 네트워크 내에서 다수의 소켓들 사이의 통신에 관한 것이다.
본 발명은 인터넷 통신 네트워크를 통해 다수의 소스로부터 메시지 또는 데이터를 수신하고 TCP ("Transport Control Protocol")와 같은 프로토콜 또는 그들의 등가물을 이용하여 동작하는 임의의 프로세스에 적용될 수 있다.
일반적으로, 소켓은 수신된 데이터 스트림을 포함하는 버퍼 메모리를 열거한 수신 리스트 및 전송할 데이터 스트림을 포함하는 버퍼 메모리를 열거한 전송 리스트를 포함한다.
수신 리스트 및 전송 리스트는 그들을 구성하는 버퍼 메모리가 대응 리스트에서 현재 버퍼 메모리에 선행하는 버퍼 메모리를 나타내는 "이전" 포인터와 대응 리스트에서 현재 버퍼 메모리에 후속하는 버퍼 메모리를 나타내는 제 2의 "다음" 포인터를 포함하는 구조를 각각 소유한다는 점에서 "이중 링크"된 것으로 말해진다.
단 하나의 소켓으로, 프로세스는 메시지 또는 데이터를 수신하며 상기 소켓의 수신 리스트에 도달할 것을 대기할 수 있다.
다수의 소켓으로, 먼저 수신 리스트의 주기적 분석을 실행하여 판독하고자 하는 메시지를 수신한 소켓을 찾는 것이 필수적이다.
다수의 알려져 있는 솔루션, 특히 "선택", "폴", "큐(kqueue)" 또는 "이폴(epoll)"로서 알려진 것들이 이 분석을 구현하도록 제안되었다.
이러한 알려진 솔루션은 비교적 만족스럽지만, 메시지가 도달하는 순서를 고려하지 않으며, 추가 작업을 수반한다.
그 결과 네트워크 성능이 상당히 열화되며, 더 많은 소켓(예컨대, 1000개 이상의 소켓)이 판독될 필요가 있을수록 더 크게 열화된다.
본 발명은 위 단점을 완화시킨다.
본 발명은 통신 네트워크 내에서 다수의 소켓들 사이의 통신을 위한 통신 디바이스로서, 각각의 소켓은 수신된 데이터 스트림을 포함하는 버퍼 메모리를 열거하는 수신 리스트를 포함하고, 상기 버퍼 메모리 각각은 대응 수신 리스트에서 현재 버퍼 메모리에 선행하는 버퍼 메모리를 나타내는 "이전" 포인터와 대응 수신 리스트에서 현재 버퍼 메모리에 후속하는 버퍼 메모리를 나타내는 제 2의 "다음" 포인터를 포함하는 구조를 갖는 통신 디바이스에 관한 것이다.
본 발명의 한 가지 일반적인 정의에 따르면, 소켓들 중 하나는 선택된 프로세스와 연계된 각각의 소켓에 의해 수신되는 데이터 스트림을 수신할 수 있도록 지정된다.
그에 의해 지정된 상기 소켓은 선택된 프로세스에 수반되는 모든 소켓에 의해 수신되는 데이터 스트림을 포함하는 버퍼 메모리를 열거하는 추가 수신 리스트를 더 포함한다.
각 소켓의 버퍼 메모리는 위 수신 리스트 양자 모두에 동시에 속하고, 각각상기 추가 수신 리스트에서 현재 버퍼 메모리에 선행하는 버퍼 메모리를 나타내는 추가 "이전" 포인터와 상기 추가 수신 리스트에서 현재 버퍼 메모리에 후속하는 버퍼 메모리를 나타내는 추가 "다음" 포인터를 더 포함한다.
이 방법으로, 본 발명의 디바이스는 위와 같이 지정된 소켓이 상기 프로세스에 수반되는 모든 소켓에 의해 수신되는 데이터 스트림을 액세스하는 것 및 상기 수신된 데이터 스트림이 도달한 순서로 그와 같이 하는 것을 가능하게 한다.
그 결과, 네트워크 성능은 이전 구조보다 우수해진다.
본 발명의 다른 목적은 본 발명의 디바이스에 의해 구현되는 통신 방법이다.
본 발명의 다른 특징 및 이점은 아래의 상세한 설명 및 도면에 의해 명백해질 것이다.
도 1은 본 발명에 따른 지정된 소켓이 장착된 통신 디바이스를 개략적으로 도시한 도면,
도 2는 본 발명에 따른 버퍼 메모리 구조를 개략적으로 도시한 도면이다.
도 1에는 TCP/IP 메시징 프로세스가 도시되어 있다.
이러한 프로세스는 TCP 프로토콜을 이용하여 동작하는 통신 네트워크를 통해 다수의 소스로부터 메시지를 수신한다.
소켓(SC)은 각각의 소스와 연계되며, 개별적으로는 SC1, SC2, SC3으로 표기된다.
각각의 소켓(SC)은 수신된 데이터 스트림을 포함하는 버퍼 메모리(SKB)를 열거한 수신 리스트(RX)를 포함한다.
각각의 소켓은 전송할 데이터 스트림을 포함하는 버퍼 메모리를 열거한 전송 리스트(도시하지 않음)를 더 포함한다.
도 2에서, 수신 리스트(RX)의 구조는 각각의 버퍼 메모리(SKB)가 대응 리스트에서 현재 버퍼 메모리에 선행하는 버퍼 메모리(SKB)를 나타내는 "이전" 포인터(PP)와 대응 리스트에서 현재 버퍼 메모리에 후속하는 버퍼 메모리를 나타내는 제 2의 "다음" 포인터를 포함하도록 한다.
버퍼 메모리는 선택된 소켓에 대해 서로 링크된다.
각각의 버퍼 메모리(SKB)는 데이터 패킷이 송신되거나 데이터 패킷이 수신되는 디바이스(ND)의 구조를 식별한다.
버퍼 메모리(SKB)는 각각의 패킷과 연계된다. 패킷의 헤더는 포인터 세트(TH, IPH, MAC)에 의해 정확하게 위치 지어진다.
버퍼 메모리는 주어진 소켓에 대해 링크되고, 프로토콜 헤더로의 링크 및 패킷에 연계되는 디바이스와 같은 정보를 포함한다.
다시 도 1을 참조한다.
소켓(SC3)은 메시징 프로세스와 같은 선택된 프로세스와 연계되는 각각의 소켓(SC1, SC2, SC3)으로부터 수신된 데이터 스트림을 추가로 수신하도록 지정된다.
소켓(SC3)은 상기 프로세스에 수반되는 소켓 세트에 의해 수신되는 데이터 스트림을 포함하는 버퍼 메모리(SKB)를 열거하는 추가 수신 리스트(RXS)를 포함한다.
다시 도 2를 참조한다.
각 소켓(SC1, SC2, SC3)의 버퍼 메모리(SKB)는 수신 리스트(RX, RXS) 모두에 동시에 속한다.
버퍼 메모리(SKB) 각각은 추가 수신 리스트(RXS)에서 현재 버퍼 메모리에 선행하는 버퍼 메모리를 나타내는 추가 "이전" 포인터(PPS) 및 추가 수신 리스트(RXS)에서 현재 버퍼 메모리에 후속하는 버퍼 메모리를 나타내는 추가 "다음" 포인터(PSS)를 더 포함한다.
그에 의해 지정된 소켓(SC3) 내에서는 상기 프로세스에 수반되는 소켓 세트에 의해 수신된 데이터 스트림을 상기 수신된 데이터 스트림이 도달한 순서로 액세스하는 것이 가능하다.
이것은, 추가 수신 리스트(RXS)가, 수신된 데이터 스트림을 이 데이터가 다양한 소켓에 도달한 순서로 위치할 수 있게 하는 포인터 정보를 포함하기 때문이다.
예를 들어, 도 1에서, 수신된 데이터 스트림은 다음 순서로 도달한다.
Skb 3.1
Skb 2.1
Skb 1.1
Skb 3.2
Skb 1.2
Skb 1.3
추가 수신 리스트(RXS)를 이용하면, 이 순서로 데이터 스트림을 액세스하는 것이 가능한 반면, 추가 수신 리스트가 없을 때에는 액세스는 소켓의 랭크, 즉 제 1 소켓(SC1), 그 다음 소켓(SC2), 및 그 다음 소켓(SC3)을 기초로 한다. 이러한 경우, 데이터 스트림이 처리되는 순서는 다음과 같을 것이다.
Skb 1.1
Skb 1.2
Skb 1.3
Skb 2.1
Skb 3.1
Skb 3.2

Claims (2)

  1. 통신 네트워크 내에서 다수의 소켓들(SC1, SC2, SC3) 사이의 통신을 위한 통신 디바이스로서,
    각각의 소켓(SC1, SC2, SC3)은 수신된 데이터 스트림을 포함하는 버퍼 메모리(SKB)를 열거하는 수신 리스트(RX)를 포함하고, 상기 수신 리스트(RX)는 각각의 버퍼 메모리(SKB)가 대응 수신 리스트에서 현재 버퍼 메모리에 선행하는 버퍼 메모리를 나타내는 "이전" 포인터(PP)와 대응 수신 리스트에서 현재 버퍼 메모리에 후속하는 버퍼 메모리를 나타내는 제 2의 "다음" 포인터를 포함하는 구조를 가지며,
    상기 소켓들(SC) 중 하나(SC3)는 선택된 프로세스와 연계된 각각의 소켓에 의해 수신되는 데이터 스트림을 수신할 수 있도록 지정되고,
    지정된 상기 소켓(SC3)은 선택된 프로세스에 수반되는 모든 소켓에 의해 수신되는 데이터 스트림을 포함하는 버퍼 메모리를 열거하는 추가 수신 리스트(RXS)를 더 포함하며,
    상기 각 소켓(SC1, SC2, SC3)의 버퍼 메모리(SKB)는 상기 수신 리스트(RX, RXS) 모두에 동시에 속하고, 각각은 상기 추가 수신 리스트(RXS)에서 상기 현재 버퍼 메모리에 선행하는 버퍼 메모리를 나타내는 추가 "이전" 포인터(PPS)와 상기 추가 수신 리스트(RXS)에서 상기 현재 버퍼 메모리에 후속하는 버퍼 메모리를 나타내는 추가 "다음" 포인터(PSS)를 더 포함하여, 상기 프로세스에 수반되는 소켓 세트에 의해 수신되는 데이터 스트림을 상기 수신된 데이터 스트림이 도달한 순서로 액세스하는 것을 가능하게 하는
    통신 디바이스.
  2. 통신 네트워크 내에서 다수의 소켓들(SC1, SC2, SC3) 사이의 통신을 위한 통신 방법으로서,
    각각의 소켓(SC1, SC2, SC3)은 수신된 데이터 스트림을 포함하는 버퍼 메모리(SKB)를 열거하는 수신 리스트(RX)를 포함하고, 상기 수신 리스트(RX)는 각각의 버퍼 메모리(SKB)가 대응 수신 리스트에서 현재 버퍼 메모리에 선행하는 버퍼 메모리를 나타내는 "이전" 포인터(PP)와 대응 수신 리스트에서 현재 버퍼 메모리에 후속하는 버퍼 메모리를 나타내는 제 2의 "다음" 포인터를 포함하는 구조를 가지며,
    상기 소켓들(SC) 중 하나(SC3)는 선택된 프로세스와 연계된 각각의 소켓에 의해 수신되는 데이터 스트림을 수신할 수 있도록 지정되고,
    지정된 상기 소켓(SC3)은 선택된 프로세스에 수반되는 모든 소켓에 의해 수신되는 데이터 스트림을 포함하는 버퍼 메모리를 열거하는 추가 수신 리스트(RXS)를 더 포함하며,
    상기 각 소켓(SC1, SC2, SC3)의 버퍼 메모리(SKB)는 상기 수신 리스트(RX, RXS) 모두에 동시에 속하고, 각각 상기 추가 수신 리스트(RXS)에서 상기 현재 버퍼 메모리에 선행하는 버퍼 메모리를 나타내는 추가 "이전" 포인터(PPS)와 상기 추가 수신 리스트(RXS)에서 상기 현재 버퍼 메모리에 후속하는 버퍼 메모리를 나타내는 추가 "다음" 포인터(PSS)를 더 포함하여, 상기 프로세스에 수반되는 소켓 세트에 의해 수신되는 데이터 스트림을 상기 수신된 데이터 스트림이 도달한 순서로 액세스하는 것을 가능하게 하는
    통신 방법.
KR1020107013547A 2007-12-18 2008-12-11 통신 방법 및 디바이스 KR101428138B1 (ko)

Applications Claiming Priority (3)

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
PCT/FR2008/052278 WO2009080997A1 (fr) 2007-12-18 2008-12-11 Procede et dispositif de communication entre plusieurs interfaces de connexion

Publications (2)

Publication Number Publication Date
KR20100097705A true KR20100097705A (ko) 2010-09-03
KR101428138B1 KR101428138B1 (ko) 2014-08-07

Family

ID=39577259

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107013547A KR101428138B1 (ko) 2007-12-18 2008-12-11 통신 방법 및 디바이스

Country Status (8)

Country Link
US (1) US7852858B2 (ko)
EP (1) EP2073127B1 (ko)
JP (1) JP4938134B2 (ko)
KR (1) KR101428138B1 (ko)
CN (1) CN101488910B (ko)
AT (1) ATE534082T1 (ko)
FR (1) FR2925190B1 (ko)
WO (1) WO2009080997A1 (ko)

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 深圳市共进电子股份有限公司 一种避免数据混乱的内存回收方法

Family Cites Families (20)

* 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
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
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

Also Published As

Publication number Publication date
CN101488910B (zh) 2012-05-23
CN101488910A (zh) 2009-07-22
JP2011509004A (ja) 2011-03-17
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
US7843919B2 (en) Ethernet virtualization using a network packet alteration
CN101069170B (zh) 一种网络服务处理器以及处理数据包的装置和方法
US7298745B2 (en) Method and apparatus to manage packet fragmentation with address translation
US6760304B2 (en) Apparatus and method for receive transport protocol termination
US20140369355A1 (en) Multiple gateway device, multiplex line communication system, multiple line communication method and program
CN1426239A (zh) 路由器、终端设备、通信系统以及路由方法
CN1946061B (zh) 一种快速处理报文的方法及装置
KR101428138B1 (ko) 통신 방법 및 디바이스
US8755379B2 (en) Apparatus and method for link duplication in mobile communication system
US20030021269A1 (en) Sequence-preserving deep-packet processing in a multiprocessor system
US8355398B2 (en) Transporting real time video frames over an Ethernet network
US7643502B2 (en) Method and apparatus to perform frame coalescing
US20060083258A1 (en) Time allocation method for synchronous ethernet network
US20060083188A1 (en) Synchronous ethernet network and time allocation method used therein
JP2007259374A (ja) ネットワーク送受信装置
US6694373B1 (en) Method and apparatus for hitless switchover of a voice connection in a voice processing module
JP2007515875A (ja) インターネット・エンドポイント・システム
CN1283077C (zh) 提高网络处理器服务多数据端口转发性能的方法
US8018932B1 (en) Methods and apparatus for sending a multicast packet from multiple network interfaces using the same MAC source address
US20080159332A1 (en) Methods and devices for using variable length subpackets in data transmissions
US20220360651A1 (en) Method and system for sequencing user data packets
US20170242738A1 (en) Static message placement in queues based on an apriori defined placement plan
US9712459B1 (en) Low-to-high speed cut-through communication
US20040090961A1 (en) Parallel processing routing device
Jae-Woo et al. Implementation of Packet Queue with Two Dimensional Array on Embedded System

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170721

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee