OSI参照モデルとは?ネットワーク通信の基礎を7階層で理解する完全ガイド

Web

インターネットでWebサイトを見たり、メールを送ったりするとき、裏側で何が起きているか考えたことはありますか?

「データがどうやって相手に届くのか分からない」「ネットワークの勉強で出てくるOSI参照モデルって何?」と感じている方も多いはずです。

実は、OSI参照モデルは、ネットワーク通信を7つの階層に分けて整理した、ネットワーク技術の基礎となる重要な概念なんです。このモデルを理解すると、複雑なネットワーク通信の仕組みが驚くほど分かりやすくなりますよ。

この記事では、OSI参照モデルの7つの層から実際の応用例まで、ネットワーク初心者の方にも分かりやすく解説していきます。

難しい専門用語も、身近な例えを使って丁寧に説明していきますね!


スポンサーリンク
  1. OSI参照モデルとは?その誕生の背景
    1. 基本的な説明
    2. なぜOSI参照モデルが生まれたのか
    3. OSI参照モデルの目的
  2. なぜ7つの層に分けるのか
    1. 階層化の利点
    2. 階層化の具体的なメリット
  3. OSI参照モデルの7つの層
  4. 第7層:アプリケーション層(Application Layer)
    1. 役割と機能
    2. 主なプロトコル
    3. 具体例
  5. 第6層:プレゼンテーション層(Presentation Layer)
    1. 役割と機能
    2. 主な機能
    3. 具体例
  6. 第5層:セッション層(Session Layer)
    1. 役割と機能
    2. 主な機能
    3. 具体例
  7. 第4層:トランスポート層(Transport Layer)
    1. 役割と機能
    2. 主なプロトコル
    3. TCPとUDPの使い分け
    4. ポート番号
    5. 具体例
  8. 第3層:ネットワーク層(Network Layer)
    1. 役割と機能
    2. 主なプロトコル
    3. ルーティング
    4. IPアドレス
    5. 具体例
  9. 第2層:データリンク層(Data Link Layer)
    1. 役割と機能
    2. 主な機能
    3. MACアドレス
    4. 主な機器
    5. 具体例
  10. 第1層:物理層(Physical Layer)
    1. 役割と機能
    2. 主な要素
    3. 物理的な規格
    4. 主な機器
    5. 具体例
  11. TCP/IPモデルとの比較
    1. TCP/IPモデルとは
    2. 対応関係
    3. なぜ2つのモデルがあるのか
  12. 実際のデータの流れ
    1. データ送信の流れ(カプセル化)
    2. データ受信の流れ(デカプセル化)
  13. ネットワーク機器とOSI参照モデル
    1. レイヤーごとの機器
    2. それぞれの役割
  14. トラブルシューティングとOSI参照モデル
    1. レイヤーごとの確認
    2. ボトムアップアプローチ
  15. よくある質問
    1. Q1: OSI参照モデルは今も使われているの?
    2. Q2: なぜ7層もあるの?もっとシンプルにできないの?
    3. Q3: すべての通信が7層すべてを使うの?
    4. Q4: TCP/IPとOSI、どちらを覚えればいい?
    5. Q5: データリンク層とネットワーク層の違いは?
  16. 実務での応用例
    1. ネットワークエンジニアの会話
    2. セキュリティ対策
  17. まとめ

OSI参照モデルとは?その誕生の背景

基本的な説明

OSI参照モデル(OSI Reference Model)は、「Open Systems Interconnection Reference Model」の略称です。

日本語では「開放型システム間相互接続参照モデル」と呼ばれますが、一般的にはOSI参照モデルまたは単にOSIモデルと呼ばれています。

これは、異なるコンピューターシステム同士が通信するための標準的な枠組みを定めたものなんです。

なぜOSI参照モデルが生まれたのか

1970年代から1980年代初頭、コンピューターネットワークの世界には大きな問題がありました。

当時の課題:

  • メーカーごとに独自の通信方式を採用
  • 異なるメーカーの機器同士が通信できない
  • ネットワーク技術の標準化が必要

例えば、IBM製のコンピューターとDEC製のコンピューターは、通信できなかったんです。まるで、日本語しか話せない人と、英語しか話せない人が会話しようとしているような状況ですね。

そこで、ISO(国際標準化機構)が1984年に、すべてのメーカーが共通して使える標準モデルとして、OSI参照モデルを策定したんです。

