ネットワークコンピューティング

1. URL
2. 担当教員
3. ネットワークに関する疑問
4. 講義目的
5. 到達目標
6. 授業方法
7. 成績評価
8. スケジュール
9. 大崎が担当する科目に共通の連絡事項・アドバイス
10. LAN の構成要素・通信プロトコル
11. 無線 LAN、VLAN (仮想 LAN)
12. インターネットの概要、TCP/IP
13. IP プロトコル (1)
14. IP プロトコル (2)
15. 前半の総復習
16. TCP プロトコル (1)
17. TCP プロトコル (2)
18. インターネットの要素技術 (経路制御)
19. インターネットサービス (名前解決)
20. DHCP、ネットワークアドレス変換
21. HTTP
22. 後半の総復習

後半の総復習

授業の流れ

1. 解説 (90 分)
2. リフレクションシート記入 (10 分)

態度目標

- 解説された内容を判的思考で分析し、できるだけ多くを吸収する。

- 脳が覚醒した状態のままでいる。

- クリッカーに記入する質問は、可能な限り、正しい日本語で具体的に記入する。

- 始めて知ったこと、なるほどと思ったことはノートに記録する。

内容目標

- 後半の「内容目標」すべてに到達できるようになる。

- 後半の内容に関連して、理解が不十分なもの、疑問が残っているもの、もっと知りたいものを言語化して質問できるようになる。

- 後半の内容に関連する疑問を一つでも多く解消できるようになる。

クリッカー

[授業中に使用] クリッカー (パスワードが必要です)
https://lsnl.jp/app/lecture/clicker/show/netcomp

質問への回答

- 自分がどの分野の研究をしたいのか迷っています。先生は、自分のやるべきものを見失った場合どのように対処していますか?

「やるべき」ではなく、「やりたい」ことに取り組むようにしています。後は、研究
室のプリンシプルに立ち戻って考えるようにしています。

研究室のプリンシプル (理念)
https://lsnl.jp/~ohsaki/lsnl/intro/#5

- chat-gptなどのAIをプログラミング言語を使う仕事に導入する場合、どの程度AIに任せればよいですか?

任せられるだけ任せればよいと思います。機械ができることは機械に任せましょう。

- ユニキャストとブロードキャストは実際の場面でそれぞれどこで使われているのでしょうか。

単に通信の形態です。一人に届けたいならユニキャスト、全員に届けたいならブロー
ドキャストです。

- chaatgptは授業などの学習に使用するべきですか?

はい。「AI を活用していない人」が、「AI を (うまく) 活用している人」と勝負し
ても勝負にならないと思います。テクノロジを自在に使いこなしましょう。

- IPv4からIPv6に移行する際にどのような弊害が生まれると考えられますか

IPv4 の資産を持っていない人には何もないでしょう。IPv4 の資産を持っている人は
それへの対応 (捨てる、追加のコストを払って IPv6 に対応させ等) が必要です。

- 仮にDNSサーバーが一時的にダウンした場合、インターネットの利用にどの程度の影響が出ると考えられますか?影響を最小化するための仕組みなどはありますか?

リゾルバが認識している最寄りの DNS サーバが複数で、それらの一部がダウンした
程度なら気付かない程度の影響です。それらが全部ダウンしたら (その個人にとって
は) まったくインターネットが使えない状況になります。

ルートサーバが全部同時にダウンしたら、世界中のインターネットが利用不可になり
ます。

不具合が置きないように、普通は DNS サーバを冗長化しています。

- IPv4 と IPv6 の間、 IPv5 はなぜ無いのですか?

IPv5 も検討されたが標準化されなかったからだと思います。

- 自分の好きなものをプログラムで作る際に参考にしている書籍やウェブブラウザなどはありますか?授業で学んだプログラムの知識だけでは自分が実装したいことを知識不足が原因で実装できない場合の参考資料にさせていただきたいのでぜひ教えていただきたいです

基本的に、面白そうな書籍は片っぱしから読んでいます。特におすすめの本を以下で
紹介していますのでぜひ読んでみてください。ほとんどのものは図書館にあると思い
ます。

充実した研究活動のための 100 の書籍 (草稿)
https://lsnl.jp/~ohsaki/research/100-books/

- DHCPについて理解することでどのような場面で応用することができるのか知りたいです。

何に「応用できるか」ではなく、何に「応用するか」です。Some knowlege is
applicable to something ではなく、You apply some knowlege to something です。
応用できるかは knowlege で決まるのではなく you で決まります。

応用できる人は何にでも応用できますし、応用できない人は何にも応用できないでしょ
う。例えば、応用できる人は、DHCP の知識を、老人ホームの歩行器の貸し出しや文
化祭における備品の管理にも応用できるでしょう。応用できない人は、所有している
自身のスマートフォンのネットワーク設定変更にも応用できないでしょう。

- ネットワークのことを学習して実際に生活面で楽になったためになったことはありましたか

