はじめに

Computer Networks: A Systems Approach の第五版が出版されて約 10 年になる。この間に多くのことが変わったが、最も注目すべきはクラウドとスマートフォンアプリの登場と爆発的な成長だろう。これは様々な面で、我々が 1996 年に本書の第一版を出版したころにインターネットが経験した、ウェブの登場による劇的な変化を思い起こさせる。

第六版はこういった時流に合わせたものであるものの、その北極星に「システム的アプローチ」があることは変わらない。大まかに言って、この新しい版における更新と改善には次の 4 点がある:

「システム的アプローチ」とは何か?

システム的アプローチ (systems approach) はコンピューターシステムの設計と実装の手法を指す用語であり、オペレーティングシステム、ネットワーク、分散アプリケーションなどの複雑なコンピューティングシステムを構築するときに発生する問題を研究する計算機科学者や実務者によってよく使われる。システム的アプローチでは「全体像」を見る視点が重要となる: 単にシステムの要素をそれぞれ最適化するのではなく、要素同士が互いにどのように対話して全体的な目標を達成するかに注目する必要がある。ネットワークの文脈で「システム的アプローチ」は、伝統的な層モデルにとらわれずに複数の層に関係する方法も選択肢に入れた上で問題に挑む最も優れた方法を考えることを意味する場合が多い。この考え方の良い例が輻輳制御である。輻輳制御には複数の層が関係し、システムとネットワークデバイスの両方が影響を受ける。本書では輻輳制御というシステム全体の問題をトランスポート層に押し込もうとするのではなく、一つの章を使って扱う。また、システム的アプローチは現実世界の実装に大きく焦点を当てる。本書ではインターネットが現実世界の実装の明らかな例であり、これは広くデプロイされた複雑なネットワークシステムである。

第六版で追加された話題

より具体的には、第六版における主な変更は次の通りである:

構成

本書を元にネットワークの講義を組み立てるときは、本書全体の構成を理解しておくと役立つだろう。本書は主に次の三つの部分から構成される:

この特徴付けで各章を分けると、第 1 章は基礎的な内容、第 2, 3, 5, 9 章は中心的な内容、第 4, 6, 7, 8 章はそれより高度な内容となる。

この特徴付けで節を分けることもできる。大まかに言って各章は基礎的な概念の紹介から始まり、次に特定の技術の説明、最後に高度な技術の説明が続く。例えば第 3 章では最初に交換ネットワークに関する基礎的な説明 (第 3.1 節) があり、その後スイッチドイーサネットと IP インターネットの詳細 (第 3.2 節第 3.4 節) に触れ、最後に省略可能な SDN の議論 (第 3.5 節) がある。同様に第 6 章は基礎的な考え方 (第 6.1 節第 6.2 節) から始まり、その後 TCP の輻輳制御 (第 6.3 節) に触れ、最後に省略可能な高度な内容 (第 6.4 節第 6.5 節) がある。

謝辞

新しい文章の執筆を助けてくれた次の人物に感謝する:

加えて次の人物 (GitHub ユーザー) たちからのコントリビューションとバグフィックスに感謝する:

最後に、次のレビュアーによる数多くの有用なコメントと提案に感謝する。彼らの影響は非常に大きい:

オープンソース

本書1のソースは https://github.com/SystemsApproach/book にてクリエイティブコモンズ表示 (CC BY 4.0) ライセンスで公開されている。読者が本書に対する修正、改善、更新、文章の追加を同じライセンスで提供することを期待している。多くのオープンソースソフトウェアプロジェクトと同様、本書もかつてはオープンでない書籍だった: Peterson と Davie による第五版は Elsevier が著作権を持っていた。ソースをオープンにすることで本書が広く知られるようになり、加えて新しいコンテンツが生まれる土台となることを我々は期待している: 既存の内容を更新したり、新しい話題を追加したり、本書の内容を補完する追加の教材を作成したりといったことだ。

本書を利用する場合、著作権帰属表示は次の情報を含むべきである:

Title: Computer Networks: A Systems Approach
Authors: Larry Peterson and Bruce Davie
Copyright: Elsevier, 2012
Source: https://github.com/SystemsApproach/book
License: CC BY 4.0

コントリビュートの方法

本書を利用したときは、あなたのコントリビューションを本書に返してくれることを期待している。もしオープンソースプロジェクトに参加するのが初めてなら、How to Contribute to Open Source (https://opensource.guide/how-to-contribute) というガイドに目を通すといいかもしれない。このガイドでは、解決されるべきと考える問題に関する Issue を立て、自分が行った改善を GitHub に反映させるために Pull Request を作成する方法などが解説される。これまでに読者が Computer Networks: A Systems Approach から何らかの学びを得たことを願っている。この新しい冒険にあなたもぜひ参加してほしい。

Larry & Bruce
2020 年 10 月

  1. 訳注: 英語版のこと。 ↩︎

広告