JP5601029B2 - 通信装置及び通信方法、並びにコンピューター・プログラム - Google Patents

通信装置及び通信方法、並びにコンピューター・プログラム Download PDF

Info

Publication number
JP5601029B2
JP5601029B2 JP2010121326A JP2010121326A JP5601029B2 JP 5601029 B2 JP5601029 B2 JP 5601029B2 JP 2010121326 A JP2010121326 A JP 2010121326A JP 2010121326 A JP2010121326 A JP 2010121326A JP 5601029 B2 JP5601029 B2 JP 5601029B2
Authority
JP
Japan
Prior art keywords
processing unit
packet
layer processing
duplicate ack
packets
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
JP2010121326A
Other languages
English (en)
Other versions
JP2011250142A (ja
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2010121326A priority Critical patent/JP5601029B2/ja
Priority to US13/111,462 priority patent/US8605752B2/en
Priority to CN2011101360405A priority patent/CN102332968A/zh
Publication of JP2011250142A publication Critical patent/JP2011250142A/ja
Application granted granted Critical
Publication of JP5601029B2 publication Critical patent/JP5601029B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • H04L47/323Discarding or blocking control packets, e.g. ACK packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1858Transmission or retransmission of more than one copy of acknowledgement message
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • 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]

Landscapes

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

Description

