Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ネットワークの基本の「き」改版
Search
Seiya
May 21, 2019
Technology
290
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ネットワークの基本の「き」改版
そもそもネットワークでどんななんだ?みたいな疑問を解決できそうなスライド
ネットワークアーキテクチャの話がメインです。
Seiya
May 21, 2019
More Decks by Seiya
See All by Seiya
ATProtocol ざっくり概要把握してみた @ DWeb Tokyo Meetup #2
silmin_
0
75
おうちGitLabのススメ
silmin_
4
2k
Git入門
silmin_
38
27k
暗号について
silmin_
0
220
LinuxCommand入門
silmin_
0
430
LinuxCommand入門2
silmin_
0
310
Webについて
silmin_
3
230
ネットワークとは
silmin_
0
290
コンピュータとは|初心者向け資料
silmin_
1
230
Other Decks in Technology
See All in Technology
幾何アルゴリズムで なめらかなピン操作を / iOSDC Japan 2026 / smoothpin
kazumanagano
0
250
深夜のクラウド懺悔室 1:29:300 or 1:0:0
kazzpapa3
1
230
コーディングエージェントでM5Stack系の開発を少し試した時の話 / M5 Japan Tour 2026 Autumn 東京
you
PRO
0
110
DEFCON_CHV_CTF_Write-up.pdf
bata_24
0
130
こんなアーキテクチャ図は嫌だ BEYOND THE TIME: 半年後の自分へ贈る15のメッセージ / 15 of Anti-pattern in AWS Architecture Diagrams
naospon
3
300
AIネイティブプロダクトで顧客価値を最大化するプロダクトエンジニアとFDEの協働
righttouch
PRO
0
210
AIオーケストレーションを活用した 開発ワークフローの設計と実践
bqnq
0
130
AI時代に顧客へ最速で価値を 届けるための試行錯誤 〜「AI × マネジメント」領域におけるmentoのケース〜
posterkeisuke
0
110
AIで実装は速くなった。なのにプロダクトは速くならない。職能の壁を越えて価値のフローを設計する
nwiizo
8
7.7k
2026-09-10 【Snowflake World Tour Tokyo 2026】dbt Core と Snowflake で実現する多層的なデータガバナンス / Multi-Layered Data Governance Powered by dbt Core and Snowflake
civitaspo
0
300
目の前の楽しいが人生を変える - コミュニティの螺旋の歩き方と楽しむコツ / change your life
soudai
PRO
4
360
生成AIのテナント制御とシャドーMCP対策 | AIを"止めずに"、情報を守る
yukun
0
140
Featured
See All Featured
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
680
My Coaching Mixtape
mlcsv
0
310
How to build a perfect <img>
jonoalderson
1
6k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
210
Facilitating Awesome Meetings
lara
57
7.1k
Unsuck your backbone
ammeep
672
58k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
880
Building AI with AI
inesmontani
PRO
1
1.2k
Producing Creativity
orderedlist
PRO
348
41k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Transcript
ネットワークの基本の「き」 mina
自己紹介 mina Twitter: @silmin_ Birth: 1999/04/04
ネットワークってなに?
ネットワークってなに コンピュータ同士を繋げた網の目のよ うなもの ←こんなの • LAN(Local Area Network) 部署内や建物内、敷地内などの 狭い範囲をカバー
• MAN(Metropolitan Area Network) 都市や市街地の一部または全体 をカバー • WAN(Wide Area Network) 地理的に離れたLAN同士を結ぶ LANやMANより広い範囲をカバー ネットワークの規模による分類
インターネットってなに ネットワークのネットワーク 多数のLANが共通の決まり(プロトコル)に従っ て、緩やかに繋がり合っている。 LAN LAN LAN LAN LAN プロトコル
プロトコル プロトコル プロトコル プロトコル プロトコル
互いの繋がりは 意識しなくていい
プロトコルの話
プロトコルについて コンピュータ同士が通信するための、共通のルール HTTP, IP, FTP, DNS あたりはよく見そう 通信の手順、データの形式、言語、送信元や宛先の情報.... 通信するには たくさんの決め事が必要
これらは階層構造(レイヤ)で整理する
階層構造(レイヤ)で管理 各層のプロトコルは独立している その層の変更が、他層に影響を与えない 同じ階層同士別のプロトコルに 入れ替えても通信は成立する 第 N 層 第 N+1
層 第 N-1 層 PC1 第 N 層 第 N+1 層 第 N-1 層 PC2 プロトコル プロトコル プロトコル
携帯電話を使う 日本語を使う 想像してること(解釈)が同じ
携帯電話を使う 英語を使う 想像してること(解釈)が同じ 入れ替えても通信(会話)は成立
階層構造(レイヤ)で管理 各層のプロトコルは独立している その層の変更が、他層に影響を与えない 同じ階層同士別のプロトコルに 入れ替えても通信は成立する • 拡張性や柔軟性が上がる • 実装が容易 •
修正が容易 第 N 層 第 N+1 層 第 N-1 層 PC1 第 N 層 第 N+1 層 第 N-1 層 PC2 プロトコル プロトコルを階層構造で体系化 ネットワークアーキテクチャ プロトコル プロトコル
ネットワークアーキテクチャは 各層が独立している 同じ階層の別プロトコルに 入れ替えても影響なし
ネットワークアーキテクチャ の各層
OSI参照モデル 7. アプリケーション層 アプリケーション同士の通信に必要な固有の部分を規定 6. プレゼンテーション層 ネットワーク上で扱うデータの形式を規定 5. セッション層 通信形式の規定や通信のタイミングの制御
4. トランスポート層 アプリケーションの識別とデータの品質の保証 3. ネットワーク層 終端ノード間(End-to-End)の通信(アドレス体系・経路制御 ) 2. データリンク層 隣接ノード間(Link-by-Link)の通信(フレーム生成) 1. 物理層 物理信号とビット列変換 ケーブルやコネクタ等の規定
プロトコルとパケット 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 セッション 一連の通信期間全体
トランスポート層 セッション層からの指示によって、通信方式とかタイミング制御を実際にやる アプリケーション間通信を実現する - パケットを適切なアプリケーションに届ける アプリケーションに適したデータの品質を保証 1bitの誤りも許されないデータを扱う → コネクション型通信 連続して高速に通信し続けるデータを扱う → コネクションレス型通
Webサーバ メールサーバ FTPサーバ FTP Web Email Web Email 適切なアプリケーションに振り分け
相手の存在を確認するかどうか • コネクション型通信 コネクションを確立(相手の存在を確認)してから通信を行う 品質は高いが速度は遅い 場面:1bitも誤りのない信頼性が必要な時 (メール等) • コネクションレス型通信 コネクションを確立(相手の存在を確認)せずに通信を行う
品質は低いが速度は速い 場面:連続した高速な通信が必要とされる時 (動画配信等)
ネットワーク層 終端ノード間(End-to-End)の通信を実現する ノード:PCやサーバ等の通信をになうネットワーク機器 経路制御 どの経路を使うのか選択する アドレス体系の規定 ネットワーク全体で統一されてる (IPアドレス)
データリンク層 隣接間ノード(Link-by-Link)の通信を実現する 隣接間ノード:実際に直接繋がってるノード データリンク:ノードを繋げる具体的な手段(Ethernet, 無線...) Ethernet Ethernet 無線 これら以外にも 様々なデータリンクを
経由する フレームの作成 伝送データの最小単位を作成 MACアドレスの管理 ノードを一意に識別するための アドレス
物理層 フレームを構成するビット列と物理信号との相互変換 ケーブルやコネクタの形式等を規定 0100101001... 0100101001... 変換 変換
TCP/IP ネットワークアーキテクチャの1つ 現在の標準がこれ • 実際に動く使えることを重視 • 仕様決定は誰でも参加可能 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アドレス
MACアドレスとIPアドレス IPアドレス(IPv4) ネットワーク上での住所のようなもの 例:192.168.1.100/24 アドレスが X.X.X.X の32bit(Xを2進数に変換) ネットワーク層の管轄 MACアドレス ネットワーク機器を一意に識別する
機器すべてに最初から刻印されてる 例:A0:B2:D5:7F:81:B3 アドレスがX:X:X:X:X:Xの形式でXは2桁の16進数 データリンク層の管轄
なんでアドレス2つも?
例 ルータ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アドレス → 更新
まとめ インターネットの通信はプロトコルってのに支えられてる プロトコルは階層構造で管理することで嬉しい ネットワーク機器は色々あって、働きがそれぞれ違う IPアドレスとMACアドレスはどっちも大事