network
概要
コンピュータ・ネットワークは複数のコンピュータを接続する技術。通常のWeb開発でこのレイヤーをいじることは多くないが、技術的背景を理解してないと解決できない種類の問題がある。
Memo
ネットワークレイヤー構成図
- ロードバランサとは?わかりやすく解説! | GMOクラウドアカデミー
- L1 物理層
- 物理的な接続
- L2 データリンク層
- 間接的に接続されている通信機器間の信号の受け渡し
- ハブの隣接しているLANの挿し口同士をつなぐ
- L3 ネットワーク層
- ネットワークにおける通信経路の選択
- LANが遠くにつながるための、ルーターのこと
- L4 トランスポート層
- ネットワークの端から端までの通信管理
- きちんと正しい相手に届くよう、責任を持って通信を届ける
- L5 セッション層
- 通信プログラム間の通信の開始から終了までの手順
- プロトコルの管理。何の通信なのかを管理
- L6 プレゼンテーション層
- データの表現方法
- 文字コードの管理
- L7 アプリケーション層
- 具体的な通信サービス
- 何のアプリケーションを利用しているのか管理
Webサーバとソケット通信の例
TCP/IPのソケット通信とは、ソケットインターネットとも呼ばれ、主にプログラムの世界とTCP/IP世界を結ぶ特別な出入り口のことを意味し、TCP/IPのトランスポート層を指します。
TCP/IPとは?通信プロトコルの階層モデルを図解で解説 | ITコラム|アイティーエム株式会社
Nginx(webサーバ) + puma(アプリケーションサーバ) + Railsの実例で考える。
Railsでpumaを起動したときソケットパスを指定できる。起動すると、 puma.sock
というファイルが作成される。
Nginxの設定。
upstream app_server { server unix:///rails/tmp/sockets/puma.sock; }
とすると、Nginxを経由してpumaでサーブされる内容を表示できる。 ポートやプロセス関係は指定せずに2つのサーバが通信できていることに注目。
DNS
DNS(Domain Name System)はコンピュータが参照しているIPアドレスと、人間が識別しやすい表記のドメイン情報を管理するシステム。
例: AWS Route53はDNSのフルマネージドサービス。
レコードの種類
- SOA
- ゾーン情報
- NS
- DNSサーバ名
- A
- ホストのIPアドレス
- PTR
- IPアドレスに対するホスト名
- CNAME
- ホスト名のエイリアス
- MX
- ドメインのメール・サーバ名
- HINFO
- ホストの追加情報
- WKS
- ホストで実行されているサービス情報
- TXT
- ホストへのテキスト情報
そのほか、サービスよって独自拡張レコードが存在する。
Tasks
TODO マスタリングTCP/IP 入門編 第6版【委託】 - 達人出版会
よく見かける有名な本。
TODO ピアリング戦記 ― 日本のインターネットを繋ぐ技術者たち – 技術書出版と販売のラムダノート
インターネットのノンフィクション。
Reference
ウェブ用ストレージ
ブラウザでデータを保存する方法。
pingでポートを指定できない理由 | えぬろぐ
pingにポート番号はない。
図解!ネットワークの7層を実務に当てはめてみた - Qiita
ネットワークの7層がそもそもあまり理解できてないので、具体的に置き換えて考える。