OSI参照モデルの目的

主な目的:

1. 標準化
どのメーカーの機器でも相互接続できるようにする

2. モジュール化
各機能を独立した層に分けて、設計や開発を効率化する

3. 教育的価値
ネットワーク通信の仕組みを体系的に理解するための枠組み

4. トラブルシューティング
問題がどの層で起きているか特定しやすくする

特に、教育やトラブルシューティングでは今でも非常に重要な概念なんですよ。


なぜ7つの層に分けるのか

階層化の利点

複雑なネットワーク通信を、なぜわざわざ7つの層に分けるのでしょうか?

郵便配達で例えると:

手紙を送る作業を階層化すると:

第1層:配達人が実際に運ぶ
自転車、トラック、飛行機などの物理的な輸送

第2層:配達ルートの管理
どの経路で運ぶか決める

第3層:住所の管理
どこに届けるか判断する

第4層:追跡番号の管理
荷物が確実に届くよう追跡する

第5層:郵便局との窓口
郵便局とのやり取りを管理

第6層:手紙の形式
封筒の書き方、切手の貼り方

第7層:手紙の内容
実際に書く文章

このように分けることで、各段階の専門家が独立して仕事ができるんです。

階層化の具体的なメリット

1. 独立性
各層は独立して動作するので、一つの層を変更しても他の層に影響しません。

2. 再利用性
下の層の機能を、上の層が自由に使えます。

3. 標準化
各層ごとにインターフェースを標準化できます。

4. トラブルシューティング
問題がどの層で起きているか特定しやすくなります。

5. 開発効率
各層を異なる専門家チームが並行して開発できます。

まるで、大きなレゴブロックを組み立てるように、各層を組み合わせてネットワークシステムを構築できるわけですね。


OSI参照モデルの7つの層

OSI参照モデルは、上から順に以下の7つの層で構成されています。

覚え方:
プリケーション レゼンテーション ッション ランスポート ットワーク ータリンク ツリカル」

頭文字を取って「ア・プ・セ・ト・ネ・デ・ブ」と覚える人もいますよ。

それでは、一つずつ詳しく見ていきましょう!


第7層:アプリケーション層(Application Layer)

役割と機能

アプリケーション層は、ユーザーに最も近い層で、実際にアプリケーションソフトウェアがネットワーク機能を使うためのインターフェースを提供します。

私たちが普段使うWebブラウザ、メールソフト、ファイル転送ソフトなどが、この層で動作するんです。

主なプロトコル

HTTP/HTTPS
Webページの閲覧に使用。ブラウザとWebサーバー間の通信を担当します。

SMTP
メールの送信に使用。メールクライアントからメールサーバーへの送信を担当します。

POP3/IMAP
メールの受信に使用。メールサーバーからメールを受け取ります。

FTP
ファイルの転送に使用。ファイルのアップロードやダウンロードを担当します。

DNS
ドメイン名とIPアドレスの変換。www.example.comを192.0.2.1に変換します。

SSH
安全なリモート接続に使用。暗号化された通信でサーバーに接続します。

具体例

Webページを見るとき:

  1. ブラウザ(アプリケーション)がHTTPプロトコルを使用
  2. 「example.comのトップページをください」とリクエスト
  3. サーバーがHTMLデータを返す

この一連のやり取りが、アプリケーション層で行われているんです。


第6層:プレゼンテーション層(Presentation Layer)

役割と機能

プレゼンテーション層は、データの表現形式を管理する層です。

データの圧縮、暗号化、文字コード変換など、アプリケーションがデータを理解できる形式に変換する役割を担います。

主な機能

データ形式の変換
文字コード(UTF-8、Shift-JISなど)の変換を行います。

データの圧縮
画像や動画を圧縮して、データサイズを小さくします。

暗号化・復号化
データを暗号化して、盗聴から保護します。

具体例

文字化けの防止:
日本語のメールを送るとき、送信側の文字コード(UTF-8)を受信側が理解できる形式に変換してくれるのが、この層の役割です。

JPEG画像の表示:
Webページ上の画像(JPEG形式)を、ブラウザが表示できる形式にデコードします。

SSL/TLSによる暗号化:
HTTPSでWebサイトにアクセスするとき、データを暗号化してセキュリティを確保します。


第5層:セッション層(Session Layer)

役割と機能

セッション層は、通信の開始から終了までの一連の流れ(セッション)を管理する層です。

会話の始まりと終わりをコントロールして、データのやり取りを整理します。

主な機能

セッションの確立
通信を開始する前に、双方の準備を確認します。

セッションの維持
通信中、接続状態を保ちます。

セッションの終了
通信が終わったら、適切に接続を切断します。

同期とチェックポイント
長い通信で、途中で失敗しても再開できるようにします。

具体例

Webサイトへのログイン:

  1. ログインページでユーザー名とパスワードを入力
  2. セッションが確立される
  3. ログイン状態が維持される
  4. ログアウトすると、セッションが終了

ショッピングサイトで、カートに商品を入れたまま別のページを見ても情報が保持されるのは、セッション層のおかげなんです。

電話の通話:
通話の開始(もしもし)、会話の維持、終了(それじゃあ、また)という流れも、セッション管理の一種ですね。


第4層:トランスポート層(Transport Layer)

役割と機能

トランスポート層は、エンドツーエンド(端から端まで)の通信品質を保証する層です。

データが確実に、正しい順序で届くようにする重要な役割を担います。

主なプロトコル

TCP(Transmission Control Protocol)

  • 信頼性の高い通信
  • データの順序保証
  • エラー検出と再送
  • 接続型通信

UDP(User Datagram Protocol)

  • 高速だが信頼性は低い
  • 順序保証なし
  • エラー検出のみ(再送なし)
  • コネクションレス通信

TCPとUDPの使い分け

TCPを使う場面:

  • Webページの閲覧(HTTP/HTTPS)
  • メール送受信(SMTP、POP3、IMAP)
  • ファイル転送(FTP)
  • 確実にデータを届けたいとき

UDPを使う場面:

  • 動画のストリーミング(YouTube、Netflix)
  • オンラインゲーム
  • 音声通話(VoIP)
  • 速度優先で多少のデータ欠損は許容できるとき

ポート番号

トランスポート層では、ポート番号を使って、データをどのアプリケーションに届けるか識別します。

よく使われるポート番号:

  • 80:HTTP(Webサーバー)
  • 443:HTTPS(暗号化Web)
  • 22:SSH(安全なリモート接続)
  • 25:SMTP(メール送信)
  • 53:DNS(名前解決)
  • 3306:MySQL(データベース)

例えば、「192.168.1.100:80」というのは、「192.168.1.100というIPアドレスの80番ポート(Webサーバー)に接続」という意味なんです。

具体例

宅配便の追跡システム:
TCPの動作は、追跡番号付きの宅配便に似ています。

  1. 荷物を送る(データ送信)
  2. 配達員が運ぶ(経路を通る)
  3. 受け取りの確認(ACK応答)
  4. 届かなければ再送

確実に届けるために、一つずつ確認しながら進めるんです。

放送:
UDPの動作は、テレビやラジオの放送に似ています。

  • 一方的に送信
  • 届いたか確認しない
  • 欠けても止まらない
  • リアルタイム性重視

途中で電波が乱れても、放送は止まらずに続きますよね。それと同じです。


第3層:ネットワーク層(Network Layer)

役割と機能

ネットワーク層は、異なるネットワーク間でデータを届ける層です。

IPアドレスを使って、データの宛先を決定し、最適な経路を選択して転送します。

主なプロトコル

IP(Internet Protocol)

  • IPv4:32ビットのアドレス(例:192.168.1.1)
  • IPv6:128ビットのアドレス(例:2001:0db8::1)

ICMP(Internet Control Message Protocol)

  • pingコマンドで使用
  • エラーメッセージの送信

ARP(Address Resolution Protocol)

  • IPアドレスからMACアドレスを取得
  • 実際にはネットワーク層とデータリンク層の橋渡し

ルーティング

ルーティングとは、データをどの経路で送るか決定することです。

例えば:
東京から大阪に荷物を送るとき:

  • 新幹線で行く?
  • 飛行機で行く?
  • トラックで行く?

複数の経路の中から、最適なルートを選ぶのがルーティングです。

ルーターという機器が、この経路選択を担当します。

IPアドレス

IPアドレスは、ネットワーク上のデバイスを識別する住所のようなものです。

IPv4の例:
192.168.1.100

