私たちは皆、すべてがどのように機能するかを考えずに、あらゆる種類のものに毎日インターネットを使用しています。ボタンをクリックするだけで、メールが送信されます。数秒以内に、もう一方の端でメールが受信されます。それはすべてとても迅速でシンプルです。私たちは皆、迅速に同意することができます。しかし、それは本当に簡単ですか?ネットワーキングを非常にスムーズでシンプルにする舞台裏で何が起こるのか疑問に思ったことはありませんか?ネットワーキングのバックボーンは、いわゆるTCP/IPモデルであり、今日の主なトピックになります。

この投稿では、TCP/IPモデルの目的を説明し、それがどのように機能するかを説明します。

TCP/IPモデルとは何ですか?

ネットワークは、すべてのデバイスとソフトウェアが特定のルールのセットに従い、標準とプロトコルの形式で提供されるため、正しく機能します。今日、最も使用されるネットワークモデルはTCP/IPです。今日作成されたインターネットに接続することになっているすべてのデバイスは、TCP/IPのサポートを備えています。

すべてのWindows PCは、TCP/IPプロトコル(およびすべてのMacOSコンピューター、すべてのiOSデバイス、すべてのAndroidデバイスなどをサポートしています。

TCP/IPは、コンピューターネットワーキングの標準化に使用されるモデルです。コンピューターがネットワーク上で通信する方法を定義します。 TCP/IPモデルは、数層で構成されています。あるコンピューターから別のコンピューターに送信されるデータの各ビットは、送信および/または受信する前にそれらすべてのレイヤーを通過する必要があります。

TCP/IPのTCPは何を表しますか?

TCPは、伝送制御プロトコルの略語です。これは、インターネット上でパケットを送信できる通信基準であり、パケットが反対側で正常に受信されることを保証します。

TCPは、インターネット上のあるコンピューターから別のコンピューターまたはサーバーにアプリケーションデータが送信される方法を定義します。 TCPは、セグメントと呼ばれる小さなビットにデータを送信する前に、データをより小さなビットに分割します。送信されるセグメントごとに、TCPプロトコルは、そのセグメントに関する基本的な情報を含むヘッダーを作成します。

ヘッダーには、ソースポートと宛先ポートに関する情報が含まれています。デバイス間の通信に使用されるアプリケーションは、ポート番号を決定します。たとえば、アプリケーションがHTTPの場合(Webサイトを開けようとしている場合)、宛先ポートは80になります。HTTPSウェブサイトにアクセスしようとしている場合、宛先ポートは443になります。ポートは25になります。サーバー(FTPプロトコル)からファイルを転送しようとしている場合、ヘッダーの宛先ポートは20および21になります。

何らかの種類のサーバーと通信するクライアントであると仮定すると、デバイスのソースポートはTCPによってランダムに生成されます。 Webサイトにアクセスするとき、Webサーバー(HTTPまたはHTTPSサーバー)と通信するクライアント。そのため、Webアドレスを入力してEnterを押すと、TCPはWebブラウザーの特定のタブにソースポートをランダムに割り当てます。このポートを通じて、コンピューターはサーバーから情報を受信します。

リクエストがWebサーバーに届くと、サーバーはデータを送信します。データには、ソースポートと宛先ポートを備えたTCPヘッダーもあります。この場合、ソースポートは80(HTTP Webサイト)または443(HTTPS Webサイト)になり、宛先ポートはコンピューターのTCPによってランダムに生成されたポート番号になります。その結果、ブラウザにWebサイトのコンテンツが表示されます。

ソースポートと宛先ポートに加えて、TCPヘッダーには他の多くの情報が含まれています。

たとえば、TCPは各データセグメントにシーケンス番号を割り当てているため、すべてのセグメントが宛先に到達したかどうか、すべてのセグメントを元に戻す方法を受信者が把握します。

さらに、確認番号は各セグメントに割り当てられているため、受信者は次にどのパケットが受信されるかを送信者に伝えることができます。

チェックサムは、TCPヘッダーにある別の情報です。この情報は、エラー検出に使用されます。各データセグメントについて、それを送信する前に、TCPはそのセグメントのチェックサムを計算します。そのセグメントが受信機に到達すると、受信機はチェックサムも計算します。値が一致する場合、データが受信されます。チェックサムが一致しない場合、レシーバーはデータをドロップします。

TCPヘッダーには、さらにいくつかの情報が含まれていますが、物事を複雑にしすぎないようにします。これは、TCP/IPモデルがどのように機能するかを説明するのに十分すぎるでしょう。 TCPヘッダーの詳細については、以下のビデオをご覧ください。

TCPヘッダーが説明しました

TCPヘッダーのこれらすべての情報のポイントは、送信者から受信機への安全で信頼できるデータのフローを確保することです。

TCPは、データ送信に使用される唯一のプロトコルではありません。他の共通プロトコルは、UDPまたはユーザーデータグラムプロトコルと呼ばれます。 TCPに似ていますが、はるかに簡単です。 UDPを使用して送信される各データセグメントにはヘッダーもありますが、ヘッダーははるかに小さくなっています。ソースポートと宛先ポート、長さ、チェックサムのみが含まれています。 UDPはそれほど信頼性がありません。接続品質に応じて、多くのデータパケットを失う可能性があります。一方、TCPはそのような発生を防ぎ、失われたすべてのデータパケットを再送信します。それで、なぜUDPがそれほど信頼できないのにUDPを使用するのですか?

まあ、真実は - 一部のアプリケーションは、信頼性よりも速度と低遅延のコミュニケーションを置くことです。このようなアプリケーションは、オンラインゲームだけでなく、音声やビデオ呼び出しです。このようなアプリケーションでは、コンピューターは常にTCPの代わりにUDPプロトコルを使用します。低遅延を必要としないアプリケーションは、常にTCPを使用します。そのため、たとえば、サーバーからファイルをアップロードまたはダウンロードしようとする場合、コンピューターはより信頼性が高く、データの整合性を保護するため、TCPプロトコルを使用します。

TCP対UDP

TCP/IPのIPは何を表していますか?

IPはインターネットプロトコルの略です。これは、各デバイスに一意のアドレス(IPアドレス)を割り当てることにより、ネットワーク上のデバイスの通信を可能にする一連のルールです。 2つのIPプロトコル-IPv4とIPv6。 IPv4は現在使用中ですが、IPv6はまだ完全には実装されていません。

IPv4は、 IPアドレスを32ビットの一意のシーケンスとして定義します。ネットワーク上の各デバイスには、一意のアドレスが必要です。そうでなければ、他の人と通信することはできません

すべてのIPv4アドレスは、使用されているネットワークのサイズに基づいて、5つのクラス(A〜E)に分割されます。さらに、それらはプライベートとパブリックの2つのグループに分かれています。パブリックアドレスはインターネット上での通信に使用されますが、プライベートアドレスはLANネットワークに接続された他のデバイスとの通信に使用されます。

自宅のすべてのデバイスにはプライベートIPアドレスがあります。ホームネットワーク全体(自宅のすべてのデバイス)には、ISPが割り当てられたパブリックアドレスは1つだけです。自宅のすべてのデバイスは、1つのパブリックIPアドレスをオンラインで使用するために使用しますが、ホームネットワーク上の他のデバイスと通信するときはプライベートアドレスを使用します。

最後に、すべてのIPv4アドレスは静的または動的にすることができます。静的アドレスは、1つのデバイス(サーバー、コンピューター、プリンター、ゲーム)にとどまり、時間の経過とともに変更されません - 1つのデバイスには常に同じアドレスがあります。動的アドレスは時間とともに変化します。

TCP/IPモデルのIPアドレスの目的はかなり明白です。それらがなければ、データがどこに行くべきかを知らないため、私たちのデバイスはデータを受け取ったり送信したりすることができませんでした。

TCP/IPレイヤー

前述のように、TCP/IPモデルは、データがあるコンピューターから別のコンピューターへの移動方法を定義するルールとプロトコルのセットです。 TCPとIPはこのモデルのバックボーンですが、もう少しあります。

現在使用されているTCP/IPモデルは、アプリケーション、トランスポート、ネットワーク、データリンク、および物理レイヤーの5つのレイヤーで構成されています。

すべての情報が送信される前に、これらすべてのレイヤーを通過する必要があります。また、受信する前に受信側のすべてのレイヤーを渡す必要があります。

元のモデルは、4つのレイヤーアプリケーション、トランスポート、インターネット、リンクで構成されていました。新しい更新されたTCP/IPモデルは、インターネットレイヤーをネットワークレイヤーに変更し、リンクレイヤーは2つのデータリンクと物理レイヤーに分割されます。したがって、4つの元のレイヤーの代わりに、5つのレイヤーがあります。

各レイヤーには、異なるプロトコルとデバイスがあります。各レイヤーは独自の情報を追加します。プロセス全体の名前がカプセル化されています。データが物理レイヤーに到達すると、データは受信デバイスに送信されます(インターネット上でも、はるかに小さなLANネットワーク内でも)。受信デバイスは、データのすべてのパケットを脱カプセル化し、それらを再配置し始めます。

TCP/IPはどのように機能しますか?

前述のように、データは送信する前に各レイヤーを通過する必要があり(カプセル化)、受信前に受信側の各レイヤーを通過する必要があります(脱カプセル化)。これら2つのプロセスについて説明しましょう。

データカプセル化

最上部のレイヤーは、アプリケーションレイヤーと呼ばれます。プログラム(ブラウザ、Skype、またはオンラインゲームなど)は、このレイヤーと直接対話します。これはすべて、このレイヤーで作成されたアプリケーションデータから始まります。データは、コンピューターから他のコンピューターに送信される任意のファイルである可能性があります。また、ビデオゲームでWebサイトまたはコマンドを開くというリクエストでもあります。このレイヤーは、HTTP(UNSCURE Webサイト)、HTTPS(セキュアWebサイト)、SMTP(電子メールプロトコル)、FTP(ファイル転送プロトコル)、Telnet、SSHなどのアプリケーションプロトコルで構成されています。

以下のレイヤーは輸送層です。これは、TCPがUDPとともに生きている場所です。これは、データがセグメントと呼ばれる小さなデータに刻まれる場所です。データをセグメント化することにより、TCPはより高速な送信を可能にし、各パケットが最も速いルートをとることができます。彼らは同じ順序で目的地に到着しないかもしれませんが、TCPヘッダーがある理由です。上記のように、各セグメントにはTCPヘッダーが搭載されています。前のレイヤーのアプリケーションに基づいて、TCPはソースポートと宛先ポートを定義します。各データが宛先に到達し、すべてのデータが正しく受信されるようにするために、TCPはまた、話した他のすべての情報を追加します。

読書をお勧めします:

輸送層の後、データはネットワークレイヤーに移動し、アドレス指定が行われています。それはインターネットプロトコルが住んでいる場所です。ネットワークレイヤーでは、すべてのパケットがいわゆるIPヘッダーを受信します。これには、ソースおよび宛先IPアドレスに関する情報が含まれています。そうすれば、パケットはどこに行くのか、どこから来たのかを知っています。輸送層からのセグメントがネットワークレイヤーに到達し、IPヘッダーを受信すると、パケットになります。ルーターは、LANネットワークでのIPアドレス指定を担当しているため、ネットワークレイヤーでも動作します。

最後に、データはデータリンクレイヤーに到達します。ここでは、各パケットはヘッダーだけでなくトレーラーも受け取ります。ヘッダーにはソースと宛先MACアドレスが含まれていますが、トレーラーには、受信デバイスがデータを正しく受信したかどうかを確認するのに役立つエラーチェック情報が含まれています。データリンクレイヤーにはイーサネットが含まれています。イーサネットスイッチもこのレイヤーで動作します。データリンクレイヤーを渡すと、パケットはフレームになります。

最後に、実際に触れることができるすべてのもの(ルーターとスイッチを除く)を含む物理層があります。ケーブルとネットワークカードはこのレイヤーに属します。データが物理層に到達すると、受信側に物理的に送信されます。

データ脱カプセル化

データは物理的に目的地に送信され、それが脱カプセル化プロセスが始まる場所です。データリンクレイヤーでは、宛先マシンがすべてのフレームをチェックします。ソースと宛先MACアドレスをチェックします。宛先MACアドレスが宛先マシンと一致する場合、データリンクレイヤーはフレームをさらにネットワークレイヤーまで押し上げます。

ここでは、受信機が宛先IPアドレスをチェックします。パケットがその特定のコンピューター向けである場合、輸送層までさらに進みます。 TCPヘッダーがチェックされ、すべてが正しい場合、データはアプリケーションレイヤーに送信され、最終的に受信されます。

最終的な考え

そこにあなたはそれを持っています。うまくいけば、今では、TCP/IPモデルが何であるか、それが何に使用されているか、どのように機能するかを理解してください。ネットワーキングに関するより興味深い記事をお楽しみに!