2021年10月18日月曜日

講義初回

本日から講義が始まりました。
























何人合格するかな?
ボクもがんばろう。


Linuxで動かしながら学ぶTCP/IPネットワーク入門 Kindle版
もみじあめ  (著)  形式: Kindle版
5つ星のうち4.5    68個の評価
ベストセラー1位 - カテゴリ OS
この本は「手を動かしながら TCP/IP について学ぶ」をコンセプトにしています。TCP/IP は、皆さんがお使いのインターネットを支えている仕組みです。この本の目的は、実際に手を動かしながら試行錯誤することで、TCP/IP についてより実践的な知識を得ることです。それも、今お使いになられているコンピュータがたった 1 台あれば試すことができます。

必要な環境をたった 1 台のコンピュータで完結するためには、Linux の Network Namespace という機能を使います。この機能は、近年急速に普及が進む Docker といったコンテナ型仮想化技術を構成している要素のひとつです。Network Namespace を使うと、ネットワーク的に独立した領域を Linux の中にいくつも作ることができます。実験で使うネットワークを作る上で必要な作業は、いくつかのコマンドライン操作だけです。この本では、そうして作った環境を元に、TCP/IP について学んでいきます。

■ 想定する読者

この本は、次のような方を読者として想定しています。もし、当てはまるものがひとつでもあれば、とくにオススメできます。

- ネットワークが専門ではない IT エンジニア、またはそれを志す学生さん
- 他の TCP/IP に関する本を読んだことはあるけど、身についている実感が少ないという方
- ネットワークやインフラの技術について、よく知らないけど興味はあるという方
- 気軽にネットワークを組んで実験できる環境の作り方が知りたいという方

■ 使用する環境

GNU/Linux ディストリビューションには Ubuntu 20.04 LTS を利用します。なお、付録として、今お使いになられているコンピュータに仮想マシンとしてインストールする方法を記載しています。また、コマンドライン操作の読みかえは必要となりますが、他のディストリビューションを使うことも可能です。

■ 本の構成

この本では、OSI 参照モデルのデータリンク層からアプリケーション層に対応する機能を、一冊でひととおり学ぶことができます。次のような章に分かれています。

「TCP/IP とは」では、TCP/IP とインターネットの基本について学びます。この章は、あくまでこの本の導入にすぎません。それでも、実際に手を動かすことで、本書がどのような性格の本なのか、きっとわかっていただけるはずです。そして、TCP/IP を構成する要素や、インターネットが動作する原理についても、同時に知ることができます。

「Network Namespace」では、Network Namespace の使い方と、IP (Internet Protocol) というプロトコルについて学びます。Network Namespace を使うと、ネットワーク的にはシステムから独立した仮想的なコンピュータが作れます。この章では、その機能を使いながら小さなネットワークをいくつか組んでいきます。それらの実験を通して、インターネットが動作する原理について、より深く知ることができます。

「イーサネット」では、イーサネットというプロトコルを含む規格について学びます。イーサネットは、家庭なオフィスのネットワークで、ほとんど必ずといっていいほど使われているものです。TCP/IP は、たくさんのプロトコルや規格が連携しながら動作します。その中でも、イーサネットはネットワークの土台といえる役目があります。この章では、イーサネットがどのようにその役目を果たしているのか見ていくことにしましょう。

「トランスポート層のプロトコル」では、通信の種類を識別したり、通信に信頼性をもたせるためのプロトコルについて学びます。インターネットの世界は、各々が最善を尽くすという考え方で成り立っています。聞こえは良いですが、ベストエフォートと呼ばれるその仕組みでは、送ったデータが相手までちゃんと届く保証は一切ありません。この章で学ぶプロトコルは、そのような世界で通信を成り立たせるにはどうしたら良いのかという問いへの答えになるでしょう。

「アプリケーション層のプロトコル」では、それまでに学んできた下地を使ってやり取りされる、実用的な通信について学びます。これは TCP/IP の世界における集大成であり、このために他のプロトコルや規格が存在するといっても過言ではありません。皆さんが日頃から「インターネットを使う」と認識しているのは、ほとんどがこの章で扱われる内容といって良いはずです。

「NAT」では、NAT (Network Address Translation) という仕組みについて学びます。NAT は、IPv4 を扱う家庭やオフィスのネットワークで、ほとんど必ずといっていいほど使われている技術です。ですが、自宅のサーバをインターネットに公開したり、オンラインゲームをするときに問題となることも多い、いわば「初学者泣かせ」な技術でもあります。この章では、そんな NAT がどういった原理で動作しているのか知ることができます。

「ソケットプログラミング」では、プログラミング言語として Python を使って TCP/IP を扱うプログラムの記述方法について学びます。この章にたどりつくまでに、読者の皆さんは TCP/IP を学ぶ上でさまざまなツールを扱うことになります。それらのツールを作るために用いられている代表的な API が、この章で学ぶソケットです。この章では、それまでに学んできた TCP/IP の通信が、どのように生み出されているのか知ることができます。

0 件のコメント:

コメントを投稿