Quantcast
Channel: 初心者タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 21081

初心者がざっくり理解するためのソケット通信まとめ

$
0
0

勉強メモを整理します。

ソケットとは

プログラムの世界とTCP/IPの世界を結ぶ出入口
→ プログラムとネットワークをつなげる接続口

■ TCP/IP

通信プロトコル(通信時のルール)のこと
TCP:安全性重視1、スピードは速くない
Transmission Control Protocol
IP:インターネット用プロトコル

☆ HTTP通信もソケット通信を行っている

HTTP:TCPにルールを追加し、送受信のデータ形式やタイミングをWeb閲覧に最適化するよう定められたルール

→ ソケットはTCP/IPを利用するために必要な接続ポイント
(TCP/IP通信をソケット通信と呼ぶこともあるらしい)

OSI参照モデルについて

Open System Interconnection
ISO(国際標準化機構:International Organization for Standardization)が策定した、コンピュータなどの通信機器の通信機能を、階層構造に分割したモデル
異なるベンダ(メーカー)間で相互に通信を行うための統一規格2

第7層 アプリケーション層
第6層 プレゼンテーション層
第5層 セッション層
第4層 トランスポート層
第3層 ネットワーク層
第2層 データ層
第1層 物理層
※ この順で処理されていく

■ カプセル化

規定に従ったデータを作るため、第7層 → 第1層の順に各層で送り主や宛先などの情報を梱包(処理)し、その処理した情報はヘッダとしてデータの前に付加する

e.g. データが"0010"だった場合
第7層処理後 → 10100010
第6層処理後 → 011010100010
…のように元のデータの前(左側)に情報が付加されていく
image.png

反対に、データ受信側にて下位層(数字が小さい層)から上位層にいくにつれて各層のヘッダを取り外していくことを非カプセル化という
→ 単に「データの読み取りは普通に左から右」という話

以上を踏まえて

ソケット通信は第4層・トランスポート層にあたる(TCPがトランスポート層)
HTTP通信は第7層・アプリケーション層
→ ソケットはHTTPよりも下のレイヤを扱っている
また、ソケットを利用してアプリケーション層のHTTP通信などが行われている

ソケット通信の利点

・HTTP通信のように重装備の通信(第7層・アプリケーション層)をしなくてよい
・TCP/UDP3で動く第4層レベルのアプリケーションが開発可能

→ HTTPよりもコンパクトなデータ送信が可能

おわりに

試験勉強とかで出てきたときになんとなく理解できればいいなくらいのまとめなので、間違い等ありましたらご教示願います。

参考

  1. 知ったかぶりをしていたソケット通信の基礎を改めて学んでみる - Qiita
  2. ソケット
  3. ソケット (socket)とは - 「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
  4. TCP/IPとは - 「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
  5. OSI参照モデルまとめ - Qiita
  6. OSI参照モデル - その1 - OSI reference model
  7. OSI参照モデル その1

  1. 送信内容が相手に届いたか確認しながらやり取りする 

  2. OSI参照モデル策定前のネットワークは、ひとつのベンダの製品だけで構成されており、違う通信アーキテクチャを使っているコンピュータ(違うベンダのコンピュータ)同士では通信できなかった 

  3. (User Datagram Protocol)TCPと比べてスピード重視なプロトコル。TCPのような確認処理がない 


Viewing all articles
Browse latest Browse all 21081

Trending Articles