勉強メモを整理します。
ソケットとは
プログラムの世界と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
…のように元のデータの前(左側)に情報が付加されていく
反対に、データ受信側にて下位層(数字が小さい層)から上位層にいくにつれて各層のヘッダを取り外していくことを非カプセル化という
→ 単に「データの読み取りは普通に左から右」という話
以上を踏まえて
ソケット通信は第4層・トランスポート層にあたる(TCPがトランスポート層)
HTTP通信は第7層・アプリケーション層
→ ソケットはHTTPよりも下のレイヤを扱っている
また、ソケットを利用してアプリケーション層のHTTP通信などが行われている
ソケット通信の利点
・HTTP通信のように重装備の通信(第7層・アプリケーション層)をしなくてよい
・TCP/UDP3で動く第4層レベルのアプリケーションが開発可能
→ HTTPよりもコンパクトなデータ送信が可能
おわりに
試験勉強とかで出てきたときになんとなく理解できればいいなくらいのまとめなので、間違い等ありましたらご教示願います。
参考
- 知ったかぶりをしていたソケット通信の基礎を改めて学んでみる - Qiita
- ソケット
- ソケット (socket)とは - 「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
- TCP/IPとは - 「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
- OSI参照モデルまとめ - Qiita
- OSI参照モデル - その1 - OSI reference model
- OSI参照モデル その1