オフロード_(コンピュータ用語)
[Wikipedia|▼Menu]

コンピュータ用語のオフロード(: offloadあるいはoffloading、表記ゆれで off-loadやoff-loadingも)は、基本的にはあるシステムの負荷(英語のload。仕事、タスクなど)を軽減させることを意味し、通常は、あるシステムの負荷(仕事)を軽減させるために他のシステムにその仕事を分担させることを指す。また、その技術。文章中ではしばしば「負荷の軽減」や「負荷軽減」と訳されている。

この用語は、ネットワーク通信の負荷を軽減させる場面で、特に頻繁に用いられる。また、3DCG処理を行う際にCPUの負荷を軽減させる場面や、分散コンピューティングを行う場面や、CPUのデータ転送の負荷を軽減させるためにDirect Memory Accessを使用する場面でも用いられることがある。

なお稀に、「オフロード」がシステムで実行中のジョブを"停止"させることを意味する場合もある。たとえば、システム入替時などに使われる。アルファベットではOFF-LOADなどと表記される。
概説

システムの受け持つ機能の一部を外部システムに受け渡すことで、本体システムの負荷を軽減することは、パフォーマンス向上を目的としてしばしば用いられる手法である。負荷軽減の手法としてはロードバランシング(負荷分散)などもあるが、ロードバランシングは同等機能の機器を並列稼動させ、負荷を均等に分散する手法であるのに対し、オフロードは一部の機能だけに特化したシステムを本体システムから切り出して外部システムとする手法であり、その向かう方向は大きく異なる。この手法をオフロードと呼ぶ。
ネットワークアダプタ

近年、1000BASE-Tなどのような高速ネットワークが登場することで、以下に示されるような様々な処理がOSに負荷を与えていた。この負荷を軽減することを目的に、ネットワークアダプタにある程度の処理を任せるという手法がオフロードである。近年では、安価なネットワークアダプタでも標準的に行われている手法である。
チェックサムオフロード

インターネットの基盤プロトコルであり、事実上の標準であるIPを用いた通信はネットワーク通信の中心である。この状況下では、IP通信の負荷を下げることは、ネットワーク負荷を下げることとほとんど同じといえる。

IPv4では、パケットがビット化け等によって破壊されているかを検査するために、IPヘッダ内にチェックサムフィールドを持っている(参考:IPv4#パケット)。また、IP通信の約9割を占めるといわれているTCPのヘッダ内にもチェックサムフィールドが設けられている。すなわち、IPv4では大抵の場合、1つのパケットを送受信する際には、送信側と受信側でそれぞれ2回、チェックサムの算出が必要となる。

IPv6にはチェックサムフィールドは設けられていない(参考:IPv6#ヘッダ)。これはエラーチェックを上位層に任せているためであり、エラー訂正機能を持つTCPでのチェックサム算出はIPv6でも必要である。すなわち、IPv6では大抵の場合、1つのパケットを送受信する際には、送信側と受信側でそれぞれ1回、チェックサムの算出が必要となる。

このように、IP通信ではほとんどのケースにおいてパケットごとに1度以上、チェックサムの算出が必要となる。このチェックサム算出を、OSで行わずにネットワークアダプタに任せることで、OSの負荷を下げるというのがチェックサムオフロードである。IP層とTCP層、送信と受信によって、以下のように分かれる。

TCPチェックサム・オフロード(TCOとも略される)

受信TCPチェックサム・オフロード

送信TCPチェックサム・オフロード


IPチェックサム・オフロード

受信IPチェックサム・オフロード

送信IPチェックサム・オフロード

ネットワークアダプタが各オフロードに対応している場合、データ送信の際、OSはチェックサム算出を行わずネットワークアダプタに算出を任せる。ネットワークアダプタは、チェックサムの算出を行ってチェックサムを補いながら各パケットを送出する。データ受信の際、ネットワークアダプタはチェックサム算出を行い、その正否を別の形でOSに通知する。OSは、チェックサムを算出せずにネットワークアダプタから別の形で得られたチェックサム正否を用いてパケットの非破壊性を確認する。

Windowsでは、Windows 2000(NDIS 5)から実装され、Windows 2003 Server(NDIS 5.1)でデフォルト機能となった。Microsoft社が行ったテストでは、TCPチェックサムオフロードだけで、CPU使用率ベースで最大30%のパフォーマンス向上が得られたとしている[1]

なお、通常運用では問題とはならないが、WiresharkなどのLANアナライザを用いてパケットをキャプチャすると、チェックサムが誤っていないにもかかわらずチェックサムエラーが示されることがある。これは、送信パケットのチェックサム算出をネットワークデバイスに任せている関係で、キャプチャリングされるタイミング、つまりOSからパケットが送出される直前の段階では、チェックサムフィールドにチェックサム計算結果が含まれていないことによるものである。このような環境では、LANアナライザのチェックサムエラー検出機能を無効化しておく必要がある。受信パケットの場合はこのような事情はないため、パケットそのものが欠損していない限り、チェックサムエラーとなることはない。
TCPセグメンテーションオフロードとLarge Receiveオフロード

ネットワーク通信では、使用するプロトコルや下位層(通信機器など)に応じて、一度に送出できるサイズに制約が生じる。例えば、イーサーネットを使う上では一度に1500オクテットまでのデータしか扱うことができないなどである。TCPにおいて、送出データを一度に送出可能なサイズに分割することをセグメンテーションと呼んでいる。TCPセグメンテーションオフロードとは、この分割処理をネットワークアダプタに任せるというものである。TSOと略される。また、TCP Large Send(略称はLSO)やGeneric Segmentation Offload(略称はGSO)と呼ぶこともある。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:22 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef