nokoのブログ

こちらは暫定のメモ置き場ですので悪しからず

ネットワークを復習してみた

はじめに

  • ネットワークを復習してみたときのメモです

参考

ネットワーク

1. Webブラウザがリクエストを作る

  • リクエストメッセージ
    • リクエストライン + ヘッダー + ボディ
      • リクエストライン: 要求方法 + 要求するURL
      • ヘッダー: Hostヘッダー、ブラウザの種類、Cookieヘッダーなど
      • ボディ: Postメソッドのとき。ヘッダーとボディの間は空行で区切る。クライアントからWebサーバに向けて送信するデータ。
  • リクエストメッセージ: 何を + どうして 欲しいのか
    • 何を = URI
    • どうして = メソッド
  • ドメイン名からIPアドレスを調べるとき、ブラウザはソケットライブラリのリゾルバを利用する
  • 1つのドメインの情報を分割して複数のサーバに登録することはできない。逆に、1台のDNSサーバに複数のドメインの情報を登録することはできる
  • DNSでは、ドメインの階層を上から辿っていく
    • まずルートドメイン
    • インターネットに存在するDNS全てに、ルートドメインDNSサーバを登録する
    • "com", "net" はVerisignというところが管理している
  • DNSサーバは一度調べた名前をキャッシュに登録しておく機能がある

2. TCP/IPのデータを電気信号にして送る

  • イーサネットのパケット - MACヘッダー = IPヘッダー
  • TCP
    • 特徴
      • シーケンスナンバーによる順序制御
      • データの再送
      • データの重複除去
  • UDP
  • コネクションとセッションの違い
    • コネクション: トランスポート層TCPコネクション。セッションでデータ転送を行うための論理的な回線
    • セッション: アプリケーション層、セッション層。通信の開始から終了までを管理する
  • ソケットライブラリ

3. LANを通っていく

  • ネットワークは集約と切り替え(スイッチング)が大切
  • LANアダプタのPHY(MAU)回路で電気信号に変えられる
  • スイッチ
    • L2: スイッチングハブなど
      • 同じネットワークアドレスに所属する機器を集約する
      • イーサネットフレームという単位で通過が行われる
      • フレームの送信元のMACアドレス送信先MACアドレスの情報から転送する
      • MACアドレステーブルにのっていなければ、全ての物理ポートにフレームを送信する(フラッティング)
    • L3: ルータ機能のついたL2スイッチ
      • IPパケットを扱う
      • ルーティングテーブルで、ネットワークごとに転送させるべきゲートウェイIPアドレスと物理ポートの番号が記されている
      • 明記されていなければ、デフォルトゲートウェイ
      • ルーティングの交換は、手動だったり自動で他のルータとやり取りしたり
        • OSPF: RIPと異なり、ホップ数だけでなく、帯域幅も考慮して計算
    • L4/7: ロードバランサなど
  • ルータ = 中継部分 + ポート部分
    • 中継部分: パケットの中継先の判断を担当
    • ポート部分: パケット送受信の動作を担当
  • VLAN
    • スイッチ内を論理的に分割する機能
  • ポートVLAN
    • 1台のスイッチの物理ポートごとにVLAN番号を設定する
    • VLANを跨いで通信する場合は他のL3スイッチやルータを経由
  • タグVLAN
    • 複数台のスイッチにまたがってVLANを構築する
    • トランクポートを通じて他のスイッチと連結する
    • イーサネットフレームに4バイトのタグを付与
    • トランクポートを通る度にタグの付け外しを行う

4. プロバイダからインターネット内へ入っていく

  • インターネット = 家庭や会社のネットワークの規模が大きくなったもの
    • 例えば、インターネット内のルータには経路情報が10万件登録されていたり
  • PPPoE
    • PPPをイーサネット上で実現
      • 通信要求
      • 接続する資格を持ったユーザか確認
      • 通信条件について相談
      • 通信を開始
  • アクセス回線: プロバイダに接続する部分の回線
  • BAS(ブロードバンドアクセスサーバ)と普通のルータの違い
    • 本人確認機能、IPアドレスなどの設定情報をクライアントに通知する
  • IX(Internet eXchange): プロバイダ同士を一堂に集めて相互に接続する設備(実態は高性能なスイッチングハブ
  • ネットワーク機器の監視は、主にdiscard(パケットロス)とunbind(インターフェイスが外れた状態)
  • 切り分けコマンド
    • ping, traceroute, telnet, nslookup, dig
    • lsof: IPv6だけに見えても、IPv4互換アドレスで接続しても応答を返す
  • AWS)Internet Gateway = 自分のネットワークにインターネット回線を引き込むイメージ
  • EGP
    • AS番号をやり取りして、「どのネットワークの先に、どのネットワークが接続されているか」を大まかにやり取りする
    • 細かいところはIGPで

5. Webサーバにたどり着く

  • ファイアウォール
    • 今はパケットフィルタリング型が最も普及している
    • 動的ポートフィルタリング
      • 戻りの通信を考えないための機能
  • キャッシュサーバ
    • LBと同じように、Webサーバの代わりにDNSサーバに登録する。→キャッシュサーバにHTTPリクエストが届くようになる
    • コンテンツ配信サービスプロバイダは、主要なプロバイダと契約して、そこに多数のキャッシュサーバを設置する
  • SSLオフロード
    • 本来、Webサーバで行うSSL通信の処理をロードバランサ側に集約して行う機能
    • SSL処理はCPU負荷がかかる
    • ロードバランサはロードバランサで高価なので、他のシステムとの兼ね合いとかで、サーバ側でやるかとかは決める

6. レスポンスが作られ、Webブラウザに戻っていく

  • 1のリクエストメッセージ通り、WebサーバはURIで指定されたアプリケーションプログラムにリクエストメッセージ中にあるデータを渡して、処理が走る(レスポンスが作られる)
  • レスポンス
    • ステータスライン + ヘッダー + ボディ
    • Content-Typeヘッダー
      • ボディ部のコンテンツの種類を示す