はじめに
この記事は「ネットワークはなぜつながるのか」を読んで
忘れそうなことや重要だったことのメモです
自分用のメモなのでかなり読みにくいかもしれませんが
ご了承ください
詳しく学びたい方はぜひご購入ください
Amazon.co.jp - ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識 | 戸根 勤, 日経NETWORK |本 | 通販
本の全体像
上記の画像のように、ネットワークの流れを順番に学ぶことができます。
IPやイーサネット、ハブやルーターについても詳しく書いてありとても勉強になりました。
またネットだと曖昧な情報も、細かく明確に書いてあり良かったです。
第1章 Webブラウザがメッセージを作る
ブラウザにURLを入力してから通信の流れ
- URLはスラッシュ(/) の位置で意味が変わる
- 詳しくはこちらの記事から
HTTPリクエストメッセージは主に、「リクエストライン」、「メッセージ」、「ヘッダー」の3つの要素からできている
https://developer.mozilla.org/ja/docs/Web/HTTP/Messages サブネットマスクを使うことでリソースの節約、ブロードキャストの減少
IPアドレスとポート番号の2つを指定することでどのコンピュータのどのソケットと接続するか確定できる
第2章 TCP/IPのデータを電気信号にして送る
データを送受信する際のOS内部にあるプロトコル・スタックの動きについて
LANアダプタの内部実装について
プロトコルについて
netstat
コマンドで実際にソケットを確認できる第2章でもsocketライブラリが大活躍
- イーサネット
- イーサネットのパケットの先頭にはMACアドレスがあり、あて先は次のルーターを指している(到着したら次の目的地に更新)
- IPヘッダーで目的のサーバーを見分けている
- 実はIPアドレスはコンピュータではなくLANアダプタに対して割り当てられている
- LANアダプタを複数持つサーバーには複数のIPアドレスが割り振られる
- ARPという仕組みで、IPアドレスからMACアドレスを調べる
- イーサネットは以下の3つの性質を持つ
- LANアダプタのROM(Read Only Memory)には全世界で重複しないよう管理されたMACアドレスが書き込まれている
- 電気信号はデータ信号とクロック信号を合成した信号
- LANアダプタのMAC回路が共通形式の信号を作り、PHY(MAU)回路がケーブルに送り出す時に変換して送信する
- PHY は100メガビット/秒以上の高速なイーサネット
- 100メガビット/秒 = 1秒間に100メガビット分のデジタル・データを信号に変換して送る
- PHY は100メガビット/秒以上の高速なイーサネット
- 受信動作では、パケットを受信したときに割り込みという仕組みを使う
- CPUがOS内部の割り込み処理用のプログラムに切り替える
- その後LANドライバが動き、LANアダプタのバッファ・メモリーから受信したパケットを取り出す
- イーサネットのパケットの先頭にはMACアドレスがあり、あて先は次のルーターを指している(到着したら次の目的地に更新)
第3章 ケーブルの先はLAN機器だった
私たちの送信するパケットが家庭や会社のLANにあるハブやルーターを経由して目的地に進んでいく様子を探検する
信号について
- 信号は雑音 (電磁波)により乱れたり、ケーブルの長さにより弱くなったりする
上記の雑音の影響を抑えるため「ツイストペア・ケーブル」を利用
https://ja.wikipedia.org/wiki/%E3%83%84%E3%82%A4%E3%82%B9%E3%83%88%E3%83%9A%E3%82%A2%E3%82%B1%E3%83%BC%E3%83%96%E3%83%AB リピータハブ
- つながっているケーブルすべてに信号を送信
- スイッチングハブ
- ブロードキャスト・アドレス
- オート・ネゴシエーション
- パルス信号によって全2重モード、半2重モードの自動切換え
ルーターについて
- ルーターは簡略化すると、中継部分とポート部分の2つで構成される
- 中継部分はパケットの中継先を判断
- ポート部分はパケットを送受信する
- ルーターはホスト番号を無視してネットワーク番号のみ調べる
- ネットマスク欄が0.0.0.0の場合、どんなアドレスでも一致することになる
- 上記をデフォルト経路と呼び、そこに登録したルーターをデフォルトゲートウェイと呼ぶ
- ルーターは簡略化すると、中継部分とポート部分の2つで構成される
パケットについて
- パケットには有効期限TTL(Time to live : 生存期間)というIPヘッダーのフィールドがある
- ルーターを経由するたび1減らし0になったら期限切れとする
- これにより同じ場所をループすることを防ぐ
- パケットのサイズが出力側のパケット最大長を超える場合はフラグメンテーションを使ってパケットを分割する
- パケットには有効期限TTL(Time to live : 生存期間)というIPヘッダーのフィールドがある
現在のルーターの付加的な機能
- アドレス変換
- パケットの送信元IPアドレスをプライベートアドレスからグローバルアドレスに書き換える
- ポート番号も同時に書き換える
- アドレス変換装置の対応表に手動でプライベートアドレスを登録することで、インターネットから社内のサーバーにアクセスできる
- パケットフィルタリング機能
- パケットのヘッダーを調べて条件に一致したら中継、または棄てるなどの動作をする
- アドレス変換
第4章 アクセス回線を通ってインターネットの内部へ
パケットがインターネット接続用ルーターを経由してインターネットの中に入って進んでいく様子を探検する
光ファイバの通信高速度が電気より高速なのはなぜ??
- 信号の速度に大差はない
- が、減衰率 (信号が途中で弱くなる率)が光信号は低い
- さらに光信号は電気的な雑音の影響も受けない
インターネットと会社や家庭のLANは以下の2点が違う
インターネットに接続
ADSLについて
その後...
- 電柱を経由し電話局(DSLAM)にたどり着く
- 次にBASと呼ぶパケット中継装置に届く
- そしてトンネリング用のヘッダーを付け、トンネリングの出口に向けて中継する
ルーターの進化
インターネットの実態
IXの必要性
- プロバイダの中心となる設備を設けて通信回線の数を抑える
- 高速で巨大なスイッチング・ハブがIXの中核となっている
第5章 サーバー側のLANには何がある
サーバー側のPOPにパケットが到着してから、パケットはサーバーを目指して進んでいく
この章ではサーバーの手前にある、ファイアーウォールやキャッシュ、サーバー、負荷分散装置について探検する
ファイアーウォールについて
負荷分散について
ただしこの方法だと、サーバーが故障しても検知してくれない
- 上記の問題を解決するために考案されたのが負荷分散装置あるいはロードバランサー
- どのサーバーにリクエストを送るか判断する
ほかにもキャッシュ・サーバーを利用する方法もある
- プロキシ (サーバーへのアクセス動作を仲介) という仕組みを使ってデータをキャッシュする
- プロキシは仲介の際にデータをディスクに保存し、サーバーに代わってデータをクライアントに返す機能を持つ
キャッシュ・サーバーの位置について
最寄りのキャッシュ・サーバーの見つけ方
-
- コンテンツ配信サービス(CDS)を提供する事業者がプロバイダと契約し、多数のキャッシュ・サーバーを設置する
キャッシュについて
第6章 Webサーバーに到着し、応答データがWebブラウザに戻る
Webサーバーの中身の探検
ソケットライブラリの呼び出し方
- サーバー側はソケットを接続待ち状態にし、受付を行う
- 接続が開始したら接続待ちソケットをコピーして新しいソケットを作成する
-
- クライアント側の要求に応じてサーバーが 外部プログラムを呼び出し、その実行結果がHTTPを介してクライアントに送信される仕組み
感想
すごく細かいところまで丁寧に解説してあり良かった
なんとなくネットワークの知識はあるけど
詳しく説明できる自信がない人はぜひ読むべき