JPWO2010032533A1 - ネットワークプロトコル処理システム、及びネットワークプロトコル処理方法 - Google Patents

ネットワークプロトコル処理システム、及びネットワークプロトコル処理方法 Download PDF

Info

Publication number
JPWO2010032533A1
JPWO2010032533A1 JP2010529677A JP2010529677A JPWO2010032533A1 JP WO2010032533 A1 JPWO2010032533 A1 JP WO2010032533A1 JP 2010529677 A JP2010529677 A JP 2010529677A JP 2010529677 A JP2010529677 A JP 2010529677A JP WO2010032533 A1 JPWO2010032533 A1 JP WO2010032533A1
Authority
JP
Japan
Prior art keywords
control information
queue
tcp
priority
processing
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.)
Withdrawn
Application number
JP2010529677A
Other languages
English (en)
Inventor
真人 安田
真人 安田
清久 市野
清久 市野
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of JPWO2010032533A1 publication Critical patent/JPWO2010032533A1/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/821Prioritising resource allocation or reservation requests

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

TCP等の送信処理の変数と受信処理の変数が相互に依存するネットワークプロトコル通信システムにおいて、更新されたプロトコル処理の送信処理ブロックと受信処理ブロックの非同期並列処理を実現する。具体的には、TCP送信処理ブロックの受信処理ブロックの間に高優先で処理される制御情報を転送する高優先キューとそれ以外の制御情報を転送する低優先キューと制御情報を2種類のキューへ振り分ける優先制御手段を有する。TCPデータ転送中に新規TCPセッションの開設・切断要求がアプリケーションから発行された場合は、優先制御手段により、開設・切断要求の情報は、高優先キューを経由して優先的に通知され、それ以外の制御情報は、低優先キューを経由して受け渡される。

Description

