トランスポート層には2つの機能があります。

TCP,TCPヘッダ,ウインドウ制御,フロー制御,輻輳制御,UDP,リアルタイム通信
TCPヘッダは,次のようになっています。

TCPから上位のプロトコルを示す番号です。これにより,HTTPやPOP3などのアプリケーションが起動します。その標準的なものはウェルノウン(well-known)ポート番号といいますが,その主なものを掲げます。
ポート番号 プロトコル サービス内容 80 http Webページ閲覧 443 https 同上(セキュリティ) 25 smtp 電子メール(送信・転送) 110 pop3 同上(受信) 143 imap 同上(IMAP) 20 ftp ファイルの転送(データ) 21 ftp 同上(制御) 23 telnet 遠隔ログイン 53 DNS 名前解決(UDPでも使える)
ftpやhttpなどの詳細は,別章「インターネットのアプリケーション」で取扱います。
TCPは,コネクション型通信を行います。コネクション型とは,ホスト間で相互の状況を確認してからデータを送り,データの到着を確認してから次のデータを送るようにして,通信を確実に行う方法です(IP単独での通信,また後述のUDPはコネクションレス型であり,このような通信の保証はありません)。
データ送信に先立ち,ホストAとホストBの間で通信の準備をする必要があります。それをコネクションの確立といいます。
まず,ホストAはホストBにSYN(SYNchronization:同期)を送ります。ホストBはそれを受けて要求を受け付けたACK(ACKnowledgement:確認応答)とSYNを返信します。それを受けてホストAはACKを送ります。
これで送信する準備ができました。なお,このように3回のやりとりをするので,3ウエイハンドシェイクといいます。また,一般に相手との確認をとることをネゴシエーションといいます。
ホストAは,データを送信します。ホストBはそれを受信するとホストAにACKを戻します。それを受けてホストAは次のデータを送ります。このとき,一定時間内にACKが来ないと,ホストAは同じデータを再送します。
しかし,ACKが返信している間に再送すればデータが重複しますし,すべてのデータが同じ経路を通る保証はありませんから,ホストAが送信する順序とホストBに到着する順序が異なる場合があります。それを整理するのが,TCPヘッダにある「シーケンス番号」です。それにより,ホストBは次に受信するべきシーケンス番号をホストAに伝えます。このようにして,データが順序正しくホストBに送られます。
すべてのデータを送信完了したら,コネクションを解放します。まず,ホストAからFIN(FINish:終了)を送り,ホストBからACKを返信します。次に逆にホストBからFINを送り,ホストAがACKを戻すことにより終了します。
なお,SYN,ACK,FINなどはTCPヘッダの「コントロールビット」に記入されます。
データを1個送受信するたびにACKを取り交わすよりも,一度にいくつかのデータをまとめて送るほうが効率的です。ACKを待たずに送るデータの大きさをウインドウサイズといいます。
ホストBが負荷が高い状況では,ホストAからのデータを受信しきれない場合があり,それにより再送が必要になって効率が下がる場合があります。それを防ぐために,ホストBはホストAに受信可能なサイズ,すなわちウインドウサイズを送ることにより,ホストAの送信量を制御します。これをフロー制御といいます。
輻輳とは,ネットワークが非常に混みあっており,正常な通信ができない状況のことです。通信が始まった直後では,経路のどこが混雑しているかわかりません。そのときに大量のデータを送信すると,輻輳が起こる危険があります。それを避けるために,輻輳ウインドウを設定しておき,通信開始時は一度に送る量を少なくして,ホストBから返されるウインドウサイズとを比較しながら,次第に増やしていく方法をスロースタートといいます。
UDPは,TCPと同様トランスポート層のプロトコルですが,IPと同様のコネクションレス型の通信を行います。ポート番号を持つこと,チェックサムをすること以外には,IPとほとんど違いはありません。
コネクション型通信をするための情報が不要なので,UDPヘッダは非常にシンプルです。

