class: title, smokescreen, shelf, no-footer # コンピュータネットワーク(2024-)<br><small>第02回 IP,WAN</small> <div class=footnote> <small><small> 3年、春学期、必修; 旧「コンピュータネットワーク」(-2023) </small></small> </div> --- class: compact # 用語集 - プロトコル ... Protocol - 相互に取り決めた約束事。インターネットの場合は「通信規約」といった意味 - IPアドレス(発音:あいぴーあどれす) ... IP Address - コンピュータを識別する数字。 ちなみにIPはInternet Protocolの略 - WAN(発音:わん) ... Wide Area Network - 文字どおり、広域的なネットワークのこと。わりとふんわりとした定義 - LAN(発音:らん) ... Local Area Network - WANの反対語なので用語だけ紹介です。後日やります - ISP(発音:あいえすぴー) ... Internet Service Provider - インターネット接続を提供する会社、ほぼ全部が民間企業だが一部は国営 - 携帯の場合、NTTやAUなどの販売元が電話会社(キャリア)とISPを兼ねている --- class: compact # IPアドレス <div class=footnote> <small><small> (脚注) 本当は2種類ありますが、古いほうのバージョン4略してIPv4(発音:あいぴーう゛いふぉー)だけを勉強します </small></small> </div> - 住所がないと互いに区別できないから、コンピュータにも住所をつけます - 住所は数字です。長さは<B>32ビット(4バイト</B> = 4オクテット) - コンピュータは2進数で動いているので、本当は2進数だけど、人間には辛すぎるので、 「ドット(`.`)くぎりの10進数4つ」で表現しています ``` [AWS EC2の例] 172.31.0.4 (2進数で表示すると) 10101100 00011111 00000000 00000100 ``` --- class: compact # インターネットに接続するには? <div class=footnote> <small><small> (脚注) IIJについては、 <A HREF="https://technotes.fml.org/tech/history/iij/30th/">「祝30周年!日本の商用インターネット」</A> とか、 <A HREF=https://togetter.com/li/1977225> togetterまとめ"#商用インターネット30周年 と昔話" </A> </small></small> </div> - 物理的には電話線の上にインターネットが論理的に構築されています(WANの話) - よって、<B>インターネットを使うには2つの契約が必要</B>です 1. 電話会社(キャリア) e.g. NTT, KDDI, ソフトバンク 2. ISP e.g. NTTなんとか, IIJ, その他たくさん - いまどき自分で契約したことないだろうから、実感ないと思いますが... - この話は設計編で見つもり作る際に、また出てきます --- class: compact,col-2 # <small>インターネットとは数万のISPで構成された転送システムの総称</small> <div class=footnote> <small><small> </small></small> </div> <small> <iframe width="480" height="270" src="https://www.youtube.com/embed/DdaElt6oP6w?rel=0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> <br> "The Internet: 1997 - 2021 (1m)" by Barret Lyon, CC-BY 3.0 <small> イメージを伝えるためだけのスライドです <br> - ルーティング情報をもとに可視化したもの <br> (生物的なイメージ?生命の樹?) </small> ![height480px](../../network/tcpip/inet_routing/images/1069646562.LGL.2D.4000x4000.png) <br> The Internet 2003 by Barret Lyon, CC BY 4.0 </small> --- class: compact, img-right # WANの経路上のネットワーク機器を視覚化する <div class=footnote> <small><small> (脚注) 210.128.53.193 は大学にある本科目の演習環境(図(下))の入口 </small></small> </div> ![height240px](../images/tracepath-oregon-to-chitose.png) ![height240px](../images/ex-env/whole-site.png) <small> - インターネット(WAN)上には、たくさんの中継機器があります。 ISPを実感するのは難しいですが、途中にあるネットワーク機器(ルータ)を見ることは出来ます。 このあと体験します ``` $ tracepath -n 210.128.53.193 1: 172.31.32.1 0.082ms ... 略 ... 7: 206.81.80.237 7.548ms 8: 58.138.88.225 124.263ms ... 12: 210.128.52.7 138.867ms 13: 210.128.53.193 ``` </small> --- class: title, smokescreen, shelf, no-footer # 本日の演習 --- class: compact # 本日の演習おしながき <div class=footnote> <small><small> </small></small> </div> 1. AWS Academy (vocareum)にログイン <small> - 解説の[資料](/slides/service/aws/academy/)を見てください(PDFはポータルに置きました)。 [動画](https://youtu.be/3ZBURM5Ek_A?list=PLS2cEmI21XYI0JwmLPz4uddf4eKtWRUwX)もあります - ログインできない人!(vocareum演習環境が前提なので、ここを揃えてから) </small> 1. Vocareumのターミナルから遠隔で調査 1. [課題] 構成図を書き、ポータルのレポート機能で、提出してください --- class: compact # 目的・目標 <div class=footnote> <small><small> </small></small> </div> - コマンドの使い方(実務)を教えている面もありますが、 - その出力から、構成を解読していく訓練ですね(第02回〜第09回) - サイバースペースにも物理的実体があることを実感してもらおう - ひとつアプリを叩くだけで、場合によっては数万キロ往復していることもある (いわゆるモッサリしている状態、それを数字で見てもらおう) --- class: compact,img-right # 本科目では、このターミナルからやります <div class=footnote> <small><small> (脚注) サイバースペースは目に見えないので、想像力だよ、想像力が大事 </small></small> </div> ![](../../service/aws/academy/images/aws-academy-student-view-05.png) - 授業が始まったら、この演習環境を立ち上げておいてください - 本科目ではAWS Academy (vocareum)のターミナルから作業します - [備考] ブラウザは手元で実行されていますが、 ブラウザ中のターミナル(中央の灰色)部分は、 アメリカ、オレゴン州にあるAWSのサーバで実行されています --- class: compact,img-right # 用語 <div class=footnote> <small><small> </small></small> </div> ![](../images/router-and-switches.png) - コマンド - コンピュータに与える命令で擬似英語っぽい単語(+文章)、スペース区切りに注意 - ルータ (router) - データの中継機材。 正確にはルーティングをする機材、詳細は後日 - スイッチ (switch) - 第5回くらいまで登場しません。 写真にあるので用語だけ紹介。 見た目ではルータと区別できないと思いますが、そういうものです:-) --- class: compact # 用語: WANの様子を調べるための定番コマンド <div class=footnote> <small><small> (脚注1) 正確には「アクティブソナー(active sonar) ... こちらから音波を送り出し、反応を探る」こと。 こちらの存在を相手に教えてしまう諸刃の剣。 ちなみに反対語はpassive sonar (脚注2) いまなら「沈黙の艦隊」(実写版)を見ろ? ... しらんけど(見たことないあるよ) </small></small> </div> - ping (発音:ぴん) <small> - 用例: 「ピンを打って!」「ピンが返るか確認して〜」 - 目的: 相手が反応を返すか?でネットワークが正常かを確認する。 反応を返さない場合、複数の可能性 (a)相手が死んでいるのか?(b)ネットワークが不調なのか?はたまた両方か?が混在している - 元ネタは潜水艦のソナー(音波で周囲や敵艦を探査する仕組み)で音波を出すこと(=PING) - [実演(wikipedia)](https://en.wikipedia.org/wiki/File:Sonar_pings.ogg) </small> - tracepath (発音:とれーすぱす) - traceroute (発音:とれーするーと) <small> - 用例: 「トレースルートしてみなよ」 - 目的: 引数で指定した目的地までの経路を表示する(tracepath,tracerouteともに同じ) - 開設: 本当はtracepathより(30年以上つかわれている)tracerouteのほうが定番ですが、AWS Academy (vocareum)では使わせてくれないので、 本演習ではtracepathを使います </small> --- name: prompt class: compact # <small>[凡例] Unixマニュアルorドキュメントの読み方</small> <div class=footnote> <small><small> (脚注) これは4/22の月曜日の午後に使うコマンドです。先取り </small></small> </div> <small> ``` [コマンドの記述例] $ sudo python3 www.py ``` - 左端の`$`をプロンプトと呼んでいます。<B>OSが「入力まち」を意思表示</B>していると考えてください - プロンプト`$`部分はOSやユーザごとに異なるので、あくまでも一例です - 通常、<B>左端にある特殊文字部分</B>は、プロンプトとして無視してください(そのうち慣れます) - <B>英語なので空白区切り</B>です。初心者は日本語のつもりか連続して文字を打ちこみがちなので注意 - ユーザが打ちこむ部分は `sudo python3 www.py` です。そしてENTERキーを押します - 通常マニュアルにENTERキーは書きませんので、ユーザが頭の中で補完してください - 雑誌や書籍では、組版(くみはん)の際にデザイナさんがENTER印を書きこんでくれているのです - 上の例では、sudoが実行するコマンド、sudoコマンドの引数が`python3 www.py`です </small> --- class: compact,img-right # インターネット上にある中継機器群 <div class=footnote> <small><small> (脚注) 図(上)の右上の出発点がオレゴンになっていることに注目してね(スライドのP.10参照) </small></small> </div> ![height180px](../images/tracepath-oregon-to-chitose.png) ![height180px](../images/router-and-switches.png) ![height180px](../../network/tcpip/ni_ethernet/images/bucket_relay_fire.png) - 知識編のスライド(P.6)で紹介したように、 インターネットを可視化することは難しいのですが、 通信している際の経路上にある機材を表示させることは出来ます - 図(上)の四角い箱は全てルータです - 機材から機材へはデータをバケツリレーしています (図(右下)) --- class: compact # 例題: pingで相手の生死を確認する <div class=footnote> <small><small> </small></small> </div> <small> ``` [コマンドの解説] $ ping IPアドレス [実行例] eee_W_3120626@runweb121229:~$ ping 210.128.53.193 PING 210.128.53.193 (210.128.53.193) 56(84) bytes of data. 64 bytes from 210.128.53.193: icmp_seq=1 ttl=240 time=134 ms 64 bytes from 210.128.53.193: icmp_seq=2 ttl=240 time=134 ms 64 bytes from 210.128.53.193: icmp_seq=3 ttl=240 time=134 ms ^C Ctrl-Cを打ちこんだ行 --- 210.128.53.193 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2000ms rtt min/avg/max/mdev = 134.023/134.272/134.671/0.285 ms eee_W_3120626@runweb121229:~$ ``` - pingコマンドの引数210.128.53.193は大学に構築した演習環境の出口のルータです ([ソナー音(wikipedia)](https://en.wikipedia.org/wiki/File:Sonar_pings.ogg)) - Ctrl-C (CtrlとCを同時に押す)でコマンドを止めてください(殺してください) </small> --- class: compact # pingコマンドの出力の読み方 <div class=footnote> <small><small> (脚注) おまけ: 考えてみよう〜この0.134秒って速いの?遅いの? </small></small> </div> <small> ![](../images/ping-results.png) ``` 64 bytes from 210.128.53.193: icmp_seq=1 ttl=240 time=134 ms ``` - 図の往復分`(1)+(2)`の時間の合計が time = 134 ms (0.134秒)です - pingコマンドは引数の目標(ここでは210.128.53.193)に対してデジタルデータを送り返事をもらっています (ソナーの「音波」に相当するのは、あるデジタルデータです) ([ソナー音(wikipedia)](https://en.wikipedia.org/wiki/File:Sonar_pings.ogg)) </small> --- class: compact # 例題: tracepathで経路を確認する <div class=footnote> <small><small> (脚注) 実際のしくみは「次々とpingを打っている」わけではありませんが、 説明がややこしいので省略 </small></small> </div> <div class=footnote> <small><small> </small></small> </div> ![height180px](../images/tracepath-oregon-to-chitose.png) <small> ``` [コマンドの解説] $ tracepath IPアドレス ``` - tracepathは自動的に停止します。Ctrl-Cは不要です - 経路上の機材に次々とpingを打っていると考えてください </small> --- class: compact # 例題: tracepathで経路を確認する(実行例) <div class=footnote> <small><small> </small></small> </div> <small> ``` [実行例] eee_W_3120626@runweb121229:~$ tracepath 210.128.53.193 1?: [LOCALHOST] pmtu 9001 1: ip-172-31-32-1.us-west-2.compute.internal 0.084ms pmtu 1500 1: no reply 2: 240.4.228.1 0.308ms 3: 240.1.228.15 7.090ms asymm 5 ... 中略 ... 7: 240.1.228.15 5.884ms asymm 5 8: tky009bb10.IIJ.Net 121.730ms asymm 16 ... 中略 ... 12: rtx-7.chitose.ac.jp.52.128.210.in-addr.arpa 135.974ms asymm 79 13: 210.128.53.193 136.529ms reached Resume: pmtu 1500 hops 13 back 16 ``` - tracepathは自動的に停止します。Ctrl-Cは不要です </small> --- class: compact # tracepathの読み方 <div class=footnote> <small><small> </small></small> </div> <small> ![height180px](../images/tracepath-oregon-to-chitose.png) ``` 7: 240.1.228.15 5.884ms asymm 5 8: tky009bb10.IIJ.Net 121.730ms asymm 16 ... 中略 ... 13: 210.128.53.193 136.529ms reached ``` - 最後の13(大学にあるルータ 210.128.53.193)からの応答時間が、 136msとpingの答え(134ms)とほぼ同じ - 7と8の間で、応答時間が 8.884 から 121.730 と一気に 0.1 秒以上長くなっています。なんででしょう? </small> --- class: compact # [解説] 海底ケーブル (日本〜オレゴン州(アメリカ)) <div class=footnote> <small><small> Any reference to TeleGeography’s<A HREF=https://www.submarinecablemap.com/>Submarine Cable Map</A>, URL, or any screencapture of the map is made available under the Creative Commons License: Attribution-ShareAlike 4.0 International (CC BY-SA 4.0). </small></small> </div> ![height400px](../images/submarine-cable-map-jp-to-oregon.png) --- class: compact # [解説] 海底ケーブル (日本〜アメリカ〜ヨーロッパ) <div class=footnote> <small><small> Any reference to TeleGeography’s<A HREF=https://www.submarinecablemap.com/>Submarine Cable Map</A>, URL, or any screencapture of the map is made available under the Creative Commons License: Attribution-ShareAlike 4.0 International (CC BY-SA 4.0). </small></small> </div> ![height400px](../images/submarine-cable-map-jp-to-eu.png) --- class: compact,img-right # [解説] データセンター(1) <div class=footnote> <small><small> </small></small> </div> ![](../../network/tcpip/intro/images/CC0_NERSC_data_center.jpg) <small> - みなさん(ブラウザの中のターミナルで作業しているあなた)は、いまオレゴンでコマンドpingやtracepathを打ちこんでいます - AWSは教えてくれないけど、なんか検索すると出てくるな... たぶんvocareumで使っているAWSのサーバ(実体)はポートランドの真ん中に流れている川の上流にあるかな? - [オレゴン州のデータセンター一覧 (https://www.datacentermap.com/usa/oregon/)](https://www.datacentermap.com/usa/oregon/) </small> --- class: compact,col-2 # [解説] データセンター(2): 北海道の例 <div class=footnote> <small><small> 図(左)はデータセンターではなくNTTの局舎(電話局)、 図(右)は"さくらインターネット 石狩データセンター" (2号棟の裏から見える3号棟; https://cloud.watch.impress.co.jp/docs/news/1508614.html)。 データセンターは、どれもこんな感じの味気のない巨大なビルです。 ちなみに大学のとなりにある(バス停から見える)エプソンの工場は、データセンターのイメージにぴったりです:-) <br> <B>Q: ところで、データセンターの見学に行きたい人っているのかな? -> お手々あげて?</B> </small></small> </div> ![height240px](../../network/tcpip/suppl_whereami/images/P_20210606_165908.jpg) ![height240px](https://asset.watch.impress.co.jp/img/clw/docs/1508/614/sakura_o.png) --- class: compact,img-right # 必須課題 <div class=footnote> <small><small> (脚注) 右図は構成図(ポンチ絵)の見本です。課題とは何の関係もありません </small></small> </div> ![height480px](../../network/design/office-question/images/office-network.png) <small> - 構成図(ポンチ絵)を書いてください。 - どこに、何or誰がいて、何が動いている? - 図に書き入れるべき要素(必須); (もちろん、必須以外に、いろいろ追記してOK) - [地名] 千歳、オレゴン - [機材] 自分のPC、ルータ(複数、要所要所だけでよい、13個も要らない) - [ソフトウエア] ブラウザ、ターミナルの実体 - 210.128.53.193 - 往復135msであることを意味する矢印 </small> --- class: compact # 自由課題 - とりくむかどうかは任意です。 ポータルのレポートボックスに提出してください <small> 課題 - 問1: 134msの値の説明をしてください。 この数字って妥当なのでしょうか? - 問2: インターネットの運用に人工衛星(正確には静止衛星)は使わない。それは何故か? - 備考: - バックアップのバックアップくらいで使うことなら、考えないこともないが...使わないな - 人工衛星でも、スターリンクは別のシステムです。あれならバックアップに使える (けど、同業他社の営利事業なので、買いたくない:-) </small>