本発明は、ネットワークプロトコル処理システムに関し、TCP(Transmission Control Protocol)を始めとする送信処理と受信処理のプロトコル処理の変数が相互に依存するネットワークプロトコル処理システムに関する。
従来のネットワークプロトコル通信システムは、複数のプロトコル処理手段によりパイプラインを実現する。従来のネットワークプロトコル処理システムは、複数のプロトコル処理手段を実施するサブプロセッサと、プロトコル制御情報を格納する第一の記録媒体と、第一の記憶媒体よりも高速にアクセス可能な第二の記憶媒体を備えている。第一のプロトコル処理手段は、第一の記憶媒体からプロトコル情報を読み出して第二の記憶媒体に格納するための指示を行うか、もしくはプロトコル制御情報を新規に生成して第二の記憶媒体に格納するための指示を行う。また、第二のプロトコル処理手段は、第二の記憶媒体に格納されるプロトコル制御情報を参照してプロトコル処理手段を行う。第一のプロトコル処理手段は、第二のプロトコル処理手段より前段の処理手段を行う事でパイプライン動作を実現する。
しかし、従来のネットワークプロトコル通信システムには、以下のような問題点がある。
第一の問題点は、従来のネットワークプロトコル通信システムでは、プロトコル処理の送信処理ブロックと受信処理ブロックの非同期並列処理が実現出来ないことである。その理由は、複数プロトコル処理手段の間で受け渡される制御情報の量が、セッション当たり1エントリしか用意されていないためである。
第二の問題点は、第一の問題点を解決するために、送信処理ブロックと受信処理ブロック間で受け渡される制御情報を格納するキューが存在したとしても、単一のキューのみではネットワークのデータ送受信処理中にセッション開閉処理の性能が劣化することである。その理由は、送信処理ブロック間と受信ブロック間で受け渡される全ての制御情報が同一のキューを通ってしまうと、送信処理ブロックから受信処理ブロック間でセッション開閉に関わる制御情報がパケット処理により受け渡される制御情報の影響を受けるためである。
第三の問題点は、優先度の高いネットワークプロトコルのセッションのデータ転送性能を選択的に向上させることが出来ないことである。その理由は、ネットワークプロトコル処理のセッション別の優先制御が考慮されていないためである。
関連する技術として、特開2008−146486号公報(特許文献1)に通信装置、通信装置の制御方法及びプログラムが開示されている。この関連技術では、TCP/IPのような階層化されたプロトコルスタックを複数のプロセッサでパイプライン的に処理する。
また、特開2007−166294号公報(特許文献2)にパケット転送装置及びマルチキャスト展開方法が開示されている。この関連技術では、指定された優先度に従って、低優先キューと高優先キューのどちらかのキューに、ポインタ情報と優先度情報を振分ける。
特開2008−146486号公報 特開2007−166294号公報
RFC793<http://www.faqs.org/rfcs/rfc793.html> RFC3782<http://www.faqs.org/rfcs/rfc3782.html>
本発明の目的は、TCP(Transmission Control Protocol)を始めとするネットワークプロトコルの送信処理と受信処理のプロトコル処理の変数が相互に依存するネットワークシステムにおいて送信処理と受信処理を非同期並列処理するネットワークプロトコル処理システム、ネットワークプロトコル処理方法、及びプログラムを提供することにある。
本発明のネットワークプロトコル処理システムは、制御情報転送装置と、TCP受信処理装置と、TCP送信処理装置とを備える。制御情報転送装置は、TCP(Transmission Control Protocol)に基づく送信処理と受信処理の各々の制御情報に使用されるプロトコル処理変数が相互に依存するプロトコル処理を行う。TCP受信処理装置は、対向ホストから到着した受信パケットに対して受信プロトコル処理を行う。また、TCP受信処理装置は、受信プロトコル処理により更新された制御情報のうちTCP送信処理で使用される制御情報を制御情報転送装置に送る。また、TCP受信処理装置は、受信プロトコル処理により再構築されたTCPデータをアプリケーション処理装置に送る。TCP送信処理装置は、アプリケーション処理装置から送信要求があった送信データに対して送信プロトコル処理を行う。また、TCP送信処理装置は、送信プロトコル処理により更新された制御情報のうちTCP受信処理で使用される制御情報を制御情報転送装置に送る。また、TCP送信処理装置は、送信プロトコル処理により生成されたTCPパケットを対向ホストに送出する。
制御情報転送装置は、TCP受信処理装置から送られてきた制御情報を第一のキューに格納し、TCP送信処理装置から送られてきた制御情報を第二のキューに格納する。TCP送信処理装置は、第一のキューをモニタ(監視)し、第一のキューに制御情報が格納されている場合、第一のキューから制御情報を取り出してTCP送信処理の変数を更新する。TCP受信処理装置は、第二のキューをモニタし、第二のキューに制御情報が格納されている場合、第二のキューから制御情報を取り出してTCPの受信処理の変数を更新する。
本発明のネットワークプロトコル処理方法は、対向ホストに接続されたコンピュータ上で実施されるネットワークプロトコル処理方法である。このネットワークプロトコル処理方法では、TCP(Transmission Control Protocol)に基づく送信処理と受信処理の各々の制御情報に使用されるプロトコル処理変数が相互に依存するプロトコル処理を行う。また、対向ホストから到着した受信パケットに対して受信プロトコル処理を行い、受信プロトコル処理により更新された制御情報のうちTCP送信処理で使用される制御情報を第一のキューに格納し、受信プロトコル処理により再構築されたTCPデータをアプリケーション側に提供する。また、アプリケーション側から送信要求があった送信データに対して送信プロトコル処理を行い、送信プロトコル処理により更新された制御情報のうちTCP受信処理で使用される制御情報を第二のキューに格納し、送信プロトコル処理により生成されたTCPパケットを対向ホストに送出する。また、第一のキューをモニタし、第一のキューに制御情報が格納されている場合、第一のキューから制御情報を取り出してTCP送信処理の変数を更新する。また、第二のキューをモニタし、第二のキューに制御情報が格納されている場合、第二のキューから制御情報を取り出してTCPの受信処理の変数を更新する。
本発明のプログラムは、次のような動作をコンピュータに実行させるためのプログラムである。コンピュータは、このプログラムにより、TCP(Transmission Control Protocol)に基づく送信処理と受信処理の各々の制御情報に使用されるプロトコル処理変数が相互に依存するプロトコル処理を行う。また、コンピュータは、このプログラムにより、対向ホストから到着した受信パケットに対して受信プロトコル処理を行う。また、コンピュータは、このプログラムにより、受信プロトコル処理により更新された制御情報のうちTCP送信処理で使用される制御情報を第一のキューに格納する。また、コンピュータは、このプログラムにより、受信プロトコル処理により再構築されたTCPデータをアプリケーション側に提供する。また、コンピュータは、このプログラムにより、アプリケーション側から送信要求があった送信データに対して送信プロトコル処理を行う。また、コンピュータは、このプログラムにより、送信プロトコル処理により更新された制御情報のうちTCP受信処理で使用される制御情報を第二のキューに格納する。また、コンピュータは、このプログラムにより、送信プロトコル処理により生成されたTCPパケットを対向ホストに送出する。また、コンピュータは、このプログラムにより、第一のキューをモニタし、第一のキューに制御情報が格納されている場合、第一のキューから制御情報を取り出してTCP送信処理の変数を更新する。また、コンピュータは、このプログラムにより、第二のキューをモニタし、第二のキューに制御情報が格納されている場合、第二のキューから制御情報を取り出してTCPの受信処理の変数を更新する。なお、本発明のプログラムは、記憶媒体に格納することができる。
TCP送信処理ブロックと受信処理ブロック間で非同期並列処理を行うことが可能となる。
本発明の第1実施形態の構成を示すブロック図である。 本発明の第1実施形態の受信処理の動作を示すブロック図である。 本発明の第1実施形態の送信処理の動作を示すブロック図である。 本発明の第1実施形態の制御情報転送の動作を示すブロック図である。 本発明の第1実施形態の制御情報転送の動作を示すブロック図である。 本発明の第2実施形態の制御情報のキューからの取得の動作を示すブロック図である。 本発明の第2実施形態の構成を示すブロック図である。 本発明の第2実施形態の動作を示すブロック図である。 本発明の第3実施形態の構成を示すブロック図である。 本発明の第3実施形態の受信時の動作を示すブロック図である。 本発明の第3実施形態の送信時の動作を示すブロック図である。
<第1実施形態>
以下に、本発明の第1実施形態について添付図面を参照して説明する。
図1を参照すると、本発明の第1実施形態におけるネットワークプロトコル処理システムは、パケット入力装置1と、パケット出力装置2と、TCP(Transmission Control Protocol)受信処理装置3と、TCP送信処理装置4と、アプリケーション処理装置5と、制御情報転送装置6を含む。
パケット入力装置1は、対向ホストから到着したパケットの受信を行う。パケット出力装置2は、対向ホストへパケットを送出する。TCP受信処理装置3は、TCP受信処理を行う。TCP送信処理装置4は、TCP送信処理を行う。アプリケーション処理装置5は、TCPのネットワークの上位階層の処理を行う。ここでは、アプリケーション処理装置5は、アプリケーション(application software)を実行する。制御情報転送装置6は、TCP受信処理装置3とTCP送信処理装置4の間で制御情報の転送を行う。
制御情報転送装置6は、第1制御情報優先制御部61と、第2制御情報優先制御部62と、高優先キュー63と、低優先キュー64を備える。
制御情報優先手段61は、TCP受信処理装置3から送られてきた制御情報を、制御情報の種別に応じて、高優先キュー63と低優先キュー64に振り分ける。また、制御情報優先手段61は、TCP送信処理装置4から送られてきた制御情報が高優先キュー63と低優先キュー64に到着したか確認し、制御情報が到着していれば、対応するTCP受信処理装置3の内部処理変数を更新する。
制御情報優先手段62は、TCP送信処理装置4から送られてきた制御情報を、制御情報の種別に応じて、高優先キュー63と低優先キュー64に振り分ける。また、制御情報優先手段62は、TCP受信処理装置3から送られてきた制御情報が高優先キュー63と低優先キュー64に到着したか確認し、制御情報が到着していれば、対応するTC送信処理装置4の内部処理変数を更新する。
高優先キュー63及び低優先キュー64の各々は、TCP受信装置3からTCP送信装置4への制御情報を格納するキュー(第一のキュー)と、TCP送信装置4からTCP受信装置3への制御情報を格納するキュー(第二のキュー)の対を備える。また、高優先キュー63及び低優先キュー64の各々は、これらのキューに、TCP受信処理装置3とTCP送信処理装置4の間で転送される制御情報を格納する。高優先キュー63は、優先度の高い制御情報を格納する。低優先キュー64は、それ(優先度の高い制御情報)以外の情報を格納する。ここでは、低優先キュー64は、高優先キュー63に格納されなかった情報を格納する。
次に、本実施形態の動作について詳細に説明する。
図2を参照して、TCPの受信動作について説明する。
(1)ステップA1
パケット入力装置1は、対向ホストから送られたTCPパケットを受信し、TCP受信処理装置3に送る。
(2)ステップA2
TCP受信処理装置3は、TCP受信パケット処理により有効データ長の判定やTCPのプロトコル処理変数である「rcv_nxt」、「rcv_wnd」、「rcv_up」、「snd_una」、及び輻輳ウィンドウを更新する。ここでは、「rcv_nxt」を始めとするTCPの変数は、RFC(Request For Comment)793<http://www.faqs.org/rfcs/rfc793.html>で定義される値である。輻輳ウィンドウは、RFC3782<http://www.faqs.org/rfcs/rfc3782.html>を始めとした「NewReno」等の輻輳制御方式で利用される変数である。ここでは、これらの変数は、制御情報に相当する。
(3)ステップA3
TCP受信処理装置3は、TCP受信パケット処理により更新された変数があるか確認する。
(4)ステップA4
TCP受信処理装置3は、更新された変数があれば、その更新情報を、制御情報転送装置6に送る。受信パケットのTCP処理により更新された変数のうち、「rcv_nxt」は、ACKパケットの送出を判断するためにTCP送信処理装置4で必要な変数である。「snd_una」は、送出TCPパケットのACKフィールドを決定するためにTCP送信処理装置4で必要な変数である。輻輳ウィンドウは、送出ウィンドウを決定するためにTCP送信処理装置4で必要な変数である。
(5)ステップA5
また、TCP受信処理装置3は、対向ホストから受信したTCPパケットに「FIN」や「RST」が含まれていた場合、TCPのシーケンス番号が有効範囲内部であれば、該当TCPセッションの内部ステートを、「ESTABLISHED」から「CLOSE_WAIT」や「CLOSED」に遷移する。
(6)ステップA6
TCP受信処理装置3は、ステート遷移があった場合、TCPステート遷移に伴う制御情報(例えば、更新後のTCPステート情報)を、制御情報転送装置6に送る。
(7)ステップA7
その後、TCP受信処理装置3は、TCP処理結果をアプリケーション処理装置5に通知し、受信処理を完了する。
続いて、図3を参照して、TCPの送信動作について説明する。
(1)ステップB1
アプリケーション処理装置5は、送出するTCPデータを、TCP送信処理装置4に送る。
(2)ステップB2
TCP送信処理装置4は、TCP送信パケット処理により、送出可能なTCPデータの判定処理やTCPの送信処理の変数である「snd_nxt」、「snd_max」、「snd_wnd」を更新する。なお、「snd_nxt」等のTCPの変数は、RFC793で定義されている。ここでは、これらの変数は、制御情報に相当する。
(3)ステップB3
また、TCP送信処理装置4は、TCP送信パケット処理により更新された変数があるか確認する。
(4)ステップB4
TCP送信処理装置4は、更新された変数があれば、その更新情報を、制御情報転送装置6に送る。送信データのTCP処理により更新された変数のうち、「snd_nxt」、「snd_max」は、ACKパケット受信時の再送タイマの設定判定に使われるために、TCP受信処理装置3で必要な変数である。
(5)ステップB5
また、TCP送信処理装置4は、アプリケーション処理装置からの要求が「SYN」、「FIN」、「RST」であったり、もしくは、コネクション開設通知、切断通知であったりした場合、該当TCPセッションの内部ステートを、「CLOSED」から「SYN」、もしくは、「ESTABLISHED」から「FIN_WAIT_1」等に遷移する。
(6)ステップB6
TCP送信処理装置4は、ステート遷移があった場合、TCPステート遷移に伴う制御情報(例えば、更新後のTCPステート情報)を、制御情報転送装置6に送る。
(7)ステップB7
その後、TCP送信処理装置4は、TCPパケットを生成し、パケット出力装置2を経由して対向ホストに送信し、送信処理を完了する。
図4を参照して、制御情報転送装置6での制御情報のキューへの振り分け処理について説明する。
(1)ステップC1
TCP受信処理装置3、もしくは、TCP送信処理装置4は、制御情報を、制御情報転送装置6に送る。
(2)ステップC2
制御情報転送装置6は、送られてきた制御情報がTCPステート遷移に伴う制御情報であるか確認する。
(3)ステップC3
制御情報転送装置6は、送られてきた制御情報がTCPステート遷移に伴う制御情報であれば、第1制御情報優先制御部61、もしくは、第2制御情報優先制御部62を経由して高優先キュー63に転送する。高優先キュー63は、転送された制御情報を、第2制御情報優先制御部62、もしくは、第1制御情報優先制御部61に送る。
(4)ステップC4
制御情報転送装置6は、送られてきた制御情報がその他の制御情報であるか確認する。
(5)ステップC5
制御情報転送装置6は、送られてきた制御情報がその他の制御情報であれば、第1制御情報優先制御部61、もしくは、第2制御情報優先制御部62を経由して低優先キュー64に転送する。低優先キュー64は、転送された制御情報を、第2制御情報優先制御部62、もしくは、第1制御情報優先制御部61に送る。
このとき、制御情報転送装置6は、送られてきた制御情報がTCPステート遷移に伴う制御情報でなければ、無条件に、送られてきた制御情報がその他の制御情報であると判定するようにしても良い。
図5を参照して、制御情報転送装置6でのキューからの情報取得処理について説明する。
(1)ステップD1
第2制御情報優先制御部62、もしくは、第1制御情報優先制御部61は、高優先キュー63をモニタ(監視)し、高優先キュー63に制御情報が到着しているか確認する。
(2)ステップD2
第2制御情報優先制御部62、もしくは、第1制御情報優先制御部61は、高優先キュー63に制御情報が到着していたら、高優先キュー63の制御情報を取得する。
(3)ステップD3
第2制御情報優先制御部62、もしくは、第1制御情報優先制御部61は、低優先キュー64をモニタし、低優先キュー64に制御情報が到着しているか確認する。
(4)ステップD4
第2制御情報優先制御部62、もしくは、第1制御情報優先制御部61は、低優先キュー64に制御情報が到着していたら、低優先キュー64の制御情報を取得する。
(5)ステップD5
第2制御情報優先制御部62、もしくは、第1制御情報優先制御部61は、取得された制御情報に基づいて、TCP受信処理装置3、もしくは、TCP送信処理装置4の内部変数を更新する。
なお、第2制御情報優先制御部62、もしくは、第1制御情報優先制御部61は、高優先キュー63と低優先キュー64のどちらにも制御情報が到着していた場合、高優先キュー63を優先する。
次に、本実施形態の効果について説明する。
本実施形態では、送信処理と受信処理を別ブロックに分割し、送信処理と受信処理の必要とする変数をキューを介して受け渡す。これにより、送信処理と受信処理が独立して非同期動作を行う事が出来る。従来のTCPスタックでは、送信処理で使われる変数が受信処理により更新される等、変数が送信側と受信側で入り組んでいるために送信処理と受信処理の分割が出来なかった。そのため、データを送信中に対向ホストからパケットを受信すると、その間は、送信処理を行うことが出来なかった。本実施形態により、データ送信中に外部からデータを受信しても送信処理は、その影響を受けずに従来技術より高速に処理することが出来る。
また、本実施形態では、TCP送信処理装置とTCP受信処理装置の間の制御情報転送に優先順位を設け、TCPステート遷移に関わる制御を優先的に転送するようにしている。これにより、セッションの開設・切断処理に伴う制御情報が他セッションのTCPデータ転送の際に通知される制御情報のトラヒック(Traffic:転送量)の影響を受けずに、従来技術より高速にTCPのセッション開設・切断処理が行うことが可能となる。
例えば、双方向データ転送時に、対向ホストからパケットP1〜PNのN個のTCPパケットが到着したとする。また、同時にアプリケーションから同一のセッションのパケットQ1〜QMのM個のTCPパケットに相当するTCPデータの送出要求があったとする。
従来では、TCP受信処理装置3及びTCP送信処理装置4が分割されていなかったため、パケットP1〜PNの受信処理の間は、パケットQ1〜QMの送出処理が出来なかった。
それに対し、本実施形態では、TCP受信処理装置は、パケットP1〜PNが到着すると、TCPパケット受信処理後、パケットP1〜PNのTCP処理によって更新されたN組の「rcv_nxt」、「rcv_wnd」、「rcv_up」、「snd_una」、及び輻輳ウィンドウの更新通知を、制御情報として制御情報転送装置6に送る。制御情報転送装置6は、これらの変数がTCPステート遷移に関わらない情報であるため、低優先キュー64を経由してTCP送信処理装置に送り、TCP送信処理装置の変数を更新する。その際に、TCP送信処理装置は、アプリケーション処理装置からTCPデータのTCP送信処理を要求されていれば、TCPデータのTCP送信処理を行う。
また、例えば、セッション開閉の高速処理時において、I個のセッションでTCPデータ送受信の転送中にアプリケーション処理装置から新規コネクション開設要求が通知された場合、従来のようにTCP受信処理装置とTCP送信処理装置が分割されておらず、単一のキューで接続されているとすると、パケット処理により更新された制御情報のトラヒックの影響を受けてコネクション開設要求に伴うTCPステート遷移に関わる制御情報の転送が遅れる事になる。
本実施形態では、TCPステート遷移に関わる制御情報は、別の経路(高優先キュー63)で処理されるため、予め張られていたI個のTCPセッションのデータ送受信に関わるトラヒックの影響を受けず、優先制御を行わない場合に比べて高速にTCPセッションの開閉処理を行う事が可能となる。
<第2実施形態>
次に、本発明の第2実施形態について説明する。
図6に示すように、本発明の第2実施形態におけるネットワークプロトコル処理システムは、制御情報転送装置6が、図1に示された第1実施形態における制御情報転送装置6の構成に対し、低優先キュー64の代わりにN個の低優先サブキュー65(65−i、i=1〜N)を有する点と、優先情報保持部7を有する点で異なる。
図6を参照すると、本発明の第2実施形態におけるネットワークプロトコル処理システムは、パケット入力装置1と、パケット出力装置2と、TCP(Transmission Control Protocol)受信処理装置3と、TCP送信処理装置4と、アプリケーション処理装置5と、制御情報転送装置6と、優先情報保持部7を含む。
パケット入力装置1、パケット出力装置2、TCP受信処理装置3、TCP送信処理装置4、及びアプリケーション処理装置5は、基本的に第1実施形態と同様である。
制御情報転送装置6は、制御情報を受信すると、TCPセッション情報をキーにしてTCPセッションに対応する優先レベルを示す情報を取得する。
制御情報転送装置6は、第1制御情報優先制御部61と、第2制御情報優先制御部62と、高優先キュー63と、低優先サブキュー65(65−i、i=1〜N)を備える。
第1制御情報優先制御部61、第2制御情報優先制御部62、及び高優先キュー63は、基本的に第1実施形態と同様である。
低優先サブキュー65(65−i、i=1〜N)は、高優先キュー63及び低優先キュー64と同じく、TCP受信装置3からTCP送信装置4への制御情報を格納するキュー(第一のキュー)と、TCP送信装置4からTCP受信装置3への制御情報を格納するキュー(第二のキュー)の対を備える。また、低優先サブキュー65(65−i、i=1〜N)は、これらのキューに、TCP受信処理装置3とTCP送信処理装置4の間で転送される制御情報を格納する。低優先サブキュー65(65−i、i=1〜N)は、N種類の優先レベルに応じて振り分けられた制御情報を格納する。本実施形態では、優先レベル1が最も優先度が高く、優先レベルNが最も優先度が低いものとする。同一の優先レベルのTCPセッションのパケット処理により更新された制御情報は、同一の低優先サブキューを経由してTCP受信処理装置3とTCP送信処理装置4の間で転送される。
なお、低優先サブキュー65(65−i、i=1〜N)は、物理的に独立した記憶領域に限らず、仮想的に分割された記憶領域でも良い。例えば、低優先サブキュー65(65−i、i=1〜N)は、低優先キュー64の記憶領域を仮想的に複数の記憶領域に分割したものでも良い。この場合、低優先キュー64は、低優先サブキュー65(65−i、i=1〜N)を含む。
優先情報保持部7は、TCPセッションに対応した優先レベルを示す情報を保持する。ここでは、優先情報保持部7は、保持された優先レベルを示す情報を、第1制御情報優先制御部61、及び第2制御情報優先制御部62に提供する。
次に、本発明の第2実施形態の動作について詳細に説明する。
なお、本実施形態において、TCP受信処理及びTCP送信処理は、第1実施形態の図2、図3のフローと同一である。また、制御情報伝達装置7の図7のステップC1〜ステップC4は、第1実施形態の図4のステップC1〜ステップC4と同一である。図8のステップD1、ステップD2、ステップD5は、第1実施形態の図5のステップD1、ステップD2、ステップD5と同一である。
図7を参照して、制御情報転送装置6での制御情報のキューへの振り分け処理について説明する。
(1)ステップC1
TCP受信処理装置3、もしくは、TCP送信処理装置4は、制御情報を、制御情報転送装置6に送る。
(2)ステップC2
制御情報転送装置6は、送られてきた制御情報がTCPステート遷移に伴う制御情報であるか確認する。
(3)ステップC3
制御情報転送装置6は、送られてきた制御情報がTCPステート遷移に伴う制御情報であれば、第1制御情報優先制御部61、もしくは、第2制御情報優先制御部62を経由して高優先キュー63に転送する。高優先キュー63は、転送された制御情報を、第2制御情報優先制御部62、もしくは、第1制御情報優先制御部61に送る。
(4)ステップC4
制御情報転送装置6は、送られてきた制御情報がその他の制御情報であるか確認する。
(5)ステップC6(第2実施形態での変更部分)
制御情報転送装置6は、パケット処理により、制御情報を、TCPセッションに対応付けられた優先レベルに基づいて、優先レベルに対応付けられた低優先サブキューに振り分ける。なお、制御情報転送装置6は、送られてきた制御情報がTCPステート遷移に関わる制御情報ではなかった場合、TCPセッション情報をキーとして優先情報保持部7からTCPセッションに対応するN種類の優先レベルを示す情報を取得する。このとき、制御情報転送装置6は、優先情報保持部7に該当するエントリが無かった場合、一番低い優先レベルのNを割り当てる。
(6)ステップC7(第2実施形態での変更部分)
制御情報転送装置6は、取得されたN種類の優先レベルに対応した低優先サブキュー65(65−i、i=1〜N)に制御情報を振り分ける。低優先サブキュー65(65−i、i=1〜N)は、振り分けられた制御情報を、第2制御情報優先制御部62、もしくは、第1制御情報優先制御部61に送る。
このとき、制御情報転送装置6は、送られてきた制御情報がTCPステート遷移に伴う制御情報でなければ、無条件に、送られてきた制御情報がその他の制御情報であると判定するようにしても良い。
第1実施形態では、制御情報転送装置6は、パケット処理により更新された制御情報を全て同一の低優先キュー64に転送していた。本実施形態では、制御情報転送装置6は、パケット処理により制御情報をTCPセッションに対応付けられた優先レベルに基づいて、優先レベルに対応付けられた低優先サブキューに振り分ける。ここで、制御情報転送装置6は、受信した制御情報がTCPステート遷移に関わる制御情報ではなかった場合、TCPセッション情報をキーとして優先情報保持部7からTCPセッションに対応するN種類の優先レベルを示す情報を取得する。また、制御情報転送装置6は、優先情報保持部7に該当するエントリが無かった場合、一番低い優先レベルのNを割り当てる。続いて、制御情報転送装置6は、取得したN種類の優先レベルに対応した低優先サブキュー65(65−i、i=1〜N)に制御情報を振り分ける。
図8を参照して、制御情報転送装置6でのキューからの情報取得処理について説明する。
(1)ステップD1
第2制御情報優先制御部62、もしくは、第1制御情報優先制御部61は、高優先キュー63をモニタし、高優先キュー63に制御情報が到着しているか確認する。
(2)ステップD2
第2制御情報優先制御部62、もしくは、第1制御情報優先制御部61は、高優先キュー63に制御情報が到着していたら、高優先キュー63の制御情報を取得する。
(3)ステップD6(第2実施形態での変更部分)
第2制御情報優先制御部62、もしくは、第1制御情報優先制御部61は、低優先サブキュー65(65−i、i=1〜N)をモニタし、低優先サブキュー65(65−i、i=1〜N)に制御情報が到着しているか低優先サブキュー65−1から低優先サブキュー65−Nまで順番に確認する。
(4)ステップD7(第2実施形態での変更部分)
第2制御情報優先制御部62、もしくは、第1制御情報優先制御部61は、低優先サブキュー65(65−i、i=1〜N)の複数のキューに制御情報が到着していれば、優先レベルの高い低優先サブキューから優先的に制御情報を取得する。
(5)ステップD5
第2制御情報優先制御部62、もしくは、第1制御情報優先制御部61は、取得された制御情報に基づいて、TCP受信処理装置3、もしくは、TCP送信処理装置4の内部変数を更新する。
なお、第2制御情報優先制御部62、もしくは、第1制御情報優先制御部61は、高優先キュー63と低優先サブキュー65(65−i、i=1〜N)のいずれにも制御情報が到着していた場合、高優先キュー63を優先する。
本実施形態では、第2制御情報優先制御部62、もしくは、第1制御情報優先制御部61は、キューからの情報取得時に、高優先キュー63に制御情報が無かった場合、低優先サブキュー65(65−i、i=1〜N)に制御情報が到着しているか低優先サブキュー65−1から低優先サブキュー65−Nまで順番に確認し、複数のキューに制御情報が到着していれば、優先レベルの高い低優先サブキューから優先的に制御情報を取得し内部処理の変数を更新する。
例えば、I個のTCPセッションが同時に張られているものとする。このうちI番目のTCPセッションが優先情報保持部7に優先レベル1と記録されていたとする。I個のTCPセッションの各々では、データ受信時には、パケット受信処理により更新された制御情報がTCP受信処理装置3から制御情報転送装置6に送られる。この時、I番目のTCPセッションのみ、制御情報が低優先サブキュー65−1を経由して転送される。その他の制御情報は、優先情報保持部7にエントリが存在しないため、低優先サブキュー65−Nを経由して転送される。TCP送信処理部4では、低優先サブキュー65−1に到着した制御情報が低優先サブキュー65−Nより優先的に処理されることにより、I番目のTCPセッションの受信処理の変数が他セッションの受信処理の変数より早く送信側に反映される。
本実施形態では、高い優先レベルに対応付けられたTCPセッションの制御情報が優先的に更新される。これにより、優先レベルの高いセッションは、他のセッションに比べ、優先された時間の差分だけ確認応答番号の更新が早くなる。その結果、優先レベルの高いセッションは、他TCPセッションより送信ウィンドウの立ち上がりが早くなり、スループット増加率が他セッションに比べて高くなる。
<第3実施形態>
次に、本発明の第3実施形態について詳細に説明する。
本実施形態では、本発明のネットワークプロトコル処理用プログラムについて説明する。ネットワークプロトコル処理用プログラムは、コンピュータをネットワークプロトコル処理システムとして機能させる。
図9を参照すると、本発明の第3実施形態におけるネットワークプロトコル処理システムは、ネットワークプロトコル処理用プログラム11と、パケット入力装置12と、パケット出力装置13と、主記憶メモリ14と、データバス制御部15と、プロセッサ100を含む。
ネットワークプロトコル処理プログラム11は、プロセッサ100の動作を制御するためのプログラムである。ネットワークプロトコル処理プログラム11は、プロセッサ100に読み込まれる。なお、ネットワークプロトコル処理用プログラム11は、記憶媒体に記憶することが可能である。
パケット入力装置12は、外部からのパケットの受信処理を行う。なお、パケット入力装置12は、パケット入力装置1に相当する。
パケット出力装置13は、外部へのパケットの送信処理を行う。なお、パケット出力装置13は、パケット出力装置2に相当する。
主記憶メモリ14は、送受信パケットデータを保持する。
データバス制御部15は、送受信パケットデータを主記憶メモリ14へ転送し、プロセッサ100から主記憶メモリ14へのアクセスの中継を行う。
プロセッサ100は、ネットワークプロトコル処理用プログラム11を実行する。
プロセッサ100は、プロセッサコア101と、プロセッサコア102と、プロセッサコア103と、共有メモリ104を備える。
プロセッサコア101、プロセッサコア102、及びプロセッサコア103は、共有メモリ104に対して、読み書きが可能である。
プロセッサ100は、ネットワークプロトコル処理用プログラム11の制御により、第1実施形態及び第2実施形態における、TCP受信処理装置3と制御情報転送装置6の受信処理装置側と同一の機能をプロセッサコア101と共有メモリ104にて実行し、TCP送信処理装置4と制御情報転送装置6の送信処理装置側と同一の機能をプロセッサコア102と共有メモリ104にて実行し、アプリケーション処理装置5と同一の機能をプロセッサコア103にて実行する。
すなわち、プロセッサコア101は、ネットワークプロトコル処理用プログラム11の制御により、共有メモリ104を用いて、第1実施形態及び第2実施形態における、TCP受信処理装置3と制御情報転送装置6の受信処理装置側と同一の機能を実行する。
また、プロセッサコア102は、ネットワークプロトコル処理用プログラム11の制御により、共有メモリ104を用いて、第1実施形態及び第2実施形態における、TCP送信処理装置4と制御情報転送装置6の受信処理装置側と同一の機能を実行する。
また、プロセッサコア103は、ネットワークプロトコル処理用プログラム11の制御により、共有メモリ104を用いて、第1実施形態及び第2実施形態における、アプリケーション処理装置5と同一の機能を実行する。
また、共有メモリ104は、第1実施形態及び第2実施形態における高優先キュー63及び低優先キュー64もしくは低優先サブキュー65(65−i、i=1〜N)に相当する記憶領域を有する。プロセッサコア101とプロセッサコア102の間を転送する制御情報は、これらの記憶領域を介して転送される。
図10を参照して、本発明の第3実施形態でのTCPの受信時の動作について説明する。
(1)ステップE1
パケット入力装置12は、対向ホストから送られたTCPパケットを受信し、データバス制御部15を経由して主記憶メモリ14に記憶する。
(2)ステップE2
プロセッサコア101は、データバス制御部15を経由して主記憶メモリ14に記憶されたTCPパケットを取得し、TCP受信処理である図2のステップA1〜A7の処理を実施する。
(3)ステップE3
プロセッサコア101は、キューへの振り分け処理である図4もしくは図7のC1〜C7の処理を実施する。
(4)ステップE4
プロセッサコア101は、キューからの情報取得処理である図5もしくは図8のD1〜D7の処理を実施する。
(5)ステップE5
プロセッサコア101は、TCP受信処理後、TCP送信処理やコネクション開閉に必要な変数が更新されているか確認する。
(6)ステップE6
プロセッサコア101は、TCP送信処理やコネクション開閉に必要な変数が更新されていれば、共有メモリ104に確保されたキューに相当する記憶領域に書き込む。
(7)ステップE7
また、プロセッサコア101は、共有メモリ104のキューに相当する記憶領域にデータが到着しているか確認する。
(8)ステップE8
プロセッサコア101は、共有メモリ104のキューに相当する記憶領域にデータが到着していれば、そのデータを取得し、TCP受信パラメータの更新処理を実施する。
(9)ステップE9
プロセッサコア101は、TCP処理結果をプロセッサコア103に通知し、受信処理を完了する。
本実施形態では、パケット入力装置12は、対向ホストから送られたTCPパケットを受信する。プロセッサコア101は、このTCPパケットに基づいて、TCP受信処理である図2のステップA1〜A7の処理と、キューへの振り分け処理である図4もしくは図7のC1〜C7の処理と、キューからの情報取得処理である図5もしくは図8のD1〜D7の処理を実施する。プロセッサコア101は、TCP受信処理後、TCP送信処理やコネクション開閉に必要な変数が更新されていれば、共有メモリ104に確保されたキューに相当する記憶領域に書き込む。逆に、プロセッサコア101は、共有メモリ104のキューに相当する記憶領域にデータが到着していれば、そのデータを取得し、TCP受信パラメータの更新処理を実施する。その後、プロセッサコア101は、TCP処理結果をプロセッサコア103に通知し、受信処理を完了する。
図11を参照して、本実施形態でのTCPの送信時の動作について説明する。
(1)ステップF1
プロセッサコア103は、送出対象のTCPデータを、プロセッサコア102に送る。すなわち、プロセッサコア102は、プロセッサコア103から送出対象のTCPデータを取得する。
(2)ステップF2
プロセッサコア102は、TCP送信処理である図3のステップB1〜B7の処理を実施する。
(3)ステップF3
プロセッサコア102は、キューへの振り分け処理である図4もしくは図7のC1〜C7の処理を実施する。
(4)ステップF4
プロセッサコア102は、キューからの情報取得処理である図5もしくは図8のD1〜D7の処理を実施する。
(5)ステップF5
プロセッサコア102は、TCP送信処理後、TCP受信処理やコネクション開閉に必要な変数が更新されているか確認する。
(6)ステップF6
プロセッサコア102は、TCP受信処理やコネクション開閉に必要な変数が更新されていれば、共有メモリ104に確保されたキューに相当する記憶領域に書き込む。
(7)ステップF7
また、プロセッサコア102は、共有メモリ104のキューに相当する記憶領域にデータが到着しているか確認する。
(8)ステップF8
プロセッサコア102は、共有メモリ104のキューに相当する記憶領域にデータが到着していれば、そのデータを取得し、TCP送信パラメータの更新処理を実施する。
(9)ステップF9
プロセッサコア102は、生成されたTCPパケットを、パケット出力装置13を経由して対向ホストに送信し、送信処理を完了する。
本実施形態では、送出するTCPデータは、プロセッサコア103からプロセッサコア102に送られる。プロセッサコア102は、TCP送信処理である図3のステップB1〜B7の処理と、キューへの振り分け処理である図4もしくは図7のC1〜C7の処理と、キューからの情報取得処理である図5もしくは図8のD1〜D7の処理を実施する。プロセッサコア102は、TCP送信処理後、TCP受信処理やコネクション開閉に必要な変数が更新されていれば、共有メモリ104に確保されたキューに相当する記憶領域に書き込む。逆に、プロセッサコア102は、共有メモリ104のキューに相当する記憶領域にデータが到着していれば、そのデータを取得し、TCP送信パラメータの更新処理を実施する。その後、プロセッサコア102は、生成されたTCPパケットをパケット出力装置13を経由して対向ホストに送信し、送信処理を完了する。
以上、第1実施形態、第2実施形態、及び第3実施形態では、TCPの送信処理部と受信処理部の分割と、制御情報の分割について記載したが、送信ウィンドウが確認応答の受信によって決定されるネットワークロトコルであれば、TCPでなくても良い。例えば、SCTP(Stream Control Transmission Protocol)や、XCP(eXplicit Control Protocol)等のネットワークプロトコルに対しても本実施形態は、適用可能である。
最後に、本発明の特徴について詳述する。
本発明のネットワークプロトコル処理システムは、TCP(Transmission Control Protocol)を始めとする送信処理と受信処理のプロトコル処理変数が相互に依存するプロトコル処理を行う。
当該ネットワークプロトコル処理システムは、パケット入力装置と、TCP受信処理装置と、パケット出力装置と、TCP送信処理装置と、アプリケーション処理装置と、制御情報転送装置を備える。
TCP受信処理装置は、パケット入力装置を経由して対向ホストから到着した受信パケットに対して、受信プロトコル処理を行う。TCP受信処理装置は、更新された制御情報のうち、TCP送信処理に必要な制御情報を、制御情報転送装置に転送する。TCP受信処理装置は、受信プロトコル処理により再構築されたTCPデータを、アプリケーション処理装置に送る。
TCP送信処理装置は、アプリケーション処理装置から送信要求があった送信データに対して、送信プロトコル処理を行う。TCP送信処理装置は、更新された制御情報のうち、TCP受信処理に必要な制御情報を、制御情報転送装置に転送する。TCP送信処理装置は、送信プロトコル処理により生成されたTCPパケットを、パケット出力装置を経由して対向ホストに送出する。
制御情報転送装置は、内部にTCP受信処理装置からTCP送信処理装置へ送出する制御情報を格納する第一のキューと、TCP送信処理装置からTCP受信処理装置への制御情報を格納する第二のキューを備える。
制御情報転送装置は、TCP受信処理装置から送られてきた制御情報を第一のキューに格納する。
TCP送信処理装置は、第一のキューをモニタし、第一のキューに制御情報が格納されていると、第一のキューから制御情報を取り出し、この制御情報に基づいて、TCP送信処理の変数を更新する。
制御情報転送装置は、TCP送信処理装置から送られてきた制御情報を第二のキューに格納する。
TCP受信処理装置は、第二のキューをモニタし、第二のキューに制御情報が格納されていると、第二のキューから制御情報を取り出し、この制御情報に基づいて、TCPの受信処理の変数を更新する。
ネットワークプロトコル処理システムの制御情報転送装置は、第一のキューと第二のキューにより形成されるキューの対を複数備える。この制御情報転送装置は、TCP受信処理装置、もしくは、TCP送信処理装置から制御情報転送装置に送られる制御情報の種別によって格納するキューの対を選択する。
或いは、ネットワークプロトコル処理システムの制御情報転送装置は、各々が第一のキューと第二のキューを含む高優先キューと低優先キューの対を備える。この制御情報転送装置は、ネットワークセッションのセッション開設やセッション切断に関わる情報を高優先キューに格納し、それ以外の制御情報を低優先キューに格納し、キューから取り出す際、低優先キューより高優先キューに格納された制御情報を優先して処理する。
或いは、ネットワークプロトコル処理システムの制御情報転送装置は、優先レベルに対応付けられた低優先サブキューの対を複数個備える。また、この制御情報転送装置は、ネットワークセッションに対応する優先レベルの情報を保持する優先情報保持部を備える。
このとき、制御情報転送装置は、TCP受信処理装置及びTCP送信処理装置から送られてきた制御情報が属するネットワークセッションの情報を基に優先情報保持部からネットワークセッションに対応する優先レベルの情報を取得して、優先レベルに対応付けられた低優先サブキューに制御情報を格納する。この制御情報転送装置は、キューから取り出す際、高い優先レベルに対応付けられた低優先サブキューに格納された制御情報を優先して処理する。
或いは、ネットワークプロトコル処理システムの制御情報転送装置は、高優先のキューと、それ以外の優先レベルに対応付けられた低優先サブキューの対を複数備える。また、この制御情報転送装置は、ネットワークセッションに対応する優先レベルの情報を保持する優先情報保持部を備える。
このとき、制御情報転送装置は、TCP受信処理及びTCP送信装置から送られてきた制御情報のうち、ネットワークセッションのセッション開設やセッション切断に関わる制御情報を高優先キューに格納する。また、この制御情報転送装置は、それ以外の制御情報については、制御情報が属するネットワークセッションの情報を基に優先情報保持部からネットワークセッションに対応する優先レベルを示す情報を取得して、優先レベルに対応付けられた低優先サブキューに制御情報を格納する。
また、制御情報転送装置は、制御情報をキューから取り出す際、高優先キューに格納された制御情報を最優先で処理する。また、この制御情報転送装置は、それ以外のキューに格納された制御情報については、高い優先レベルに対応付けられた低優先サブキューに格納された制御情報を優先して処理する。
以上のように、本発明は、TCP(Transmission Control Protocol)を始めとする送信処理と受信処理のプロトコル処理の変数が相互に依存するネットワークプロトコル処理システムにおいて、ネットワークプロトコルの送信部と受信部を分割する。
従来、TCP等の送信処理の変数と受信処理の変数が相互に依存するネットワークプロトコル通信システムでは、更新されたプロトコル処理の送信処理ブロックと受信処理ブロックの非同期並列処理が実現出来なかった。また、セッション開閉処理が他セッションのネットワークのデータ送受信処理の影響を受けるという課題があった。
そのため、本発明のネットワークプロトコル処理システムは、TCP送信処理ブロックの受信処理ブロックの間に高優先で処理される制御情報を転送する高優先キューと、それ以外の制御情報を転送する低優先キューと、制御情報を2種類のキューへ振り分ける優先制御手段を有する。優先制御手段は、TCPデータ転送中に新規TCPセッションの開設・切断要求がアプリケーションから発行された場合、開設・切断要求の情報を、高優先キューを経由して優先的に通知し、それ以外の制御情報を、低優先キューを経由して通知する。
本発明の第1のネットワークプロトコル処理システムは、TCP送信処理ブロックの受信処理ブロックの間にセッション開閉に関わる制御情報を転送する高優先キューと、それ以外の制御情報であるパケット処理により更新された制御情報を転送する低優先キューと、制御情報を2種類のキューへ振り分ける優先制御手段を有する。また、優先制御手段は、2種類のキューのうち、高優先キューに格納された制御情報を優先して取り出し、転送先のTCP処理の変数を更新する。
本発明の第2のネットワークプロトコル処理システムは、第1のネットワークプロトコル処理システムのTCP送信処理ブロックと受信処理ブロックの間に低優先キューの代わりに複数の低優先サブキューを有する。また、優先制御手段は、TCPデータ送受信時のパケット処理により更新された制御情報の振り分け先となる低優先サブキューをTCPセッションに対応付けられた優先度に応じて選択する。
本発明では、TCPを始めとするネットワークプロトコルの送信処理と受信処理のプロトコル処理の変数が相互に依存するネットワークシステムにおいて送信処理と受信処理を非同期並列処理するネットワークプロトコル処理システム、ネットワークプロトコル処理方法、及びネットワークプロトコル処理用プログラムを提供する。
また、ネットワークのデータ送受信処理中であってもセッション開閉処理を高速に実行出来るネットワークプロトコル処理システム、ネットワークプロトコル処理方法、及びネットワークプロトコル処理用プログラムを提供する。
更に、優先度の高いネットワークセッションのデータ転送性能を選択的に向上させるネットワークプロトコル処理システム、ネットワークプロトコル処理方法、及びネットワークプロトコル処理用プログラムを提供する。
本発明の第1の効果は、TCP送信処理ブロックと受信処理ブロック間で非同期並列処理を行うことが可能となることである。その理由は、TCP送信処理ブロックと受信処理ブロック間で受け渡される制御情報がキューを介して通知されるからである。
本発明の第2の効果は、TCP送信処理ブロックと受信処理ブロックの間で制御情報の優先制御が行われていない場合と比較してTCPセッションの開設・切断が高速に実行出来ることである。その理由は、TCPセッションの開設・切断の通知が専用のキューで処理されるため、他のTCPセッションのパケット処理により更新された制御情報の影響を受けないからである。
本発明の第3の効果は、複数セッションのデータ転送の際に優先度の高いTCPセッションのスループットを選択的に向上させることである。その理由は、優先度の高いTCPセッションで更新された制御情報を送信処理ブロックと受信処理ブロックの間で優先的に転送させることで、優先度の高いセッションのTCPの確認応答(ACK)処理が優先的に行われるためである。
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものでは無く、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
なお、本出願は、日本出願番号2008−241816に基づく優先権を主張するものであり、日本出願番号2008−241816における開示内容は引用により本出願に組み込まれる。