コネクションレス型通信とは,ホストAとホストBが接続したら,直ちにデータを一方的に送りつける方式で,エラーがあってもわかりませんので再送機能もありませんし,フロー制御機能もありません。それだけ,信頼性が低いといえますが,逆に伝送効率は高くなります。
それで,次のような用途に用いられます。
リアルタイム通信とは,VoIP(IP電話),ライブ中継など,大量データを迅速に送信する通信です。通信効率を高めるためにTCPは向いていません。また,UDPはデータの到着間隔が一定していない(それをジッタといいます)欠点があります。ジッタが大きくなると,音声や画像が乱れますし,さらに大きくなると再生できないこともあります。
それを解決するにはバッファを設けておき,それでジッタを吸収する方法がとられますが,バッファを大きくするとデータが蓄積されるまで待つので,遅延時間が大きくなります。これは電話や電子会議などの双方向通信には不向きです。
このようなリアルタイム通信でのプロトコルに,UDPをベースにしたRTP(Real-Time Protocol)とそれを補助するRTCP(RTP Control Protokol)があります。
次の文のうち,正しいものには〇印をつけ,誤りである文には×印をつけて誤りの個所を訂正しなさい。
問1 テクニカルエンジニア(ネットワーク)平成14年秋問24
TCPヘッダに含まれる情報はどれか。
ア あて先ポート番号 イ 発信元IPアドレス
ウ パケット生存時間(TTL) エ プロトコル番号
問2 テクニカルエンジニア(ネットワーク)平成15年秋問26
UDPのヘッダフィールドにはないが,TCPのヘッダフィールドには含まれる情報はどれか。
ア あて先ポート番号 イ シーケンス番号
ウ 送信元ポート番号 エ チェックサム
問3 テクニカルエンジニア(ネットワーク)平成13年秋問32
コネクションレス型通信に関する記述として,適切なものはどれか。
ア コネクションレス型通信の一つであるUDPによる通信では,回線交換や専用線でのコネクションレス型通信は行えない。
イ 送信するすべてのパケットに,あて先を示す情報を付加する。
ウ 常にPVCと呼ばれる接続形態がとられ,あらかじめ通信相手との通信パスを設定しておき,接続動作なしで通信を行う。
エ パケットごとにコネクションの確立や解放を行うので,大量のデータ通信には不向きである。
問4 テクニカルエンジニア(ネットワーク)平成14年秋問25
UDPに関する記述のうち,適切なものはどれか。
ア コネクションレス型のデータ転送プロトコルであり,データをIPデータグラムで転送する。
イ 送信データのシーケンス管理は,ヘッダの順序番号によって行う。
ウ データのフロー制御を行うので,受信バッファの空き状態に合わせてデータを送ることができる。
エ データをすぐに送りたい場合は,ヘッダにある転送強制フラグを使用する。
問5 テクニカルエンジニア(ネットワーク)平成16年秋問29
ネットワークのフロー制御の一つに,受信確認をメッセージ単位で行わずに,すく数のメッセージを連続して送信する方法がある。この方法において,受信確認を待たずに送信できる最大メッセージ数を何と呼ぶか。
ア ウインドウサイズ イ セルサイズ ウ チャネル数 エ レイヤ数
問6 テクニカルエンジニア(ネットワーク)平成15年秋問45
ネットワークの制御に関する記述のうち,適切なものはどれか。
ア TCPでは,ウィンドウサイズが固定で輻輳(ふくそう)回避ができないので,輻輳が起きると,データに対してタイムアウト処理が必要になる。
イ 誤り制御方式の一つであるフォワード誤り訂正方式は,受信側で誤りを検出し,送信側にデータの再送を要求する方式である。
ウ ウィンドウによるフロー制御では,応答確認のあったブロック数だけウィンドウをずらすことによって,複数のデータをまとめて送ることができる。
エ データグラム方式では,両端を結ぶ仮想の通信路を確立し,以降はすべてその経路を通すことによって,経路選択のオーバヘッドを小さくしている。