ネットワーキング
 Computer >> コンピューター >  >> ネットワーキング >> ネットワーキング

コンピュータネットワークのためのソケットプログラミングの概要

ソケットは、コンピュータネットワークプログラミングの最も基本的なテクノロジの1つです。ソケットを使用すると、ネットワークソフトウェアアプリケーションは、ネットワークハードウェアとオペレーティングシステムに組み込まれている標準メカニズムを使用して通信できます。

インターネットソフトウェア開発のもう1つの機能のように聞こえますが、ソケットテクノロジはWebの前に存在していました。多くの一般的なネットワークソフトウェアアプリケーションはソケットに依存しています。

ソケットテクノロジーがネットワークにできること

ソケットは、正確に2つのソフトウェア間の単一の接続(ポイントツーポイント接続)を表します。 2つ以上のソフトウェアが、複数のソケットを使用してクライアント/サーバーまたは分散システムと通信できます。たとえば、多くのWebブラウザは、サーバー上に作成されたソケットのグループを使用して、単一のWebサーバーと同時に通信できます。

ソケットベースのソフトウェアは通常、ネットワーク上の2台の別々のコンピューターで実行されますが、ソケットを使用して1台のコンピューターでローカル(プロセス間)に通信することもできます。ソケットは双方向です。つまり、接続のどちらの側でもデータの送信と受信の両方が可能です。

通信を開始するアプリケーションはクライアントと呼ばれ、他のアプリケーションはサーバーと呼ばれることもありますが、この用語はピアツーピアネットワークで混乱を招くため、通常は避ける必要があります。

ソケットAPIとライブラリ

標準のアプリケーションプログラミングインターフェイス(API)を実装するいくつかのライブラリがインターネット上に存在します。最初の主流パッケージであるBerkeleySocketLibraryは、UNIXシステムで広く使用されています。

もう1つの一般的なAPIは、Microsoftオペレーティングシステム用のWindows Sockets(WinSock)ライブラリです。他のコンピューター技術と比較して、ソケットAPIは成熟しています。 WinSockは1993年から使用されており、Berkeleyソケットは1982年から使用されています。

ソケットAPIは比較的小さくシンプルです。関数の多くは、 read() write() close()などのファイル入出力ルーチンで使用される関数と似ています。 。使用する実際の関数呼び出しは、選択したプログラミング言語とソケットライブラリによって異なります。

ソケットインターフェイスタイプ

ソケットインターフェイスは、次の3つのカテゴリに分類できます。

  • ストリームソケット :これは最も一般的なタイプです。 2つの通信当事者は、最初にソケット接続を確立します。その後、その接続を通過したデータは、送信されたのと同じ順序で到着することが保証されます(コネクション型プログラミングモデルを使用)。
  • データグラムソケット :コネクションレス型セマンティクスを提供します。データグラムでは、接続はストリームのように明示的ではなく暗黙的です。どちらかの当事者が必要に応じてデータグラムを送信し、もう一方の当事者が応答するのを待ちます。メッセージは送信中に失われたり、順序が狂って受信されたりする可能性があります。アプリケーションは、ソケットではなく、これらの問題を処理します。データグラムソケットを実装すると、一部のアプリケーションで、ストリームソケットを使用する場合に比べてパフォーマンスが向上し、柔軟性が向上します。
  • rawソケット :TCPやUDPなどの標準プロトコルに対するライブラリの組み込みサポートをバイパスします。 rawソケットは、カスタムの低レベルプロトコル開発に使用されます。

ネットワークプロトコルでのソケットのサポート

最新のネットワークソケットは通常、IP、TCP、およびUDPインターネットプロトコルと組み合わせて使用​​されます。インターネットプロトコル用のソケットを実装するライブラリは、ストリームにTCP、データグラムにUDP、rawソケットにIPを使用します。

インターネットを介して通信するために、IPソケットライブラリはIPアドレスを使用して特定のコンピューターを識別します。インターネットの多くの部分はネーミングサービスで動作するため、ユーザーとソケットプログラマーは、アドレス(たとえば、208.185.127.40)ではなく名前(たとえば、thiscomputer.wireless.lifewire.com)でコンピューターを操作できます。

ストリームソケットとデータグラムソケットもIPポート番号を使用して、複数のアプリケーションを相互に区別します。たとえば、インターネット上のWebブラウザは、Webサーバーとのソケット通信のデフォルトとしてポート80を使用することを知っています。


  1. Ruby開発者向けのデータ構造の概要

    データ構造とは何ですか? データ構造は、データを整理してアクセスするための特定の方法です。 。 例: 配列 二分木 ハッシュ さまざまなデータ構造がさまざまなタスクに優れています。 たとえば、辞書(単語と定義)や電話帳(人の名前と番号)のようなデータを保存する場合は、ハッシュが最適です。 利用可能なデータ構造を知る 、およびそれぞれの特徴 、より優れたRuby開発者になります。 それがこの記事で学ぶことです! 配列について 配列は、プログラミングについて読み始めたときに最初に学習するデータ構造です。 配列は、オブジェクトがギャップなしで次々に格納される連続したメモリのチャン

  2. Rubyネットワークプログラミング

    Rubyでカスタムネットワーククライアントとサーバーを作成しますか?または、それがどのように機能するかを理解しますか? 次に、ソケットを処理する必要があります。 このルビーネットワークプログラミングのツアーに参加してください 基本を学び、Rubyを使用して他のサーバーやクライアントと会話を始めましょう! では、ソケットとは何ですか ? ソケットは通信チャネルのエンドポイントであり、クライアントとサーバーの両方がソケットを使用して通信します。 動作方法は非常にシンプルです : 接続が確立されると、データをソケットに入れることができます。データはもう一方の端に送られ、そこで受信者はソケ