2020-08-01 課題¶
- オリジナルコンテンツへのリンク
- 勉強会のコンテンツまとめ:GitHub へのリンク
- matplotlib を忘れないように、簡単なグラフをいくつか描いてみてください。
- TeX でいろいろな式を書いてみましょう。
- 実際に競プロの問題をいくつか解いてみましょう。例えば次のあたりからアタックします。数学・物理系の話として、まずはマスターオブ整数を眺めてみます。今回は素数判定のA - 素数、コンテスト、素数を見ましょう。
- 応用情報の本を一日2ページくらい眺めてみてください。毎日やれば大体 1 年で読み終わります。
- 次回対応予定:7.4 ネットワーク層のプロトコルと技術
- 東大の AWS クラウド講義資料を眺めてみてください。せっかくなので状況を見て(私の勉強も兼ねて)「勉強会前半パート」で取り上げようと思います。(とりあえず当面はやらない感じにする?)
- 自分用 TODO:Julia 化をがんばる
メモ:先に進む前に録画してあるか確認しよう¶
自分用メモ¶
- 遅延型方程式に対するコメント追加
- matplotlib のチュートリアルを読もうの会
- 公式情報に触れる重要性
- 古い情報が古いと書いてあったりする:たとえば
pylab
- Gallery
- 見ていて面白い
- 「どこをいじるとどう変わるか」が視覚的にわかる
- 公式情報なのできちんとアップデートしてくれている(はず)
- 公式情報にソースがあるので自分でいろいろ書き換えていて破滅したとき、必ずオリジナルを復元できる
Matplotlib¶
- とりあえず本当に簡単な図を描く
- 適当なランダムグラフ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
TeX の記録¶
- 運動方程式
\begin{align} \dot{p} &= F, \ \frac{dp}{dt} &= F, \ m\ddot{x} &= F, \ m \frac{d^2 x}{dt^2} &= F. \end{align}
競プロ、AtCoder¶
- 実際に競プロの問題をいくつか解いてみましょう。例えば次のあたりからアタックします。数学・物理系の話として、まずはマスターオブ整数を眺めてみます。今回は素数判定のA - 素数、コンテスト、素数を見ましょう。
素数判定のA - 素数、コンテスト、素数¶
ARC N に出場できるとき、すなわち N が素数のときは YES、そうでないときは NO と一行に出力せよ。
- 要は素数判定
- $N$ が素数かどうかを判定するには $\sqrt{N}$ 以下の数までチェックすればいい:素直に $N$ まで見ると大変なことになる。
ルートに対するオーダーの感覚¶
- 具体的に大きな数でどう振る舞うか見てみよう
1 2 3 4 5 6 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
問題の解法¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
1 2 3 4 |
|
IT 基礎知識¶
- 応用情報の本を一日2ページくらい眺めてみてください。毎日やれば大体 1 年で読み終わります。
- 次回対応予定:7.4 ネットワーク層のプロトコルと技術
今日の気分¶
- 次のネタを理解する:ツイートへのリンク
- What is your address?
- 173.168.16.11
- No, you local address
- 127.0.0.1
- I mean you physical address
- 28:05:FF:58:31:05
復習:OSI基本参照モデル¶
- 会社の部署と同じ気分
- 特定層は自分のところにしか責任を持たない
- 「他の層は他の層で専門的に管轄してね」
- お互い全くの無関係ではないが、基本的には自分のことだけ考えていればいい。
ある端末が持つ・割り当てられる IP¶
- 大前提:同じマシンでも状況に応じて IP はいろいろ変わる
- 例:スマホ
- 家の中のネット環境
- 外で単独で使うとき
- 適当な Wi-Fi につなぐとき
- 気分:どのルーターの配下にいるか?
- ルーターはあとで触れる
- 例:スマホ
外向き IP(グローバルアドレス)と内向き IP(ローカルアドレス)¶
- あなたが現在インターネットに接続しているグローバルIPアドレス確認
- (iPhone での)今の IP 確認
- iPhoneの設定アプリを開く。
- 「Wi-Fi」をタップする。
- 接続中の電波の名前欄をタップする。
- 「IPV4アドレス」の項目内の「IPアドレス」を確認する。
- cf. MACアドレス
- OSI での対応
- OSI参照モデルでいえば、第2層(データリンク層)Media Access Controlのアドレスにあたる。
- IPv4では、MACアドレスとIPアドレスの相互変換には、ARPやRARPというプロトコルを用いる。
- IPv6では、MACアドレスとIPアドレスの相互変換には、ICMPv6で規定されている近隣探索プロトコル(Neighbor discovery, NDP)を用いる。
- IP は第3層のネットワーク層
- OSI での対応
MACアドレスは、LANカード、ルータ、ハブなどのネットワーク機器に割り当てられます。実際にデータ通信を行う際、最終的にはパソコンなどのコンピュータ同士、つまりIPアドレス間のやり取りになりますが、行き来するデータは途中でルータやハブなどの機器を経由しています。機器から機器へのデータ移動の際に、MACアドレスによって、次のデータの引き渡し先を判別するという仕組みです。
IP 割り当て問題¶
- いろいろな切り口がある
- 1 つの方向性:IP 枯渇問題
- なぜ IPv4 と IPv6 の 2 つがあるのか?
- IPv4 では足りなくなったから
- IPv6 で方式ごと変えて増やした
- IoT 端末にも IP を振りたい:冷蔵庫を外から操作
- 内向き・外向きのアドレスが出てくる理由も同じ
- 外向きのアドレスが「真のアドレス」:会社の代表番号
- 内向きのアドレスは内線番号
- 内線番号にまでいちいち正規の電話番号を割り当てない
- そもそも公開したいとさえ思わない
- 「公開したいとさえ思わない」というのがまさに別の切り口の 1 つ
本の記述を追いかける¶
P.386 コネクションレス型通信である¶
通信中のパケット紛失や重複、改竄の検出やそのための対応が必要な場合はアプリケーションで行う。それによってトランスポート層でのそのような処理のオーバーヘッドを削減している。リアルタイム・システムでは遅れているパケットを待つよりもそういうパケットはないものとして処理する方が好ましいため、適時性を重視するアプリケーションでよく使われている[1]。トランスポート層での誤り検出機能が必須なら、その用途に設計された Transmission Control Protocol (TCP) または Stream Control Transmission Protocol (SCTP) を使えばよい。
- オーバーヘッドの問題はいろいろなところで出てくる
- 参考:「ITの分野では、コンピュータで何らかの処理を行う際に、その処理を行うために必要となる付加的、間接的な処理や手続きのことや、そのために機器やシステムへかかる負荷、余分に費やされる処理時間などのことをオーバーヘッドということが多い。」
P.386 ルーターとは¶
- 異なるネットワークを相互に接続するネットワーク機器
- Wikipedia
通常はOSI基本参照モデルでの第1層(物理層)から第3層(ネットワーク層)までの接続を担う。一般的に用いられるルーターは、基本機能として各ネットワーク間でのIPパケット(第3層)をやり取りできるようにする装置であるが、実際は基本に加えてさまざまな付加機能を実現している。
ハードウェアとしてのルーターは、おおまかに通信事業者 (ISP) 向けのコアルーターと企業向けのエッジルーター、コンシューマー向けのブロードバンドルーターに分けられる。
ルーターというのは「会社の電話の内線と外線の交換機」にそっくりです。最初からそう説明すればよかったですね。
あなたが iPad のサファリを開き、キーワード「NETAGE のWiFi レンタルは国内最安?」を Google で検索すると、iPad は WiFi 経由で WiFi ルーターに接続されます。そして WiFi ルーターは LTE(3G や 4G でもいいですけど)で近くの基地局と接続し、その先のインターネットに接続します。 LAN につながった iPad から WiFi 経由でWiFi ルーターにリクエストが送信されたのです。その後、WiFi ルーターから近所のアンテナ基地局へ、そこから更にインターネットを経由して Google サーバにリクエストが届きます。
このようなネットワーク接続状態のとき、WiFi ルーターのこっち側を LAN(ローカルエリアネットワーク)、向こう側を WAN(ワイドエリアネットワーク)と呼びます。(必ずしも正確ではないですが、シンプルに考え、)WAN はインターネット、LAN は WiFi、とすれば分かりやすいと思います。
P.386 (IP)ヘッダ¶
P.389 特殊なIPアドレス¶
- 8.8.8.8:Google の DNS として有名
- 127.0.0.1:開発時によく使う。Windows だと「c:/Windows/System32/drivers/etc/hosts」ファイルでドメイン名「localhost」を指定して使うこともある。
- グローバル IP とローカル IP
- 最初に触れた問題
- 外向きにグローバル IP アドレス、内向きにプライベート IP アドレスを使う
- IP の無駄遣いを防ぐためもある
- クラス A-C:会社の規模によって使い分ける
- もちろん A が大企業向け、C が小企業・家庭用という感じ
- 本でいきなり「192.168.」というアドレスが出てくることがあるが、それはまさにこのプライベートアドレスで話をしている。
P.390 サブネットマスク¶
- これは社内セキュリティに使われたりする
- 参考
- 会社の部署間でデータの参照を制限する場合
- パソコンやサーバの台数が多く分割して管理する場合
- 開発環境と本番環境を分けるなど、環境を切り離す場合
- ネットワーク設計の話
- 経営関係の資料を一般社員には見せたくない
- 経営関係者のネットワークとその他社員の領域を切り分け、経営関係者しかその資料があるところにアクセスできないようにする
P.392 IPv6¶
- IP アドレスの枯渇
- IPv4 でも「特殊なIPアドレス」などグローバル・ローカルを分けたりして枯渇対策はしてきた。
- 「端末」が世にあふれてきて、アドレスが足りなくなってきた
- 原理的に「IPアドレスは32けたの2進数」としているので、これ以上増やせない
- IPはよく「インターネット上の住所」に例えられるが、市町村合併で起きる実際の住所変更のように柔軟に変えられるわけではない
- 実際の住所にしても行政関係はもちろん、郵便や運送業などのシステムのレベルでは修正や対応が必要
- IPはよく「インターネット上の住所」に例えられるが、市町村合併で起きる実際の住所変更のように柔軟に変えられるわけではない
- 既存の機器・プログラムはこの前提で動いていて、勝手に変えられないし、仮に変えられるとしても膨大な手間になる
- 新たな仕様を作り、それで世界全体に持っていく
- 少なくとも既存の欠点はつぶしておく必要があるし、しばらく枯渇しないようにしたい
- 原理的に「IPアドレスは32けたの2進数」としているので、これ以上増やせない