はい。数多くあります。ネットワークに限らず、中身が理解できる → 自分で工夫・
改良・改変できるようになる & トラブルがあった時に対処できるようになる、とい
う流れだと思います。ネットワークに限らず、学ぶことはこれまで見えなかったもの
を見えるようにし、これまできなかったことをできるようにしてくれます。

- 地震速報などの同時に大量の端末に問題なく送信するには、どのようなネットワークの仕組みが用いられているのでしょうか?

ブロードキャストです。

- C#のSystem.Net.Socketsで、Berkeleyソケットインターフェイスが実装されていて、そのソケットをリッスン状態にするListen()というメソッドがあります。Berkeleyソケットインターフェイス自体が何か、Listen()はどのような処理をしているのかが分かりません。もし分かりそうな部分があれば教えていただきたいです。

4.3BSD (カリフォルニア州立大バークレー校で開発された UNIX) に実装された ソケッ
トインターフェースがあって、それ以降の OS はこれを踏襲しています。listen は
TCP コネクションを受け付けられる状態にすることを意味します。ソケットプログラ
ミングの本を読むと良いと思います。リチャードスティーブンスの詳解 TCP/IP がお
すすめです。

充実した研究活動のための 100 の書籍 (草稿)
https://lsnl.jp/~ohsaki/research/100-books/

- 大崎先生は限られた時間の中で一つの言語に集中的に力を入れて学ぶべきか、興味のあるものに手を出して浅く広く学ぶべきか。どうお考えですか?

どちらかといえば前者です。「興味のおもむくままに行けるところまで行く」ように
しています。浅く広く学んでも、(少なくとも私の場合は) 知的好奇心が満たされま
せん。

- 大崎先生はファイルをどのように管理していますか? プレフィックスをつけるなど…

UNIX の伝統的なファイル命名の流儀に従っています (英数字 + 一部の記号で構成し、
空白やマルチバイト文字は使用しない等)。

以下は私のホームディレクトリの構成です。

> ls
bin/  crypt/  doc/  include/  lib/  Mail/  media/  net/  public_html/  RCS/  src/  tmp/  var/  work/

例えば、最初の 1 文字で各ディレクトリが区別できるように工夫しています。

- しばらく使用していない端末のDHCPサーバー機能を端末を使用せずに無効にする方法はありますか

どういう意味ですか? (質問の意図がわかりませんでした)

- 今どの分野に進もうか迷っているので、先生がこの分野を研究しようと思った理由を教えてください。

学部 3 年生の時に、(研究内容も知らずに) 楽しそうな研究室を選んで、研究室の顔
合せの日に寝坊して行ったらネットワークのチームに割り当てられていました (ので、
実は自分では選んでいません)。

- 大崎先生の研究室にくる学生さんはネットワーク系の内容の中でも何に興味があってどういう研究をしたいという人が多いですか。

本当に人それぞれ (何に興味を持つかは人によってぜんぜん違う) だと思います。

- 以前、課題で80番ポートが使用されていましたが、80番に何か意味があるのでしょうか?

IANA (Internet Assigned Numbers Authority)が HTTP を 80 番に割り当てたから
80 番になっています。

- プログラムで作る時、行き詰ることもあると思います。この授業を含め、授業内で学んでいないプログラムの知識が必要になった際に、どのような方法で、情報をかき集めたらいいのかわかないため、参考にしている書籍、ブラウザがあれば参考にさせていただきたいです。

基本的に書籍です。とにかくたくさん本を読んでいます (精読ではなく、多読してい
ます)。Web ページなら、Stack Overflow が参考になることが多いと思います。

- テストに向けて例題類題以外にも準備をしようとするとどのようなことを重点的に確認する必要があるでしょうか?

テストのために勉強するのではなく、自身の興味に基づいて学んでください。

- アプリを作れるようになるには何から始めればいいですか

好きなプラットフォーム、好きな OS、好きな言語で、「Hello World」を表示するこ
とから始めましょう。千里の道も一歩から、です。林修先生もおっしゃるように、ア
プリ開発を始めるなら「今でしょ!」。この回答を読んだ直後に Hello World を書い
てみてください。

- chatgptは今後どのような存在になると思いますか

(将来予測はできないと思っているので) わかりません。どんな未来が待っているの
か楽しみですね。

- 3年からの実習ではpythonを使うことが多いと思うのですが、最初のプログラミング実習でC言語を一年間学ぶのはなぜですか

1 年生のコンピュータ演習 A で Python を学んでいませんか? プログラミング実習
が C 言語なのは、コンピュータのアーキテクチャもあわせて理解できるからです。

- Pythonで基本的にシステムを書いていますか?その場合、UI/GUIもパイソンのライブラリを使っていますか?

「システムを書く」とはどういう意味ですか? 今日紹介した Kivy を使った音楽プレ
イヤーだと、UI は (Python で記述された) Kivy のモジュールを呼び出して描画し
ています。実際のウィンドウの描画は Kivy が SDL2 ライブラリを呼び出しています。

