1. 解説 (90 分)
2. リフレクションシート記入 (10 分)
- 解説された内容を判的思考で分析し、できるだけ多くを吸収する。
- 脳が覚醒した状態のままでいる。
- クリッカーに記入する質問は、可能な限り、正しい日本語で具体的に記入する。
- 始めて知ったこと、なるほどと思ったことはノートに記録する。
- 後半の「内容目標」すべてに到達できるようになる。
- 後半の内容に関連して、理解が不十分なもの、疑問が残っているもの、もっと知りたいものを言語化して質問できるようになる。
- 後半の内容に関連する疑問を一つでも多く解消できるようになる。
[授業中に使用] クリッカー (パスワードが必要です)
https://lsnl.jp/app/lecture/clicker/show/netcomp
- DNS が UDP を用いている理由は、TCP のコネクション確立による遅延が大きい点にあると理解しました。一方で、近年は DNS over TCP や DNS over HTTPS も利用されていますが、これらはどのような条件下で有効になるのでしょうか。
通常の DNS は「(それほど安全ではないが) 小さいパケットを素早く送りたい」から
UDP を使っているので、TCP や HTTPS を使うのは基本的にこの反対の場合です。つ
まり、主には安全性が求められる、単一のパケットに収まらない大きなデータを送り
たいというケースです。さらには UDP が使えないというケースもあります。
- 先生がこの分野を学び始めた頃,学習方法やどの辺りから手をつけるかなど,意識されていたことはありますか?
前の質問への回答でも言いましたが「理論」と「実践」の両方をやる (どちらかだけ
にしない) ことです。
- 2022年に最新がHTTP/3.0になりましたが,次に更新されるのはいつになる思いますか?また,その性能や特徴はどういったものが追加されると思いますか?
HTTP/3 ですね。将来のことは (まったく) わかりません。
- HTTPのバージョンは現在、何までありますか?今後さらに増えていくのでしょうか?
RFC 9114 の HTTP/3 ですね。今後も増えそうな気はしますが、よくわかりません
(知りません)。
- 大崎先生はどのような時に生成AIを使用しますか?
「使えそうかも」と思った時はいつでも使っています。
- 講義では TCP のスループットは「ウィンドウサイズ ÷ RTT」で決まると説明されましたが、実際のネットワークでは RTT が一定でないこともあると思います。RTT が揺らぐ場合、TCP のスループットは平均 RTT を使って評価すればよいのでしょうか。それとも、最大値や分散も重要になりますか。
正確には、パケット損失がない場合に限り「スループット = ウィンドウサイズ/RTT」
ですね。
そもそも「スループット = 単位時間あたりの仕事量」ですので、1 RTT 時間におけ
るスループットなら、
スループット = 届けられたパケット量 / RTT
ですし、10 秒間のスループットなら、
スループット = 10 秒間に届けられたパケット量 / 10 (★)
になります。従って、
スループット (?) = 平均ウィンドウサイズ / 平均 RTT
等は誤りです (運がよければ ★ と (おおよそ) 一致しますが)。
- httpのバージョンを上げるごとに、速度が速くなるだけでなくセキュリティ面でも変化はありますか?
Yes & No ですね。HTTP/3 では暗号化が必須なので、そういう意味では変化していま
す。一方、HTTP のバージョンによらず暗号方式は TLS (Transport Layer Security)
ですので、そういう意味では変わっていません。
- 通信が不安定なときに「ネットワークが混雑している」という表現をよく耳にしますが、この場合、具体的にどの部分で混雑が発生しているのでしょうか?
そういう時に、本当に「ネットワークが混雑しているか」は怪しいと思います。自宅
の Wi-Fi ルータが不調なものを「ネットワークが混雑している」と誤認しているケー
スも多いと思います。
本当に「ネットワークが混雑している」という状況であれば、あなたか通信している
経路上のルータのいずれかで発生しています。
- TCPの機能として「フロー制御」と「輻輳制御」がありますが、これらがごっちゃになります。「フロー制御=相手(受信側)の都合」、「輻輳制御=ネットワーク(通り道)の都合」という理解で正しいですか?
はい。
- 脳が全然覚醒しません。どうすればいいでしょうか?
覚醒してから講義ビデオで復習してください。
- 第8回のテキストには代表的なEGPとしてルータ同士が経路情報の交換を行い、宛先ホストまでのホップ数が最小となる経路を決定するBGPについての記載がありましたがその他のEGPが使われている例は存在するのでしょうか.またそれはなぜでしょうか.
現在のインターネットでは BGP 一択のようです。歴史的経緯だと思います。つまり、
必然ではなく、偶然そういう歴史を辿った、ということだと思います。
関学の工学部が兵庫県三田市にあるのは「たまたまそういう歴史だった (必然ではな
い)」というのと同じで、事実上 BGP しか使われていないのも「たまたまそういう歴
史だった (必然ではない)」のだと思います。
- 実習でもあったと思うんですが、ルーティングアルゴリズムとして強化学習の手法が提案されている(用いられている?)と思うのですが、数ある学習方法で強化学習(特にQ-learning)が選ばれているのは何故ですか?
「実際のルータで使われているか?」という意味だと No (使われていない) だと思い
ます。一方、Q 学習を使ったルーティング手法の提案の論文はたくさんあります。Q
学習の論文が多いのは、最も初期の頃に提案された (有名で、単純で、理解しやすい)
強化学習だからでしょう。
- 授業で、HTTP/1.0 と HTTP/1.1 の違いは理解したが他にもHTTP/2とHTTP/3があり、HTTP/2とHTTP/3では使用するトランスポートが異なるようですが、それはなぜですか。
HTTP/2 は TCP で、「TCP ではもう無理 (TCP があれこれするのがかえって邪魔)」
となって HTTP/3 は UDP を採用しています。
- HTTP/3は効率的ですが、多くの企業ネットワークではセキュリティポリシーでUDPを遮断していると聞きました。利便性(速度)とセキュリティ(管理のしやすさ)のトレードオフは、今後どのように折り合いがついていくとお考えですか? ファイアウォール側が進化するのか、それともゼロトラストのように守り方が根本から変わるのでしょうか?
UDP を遮断している理由は、単に「それほど重要な用途に使われていないから」だと
思います。UDP が重要な用途に使われるのであればファイアウォール側の設定が変わ
ると思います。原理的に、TCP と比べて UDP が特に危険なプロトコルではありませ
んので。
- DHCPACKが届かなかったときは、DHCPクライアントの動作はどうなりますか?
再送するか、あきらめます (他にできることがないからです)。
- pythonでインクリメントやデクリメントする際にC言語のように「count++」、「count--」と書くとエラーが出ます。「count+=1」、「count-=1」と書かなければいけないのはなぜですか?
「Python 言語を設計した Rossum がそう決めた」が理由だと思います。
プログラミング言語の文法上は、count++ は「式」で、count += 1 は「文」に分類
されます。「式」である count++ は「汚い」と判断したのだと思います。
有名な PEP 20 – The Zen of Python を紹介します。
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
この中だと、特に以下が該当していると思います (+1 する方法は自明な方法一つで
よい、という意味)。
There should be one-- and preferably only one --obvious way to do it.
- 大崎先生は一番夜遅くまで働いていると聞きました。長時間集中を維持するコツがあったら教えてください。
遅く起きることです (真面目な回答です)。楽しいこと、好きなことをやる。そのた
めに、楽しむ、好きになるよう工夫することだと思います。
- Web ブラウザを使わず通信できることは,セキュリティ理解にどんなメリットがありますか
原理を理解せずにセキュリティの話はできないと思います。原理を知るところからセ
キュリティの理解が始まるのだと思います。
- DNSはキャッシュによって負荷を減らしていますが、もしサーバが故障してIPアドレスを緊急に変更した場合、キャッシュのTTLが切れるまではクライアントが古いIPへアクセスし続けてしまうと思います。 その結果、サービス復旧の遅れに繋がりますがこの問題を技術的にどう回避できますか?
サーバが故障しても IP アドレスを変更する必要はありませんので、変えないのが一
番です。
どうしても変えないといけないのであれば、DNS の TTL 設定をあらかじめ (故障す
る前に) 短くしておくくらいだと思います。ですので、「IP アドレスを変える必要
がないように運用する」が正しいアプローチだと思います。
- HTTPのバージョンの使い分けとは具体的には何ですか
普通のユーザであれば「使い分ける」必要はありません。OS やブラウザが対応して
いる最新のバージョンのものを使うのが (普通は) 一番です。
組み込み機器とか、古い端末とか、最新の HTTP に対応していない端末であれば、対
応している HTTP を使います。
クライアント (例えばみなさんの Web ブラウザ) が、使用する HTTP プロトコルの
バージョンを指定して Web サーバに接続しますので、HTTP/1.1 とか HTTP/1.0 を使
いたければそれも可能です。
- HTTPやHTTPSのバージョンを更新しているのは、具体的にどのような機関や会社なのでしょうか?
IETF で標準化されているので、特定の企業が決めているものではありません。例え
ば HTTP/3 の RFC エディタは Akamai 社 (大手 CDN ベンダ) の人で、多数の組織の
人が標準化に参加しています。
RFC 9114 HTTP/3
https://www.rfc-editor.org/rfc/rfc9114.html
- このネットワークコンピューティングで学んだ内容は、基本情報技術者試験や応用情報技術者試験で役に立ちますか?
上の質問への回答でも同じようなことを言いましたが、「役立つ」は自動詞です。学
んだ内容が勝手に役には立ってくれません。そうではなく、「(あなたが) 役立てる」
という他動詞です。役立てられる/役立てられないは、あなた次第です。
役立てられる人は、例えば TCP のスロースタートフェーズの知識を、資格試験は当
然のこと、ありとあらゆることに役立てられます (例えば、会社経営でも、おいしい
レストランの選び方でも、結婚式の引出物の選択にでも)。役立てられない人は、何
にも役立てられません。
- オープンソースのOSのスマホのメリットはなんですか?
「自由」です。スマホのソフトウェアを、実行、コピー、配布、研究、変更、改良す
る自由を利用者が有することです。
以下を読んでみてください。
自由ソフトウェアとは?
https://www.gnu.org/philosophy/free-sw.ja.html
自由ソフトウェアはいまやさらに重要だ
https://www.gnu.org/philosophy/free-software-even-more-important.ja.html
- 大崎先生が学生時代に行っていた勉強法などはありますか?
はい。いくつか紹介します。
(1) 書籍にお金を惜しまない
「「読んでみたい」と思った本は買う」と決めて、実行していました。大学院生の頃
は本当に貧乏でしたが、「5000 円もするけど、どうしよう?」などと迷うことなく、
読みたいと思った本は購入していました。
(2) コンピュータと英語に注力する
上の書籍の話に近いですが、「コンピュータ」と「英語」への労力は惜しまない、と
決めていました。「コンピュータ」と「英語」は「やる」と決めていたので、「やっ
たほうがいいかな? どうしようかな?」などと迷うことなく時間と労力をかけました。
(3) できるまで寝ない
私はコンテキストスイッチングが無駄 (生産性を下げる) と思っているので、まとめ
て時間を取って一気に取り組みます。例えば、プログラムを作成するなら、「でき
た!!」と思えるところまで寝ずに一気に作業します (できるまで寝ません)。数十時
間でも連続で作業して、「私はやりとげた!!」という勝利の余韻に浸りながら心地良
い眠りにつくようにしています。
- 講義で絵を描く時に使っているタブレットは何ですか?
Wacom の Intuos です。お絵描きツールは (もちろん?) 自作です。
- 前半の内容になってしまうのですが、VLANはネットワークを仮想的なネットワークに分割しているという認識で合っていますでしょうか?とするならば、このVLANの範囲は、どのようにして決めているのでしょうか?OSI参照モデルの第二層のデータリンク層のスイッチの設定でどのVLANに所属しているかを決めているのでしょうか?その場合、VLANの決め方によって通信のスピードが変わると思うのですが、そのスイッチの設定の仕方はどのように行っているのでしょうか?
はい、そういう認識で合っています。VLAN 対応スイッチ (要はちょっと高級なイー
サネットスイッチ) に VLAN の設定を書き込みます。それぞれの Ethernet フレーム
にVLAN タグの情報を埋め込んで、どの VLAN に属する Ethernet フレームかを判別
しています。VLAN の決め方によって (ブロードキャストフレームが届く範囲が異な
るので) ネットワークに与える負荷も変わります。
スイッチの設定は (設定ツール等も使って) 手動で設定します。「スイッチ Aのポー
ト 1〜4 は VLAN ID 123 にして、スイッチ B のポート 16〜24 も VLAN ID 123 に
して……」のような設定を、各スイッチに書き込みます。
なし