Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ネットワークとは
Search
mina
May 30, 2021
Technology
0
160
ネットワークとは
大学サークルのイントロ用資料です
そもそもなぜネットワークが成立しているかを話します
mina
May 30, 2021
Tweet
Share
More Decks by mina
See All by mina
おうちGitLabのススメ
silmin_
3
930
Git入門
silmin_
23
13k
暗号について
silmin_
0
110
LinuxCommand入門
silmin_
0
260
LinuxCommand入門2
silmin_
0
180
Webについて
silmin_
3
130
コンピュータとは|初心者向け資料
silmin_
1
93
ビットについて|入門者向け資料
silmin_
0
140
GitLab-CIとGoogleCloudRunで作るSandBox環境
silmin_
2
220
Other Decks in Technology
See All in Technology
Introduction to Works of ML Engineer in LY Corporation
lycorp_recruit_jp
0
120
Why does continuous profiling matter to developers? #appdevelopercon
salaboy
0
190
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
250
Engineer Career Talk
lycorp_recruit_jp
0
170
TypeScript、上達の瞬間
sadnessojisan
46
13k
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
300
マルチモーダル / AI Agent / LLMOps 3つの技術トレンドで理解するLLMの今後の展望
hirosatogamo
37
12k
【若手エンジニア応援LT会】ソフトウェアを学んできた私がインフラエンジニアを目指した理由
kazushi_ohata
0
150
社内で最大の技術的負債のリファクタリングに取り組んだお話し
kidooonn
1
550
Making your applications cross-environment - OSCG 2024 NA
salaboy
0
190
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
4
300k
誰も全体を知らない ~ ロールの垣根を超えて引き上げる開発生産性 / Boosting Development Productivity Across Roles
kakehashi
1
230
Featured
See All Featured
Making Projects Easy
brettharned
115
5.9k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
16
2.1k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Building an army of robots
kneath
302
43k
Statistics for Hackers
jakevdp
796
220k
A Philosophy of Restraint
colly
203
16k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
Happy Clients
brianwarren
98
6.7k
Visualization
eitanlees
145
15k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
89
Building Your Own Lightsaber
phodgson
103
6.1k
Transcript
ネットワークとは SecPrj Intro-phase
ネットワークとは ネットワークとは、「網」という意味の英単語。網そのものを指す用法の他に、複数の 要素が互いに接続された網状の構造のことを比喩的にネットワークという。... ITの分 野では、複数のコンピュータや電子機器などを繋いで信号やデータ、情報をやりとりす ることができるコンピュータネットワークあるいは通信ネットワークのことを意味するこ とが多い。 (ネットワーク(NW)とは - IT用語辞典
e-Words より) 『複数のコンピュータを繋いで情報がやりとりできる構造』
これらはネットワーク/インターネットのおかげ
これらはネットワーク/インターネットのおかげ サーバと通信してコンテンツを配信
ネットワークとは - 規模による分類 • LAN(Local Area Network) 部署内や建物内、敷地内などの狭い範囲をカバー • MAN(Metropolitan
Area Network) 都市や市街地の一部または全体をカバー • WAN(Wide Area Network) 地理的に離れたLAN同士を結ぶ LANやMANより広い範囲をカバー ほとんどはLANの派生だと思えばいい 図:ネットワークとは https://www.infraexpert.com/study/networking.html
ネットワークとインターネット ネットワークのネットワーク 全世界のネットワークを接続した 大きなコンピュータネットワークのこと 全体を統括するコンピュータは居らず 互いに緩やかにつながっている さまざまなコンピュータから接続可能 LAN WAN LAN
MAN WAN
どうやってコンピュータ同士でやりとりするか ◦◦◦△◦ □□□◦ ?
プロトコル コンピュータ同士が通信するための、共通のルール HTTP / IP / FTP / DNS あたりはよく見そう
通信の手順、データの形式、言語、送信元や宛先の情報.... 通信するには たくさんの決め事が必要 これらは階層構造(レイヤ)で整理する
携帯電話を使う 日本語を使う 想像してること(解釈)が同じ
携帯電話を使う 英語を使う 想像してること(解釈)が同じ 入れ替えても通信(会話)は成立
携帯電話を使う 日本語を使う 想像してること(解釈)が違う 通信(会話)は成立しない
プロトコル 各層のプロトコルは独立している その層の変更が、他層に影響を与えない 同じ階層同士別のプロトコルに 入れ替えても通信は成立する • 拡張性や柔軟性が上がる • 実装が容易 •
修正が容易 第 N 層 第 N+1 層 第 N-1 層 PC1 第 N 層 第 N+1 層 第 N-1 層 PC2 プロトコルを階層構造で体系化 ネットワークアーキテクチャ
B A C PC1 B A C PC2
B A D PC1 B A D PC2 同階層なら入れ替えても通信は成立
B A D PC1 B A Z PC2 この通信は成立しない
OSI参照モデル 7. アプリケーション層 アプリケーション同士の通信に必要な固有の部分を規定 6. プレゼンテーション層 ネットワーク上で扱うデータの形式を規定 5. セッション層 通信形式の規定や通信のタイミングの制御
4. トランスポート層 アプリケーションの識別とデータの品質の保証 3. ネットワーク層 終端ノード間(End-to-End)の通信(アドレス体系・経路制御 ) 2. データリンク層 隣接ノード間(Link-by-Link)の通信(フレーム生成) 1. 物理層 物理信号とビット列変換 ケーブルやコネクタ等の規定 こいつは実際に使われてはおらず,後述の TCP/IPが主流 しかし,学ぶ上では有益なのでよく取り上げられる
プロトコルとパケット 7. アプリケーション層 6. プレゼンテーション層 5. セッション層 4. トランスポート層 3.
ネットワーク層 2. データリンク層 1. 物理層 データ ヘッダ7 データ ヘッダ7 ヘッダ6 データ ヘッダ7 ヘッダ6 ヘッダ5 データ ヘッダ7 ヘッダ6 ヘッダ5 ヘッダ4 データ ヘッダ7 ヘッダ6 ヘッダ5 ヘッダ4 ヘッダ3 データ ヘッダ7 ヘッダ6 ヘッダ5 ヘッダ4 ヘッダ3 ヘッダ2 0100101001... メッセージ データグラム フレーム セグメント・データグラム コネクション型↓ コネクションレス型↓ パケット
アプリケーション層 アプリケーション間の通信に必要な固有の部分を規定 メッセージ・ヘッダ リクエスト・ライン リクエスト・ヘッダフィールド 一般ヘッダフィールド エンティティヘッダフィールド その他 空行 (CR+LF)
メッセージ・ボディ HTTPリクエストフォーマット
プレゼンテーション層 データの表現形式 を規定 ネットワーク全体で統 一された形式 OSやアプリケーション固 有の形式 相互変換 ア プ
リ ケ ー シ ョ ン 層 プ レ ゼ ン テ ー シ ョ ン 層 ア プ リ ケ ー シ ョ ン 層 プ レ ゼ ン テ ー シ ョ ン 層 UTF8 EUC-JP ISO2022-JP
セッション層 通信方式の規定・通信タイミング の制御 • 通信の開始・終了のタイミング • コネクション(論理的な通信路)の確 立・切断 • 通信順序
トランスポート層に指示 もしもーし?smtp.example.comさん? はーい。なんでしょう。
[email protected]
から~ ほうほう
[email protected]
に送りたいです メール送信の例 了解です!データを下さい! これです~ DATA 受け取りました~ ありがとう、さようなら〜 さようなら〜 smtp.example.com セッション 一連の通信期間全体
トランスポート層 セッション層からの指示によって、通信方式とかタイミング制御をして パケットを適切なアプリケーションに届ける(ポート番号/ソケットなど) Webサーバ メールサーバ FTPサーバ FTP Web Email Web
Email 適切なアプリケーションに振り分け アプリケーションに適したデータの品質を保証 1bitの誤りも許されないデータを扱う → コネクション型通信 連続して高速に通信し続けるデータを扱う → コネクションレス型通信
相手の存在を確認するかどうか • コネクション型通信 ◦ コネクションを確立してから通信を行う ◦ 品質は高いが速度は遅い ◦ 使用場面:1bitも誤りが許されない時(メールなど) •
コネクションレス型通信 ◦ コネクションを確立せずに通信を行う ◦ 品質は低いが速度は速い ◦ 使用場面:連続した高速な通信が厳密さよりも必要とされるとき(動画配信など) コネクションは仮想的な接続状態のこと これを確立してからだと通信の確実性があがる
ネットワーク層 終端ノード間(End-to-End)の通信を実現する 経路制御 どの経路を使うのか選択する IPアドレスの提供 ネットワーク内における住所 ノード:コンピュータやネットワーク機器など
データリンク層 隣接間ノード(Link-by-Link)の通信を実現する 隣接間ノード:実際に直接繋がってるノード データリンク:ノードを繋げる具体的な手段(Ethernet, Wi-Fi...) Ethernet Ethernet Wi-Fi MACアドレスの管理 ノードごとに固有のアドレス
物理層 フレームを構成するビット列と物理信号との相互変換 ケーブルやコネクタの形式等を規定 0100101001... 0100101001... 変換 変換 LANケーブル (RJ45コネクタ)
TCP/IP ネットワークアーキテクチャの1つ 現在の標準 実際に動いて使えることを重視しISO標準より普及した OSI参照モデルと違い4階層構造 4. アプリケーション層 3. トランスポート層 2.
インターネット層 1. ネットワーク インターフェース層
OSI参照モデルとTCP/IP 7. アプリケーション層 6. プレゼンテーション層 5. セッション層 4. トランスポート層 3.
ネットワーク層 2. データリンク層 1. 物理層 4. アプリケーション層 3. トランスポート層 2. インターネット層 1. ネットワーク インターフェース層 ソフトウェアに任せる →ソフトの自由度を優先 TCP/IPが厳密に規定 ハードウェアに任せる →ハードの自由度を優先 変化が 激しい 変化が 激しい
ネットワーク機器の話 各層にはそれに対応する機器がある • 物理層:リピータ • データリンク層:ブリッジ • ネットワーク層:ルータ • 以降も階層ごとにあったりする
物理信号(電気とか光とか)の増幅・整形 物理信号はケーブル長が伸びれば伸びるほど劣化していく (ノイズ乗ったり弱くなったり) 伝送距離を延長するため、LANを延長するために用いる 物理信号を変換(電気→光)できるやつもいる 接続段数に制限あり(コリジョン(衝突)検出云々の事情) リピータハブって呼ばれる リピータ(物理層)
ブリッジ(データリンク層) フレームを認識して機能的な転送 • 宛先の識別(MACアドレスの学習) • フレームのエラー検出 • 媒体・速度が違うデータリンクを接続可(バッファがある) • 実際の機器はスイッチングハブ(スイッチ)ともいう
MAC:A MAC:B MAC:C MAC:D port1 port2 B宛だから 流さないよ!
ルータ(ネットワーク層) LAN同士を接続する(LANを分断する) • 経路制御:パケットを適切なルータ・宛先へ転送 • 異なる規格のデータリンク同士を接続 (Ethernet → 無線LAN等) LAN1
LAN2 LAN3 ルータ ルータ
経路制御 LAN2 LAN1 ルータA LAN3 LAN4 ルータB LAN5 ルータC 送信者
受信者
経路制御 送信者 LAN2 LAN1 ルータA LAN3 LAN4 ルータB LAN5 ルータC
宛先 転送先 LAN1 - LAN2 - LAN3 ルータB LAN4 ルータB LAN5 ルータB 宛先 転送先 LAN1 ルータA LAN2 - LAN3 - LAN4 - LAN5 ルータC 宛先 転送先 LAN1 ルータB LAN2 ルータB LAN3 ルータB LAN4 - LAN5 - ルータA ルータB ルータC 受信者
経路制御 LAN2 LAN1 ルータA LAN3 LAN4 ルータB LAN5 ルータC 宛先
転送先 LAN1 - LAN2 - LAN3 ルータB LAN4 ルータB LAN5 ルータB 宛先 転送先 LAN1 ルータA LAN2 - LAN3 - LAN4 - LAN5 ルータC 宛先 転送先 LAN1 ルータB LAN2 ルータB LAN3 ルータB LAN4 - LAN5 - データ LAN5宛 送信者 受信者
MACアドレスとIPアドレス • IPアドレス(IPv4) ◦ ネットワーク上での住所のようなもの ◦ 例:192.168.1.100 ◦ フォーマットは X.X.X.X
の32bit(Xは8bitの2進数/10進だと0~255) ◦ ネットワーク層(インターネット層)の管轄 • MACアドレス ◦ ネットワークに繋がる機器を一意に識別する ◦ 機器全てに最初から書き込まれている ◦ 例:A0:B2:D5:7F:81:B3 ◦ フォーマットは X:X:X:X:X:X (Xは2桁の16進数) ◦ データリンク層(ネットワークインターフェース層)の管轄
なぜ機器を指すアドレスが2つもあるのか ネットワーク層(IPアドレス)は 終端ノード間 の通信を規定 データリンク層(MACアドレス)は 隣接ノード間 の通信を規定
ルータA ルータB IP: aa MAC: AA IP: bb MAC: BB
IP: ra MAC: RA IP: rb MAC: RB PC1からPC2へパケットを送る PC1 PC2
ルータA ルータB IP: aa MAC: AA IP: bb MAC: BB
IP: ra MAC: RA IP: rb MAC: RB PC1 PC2 データ aa → bb AA → RA データ 送信元IP→宛先IP 送信者MAC→宛先MAC ネットワーク層 データリンク層
ルータA ルータB IP: aa MAC: AA IP: bb MAC: BB
IP: ra MAC: RA IP: rb MAC: RB PC1 PC2 データ aa → bb AA → RA データ aa → bb RA → RB データ 送信元IP→宛先IP 送信者MAC→宛先MAC データ aa → bb RB → BB ネットワーク層 データリンク層
まとめ ネットワークの通信はプロトコルに支えられている プロトコルは階層構造で管理されている(抽象化) ネットワーク機器にもいろいろある IPアドレスとMACアドレスはどっちも大切