本発明は、OSI(Open Systems Interconnection)参照モデルの第2層プロトコルに従ってデータ転送を行なう通信装置及び通信方法、並びにコンピューター・プログラムに係り、特に、パケットが喪失することは稀であるのに到着パケットの順番入れ替えが頻繁に発生することが予想される第2層ネットワーク環境において、データ転送速度の低下を防ぐ通信装置及び通信方法、並びにコンピューター・プログラムに関する。
国際標準化機構(ISO)によって制定されたネットワーク構造の設計方針であるOSI参照モデルによれば、通信機能は7階層に分割され、このうち第2層のデータリンク層は、直接又は隣接的に接続されている通信装置間の信号の受け渡しを規定するプロトコルに相当し、TCP/IPなどの上位層からのサービス要求に応え、直下の物理層に対してサービスを要求する。イーサネット(登録商標)やトークンリングが第2層プロトコルの代表例である。
また、第2層は、論理リンク制御(LLC:Logical Link Control)副層と、さらにその下位のメディア・アクセス制御(MAC:Media Access Control)副層に分割される。第2層に経路制御機能はなく、第2層ネットワークは、同じネットワーク・アドレス内であり、ARP(Address Resolution Protocol)コマンドを通じてMACアドレスを取得可能な範囲、あるいは、ブロードキャスト・ドメイン内のネットワークと言い換えることもできる。
RFC(Request For Comment)793には、TCP通信の技術仕様が示されている。TCP通信は、転送時のパケット喪失や順番の入れ替えなどに対して、再送要求などの適切なフロー制御を行うことにより、信頼性のあるデータ転送を保証する。したがって、到着パケットの順番入れ替えが頻繁に発生することが予想されるような第2層ネットワーク環境においても、TCPプロトコルに従って適正な処理が行なわれ、正しい順番のデータをアプリケーションに提供する。
また、TCPには、RFC2851「TCP Congestion Control」に記述されている以下の2つの再送機能がある。
(1)A TCP receiver SHOULD send an immediate duplicate ACK when ban out−of−order segment arrives.(TCP受信機は、順番の違うパケットが到着したら、直ちにDuplicate ACKを送信するべきである。)
(2)The TCP sender SHOULD use the “fast retransmit” algorithm to detect and repair loss, based on incoming duplicate ACKs. The fasr retransmit algorithm uses the arrrival of 3 duplicate ACKs(4 identical ACKs without the arrival of any of other inteevening packets) as an indication that a segment has been lost. (TCP送信機は、受信したDuplicate ACKを基に、“高速再転送”アルゴリズムを使用するべきである。高速再転送アルゴリズムは、3回Duplicate ACKを受信すると、セグメントを喪失したものとみなし、再送するアルゴリズムである。)
この高速再転送機能は、パケット喪失による再送を行なう際に非常に有効な手段である。第2層ネットワークすなわち同じネットワーク・アドレス内での通信では、パケットが喪失することは稀である。しかしながら、第2層ネットワーク内で、パケットは喪失しないのに、パケットの順番入れ替わりが頻繁に発生するような運用を行なうと、TCP受信機側では不要なDuplicate ACKを送信し、TCP送信機はこれに応答して不要な再送処理を行なうことになる。その結果として、ネットワーク性能の大幅な低下を招来することになる。
例えば、幾つかのACKをバッファーに溜めてから送ることでACK処理回数を減らす応答返却方法について提案がなされている(例えば、特許文献1を参照のこと)。しかしながら、この方法は、TCP内部で行なうことを想定しており、実現するにはTCP/IPプロトコル・スタックに変更を加える必要がある。TCP/IPプロトコル・スタックは、OSベンダーによってはソースが公開されていないものもあり、修正が困難なことが多い。
特開2000−259525号公報
本発明の目的は、パケットが喪失することは稀であるのに到着パケットの順番入れ替えが頻繁に発生することが予想される第2層ネットワーク環境において、TCP/IPプロトコル・スタックを変更することなしに、データ転送速度の低下を防ぐことができる、優れた通信装置及び通信方法、並びにコンピューター・プログラムを提供することにある。
本願は、上記課題を参酌してなされたものであり、請求項1に記載の発明は、
Duplicate ACKパケットを受信したことに応じて該当するパケットの再送処理を起動する上位レイヤー処理部と、
ネットワークを介して受信した複数のDuplicate ACKを1つにまとめて前記上位レイヤーに渡す下位レイヤー処理部と、
を具備する通信装置である。
本願の請求項2に記載の発明によれば、請求項1に記載の通信装置の下位レイヤー処理部は、本来のIPアドレス及びポート番号が同じとなる同一のConversationを分割したパケットに対するDuplicate ACKパケットを1つにまとめるように構成されている。
本願の請求項3に記載の発明によれば、請求項1に記載の通信装置の下位レイヤー処理部は、Duplicate ACKパケットを受信するとタイマーを起動するとともに保持し、前記タイマーがタイムアウトするまでの間に受信した複数のDuplicate ACKパケットを1つにまとめて前記上位レイヤー処理部に渡すように構成されている。
また、本願の請求項4に記載の発明は、Duplicate ACKパケットを受信したことに応じて該当するパケットの再送処理を起動する上位レイヤー処理部と、前記上位レイヤーよりも下位の通信プロトコル処理を行なう下位レイヤー処理部を備えた通信装置における通信方法であって、
前記下位レイヤー処理部においてネットワークを介してDuplicate ACKパケットを受信するステップと、
前記下位レイヤー処理部において受信したDuplicate ACKパケットを保持するステップと、
前記下位レイヤー処理部において保持する複数のDuplicate ACKパケットを1つにまとめて前記上位レイヤー処理部に渡すステップと、
を有する通信方法である。
また、本願の請求項5に記載の発明は、データ通信を行なうための処理をコンピューター上で実行するようにコンピューター可読形式で記述されたコンピューター・プログラムであって、前記コンピューターを、
Duplicate ACKパケットを受信したことに応じて該当するパケットの再送処理を起動する上位レイヤー処理部、
ネットワークを介して受信した複数のDuplicate ACKを1つにまとめて前記上位レイヤーに渡す下位レイヤー処理部、
として機能させるコンピューター・プログラムである。
本願の請求項5に係るコンピューター・プログラムは、コンピューター上で所定の処理を実現するようにコンピューター可読形式で記述されたコンピューター・プログラムを定義したものである。換言すれば、本願の請求項5に係るコンピューター・プログラムをコンピューターにインストールすることによって、コンピューター上では協働的作用が発揮され、本願の請求項1に係る通信装置と同様の作用効果を得ることができる。
また、本願の請求項6に記載の発明は、
順番の違うパケットを受信したことに応じてDuplicate ACKパケットを生成して再送処理を起動する上位レイヤー処理部と、
前記上位レイヤー処理部から受け取った複数のDuplicate ACKパケットを1つにまとめてネットワークに送信する下位レイヤー処理部と、
を具備する通信装置である。
本願の請求項7に記載の発明によれば、請求項6に記載の通信装置の下位レイヤー処理部は、本来のIPアドレス及びポート番号が同じとなる同一のConversationを分割したパケットに対するDuplicate ACKパケットを1つにまとめるように構成されている。
本願の請求項8に記載の発明によれば、請求項6に記載の通信装置の下位レイヤー処理部は、前記上位レイヤー処理部からDuplicate ACKパケットを受け取るとタイマーを起動するとともに保持し、前記タイマーがタイムアウトするまでの間に受信した複数のDuplicate ACKパケットを1つにまとめて前記ネットワークに送信するように構成されている。
また、本願の請求項9に記載の発明は、順番の違うパケットを受信したことに応じてDuplicate ACKパケットを生成して再送処理を起動する上位レイヤー処理部と、前記上位レイヤーよりも下位の通信プロトコル処理を行なう下位レイヤー処理部を備えた通信装置における通信方法であって
前記下位レイヤー処理部において前記上位レイヤー処理部からDuplicate ACKパケットを受け取るステップと、
前記下位レイヤー処理部において受け取ったDuplicate ACKパケットを保持するステップと、
前記下位レイヤー処理部において保持する複数のDuplicate ACKパケットを1つにまとめてネットワークに送信するステップと、
を有する通信方法である。
また、本願の請求項10に記載の発明は、データ通信を行なうための処理をコンピューター上で実行するようにコンピューター可読形式で記述されたコンピューター・プログラムであって、前記コンピューターを、
順番の違うパケットを受信したことに応じてDuplicate ACKパケットを生成して再送処理を起動する上位レイヤー処理部、
前記上位レイヤー処理部から受け取った複数のDuplicate ACKパケットを1つにまとめてネットワークに送信する下位レイヤー処理部、
として機能させるコンピューター・プログラムである。
本願の請求項10に係るコンピューター・プログラムは、コンピューター上で所定の処理を実現するようにコンピューター可読形式で記述されたコンピューター・プログラムを定義したものである。換言すれば、本願の請求項10に係るコンピューター・プログラムをコンピューターにインストールすることによって、コンピューター上では協働的作用が発揮され、本願の請求項6に係る通信装置と同様の作用効果を得ることができる。
また、本願の請求項11に記載の発明は、
順番の違うパケットを受信したことに応じてDuplicate ACKパケットを生成して再送処理を起動する上位レイヤー処理部と、
ネットワークを介して受信したパケットを正しい順番に並べ替えて前記上位レイヤー処理部に渡す下位レイヤー処理部と、
を具備する通信装置である。
本願の請求項12に記載の発明によれば、請求項11に記載の通信装置の下位レイヤー処理部は、本来のIPアドレス及びポート番号が同じとなる同一のConversationを分割した複数のパケットを受信する順番が違うときに、正しい順番に並べ替えるように構成されている。
本願の請求項13に記載の発明によれば、請求項11に記載の通信装置の下位レイヤー処理部は、順番の違うパケットを受信するとタイマーを起動するとともに保持し、前記タイマーがタイムアウトするまでの間に正しい順番に並べ替えることができなかった受信パケットを前記上位レイヤー処理部に渡すように構成されている。
また、本願の請求項14に記載の発明は、順番の違うパケットを受信したことに応じてDuplicate ACKパケットを生成して再送処理を起動する上位レイヤー処理部と、前記上位レイヤーよりも下位の通信プロトコル処理を行なう下位レイヤー処理部を備えた通信装置における通信方法であって、
前記下位レイヤー処理部においてネットワークを介してパケットを受信するステップと、
前記下位レイヤー処理部において正しい順番で受信できなかったパケットを保持するステップと、
前記下位レイヤー処理部において受信したパケットと保持しているパケットを正しい順番に並べ替えて前記上位レイヤー処理部に渡すステップと、
を有する通信方法である。
また、本願の請求項15に記載の発明は、データ通信を行なうための処理をコンピューター上で実行するようにコンピューター可読形式で記述されたコンピューター・プログラムであって、前記コンピューターを、
順番の違うパケットを受信したことに応じてDuplicate ACKパケットを生成して再送処理を起動する上位レイヤー処理部、
ネットワークを介して受信したパケットを正しい順番に並べ替えて前記上位レイヤー処理部に渡す下位レイヤー処理部、
として機能させるコンピューター・プログラムである。
本願の請求項15に係るコンピューター・プログラムは、コンピューター上で所定の処理を実現するようにコンピューター可読形式で記述されたコンピューター・プログラムを定義したものである。換言すれば、本願の請求項15に係るコンピューター・プログラムをコンピューターにインストールすることによって、コンピューター上では協働的作用が発揮され、本願の請求項11に係る通信装置と同様の作用効果を得ることができる。
本発明によれば、TCP/IPプロトコル・スタックを変更することなしに、第2層ネットワーク環境における無駄な再送処理の起動を抑え、データ転送速度の低下を防ぐことができる。
本発明によれば、パケットが喪失することは稀な第2層ネットワーク環境において、到着パケットの順番入れ替えによる無駄な再送処理の起動を抑え、データ転送速度の低下を防ぐことができる。
本願の請求項1乃至5に係る発明によれば、データ送信側(ACK受信側)のTCP/IPより下のレイヤーにおいて、受信した複数のDuplicate ACKを1つにまとめるDuplicate ACK統合処理を行なうので、TCP/IPプロトコル・スタックを変更することなしに、TCP/IPフロー制御によるデータ転送速度の低下を最小限に抑えることができる。
本願の請求項6乃至10に係る発明によれば、データ受信側(ACK送信側)のTCP/IPより下のレイヤーにおいて、送信する複数のDuplicate ACKを1つにまとめるDuplicate ACK統合処理を行なうので、TCP/IPプロトコル・スタックを変更することなしに、TCP/IPフロー制御によるデータ転送速度の低下を最小限に抑えることができる。
本願の請求項11乃至15に係る発明によれば、データ受信側のTCP/IPより下のレイヤーにおいて、受信したパケットの順番を正しい順に並べ替えるパケット・ソート処理を行なうので、TCP/IPプロトコル・スタックを変更することなしに、TCP/IPフロー制御によるデータ転送速度の低下を最小限に抑えることができる。
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
図1は、サーバー10とクライアント60間が2つの第2層スイッチを介して接続されたネットワーク・システムの構成例を示した図である。 図2は、転送フレーム・コントロール部210の構成を模式的に示したブロック図である。 図3Aは、図2に示した転送フレーム・コントロール機能をドライバーの形態で実装したネットワーク・システムの構成例を示した図である。 図3Bは、図3Aに示したように、図2に示した転送フレーム・コントロール機能をドライバーの形態で実装した場合のWindows(登録商標) OS上でのプロトコル・スタック構造を例示した図である。 図4Aは、図2に示した転送フレーム・コントロール機能をネットワーク・インターフェース・カードの形態で実装したネットワーク・システムの構成例を示した図である。 図4Bは、図4Aに示したように、図2に示した転送フレーム・コントロール機能をネットワーク・インターフェース・カードの形態で実装した場合のWindows(登録商標) OS上でのプロトコル・スタック構造を例示した図である。 図5は、VBP機能を適用した第2層ネットワークにおいて、到着パケットの順番入れ替えが発生する様子を示した図である。 図6は、送信側(サーバー10)のVBPドライバーにDuplicate ACK統合機能を追加した機能構成を示した図である。 図7は、送信側(サーバー10)のVBP NICにDuplicate ACK統合機能を追加した機能構成を示した図である。 図8は、データ送信側(ACK受信側)でACKパケットを受信したときに行なうDuplicate ACK統合処理の手順を示したフローチャートである。 図9は、タイマー部603でタイマーがタイムアウトしたときに行なう処理手順を示したフローチャートである。 図10は、受信側(クライアント60)のVBPドライバーにDuplicate ACK統合機能を追加した機能構成を示した図である。 図11は、受信側(クライアント60)のVBP NICにDuplicate ACK統合機能を追加した機能構成を示した図である。 図12は、データ受信側(ACK送信側)でACKパケットを送信するときに行なうDuplicate ACK統合処理の手順を示したフローチャートである。 図13は、タイマー部1102でタイマーがタイムアウトしたときに行なう処理手順を示したフローチャートである。 図14は、受信側(クライアント60)のVBPドライバーにパケット・ソート機能を追加した機能構成を示した図である。 図15は、受信側(クライアント60)のVBP NICにパケット・ソート機能を追加した機能構成を示した図である。 図16は、データ受信側(ACK送信側)で行なうパケット・ソート処理の手順を示したフローチャートである。 図17は、タイマー部1403でタイマーがタイムアウトしたときに行なう処理手順を示したフローチャートである。
以下、図面を参照しながら本発明の実施形態について詳細に説明する。
ネットワーク・マルチリンク技術に関する標準的な規格書「IEEE802.1 AX−2008 Link Aggregattion」では、リンク・アグリゲーションが規定されている。リンク・アグリゲーション・グループの形で複数のリンクを統合し、MACクライアントが、リンク・アグリゲーション・グループを、あたかも単一のリンクのように扱えるようにする。しかしながら、上記規格書では、セグメンテーション技術や送信フレーム修正に対して制限を行なっており、同一Conversationのマルチリンク転送を行なうことはできない。このような場合、Conversationを分割して複数のリンクに分配することはないから、到着パケットの順番入れ替えが問題になることはない。
ここで言うConversationとは、TCPにおけるセッションに相当し、アプリケーションが1つの目的を持った1本のストリームである。Conversationは、例えば、送信元IPアドレスと送信元ポート番号、及び、宛先IPアドレスと宛先ポート番号の組み合わせで定義することができる。従来、リンクとクライアントは1対1にのみ対応し、クライアントが複数のリンクを使用することを想定していない。セグメンテーション技術に制限がかけられていることから、1本のストリームを分割して複数のリンクに分配すること、すなわち、マルチリンクすることはできない。
これに対し、本出願人に既に譲渡されている特願2010−31985号明細書では、サーバー・クライアント型のネットワーク・システムに転送フレーム・コントロール機能を追加して、単一のConversationを転送する際のリンク・アグリゲーション若しくはマルチリンクを実現する方法について開示されている。本明細書中では、転送フレーム・コントロール機能のことを「Virtual Big Pipe(仮想大容量導管):VBP」とも呼ぶ。第2層ネットワークにVBPを適用すると、Conversationを分割したパケットを複数のリンクに分配することから、第2層ネットワーク環境において、パケットが喪失することは稀であるにも拘らず到着パケットの順番入れ替えが頻繁に発生することが予想される。
ここで、VBP機能について、図1に示すサーバー・クライアント型のネットワーク・システムを例にとって説明しておく。
図1に示すネットワーク・システムでは、サーバー10とクライアント60間が2つの第2層スイッチ30、40を介して接続されている。サーバー10並びにクライアント60は、例えばオペレーティング・システム(OS)として米マイクロソフト社の“Windows(登録商標)”を搭載したコンピューターで構成される場合、その通信プロトコルは、上位から順番に、アプリケーション、TCP/IP、ドライバー(Network Driver Interface Specification:NDIS)がスタックされた階層構造になっている。
サーバー10は、N1個のネットワーク・インターフェース・カード(NIC)20−1、20−2、…を装備し、第2層スイッチ30との間はN1個の10Gbpsのイーサネット(登録商標)リンクで接続されている。サーバー10と第2層スイッチ30間を接続する個々の独立リンクの帯域は10Gbpsであるが、リンク・アグリゲーションを実現できれば、最大でN1個のリンクの総帯域として10×N1Gbpsのより高い帯域を得ることができる。
また、第2層スイッチ30、40間は、N2個の10Gbpsのイーサネット(登録商標)リンクで接続されている。第2層スイッチ30、40間を接続する個々の独立リンクの帯域は10Gbpsであるが、リンク・アグリゲーションを実現できれば、最大でN2個のリンクの総帯域として10×N2Gbpsのより高い帯域を得ることができる。
一方、クライアント60は、N3個の10Gbpsネットワーク・インターフェース・カード(NIC)50−1、50−2、…を装備し、第2層スイッチ40との間はN3個の10Gbpsのイーサネット(登録商標)リンクで接続されている。クライアント60と第2層スイッチ40間を接続する個々の独立リンクの帯域は10Gbpsであるが、リンク・アグリゲーションを実現できれば、最大でN3個のリンクの総帯域として10×N3Gbpsのより高い帯域を得ることができる。
図1に示したネットワーク・システムにおいて、サーバー10並びにクライアント20の各々において、TCP/IP層220とMAC/PHY層230の間に図2に示す転送フレーム・コントロール部210を配置することで、単一のConversationを転送する際のリンク・アグリゲーション若しくはマルチリンクを実現することができる。なお、TCP/IP層220とMAC/PHY層230の間とは、通常はMACサービス・インターフェース221に相当する。転送フレーム・コントロール部210は、ドライバー、あるいは、ネットワーク・インターフェース・カードに実装することができる。
転送フレーム・コントロール部210は、VBPポリシー保持部211と、送信フレーム・コントローラー212を備え、第2層プロトコルにおいてフレーム転送のコントロール機能を提供する。VBPポリシー保持部211は、各Conversationに設定されたVBPポリシーを保持している。送信フレーム・コントローラー212は、VBPポリシー保持部211に設定されているVBPポリシーに従って、各Conversationの送信フレームの変更を行なう。後述するように、変更後の送信フレームは、第2層ネットワーク環境において、ネットワーク経路間でマルチリンクによりデータ転送される。
VBPポリシー保持部211は、VBPポリシーを動的若しくは静的に保持する。また、各VBPポリシーは、手動若しくは自動的にVBPポリシー保持部211に設定される。例えば、データ・フローのモニター結果からの解析などに基づいて、VBPポリシーを自動的に設定するようにすることもできる。
ここで言うVBPポリシーは、送信フレームの送信元や宛先の情報などからなる入力条件と、入力条件に応じて送信フレームに変更を行なう制御ポリシーの組み合わせからなる。送信フレームに行なう変更は、例えばVLAN(Virtual LAN)タグの付加、送信元MACアドレスの変更、宛先MACアドレスの変更などである。
以下の表1には、VBPポリシー保持部211に保持されている設定項目の一例を示している。
上表において、入力条件は、該当するConversationについて設定されている、送信元のMACアドレス及びポート番号からなるSource項と、送信フレームの宛て先のMACアドレスとIPアドレス、ポート番号からなるDestination項を含んでいる。
また、制御ポリシーは、入力条件に合致した送信フレームに対して変更を行なうべき(割り当てるべき)送信元MACアドレス、宛先MACアドレス、VLAN IDの各項、並びに、該当する送信フレームに対して送信元MACアドレス、宛先MACアドレス、VLAN IDを割り当てる際の割り当てルールを指定するControl Rules項からなる。後述する実施例では、Control Rulesとして、順割り当て(Sequential Assignment:SA)のみを挙げているが、「不良検出時の割当」や、「プライオリティーや帯域要求に応じた割当」などのルールを記述することができる。
送信フレーム・コントローラー212は、MACサービス・インターフェース221を介して、上位層のTCP/IP層220から送信フレームを受け取ると、そのヘッダー情報の内容などを解析するとともに、VBPポリシー保持部211に保持されている設定項目を参照する。そして、送信フレームのヘッダー情報と合致する入力条件を持つ設定項目が見つかったときには、送信フレーム・コントローラー212は、その設定項目の制御ポリシーとして記載されている割り当てルールに従って、送信フレームの送信元MACアドレス、宛先MACアドレス、VLAN IDを変更してから、下位層のMAC/PHY層230に渡す。この結果、単一のConversationを転送する際、複数の送信フレームを複数のリンクに割り当てて、リンク・アグリゲーションを実現することができる。リンク毎の帯域は10Gbpsであるが、送信フレームを割り当てた複数のリンクの総帯域としては、例えば40〜100Gbps程度のより高い帯域を得ることができる。
VBP機能によれば、単一のConversationを転送する際のマルチリンクを実現して、より低い帯域のリンクを複数束ねてより高い帯域でネットワークを運用することができる。
図3Aには、図2に示した転送フレーム・コントロール機能を、ドライバーというソフトウェアの形態で実装したネットワーク・システムの構成例を示している。同図中のサーバー10並びにクライアント60がそれぞれ備えるVBPドライバーは、転送フレーム・コントロール(VBP)機能、すなわち、上述したVBPポリシー保持部211と、転送フレーム・コントローラー212として機能する。
図3Bには、図3Aに示したように、転送フレーム・コントロール機能をVBPドライバーというソフトウェアの形態で実装した場合の、Windows(登録商標) OSにおけるプロトコル・スタック構造を例示している。同図では、既存のソフトウェアで構成可能な機能モジュール、新規のソフトウェアで構成される機能モジュール、並びに、ハードウェアで構成される機能モジュールを分けて示している。VBP仮想アダプター(Virtual Adaptor)、VBPマルチプレクサ/デマルチプレクサ、VBPフィルター、及び、NICアダプターからなるプロトコル・スタックはVBPドライバーを構成するが、米マイクロソフト社が定めたネットワーク・ドライバーの標準規格「NDIS」に準拠するものとする。例えば、10Gbpsのネットワーク・インターフェース・カードを4個使用する場合、マルチリンクの総帯域として40Gbpsのスループットを実現することができる。
図4Aには、図2に示した転送フレーム・コントロール機能を、ネットワーク・インターフェース・カードというハードウェアの形態で実装したネットワーク・システムの構成例を示している。同図中のサーバー10並びにクライアント60がそれぞれ備えるVBPネットワーク・インターフェース・カードは、転送フレーム・コントロール(VBP)機能、すなわち、上述したVBPポリシー保持部211と、転送フレーム・コントローラー212として機能する。
図4Bには、図4Aに示したように、転送フレーム・コントロール機能をVBPネットワーク・インターフェース・カードというハードウェアの形態で実装した場合の、Windows(登録商標) OSにおけるプロトコル・スタック構造を例示している。同図では、既存のソフトウェアで構成可能な機能モジュール、新規のソフトウェアで構成される機能モジュール、並びに、ハードウェアで構成される機能モジュールを分けて示している。VBP仮想アダプター、VBPマルチプレクサ/デマルチプレクサ、及び、VBP NICアダプターからなるプロトコル・スタックはVBPドライバーを構成するが、NDISに準拠するものとする(同上)。例えば、各VBPネットワーク・インターフェース・カードが1Gbpsの仮想的なリンクを5本又は10本持ち、且つ、VBPネットワーク・インターフェース・カードを4個又は8個使用する場合、マルチリンクの総帯域として40Gbpsのスループットを実現することができる。
第2層ネットワークに図2〜図4に示したようなVBPを適用すると、Conversationを分割して複数のリンクに分配することから、第2層ネットワーク環境において、パケットが喪失することは稀であるにも拘らず到着パケットの順番入れ替えが頻繁に発生することが予想される。図5には、VBP機能を適用した第2層ネットワークにおいて、到着パケットの順番入れ替えが発生する様子を示している。
送信側であるサーバー10のコンピューターがマルチCPU(Central Processing Unit)で構成され、マルチリンクを実現する転送フレーム・コントロール部がマルチスレッドで実装される場合、上位層のTCP/IPから渡されたパケット(Conversationを分割したパケット)を、各NICに振り分けるが、その際にパケットの順番が入れ替わってしまう可能性がある。また、ネットワーク経路上の第2層スイッチにおいても、各ポートは独立して動作しているために、ネットワーク負荷によってはパケットの順番が入れ替わってしまう可能性がある。結果として、受信側であるクライアント60のコンピューターのTCP/IPは、順番の入れ替わったパケットを受信することになる。
第2層ネットワークでは、パケットが喪失することは稀である。しかしながら、図5に示したように、パケットの順番入れ替わりが頻繁に発生すると、受信側であるクライアント60からは不要なDuplicate ACKが送信される。そして、送信側であるサーバー10は、不要なDuplicate ACKに応答して不要な再送処理を行なうことになる。その結果として、ネットワーク性能の大幅な低下を招来することになる。
そこで、本発明者らは、以下に挙げるいずれか1つ、若しくは複数を組み合わせた機能を第2層ネットワークに追加することで、TCP/IPフロー制御によるデータ転送速度の低下を最小限に抑えることができることを見いだした
(1)データ送信側(ACK受信側)のTCP/IPより下のレイヤーにおいて、受信した複数のDuplicate ACKパケットを1つにまとめるDuplicate ACK統合機能。
(2)データ受信側(ACK送信側)のTCP/IPより下のレイヤーにおいて、送信する複数のDuplicate ACKパケットを1つにまとめるDuplicate ACK統合機能。
(3)データ受信側のTCP/IPより下のレイヤーにおいて、受信したパケットの順番を正しい順に並べ替えるパケット・ソート機能。
まず、データ送信側(ACK受信側)にDuplicate ACK機能を追加する実施例について説明する。
図6には、図3Aに示したように転送フレーム・コントロール機能をドライバーの形態で実装した場合に、受信した複数のDuplicate ACKパケットを1つにまとめるDuplicate ACK統合機能を送信側(サーバー10)のVBPドライバーに追加した機能構成を示している。また、図7には、図4Aに示したように転送フレーム・コントロール機能をネットワーク・インターフェース・カードの形態で実装した場合に、送信側(サーバー10)のVBP NICに同様のDuplicate ACK統合機能を追加した機能構成を示している。
図6に示すVBPドライバー、又は、図7に示すVBP NICは、Duplicate ACK保持部601と、Duplicate ACK判定部602と、タイマー部603と、VBPポリシー保持部604と、VBPパケット判定部605と、マルチリンク処理部606を備えている。図6と図7で、参照番号601〜606で示した各機能モジュールは基本的に同一の動作をし、その相違はソフトウェア又はハードウェアのいずれの形態で実現したかという点である。
図8には、データ送信側(ACK受信側)でACKパケットを受信したときに、TCP/IPより下のレイヤーにおいて、図6又は図7に示した機能構成を用いて、複数のDuplicate ACKパケットを1つにまとめるDuplicate ACK統合処理の手順をフローチャートの形式で示している。
マルチリンク処理部606は、複数のリンクに分配された同じConversationから分割された複数のパケットを、VBPポリシー保持部604に保持されているVBPポリシーに従って受信処理する。VBPパケット判定部605は、マルチリンク処理部606から受信したACKパケットを受け取ると(ステップS801)、VBPポリシー保持部604に保持してある情報すなわちVBPポリシーを基に、そのパケットがVBP処理を行なっているパケット(以下、「VBPパケット」とも呼ぶ)かどうかを判定する(ステップS802)。
ここで、VBPパケットかどうかとは、同じConversationを分割したパケットの1つかどうかということと同じ意味である。Conversationは、IPアドレスとポート番号の組み合わせで定義される。但し、「IEEE802.1 AX−2008 Link Aggregattion」で規定されている制限を順守しながらマルチリンク転送を行なうために、VBPパケットには上記の表1に示したようなVBPポリシーに従って送信フレームに対して変更が行なわれている。したがって、VBPパケット判定部605が行なう判定処理は、VBPポリシーを参照して、本来のIPアドレスとポート番号を求め、受信した複数のACKパケットが同じConversationを分割したパケットに対するVBP ACKパケットであるかどうかを判定することと同じである。
受信したACKパケットがVBP ACKパケットでない場合には(ステップS802のNo)、VBPパケット判定部605は、TCP/IP又はVBP NICドライバーなどの上位レイヤーに当該ACKパケットを渡して(ステップS808)、本処理ルーチンを終了する。
また、受信したACKパケットがVBP ACKパケットである場合には(ステップS802のYes)、VBPパケット判定部605は、当該ACKパケットをDuplicate ACK判定部602に渡す(ステップS803)。
Duplicate ACK判定部602は、ACKパケット内のACK番号及びパケット・サイズを基に、当該ACKパケットがDuplicate ACKパケットかどうかを判定する(ステップS804)。
受信したACKパケットがDuplicate ACKパケットである場合(ステップS804のYes)、Duplicate ACK保持部601は当該ACKパケットを保持する(ステップS805)。また、このときタイマー部603がタイマーを起動していなければ、タイマーをセットする(ステップS806)。
一方、受信したACKパケットがDuplicate ACKパケットでない場合には(ステップS804のNo)、Duplicate ACK保持部601は、保持してあるDuplicate ACKパケットを破棄し(ステップS807)、TCP/IP又はVBP NICドライバーなどの上位レイヤーにACKパケットを渡して(ステップS808)、本処理ルーチンを終了する。
図9には、タイマー部603でタイマーがタイムアウトしたときに行なう処理手順をフローチャートの形式で示している。
タイマー部603は、タイマーがセットされた時間に到達すると(ステップS901)、Duplicate ACK保持部601に、タイムアウトしたことを通知する(ステップS902)。
Duplicate ACK保持部601は、通知を受け取ると、保持しているDuplicate ACKパケットがあるかどうかを確認する(ステップS903)。
保持しているDuplicate ACKパケットがある場合には(ステップS903のYes)、Duplicate ACK保持部601は、Duplicate ACKパケットを、TCP/IP又はVBP NICドライバーなどの上位レイヤーにDuplicate ACKパケットを渡す(ステップS904)。そして、タイマー部603はタイマーを解除する(ステップS905)。
また、Duplicate ACK保持部601が保持しているDuplicate ACKパケットがない場合には(ステップS903のNo)、タイマー部603がタイマーを解除して(ステップS905)、本処理ルーチンを終了する。
図6〜図9に示した実施例によれば、到着パケットの順番入れ替えが頻繁に発生することが予想される第2層ネットワーク環境において、データ送信側(ACK受信側)でDuplicate ACKパケットを1つにまとめるDuplicate ACK統合処理を行なうことにより、不要な再送パケットを転送することに伴うネットワーク帯域負荷を低減することができ、また、TCP/IPなどの上位レイヤーにおいて不要な再送パケット、Duplicate ACKパケットの処理を行なうことに伴うCPUの負荷を低減することができ、これらによりデータ転送性能の低下を防ぐという効果を得ることができる。特に、図1〜図4に示したVBP環境においては、単一のConversationを転送する際のマルチリンクを実現するという効果を享受しながら、不要な再送パケット、Duplicate ACKパケットによるデータ転送速度の低下を防ぐことができる。
続いて、データ受信側(ACK送信側)にDuplicate ACK機能を追加する実施例について説明する。
図10には、図3Aに示したように転送フレーム・コントロール機能をドライバーの形態で実装した場合に、送信する複数のDuplicate ACKパケットを1つにまとめるDuplicate ACK統合機能を受信側(クライアント60)のVBPドライバーに追加した機能構成を示している。また、図11には、図4Aに示したように転送フレーム・コントロール機能をネットワーク・インターフェース・カードの形態で実装した場合に、受信側(クライアント20)のVBP NICに同様のDuplicate ACK統合機能を追加した機能構成を示している。
図10に示すVBPドライバー、又は、図11に示すVBP NICは、VBPパケット判定部1001と、タイマー部1002と、VBPポリシー保持部1003と、Duplicate ACK保持部1004と、Duplicate ACK判定部1005と、マルチリンク処理部1006を備えている。図10と図11で、参照番号1001〜1006で示した各機能モジュールは基本的に同一の動作をし、その相違はソフトウェア又はハードウェアのいずれの形態で実現したかという点である。
図12には、データ受信側(ACK送信側)でACKパケットを送信するときに、TCP/IPより下のレイヤーにおいて、図10又は図11に示した機能構成を用いて、複数のDuplicate ACKパケットを1つにまとめるDuplicate ACK統合処理の手順をフローチャートの形式で示している。
VBPパケット判定部1001は、TCP/IP又はVBP NICドライバーなどの上位レイヤーからACKパケットを受け取ると(ステップS1201)、VBPポリシー保持部1003に保持してある情報すなわちVBPポリシーを基に、そのパケットがVBP処理を行なっているパケット(以下、「VBPパケット」とも呼ぶ)かどうかを判定する(ステップS1202)。
送信するACKパケットがVBPパケットでない場合には(ステップS1202のNo)、VBPパケット判定部1001は、マルチリンク処理部1006に当該ACKパケットを渡して(ステップS1208)、本処理ルーチンを終了する。
また、送信するACKパケットがVBPパケットである場合には(ステップS1202のYes)、VBPパケット判定部1001は、当該ACKパケットをDuplicate ACK判定部1005に渡す(ステップS1203)。
Duplicate ACK判定部1005は、ACKパケット内のACK番号及びパケット・サイズを基に、当該ACKパケットがDuplicate ACKパケットかどうかを判定する(ステップS1204)。
受信したACKパケットがDuplicate ACKパケットである場合(ステップS1204のYes)、Duplicate ACK保持部1004は当該ACKパケットを保持する(ステップS1205)。また、このときタイマー部1002がタイマーを起動していなければ、タイマーをセットする(ステップS1206)。
一方、受信したACKパケットがDuplicate ACKパケットでない場合には(ステップS1204のNo)、Duplicate ACK保持部1004は保持してあるDuplicate ACKパケットを破棄し(ステップS1207)、マルチリンク処理部1006にACKパケットを渡して(ステップS1208)、本処理ルーチンを終了する。
図13には、タイマー部1002でタイマーがタイムアウトしたときに行なう処理手順をフローチャートの形式で示している。
タイマー部1002は、タイマーがセットされた時間に到達すると(ステップS1301)、Duplicate ACK保持部1004に、タイムアウトしたことを通知する(ステップS1302)。
Duplicate ACK保持部1004は、通知を受け取ると、保持しているDuplicate ACKパケットがあるかどうかを確認する(ステップS1303)。
保持しているDuplicate ACKがある場合には(ステップS1303のYes)、Duplicate ACK保持部1004は、Duplicate ACKパケットをマルチリンク処理部1006にACKパケットを渡す(ステップS1304)。そして、タイマー部1002はタイマーを解除する(ステップS1305)。
また、Duplicate ACK保持部1005が保持しているDuplicate ACKパケットがない場合には(ステップS1303のNo)、タイマー部1002がタイマーを解除して(ステップS1305)、本処理ルーチンを終了する。
図10〜図13に示した実施例によれば、到着パケットの順番入れ替えが頻繁に発生することが予想される第2層ネットワーク環境において、データ受信側(ACK送信側)でDuplicate ACKを1つにまとめるDuplicate ACK統合処理を行なうことにより、不要な再送パケット、Duplicate ACKパケットを転送することに伴うネットワーク帯域負荷を低減することができ、また、TCP/IPなどの上位レイヤーにおいて不要な再送パケット、Duplicate ACKパケットの処理を行なうことに伴うCPUの負荷を低減することができ、これらによりデータ転送性能の低下を防ぐという効果を得ることができる。特に、図1〜図4に示したVBP環境においては、単一のConversationを転送する際のマルチリンクを実現するという効果を享受しながら、不要な再送パケット、Duplicate ACKパケットによるデータ転送速度の低下を防ぐことができる。
続いて、データ受信側(ACK送信側)にパケット・ソート機能を追加する実施例について説明する。
図14には、図3Aに示したように転送フレーム・コントロール機能をドライバーの形態で実装した場合に、受信したパケットの順番を正しい順に並べ替えるパケット・ソート機能を受信側(クライアント60)のVBPドライバーに追加した機能構成を示している。また、図15には、図4Aに示したように転送フレーム・コントロール機能をネットワーク・インターフェース・カードの形態で実装した場合に、受信側(クライアント60)のVBP NICに同様のパケット・ソート機能を追加した機能構成を示している。
図14に示すVBPドライバー、又は、図15に示すVBP NICは、Out−of−orderパケット保持部1401と、Out−of−orderパケット判定部1402と、タイマー部1403と、VBPポリシー保持部1404と、VBPパケット判定部1405と、マルチリンク処理部1406を備えている。図14と図15で、参照番号1401〜1606で示した各機能モジュールは基本的に同一の動作をし、その相違はソフトウェア又はハードウェアのいずれの形態で実現したかという点である。
図16には、データ受信側(ACK送信側)で、TCP/IPより下のレイヤーにおいて、図14又は図15に示した機能構成を用いて行なう、受信したパケットの順番を正しい順に並べ替えるパケット・ソート処理の手順をフローチャートの形式で示している。
マルチリンク処理部606は、複数のリンクに分配された同じConversationから分割された複数のパケットを、VBPポリシー保持部604に保持されているVBPポリシーに従って受信処理する。VBPパケット判定部1405は、マルチリンク処理部1406から受信パケットを受け取ると(ステップS1601)、VBPポリシー保持部1404に保持してある情報すなわちVBPポリシーを基に、そのパケットがVBP処理を行なっているパケット(以下、「VBPパケット」とも呼ぶ)かどうかを判定する(ステップS1602)。
受信したパケットがVBPパケットでない場合には(ステップS1602のNo)、VBPパケット判定部1405は、TCP/IP又はVBP NICドライバーなどの上位レイヤーに当該受信パケットを渡して(ステップS1609)、本処理ルーチンを終了する。
また、受信パケットがVBPパケットである場合には(ステップS1602のYes)、VBPパケット判定部1405は、当該受信パケットをOut−of−orderパケット判定部1402に渡す(ステップS1603)。
Out−of−orderパケット判定部1402は、受信パケット内のシーケンス番号及びパケット・サイズを基に、当該受信パケットがOut−of−orderパケット(到着した順が順番通りでないパケット)かどうかを判定する(ステップS1604)。
受信パケットがOut−of−orderパケットである場合には(ステップS1604のYes)、Out−of−orderパケット保持部1701は当該受信パケットを保持する(ステップS1605)。また、このときタイマー部1703がタイマーを起動していなければ、タイマーをセットする(ステップS1606)。
また、受信パケットがOut−of−orderパケットでない場合には(ステップS1604のNo)、Out−of−orderパケット保持部1701は、当該受信パケットとシーケンス番号が連続するパケットを保持しているかどうかを確認する(ステップS1607)。
受信パケットとシーケンス番号が連続するパケットをOut−of−orderパケット保持部1401で保持していなければ(ステップS1607のNo)、Out−of−orderパケット判定部1402は、TCP/IP又はVBP NICドライバーなどの上位レイヤーに当該受信パケットを渡して(ステップS1609)、本処理ルーチンを終了する。
一方、受信パケットとシーケンス番号が連続するパケットを保持しているときには(ステップS1607のYes)、Out−of−orderパケット保持部1401は、シーケンス番号が連続する受信パケットを結合して(ステップS1608、)TCP/IP又はVBP NICドライバーなどの上位レイヤーに渡す(ステップS1609)。
図17には、タイマー部1403でタイマーがタイムアウトしたときに行なう処理手順をフローチャートの形式で示している。
タイマー部1403は、タイマーがセットされた時間に到達すると(ステップS1701)、Out−of−orderパケット保持部1401に、タイムアウトしたことを通知する(ステップS1702)。
Out−of−orderパケット保持部1401は、通知を受け取ると、Out−of−orderパケット(到着した順が順番通りでないパケット)を保持しているかどうかを確認する(ステップS1703)。
Out−of−orderパケットを保持している場合には(ステップS1703のYes)、Out−of−orderパケット保持部1401は、Out−of−orderパケットを、TCP/IP又はVBP NICドライバーなどの上位レイヤーに渡す(ステップS1704)。
そして、タイマー部1403がタイマーを解除して(ステップS1705)、本処理ルーチンを終了する。
図14〜図17に示した実施例によれば、到着パケットの順番入れ替えが頻繁に発生することが予想される第2層ネットワーク環境において、データ受信側(ACK送信側)でパケット・ソート処理を行なうことにより、不要な再送パケット、Duplicate ACKパケットを転送することに伴うネットワーク帯域負荷を低減することができ、また、TCP/IPなどの上位レイヤーにおいて不要な再送パケット、Duplicate ACKパケットの処理を行なうことに伴うCPUの負荷を低減することができ、これらによりデータ転送性能の低下を防ぐという効果を得ることができる。特に、図1〜図4に示したVBP環境においては、単一のConversationを転送する際のマルチリンクを実現するという効果を享受しながら、不要な再送パケット、Duplicate ACKパケットによるデータ転送速度の低下を防ぐことができる。
以上、特定の実施形態を参照しながら、本発明について詳細に説明してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
本明細書では、到着パケットの順番入れ替えが頻繁に発生することが予想される第2層ネットワーク環境の一例として、VBPによるマルチリンクを行なうネットワーク環境を挙げたが、本発明の要旨はこれに限定されるものではない。また、本発明の適用範囲は第2層ネットワークに限定されるものではなく、パケットが喪失することは稀であるのに到着パケットの順番入れ替えが頻繁に発生することが予想される、他のネットワーク環境においても、本発明を好適に適用することができる。
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、特許請求の範囲を参酌すべきである。
10…サーバー
20、50…ネットワーク・インターフェース・カード
30、40…第2層スイッチ
60…クライアント
210…転送フレーム・コントロール部
211…VBPポリシー保持部
212…送信フレーム・コントローラー
220…TCP/IP層
221…MACサービス・インターフェース
230…MAC/PHY層
601…Duplicate ACK保持部
602…Duplicate ACK判定部
603…タイマー部
604…VBPポリシー保持部
605…VBPパケット判定部
606…マルチリンク処理部
1001…VBPパケット判定部
1002…タイマー部
1003…VBPポリシー保持部
1004…Duplicate ACK保持部
1005…Duplicate ACK判定部
1006…マルチリンク処理部
1401…Out−of−orderパケット保持部
1402…Out−of−orderパケット判定部
1403…タイマー部
1404…VBPポリシー保持部
1405…VBPパケット判定部
1406…マルチリンク処理部