構成:

  • ネットワーク部:どのネットワークか(192.168.1)
  • ホスト部:そのネットワーク内のどの機器か(100)

プライベートIPアドレス:

  • 10.0.0.0 ~ 10.255.255.255
  • 172.16.0.0 ~ 172.31.255.255
  • 192.168.0.0 ~ 192.168.255.255

家庭やオフィス内で自由に使えるIPアドレスです。

グローバルIPアドレス:
インターネット上で一意に識別される、世界中で重複しないアドレスです。

具体例

手紙の配達:

  • 郵便番号:ネットワーク部(どの地域か)
  • 番地:ホスト部(その地域のどこか)

郵便局員が郵便番号を見て、まず地域の郵便局に送り、そこから詳細な住所で配達するのと同じ仕組みですね。


第2層:データリンク層(Data Link Layer)

役割と機能

データリンク層は、直接つながっている機器同士の通信を管理する層です。

同じネットワークセグメント内での、隣接する機器間のデータ転送を担当します。

主な機能

フレームの作成
データを「フレーム」という単位にまとめます。

MACアドレスの管理
各ネットワーク機器を識別するための物理アドレスを使います。

エラー検出
データが正しく届いたかチェックします。

フロー制御
送信速度を調整して、受信側があふれないようにします。

MACアドレス

MACアドレス(Media Access Control Address)は、ネットワークカードに固有の物理アドレスです。

形式:
00:1A:2B:3C:4D:5E

特徴:

  • 48ビット(16進数で12桁)
  • 世界で唯一無二
  • 製造時に割り当て
  • ハードウェアに焼き付けられている

マンションの部屋番号のようなもので、IPアドレス(住所)とは別に、各部屋を識別する番号ですね。

主な機器

スイッチ(レイヤー2スイッチ)
MACアドレスを見て、データを適切なポートに転送します。

ブリッジ
複数のネットワークセグメントを接続します。

具体例

社内ネットワーク:
同じフロアのパソコン同士は、スイッチを通じて直接通信します。

  1. パソコンAがパソコンBにデータを送りたい
  2. スイッチがBのMACアドレスを確認
  3. Bが接続されているポートにデータを転送

階段を上らずに、同じフロア内で配達する感じですね。


第1層:物理層(Physical Layer)

役割と機能

物理層は、物理的な信号の伝送を担当する最下層です。

0と1のデジタルデータを、電気信号、光信号、電波などの物理的な信号に変換して送受信します。

主な要素

伝送媒体:

  • LANケーブル(ツイストペアケーブル):銅線、電気信号
  • 光ファイバー:ガラス繊維、光信号
  • 無線LAN(Wi-Fi):電波

コネクタ:

  • RJ-45(LANケーブル用)
  • LC/SCコネクタ(光ファイバー用)

信号の形式:

  • 電圧の高低(電気信号)
  • 光の点滅(光信号)
  • 電波の変調(無線信号)

物理的な規格

Ethernetの規格:

  • 10BASE-T:10Mbps、ツイストペアケーブル
  • 100BASE-TX:100Mbps(Fast Ethernet)
  • 1000BASE-T:1Gbps(Gigabit Ethernet)
  • 10GBASE-T:10Gbps

数字が速度、最後のTはツイストペアケーブルを意味します。

主な機器

ハブ(リピータハブ)
受信した信号を、すべてのポートに中継します。

ケーブル
物理的にデータを運びます。

無線アクセスポイント
有線と無線を橋渡しします。

具体例

道路と車:
物理層は、道路のようなものです。

  • 道路(LANケーブル)
  • 車(データ)
  • 信号機(コネクタ)

道路がなければ車は走れないし、車がなければ荷物(データ)は運べません。物理層は、すべての通信の土台なんです。

モールス信号:
昔の電信機で使われたモールス信号も、物理層の一種です。

  • トン(短い信号)
  • ツー(長い信号)

電気の長短で文字を表現していたんですね。


TCP/IPモデルとの比較

TCP/IPモデルとは

実際のインターネットでは、OSI参照モデルではなく、TCP/IPモデルが使われています。

TCP/IPモデルは、OSI参照モデルを簡略化した4層構造です。

対応関係

TCP/IP 4層 ← → OSI 7層

アプリケーション層 ← → アプリケーション層、プレゼンテーション層、セッション層

トランスポート層 ← → トランスポート層

