知識マップ: OSI参照モデルをはっきりイメージする ── HTTPリクエスト1個を7層に解剖する
記事「OSI参照モデルをはっきりイメージする ── HTTPリクエスト1個を7層に解剖する」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
OSI参照モデルは7層それぞれに対応するOSIプロトコル群を伴う標準として構想されたが、普及競争でTCP/IPプロトコルスイートに敗れ、現実のインターネットはリンク層・IP層・トランスポート層・アプリケーション層の実質4層で動いている。HTTPリクエストを運ぶEthernetフレームは、Ethernet(L2、MACアドレス宛)・IPv4(L3、ルーターを越えても変わらない宛先IP)・TCP(L4、ポート番号での振り分けと信頼性のあるバイトストリーム)・HTTP(L7)という入れ子構造(カプセル化)を持ち、Wiresharkのパケット詳細ペインとバイト列ペインの対応で確認できる。.NETのSocketはL7のバイト列だけを渡しOSがTCP/IPヘッダーを付け、SslStreamはTCPストリームをTLSでラップし、HttpClientはL7の組み立てまで引き受ける。実務でOSI参照モデルが役立つのは、下の層から1段ずつ生存確認する障害切り分けとチーム間の共通言語としての場面である。
flowchart LR
accTitle: OSI参照モデルとTCP/IPパケット構造の知識マップ
accDescr: HTTPリクエストを運ぶEthernetフレームがEthernet・IPv4・TCP・HTTPの入れ子構造(カプセル化)になっていること、OSI参照モデルが実装ではなく障害切り分けの語彙として使われること、.NETのSocket・SslStream・HttpClientが各層のどこを担うかを示す図
osi_model["OSI参照モデル"]
tcp_ip_protocol_suite["TCP/IPプロトコルスイート"]
osi_protocol_suite["OSIプロトコル群"]
ethernet["Ethernet(L2)"]
mac_address["MACアドレス"]
arp["ARP"]
ipv4["IPv4(L3)"]
ttl["TTL(Time To Live)"]
tracert["tracert"]
tcp["TCP(L4)"]
port_number["ポート番号"]
http["HTTP"]
tls["TLS"]
dotnet_sslstream["SslStream(.NET)"]
dotnet_socket["Socket(.NET)"]
dotnet_httpclient["HttpClient(.NET)"]
encapsulation["カプセル化(層のペイロード構造)"]
wireshark["Wireshark"]
network_layer_troubleshooting["層ごとの障害切り分け"]
tcp_ip_protocol_suite -->|"の後継"| osi_protocol_suite
ethernet -->|"利用する"| mac_address
ethernet -.->|"前提とする"| arp
ipv4 -->|"利用する"| ttl
tracert -->|"利用する"| ttl
tcp -->|"利用する"| port_number
tcp -.->|"前提とする"| ipv4
ipv4 -.->|"利用する"| ethernet
http -.->|"利用する"| tcp
tls -->|"利用する"| tcp
dotnet_sslstream -->|"実装を担う"| tls
dotnet_socket -.->|"利用する"| tcp
dotnet_httpclient -->|"実装を担う"| http
tcp_ip_protocol_suite -->|"利用する"| encapsulation
encapsulation -->|"で確認できる"| wireshark
mac_address -->|"で確認できる"| arp
osi_model -->|"推奨される対応"| network_layer_troubleshooting
network_layer_troubleshooting -->|"利用する"| tcp
network_layer_troubleshooting -->|"利用する"| ipv4
network_layer_troubleshooting -->|"利用する"| http
概念間の関係(全20件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- TCP/IPプロトコルスイートはOSIプロトコル群の後継に当たります。
- Ethernet(L2)はMACアドレスを利用します。
- Ethernet(L2)はARPを前提とします。
- IPv4(L3)はTTL(Time To Live)を利用します。
- tracertはTTL(Time To Live)を利用します。
- TCP(L4)はポート番号を利用します。
- TCP(L4)はIPv4(L3)を前提とします。
- IPv4(L3)はEthernet(L2)を利用します。
- HTTPはTCP(L4)を利用します。
- TLSはTCP(L4)を利用します。
- SslStream(.NET)はTLSの実装を担います。
- Socket(.NET)はTCP(L4)を利用します。
- HttpClient(.NET)はHTTPの実装を担います。
- TCP/IPプロトコルスイートはカプセル化(層のペイロード構造)を利用します。
- カプセル化(層のペイロード構造)はWiresharkで確認できます。
- MACアドレスはARPで確認できます。
- OSI参照モデルは層ごとの障害切り分けに対する本記事の推奨です。
- 層ごとの障害切り分けはTCP(L4)を利用します。
- 層ごとの障害切り分けはIPv4(L3)を利用します。
- 層ごとの障害切り分けはHTTPを利用します。
主要概念の定義
機械可読データ
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。