OSI の概要
ARPA ネットワークが開発されたばかりのとき、私たちはそれを可能な限りスマートにしたいと強く考えていました。しかし、ネットワークが複雑になればなるほど、開発と維持が難しくなります。解決策として、すべてのネットワーク機能を論理層に分割することが提案されました。
ネットワーク運用モデルは、ISO/OSI Open Systems Interconnection Base Reference Model のネットワーク モデルと呼ばれます。簡単に言うと、OSI モデル(Open Systems Interconnection) です。
このモデルには合計 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、Gopher、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 は両方とも、ポートと呼ばれる番号を使用して上位層プロトコルを定義します。
GO TO FULL VERSION