KR20100097705A - 통신 방법 및 디바이스 - Google Patents
통신 방법 및 디바이스 Download PDFInfo
- 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
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)에 동시에 속하고, 상기 추가 수신 리스트(RXS)에서 상기 현재 버퍼 메모리에 선행하는 버퍼 메모리를 나타내는 추가 선행 포인터와 상기 추가 수신 리스트(RXS)에서 상기 현재 버퍼 메모리에 후속하는 버퍼 메모리를 나타내는 추가 후속 포인터를 더 포함하며, 상기 프로세스에 수반되는 커넥션 인터페이스 세트에 의해 수신되는 데이터 스트림을 상기 수신된 데이터 스트림이 도달한 순서로 액세스하는 것을 가능하게 한다.
Description
본 발명은 통신 네트워크 내에서 다수의 소켓들 사이의 통신에 관한 것이다.
본 발명은 인터넷 통신 네트워크를 통해 다수의 소스로부터 메시지 또는 데이터를 수신하고 TCP ("Transport Control Protocol")와 같은 프로토콜 또는 그들의 등가물을 이용하여 동작하는 임의의 프로세스에 적용될 수 있다.
일반적으로, 소켓은 수신된 데이터 스트림을 포함하는 버퍼 메모리를 열거한 수신 리스트 및 전송할 데이터 스트림을 포함하는 버퍼 메모리를 열거한 전송 리스트를 포함한다.
수신 리스트 및 전송 리스트는 그들을 구성하는 버퍼 메모리가 대응 리스트에서 현재 버퍼 메모리에 선행하는 버퍼 메모리를 나타내는 "이전" 포인터와 대응 리스트에서 현재 버퍼 메모리에 후속하는 버퍼 메모리를 나타내는 제 2의 "다음" 포인터를 포함하는 구조를 각각 소유한다는 점에서 "이중 링크"된 것으로 말해진다.
단 하나의 소켓으로, 프로세스는 메시지 또는 데이터를 수신하며 상기 소켓의 수신 리스트에 도달할 것을 대기할 수 있다.
다수의 소켓으로, 먼저 수신 리스트의 주기적 분석을 실행하여 판독하고자 하는 메시지를 수신한 소켓을 찾는 것이 필수적이다.
다수의 알려져 있는 솔루션, 특히 "선택", "폴", "큐(kqueue)" 또는 "이폴(epoll)"로서 알려진 것들이 이 분석을 구현하도록 제안되었다.
이러한 알려진 솔루션은 비교적 만족스럽지만, 메시지가 도달하는 순서를 고려하지 않으며, 추가 작업을 수반한다.
그 결과 네트워크 성능이 상당히 열화되며, 더 많은 소켓(예컨대, 1000개 이상의 소켓)이 판독될 필요가 있을수록 더 크게 열화된다.
본 발명은 위 단점을 완화시킨다.
본 발명은 통신 네트워크 내에서 다수의 소켓들 사이의 통신을 위한 통신 디바이스로서, 각각의 소켓은 수신된 데이터 스트림을 포함하는 버퍼 메모리를 열거하는 수신 리스트를 포함하고, 상기 버퍼 메모리 각각은 대응 수신 리스트에서 현재 버퍼 메모리에 선행하는 버퍼 메모리를 나타내는 "이전" 포인터와 대응 수신 리스트에서 현재 버퍼 메모리에 후속하는 버퍼 메모리를 나타내는 제 2의 "다음" 포인터를 포함하는 구조를 갖는 통신 디바이스에 관한 것이다.
본 발명의 한 가지 일반적인 정의에 따르면, 소켓들 중 하나는 선택된 프로세스와 연계된 각각의 소켓에 의해 수신되는 데이터 스트림을 수신할 수 있도록 지정된다.
그에 의해 지정된 상기 소켓은 선택된 프로세스에 수반되는 모든 소켓에 의해 수신되는 데이터 스트림을 포함하는 버퍼 메모리를 열거하는 추가 수신 리스트를 더 포함한다.
각 소켓의 버퍼 메모리는 위 수신 리스트 양자 모두에 동시에 속하고, 각각상기 추가 수신 리스트에서 현재 버퍼 메모리에 선행하는 버퍼 메모리를 나타내는 추가 "이전" 포인터와 상기 추가 수신 리스트에서 현재 버퍼 메모리에 후속하는 버퍼 메모리를 나타내는 추가 "다음" 포인터를 더 포함한다.
이 방법으로, 본 발명의 디바이스는 위와 같이 지정된 소켓이 상기 프로세스에 수반되는 모든 소켓에 의해 수신되는 데이터 스트림을 액세스하는 것 및 상기 수신된 데이터 스트림이 도달한 순서로 그와 같이 하는 것을 가능하게 한다.
그 결과, 네트워크 성능은 이전 구조보다 우수해진다.
본 발명의 다른 목적은 본 발명의 디바이스에 의해 구현되는 통신 방법이다.
본 발명의 다른 특징 및 이점은 아래의 상세한 설명 및 도면에 의해 명백해질 것이다.
도 1은 본 발명에 따른 지정된 소켓이 장착된 통신 디바이스를 개략적으로 도시한 도면,
도 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)
- 통신 네트워크 내에서 다수의 소켓들(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)를 더 포함하여, 상기 프로세스에 수반되는 소켓 세트에 의해 수신되는 데이터 스트림을 상기 수신된 데이터 스트림이 도달한 순서로 액세스하는 것을 가능하게 하는
통신 디바이스.
- 통신 네트워크 내에서 다수의 소켓들(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)를 더 포함하여, 상기 프로세스에 수반되는 소켓 세트에 의해 수신되는 데이터 스트림을 상기 수신된 데이터 스트림이 도달한 순서로 액세스하는 것을 가능하게 하는
통신 방법.
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)
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)
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 |
-
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 WO PCT/FR2008/052278 patent/WO2009080997A1/fr active Application Filing
- 2008-12-11 AT AT08171344T patent/ATE534082T1/de active
- 2008-12-11 KR KR1020107013547A patent/KR101428138B1/ko not_active IP Right Cessation
- 2008-12-11 JP JP2010538856A patent/JP4938134B2/ja not_active Expired - Fee Related
- 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
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 |