Claims (16)

  1. TCP(Transmission Control Protocol)に基づく送信処理と受信処理の各々の制御情報に使用されるプロトコル処理変数が相互に依存するプロトコル処理を行う制御情報転送装置と、
    対向ホストから到着した受信パケットに対して受信プロトコル処理を行い、前記受信プロトコル処理により更新された制御情報のうちTCP送信処理で使用される制御情報を前記制御情報転送装置に送り、前記受信プロトコル処理により再構築されたTCPデータをアプリケーション処理装置に送るTCP受信処理装置と、
    前記アプリケーション処理装置から送信要求があった送信データに対して送信プロトコル処理を行い、前記送信プロトコル処理により更新された制御情報のうちTCP受信処理で使用される制御情報を前記制御情報転送装置に送り、前記送信プロトコル処理により生成されたTCPパケットを対向ホストに送出するTCP送信処理装置と
    を含み、
    前記制御情報転送装置は、
    前記TCP受信処理装置から送られてきた制御情報を第一のキューに格納する手段と、
    前記TCP送信処理装置から送られてきた制御情報を第二のキューに格納する手段と
    を具備し、
    前記TCP送信処理装置は、
    前記第一のキューをモニタし、前記第一のキューに制御情報が格納されている場合、前記第一のキューから制御情報を取り出してTCP送信処理の変数を更新する手段と、
    前記第二のキューをモニタし、前記第二のキューに制御情報が格納されている場合、前記第二のキューから制御情報を取り出してTCPの受信処理の変数を更新する手段と
    を具備する
    ネットワークプロトコル処理システム。
  2. 請求の範囲1に記載のネットワークプロトコル処理システムであって、
    前記制御情報転送装置は、
    前記第一のキュー及び前記第二のキューにより形成されるキューの対が複数存在する場合、前記TCP受信処理装置及びTCP送信処理装置のいずれか一方から前記制御情報転送装置に送られてきた制御情報の種別に応じて、送られてきた制御情報を格納するキューの対を選択する手段
    を更に具備する
    ネットワークプロトコル処理システム。
  3. 請求の範囲1又は2に記載のネットワークプロトコル処理システムであって、
    前記制御情報転送装置は、
    前記第一のキュー及び前記第二のキューにより形成されるキューの対を持つ高優先キューと、
    前記第一のキュー及び前記第二のキューにより形成されるキューの対を持つ低優先キューと、
    ネットワークセッションのセッション開設及びセッション切断に関わる制御情報を、前記高優先キューに格納する手段と、
    他の制御情報を、前記低優先キューに格納する手段と、
    前記高優先キュー及び前記低優先キューから制御情報を取り出す際、前記低優先キューに格納された制御情報よりも前記高優先キューに格納された制御情報を優先して処理する手段と
    を更に具備する
    ネットワークプロトコル処理システム。
  4. 請求の範囲3に記載のネットワークプロトコル処理システムであって、
    前記制御情報転送装置は、
    前記低優先キューに相当し、それぞれ優先レベルに対応付けられた複数の低優先サブキューと、
    ネットワークセッションに対応する優先レベルの情報を保持する優先情報保持手段と、
    前記TCP受信処理装置及び前記TCP送信処理装置から送られてきた制御情報が属するネットワークセッションの情報を基に、前記優先情報保持手段から制御情報が属するネットワークセッションに対応する優先レベルの情報を取得する手段と、
    前記複数の低優先サブキューのうち、当該優先レベルに対応付けられた低優先サブキューに、送られてきた制御情報を格納する手段と、
    前記複数の低優先サブキューから制御情報を取り出す際、対応付けられている優先レベルの高い順に、前記各低優先サブキューに格納された制御情報を処理する手段と
    を更に具備する
    ネットワークプロトコル処理システム。
  5. 請求の範囲4に記載のネットワークプロトコル処理システムであって、
    前記制御情報転送装置は、
    TCP受信処理及びTCP送信装置から送られてきた制御情報のうち、前記ネットワークセッションのセッション開設及びセッション切断に関わる制御情報を前記高優先キューに格納する手段と、
    前記他の制御情報を、前記他の制御情報が属するネットワークセッションの情報を基に、前記優先情報保持手段から前記他の制御情報が属するネットワークセッションに対応する優先レベルの情報を取得する手段と、
    前記複数の低優先サブキューのうち、当該優先レベルに対応付けられた低優先サブキューに格納する手段と、
    前記複数の低優先サブキューから制御情報を取り出す際、前記高優先キューに格納された制御情報を最優先で処理する手段と、
    前記複数の低優先サブキューに格納された制御情報を、対応付けられている優先レベルの高い順に処理する手段と
    を更に具備する
    ネットワークプロトコル処理システム。
  6. 請求の範囲1乃至5のいずれかに記載のネットワークプロトコル処理システムで使用される制御情報転送装置。
  7. 対向ホストに接続されたコンピュータ上で実施されるネットワークプロトコル処理方法であって、
    TCP(Transmission Control Protocol)に基づく送信処理と受信処理の各々の制御情報に使用されるプロトコル処理変数が相互に依存するプロトコル処理を行うことと、
    対向ホストから到着した受信パケットに対して受信プロトコル処理を行い、前記受信プロトコル処理により更新された制御情報のうちTCP送信処理で使用される制御情報を第一のキューに格納し、前記受信プロトコル処理により再構築されたTCPデータをアプリケーション側に提供することと、
    前記アプリケーション側から送信要求があった送信データに対して送信プロトコル処理を行い、前記送信プロトコル処理により更新された制御情報のうちTCP受信処理で使用される制御情報を第二のキューに格納し、前記送信プロトコル処理により生成されたTCPパケットを対向ホストに送出することと、
    前記第一のキューをモニタし、前記第一のキューに制御情報が格納されている場合、前記第一のキューから制御情報を取り出してTCP送信処理の変数を更新することと、
    前記第二のキューをモニタし、前記第二のキューに制御情報が格納されている場合、前記第二のキューから制御情報を取り出してTCPの受信処理の変数を更新することと
    を含む
    ネットワークプロトコル処理方法。
  8. 請求の範囲7に記載のネットワークプロトコル処理方法であって、
    前記第一のキュー及び前記第二のキューにより形成されるキューの対が複数存在する場合、前記TCP送信処理で使用される制御情報及び前記TCP受信処理で使用される制御情報のいずれかの制御情報の種別に応じて、制御情報を格納するキューの対を選択すること
    を更に含む
    ネットワークプロトコル処理方法。
  9. 請求の範囲7又は8に記載のネットワークプロトコル処理方法であって、
    前記第一のキュー及び前記第二のキューにより形成されるキューの対を持つ高優先キューと、前記第一のキュー及び前記第二のキューにより形成されるキューの対を持つ低優先キューとが存在する場合、ネットワークセッションのセッション開設及びセッション切断に関わる制御情報を、前記高優先キューに格納し、他の制御情報を、前記低優先キューに格納することと、
    前記高優先キュー及び前記低優先キューから制御情報を取り出す際、前記低優先キューに格納された制御情報よりも前記高優先キューに格納された制御情報を優先して処理することと
    を更に含む
    ネットワークプロトコル処理方法。
  10. 請求の範囲9に記載のネットワークプロトコル処理方法であって、
    ネットワークセッションに対応する優先レベルの情報を保持することと、
    前記TCP送信処理で使用される制御情報及び前記TCP受信処理で使用される制御情報が属するネットワークセッションの情報を基に、前記保持されているネットワークセッションに対応する優先レベルの情報のうち、制御情報が属するネットワークセッションに対応する優先レベルの情報を取得することと、
    前記低優先キューに相当し、それぞれ優先レベルに対応付けられた複数の低優先サブキューのうち、当該優先レベルに対応付けられた低優先サブキューに制御情報を格納することと、
    前記複数の低優先サブキューから制御情報を取り出す際、対応付けられている優先レベルの高い順に、前記各低優先サブキューに格納された制御情報を処理することと
    を更に含む
    ネットワークプロトコル処理方法。
  11. 請求の範囲10に記載のネットワークプロトコル処理方法であって、
    前記TCP送信処理で使用される制御情報及び前記TCP受信処理で使用される制御情報のうち、前記ネットワークセッションのセッション開設及びセッション切断に関わる制御情報を前記高優先キューに格納することと、
    前記他の制御情報を、前記他の制御情報が属するネットワークセッションの情報を基に、前記保持されているネットワークセッションに対応する優先レベルの情報のうち、前記他の制御情報が属するネットワークセッションに対応する優先レベルを示す情報を取得して、前記複数の低優先サブキューのうち、当該優先レベルに対応付けられた低優先サブキューに格納することと、
    前記複数の低優先サブキューから制御情報を取り出す際、前記高優先キューに格納された制御情報を最優先で処理し、前記複数の低優先サブキューに格納された制御情報を、対応付けられている優先レベルの高い順に処理することと
    を更に含む
    ネットワークプロトコル処理方法。
  12. TCP(Transmission Control Protocol)に基づく送信処理と受信処理の各々の制御情報に使用されるプロトコル処理変数が相互に依存するプロトコル処理を行うステップと、
    対向ホストから到着した受信パケットに対して受信プロトコル処理を行い、前記受信プロトコル処理により更新された制御情報のうちTCP送信処理で使用される制御情報を第一のキューに格納し、前記受信プロトコル処理により再構築されたTCPデータをアプリケーション側に提供するステップと、
    前記アプリケーション側から送信要求があった送信データに対して送信プロトコル処理を行い、前記送信プロトコル処理により更新された制御情報のうちTCP受信処理で使用される制御情報を第二のキューに格納し、前記送信プロトコル処理により生成されたTCPパケットを対向ホストに送出するステップと、
    前記第一のキューをモニタし、前記第一のキューに制御情報が格納されている場合、前記第一のキューから制御情報を取り出してTCP送信処理の変数を更新するステップと、
    前記第二のキューをモニタし、前記第二のキューに制御情報が格納されている場合、前記第二のキューから制御情報を取り出してTCPの受信処理の変数を更新するステップと
    をコンピュータに実行させるためのプログラムを格納した
    記憶媒体。
  13. 請求の範囲12に記載の記憶媒体であって、
    前記第一のキュー及び前記第二のキューにより形成されるキューの対が複数存在する場合、前記TCP送信処理で使用される制御情報及び前記TCP受信処理で使用される制御情報のいずれかの制御情報の種別に応じて、制御情報を格納するキューの対を選択するステップ
    を更にコンピュータに実行させるためのプログラムを格納した
    記憶媒体。
  14. 請求の範囲12又は13に記載の記憶媒体であって、
    前記第一のキュー及び前記第二のキューにより形成されるキューの対を持つ高優先キューと、前記第一のキュー及び前記第二のキューにより形成されるキューの対を持つ低優先キューとが存在する場合、ネットワークセッションのセッション開設及びセッション切断に関わる制御情報を、前記高優先キューに格納し、他の制御情報を、前記低優先キューに格納するステップと、
    前記高優先キュー及び前記低優先キューから制御情報を取り出す際、前記低優先キューに格納された制御情報よりも前記高優先キューに格納された制御情報を優先して処理するステップと
    を更にコンピュータに実行させるためのプログラムを格納した
    記憶媒体。
  15. 請求の範囲14に記載の記憶媒体であって、
    ネットワークセッションに対応する優先レベルの情報を保持するステップと、
    前記TCP送信処理で使用される制御情報及び前記TCP受信処理で使用される制御情報が属するネットワークセッションの情報を基に、前記保持されているネットワークセッションに対応する優先レベルの情報のうち、制御情報が属するネットワークセッションに対応する優先レベルの情報を取得するステップと、
    前記低優先キューに相当し、それぞれ優先レベルに対応付けられた複数の低優先サブキューのうち、当該優先レベルに対応付けられた低優先サブキューに制御情報を格納するステップと、
    前記複数の低優先サブキューから制御情報を取り出す際、対応付けられている優先レベルの高い順に、前記各低優先サブキューに格納された制御情報を処理するステップと
    を更にコンピュータに実行させるためのプログラムを格納した
    記憶媒体。
  16. 請求の範囲15に記載の記憶媒体であって、
    前記TCP送信処理で使用される制御情報及び前記TCP受信処理で使用される制御情報のうち、前記ネットワークセッションのセッション開設及びセッション切断に関わる制御情報を前記高優先キューに格納するステップと、
    前記他の制御情報を、前記他の制御情報が属するネットワークセッションの情報を基に、前記保持されているネットワークセッションに対応する優先レベルの情報のうち、前記他の制御情報が属するネットワークセッションに対応する優先レベルを示す情報を取得して、前記複数の低優先サブキューのうち、当該優先レベルに対応付けられた低優先サブキューに格納するステップと、
    前記複数の低優先サブキューから制御情報を取り出す際、前記高優先キューに格納された制御情報を最優先で処理し、前記複数の低優先サブキューに格納された制御情報を、対応付けられている優先レベルの高い順に処理するステップと
    を更にコンピュータに実行させるためのプログラムを格納した
    記憶媒体。