Claims (15)

  1. Duplicate ACKパケットを受信したことに応じて該当するパケットの再送処理を起動する上位レイヤー処理部と、
    Conversation毎の送信ポリシーを保持する送信ポリシー保持部と、前記送信ポリシー保持部に保持されている送信ポリシーに従って、単一のConversationを転送する際の複数の送信フレームの各々について出力リンクの切り換えを行なう送信フレーム・コントロール部と、ネットワークを介して受信した同一のConversationを分割したパケットに対する複数のDuplicate ACKを1つにまとめて前記上位レイヤー処理部に渡すDuplicate ACK処理部を備える下位レイヤー処理部と、
    を具備する通信装置。
  2. 前記下位レイヤー処理部は、本来のIPアドレス及びポート番号が同じとなる同一のConversationを分割したパケットに対するDuplicate ACKパケットを1つにまとめる、
    請求項1に記載の通信装置。
  3. 前記下位レイヤー処理部は、Duplicate ACKパケットを受信するとタイマーを起動するとともに保持し、前記タイマーがタイムアウトするまでの間に受信した複数のDuplicate ACKパケットを1つにまとめて前記上位レイヤー処理部に渡す、
    請求項1に記載の通信装置。
  4. Duplicate ACKパケットを受信したことに応じて該当するパケットの再送処理を起動する上位レイヤー処理部と、前記上位レイヤーよりも下位の通信プロトコル処理を行なう下位レイヤー処理部を備えた通信装置における通信方法であって、
    Conversation毎の送信ポリシーを送信ポリシー保持部に保持する送信ポリシー保持ステップと、
    前記送信ポリシー保持部に保持されている送信ポリシーに従って、単一のConversationを転送する際の複数の送信フレームの各々について出力リンクの切り換えを行なう送信フレーム・コントロール・ステップと、
    前記下位レイヤー処理部においてネットワークを介してDuplicate ACKパケットを受信するステップと、
    前記下位レイヤー処理部において受信した同一のConversationを分割したパケットに対するDuplicate ACKパケットを保持するステップと、
    前記下位レイヤー処理部において保持する複数のDuplicate ACKパケットを1つにまとめて前記上位レイヤー処理部に渡すステップと、
    を有する通信方法。
  5. データ通信を行なうための処理をコンピューター上で実行するようにコンピューター可読形式で記述されたコンピューター・プログラムであって、前記コンピューターを、
    Duplicate ACKパケットを受信したことに応じて該当するパケットの再送処理を起動する上位レイヤー処理部、
    Conversation毎の送信ポリシーを保持する送信ポリシー保持部と、前記送信ポリシー保持部に保持されている送信ポリシーに従って、単一のConversationを転送する際の複数の送信フレームの各々について出力リンクの切り換えを行なう送信フレーム・コントロール部と、ネットワークを介して受信した同一のConversationを分割したパケットに対する複数のDuplicate ACKを1つにまとめて前記上位レイヤー処理部に渡すDuplicate ACK処理部を備える下位レイヤー処理部、
    として機能させるコンピューター・プログラム。
  6. 順番の違うパケットを受信したことに応じてDuplicate ACKパケットを生成して再送処理を起動する上位レイヤー処理部と、
    前記上位レイヤー処理部から受け取った同一のConversationを分割したパケットに対する複数のDuplicate ACKパケットを1つにまとめてネットワークに送信する下位レイヤー処理部と、
    を具備する通信装置。
  7. 前記下位レイヤー処理部は、本来のIPアドレス及びポート番号が同じとなる同一のConversationを分割したパケットに対するDuplicate ACKパケットを1つにまとめる、
    請求項6に記載の通信装置。
  8. 前記下位レイヤー処理部は、前記上位レイヤー処理部からDuplicate ACKパケットを受け取るとタイマーを起動するとともに保持し、前記タイマーがタイムアウトするまでの間に受信した複数のDuplicate ACKパケットを1つにまとめて前記ネットワークに送信する、
    請求項6に記載の通信装置。
  9. 順番の違うパケットを受信したことに応じてDuplicate ACKパケットを生成して再送処理を起動する上位レイヤー処理部と、前記上位レイヤーよりも下位の通信プロトコル処理を行なう下位レイヤー処理部を備えた通信装置における通信方法であって、
    前記下位レイヤー処理部において前記上位レイヤー処理部からDuplicate ACKパケットを受け取るステップと、
    前記下位レイヤー処理部において受け取った同一のConversationを分割したパケットに対するDuplicate ACKパケットを保持するステップと、
    前記下位レイヤー処理部において保持する複数のDuplicate ACKパケットを1つにまとめてネットワークに送信するステップと、
    を有する通信方法。
  10. データ通信を行なうための処理をコンピューター上で実行するようにコンピューター可読形式で記述されたコンピューター・プログラムであって、前記コンピューターを、
    順番の違うパケットを受信したことに応じてDuplicate ACKパケットを生成して再送処理を起動する上位レイヤー処理部、
    前記上位レイヤー処理部から受け取った同一のConversationを分割したパケットに対する複数のDuplicate ACKパケットを1つにまとめてネットワークに送信する下位レイヤー処理部、
    として機能させるコンピューター・プログラム。
  11. 同一のConversationが分割されたパケットを違う順番で受信したことに応じてDuplicate ACKパケットを生成して再送処理を起動する上位レイヤー処理部と、
    ネットワークを介して受信したパケットを正しい順番に並べ替えて前記上位レイヤー処理部に渡す下位レイヤー処理部と、
    を具備する通信装置。
  12. 前記下位レイヤー処理部は、本来のIPアドレス及びポート番号が同じとなる同一のConversationを分割した複数のパケットを受信する順番が違うときに、正しい順番に並べ替える、
    請求項11に記載の通信装置。
  13. 前記下位レイヤー処理部は、順番の違うパケットを受信するとタイマーを起動するとともに保持し、前記タイマーがタイムアウトするまでの間に正しい順番に並べ替えることができなかった受信パケットを前記上位レイヤー処理部に渡す、
    請求項11に記載の通信装置。
  14. 順番の違うパケットを受信したことに応じてDuplicate ACKパケットを生成して再送処理を起動する上位レイヤー処理部と、前記上位レイヤーよりも下位の通信プロトコル処理を行なう下位レイヤー処理部を備えた通信装置における通信方法であって、
    前記下位レイヤー処理部においてネットワークを介してパケットを受信するステップと、
    前記下位レイヤー処理部において正しい順番で受信できなかったパケットを保持するステップと、
    同一のConversationが分割されたパケットを違う順番で受信したことに応じて前記上位レイヤー処理部においてDuplicate ACKパケットを生成して再送処理を起動するステップと、
    前記下位レイヤー処理部において受信したパケットと保持しているパケットを正しい順番に並べ替えて前記上位レイヤー処理部に渡すステップと、
    を有する通信方法。
  15. データ通信を行なうための処理をコンピューター上で実行するようにコンピューター可読形式で記述されたコンピューター・プログラムであって、前記コンピューターを、
    同一のConversationが分割されたパケットを違う順番で受信したことに応じてDuplicate ACKパケットを生成して再送処理を起動する上位レイヤー処理部、
    ネットワークを介して受信したパケットを正しい順番に並べ替えて前記上位レイヤー処理部に渡す下位レイヤー処理部、
    として機能させるコンピューター・プログラム。
