HTTP と TCP/IP、Web サーバーにデータを送信する 質問する

HTTP と TCP/IP、Web サーバーにデータを送信する 質問する

私は現在、Arduino Nano (を使用する必要があるプロジェクトに取り組んでいます)http://arduino.cc/en/Main/arduinoBoardNano) を使用して、温度センサーから Web サーバーにデータを送信します。

最初は、POST/GET などに役立つ優れたライブラリがたくさんあるので、簡単だと思いました。しかし、教授から、TCP/IP を使用してサーバーにデータを送信する必要があり、POST と GET は HTTP メソッドであると理解していると言われたばかりです。

HTTP と TCP/IP の違いを説明していただけますか? 特に、Web サーバーにデータを送信することに関してです。あまり技術的ではない回答を求めています (私はこの分野にかなり不慣れです)。

最後に、Arduino で私が上で説明したことを実行した経験のある方がいらっしゃいましたら、アドバイスをいただければ幸いです。

ありがとう!

ベストアンサー1

簡単に言うと、TCP はトランスポート層プロトコルであり、HTTP は TCP 上で実行されるアプリケーション層プロトコルです。

詳細: 違い (および他の多くのネットワーク トピック) を理解するには、階層型ネットワーク モデルの概念を理解する必要があります。基本的に、コンピューターがさまざまな距離とさまざまな抽象化レイヤーで通信できるようにするさまざまなプロトコルがあります。

ネットワーク スタックの最下部には物理層があります。これは、電気信号、光パルス、または電波が実際に情報を場所から場所へ送信する場所です。物理層には実際にはプロトコルはありませんが、代わりに電圧、周波数、およびその他の物理的特性の標準があります。この方法では情報を直接送信できますが、大量の電力または専用回線が必要になり、上位層がなければ帯域幅を共有できなくなります。

次の層はリンク層です。この層は、物理通信媒体を共有するデバイスとの通信をカバーします。ここでは、イーサネット、802.11a/b/g/n、トークン リングなどのプロトコルによって、物理媒体への複数の同時アクセスを処理する方法と、トラフィックを別のデバイスではなく 1 つのデバイスに転送する方法が指定されます。一般的なホーム ネットワークでは、これがコンピューターがホーム「ルーター」と通信する方法です。

3 番目の層はネットワーク層です。ほとんどの場合、この層はインターネット プロトコル (IP) によって支配されています。インターネットの魔法はここで発生し、地球の反対側にあるコンピューターと、そのコンピューターがどこにあるのかを知らなくても通信できるようになります。ルーターは、ローカル ネットワークから他のコンピューターが存在するネットワークへのトラフィックの転送を処理し、独自のリンク層がパケットを適切なコンピューターに届ける処理を行います。

これで、目的が達成されました。世界中のどこかのコンピュータと通信できますが、そのコンピュータではさまざまなプログラムが動作しています。どのコンピュータにメッセージを届けるかを、どのようにして判断すればよいのでしょうか。トランスポート層が、通常はポート番号を使用してこの処理を行います。トランスポート層プロトコルとして最もよく使用されるのは、TCP と UDP の 2 つです。TCP は、パケットの並べ替え、失われたパケットの再送信など、ネットワーク層のパケット交換通信の難点を解消するために、多くの興味深い処理を行います。UDP は信頼性が低いですが、オーバーヘッドは少なくなります。

ブラウザを反対側の Web サーバー ソフトウェアに接続しましたが、サーバーはどのようにしてユーザーがどのページを希望しているかを知るのでしょうか。質問や回答を投稿するにはどうすればよいでしょうか。これらはアプリケーション層プロトコルが処理します。Web トラフィックの場合、これはハイパーテキスト転送プロトコル (HTTP) です。アプリケーション層プロトコルは数千種類あります。電子メール用の SMTP、IMAP、POP3、チャット用の XMPP、IRC、ICQ、リモート管理用の Telnet、SSH、RDP などです。

これらは TCP/IP ネットワーク モデルの 5 つの層ですが、実際には概念上のものです。OSI モデルには 7 つの層があります。実際には、一部のプロトコルはさまざまな層の間を行き来したり、複数の層で同時に動作したりできます。たとえば、TLS/SSL は、ネットワーク層とトランスポート層の間で暗号化とセッション情報を提供します。アプリケーション層の上では、アプリケーション プログラミング インターフェイス (API) が Quora、Twitter、Facebook などの Web アプリケーションとの通信を制御します。

おすすめ記事