JP2010529677A 2008-09-19 2009-07-02 ネットワークプロトコル処理システム、及びネットワークプロトコル処理方法 Withdrawn JPWO2010032533A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2008241816 2008-09-19
JP2008241816 2008-09-19
PCT/JP2009/062086 WO2010032533A1 (ja) 2008-09-19 2009-07-02 ネットワークプロトコル処理システム、及びネットワークプロトコル処理方法

Publications (1)

Publication Number Publication Date
JPWO2010032533A1 true JPWO2010032533A1 (ja) 2012-02-09

Family

ID=42039377

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010529677A Withdrawn JPWO2010032533A1 (ja) 2008-09-19 2009-07-02 ネットワークプロトコル処理システム、及びネットワークプロトコル処理方法

Country Status (3)

Country Link
US (1) US8838782B2 (ja)
JP (1) JPWO2010032533A1 (ja)
WO (1) WO2010032533A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102457537B (zh) 2010-10-19 2015-11-25 阿里巴巴集团控股有限公司 一种传输控制协议的通信方法及服务器
US8819245B2 (en) * 2010-11-22 2014-08-26 Ixia Processor allocation for multi-core architectures
JP6263836B2 (ja) * 2013-01-15 2018-01-24 オムロン株式会社 制御装置および制御方法
EP3032785B1 (en) * 2014-12-12 2022-04-06 Net Insight AB Transport method in a communication network
JP6688122B2 (ja) * 2016-03-28 2020-04-28 キヤノン株式会社 通信装置およびその制御方法
WO2018045065A1 (en) * 2016-08-30 2018-03-08 Qualcomm Incorporated Acknowledgement message prioritization
US10541927B2 (en) * 2016-12-29 2020-01-21 Google Llc System and method for hardware-independent RDMA
CN115695524A (zh) * 2022-10-27 2023-02-03 宝信软件(成都)有限公司 一种上位设备和plc设备的通信方法及介质

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5872919A (en) * 1997-05-07 1999-02-16 Advanced Micro Devices, Inc. Computer communication network having a packet processor with an execution unit which is variably configured from a programmable state machine and logic
US6434620B1 (en) * 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US7167927B2 (en) * 1997-10-14 2007-01-23 Alacritech, Inc. TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism
US7174393B2 (en) * 2000-12-26 2007-02-06 Alacritech, Inc. TCP/IP offload network interface device
US6862622B2 (en) * 1998-07-10 2005-03-01 Van Drebbel Mariner Llc Transmission control protocol/internet protocol (TCP/IP) packet-centric wireless point to multi-point (PTMP) transmission system architecture
US6590885B1 (en) * 1998-07-10 2003-07-08 Malibu Networks, Inc. IP-flow characterization in a wireless point to multi-point (PTMP) transmission system
JP2000349856A (ja) * 1999-06-04 2000-12-15 Canon Inc 通信装置及び通信方法並びに記憶媒体
US6944678B2 (en) * 2001-06-18 2005-09-13 Transtech Networks Usa, Inc. Content-aware application switch and methods thereof
US7464180B1 (en) * 2001-10-16 2008-12-09 Cisco Technology, Inc. Prioritization and preemption of data frames over a switching fabric
US7317683B2 (en) * 2001-11-01 2008-01-08 International Business Machines Corporation Weighted fair queue serving plural output ports
US7496689B2 (en) * 2002-04-22 2009-02-24 Alacritech, Inc. TCP/IP offload device
AU2002328419A1 (en) * 2002-07-01 2004-01-19 Ipsquare Semiconductor circuit device, packet processing method, management system, management method, and packet processing method
WO2004036840A1 (ja) * 2002-10-17 2004-04-29 Matsushita Electric Industrial Co., Ltd. パケット送受信装置
US7287092B2 (en) * 2003-08-11 2007-10-23 Sharp Colin C Generating a hash for a TCP/IP offload device
WO2005057865A1 (ja) * 2003-12-11 2005-06-23 Matsushita Electric Industrial Co., Ltd. パケット送信装置
US7382733B2 (en) * 2004-02-12 2008-06-03 International Business Machines Corporation Method for handling reordered data packets
US7783769B2 (en) * 2004-03-31 2010-08-24 Intel Corporation Accelerated TCP (Transport Control Protocol) stack processing
KR100648837B1 (ko) * 2004-12-08 2006-11-24 한국전자통신연구원 Tcp 프로토콜의 재전송 및 지연확인 타이머 관리 장치및 방법
US20060126640A1 (en) * 2004-12-14 2006-06-15 Sood Sanjeev H High performance Transmission Control Protocol (TCP) SYN queue implementation
US20060140193A1 (en) * 2004-12-29 2006-06-29 Nokia Corporation Optimization of a TCP connection
WO2006111788A1 (en) * 2005-04-21 2006-10-26 Intel Corporation Interrupting transmission of low priority ethernet packets
US8037154B2 (en) * 2005-05-19 2011-10-11 International Business Machines Corporation Asynchronous dual-queue interface for use in network acceleration architecture
US20060274789A1 (en) * 2005-06-07 2006-12-07 Fong Pong Apparatus and methods for a high performance hardware network protocol processing engine
US7719967B2 (en) * 2005-09-28 2010-05-18 Netapp, Inc. Cumulative TCP congestion control
JP4376855B2 (ja) * 2005-10-14 2009-12-02 日本電信電話株式会社 パケット通信品質制御装置
JP4550728B2 (ja) 2005-12-14 2010-09-22 アラクサラネットワークス株式会社 パケット転送装置及びマルチキャスト展開方法
JP5022691B2 (ja) 2006-12-12 2012-09-12 キヤノン株式会社 通信装置、その制御方法及びプログラム
US7593331B2 (en) * 2007-01-17 2009-09-22 Cisco Technology, Inc. Enhancing transmission reliability of monitored data
US7941812B2 (en) * 2007-01-30 2011-05-10 Hewlett-Packard Development Company, L.P. Input/output virtualization through offload techniques
US7711900B2 (en) * 2007-03-05 2010-05-04 International Business Machines Corporation Method, system and program product for equitable sharing of a CAM table in a network switch in an on-demand environment
US8259728B2 (en) * 2007-09-25 2012-09-04 Broadcom Corporation Method and system for a fast drop recovery for a TCP connection
US20090217030A1 (en) * 2008-02-26 2009-08-27 Premkumar J Adaptive server performance adjustment
JP5498889B2 (ja) * 2010-08-06 2014-05-21 アラクサラネットワークス株式会社 パケット中継装置および輻輳制御方法

