この記事をtweetする このエントリーをはてなブックマークに追加


  掲載日:2003/06/11
 TCPとUDP、ストリーミング事情

 第15回では、TCP/IPにおけるトランスポート層の役割と、そこに位置する2つの代表的プロトコル、コネクション型のTCPとコネクションレス型のUDPについて、それぞれのプロトコル制御を担うヘッダーを検証しながら、特徴と機能を詳しく紹介する。また、高速性が優先される後者で通信品質を向上させるための、ストリーミング技術とHTTPトンネリング技術を解説し、音声/同画像のネットワーク経由配信やリアルタイム再生を支える、RTP・RTCPプロトコルやCDNネットワークなども紹介する。 TCPとUDP、ストリーミング事情 イメージ


トランスポート層の役割とTCP

TCP/IPにおけるトランスポート層の機能
 前回学んだインターネット層とは、パケットを相手まで届けるための取り決めや実際の制御を担うものだった。インターネット層が機能することで、目的とする相手までパケットを届けることが可能となる。
 ただ、伝送される複数のパケットの中には、なんらかの障害により、相手まで届かないものが発生する可能性もある。もし、パケットの1つでも欠けてしまった場合、送信先で元の情報を復元することができないため、情報が正しく相手に伝わらない。
 トランスポート層(transport layer)では、細分化されたパケットの1つ1つを管理し、データに抜けがないかを監視する機能を担う。そして、パケットに抜けがあった場合には送信元に連絡し、抜けた部分のパケットを再送信するように依頼する。このような制御を実現することで、常に完全な情報のやり取りが可能となるわけだ。
 またトランスポート層では、届いたパケットを、通信を行う対象となる上位層のソフトウエアに正しく引き渡す機能ももっている。
 現在のOSは、そのほとんどがマルチタスク環境を有しており、複数のプロセスがメモリー上で同時に機能している。このため、通信を行っているのがどのプロセスであるのかを認識するとともに、そのプロセスに対して正しく情報を引き渡す必要があるわけだ。
 この制御に不可欠なのがポート番号だが、ポート番号については、第10回講座にて説明していることから、ここでは省略させていただく。

TCPとTCPヘッダー
 IPについて簡単に復習しておくことにしよう。
 TCP/IPプロトコル層のトランスポート層に位置するプロトコルとしては、TCP(Transmission Control Protocol)UDP(User Datagram Protocol)が、代表的なものとして挙げられる。ここではまず、TCPについて説明を進めよう。
 なお、TCPについても第12回講座で説明しているため、今回はパケットに付加されるTCPヘッダーを検証しながら、その機能を学ぶことにしよう。
 トランスポート層のTCPプロトコルを介してパケットの送受信を行う場合、どのアプリケーションに渡すものであるかを示す情報や、パケットの欠如がないかをチェックするための情報をパケットに付加する必要がある。この情報はトランスポート層を通過する際に、TCP制御を行うプログラムによって、パケットの先頭に付加される。これをTCPヘッダー(TCP header)と呼ぶ。
 企業内に敷設されるLANでは、Ethernet環境でTCP/IPを用いるのが一般的だが、この場合TCPヘッダー付きのパケットは、インターネット層においてIPヘッダーが、そしてネットワークインターフェース層(ネットワークアクセス層)でEthernetフレームヘッダーが付加された後に、電気信号へと変換されることとなる。

図15-1 トランスポート層とTCP、UDP
図15-1 トランスポート層とTCP、UDP
 分割されたパケットは、各層を通過するごとにヘッダーが付加されていくのがわかる。ヘッダー情報には、送信先の同一層とやり取りするための制御情報が格納される。つまり、ある層で付加されたヘッダーは、送信先における同一層のみが参照するためのものであり、トランスポート層のヘッダーは、送信先のトランスポート層以外は見ることがない。ちなみに、送信先では受信したパケットを下位層から上位層へとリレーするが、その度に自分に向けたヘッダー部分を解析後に削除して上位層へと引き渡す。そして最終的にパケットは元のデータとして組み立てられ、アプリケーション層に引き渡されることとなる。

