OSI の概要

ARPA ネットワークが開発されたばかりのとき、私たちはそれを可能な限りスマートにしたいと強く考えていました。しかし、ネットワークが複雑になればなるほど、開発と維持が難しくなります。解決策として、すべてのネットワーク機能を論理層に分割することが提案されました。

ネットワーク運用モデルは、ISO/OSI Open Systems Interconnection Base Reference Model のネットワーク モデルと呼ばれます。簡単に言うと、OSI モデル(Open Systems Interconnection) です。

OSIモデル

このモデルには合計 7 つのレベルがあります。レベル間の相互作用は厳密に標準化され、最小限に抑えられています。下位レベルは、上位レベルの存在とその構造についてまったく知りません。

最下層はビットを送信するだけです。送信、つまり送信さえしません。彼らがそうするかどうかは彼には分かりません。送信されたまま忘れられました。

より高いレベルはすでにビットのグループ (フレーム)を操作しており、ネットワークの物理デバイスについて少し知っており、MAC アドレスなどを理解しています。

次のレベルはバッチです。彼はさらに賢く、ネットワーク IP アドレスを操作する方法を知っています。等々。

なぜこれだけが必要なのでしょうか? 柔軟性を最大限に高めるため。

各層が Java インターフェースであり、いくつかの異なる実装を持つことができると想像してください。それで、ここでも。物理レベルでは、有線経由でビットを送信したり、無線 (Wi-Fi) で送信したり、衛星経由で送信したりできますが、他のすべてのレベルはそれについて何も知りません。そしてすべてが意図したとおりに機能します。

OSIプロトコルスタック

以下の図でプロトコル スタックを詳しく調べることができます。

ただし、システム管理者ではない場合は、プロトコルについてそのように詳細に説明する必要はありません。さらに興味深いのは、TCP (伝送制御プロトコル) / IP (インターネット プロトコル) プロトコル スタックの研究かもしれません。

OSI モデルの上位 3 層、つまりアプリケーション層、プレゼンテーション層、セッション層は、TCP/IP モデルでは個別に区別されません。TCP/IP モデルには、トランスポート層の上にアプリケーション層のみがあります。

OSIモデルの層ごとのプロトコルの配布

TCP/IP OSI
適用 適用 HTTP、SMTP、SNMP、FTP、Telnet、SSH、SCP、SMB、NFS、RTSP、BGP
表現 XDR、AFP、TLS、SSL
セッション ISO 8327 / CCITT X.225、RPC、NetBIOS、PPTP、L2TP、ASP
輸送 輸送 TCP、UDP、SCTP、SPX、ATP、DCCP、GRE
通信網 通信網 IP、ICMP、IGMP、CLNP、OSPF、RIP、IPX、DDP
ダクト付き ダクト付き イーサネット、トークンリング、HDLC、PPP、X.25、フレームリレー、ISDN、ATM、SPB、MPLS、ARP/td>
物理的 電線、無線通信、光ファイバー線、赤外線

TCP/IPプロトコルスタック

TCP/IP プロトコル スタックには、次の 4 つの層が含まれています。

  • アプリケーション
  • トランスポート
  • インターネット層(ネットワーク層) (インターネット層)
  • リンク層(ネットワークアクセス層)

これらの層のプロトコルは、OSI モデルのすべての機能を完全に実装します。IP ネットワークにおけるすべてのユーザー対話は、TCP/IP プロトコル スタック上に構築されます。

TCP/IP プロトコル スタックは物理ハードウェアから独立しており、特に、有線ネットワークと無線ネットワーク間の完全に透過的な相互作用が保証されます。

アプリケーション層は、ほとんどのネットワーク アプリケーションが実行される場所です。

アプリケーション層

プログラムの相互作用には、情報交換のための高レベルのプロトコルがあります。たとえば、ブラウザは HTTP プロトコルを使用して動作し、メールは SMTP プロトコルを使用して送信され、Telegram は独自の暗号化されたプロトコルを使用して動作します。

しかし、私たちはプライベートプロトコルにはあま​​り興味がありません。ほとんどの場合、FTP (ファイル転送) 用の FTP クライアント、SSH (リモート マシンへの安全な接続)、DNS (文字から IP アドレスへの変換) などの大量のプロトコルが使用されます。

これらのプロトコルのほとんどすべては TCP 上で実行されますが、一部のプロトコルは高速化するために UDP (ユーザー データグラム プロトコル) 上で実行されます。ただし、重要なことは、これらのプロトコルにはデフォルトのポートがあるということです。例:

  • 20 FTP から TCP ポート 20 (データ転送用) および 21 (制御コマンド用)
  • 22-SSH
  • 23 - テルネット
  • 53 - DNS クエリ
  • 80-HTTP
  • 443 - HTTPS

これらのポートは、Naming Assignment and Unique Parameters Agency (IANA) によって定義されています。

他にもいくつかの一般的なアプリケーション層プロトコルがあります: Echo、Finger、Gop​​her、HTTP、HTTPS、IMAP、IMAPS、IRC、NNTP、NTP、POP3、POPS、QOTD、RTSP、SNMP、SSH、Telnet、XDMCP。

トランスポート層

トランスポート層プロトコルは、保証されたメッセージ配信の問題を解決するように設計されています。

メッセージ (データ パケット) が送信され、ネットワーク上のどこかで失われる可能性があります。この場合、これらの状況を監視し、必要に応じてメッセージを再送信するのはトランスポート層の役割になります。

トランスポート層プロトコルのもう 1 つの重要なタスクは、メッセージが到着する順序を制御することです。メッセージがある順序で送信され、別の順序で到着することがよくあります。そして、そのような断片から大きなメッセージをまとめると、ナンセンスになります。

これを防ぐために、トランスポート層はメッセージを列挙するか、前のメッセージの受信確認を受け取るまで新しいメッセージを送信しません。この層に論理的に存在する自動ルーティング プロトコル (IP 上で実行されるため) は、実際にはネットワーク層プロトコルの一部です。

TCP プロトコルは、アプリケーションに信頼性の高いデータ フローを提供し、受信データにエラーがないことを保証し、損失の場合にはデータを再要求し、データの重複を排除する、「保証された」接続が事前に確立されたトランスポート メカニズムです。

TCP を使用すると、ネットワーク上の負荷を調整できるだけでなく、長距離でのデータ送信時の待ち時間を短縮できます。さらに、TCP は、受信データがまったく同じ順序で送信されたことを保証します。これが UDP との主な違いです。

UDPはコネクションレス型のデータグラム プロトコルです。これは、受信者へのメッセージの配信を検証できないこと、およびパケットが混合される可能性があるという意味で、「信頼性の低い」転送プロトコルとも呼ばれます。保証されたデータ送信を必要とするアプリケーションは、TCP プロトコルを使用します。

UDP は通常、パケット損失が許容され、再試行が困難または不当であるビデオ ストリーミングやゲームなどのアプリケーション、または接続の確立に再送信よりも多くのリソースが必要なチャレンジ/レスポンス アプリケーション (DNS クエリなど) で使用されます。

TCP と UDP は両方とも、ポートと呼ばれる番号を使用して上位層プロトコルを定義します。