ナビゲーションに移動Ciscoを中心としたネットワーク技術をわかりやすく解説します。複数の転送プロトコルを組み合わせるデータを送受信する通信の主体はアプリケーションです。アプリケーションのデータをネットワーク経由で適切な宛先まで転送します。そのために、以下の転送プロトコルを組み合わせて利用します。転送プロトコル適切なアプリケーションへ振り分ける(TCP/UDP)PCやサーバで動作しているアプリケーションは1つだけとは限りません。届いたデータがどのアプリケーションのデータであるかを識別して、適切なアプリケーションへデータを振り分ける必要があります。そのために、TCPまたはUDPを利用しています。アプリケーションを識別するために、ポート番号を割り当てています。TCP/UDPヘッダには宛先/送信元ポート番号が指定されています。例として、Webサイトのアクセスについて考えます。Webブラウザのデータには、HTTPヘッダが付加されます。HTTPヘッダが付加されたデータをTCPで転送することになります。TCPヘッダの宛先/送信元ポート番号でWebブラウザとWebサーバアプリケーションをきちんと識別できるようにしています。そのため、TCPヘッダを付加する(カプセル化)ということは、WebブラウザとWebサーバアプリケーションが仮想的に直結されるようなイメージです。宛先/送信元ポート番号に関係のないアプリケーションにデータが振り分けられることはありません。適切なアプリケーションへ振り分けるWebブラウザからのリクエストでGETメソッドの場合、データ(エンティティボディ)には何も入っていません。例として、WebブラウザからWebサーバアプリケーションへの片方向のみを取り上げています。同様のプロセスなので省略しますが、通信は双方向であることは必ず意識してください。UDPの場合もUDPヘッダでカプセル化することでアプリケーション間が直結されるイメージです。関連記事ポート番号、TCP、UDPについては以下の記事をご覧ください。~どのアプリケーションのデータなの?https://www.n-study.com/tcp-ip/port-number/ポート番号とはポート番号とは、TCP/IPのアプリケーションを識別するための識別番号で、TCPまたはUDPヘッダに記述されています。ポート番号によって、PC/サーバなどに届いたデータがどのアプリケーションのデータであるかを識別して、適切なアプリケーションへデータを振り分けます。ポート番号の概要「ポート番号」という言葉は、前後の文脈によって意味が違うので注意が必要です。レイヤ2スイッチなどのネットワーク機器のインタフェースの番号という意味合いで使うこともよくあります。ポート番号の範囲ポート番号は16ビットの数...ネットワークのおべんきょしませんか?TCPの概要https://www.n-study.com/tcp-ip/tcp-overview/TCPとはTCPとは、信頼性のあるアプリケーション間のデータ転送を行うためのプロトコルです。TCP/IPというネットワークアーキテクチャの名前に含まれているようにとても重要なプロトコルです。TCPを利用したアプリケーション間のデータの送受信は次のような手順で行われます。TCPコネクションの確立まず、データを送受信するアプリケーション間の通信が正常に行うことが可能かどうかを確認します。この確認のプロセスは3ウェイハンドシェイクと呼ばれます。Protocol)とはUDPは単純にアプリケーションへのデータを振り分けるためにだけに利用するプロトコルです。TCPのような確認などはいっさい行いません。UDPでアプリケーションのデータを送受信するには、UDPヘッダを付加します。UDPヘッダとアプリケーションのデータを合わせてUDPデータグラムと呼ぶことがあります。相手のアプリケーションが動作しているかどうかの確認などせずに、いきなりUDPデータグラムを送りつけて、アプリケーションのデータを送信します。TCPに比べると、余計な処理をしないので、データの転送...アプリケーションが動作しているホストまで転送する(IP)アプリケーションのデータは、アプリケーションが動作しているPC/サーバなどのホストまで転送しなければいけません。アプリケーションが動作しているホストまで転送するためにIPを利用しています。IPにとってのデータは、TCPヘッダでカプセル化されているアプリケーションのデータです。ホストを識別する(正確にはホストのインタフェース)ために、ホストにはIPアドレスを割り当てています。IPヘッダに宛先/送信元IPアドレスを指定して、IPヘッダでカプセル化してIPパケットとします。IPヘッダでカプセル化することで、送信元ホストと宛先ホストの間が仮想的につながるようなイメージです。IPヘッダに宛先/送信元IPアドレスを指定しているので、まったく関係ないホストにデータが転送されることはありません。ホスト間が仮想的につながっている中にデータを通していきます。これは、実際には経路上に存在するルータ/レイヤ3スイッチが適切なルーティングを行うことで実現しています。アプリケーションが動作しているホストまで転送する関連記事IPについては以下の記事をご覧ください。Protocol)はTCP/IPの名前に含まれているように、TCP/IPのさまざまなプロトコルの中でもとても重要なプロトコルです。IPの役割を明確にしておきましょう。IPの役割は、「エンドツーエンドの通信を行う」ことです。ネットワーク上のあるホストから別のホストへのデータを転送するのがIPの役割です。送信元ホストと宛先ホストは、同じネットワーク上でも異なるネットワークでもどちらでもよいです。IPでデータを転送するためには、データのIPヘッダを付加して、「IPパケット」とします。宛先が異なるネ...また、IPアドレスについては、以下の記事からさらに詳細な解説記事をご覧いただけます。PocketsIPアドレッシングhttps://www.n-study.com/ip-addressing/IPアドレッシング一般のユーザにはIPアドレスのことを意識させないようにしていますが、TCP/IPの通信では必ずIPアドレスを指定しなければいけません。ネットワークの仕組みを理解するうえで、IPアドレスの詳細を把握しておくことはとても重要です。IPアドレスのフォーマットや分類などIPアドレスの詳細について解説します。ここではIPv4アドレスのみです。同じネットワークのインタフェース間で物理信号を送り届ける(イーサネットなど)TCP/UDPおよびIPは、物理的なデータの送信を行いません。ネットワーク上でデータを転送するとは、「0」「1」のビットを電気信号などの物理信号に変換して、その物理信号を適切なインタフェースまで送り届けることです。そのために、イーサネット/Wi-Fiなどのネットワークインタフェース層のプロトコルを利用します。イーサネットでは、イーサネットインタフェースを識別するためにMACアドレスを割り当てています。イーサネットで転送するためには、宛先/送信元MACアドレスを指定したイーサネットヘッダでカプセル化します。イーサネットにとってのデータはIPヘッダまでカプセル化している部分です。イーサネットヘッダでのカプセル化は、送信元インタフェースと宛先インタフェース間が仮想的につながるイメージです。ヘッダに宛先/送信元MACアドレスを指定しているので、関係のないインタフェースはデータを受信しません。(イーサネットフレームがフラッディングされると関係ないインタフェースに物理信号が流れることはあります)宛先と送信元インタフェース間の仮想的なつながりの中にデータを通していきます。これは、具体的にはレイヤ2スイッチが転送しています。イーサネットをはじめとするネットワークインタフェース層のプロトコルは、同じネットワーク内だけです。ルータを越えてネットワークが異なるときには、新しいヘッダでカプセル化されることになります。同じネットワークのインタフェース間で物理信号を送り届ける物理信号に変換している様子は図には示していません。関連記事MACアドレスなどイーサネットについては、以下のリンクからさらに詳細な解説をまとめています。Pocketイーサネットの仕組みhttps://www.n-study.com/ethernet/イーサネットの仕組みイーサネットは、1つの同じネットワークの中でデータを転送するためのプロトコルです。企業の社内ネットワークや家庭内ネットワークを構築するために、イーサネットをよく利用しています。イーサネットの仕組みをしっかりと理解して、社内ネットワークや家庭内ネットワークを構築しましょう。以上のように、アプリケーションのデータを転送するためには、トランスポート層、インターネット層、ネットワークインタフェース層の3つの階層にわたる転送プロトコルを組み合わせています。アプリケーションのデータに各転送プロトコルのヘッダでカプセル化してネットワークに送り出すデータを作り上げています。これにより、ネットワークを構成するルータ/レイヤ3スイッチやレイヤ2スイッチが転送の判断をして、適切な宛先までデータを表している物理信号が送り届けられるようにしています。各転送プロトコルのヘッダをつけるために、他のプロトコルも必要です。TCP/UDPヘッダのポート番号は特に意識して求める必要はありません。サーバアプリケーションのポート番号はあらかじめ決められているウェルノウンポート番号を利用し、クライアントアプリケーションはダイナミックにポート番号を割り当てるからです。IPアドレスはそうはいきません。送信元IPアドレスは簡単にわかりますが、IPヘッダの宛先IPアドレスを求めるために、DNSが必要です。MACアドレスも求めるための仕組みが必要です。イーサネットヘッダの宛先MACアドレスを求めるためには、ARPを利用します。関連記事DNSとARPについて、以下の記事をご覧ください。System)は、ホストの名前であるホスト名からIPアドレスを求めるためのプロトコルです。TCP/IPの通信では必ずIPアドレスを指定しなければいけません。TCP/IPでやり取りするデータにはIPヘッダを付加して、IPヘッダにIPアドレスを指定しなければいけないからです。IPアドレスは数字の羅列なので、アプリケーションを利用するユーザにはわかりにくいものです。1つや2つならともかく、何個もIPアドレスを覚えておくことは難しいでしょう。Protocol)とはIPアドレスとMACアドレスを対応付けるためのプロトコルです。IPアドレスとMACアドレスを対応付けることをアドレス解決と呼び、ARPというプロトコルの名前の由来です。ARPはイーサネットでIPパケットを転送するときに必要不可欠な大事なプロトコルです。ネットワークのおべんきょしませんか?https://www.n-study.com/2022-pv-ranking/2022年「ネットワークのおべんきょしませんか?」コンテンツのページビューランキングTOP10です。ネットワーク技術解説記事のアップデートや新規記事をTwitterでお知らせしています。