- ネットワークに関して先生の授業を終えた後、詳しく学習するためにおすすめの教材などありますでしょうか?

以下の書籍や、雑誌の日経 NETWORK がおすすめです。

充実した研究活動のための 100 の書籍 (草稿)
https://lsnl.jp/~ohsaki/research/100-books/

- あるサイトとtelnetを用いて通信するとき、KGU-WLANを使うと常に "Connection timed out" となるサイトがあります。 自分の家のWi-Fiに繋いで同様のことを行うと成功するので、これは関学のWi-Fiのインターネットの制限によるものでしょうか?

(具体的な情報が書かれていないので予想ですが) おそらくその通りです。大学のネッ
トワークから外部に接続できる TCP のポート番号が (ごく少数だけに) 制限されて
います。自宅の LAN だと、多くのブロードバンドルータの初期設定では、外部に接
続できる TCP のポート番号に制限がかかっていません。

- HTTP/1.0では1回のリクエストにつき1つのTCP接続が必要で非公式でConnectio: Keep-Aliveというものがヘッダーに書かれているとサーバが接続したままどのタイミングで解放されるか判断できないことがあるため、HTTP/1.1ではConnection:closeになるまで接続したままにするように変更されたとRFCでは書かれていたが、このKeep-Aliveが非公式で誕生した理由とそれを公式としてHTTP/1.1まで採用されなかった理由があれば教えてください.

順序関係が少し変ですね。HTTP/1.0 の標準化 → HTTP/1.0 のサーバの実装 → それ
らのサーバの改変・改良 → HTTP/1.1 の標準化、の順番です。

非公式で誕生した理由 → HTTP/1.1 が不便だから
HTTP/1.1まで採用されなかった理由 → 改変・改良したのが HTTP/1.0 の標準化後だから

だと思います。

- ネットワークやその他IT技術、サービス等に関して、先生が習慣的に情報収集や閲覧している書籍やWEBサイトなどございますでしょうか

よくそういう質問を受けるのですが、おそらく、「何か質の高い SNS や海外のニュー
スサイト等で情報を収集しているのだろう」という予測に基づいているのだと予想し
ます。そんな便利なものはなくて、基本的に (たくさんの) 論文と (たくさんの) 書
籍です。

- DNSがUDPを用いる理由と、DHCPがUDPを用いる理由には共通点や違いがありますか?それぞれのプロトコルの狙いを比較して教えてください。

相違点: 主な理由は、DNS は「TCP を使うと遅いから」です。DHCP は「(アドレス割
り当て前で) TCP が使えないから」です。

共通点: どちらもメッセージが小さいので、TCP よりは UDPのほうが向いています。

- 先生が考える今後AIに取って代わられずに生き残っていくと考える仕事はありますか。

職種で決まらないと思います。優秀なセールスマンは生き残り、優秀でないセールス
マンは AI に代替されるでしょう。同様に、優秀な教員は生き残り、優秀でない教員
は AI に代替されるでしょう。どんな仕事でも超一流の人はスゴいと思います。

- 先生が大学院生時代に経験した最も楽しかった思い出と辛かった思い出を教えてください

楽しかったのは、毎日、昼も夜もずっと UNIX で遊んでいたことだと思います。ひた
すらいろんなソースコードをコンパイルして、パッチを当てて、環境設定して遊んで
いました。

辛かったことはほとんどありません。あえて言えば、大学院生の頃はお金がなくて、
学食でカツカレーが食べたかったのに普通のカレーで我慢したことです。この時のこ
とは今でも鮮明に覚えています。

- 大学院に行くのは一定レベル以上の優秀な方で、その優秀層を母数としているが故に生涯賃金に違いが大いにあるのだと思います。生涯賃金以外の点で大学院進学が優れていると考えられる理由がもしあればご教授いただけますと幸いです。

もちろんそういう影響もあるでしょう。ただ、そうでない影響も大きいと (いろいろ
な学生を指導し、その後を見てきた経験から) 思います。「学歴 シグナリング効果」
で調べてみてください。

生涯賃金はあくまで一つの観点です。大学院進学の良い点しか思い付きませんが、一
番は知的好奇心を探究できることです。小学生の頃からずっと勉強してきて、大学院
の研究では、それらの知識を始めて「本当の問題」を解くために活用できます。日本
語、英語、数学、物理、アルゴリズム、プログラミング、OS、ネットワークなどの知
識を、世界で誰もまだ解いていない「本当の問題」を解くために駆使できる (ように
挑戦する) ことの楽しさをぜひ味わって欲しい (味あわせてあげたい) と思ってます。

- 今後、ネットワーク分野とchatGPTのようなAI分野はどのような関係性になっていくとお考えでしょうか?

(将来予測はできないと思っているので) わかりません。

レポート課題 2024/12/18

なし


Hiroyuki Ohsaki (ohsaki[atmark]lsnl.jp)
[<21. HTTP]