Also Published As

Publication number Publication date
WO2010032533A1 (ja) 2010-03-25
US20110270976A1 (en) 2011-11-03
US8838782B2 (en) 2014-09-16

Similar Documents

Publication Publication Date Title
WO2010032533A1 (ja) ネットワークプロトコル処理システム、及びネットワークプロトコル処理方法
US20220103661A1 (en) Fabric control protocol for data center networks with packet spraying over multiple alternate data paths
Lu et al. {Multi-Path} transport for {RDMA} in datacenters
KR100716184B1 (ko) 네트워크 프로세서에서의 큐 관리 방법 및 그 장치
US20200169513A1 (en) Fabric control protocol for data center networks with packet spraying over multiple alternate data paths
CN109120544B (zh) 一种数据中心网络中基于主机端流量调度的传输控制方法
US7756990B2 (en) Configurable protocol engine
JP4723586B2 (ja) パケットのキューイング、スケジューリングおよび順序づけ
JP4511174B2 (ja) Tcp/ipを使用した高速度データ送信システムおよび方法
US7251219B2 (en) Method and apparatus to communicate flow control information in a duplex network processor system
US7953817B2 (en) System and method for supporting TCP out-of-order receive data using generic buffer
US9077466B2 (en) Methods and apparatus for transmission of groups of cells via a switch fabric
US9565118B1 (en) Methods and apparatus for handling management packets in an audio video bridging (AVB) network
EP1175064A2 (en) Method and system for improving network performance using a performance enhancing proxy
US20050129020A1 (en) Method and system for providing data communications over a multi-link channel
CN103731409B (zh) 用于具有tcp加速的嵌入式汽车采集设备的分布式测量装置
JP2007208963A (ja) パケット処理装置及びパケット処理方法
US20080059686A1 (en) Multiple context single logic virtual host channel adapter supporting multiple transport protocols
Chen et al. Mp-rdma: enabling rdma with multi-path transport in datacenters
Zuo et al. Low-latency networking: Architecture, techniques, and opportunities
WO2017045501A1 (zh) 一种报文调度方法和装置、存储介质
Rizzo Revisiting Network I/O APIs: The netmap Framework: It is possible to achieve huge performance improvements in the way packet processing is done on modern operating systems.
US7209489B1 (en) Arrangement in a channel adapter for servicing work notifications based on link layer virtual lane processing
CN118264620A (zh) 用于多路径网络上的灵活负载均衡的计算系统和方法
WO2010023951A1 (ja) セキュア通信装置、セキュア通信方法及びプログラム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20120904