JP2010121326A 2010-05-27 2010-05-27 通信装置及び通信方法、並びにコンピューター・プログラム Expired - Fee Related JP5601029B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010121326A JP5601029B2 (ja) 2010-05-27 2010-05-27 通信装置及び通信方法、並びにコンピューター・プログラム
US13/111,462 US8605752B2 (en) 2010-05-27 2011-05-19 Communication apparatus, communication method, and computer program
CN2011101360405A CN102332968A (zh) 2010-05-27 2011-05-20 通信设备、通信方法及计算机程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010121326A JP5601029B2 (ja) 2010-05-27 2010-05-27 通信装置及び通信方法、並びにコンピューター・プログラム

Publications (2)

Publication Number Publication Date
JP2011250142A JP2011250142A (ja) 2011-12-08
JP5601029B2 true JP5601029B2 (ja) 2014-10-08

Family

ID=45022061

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010121326A Expired - Fee Related JP5601029B2 (ja) 2010-05-27 2010-05-27 通信装置及び通信方法、並びにコンピューター・プログラム

Country Status (3)

Country Link
US (1) US8605752B2 (ja)
JP (1) JP5601029B2 (ja)
CN (1) CN102332968A (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014192811A (ja) * 2013-03-28 2014-10-06 Fujitsu Ltd 中継装置及び通信方法
US9986563B2 (en) * 2014-02-28 2018-05-29 Vicidiem Holdings, Llc Dynamic allocation of network bandwidth
US10764012B2 (en) 2014-11-06 2020-09-01 Qualcomm Incorporated Reducing processing time for low latency transmission and reception
CN106797281B (zh) * 2014-12-24 2020-03-20 柏思科技有限公司 用于通过聚合连接传输数据的方法和***
US9977853B2 (en) 2015-11-04 2018-05-22 Chronos Tech Llc Application specific integrated circuit link
US11550982B2 (en) 2015-11-04 2023-01-10 Chronos Tech Llc Application specific integrated circuit interconnect
US10181939B2 (en) 2016-07-08 2019-01-15 Chronos Tech Llc Systems and methods for the design and implementation of an input and output ports for circuit design
EP3610694A1 (en) * 2017-04-10 2020-02-19 Nokia Technologies Oy Control mechanism for packet duplication in multi-connectivity communication
JP7031842B2 (ja) * 2017-07-04 2022-03-08 国立研究開発法人情報通信研究機構 無線通信システム及び方法
US10637592B2 (en) * 2017-08-04 2020-04-28 Chronos Tech Llc System and methods for measuring performance of an application specific integrated circuit interconnect
CN109889312A (zh) * 2019-01-28 2019-06-14 深圳市比速智网技术有限公司 多链路数据传输方法、装置及计算机可读存储介质
US11856415B2 (en) * 2020-05-15 2023-12-26 Huawei Technologies Co., Ltd. Method, apparatus, and system utilizing lower layer signalling for mobility beam management
CN111901075B (zh) * 2020-07-16 2021-11-23 华中科技大学 多网络融合传输方法、传输***及计算机可读存储介质
CN112769794B (zh) * 2020-12-30 2022-06-21 神州绿盟成都科技有限公司 一种数据转换方法及装置
CN118339791A (zh) * 2021-11-30 2024-07-12 上海诺基亚贝尔股份有限公司 关于harq反馈的增强

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000259525A (ja) 1999-03-10 2000-09-22 Nec Corp 通信プロトコルにおける応答返却方法および通信制御装置
JP3678200B2 (ja) * 2002-01-11 2005-08-03 Kddi株式会社 通信内容の秘匿性向上のための経路分散装置
JP2004147183A (ja) * 2002-10-25 2004-05-20 Mitsubishi Electric Corp 誤り制御方法、通信装置および通信システム
KR100568232B1 (ko) * 2003-07-28 2006-04-07 삼성전자주식회사 모바일 애드 혹 네트워크에서 전송층을 이용한 효율적인데이터 송수신 방법 및 상기 방법을 이용한 네트워크 장치
US7385923B2 (en) * 2003-08-14 2008-06-10 International Business Machines Corporation Method, system and article for improved TCP performance during packet reordering
US20090268747A1 (en) * 2005-10-03 2009-10-29 Hiroshi Kurata Communication apparatus
JP4384676B2 (ja) * 2007-03-27 2009-12-16 京セラ株式会社 データ通信装置の制御方法
US7864771B2 (en) * 2007-04-20 2011-01-04 Cisco Technology, Inc. Parsing out of order data packets at a content gateway of a network
JP4513036B2 (ja) 2008-04-04 2010-07-28 ソニー株式会社 送信装置および方法、並びにプログラム

Also Published As

Publication number Publication date
CN102332968A (zh) 2012-01-25
US20110292793A1 (en) 2011-12-01
US8605752B2 (en) 2013-12-10
JP2011250142A (ja) 2011-12-08

Similar Documents

Publication Publication Date Title
JP5601029B2 (ja) 通信装置及び通信方法、並びにコンピューター・プログラム
US11765074B2 (en) System and method for facilitating hybrid message matching in a network interface controller (NIC)
US7684423B2 (en) System and method for virtual network interface cards based on internet protocol addresses
JP4627669B2 (ja) パケット転送装置およびその転送制御方式
US7903552B2 (en) Directional and priority based flow control mechanism between nodes
EP2316202B1 (en) Method of data delivery across a network
US8175116B2 (en) Multiprocessor system for aggregation or concatenation of packets
US6845105B1 (en) Method and apparatus for maintaining sequence numbering in header compressed packets
JP5504952B2 (ja) 通信装置及び通信方法、並びにコンピューター・プログラム
EP3577814A1 (en) Data bandwidth overhead reduction in a protocol based communication over a wide area network (wan)
US20070291782A1 (en) Acknowledgement filtering
CN118318429A (zh) 用于使用流级别传输机制进行拥塞控制的***和方法
US20090094359A1 (en) Local Area Network Management
US20230403229A1 (en) System and method for facilitating efficient host memory access from a network interface controller (nic)
US20110064088A1 (en) Communication apparatus and communication controlling method in ring network
WO2012065476A1 (zh) 一种超虚拟局域网报文的上送方法及装置
KR20140002040A (ko) 라우터에서의 통신들을 관리하는 기술
JP2009171408A (ja) パケット処理装置、及びパケット処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130513

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140307

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: 20140722

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140804

LAPS Cancellation because of no payment of annual fees