トランスポート層

トランスポート層の最新ニュースをまとめて検索!

OSI参照モデル
7 アプリケーション層  
6 プレゼンテーション層
5 セッション層
4 トランスポート層
3 ネットワーク層
2 データリンク層
1 物理層

トランスポート層(トランスポートそう Transport layer)とは、コンピュータ電気通信では、TCP/IP参照モデルにおけるの4階層の内の第3層の事である。そこでは上位のアプリケーション層からのサービス要求に応じ、また下位のインターネット層に対してサービス要求を行う。トランスポート層はOSI参照モデルにおける7階層の内の第4層の名前でもある。そこでは上位のセッション層からのサービス要求に応じ、また下位のネットワーク層に対してサービス要求を行う。トランスポート層の定義はそれら2モデルで僅かに異なる。この記事では主としてTCP/IPモデルについて言及する。OSI参照モデルでのトランスポート層の定義も参照の事。


トランスポート・プロトコルとは、トランスポート層上のプロトコルである。インターネットにおける2大トランスポート・プロトコルとしては、コネクション型のTCP(Transmission Control Protocol)と、コネクション・レス型のUDP(User Datagram Protocol)が有る。TCPはより複雑で最も一般的である。その他の選択肢としては、Datagram Congestion Control Protocol(DCCP)やStream Control Transmission Protocol(SCTP)が有る。

トランスポート層は通常はホストコンピュータのオペレーションシステム上のプロセスに制御され、ルータやスイッチには制御されない。通常トランスポート層は、ネットワーク層によって提供された信頼性が低く極めて基本的なサービスを、より強力な物へ転換する。

TCP/IPモデルでは、トランスポート層はホストコンピュータ上の適切なアプリケーションプロセスへデータを配送する責任が有る。これは異なったアプリケーション・プロセスからのデータの統計的多重化、すなわちデータのパケット化、およびトランスポート層の各データ・パケット・ヘッダへの送信元/送信先ポート番号の追加を伴う。送信元および送信先のIPアドレスと共に、そのポート番号はネットワーク・ソケット、すなわちプロセス間通信の識別アドレスを構成する。OSI参照モデルでは、この機能はセッション層が対応している。

いくつかのトランスポート層プロトコル(例えばUDPでなくTCP)では、仮想回線の対応、言い換えれば基礎的なパケット指向のデータグラムネットワーク越しのコネクション型通信を提供する。バイトストリームはアプリケーション・プロセスに対してパケット・モード通信を隠蔽したまま配信される。これはコネクションの確立、セグメントと呼ばれるパケットへのデータ・ストリームの分割、セグメントの番号付けと不規則に並ぶデータの並べ換えを伴って実現される。

最終的に、いくつかのトランスポート層プロトコル(例えばUDPでなくTCP)は、始点から終点まで(エンド・ツー・エンド)の信頼できる通信、すなわち誤り検出コード自動再送要求(ARQ)プロトコルによるエラー復旧を提供する。ARQプロトコルは更に輻輳回避としても用いられるフロー制御も提供する。

UDPは極めて単純なサービスであり、仮想回路も信頼できる通信も提供せず、それらをアプリケーションに任せる。UDPパケットはセグメントというよりはむしろデータグラムと呼ばれる。

TCPは、WebブラウズのHTTPやメール転送を含む、多くのプロトコルに使われる。UDPは、膨大な数のホストへの再送は不可能である事から、マルチキャスト放送に使われる事もある。UDPは典型的には高いスループットと短い待ち時間を与える。従って、例えばIP-TVやIPテレフォニー、またオンライン・コンピュータ・ゲームという、時にはパケット・ロスが起こる事が許されるリアルタイム・マルチメディア通信に使われる事が多い。

多くの非IPベース・ネットワーク(例えばX.25フレームリレー、およびATM)では、トランスポート層よりはむしろネットワーク層やデータリンク層で、コネクション指向通信が実装されている。X.25、電話網のモデム、および無線通信システムでは、信頼できるノード対ノードの通信がより下位のプロトコル層で実装されている。

OSI/X.25プロトコル・スイートでは、(TP0としても知られ、最低限のエラー復旧を提供する)クラス0から(TP4としても知られ、インターネットに似た低信頼ネットワーク用に設計された)クラス4まで、五つのクラスのOSI トランスポート・プロトコルが存在する。

目次

[編集] トランスポート層サービスの一覧

トランスポート層によって自由に提供する事ができる多くのサービスが有る。全てのアプリケーションが全てのサービスを使える必要がないため、それらは強制ではない。いくつかは無駄なオーバヘッドになりかねず、またいくつかの場合では逆効果を招きかねない。