インターネット層 ← → ネットワーク層

ネットワークインターフェース層 ← → データリンク層、物理層

なぜ2つのモデルがあるのか

OSI参照モデル:

  • 理論的・教育的
  • 詳細に分類
  • 国際標準として策定

TCP/IPモデル:

  • 実用的
  • シンプル
  • インターネットで実際に使用

OSI参照モデルは「設計図」、TCP/IPモデルは「実際の建物」のようなものですね。


実際のデータの流れ

データ送信の流れ(カプセル化)

メールを送るとき、データは上の層から下の層へと順番に処理されていきます。

第7層(アプリケーション層):
メール本文を作成「こんにちは」

第6層(プレゼンテーション層):
文字コードをUTF-8に変換、必要なら圧縮

第5層(セッション層):
メールサーバーとのセッションを確立

第4層(トランスポート層):
TCPヘッダーを追加(送信元ポート、宛先ポート)
[TCPヘッダー | こんにちは]

第3層(ネットワーク層):
IPヘッダーを追加(送信元IP、宛先IP)
[IPヘッダー | TCPヘッダー | こんにちは]

第2層(データリンク層):
MACヘッダーを追加(送信元MAC、宛先MAC)
[MACヘッダー | IPヘッダー | TCPヘッダー | こんにちは | FCS]

第1層(物理層):
電気信号や光信号に変換して送信
010101010101…

データ受信の流れ(デカプセル化)

受信側では、逆の順序で処理されます。

第1層:
電気信号を0と1のデータに変換

第2層:
MACヘッダーを確認、自分宛てならIPヘッダーを渡す

第3層:
IPヘッダーを確認、自分のIPアドレス宛てならTCPヘッダーを渡す

第4層:
TCPヘッダーを確認、ポート番号でアプリケーションを特定

第5層:
セッションを管理

第6層:
データ形式を変換

第7層:
アプリケーション(メールソフト)がデータを受け取る
「こんにちは」と表示

まるで、マトリョーシカ人形のように、層ごとに包装を剥がしていくイメージですね。


ネットワーク機器とOSI参照モデル

レイヤーごとの機器

ネットワーク機器は、どの層で動作するかによって分類されます。

第1層(物理層)の機器:

  • リピーター:信号を増幅して中継
  • ハブ(リピータハブ):複数のポートに信号を分配

第2層(データリンク層)の機器:

  • スイッチ(レイヤー2スイッチ):MACアドレスでデータを転送
  • ブリッジ:ネットワークセグメントを接続

第3層(ネットワーク層)の機器:

  • ルーター:IPアドレスでデータを転送、経路選択
  • レイヤー3スイッチ:ルーティング機能付きスイッチ

第4層以上:

  • ファイアウォール:ポート番号などでフィルタリング
  • ロードバランサー:負荷分散

それぞれの役割

ハブ:
受信したデータを、すべてのポートに送る単純な中継器。現在はあまり使われません。

スイッチ:
MACアドレスを学習して、宛先のポートにだけデータを送る賢い機器。

ルーター:
異なるネットワーク間を接続し、最適な経路を選択する機器。家庭用Wi-Fiルーターもこれです。


トラブルシューティングとOSI参照モデル

レイヤーごとの確認

ネットワークの問題が発生したとき、OSI参照モデルを使って原因を切り分けられます。

第1層の問題:

  • ケーブルが抜けている
  • ケーブルが断線している
  • 機器の電源が入っていない

確認方法:

  • ケーブルを確認
  • LEDランプを確認
  • 別のケーブルに交換

第2層の問題:

  • スイッチの設定ミス
  • MACアドレスの競合

確認方法:

  • ARPテーブルを確認
  • スイッチのログを確認

第3層の問題:

  • IPアドレスの設定ミス
  • デフォルトゲートウェイの設定ミス
  • ルーティングの問題

確認方法:

# IPアドレスの確認
ip addr show
ifconfig

# 疎通確認
ping 8.8.8.8

# 経路確認
traceroute google.com

第4層の問題:

  • ポートがブロックされている
  • ファイアウォールの設定

確認方法:

# ポートの開放確認
telnet example.com 80
nc -zv example.com 80

第7層の問題:

  • アプリケーションの設定ミス
  • サービスが起動していない

確認方法:

# サービスの状態確認
systemctl status nginx

