音ゲー、fps、DTM、プログラミング雑記置き場

ブログタイトル通りに雑記を垂れ流す。

【基本・応用情報対策】非ネットワークエンジニアのためのOSI基本参照モデルの考え方

  • 記事タイトル通り、応用(基本)情報は業務範囲外の知識もそこそこ要求されるのがめんどくさい
  • ネットワークエンジニアじゃないアプリ屋さんはプロトコルなんてTCP/IP,FTPくらいしかピンとこない(これは自分だけかもしれない)
  • そんなピンとこない単語を丸暗記したところでAP(FE)の午前が解けるだけで拡張性がないので深堀りしたいという思いで記事作成
  • TCP/IPモデルと組み合わせてOSI参照モデルを見てみる
  • こんな記事を書いておいて、筆者は2023秋AP申し込み忘れた愚か者です

OSI基本参照モデルTCP/IPモデルについて

両方ともネットワークを保守・運用しやすいように階層分けしてそれぞれ個別のレイヤ(層)として考えようとしている。

どちらのモデルでも上位に近いほどユーザ側が扱いやすいデータ(メール、Webページ等)、 下位に近いほどモデム、ルータなどの機械さんが扱いやすいデータ(ビット情報)になっている。

OSI基本参照モデル(Open System Interconnection):7層でネットワークを管理する。
TCP/IPモデル:4層でネットワークを管理する

Layer(OSI) Layer Name(OSI) Layer(TCP/IP) Layer Name(TCP/IP) Data Name
L7 アプリケーション層 L4 アプリケーション層 データ
L6 プレゼンテーション層 L4
L5 セッション層 L4
L4 トランスポート層 L3 トランスポート層 セグメント(データ+TCP/UDPヘッダ)
L3 ネットワーク層 L2 インターネット層 パケット(データ+TCP/UDPヘッダ+IPヘッダ)
L2 データリンク層 L1 ネットワークインターフェース層 フレーム(データ+TCP/UDPヘッダ+IPヘッダ+イーサネットヘッダ)
L1 物理層 L1 光(電気)信号へ変換

実際にインターネット通信で各ユーザに送受信されるデータは、各層ごとにプロトコルと呼ばれるある物事について統一化した規格により、次の層に対応するためのデータ加工がされる。

そのため、各層ごとにデータの名称が異なる。
データ加工は具体的には対応する層ごとにビット列のヘッダを追加している。(表のData Name参照)

