JP4343760B2 - ネットワークプロトコル処理装置 - Google Patents

ネットワークプロトコル処理装置 Download PDF

Info

Publication number
JP4343760B2
JP4343760B2 JP2004132442A JP2004132442A JP4343760B2 JP 4343760 B2 JP4343760 B2 JP 4343760B2 JP 2004132442 A JP2004132442 A JP 2004132442A JP 2004132442 A JP2004132442 A JP 2004132442A JP 4343760 B2 JP4343760 B2 JP 4343760B2
Authority
JP
Japan
Prior art keywords
address
information
network
tcp connection
vlan
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
JP2004132442A
Other languages
English (en)
Other versions
JP2005316629A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2004132442A priority Critical patent/JP4343760B2/ja
Priority to EP20040015675 priority patent/EP1613015A1/en
Priority to US10/882,244 priority patent/US7206864B2/en
Publication of JP2005316629A publication Critical patent/JP2005316629A/ja
Application granted granted Critical
Publication of JP4343760B2 publication Critical patent/JP4343760B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • H04L12/4675Dynamic sharing of VLAN information amongst network nodes
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/326Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level

Description

本発明は、ネットワークプロトコル処理装置に係り、特にユーザ毎に仮想的に資源分割されたホストコンピュータのネットワークプロトコル処理を専門的に処理するTOE(TCP/IP Offload Engine。TCP/IPオフロードエンジン)装置及びそれを搭載したサーバ装置に関する。
インターネットをはじめとするコンピュータ間のネットワーク通信に、最も多く利用されている通信プロトコルとして、TCP/IP(Transmission Control Protocol / Internet Protocol)が知られている。しかし、TCP/IPとりわけTCPプロトコルはその処理が複雑なため、パケット送受信時にホストプロセッサに大きな処理負荷を与える。
近年のネットワーク通信技術、特にイーサネット(Ethernet; イーサネットはXerox社の商標)の高速化技術の進歩は著しく、最近では転送速度が1G(ギガ)bit/sの1GbE1ギガビットイーサネット)が主流となっている。さらに、数年後には10G(ギガ)bit/sの転送速度を持つ10GbE10ギガビットイーサネット)が普及すると予想されている。
一般に、1bit/sのTCP/IPデータ転送には、1Hz分のCPU処理能力が必要であると言われている。この見積りに基づけば、10Gbit/sのTCPプロトコル処理には約10GHzのプロセッサの処理能力が必要となる。しかし、数年後、10GbEが普及する時期に、一般的なプロセッサは数GHzのクロックに留まり、その処理能力では10GbEの処理に十分ではないと見られている。すなわち、ネットワークの物理的な性能、即ちバンド幅でのデータ転送が出来ない。もしくは、ホストプロセッサが、プロトコル処理オーバヘッドのために、本来なすべきサービスタスクに遅延を生じるなどの事態が予想される。
このため、TCPのプロトコル処理をホストプロセッサに代わって処理する(オフロードする)専用のハードウェア装置が注目されている。この装置は、TOE(TCP/IP Offload Engine。TCP/IPオフロードエンジン)と呼ばれている。サーバ装置にこのTOE装置を搭載して、ネットワークのプロトコル処理をTOE装置に専念させることができる。これによって、ネットワークの性能を生かし、ホストプロセッサの負荷を下げ、ホストプロセッサが本来行うべきサービス処理性能を向上させることができる。
このTOE装置に関する技術としては、例えば、特開2001-268159公報(特許文献1)に開示されているような、TCP/IPをハードウェア的に処理する装置、すなわちTOE装置及びその動作方法、或いは、特開2001-339462公報(特許文献2)に記載の、TOEによる通信プロトコル処理方法が知られている。また、米国特許USP6,427,173 明細書(特許文献3)、米国特許USP6,334,153 明細書(特許文献4)、米国特許USP6,591,302 明細書(特許文献5)には、TCP/IPのオフロードエンジンの例が開示されている。
また、米国特許出願公開第2003/0135578 明細書(特許文献6)には、複数のネットワークに接続された1台のサーバ装置であって、各ネットワークにそれぞれ独立したプライベートアドレス空間が定義された、複数の論理空間を持つバーチャルサーバ装置が開示されている。このサーバ装置は、各ネットワークのIPアドレス識別子(Space-ID)ごとに独立したサービスを提供する。
特開2001-268159公報
特開2001-339462公報 米国特許USP6,427,173 明細書 米国特許USP6,334,153 明細書 米国特許USP6,591,302 明細書 米国特許出願公開第2003/0135578 明細書
ところで、上記米国特許出願公開第2003/0135578 明細書(特許文献6)に記載のような、ユーザ毎に論理的に分割されたサーバ装置にTOE装置を適用する場合、以下のような課題が上げられる。
一般に、IPネットワークの世界では、グローバルIPアドレスを用いて定義されるグローバルIPアドレス空間(WAN:Wide Area Network)は、世界に唯1つしか存在しない。しかし、プライベートIPアドレスを用いて定義され、企業組織内などで用いられるLAN(Local Area Network)(ここでは、プライベートIPアドレス空間を用いて定義されたネットワークを指す)は、組織毎に存在する。
従来のサーバ装置は、通常、組織の内部、すなわち唯一のLAN(Local Area Network)に接続して運用される。このため、複数のLANからの要求をサービスすることはなく、1つのみのプライベートIPアドレス空間に対応すれば十分であった。
ところが、サーバ装置を、例えばデータセンタのように、複数の組織が個別に所有するネットワークを、VLAN(Virtual LAN)(VLANはIEEE802.1Qで定義される)などを使って1箇所に集約した場所に設置した場合には、以下のような問題が発生する。
すなわち、データセンタ内には、複数の組織のために定義された、プライベートIPアドレス空間を持つ複数のLANが存在する。そのためサーバ装置は各々のLAN(即ち各プライベートIPアドレス空間)からの要求を個別にサービスしなければならない。
TOE装置は、TCP/IPプロトコル処理を行なうために、自ホストを片方の端(例えばソケット端)として確立しているTCPコネクションの識別情報を保持する必要がある。従来のTOE装置は、コネクションの識別情報として、自IPアドレス番号、相手IPアドレス番号、自ポート番号、相手ポート番号の組を用いている。しかし、この方法では、パケットがどのネットワークに属しているかの情報がないため、複数のLANに接続した場合に、コネクションがどのLANに属するかの識別をすることが出来ない。
そのため、従来のTOE装置を用いたデータセンタ内のネットワークでは、互いにIPアドレスが衝突しないようにアドレスを付与しなければならなかった。従って、異なる企業間でもお互いにIPアドレスが衝突しないように管理しなければならず、大変不便であった。
さらに、従来のTOE装置には、ホストプロセッサがTCPコネクションを確立し、TOE装置に状態情報を渡す方式のものや、TOE装置がTCPコネクションを確立する方式のものが存在する。これらいずれのものでも、ホストプロセッサはTCPコネクションの識別情報をTOE装置に渡すホストプロセッサとTOE間のインターフェイスが必要となる。そして、その識別情報にはコネクションの属するネットワークの情報が含まれていなければならない。
さらに、TOE装置がコネクションを確立する場合には、相手ホストへのパケットをどのゲートウェイもしくはどのホストプロセッサへに渡す必要があるかを知るために、ルーティングテーブル(経路表)やARP表を参照する必要がある。しかし、ルーティングテーブルやARP表は、プライベートIPネットワーク毎に用意する必要があり、従来のTOE装置は複数のルーティングテーブルやARP表をLAN(プライベートIPアドレス空間)ごとに切り替えて参照する仕組みがない。
本発明の目的は、複数の論理分割されたネットワークに接続されるサーバ装置のTCPプロトコル処理をオフロード可能なTOE装置を提供することにある。
本発明の他の目的は、TCPコネクションレベルまでネットワークを分離して、識別することができるネットワークプロトコル処理装置及び処理方法を提供することにある。
本発明に係るネットワークプロトコル処理装置は、自IPアドレス、相手IPアドレス、自ポート番号、相手ポート番号を含む情報、及びIEEE802.1Qで定義されるVLAN-IDを含む情報を用いて、TCPコネクションを識別するものである。これにより、IEEE802.1Qで定義されるVLAN-IDによりTCPコネクションレベル(OSI参照モデルのセッションレベル)までネットワークを識別することができる。
好ましい例では、ネットワークを通して受けるユーザからの要求を処理するホストプロセッサと、ホストプロセッサに接続され、ネットワークに接続されるネットワークポートと、TCP/IPプロトコル処理を行なうプロセッサと、TCPコネクションの識別情報を保持するメモリを有するTOE装置と、を有し、
自IPアドレス、相手IPアドレス、自ポート番号、相手ポート番号を示す情報、及びIEEE802.1Qで定義されるVLAN-IDを含むフレーム情報をTCPコネクションの識別情報として使用するサーバ装置として構成される。
また、好ましくは、ホストプロセッサから、VLAN-IDを含むTCPコネクションの識別情報を受け取るインターフェイスを有し、ホストプロセッサはTOE装置に対してVLAN-IDを含むTCPコネクションの識別情報を転送する。
本発明に係る、論理的に複数に分割されるネットワークに対するプロトコル処理を行うサーバ装置におけるネットワークプロトコル処理方法においては、ホストプロセッサで、あるユーザのネットワーク設定情報のTCPコネクション情報として、少なくとも、自IPアドレス、相手IPアドレス、自ポート番号、相手ポート番号を示す情報、及びネットワークを論理的に複数に分割するために定義されたID、好ましくはIEEE802.1Qで定義されるVLAN-IDを含む情報を登録するTCPコネクション情報テーブルを生成して、TCPコネクションを確立するステップと、ホストプロセッサからTCPコネクション情報をTOE装置に渡すステップと、TOE装置で、TCPコネクション情報に基づき、新たにコネクションテーブルを生成して、コネクションテーブルに関する情報をコネクションリストに登録するステップとを有する。
そして、前記TOE装置において、コネクションリストを検索して、該コネクションテーブルが登録されているかをチェックするステップと、このチェックの結果、コネクションテーブルが登録されており、かつ送信すべきデータが有る場合、そのデータからTCP/IPパケットを生成し、パケットの特定のフィールドにIEEE802.1Qで定義されるVLAN-IDを格納して、該パケットをネットワークへ送出するステップとを有する。
また、一例では、TCPコネクションの識別情報により分離されたコネクション情報テーブルから参照される送信バッファと受信バッファをホストプロセッサとのデータインターフェイスとし、送信時には、該送信バッファからパケットを取り出し、送信パケットにVLAN-IDを含めて送出し、受信時には、ネットワークから受信したパケットに含まれるVLAN-IDを用いてコネクションを識別し、該VLAN-ID毎に分離されたコネクション情報テーブルから参照される受信バッファへパケットを格納する。
本発明によれば、ユーザ毎に論理的に分割されたネットワークに接続されたサーバ装置のTCPプロトコル処理をオフロードすることができ、TCPコネクションレベルまでネットワークを識別することができる。これにより、ネットワークの性能を生かし、ホストプロセッサの負荷の低下を防止することができる。
以下、図面を参照して、本発明の実施形態について詳細に説明する。
図1は、一実施形態におけるサーバ装置が使用されるネットワークの物理的な構成図を示す。
サーバ装置102は、データセンタ101内に設置され、ホストプロセッサ103、ホスト内メモリ104、ネットワークプロトコル処理装置であるTOE装置106、ストレージI/F110、及びこれらを接続するバス又はスイッチ105を備えて構成される。
また、TOE装置106は、TOEプロセッサ107、TOE内メモリ108、ネットワーク物理ポート109を備えている。これらは相互に接続され、サーバ装置102内のホストプロセッサ103、ホスト内メモリ104とはPCI等のバスもしくはスイッチにより接続される。サーバ装置102は、物理LAN121を介して、データセンタ管理PC122、複数のサーバ123、125、及びゲートウェイ124、125等の他のコンピュータに接続される。
なお、データセンタ101は、インターネット130を介してユーザである、企業のPC131,132、又は一般ユーザのPC133,134等に接続される。
・IEEE802.1Qによるネットワークの論理分割について
図1に示す物理ポート109および物理LAN121は、IEEE802.1Qで定義されるVLAN機能により、図2ように論理的に分割される。
以下、図2を参照して、論理的なネットワークの構成について説明する。
TOE装置106内のネットワーク物理ポート(図1の109)は、IEEE802.1QのVLANタグ機能を用いて、図2の109m、109a、109bのような複数の仮想ポートに論理的に分割される。そして、各々の仮想ポートからサーバ装置102の外に接続されるネットワークは、IEEE802.1QのVLANタグ機能を用いて、論理的に複数の仮想的なネットワーク(VLAN)121m、121a、121bに分割される。
物理ポート及びネットワークの論理的な分割は以下のように行なわれる。
図3に本例のネットワーク上で伝搬されるイーサネットパケットフレームを示す。パケットには、通常のIEEE802.3で定義されるイーサネットフレームのフィールド、即ちプリアンブル、SFD、宛先MACアドレス、送信元MACアドレス、長さまたはタイプ、データまたはLLC、FCSの情報列に加えて、IEEE802.1Qで定義されるVLANタグフィールドの情報列、即ちTPID(Tag Protocol ID:タグプロトコル識別子)、及びTCI(Tag Control Information:タグプロトコル情報)の情報が含まれる。TPIDはこのフレームがタグ付きフレームであることを示す値(0x8100)が格納される。
図4にTCIの詳細を示す。
TCIは、各ユーザアプリケーションが設定する優先情報である、3ビットのユーザプライオリティ(User Priority)フィールドと、1ビットのCFI(Canonical Format Identifier)フィールドと、12ビットのVID(VLAN tag Identifier)フィールドから構成される。このVID(VLAN tag Identifier)フィールドに、VLANタグ番号が格納される。
IEEE802.1Qでは、ネットワークに伝搬されるイーサネットパケットにこのVIDを含むことにより、ネットワークを論理的に複数に分割している。例えば、A社用のイーサネットフレームのVIDには「1」が、B社のイーサネットフレームのVIDには「2」が割り当てられ、各々の組織に割り当てられた値がVIDフィールドに格納される。パケットのVIDフィールドの値により、物理的に1本のネットワークは仮想的に複数のネットワークに分割される。本例では物理ネットワーク121が、論理的に3つのネットワーク、即ち管理用VLAN121mと、A社用のVLAN121aと、B社用のVLAN121bに分割される。
・サーバ内の論理分割
図5は、ホスト内メモリの記憶構成を示す。
サーバ装置102のホスト内メモリ104には、アプリケーションプログラムとして、装置管理プログラム501、A社用管理プログラム502、A社用ファイルサーバプログラム503、B社用管理プログラム504およびB社用ファイルサーバプログラム505が格納されている。これらは通常、ディスク装置127に記憶されていて、必要により読み出されてホスト内メモリ104に格納される。
装置管理プログラム501は、サーバ装置102上で稼働するアプリケーションプログラムであり、データセンタ管理PC122と通信し、A社用管理プログラム502の起動、B社用管理プログラム504の起動、および、A社環境情報522やB社環境情報523に対してディスク装置127等のデバイスのアクセス許可の変更などを行う。
A社用管理プログラム502は、A社用ファイルサーバプログラム503が稼働する設定を行い、A社用ファイルサーバプログラム503を起動するとともに、A社サーバ123と通信し、A社用ファイルサーバプログラム503の停止、再開などを行う。
A社用ファイルサーバプログラム503は、A社サーバ123が要求するファイルアクセス要求を受付け、オペレーティングシステム(OS)500が提供するファイルシステム処理部543を利用し、ディスク装置127に対してファイルの書き込みや、読み出しを行い、結果をA社Webサーバ123に返す。
B社用管理プログラム504およびB社用ファイルサーバプログラム505の動作は、A社用管理プログラム502およびA社用ファイルサーバプログラム503の動作と同様である。
オペレーティングシステム(OS)500には、各種の情報が格納され、この情報に基づいて、サーバ装置102上で稼働し、前述したアプリケーションプログラム501〜505に様々なインタフェースを提供し、プロセス情報の制御やI/O処理、ファイルシステムサービスなどを提供する。
このホスト内メモリ104に格納される情報としては、前述した各アプリケーションプログラム501〜505において、実行実体であるホストプロセッサ103の割り当てに必要な第1プロセス情報511、第2プロセス情報512、第3プロセス情報513、第4プロセス情報514、第5プロセス情報515と、これらの情報に基づいて、各種のアプリケーションプログラムが実行されるときにアクセス可能なデバイスなどの許可および制限情報である管理環境情報521、A社環境情報522、およびB社環境情報523がある。また、環境情報521〜523内には、ネットワーク設定情報531〜533が含まれる。管理環境情報521内には管理ネットワーク設定情報531が含まれる。A社環境情報522内にはA社ネットワーク設定情報532が含まれる。B社環境情報523内にはB社ネットワーク設定情報533が含まれる。
オペレーティングシステム(OS)500には、さらに、各種の処理部が格納される。ここで処理部とはOSの機能を果たすためのプログラムであり、これらには以下のものがある。すなわち、プロセス情報生成時に呼び出されるプロセス情報生成処理部541、プロセス情報が指すアプリケーションプログラムに対して停止、終了、再開等の制御を行うプロセス情報制御処理部542、プロセス情報が指すアプリケーションプログラムにアクセス可能なデバイスなどを許可および制限する情報を変更する時に呼び出される環境情報変更処理部543、デバイスなどへのアクセスの際、その正当性をチェックする許可デバイス判定処理部544、ファイルシステムサービスを提供するファイルシステム処理部545、ストレージI/F110に接続されるディスク装置127に入出力を行うストレージI/O処理部546およびネットワーク物理ポートを介して通信を行うネットワーク処理部547である。
第1プロセス情報511は、装置管理プログラム501を指すプロセス情報であり、装置管理プログラム501の動作を管理するための情報である。第1プロセス情報511は管理環境情報521に属し、この情報に基づいてアクセス可能なデバイスの制限を受ける。
第2プロセス情報512は、A社用管理プログラム502を指すプロセス情報であり、A社用管理プログラム502の動作を管理するための情報である。第3プロセス情報513は、A社用ファイルサーバプログラム503を指すプロセス情報であり、A社用ファイルサーバプログラム503の動作を管理するための情報である。第2プロセス情報512および第3プロセス情報513は、A社環境情報522に属し、この情報に基づいてアクセス可能なデバイスの制限を受ける。
第4プロセス情報514は、B社用管理プログラム504を指すプロセス情報であり、B社用管理プログラム504の動作を管理するための情報である。第5プロセス情報515は、B社用ファイルサーバプログラム505を指すプロセス情報であり、B社用ファイルサーバプログラム505の動作を管理するための情報である。第4プロセス情報514および第5プロセス情報515は、B社環境情報523に属し、この情報に基づいてアクセス可能なデバイスの制限を受ける。
管理環境情報521は、装置管理を行うため、データセンタ管理者のみが管理者用PC122から管理VLAN121mを介してアクセスすることができ、全てのデバイスに対するアクセス権を管理するための情報を保持するように管理される。
A社環境情報522は、A社のファイルサーバプログラム503の稼働環境情報を提供するため、データセンタ101とA社との契約によりA社に許可されるネットワーク用仮想ポート109a、ディスク装置127のデバイスへのアクセス権を管理するための情報を保持するようにデータセンタ管理者用PC122により管理される。A社のファイルサーバ503によるディスク装置127へのアクセス権、および、A社ネットワーク用仮想ポート109aの使用は、契約により許可される。
B社環境情報522は、B社のファイルサーバプログラム505の稼働環境情報を提供するため、データセンタ101とB社との契約によりB社に許可されるネットワーク用仮想ポート109b、ディスク装置127のデバイスへのアクセス権を管理するための情報を保持するようにデータセンタ管理者用PC122により管理される。B社のファイルサーバ505によるディスク装置127へのアクセス権、および、B社ネットワーク用仮想ポート109bの使用は、契約により許可される。
プロセス情報生成処理部541は、装置管理プログラム501、A社用管理プログラム502およびB社用管理プログラム504により呼び出されるプログラムである。プロセス情報生成処理部541は、これを呼び出したアプリケーションプログラムと同じ環境情報に属するプロセス情報を生成する機能を有する。これに加え、環境情報を指定することで、新たな環境情報を生成し、その環境情報に属するプロセス情報を生成する機能も有する。ただし、新たな環境情報を生成する機能は、管理環境情報521に属する装置管理プログラム501の実行でのみ可能である。すなわち、管理者権限をデータセンタ管理者のみに与える。
プロセス情報制御処理部542は、プロセス情報が指すアプリケーションプログラムに対して停止、終了、再開等の制御を行うことができる。この機能は、管理環境情報521に属する第1プロセス情報511が指す装置管理プログラム501からは全てのアプリケーションプログラムに対して制御することができるが、管理環境情報521以外に属するプロセス情報が指すアプリケーションプログラム(A社環境情報522およびB社環境情報523に属する第2プロセス情報512から第5プロセス情報515が指すプログラム)からは、同一環境情報に属するアプリケーションプログラムに対してのみ制御することができる。
環境情報変更処理部543は、指定した環境情報に対してデバイスのアクセスの許可・禁止を設定、変更することができる。この機能は、管理環境情報521に属する第1プロセス情報511が指す装置管理プログラム501のみが実行可能である。すなわち、管理者権限をデータセンタ管理者のみに与える。
許可デバイス判定処理部544は、アプリケーションプログラムからデバイスへのアクセスが要求されたとき、アクセスを要求したアプリケーションプログラムを指すプロセス情報が属する環境情報を参照する。アクセスしようとするデバイスがそのアプリケーションプログラムにアクセス許可されていない場合、デバイスへのアクセスは失敗となる。
ファイルシステム処理部543は、ディスク上のデータ配置を管理し、ディスク領域を用いて木構造の名前空間の提供と、ファイル格納を可能にしている。名前空間は、ルートディレクトリと呼ぶ木の根を「/」で表し、ファイル名探索の起点としている。また、名前を持つディレクトリと呼ぶ木の節、および、名前を持つファイルと呼ぶ木の葉を持つ。ディレクトリは、下位のディレクトリやファイル名を格納し、ディレクトリ間の区切りに「/」を用いる。複数のディスクに作成された木構造の名前は、マウント(mount)操作により、一方の根を節に接続することができる。各環境情報521〜523には、ファイルシステムのマウントテーブルがあり、環境情報毎に木の一部を変更することができる。また、環境情報生成時には、生成する環境情報のルートディレクトリを、指定したディレクトリに変更することができる。これにより、指定したディレクトリ以外のファイルを、環境情報に属するプロセス情報が指すアプリケーションプログラムからアクセスできないようにすることができる。
ストレージI/O処理部546は、ストレージI/F110に接続されるディスク装置127への入出力を行う。入出力を要求するプロセス情報が指すアプリケーションプログラムは、第一に、ストレージI/O処理部にストレージデバイスのオープン(open)処理を行い、後続の処理で使用するハンドルを得る。open処理では、許可デバイス判定処理部544を呼び、指定されたデバイスがアクセス許可されていることを確認する。許可されていないときは、open処理はできず、デバイスへのアクセスは失敗となる。
ネットワーク処理部544は、ネットワークプロトコル処理(TOE)装置106を介して他のサーバ装置との通信を行う。ネットワーク処理部544には、TCPコネクション開設までのプログラムが格納される。ホストプロセッサは、同プログラムを実行しTCPコネクションを開設する。
図6は、図5におけるA社環境情報522の詳細な例を示す。
A社環境情報522には、A社のネットワーク設定情報532が含まれる。
ネットワーク設定情報532は、使用可能ポートリスト601、ARP表602、ルーティングテーブル603、コネクションリスト604、及びTCPコネクション情報テーブル605を含む。
図7は、上述の使用可能ポートリスト601の詳細な例を示す。
このポートリスト601には、A社が使用可能なネットワークポートが記されている。この例では、A社は、物理ポート番号が「0」、VIDが「1」の仮想ポートのみを使用可能であり、そのIPアドレスが192.168.0.1であることが示されている。
図8は、上述のARP表602の詳細な例を示す。
ARP表602は、同一のVLANに接続された他のホストのIPアドレスとMACアドレスとの対応関係を示している。この図の例では、第1のエントリは、IPアドレスが192.168.0.1のホストのMACアドレスが00-11-22-00-11-01であることを示している。さらに、第2のエントリは、IPアドレスが192.168.0.2のホストのMACアドレスが00-11-22-00-11-02であることを示している。以下同様である。
図9は、ルーティングテーブル603の詳細な例を示す。
ルーティングテーブルは、宛先ホストのIPアドレスが与えられた時に、そのパケットを次に転送すべきホスト(next step)を示すテーブルである。図示のルーティングテーブル603は、A社ネットワーク設定情報532内の例で、A社の環境に割り当てられたホストのIPアドレスが192.168.0.1、デフォルトゲートウェイが192.168.0.254の場合である。
第1のエントリは、IPアドレスが192.168.0.1のホスト(すなわち自分自身)へのIPパケットは、"lo"(loopback)インターフェイスを介して、127.0.0.1(local host address)へ送出すべきであることを表している。第2のエントリは、192.168.0.0(ただし、ネットマスクが255.255.0.0なので下位16ビットは何でもよい)へのパケットは"eth0"インターフェイスを介して、ゲートウェイを介さず、宛先IPアドレスへ直接送付すべきであることを表している。
第3のエントリは、127.0.0.0(ただし、ネットマスクが255.0.0.0なので下位24ビットは何でもよい)へのパケットは、"lo"(loopback)インターフェイスを介して、127.0.0.1(local host address)へ送出すべきであることを表している。第4のエントリは、上記エントリのいずれにも当てはまらないIPアドレスへのパケットは、"eth0"インターフェイスを介して192.168.0.254(デフォルトゲートウェイ)へ送出すべきであることを表している。
なお、同表の「メトリック」の列は、宛先ホストまでの距離を表し、到達可能な複数の経路が見付かった場合の、経路比較のために用いられるが、本例では全て「1」となっており、比較には用いられない。
さらに、ネットワーク設定情報532内には、コネクションリスト604とTCPコネクション情報テーブル605が含まれる。TCPコネクション情報テーブル605は、A社の環境下のプロセスが生成したTCPコネクションの情報を含む。TCPコネクション情報テーブル605は、TCPコネクションごとに生成される。コネクションリスト604は、A社の環境において生成されたTCPコネクション情報テーブル605の一覧が、ポインタのリストの形式で格納される。
送信ソケットバッファ606と受信ソケットバッファ607はTCPコネクション毎に生成される。各バッファには、送信データと受信データが格納され、ホストとTOE装置とのデータ受け渡しのインターフェイスとして用いられる。TCPコネクション情報テーブル605内の、送信ソケットバッファアドレスフィールド(605の#10)と受信ソケットバッファアドレスフィールド(605の#11)にそれらのアドレスが格納される。
・TCPコネクションの開設
本実施例のサーバ装置は、TCPコネクションの確立までの手続きは、ホストプロセッサ103が行う。TOE装置106はTCPコネクション確立までの間、通常のNIC(Network Interface Card)として動作する。TOE装置106は、ホスト内メモリ領域104のNICインターフェイスバッファ541の送信バッファ551から、イーサネットフレーム形式で格納されたパケットを取り出してネットワークへ送出し、ネットワークから受信したパケットを、イーサネットフレーム形式で、ホスト内メモリ領域のNICインターフェイスバッファ541の受信バッファ552へ格納する。TOE装置がNICとして動作している間、ホストプロセッサは、NICインターフェイスバッファ541の送信バッファ551と受信バッファ552を介してTOE装置とデータの受け渡しを行なう。これはイーサネットフレームのレベルで行なわれる。TOE装置がNICとして動作している間、TCP/IPのプロトコル処理はホストプロセッサが行なう。
ホストプロセッサ103は、A社用ファイルサーバプログラム503に書かれたコネクション開設の命令を実行すると、ホスト内メモリ上104のA社環境情報522内のA社ネットワーク設定情報532内にTCPコネクション情報テーブル605を生成し、コネクションリスト604に新たにエントリを生成し、TCPコネクション情報テーブル605のアドレスを登録する。さらに送信ソケットバッファ606と受信ソケットバッファ607を確保し、それらのアドレスを、TCPコネクション情報テーブル605の送信ソケットバッファアドレス(605の#10)と受信ソケットバッファアドレス(605の#11)のフィールドに設定する。
そして、相手ホストとのTCPコネクション開設の手続きを実施する。コネクションの開設の際、イーサヘッダ(図3)のVIDフィールド(図4の#3)にはA社に割り当てられたVLAN-ID、すなわち、使用可能ポートリスト601に示されたVIDの値を格納する。なお、TCPコネクション開設は、一般にthree way hand shake方式として知られている手順に従って行う。
ホストプロセッサ103が相手ホストとのTCPコネクションを確立した時点で、そのコネクションの状態を表すTCPコネクション情報テーブル605には以下の内容が登録される。
(1)VLAN-ID:本コネクションが張られたVLANのID番号。
(2)自IPアドレス:A社仮想サーバのIPアドレス。使用可能ポートリストより算出する。
(3)相手IPアドレス:通信相手となるホストのIPアドレス。A社用ファイルサーバプログラムより指定される。
(4)自ポート番号:自分のポート番号。A社用ファイルサーバプログラムより指定される。
(5)相手ポート番号:通信相手のポート番号。A社用ファイルサーバプログラムより指定される。
(6)送信SEQ番号:送信ストリームのシーケンス番号。コネクション開設手順にて決定する。
(7)受信SEQ番号:送信ストリームのシーケンス番号。コネクション開設手順にて決定する。
(8)送信ウィンドウスケール:送信ウィンドウサイズのビットシフト値。コネクション開設手順にて決定する。
(9)受信ウィンドウスケール:受信ウィンドウサイズのビットシフト値。コネクション開設手順にて決定する。
(10)送信バッファアドレス:送信ソケットバッファのアドレス。
(11)受信バッファアドレス:受信ソケットバッファのアドレス。
・TCPコネクションのオフロード
TCPコネクションが確立する(ESTABLISHED状態になる)と、ホストプロセッサ103は、図10に示すコネクション情報ブロック1001にホスト側のコネクション状態情報を格納してTOE装置106に渡す。以下に、コネクション情報ブロック1001の各フィールドを説明する。
(1)VLAN-ID:TCPコネクション情報テーブルよりコピー。
(2)自IPアドレス:同上。
(3)相手IPアドレス:同上。
(4)自ポート番号:同上。
(5)相手ポート番号:同上。
(6)自MACアドレス:自ホスト内物理ポートのMACアドレス。自ホストIPアドレスをキーにARP表を検索して算出する。
(7)相手MACアドレス:相手ホストもしくはゲートウェイのMACアドレス。相手IPアドレスをキーとして、ルーティングテーブルを検索して送出先IPアドレスを算出し、さらにARP表を検索して送出先IPアドレスのMACアドレスを算出する。
(8)送信SEQ番号:TCPコネクション情報テーブルよりコピー。
(9)受信SEQ番号:同上。
(10)送信ウィンドウスケール:同上。
(11)受信ウィンドウスケール:同上。
(12)送信バッファアドレス:同上。
(13)受信バッファアドレス:同上。
TOE装置106では、TOEプロセッサ107がコネクション情報ブロック1001の情報に基づき、TOE装置内メモリ108に、図12のような、新たにコネクションテーブル1202を1つ生成し、このテーブルのポインタをコネクションリスト1201へ追加登録する。
・送信手順
次に、図14に従って、サーバ装置102がパケットを送信する手順について説明する。
A社のプロセス(A社用管理プログラム502を実行する第2プロセス512や、ファイルサーバプログラム503を実行する第3プロセス513は、コネクション確立後のパケット送信時には、送信ソケットバッファ606にデータを格納し、パスまたはスイッチ105を介してTOE装置106へ送信開始信号を送出する(キックする)。もしくはTOE装置106がタイマにより一定時間間隔で自らをキックしてもよい。キックされたTOE装置106は、図14のフローチャートに従って送信処理を行なう(1401)。
TOEプロセッサ107はコネクションリスト1201を検索し(1402)、コネクションテーブル1202に登録された送信ソケットバッファ606のデータの有無を調べる(1403)。送信ソケットバッファ606にデータがあれば、データからTCP/IP/Etherパケットを生成する(TCP/IPプロトコル処理)(1404)。このとき、イーサヘッダ(図3)のVIDフィールド(図3の#6のTCIの詳細を示す図4中の#3)には、コネクションテーブル1202のVLAN-ID(#1)の値を格納する(1405)。そしてデータをネットワークへ送出する(1406)。
これを送信ソケットバッファ606が空になるまで繰り返し、さらに、これをコネクションリスト1201に登録されている全てのコネクションテーブル1202について繰り返す(1408)。
・受信手順
次に、図15を参照して、サーバ装置102がパケットを受信する手順を説明する。
TOE装置106には、VLANタグ付きイーサネットパケットが物理ポート109から入力される。TOE装置内106のTOEプロセッサ107がパケット受信時に実行する処理手順を図15のフローチャートに示す。
TOEプロセッサ107はパケットを受信すると、コネクションリスト1201にコネクションテーブル1202が登録されているか検査する(1502)。次に、受信パケット内のVID(図3の#6のTCIの詳細を示す図4中の#3)と自IPアドレス、相手IPアドレス、自ポート番号、相手ポート番号が、登録されているコネクションテーブル1202の値と全て一致するかどうか検査する(1503)。もし全て一致すれば、そのパケットはそのコネクションに属するため、受信したパケットの通常のTCP受信処理、即ちデータからTCP/IP/Etherヘッダの除去、ACK送信、SEQ増加などの処理を行い(1504)、ヘッダを取り除いたデータを受信ソケットバッファ607へ格納する(1505)。もし、値が一致しない場合には、他の全てのコネクションテーブル605について上記を繰り返す(1508)。パケットがどのコネクションにも属さない場合、TOEプロセッサ107はNICインターフェイスバッファ541の受信バッファ552へパケットを格納する(1506)。最後に、受信割り込み通知信号をホストプロセッサへ通知し(1507)、受信処理を終了する(1509)。
・他の実施形態
上述した実施例他の実施形態として、例えばコネクションの開設や、ルーティングの解決や、ARPの解決等をTOEが実施する形態が考えられる。このために、図11のようにコネクション情報ブロック1101内に、ARP表アドレス(#14)とルーティングテーブルアドレス(#15)を加え、TOE装置106内のメモリ108には図13のように、コネクションテーブル1203内に、ARP表アドレス(#14)とルーティングテーブルアドレス(#15)を加える。
これにより、TOE装置は、例えば新たにコネクションを開設する場合、もしくは、ネットワーク構成が変更され、相手ホストまでの経路が変化した場合、ホスト内メモリのARP表602、ルーティングテーブル603を参照し、ゲートウェイのIPアドレスやMACアドレスを解決することにより、前記実施例でホストプロセッサが実行していたコネクションの開設等が実行可能になる。
このように、従来のTOE装置では、VLAN-IDによるネットワークの分離、区別をイーサネットレベル(OSI参照モデルのデータリンク層)までしかおこなっていなかったが、本実施形態によって、VLAN-IDによりTCPコネクションレベル(OSI参照モデルのセッションレベル)までネットワークを分離、区別できる。
本発明の一実施例によるサーバ装置102を含むネットワークの物理的な構成を示す図。 一実施例によるサーバ装置102を含むネットワークの論理的な構成を示す図。 一実施例におけるVLANタグ付きイーサネットフレームの構成を示す図。 一実施例におけるTCIの詳細を示す図。 一実施例におけるホスト内メモリ104の記憶構成を示す図。 ホスト内メモリ104に格納されるA社環境情報522の例を示す図。 図6に示される使用可能ポートリスト601の例を示す図。 図6に示されるARP表602の例を示す図。 図6に示されるルーティングテーブル603の例を示す図。 一実施例におけるコネクション情報ブロックの例1を示す図。 一実施例におけるコネクション情報ブロックの例2を示す図。 一実施例におけるTOE装置内メモリ108の例1を示す図。 一実施例におけるTOE装置内メモリ108の例2を示す図。 一実施例における送信手順を示すフローチャートを示す図。 一実施例における受信手順を示すフローチャートを示す図。
符号の説明
101:データセンタ 102:サーバ装置
103:ホストプロセッサ 104:ホスト内メモリ
105:バス又はスイッチ 106:TOE装置
107:TOEプロセッサ 108:TOE内メモリ
109:ネットワーク用物理ポート 110:ストレージI/F
121:物理LAN 122:データセンタ管理PC
123,125:サーバ 124,126:ゲートウェイ
127:ディスク装置。

Claims (5)

  1. 記憶装置と接続されるサーバ装置において、
    ネットワークを通して受けるユーザからの要求を処理するホストプロセッサと、第一メモリと、第二メモリを有するTOE装置と、を有し、
    前記TOE装置は、前記ホストプロセッサに接続され、前記ネットワークに接続されるネットワークポートと、TCP/IPプロトコル処理を行うTOEプロセッサと、を有し、
    前記サーバ装置は、自IPアドレス、相手IPアドレス、自ポート番号、相手ポート番号を示す情報、及びIEEE802.1Qで定義されるVLAN−IDを含むフレーム情報をTCPコネクションの識別情報として使用するものであり、
    前記ネットワークポートは、複数の仮想ポートに論理的に分割されており、
    前記複数の仮想ポートはそれぞれ、複数のVLANの一つと論理的に接続されており、
    前記第一メモリは、
    TCPコネクションを確立するために参照される、IPアドレスとMACアドレスとの対応関係を示すARP表と、
    パケットの最終的な宛先を示す複数のIPアドレスと、当該複数のIPアドレス各々を最終的な宛先とするパケットを次に転送すべき装置の宛先を示す複数のIPアドレスと、の対応関係を示す、前記複数のVLANのそれぞれに設けられたルーティングテーブルと、
    前記複数のVLANごとに設けられた、当該VLANと接続されるファイルサーバからいずれの仮想ポートにアクセスできるかを示す情報と、
    前記複数のVLANごとに設けられた、当該VLANと接続されるファイルサーバから前記記憶装置に対するアクセスについての許否を示す情報と、
    接続が確立しているTCPコネクションに関するものではないデータの受け渡しを、前記ホストプロセッサとの前記TOE装置との間で行うためのNICインターフェースバッファと、を有し、
    前記第二メモリは、接続が確立しているTCPコネクションについての、VLAN−ID、自IPアドレス、相手IPアドレス、自ポート番号、及び相手ポート番号を示す一又は複数のTCPコネクション情報を有し、
    前記第一メモリは、更に、前記TCPコネクション情報の各々と対応する、一又は複数の受信ソケットバッファを有し、
    前記TOEプロセッサは、パケットを受信した際に、受信したパケット内のVLAN−ID、自IPアドレス、相手IPアドレス、自ポート番号、及び、相手ポート番号が、前記第二メモリ内の前記TCPコネクション情報のいずれかと一致するか否かを判断し、
    一致する場合には、受信したパケットからヘッダ情報を除去したデータを、当該一致するTCPコネクションと対応する受信ソケットバッファに格納し、
    一致しない場合には、受信したパケットを、前記NICインターフェースバッファに格納することを特徴とするサーバ装置。
  2. ネットワークを通して受けるユーザからの要求を処理するホストプロセッサと、第一メモリと、第二メモリを有するTOE装置とを有し、かつ記憶装置と接続されるサーバ装置を用いて、プロトコルを処理するネットワークプロトコル処理方法であって、
    前記TOE装置は、前記ホストプロセッサに接続され、前記ネットワークに接続されるネットワークポートと、TCP/IPプロトコル処理を行うTOEプロセッサと、を有し、
    前記サーバ装置は、自IPアドレス、相手IPアドレス、自ポート番号、相手ポート番号を示す情報、及びIEEE802.1Qで定義されるVLAN−IDを含むフレーム情報をTCPコネクションの識別情報として使用するものであり、
    前記ネットワークポートは、複数の仮想ポートに論理的に分割されており、
    前記複数の仮想ポートはそれぞれ、複数のVLANの一つと論理的に接続されており、
    前記第一メモリは、TCPコネクションを確立するために参照される、IPアドレスとMACアドレスとの対応関係を示すARP表と、パケットの最終的な宛先を示す複数のIPアドレスと、当該複数のIPアドレス各々を最終的な宛先とするパケットを次に転送すべき装置の宛先を示す複数のIPアドレスと、の対応関係を示す、前記複数のVLANのそれぞれに設けられたルーティングテーブルと、前記複数のVLANごとに設けられた、当該VLANと接続されるファイルサーバからいずれの仮想ポートにアクセスできるかを示す情報と、前記複数のVLANごとに設けられた、当該VLANと接続されるファイルサーバから前記記憶装置に対するアクセスについての許否を示す情報と、接続が確立しているTCPコネクションに関するものではないデータの受け渡しを、前記ホストプロセッサとの前記TOE装置との間で行うためのNICインターフェースバッファと、を有し、
    前記第二メモリは、接続が確立しているTCPコネクションについての、VLAN−ID、自IPアドレス、相手IPアドレス、自ポート番号、及び相手ポート番号を示す一又は複数のTCPコネクション情報を有し、
    前記第一メモリは、更に、前記TCPコネクション情報の各々と対応する、一又は複数の受信ソケットバッファを有し、
    前記TOEプロセッサにおいて、パケットを受信した際に、受信したパケット内のVLAN−ID、自IPアドレス、相手IPアドレス、自ポート番号、及び、相手ポート番号が、前記第二メモリ内の前記TCPコネクション情報のいずれかと一致するか否かを判断し、
    一致する場合には、受信したパケットからヘッダ情報を除去したデータを、当該一致するTCPコネクションと対応する受信ソケットバッファに格納し、
    一致しない場合には、受信したパケットを、前記NICインターフェースバッファに格納することを特徴とするネットワークプロトコル処理方法。
  3. 請求項1記載のサーバ装置であって、
    前記第一メモリは、装置管理プログラムを記憶しており、
    前記装置管理プログラムは、前記サーバ装置と接続されるデータセンタ管理計算機と通信して、前記アクセスについての拒否を示す情報を変更することを特徴するサーバ装置。
  4. 請求項1記載のサーバ装置であって、
    前記サーバ装置は、
    前記複数のVLANのうち第一のVLANを介して計算機Aと論理的に接続され、
    前記複数のVLANのうち第二のVLANを介して計算機Bと論理的に接続され、
    前記第一メモリは、
    前記計算機Aからのファイルアクセス要求を受付け、前記記憶装置との間で書き込み処理若しくは読み出し処理を行うのに用いられるファイルサーバプログラムAと、
    前記計算機Bからのファイルアクセス要求を受付け、前記記憶装置との間で書き込み処理若しくは読み出し処理を行うのに用いられるファイルサーバプログラムBと、
    を記憶することを特徴とするサーバ装置。
  5. 請求項1記載のサーバ装置であって、
    前記ルーティングテーブルは更に、前記次に転送すべき装置に対するパケットの送信に用いるインターフェイス種別を示すことを特徴とするサーバ装置。
JP2004132442A 2004-04-28 2004-04-28 ネットワークプロトコル処理装置 Expired - Fee Related JP4343760B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004132442A JP4343760B2 (ja) 2004-04-28 2004-04-28 ネットワークプロトコル処理装置
EP20040015675 EP1613015A1 (en) 2004-04-28 2004-07-02 Network protocol processing device
US10/882,244 US7206864B2 (en) 2004-04-28 2004-07-02 Network protocol processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004132442A JP4343760B2 (ja) 2004-04-28 2004-04-28 ネットワークプロトコル処理装置

Publications (2)

Publication Number Publication Date
JP2005316629A JP2005316629A (ja) 2005-11-10
JP4343760B2 true JP4343760B2 (ja) 2009-10-14

Family

ID=35188388

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004132442A Expired - Fee Related JP4343760B2 (ja) 2004-04-28 2004-04-28 ネットワークプロトコル処理装置

Country Status (3)

Country Link
US (1) US7206864B2 (ja)
EP (1) EP1613015A1 (ja)
JP (1) JP4343760B2 (ja)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050021680A1 (en) * 2003-05-12 2005-01-27 Pete Ekis System and method for interfacing TCP offload engines using an interposed socket library
US7764709B2 (en) * 2004-07-07 2010-07-27 Tran Hieu T Prioritization of network traffic
KR100646858B1 (ko) * 2004-12-08 2006-11-23 한국전자통신연구원 Toe기반 소켓 정보의 생성 및 관리를 위한하드웨어 장치및 방법
JP2006195821A (ja) * 2005-01-14 2006-07-27 Fujitsu Ltd 情報処理システムの制御方法、情報処理システム、ダイレクトメモリアクセス制御装置、プログラム
US7496790B2 (en) * 2005-02-25 2009-02-24 International Business Machines Corporation Method, apparatus, and computer program product for coordinating error reporting and reset utilizing an I/O adapter that supports virtualization
US7464191B2 (en) * 2005-02-25 2008-12-09 International Business Machines Corporation System and method for host initialization for an adapter that supports virtualization
US7493425B2 (en) * 2005-02-25 2009-02-17 International Business Machines Corporation Method, system and program product for differentiating between virtual hosts on bus transactions and associating allowable memory access for an input/output adapter that supports virtualization
US20060193327A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation System and method for providing quality of service in a virtual adapter
US7398337B2 (en) * 2005-02-25 2008-07-08 International Business Machines Corporation Association of host translations that are associated to an access control level on a PCI bridge that supports virtualization
US20060195623A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Native virtualization on a partially trusted adapter using PCI host memory mapped input/output memory address for identification
US7543084B2 (en) * 2005-02-25 2009-06-02 International Business Machines Corporation Method for destroying virtual resources in a logically partitioned data processing system
US7308551B2 (en) * 2005-02-25 2007-12-11 International Business Machines Corporation System and method for managing metrics table per virtual port in a logically partitioned data processing system
US7870301B2 (en) * 2005-02-25 2011-01-11 International Business Machines Corporation System and method for modification of virtual adapter resources in a logically partitioned data processing system
US7376770B2 (en) * 2005-02-25 2008-05-20 International Business Machines Corporation System and method for virtual adapter resource allocation matrix that defines the amount of resources of a physical I/O adapter
US20060195848A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation System and method of virtual resource modification on a physical adapter that supports virtual resources
US7398328B2 (en) * 2005-02-25 2008-07-08 International Business Machines Corporation Native virtualization on a partially trusted adapter using PCI host bus, device, and function number for identification
US7546386B2 (en) * 2005-02-25 2009-06-09 International Business Machines Corporation Method for virtual resource initialization on a physical adapter that supports virtual resources
US7685335B2 (en) * 2005-02-25 2010-03-23 International Business Machines Corporation Virtualized fibre channel adapter for a multi-processor data processing system
US20060195618A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Data processing system, method, and computer program product for creation and initialization of a virtual adapter on a physical adapter that supports virtual adapter level virtualization
US7480742B2 (en) * 2005-02-25 2009-01-20 International Business Machines Corporation Method for virtual adapter destruction on a physical adapter that supports virtual adapters
US7386637B2 (en) * 2005-02-25 2008-06-10 International Business Machines Corporation System, method, and computer program product for a fully trusted adapter validation of incoming memory mapped I/O operations on a physical adapter that supports virtual adapters or virtual resources
US20060195617A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Method and system for native virtualization on a partially trusted adapter using adapter bus, device and function number for identification
US20060212870A1 (en) * 2005-02-25 2006-09-21 International Business Machines Corporation Association of memory access through protection attributes that are associated to an access control level on a PCI adapter that supports virtualization
US7475166B2 (en) * 2005-02-28 2009-01-06 International Business Machines Corporation Method and system for fully trusted adapter validation of addresses referenced in a virtual host transfer request
US7715409B2 (en) * 2005-03-25 2010-05-11 Cisco Technology, Inc. Method and system for data link layer address classification
KR100738339B1 (ko) 2005-12-01 2007-07-12 한국전자통신연구원 인터넷 프로토콜 오프로드의 패킷 전송 장치 및 방법
US20070136554A1 (en) * 2005-12-12 2007-06-14 Giora Biran Memory operations in a virtualized system
JP2007206955A (ja) * 2006-02-01 2007-08-16 Sony Corp 情報処理装置および方法、プログラム、並びに記録媒体
JP2007316946A (ja) * 2006-05-25 2007-12-06 Toshiba Tec Corp 情報処理装置
TWI326417B (en) * 2006-06-01 2010-06-21 Ind Tech Res Inst System and method for recognizing offloaded packet
JP2008061223A (ja) * 2006-08-04 2008-03-13 Canon Inc 通信装置及び通信方法
US7818460B2 (en) 2006-12-04 2010-10-19 Electronics And Telecommunications Research Institute Hardware device and method for transmitting network protocol packet
KR100900963B1 (ko) 2006-12-04 2009-06-08 한국전자통신연구원 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치 및 그방법
US8819271B2 (en) * 2007-05-24 2014-08-26 At&T Intellectual Property I, L.P. System and method to access and use layer 2 and layer 3 information used in communications
US20080304486A1 (en) * 2007-06-08 2008-12-11 Joshua Verweyst Graessley Multiplexed data stream protocol
US20080307102A1 (en) * 2007-06-08 2008-12-11 Galloway Curtis C Techniques for communicating data between a host device and an intermittently attached mobile device
FR2925190B1 (fr) * 2007-12-18 2009-11-20 Alcatel Lucent Procede et dispositif de communication entre plusieurs interfaces de connexion
JP5125793B2 (ja) * 2008-06-18 2013-01-23 日本電気株式会社 通信システム、ネットワーク装置及びそれらに用いるネットワーク接続方法
US8413172B2 (en) * 2008-08-20 2013-04-02 Sharp Laboratories Of America, Inc. Method and system for socket API call emulation
JP5233756B2 (ja) * 2009-03-06 2013-07-10 富士通株式会社 情報処理装置、識別情報設定プログラム、識別情報設定方法
US7990976B2 (en) * 2009-05-13 2011-08-02 Telefonaktiebolaget L M Ericsson (Publ) Negotiated secure fast table lookups for protocols with bidirectional identifiers
US10305910B2 (en) 2010-01-15 2019-05-28 Apple Inc. Accessing specialized fileserver
JP5060572B2 (ja) * 2010-03-09 2012-10-31 株式会社東芝 データ通信装置及び方法
JP5204195B2 (ja) 2010-10-29 2013-06-05 株式会社東芝 データ送信システムおよびデータ送信プログラム
JP5611889B2 (ja) 2011-05-17 2014-10-22 株式会社東芝 データ転送装置、データ送信システムおよびデータ送信方法
US8930690B2 (en) * 2012-03-21 2015-01-06 Microsoft Corporation Offloading packet processing for networking device virtualization
CN103546424A (zh) * 2012-07-10 2014-01-29 华为技术有限公司 一种tcp数据传输方法、tcp卸载引擎及系统
USRE49652E1 (en) 2013-12-16 2023-09-12 Qualcomm Incorporated Power saving techniques in computing devices
JP2015179328A (ja) 2014-03-18 2015-10-08 株式会社東芝 データ転送装置、データ受信システムおよびデータ受信方法
JP2015179444A (ja) 2014-03-19 2015-10-08 株式会社東芝 データ受信装置、データ受信方法、およびコンピュータプログラム
US10320918B1 (en) * 2014-12-17 2019-06-11 Xilinx, Inc. Data-flow architecture for a TCP offload engine

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09186723A (ja) 1995-12-29 1997-07-15 Hitachi Ltd ネットワーク通信処理方式
US6085238A (en) * 1996-04-23 2000-07-04 Matsushita Electric Works, Ltd. Virtual LAN system
US6687758B2 (en) 2001-03-07 2004-02-03 Alacritech, Inc. Port aggregation for network connections that are offloaded to network interface devices
US7167927B2 (en) 1997-10-14 2007-01-23 Alacritech, Inc. TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism
US6591302B2 (en) 1997-10-14 2003-07-08 Alacritech, Inc. Fast-path apparatus for receiving data corresponding to a TCP connection
US6226680B1 (en) 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US6427173B1 (en) 1997-10-14 2002-07-30 Alacritech, Inc. Intelligent network interfaced device and system for accelerated communication
US6353614B1 (en) 1998-03-05 2002-03-05 3Com Corporation Method and protocol for distributed network address translation
US6590861B1 (en) * 1999-03-18 2003-07-08 3Com Corporation Combining virtual local area networks and load balancing with fault tolerance in a high performance protocol
KR20010076328A (ko) 2000-01-19 2001-08-11 이정태 티씨피/아이피를 하드웨어적으로 처리하는 장치 및 그동작방법
JP3618277B2 (ja) 2000-05-29 2005-02-09 株式会社東芝 通信プロトコル処理方法および通信プロトコル処理装置
US7047314B2 (en) * 2000-12-28 2006-05-16 Oki Electric Industry Co., Ltd. Duplicate private address translating system and duplicate address network system
US7218639B2 (en) * 2001-11-01 2007-05-15 The Furukawa Electric Co., Ltd. Network system, transmission method, and computer program
US6895429B2 (en) * 2001-12-28 2005-05-17 Network Appliance, Inc. Technique for enabling multiple virtual filers on a single filer to participate in multiple address spaces with overlapping network addresses
US7496689B2 (en) * 2002-04-22 2009-02-24 Alacritech, Inc. TCP/IP offload device
US7114096B2 (en) * 2003-04-02 2006-09-26 International Business Machines Corporation State recovery and failover of intelligent network adapters
US7542476B2 (en) 2003-08-29 2009-06-02 Flash Networks Ltd Method and system for manipulating IP packets in virtual private networks
US7660322B2 (en) * 2003-12-11 2010-02-09 International Business Machines Corporation Shared adapter
US20050141434A1 (en) * 2003-12-24 2005-06-30 Linden Cornett Method, system, and program for managing buffers
US7383555B2 (en) * 2004-03-11 2008-06-03 International Business Machines Corporation Apparatus and method for sharing a network I/O adapter between logical partitions

Also Published As

Publication number Publication date
US20050246450A1 (en) 2005-11-03
US7206864B2 (en) 2007-04-17
JP2005316629A (ja) 2005-11-10
EP1613015A1 (en) 2006-01-04

Similar Documents

Publication Publication Date Title
JP4343760B2 (ja) ネットワークプロトコル処理装置
JP5167225B2 (ja) 1つのファイラー上の複数の仮想ファイラーが重複するネットワークアドレスを有する複数のアドレス空間に参加することを可能にする技術
US7107348B2 (en) Packet relay processing apparatus
US7496052B2 (en) Automatic VLAN ID discovery for ethernet ports
US7983257B2 (en) Hardware switch for hypervisors and blade servers
US11223579B2 (en) Data processing method, network interface card, and server
US8423639B2 (en) Switching API
US7630368B2 (en) Virtual network interface card loopback fastpath
WO2019204023A1 (en) Cross-regional virtual network peering
US20040109460A1 (en) Method and apparatus for bridging between networks
WO2020177246A1 (zh) 一种dpdk环境下基于nat的负载均衡方法
US7840655B2 (en) Address resolution protocol change enabling load-balancing for TCP-DCR implementations
US7526527B1 (en) Storage area network interconnect server
US7409432B1 (en) Efficient process for handover between subnet managers
US11546301B2 (en) Method and apparatus for autonomous firewall rule management
US10795912B2 (en) Synchronizing a forwarding database within a high-availability cluster
US7353260B1 (en) System and method for access control on a storage router
JP3232711B2 (ja) ルータ中継装置
US20170237691A1 (en) Apparatus and method for supporting multiple virtual switch instances on a network switch
Cisco General Commands
JP4485875B2 (ja) ストレージ接続変更方法、ストレージ管理システム及びプログラム
JP2001036581A (ja) 通信帯域設定システムと方法
Parr Enhanced address resolution in a multi-LAN Ethernet communications system
KR20050054148A (ko) 라우터에서 가상근거리통신망에 설정된 포워딩정보 처리방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061211

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20061211

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090310

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090508

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090709

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120717

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130717

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees