class: title, smokescreen, shelf, no-footer # TCP/IPの基本概念と用語 <div class=footnote> 2回目以降にそなえて、このあと何度も登場する基本用語をみておきましょう </div> --- name: wholesight class: img-right,compact # 全体像 ![width640px](/images/network/end-to-end.png) - 右図: ホストとホストの通信 - ホスト = コンピュータ - END TO END (端〜端)通信 - 用語: 階層(Layer), 〜層 - 用語: プロトコル(取り決め,約束事) - TCP,IP,Ethernetなど - 用語: サーバ,クライアント - 右図: サーバ(左)とクライアント(右) - サーバ (写真の業務用PC) - サービスを提供する側 - WWWサーバ,メールサーバ - クライアント (右端のPC) - サービスを受ける側(お客様) - ブラウザやメールソフト - 人間が操作しているPC <div class=isd-digest-01-begin></div> --- class: img-right, compact # 通信のために必要な情報 ![width320px](images/denpyou_haitatsu.png) ![width320px](/images/network/end-to-end.png) - END-TO-END通信には5つの情報が必要 - 双方の**住所**(どこ〜どこ?) - **誰**から誰へ? - 配送**手段**の指定 - 宅急便の伝票と同じですね(右図) - 配送手段 ... 会社とプランの選定 - インターネットの場合 - **住所**?は**インターネット層**の担当 - 識別は**IPアドレス**という数字 - **誰**?は**トランスポート層**の担当 - 識別は**ポート番号**という数字 - アプリケーションの区別 - 配送**手段**は**TCP**を使うといった指定 - イーサネットやPPP, HDLCはEND-TO-ENDではなく、 **隣あうネットワーク機器間**のやりとりを担当 --- class: img-right, compact # サーバクライアントモデル <!-- server client image --> ![width320px](images/server-client-model.png) ![width320px](images/menu_tenin_yobu.png) - サーバとクライアントから構成される - **server client**もしくは**client server** - 呼び方は、どちらでもよい - 次の2つの要素から構成されている - サーバ = サービスを提供する側 - serve は「給仕」; 例: WWW サーバ,メールサーバ,ファイルサーバ - クライアント = サービスを受ける側 - お客さん; 例: WWWブラウザ,メールソフト - アプリケーションのほぼすべてが、サーバクライアントモデル - 反対語(?): P2P (Peer To Peer) --- class: col-2,compact # サーバクライアントモデルの利点と弱点 - ネットワーク資源がサーバに一極集中 - 少数のサーバと多数のクライアント - 利点(メリット) - 管理対象(サーバ)が少ない - クライアントは低機能でもよい - thin client - 最近ではchromebookが典型例 - 弱点(デメリット) - サーバやネットワークただ1ヶ所の障害で全体が影響を受けうる - 単一障害点 (SPOF: Single Point of Failure) の回避は困難(費用,技術) - 一般には、スケールしない - 増強しようとしても出来ない <wbr> - 障害対策 - 高価で信頼性が高いハードウエアの利用(でも壊れる時は壊れる;-) - 民生レベルPC群による分散システム - 代表例Google,独自ミドルウエア <iframe width="480" height="270" src="https://www.youtube.com/embed/avP5d16wEp0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> <!-- google ? rack image ? --> ![width120px](images/CC0_NERSC_data_center.jpg) (rackのイメージ,Googleではない) --- class: col-2,compact # 用語「レイヤー」(layer)について - このあと(教科書に必ず出てくる)**OSI 7階層モデル**を取り上げ、 スライドも、 今後はOSIの7階層をベースに説明するので、 レイヤー**1〜7**という用語はOSIモデルを想定しています - 逆に、TCP/IP モデルを下から順にレイヤー1〜4(たとえばIP層をレイヤー2)と呼ぶことはありません <wbr> - OSIモデルはTCP/IPと一致しませんが、 商品名や各種用語がOSI用語を使っていて、 そちらに合わせないと現場で困るため、現場に合わせて両方の用語を登場させています - 例: L2 スイッチ、L3 <br> L2の2は(OSIの)レイヤー2という意味 --- class: img-right,compact # OSI 7階層モデル (7 layer model) ![width640px](/images/network/OSI_layers.gif) - 教科書に出てくる概念図 - 理屈で考えると7層あるだろうと - TCP/IPとは独立に考えたものです - OSI7階層モデルはTCP/IPより後 - 実際のTCP/IP(数ページ前) - 厳密には違うが、なんとなく対応 - 適切ではありませんがTCP/IPでもL7などの用語を使います - L7 = アプリケーション - L4 = TCP,UDP - L3 = IP,ICMP - L2 = イーサネット,PPP,HDLC - L7などの用語を覚える必要性 - 試験に出る,業務の会話で必要 --- class: img-right,compact # パケットは封筒みたいなもの ![封筒](/images/network/packet-envelope.png) ![パケット](/images/network/ethernet-packet.png) - 次のような処理をイメージしてください 1. アプリケーションがデータを用意 1. TCP封筒に入れ(伝票にポート番号) 1. IP封筒に入れ(伝票にIPアドレス) 1. イーサネット封筒に入れ(伝票にはMACアドレス) 1. 宅配業者さんが隣へ運びます - 目的地まで繰り返します 1. 目的地へ到着後 1. 封筒から出して、出して、出して... 1. データをアプリケーションに渡す - 以上の手順を右下図のように書きます - 左側が先頭,左から右に読みます --- class: col-2,compact # パケット ![TCP](/images/network/tcp-all-layers.png) データにTCPヘッダがついてTCPパケットになり、 さらに、その前にIPヘッダがつけたされてIPパケットになる。 さらに、IPパケットの前後にイーサネットフレームのヘッダとトレイラがつき、 イーサネットフレームとなる。 ![UDP](/images/network/udp-all-layers.png) UDPパケットも同様 --- class: img-right,compact # 通信方式 ![](images/switching.png) - 通信方式の大きな違い - 回線交換 (右図上側) - 代表例:電話 - 巨大な糸電話(銅線,電気信号) - 余談: 英語で「〜に回線をつなげ」 Patch me through 〜 - 回線を占有しつづける - 無言電話でも課金されます - 占有しているため利用状態は安定 - パケット交換 (右図下側) - TCP/IP - 回線を共有可, 利用効率は高い - 共有のため、他のユーザ次第で回線品質が左右される - 混雑しすぎの場合は遅くなる --- class: col-2,compact # 規格 - 組織名 - OSI (Open System Interconnection) - いわゆる業界団体 - ISOを発行し、標準化を推進 - IETF (Internet Engineering Task Force) - 任意団体 - だれでも参加、提案可 - インターネットの標準化を推進 - RFCを発行 - 詳細は[JPNICのRFC解説](https://www.nic.ad.jp/ja/tech/rfc-jp.html) - 事実上の標準 (defact standard) - 流行し、みんなが利用しているもの - 標準規格が後付け,インターネット流 - インターネット以前の産業界と逆 <wbr> - RFCはインターネットの規格文書 - RFCはRequest For Commentsの略 - 本来は「どうでしょうか?」程度のニュアンスですが、 この名称が使われ続けているのがインターネット的 - 数年かけて`提案->ドラフト->標準`と昇格 - 途中で脱落する規格もあります - 標準までのぼりつめるまでには、複数の実装があり、 相互運用性が実証されなければならない - そのため、ドラフトの段階で、すでに利用可能なことが普通 - 文化: 標準になる段階で十分利用され枯れた技術になっていることを保証