インターネットを介するデータ通信の流れ

  1. データを送信する側は送信データを最上位レイヤから最下位レイヤにまで加工(カプセル化)し、そのビットデータを光信号(または電気信号)に変換してインターネット上へデータを流す。
  2. インターネット上のデータはL3までのデータを元に目的地のIPアドレスまで、様々なルータを経由する(ルーティング
  3. 受信側は送信側とは逆順で最下位レイヤから最上位レイヤにまで加工(非カプセル化)し、ユーザが見れるデータ形式にしてブラウザ等に表示する。

各レイヤの主要プロトコル・機器・用語について

Layer Protocol(Port Number),Device Description
L7 HTTPS
(TCP:443)
WebサーバとWebブラウザ(クライアント)でHTMLファイルなどの通信を安全に行うためのプロトコル
クライアントからのリクエストと、サーバからのレスポンスが対になっていて通信が成り立っている。
安全に通信を行うプロトコルとしてSSLTLS)を含めてHTTP+S(Secure)でHTTPSと呼ばれている。
SMTP/POP3
(TCP:25/TCP:110)
クライアントと受信者のデバイスのメールサーバにメールというデータを通信するためのプロトコルSMTPの25番ポートは暗号化をしないため
ネットワークを介したメールの送受信は認証機能がある587番などを使う
DNS
(UDP:53)
IPアドレスとインターネット上のドメイン名を関連付ける(この作業を名前解決という)プロトコル
ネットワークのある一定範囲のIPとドメインを管理しているサーバをDNS権威サーバと呼ばれ、
他のDNSサーバは権威DNSサーバに問い合わせる形で名前解決を行う。
権威DNSサーバは2つ用意し、ゾーンファイル(IPとドメインの組み合わせの表)を共有する(ゾーン転送)ことで冗長化を行っている。
L4 TCP データ通信時に送信側・受信側の通信の信頼性を確保するプロトコル
事あるごと(受信できるセグメントの量やタイムアウト管理など)に相互に確認応答(ACK)を返すことにより信頼性を実現している。
インターネット上の通信はこいつとIPで主に行われるためTCP/IPとセットで書かれることが多い。
UDP データ通信時に送信側・受信側の通信の即時性を確保するプロトコル。主にリアルタイム性が求められる通信で用いられる。
TCPのようにいちいち確認応答しないため、通信自体はTCPより早いが、その分データの損失や、通信後のタイムアウトなどを確認しない。
TCPより短いスパンでデータ送信が可能のため、DDoS(Dos)攻撃の手段にされたりする。
MTU ネットワーク間の一度の転送で送れるデータ長の事。各レイヤや経路によって異なる。
例えばネットワーク上では約1500オクテット(≒バイト)がデータ長の上限に設定されている。
その経路のMTUを超えるデータが送信されようとした場合、L3以上ならパケットの断片化を行う。
これはルータ側で処理するので結果としてデータ通信の遅延につながる。
L3 IPv4,IPv6 パケット(L3)データ内のIPヘッダ部分のビット分けをどうするか取り決めたプロトコル
IPv6はビット長を拡張して下記のIP枯渇問題に対応したプロトコル。(Ipv4 : 32ビット Ipv6:128ビット)
IPアドレス インターネットでデータをやり取りする際の番号、インターネットで通信する際に使うデバイスごとの住所みたいなイメージ。
MACアドレスと違って、自由に割り当て可能。
グローバルIPアドレスは現在IPv4がほぼ枯渇したためIPv6への移行、現IPでのやり繰りをしてる状態である。(IPv4枯渇問題)
個人(企業)で自由に割り当てできるローカルIPアドレス、自由に割り当てできずIPアドレスを管理する団体(日本だとJPNIC、大元はICANN)に申請して
割り当ててもらうグローバルIPアドレスがある。(一般的にはプロバイダ経由でJPNICに申請してもらう)
ローカル(プライベート)IPアドレスは社内LANなどのローカルなLAN環境で使用されるため、別のLANで重複したローカルIPアドレスが存在する可能性もある。
プロバイダから提供されるIPアドレスは基本的に接続毎によって異なるIPアドレスを提供されている。(動的グローバルIPアドレス
企業側は社内LANや他サーバとの連携上、常に同じグローバルIPアドレスで管理したいため、
不変のIPアドレスを追加料金を払い提供してもらう。(固定グローバルIPアドレス
ルータ 目的地のIPアドレスによってパケットを次のルータへ送信する。場合によってはルータ以外のデバイスへ送信することもある。(LAN内のPCなど)
L2 イーサネット(Ethernet) 機器同士を物理的にどう繋ぐを取り決めたプロトコル。主にLANで使われる。
一般的に複数機器同士で共有の経路でデータのやり取りをすることが多いため、経路内でデータが飛び交うのでデータの衝突(Collision)が起こり得る。L2ではこれをどう回避するか取り決める必要がその取り決めがイーサネットとなる。
有線接続にはCSMA/CD方式、無線接続にはCSMA/CAで機器同士のデータの通信を管理している。
CSMA/CD(Collision Detect:衝突検知)
衝突したら、互いにランダムな待ち時間をとって再度データを送信する。
現在はスイッチングハブMACアドレスで通信する機器同士を指定する方法が主流のため、そもそもデータ衝突が発生しないLAN環境になっている。
そのためこの方式は現在はあまり使われていない。
■CSMA/CA(Collision Avoidance:衝突回避)
無線の場合、電波の減衰等でデータの衝突を検知するのが難しいため、最初に待ち時間を設置し、
送信後に送信相手にACK(確認応答)を送って衝突が起きているかを確認する。
要は~CD方式が衝突したらしゃーなしの精神で、~CA方式が衝突しないようがんばる精神。
ARP IPアドレスからMACアドレスを取得するためのプロトコル。この表ではL2に位置しているが実際はL2とL3の橋渡しをする立ち位置。
データ通信時にあるデバイスが通信データを受け取り送信先のIPを元に次のデバイスに送る際、
再びフレーム単位にして光(電気)信号にする必要がある。
フレームにするの必要なのがL3以下のMACアドレスであるため、このプロトコルを使って次に送るデバイスMACアドレスを取得してフレーム化する。
MACアドレス バイスごとに一意に判断できる番号。IPが住所ならMACはその人自身の身分証明書みたいなイメージ。
ルータやPC、ネットワークに接続されているあらゆる機器に物理的に割り当てられている(変更不可)
スイッチ セグメント内(ネットワークの最小単位)のデバイスMACアドレスで次の行先を振り分ける。
スイッチングハブの登場によりこいつ単体では使われない。
NIC 物理的に有線LANを差し込むポート先にあるPCパーツ。(ネットワークカード、LANカードとか俗に言われる)
今では無線LANも普及しており仮想NICという呼び方も存在する。MACアドレスはこいつに焼き付けられている。
L1 ハブ 接続できるデバイスを増やす機器
リピータ ネットワーク範囲を広げるため受け取った電気信号をそのまま補正し、中継する。(物理的な信号である以上時間や距離で波が弱まる)
こいつもハブで実現できるため単体で使われることはない
  • OSIを大雑把にまとめるとこんな感じか?
    • L1,L2がデバイス間での物理的な接続
    • L3,L4がネットワーク間での論理的な接続
    • L5~L7がユーザのクライアントデバイスで完結する内部的な接続