コネクション型
これは通常はコネクションレス・モデルに対応するより容易なため、ネットワーク層がコネクションレス・サービスしか提供しないところで、しばしばコネクション指向サービスはトランスポート層の中の最上部に組み込まれる。
配送順序の保証
一般的にネットワーク層は、データのパケットが送信された時と同じ順序で届く事を保証しない。しかしこれはよく望まれる機能であるので、トランスポート層がそれを提供する。配送順序を保証する最も単純な方法は、各パケットに番号を付ける事で、受信側がパケットを並べ替えられるようにする事である。
信頼できるデータ
パケットの待ち行列が一杯になりネットワーク・ノードがパケットを削除しなければならない時、ネットワーク輻輳に起因して、ルータ、スイッチ、ブリッジ、およびホストでパケットは喪失する可能性が有る。イーサネットは破損したパケットを再送しないため、パケットは混信や雑音が原因でイーサネットで喪失または破損する可能性が有る。パケットは根底にあるネットワークにより間違った順序で配送される事が有る。TCPなどのいくつかのトランスポート層プロトコルはこれを解決できる。チェックサムなどの誤り検出コードにより、そのトランスポート・プロトコルは、データが破損していないという事を検査したり、また送信者へACKメッセージが送られた事によってそれを検証しても良い。自動再送要求体系は喪失または破損データの再送に使われる事が有る。トランスポート層パケット・ヘッダでのセグメント付番の導入によりパケットは正しく並べ替えられる。もちろんエラーが無い事は不可能だが、検出されないエラーの数を大幅に減少する事は可能である。
フロー制御
コンピュータ上のメモリの量には限りが有るので、フロー制御をしないより大きなコンピュータは、処理前に受け取りきれないほどの大量の情報で、コンピュータを溢れさせる可能性が有る。今日では、帯域幅は比較的高価であるもののメモリは安価なので、これは大きな問題ではないが、初期の頃はより重要だった。フロー制御は受信者が悲鳴を上げる前に「(止まれ)ドウドウ!」と言う事を可能にする。ネットワークによって既にフロー制御が提供されている時も有るが、それが無いところで、トランスポート層はそれを付け加える事が有る。
輻輳回避
ネットワーク・ノードの待ち行列バッファが満杯となり、パケットを取りこぼし始める時にネットワーク輻輳が生じる。自動再送要求はネットワークの輻輳状態を持続してしまう可能性が有る。この状況はフロー制御にスロースタートを含む輻輳回避を付け加える事で回避できる。これは転送の開始やパケット再送の後に帯域幅の消費を低い水準で維持する。
Byte orientation
トランスポート層は、通信をパケット単位ではなく正しくバイトの流れとして見るための能力を付加しても良い。これは不揃いな大きさのパケットを取り扱う事に適している。しかしながら、通常はユーザが決めた大きさのメッセージになる通信モデルとはめったに合致しない。
ポート番号
TCP/IPモデルではトランスポート層に相当する部分だが、OSI参照モデルではセッション層に当たる)ポート番号は本質的には同じ場所に有る複数の実体を扱う方法である。例えば、(英字の)郵便物での宛先の一行目は一種のポートであり、同じ家の別々の居住者を識別する。コンピュータ・アプリケーションは、それぞれのアプリケーションが割り当てられたポートについて聞き耳を立てるだろう。そのため、同時に一つ以上のネットワーク用アプリケーションが使える。

[編集] トランスポート・プロトコルの比較

UDP TCP DCCP SCTP
パケットヘッダ長 8 バイト 20 バイト 12 もしくは 16 バイト 12 バイト + 可変チャンクヘッダ
トランスポート層パケットエンティティ データグラム セグメント データグラム データグラム
ポート番号 Yes Yes Yes Yes
エラー検知 オプション Yes Yes Yes
信頼性: 自動再送要求 (ARQ) によるエラー復旧 No Yes No Yes
仮想回線: シーケンスの番号付けと並び替え No Yes Yes オプション
フロー制御 No Yes Yes Yes
輻輳回避: 可変サイズの輻輳ウィンドウ, スロースタート, タイムアウト No Yes Yes Yes
複数ストリーム No No No Yes
ECN サポート No Yes Yes Yes

[編集]

[編集] 関連項目

[編集] 外部リンク

最終更新 2009年11月14日 (土) 18:23 (日時は個人設定で未設定ならばUTC)。
【トランスポート層】変更履歴

ご利用上の注意