JP6351363B2 - 通信装置およびそのデータ処理方法 - Google Patents
通信装置およびそのデータ処理方法 Download PDFInfo
- Publication number
- JP6351363B2 JP6351363B2 JP2014098893A JP2014098893A JP6351363B2 JP 6351363 B2 JP6351363 B2 JP 6351363B2 JP 2014098893 A JP2014098893 A JP 2014098893A JP 2014098893 A JP2014098893 A JP 2014098893A JP 6351363 B2 JP6351363 B2 JP 6351363B2
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- memory
- communication
- transmission data
- speed
- 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.)
- Active
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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
Description
また、本発明の別の観点にかかる通信装置は、第一のメモリと、前記第一のメモリよりも高速アクセスが可能な第二のメモリと、ネットワークバッファとして、前記第一のメモリに割り当てた汎用バッファおよび前記第二のメモリに割り当てた高速バッファを使用して送信データをパケット化するプロトコル処理手段とを有し、前記プロトコル処理手段は、送信データの前記パケット化に前記高速バッファを使用する指示を受信すると、前記送信データの通信に関するコネクションを管理する管理情報に前記高速バッファの使用フラグをセットし、前記指示は、ソケットアプリケーションプログラミングインタフェイスを利用して行われる。
すべてのネットワークバッファを高速アクセスが可能なSRAMなどのメモリ(以下、高速メモリ)に割り当てられない原因の一つは、単一または複数のアプリケーションが、同時に、複数のコネクションの通信を行うことにある。そこで、高速な通信を必要としないコネクションは、通常のDRAMなどのメモリ(以下、汎用メモリ)に割り当てられたネットワークバッファ(以下、汎用バッファ)を使用するようにする。そして、高速な通信を必要とするコネクションによる、高速メモリに割り当てられたネットワークバッファ(以下、高速バッファ)の優先的利用を可能にする。
図1のブロック図により実施例の通信機器の構成例を示す。CPU102は、メインメモリであるDRAM103をワークメモリとして、ROM107や図示しないハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)などの不揮発性メモリ109に格納された各種プログラムを実行する。CPU102が実行するプログラムにはネットワークドライバが含まれ、ネットワークドライバの実行により後述する送信データをパケット化するデータ処理やACKの受信処理などを含むプロトコル処理の機能が実現される。
図2によりコネクション管理構造体を説明する。DRAM103に割り当てられたコネクション管理構造体301は、各種情報を格納し、TCPなどのコネクションを管理するための構造体(管理情報)である。格納情報には次の情報が含まれる。宛先のIPアドレス(foreign IP address)とポート番号(foreign port number)、自分のIPアドレス(local IP address)とポート番号(local port number)、TCPステート、相手のウィンドウサイズ、送受信バッファサイズ、付加的な情報を追加するためのフラグなどである。
図4のフローチャートにより実施例1のソケットAPI send()によるデータ送信を説明する。CPU102が実行するアプリケーションは、ソケット記述子sdを指定したsend()を呼び出す(S501)。send()が呼び出されると、ネットワークドライバは、ソケット記述子sdに対応するコネクション管理構造体にフラグSO_FASTRAMがセットされているか否かを判定する(S502)。
send(int sd, const void *buf, size_t buflen, int flags);
ここで、sdはソケット記述子、
bufは送信データの先頭のポインタ、
buflenは送信データサイズ。
上記では、高速バッファを使うか、汎用バッファを使うかをソケット記述子sdごとに指定し、ステップS502の判定により、使用するネットワークバッファを切り替える例を説明した。しかし、これに限らず、次の方法によってネットワークバッファを切り替えることができる。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記録媒体を介してシステム或いは装置に供給し、そのシステムあるいは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
Claims (21)
- 第一のメモリと、
前記第一のメモリよりも高速アクセスが可能な第二のメモリと、
送信データの通信プロトコルがTCPであるかUDPであるかを判定する判定手段と、
前記判定手段により前記送信データの通信プロトコルがTCPであると判定された場合、前記第二のメモリをネットワークバッファとして使用して、当該送信データをパケット化し、
前記判定手段により前記送信データの通信プロトコルがUDPであると判定された場合、前記第一のメモリをネットワークバッファとして使用して、当該送信データをパケット化するプロトコル処理手段と、
を有し、
前記プロトコル処理手段は、前記判定手段により前記送信データの通信プロトコルがTCPであると判定された場合であっても、前記第二のメモリにおいて利用可能なネットワークバッファの容量が所定の量よりも不足している場合、前記第一のメモリをネットワークバッファとして使用して、当該送信データをパケット化することを特徴とする通信装置。 - 前記送信データの通信に関するコネクションを管理する管理情報に、当該送信データの通信プロトコルがTCPであるかUDPであるかの情報が含まれることを特徴とする請求項1に記載の通信装置。
- 前記送信データを送信する送信手段を更に有することを特徴とする請求項1または2に記載の通信装置。
- 前記送信手段により送信された前記送信データに対するACKを受信する受信手段を更に有し、
前記受信手段が前記ACKを第1の時間内に受信しなかった場合、前記送信手段は、前記送信データを再送することを特徴とする請求項3に記載の通信装置。 - 前記受信手段が前記ACKを第2の時間内に受信しなかった場合、前記第二のメモリに格納された前記送信データを、前記第一のメモリに移動させることを特徴とする請求項4に記載の通信装置。
- 第一のメモリと、
前記第一のメモリよりも高速アクセスが可能な第二のメモリと、
ネットワークバッファとして、前記第一のメモリに割り当てた汎用バッファおよび前記第二のメモリに割り当てた高速バッファを使用して送信データをパケット化するプロトコル処理手段とを有し、
前記プロトコル処理手段は、送信データの前記パケット化に前記高速バッファを使用する指示を受信すると、前記送信データの通信に関するコネクションを管理する管理情報に前記高速バッファの使用フラグをセットし、
前記指示は、ソケットアプリケーションプログラミングインタフェイスを利用して行われることを特徴とする通信装置。 - 前記プロトコル処理手段は、前記使用フラグがセットされた管理情報に対応するコネクションの前記パケット化に前記高速バッファを優先的に使用することを特徴とする請求項6に記載の通信装置。
- 前記プロトコル処理手段は、前記使用フラグが未セットの管理情報に対応するコネクションの前記パケット化に前記汎用バッファを使用することを特徴とする請求項6に記載の通信装置。
- 前記プロトコル処理手段は、前記使用フラグがセットされた管理情報に対応するコネクションについて、前記通信装置の設定に基づき前記高速バッファの使用可否を判定し、前記判定の結果に基づき前記高速バッファおよび/または前記汎用バッファを使用して前記コネクションにおける前記パケット化を行うことを特徴とする請求項6に記載の通信装置。
- 前記プロトコル処理手段は、前記コネクションが所定の優先順位以上のタスクに関連する場合、前記高速バッファが使用可能と判定することを特徴とする請求項9に記載の通信装置。
- 前記プロトコル処理手段は、前記コネクションが特定の通信相手に関連する場合、前記高速バッファが使用可能と判定することを特徴とする請求項9に記載の通信装置。
- 前記プロトコル処理手段は、前記コネクションが特定の通信プロトコルを用いる場合、前記高速バッファが使用可能と判定することを特徴とする請求項9に記載の通信装置。
- 前記プロトコル処理手段は、前記コネクションが所定の宛先ポートと送信元ポートの組み合わせの場合、前記高速バッファが使用可能と判定することを特徴とする請求項9に記載の通信装置。
- 前記プロトコル処理手段は、前記コネクションの送信データが所定のデータサイズを超える場合、前記高速バッファが使用可能と判定することを特徴とする請求項9に記載の通信装置。
- 前記プロトコル処理手段は、コネクションの通信速度を判定し、所定の通信速度未満のコネクションを管理する管理情報に前記使用フラグがセットされている場合、前記管理情報に前記高速バッファの使用禁止を示す非使用フラグをセットすることを特徴とする請求項6から14のいずれか一項に記載の通信装置。
- 前記プロトコル処理手段は、前記非使用フラグがセットされた管理情報に対応するコネクションの前記パケット化に前記汎用バッファを使用することを特徴とする請求項15に記載の通信装置。
- さらに、送信データに対する通信相手の肯定応答を所定時間内に受信したか否かを判定する判定手段を有し、
前記肯定応答が前記所定時間内に受信されずに、前記送信データの通信に関するコネクションを管理する管理情報に前記使用フラグがセットされている場合、前記プロトコル処理手段は、前記コネクションが使用する前記高速バッファに格納されたデータを前記汎用バッファにコピーして前記高速バッファを解放することを特徴とする請求項6から16のいずれか一項に記載の通信装置。 - 前記第一のメモリはダイナミックランダムアクセスメモリ(DRAM)であり、前記第二のメモリはスタティックランダムアクセスメモリ(SRAM)であることを特徴とする請求項1から17のいずれか一項に記載の通信装置。
- 第一のメモリ、および、前記第一のメモリよりも高速アクセスが可能な第二のメモリを有する通信装置のデータ処理方法であって、
送信データの通信プロトコルがTCPであるかUDPであるかを判定する判定工程と、
前記判定工程において前記送信データの通信プロトコルがTCPであると判定された場合、前記第二のメモリをネットワークバッファとして使用して、当該送信データをパケット化し、
前記判定工程において前記送信データの通信プロトコルがUDPであると判定された場合、前記第一のメモリをネットワークバッファとして使用して、当該送信データをパケット化するプロトコル処理工程と、
を有し、
前記判定工程において前記送信データの通信プロトコルがTCPであると判定された場合であっても、前記第二のメモリにおいて使用可能なネットワークバッファの容量が所定の量よりも不足している場合、前記プロトコル処理工程において、前記第一のメモリをネットワークバッファとして使用して、当該送信データをパケット化することを特徴とする処理方法。 - 第一のメモリ、および、前記第一のメモリよりも高速アクセスが可能な第二のメモリを有する通信装置のデータ処理方法であって、
ネットワークバッファとして、前記第一のメモリに割り当てた汎用バッファおよび前記第二のメモリに割り当てた高速バッファを使用して送信データをパケット化するプロトコル処理工程を有し、
前記プロトコル処理工程では、送信データの前記パケット化に前記高速バッファを使用する指示を受信すると、前記送信データの通信に関するコネクションを管理する管理情報に前記高速バッファの使用フラグをセットし、
前記指示は、ソケットアプリケーションプログラミングインタフェイスを利用して行われることを特徴とする処理方法。 - コンピュータに請求項19または20に記載の各工程を実行ささせるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014098893A JP6351363B2 (ja) | 2013-08-01 | 2014-05-12 | 通信装置およびそのデータ処理方法 |
US14/334,977 US10133687B2 (en) | 2013-08-01 | 2014-07-18 | Communication apparatus and data processing method |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013160793 | 2013-08-01 | ||
JP2013160793 | 2013-08-01 | ||
JP2014098893A JP6351363B2 (ja) | 2013-08-01 | 2014-05-12 | 通信装置およびそのデータ処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015046866A JP2015046866A (ja) | 2015-03-12 |
JP6351363B2 true JP6351363B2 (ja) | 2018-07-04 |
Family
ID=52428750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014098893A Active JP6351363B2 (ja) | 2013-08-01 | 2014-05-12 | 通信装置およびそのデータ処理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10133687B2 (ja) |
JP (1) | JP6351363B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015126429A1 (en) * | 2014-02-24 | 2015-08-27 | Hewlett-Packard Development Company, L.P. | Repurposable buffers for target port processing of a data transfer |
US20160110132A1 (en) * | 2015-01-09 | 2016-04-21 | Mediatek Inc. | Dynamic Adjustment Of Speed of Memory |
JP2017011580A (ja) | 2015-06-24 | 2017-01-12 | キヤノン株式会社 | 通信装置およびその制御方法、プログラム |
JP6618330B2 (ja) * | 2015-10-28 | 2019-12-11 | キヤノン株式会社 | 通信装置及びその方法、コンピュータプログラム |
US10911547B2 (en) * | 2017-12-28 | 2021-02-02 | Dell Products L.P. | Systems and methods for SMB monitor dialect |
WO2023008008A1 (ja) * | 2021-07-30 | 2023-02-02 | 株式会社ソフトギア | 情報処理プログラム、情報処理装置及び情報処理方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06274612A (ja) * | 1993-03-17 | 1994-09-30 | Matsushita Electric Ind Co Ltd | 画像処理装置 |
US5761438A (en) | 1993-08-31 | 1998-06-02 | Canon Kabushiki Kaisha | Apparatus for measuring the amount of traffic of a network at a predetermined timing and compressing data in the packet without changing the size of the packet |
US6003120A (en) * | 1993-12-30 | 1999-12-14 | Intel Corporation | Method and apparatus for performing variable length processor write cycles |
JP3176837B2 (ja) * | 1996-01-26 | 2001-06-18 | 株式会社日立製作所 | Atmコントローラおよび、atm通信制御装置 |
JP2001060967A (ja) * | 1999-08-23 | 2001-03-06 | Fujitsu Ltd | パケットスイッチ装置 |
US7843968B2 (en) * | 2002-09-30 | 2010-11-30 | Sanyo Electric Co., Ltd. | Communication apparatus and applications thereof |
US6996070B2 (en) * | 2003-12-05 | 2006-02-07 | Alacritech, Inc. | TCP/IP offload device with reduced sequential processing |
TWI257790B (en) * | 2004-10-29 | 2006-07-01 | Ind Tech Res Inst | System for protocol processing engine |
US7784094B2 (en) * | 2005-06-30 | 2010-08-24 | Intel Corporation | Stateful packet content matching mechanisms |
KR100793349B1 (ko) * | 2006-01-26 | 2008-01-11 | 삼성전자주식회사 | Ppp 멀티링크를 지원하는 시스템에서의 멀티캐스트트래픽 포워딩 장치 및 제어방법 |
JP4921142B2 (ja) * | 2006-12-12 | 2012-04-25 | キヤノン株式会社 | 通信装置 |
JP2009020684A (ja) | 2007-07-11 | 2009-01-29 | Kawasaki Microelectronics Kk | 端末装置 |
JP2010278897A (ja) * | 2009-05-29 | 2010-12-09 | Renesas Electronics Corp | 通信データ処理回路及び通信データ処理方法 |
TWI424435B (zh) * | 2009-08-31 | 2014-01-21 | Phison Electronics Corp | 對快閃記憶體下達程式化指令的方法、控制器與儲存系統 |
KR101895605B1 (ko) * | 2011-11-21 | 2018-10-25 | 삼성전자주식회사 | 플래시 메모리 장치 및 그것의 프로그램 방법 |
-
2014
- 2014-05-12 JP JP2014098893A patent/JP6351363B2/ja active Active
- 2014-07-18 US US14/334,977 patent/US10133687B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20150039821A1 (en) | 2015-02-05 |
JP2015046866A (ja) | 2015-03-12 |
US10133687B2 (en) | 2018-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6351363B2 (ja) | 通信装置およびそのデータ処理方法 | |
JP6517934B2 (ja) | スイッチ内のデータをバッファリングするための装置および方法 | |
WO2017133623A1 (zh) | 一种数据流处理方法、装置和系统 | |
US8452888B2 (en) | Flow control for reliable message passing | |
US8996718B2 (en) | TCP-aware receive side coalescing | |
US7571247B2 (en) | Efficient send socket call handling by a transport layer | |
US20170180261A1 (en) | Avoiding dropped data packets on a network transmission | |
JP4771988B2 (ja) | 負荷分散装置及びネットワーク装置 | |
EP2661029B1 (en) | Avoiding Delayed Data | |
JP2007200055A (ja) | iSCSI通信制御方法とそれを用いた記憶システム | |
JP2016515361A (ja) | アプリケーションにより提供される送信メタデータに基づくネットワーク送信調整 | |
WO2018024173A1 (zh) | 报文处理方法及路由器 | |
JP2007013449A (ja) | シェーパー制御方法、データ通信システム、ネットワークインタフェース装置及びネットワーク中継装置 | |
JP2014195158A (ja) | 通信装置と、当該通信装置を含む通信システム、及びその制御方法とプログラム | |
WO2015180426A1 (zh) | 一种数据传输方法、装置及系统 | |
US10015133B2 (en) | Value-added service deployment method, network device, and value-added service device | |
JP2009188655A (ja) | 通信制御方法、情報処理システム、情報処理装置及びプログラム | |
JP6036445B2 (ja) | 通信システム、中継装置、通信方法、及びプログラム | |
JP5636574B2 (ja) | 通信装置、パケット転送方法及びそのプログラム | |
EP2774342A1 (en) | Reducing tcp timeouts due to incast collapse at a network switch | |
JP2017011580A (ja) | 通信装置およびその制御方法、プログラム | |
JP2014147011A5 (ja) | ||
JP2014049905A (ja) | 転送装置、転送方法および転送プログラム | |
JP6618330B2 (ja) | 通信装置及びその方法、コンピュータプログラム | |
JP6829156B2 (ja) | ネットワーク負荷分散装置および方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170403 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171206 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180202 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180327 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180507 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180605 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6351363 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |