連載第2回
TCP/IPアレルギー撲滅ドリル【下位レイヤ編】

ITオンチにCPのセボネを見る

福永勇二
インタラクティブリサーチ
2004/2/14


素朴な疑問
ITオンチと侮るなかれ
  1. メール、届いてる?
  2. 番号はアリガタイの?
  3. 番号づけのルールは?
  4. 乱数で始めるワケは?
受取「確認ヨシ!」
  1. そもそもデータの受取確認って?
  2. 時間がかかるとデメリットもあるでしょ?
  3. 具体的に受取確認が遅れるのはどんな場合?
  4. 受取確認に「遅れ」は大敵ですか?

遅れてもスムーズに

  1. 「遅れ」も許すテクニックがあるんですか?
  2. 一体何を「ひとまとめ」にするの?
  3. 「連続送り」で効率UPができるってホント?
  4. 送りテクをズバリ図解
  5. 手強い「遅れ」に対策あり?
 データの受け取り「確認ヨシ!」

TCPはどうやってデータの受け取り確認をするんですか?

 基本的なスタイルはシンプルです。相手にデータ送信をする。相手がそのデータを正しく受信したら、「ACK」を返す。これだけです。この「ACK」は、前回の通信開始時の説明にも出てきました。「うまくいった」「大丈夫だった」など、前の動作について肯定的な応答を表すものです。

受け取り確認にデメリットはないのですか?

 動作の仕組みは簡単なのですが、このままだとちょっと問題があります。それは効率のこと。何もしなければ速いけど、確かな通信をしようと思うと非常に遅くなる。これじゃ使い物になりません。

 受け取り確認をすると遅くなる理由は、ちょっと考えると体感的に分かると思います。ここでは非常にシンプルな例で考えてみます。

 AさんからBさんに3つのリンゴを送るとします(図3)。Aさんはまず、りんごを1つ送りました。Bさんからちゃんと受け取ったと連絡が来たので、次にりんごをもう1つ送りました。それもちゃんと受け取ったと知らせがあったので、最後に3つ目のりんごを送りました。Bさんからはこれも受け取ったと連絡があり、3つのりんごすべてを無事に送ることができました。

図3 「受け取り確認」をすると、その待ち時間がバカにならない


 この動作を細かく見ると、AさんはBさんからの「受け取り確認」が届くのを待って、次のものを送っています。実は、この「受け取り確認」の待ち時間がクセモノです。

 一番分かりやすいのは、「受け取り確認」の到着が遅れる場合です。Aさんは「受け取り確認」の到着を待ってから次を送ります。もし何かの理由で「受け取り確認」の到着が遅くなってしまったらどうでしょうか? そのときまで次のモノが送れないことになります。その結果、3つのりんごを送り終わるまでの時間はより長くかかることになります。

具体的に受け取り確認が遅れるのはどんな場合なんでしょう?

 受け取り確認が遅れる理由にはいくつかあります。大きな理由の1つは、相手のコンピュータが込み合っていて反応が遅い場合です。そして、もう1つの大きな理由が通信回線での「遅れ」です。

 この「遅れ」が起こるのは、まず1つは通信回線が込み合っているときです。通信回線が込んでいると、こちらから送ったデータの到着も、相手からの「受け取り確認」の到着も、どちらも遅れます。その結果、全部を届けるまでの時間は当然長くなり、通信速度は遅くなります。ただ、この場合はいってみれば道路が込み合っているようなもんですから、届くまでの時間が長くなるのは仕方ない面もあります。

 もう1つ遅れが発生することがあるのは、通信する距離が長いときです。テレビニュースなどで、海外からの衛星中継で記者がレポートするのはよくある光景です。このとき、日本にいるアナウンサーの問い掛けに、海外レポーターが答えるまでにかなり間が空くことがあります。何かギクシャクした会話になるので、誰でもすぐ気付きますよね。

 この遅れが起こるのは、日本から海外への映像と音声、海外から日本への映像と音声が、それぞれ通信衛星を使ってやりとりしているからです(図4)。通信衛星は上空約3万6000kmにありますので、日本→衛星、衛星→海外、海外→衛星、衛星→日本と戻ってくるまでに、少なくとも14万4000kmもの距離を電波が進むことになります。電波の速度は秒速30万kmですから、衛星に行って来る通信だけで0.5秒くらいの遅れが発生することになります(実際は地上での信号処理の時間が必要なのでさらに長くなります)。

図4 衛星中継は「遅れ」が生じる身近な例

 このときの衛星回線はテレビ画像を送れるくらい通信速度が速く、回線自体も込み合っていません。しかし0.5秒もの「遅れ」が発生しています。これが遅れの発生するもう1つの例です。

「遅れ」があるとき、普通に受け取り確認をするとどうなりますか?

 「遅れ」が大きい通信回線で「受け取り確認」をするとどうなるでしょうか? 「遅れ」があると、相手からの「受け取り確認」が届くまでに時間がかかります。その間、次の情報を送ることはできませんから、情報を全部送り届け終わるまでの時間が長くなります。回線は全然込み合っていないのに、「遅れ」があるばっかりに込み合っているのと同じような現象が起こるわけです。

 この様子は、海外からの生中継で日本のアナウンサーと現地レポーターが早口で立て続けに会話ができないのを見れば一目瞭然でしょう。相手の相づちを「受け取り確認」と考えてください。会話は相づちがあってこそ成立します。それが返ってくるのが遅いと、ペラペラと速いペースで会話を進めることはできないのです。

確実な通信のための手法

TCP/IPアレルギー撲滅ドリル【下位レイヤ編】(2)目次
1  ITオンチとあなどるなかれ
2  データの受け取り「確認よし!」
3  受け取りが遅れてもスムーズな理由


関連リンク
  連載:TCP/IPアレルギー撲滅ドリル【超実践編】(上位レイヤ編)
連載:インターネット・プロトコル詳説

連載:ルータの仕組みを学ぼう
ホストのネット接続は正しく行われているか? 〜netstatによるネットワーク設定の確認〜

「Master of IP Network総合インデックス」


Master of IP Network フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Master of IP Network 記事ランキング

本日 月間