ボトムアップアプローチ

トラブルシューティングは、下の層から順番に確認するのが基本です。

  1. 物理層:ケーブルは接続されているか?
  2. データリンク層:MACアドレスは正しいか?
  3. ネットワーク層:IPアドレスは正しいか?pingは通るか?
  4. トランスポート層:ポートは開いているか?
  5. アプリケーション層:アプリケーションは正しく動作しているか?

土台が崩れていたら、上も崩れますからね。下から順番に確認するのが効率的です。


よくある質問

Q1: OSI参照モデルは今も使われているの?

A: 教育やトラブルシューティングの概念モデルとして広く使われています。

実際のインターネットでは、TCP/IPモデルが使われていますが、ネットワークを理解するための共通言語として、OSI参照モデルは非常に重要なんです。

Q2: なぜ7層もあるの?もっとシンプルにできないの?

A: 各層を独立させることで、開発や保守が効率的になるからです。

例えば、物理層だけを改良して通信速度を上げても、上の層は変更不要。階層化することで、柔軟な設計が可能になるんです。

Q3: すべての通信が7層すべてを使うの?

A: いいえ、使わない層もあります

例えば、単純なpingコマンドは、ネットワーク層までしか使いません。アプリケーションによって、必要な層だけを使うんです。

Q4: TCP/IPとOSI、どちらを覚えればいい?

A: 両方の関係を理解するのがベストです。

OSI参照モデルで概念を理解し、TCP/IPで実際の技術を学ぶ、という流れがおすすめですよ。

Q5: データリンク層とネットワーク層の違いは?

A: 通信の範囲が違います。

  • データリンク層:直接つながっている隣の機器まで(同じネットワーク内)
  • ネットワーク層:遠く離れた別のネットワークまで(インターネット全体)

町内の配達と、全国配送の違いのようなものですね。


実務での応用例

ネットワークエンジニアの会話

例:トラブル時の会話

エンジニアA:「サーバーに接続できないんですが」

エンジニアB:「まず、レイヤー1から確認しましょう。ケーブルは刺さってますか?」

エンジニアA:「はい、LEDも点灯しています」

エンジニアB:「じゃあレイヤー3ですね。pingは通りますか?」

エンジニアA:「pingは通りますが、HTTPが応答しません」

エンジニアB:「レイヤー7の問題ですね。Webサーバーのサービスを確認してください」

このように、レイヤーで切り分けると、効率的に問題を特定できるんです。

セキュリティ対策

各層ごとにセキュリティ対策を実施できます。

第1層: 物理的なセキュリティ(サーバールームの施錠)

第2層: MACアドレスフィルタリング

第3層: IPアドレスフィルタリング、ファイアウォール

第4層: ポートフィルタリング

第7層: WAF(Web Application Firewall)、アプリケーションレベルの認証

多層防御することで、セキュリティが強化されます。


まとめ

OSI参照モデルは、ネットワーク通信を7つの層に分けて整理した、ネットワーク技術の基礎となる重要な概念です。

この記事のポイント:

  • OSI参照モデルは7層構造で通信を整理
  • 第7層(アプリケーション層):ユーザーが使うアプリケーション
  • 第6層(プレゼンテーション層):データ形式の変換
  • 第5層(セッション層):通信セッションの管理
  • 第4層(トランスポート層):信頼性のある通信(TCP/UDP)
  • 第3層(ネットワーク層):異なるネットワーク間の通信(IP)
  • 第2層(データリンク層):直接つながった機器間の通信(MAC)
  • 第1層(物理層):物理的な信号の伝送
  • 階層化で独立性と柔軟性を実現
  • トラブルシューティングに役立つ
  • TCP/IPモデルは実用版の4層構造

最初は7つの層を覚えるのが大変かもしれませんが、一つずつ理解していけば、ネットワークの仕組みが驚くほどクリアに見えてきます。

OSI参照モデルは、ネットワークエンジニアの共通言語として、今でも広く使われているんです。

この知識があれば、ネットワークのトラブルに遭遇しても、冷静に原因を切り分けられるようになりますよ。

さあ、あなたもOSI参照モデルを理解して、ネットワーク技術の世界をもっと深く探求してみませんか?複雑に見えるネットワークも、実は整理された美しい構造を持っているんです!

コメント

タイトルとURLをコピーしました