ヘッダーに見るTCPの機能詳細
 図15-2は、TCPヘッダーの内部を1行あたり32bitで表現している。
 主な部分を簡単に見ていくことにしよう。
 まず、送信元ポート番号(SOURCE PORT)と、宛先ポート番号(DESTINATION PORT)だが、これはどのアプリケーションからの情報であるのか、どのアプリケーションへ宛てたものかを伝えるため情報である。
 一方、シーケンス番号(SEQUENCE NUMBER)確認応答番号(ACKNOWLEDGEMENT NUMBER)ウインドウ(WINDOW)は、パケットに欠如がないかなど、情報が正常に転送されているか否かを調べるために必要となる。また、コードビット(CODE BITS)とは、相手とのコネクションを確立するうえで必要となる部分だ。コネクション(connection)とは通信路の確立をいうが、これは互いのやり取りの中で「送る」「受ける」などの示し合わせをあらかじめ行ったうえで通信を行うことを意味する。
 これらのやり取りを行ったうえで、パケットの送受信がなされることから、TCPはコネクション型(connection type)のプロトコルと呼ばれているわけだ。コネクション型の場合、互いにやり取りをするための準備が整っていることから、安定した通信を実現することができるが、互いに示し合わせることに費やされる時間や、これに伴うトラフィックの増大が問題となる場合がある。
 このようにヘッダー情報とは、相手先の同一層同一プロトコルとの制御情報が格納される部分であり、ヘッダー情報が存在するからこそ、プロトコル制御が成り立っているともいえるだろう。

図15-2 TCPヘッダーと機能詳細
図15-2 TCPヘッダーと機能詳細

図15-2 TCPヘッダーと機能詳細
 TCPの役割を要約すると、図15-2の下部に示すようなやり取りをしている。つまりコネクション型のプロトコルとは、パケットのやり取りにおける会話をその都度行うことにより、パケット自体の通信品質を保つ制御といえる。なお、本図において仮に2つ目のパケットが届かない場合、送信先ではそれを送信元に伝えるためのパケットを送ることになる。すると送信元では該当パケットを再送するため、結果として正しいパケットの送信が完了するわけだ。

用語説明
【マルチタスク
:multitasking】
1台のコンピュータで、複数のタスクを並行して処理することを可能にする方法をいう。あたかも同時に処理が進んでいるように見えるが、実はOSがそれぞれ各々の処理を細分化し、これを時間で割り振ってCPUに処理させることで実現している。WindowsやLinux、FreeBSD、Mac OSXなどは、完全なマルチタスクOSだ。

…この記事の続きは、会員限定です。  会員登録はこちら(無料)

続きを読むには・・・

会員登録をすると自動的にこの記事に戻り、続きが読めます。

会員登録(無料)・ログイン

このページの先頭へ

TCPとUDP/第15回 TCPとUDP、ストリーミング事情」関連の情報を、チョイスしてお届けします

※キーマンズネット内の「TCPとUDP」関連情報をランダムに表示しています。

TCPとUDP」関連の特集


従来WAN高速化ツールが担ってきたような長距離通信の高速化を、ソフトウェアだけで実現する新プロトコル…


「ストリーミング」関連の製品

オンライン・ビデオ・プラットフォーム Kollus 【カテノイド】
ストリーミング
動画配信サービスを構築、運用するのに必要な機能をオールインワンのクラウドサービスとして提供するオンライン・ビデオ・プラットフォーム。

「ストリーミング」関連の特集


帯広、湘南、四日市…日本全国のコミュニティFMをネットで配信するサイマルラジオ!エアチェックに燃えた…


「WEB構築」関連 製品レポート一覧

このページの先頭へ

会員登録(無料)・ログインはこちらから

TCPとUDP/第15回 TCPとUDP、ストリーミング事情」の記事を一部ご紹介しました。
会員登録を行い、ログインすると、「TCPとUDP/第15回 TCPとUDP、ストリーミング事情」の記事の続きがお読みいただけます。


Myリストへ 印刷用ページへ

この記事をtweetする このエントリーをはてなブックマークに追加


この記事に掲載している情報は、掲載日時点のものです。変更となる場合がございますのでご了承下さい。


30000366


IT・IT製品TOP > WEB構築 > ストリーミング > ストリーミングのIT特集 > 特集詳細

このページの先頭へ

キーマンズネットとは

ページトップへ