プロトコルスタック(人間)はソケット(メモ帳)に記憶された制御情報を参照しながら動く
ソケットを作るときはメモリーを確保して、そこに初期情報の制御情報を載せてソケット完成
接続方法・・・・TCP担当部分で接続を表す制御情報を記載したTCPヘッダーを作ること
TCPヘッダーの送信元と宛先のポート番号
...続きを読むで接続するソケットを特定する
TCP➡IP(パケットを運ぶ)➡サーバー(IP)➡サーバーTCP➡ソケット closeの指示が出るまでconnectionは続く
シーケンス番号とACK番号でパケットが受信側に届いたことを確認する。
ACK番号とウィンドウ通知を相乗りさせて1つで送る(受信側の送信が多すぎるため)
受信➡データとTCPヘッダーの内容を調べて問題がない➡ACK番号➡データを受信バッファに保存➡データ断片を1つにまとめる
➡データをアプリケーションに渡す➡ウィンドウ通知
データを送る量➡MTU:1つのパケットで運ぶことができる最大のデジタルデータのこと。イーサネットでは1500バイト
MSS:ヘッダーを除いて、1つのパケットで運べるTCPのデータの最大長
通信動作に用いる制御情報
①ヘッダーに書き込まれる情報
②ソケット(プロトコルスタックのメモリー)に書き込まれる内容
IPヘッダーの宛先IPアドレスには通信相手のIPアドレスをセットする
送信源IPアドレスは送信減となるLANアダプタを判断して、そのアドレスをセットする
gateway=次のルーターのIPアドレス
IPアドレスはルーティングテーブルのgatewayの値でパケットを渡す相手を判断する
パケットはツイストペアハブを通してリピータハブに行く
ツイストペアは雑音を防ぐため
リピータ回路・・・入ってきた信号をコネクタ部分にばらまく
自分のが宛先に当てはまれば、それを受信し、該当しなければ無視。
スウィッチングハブは宛先MACアドレスをチェックせずに全パケットを受信する
➡宛先MACアドレスがテーブルにあるものと一致するか調べる
パケットがスイッチングハブに入ってくるときにMACアドレスの登録、更新が起こる
スイッチングハブは送信元と送信先が同じ場合はパケットを破棄する
スイッチングハブ=全2重モード 送信と受信が同時に可能
オートネゴシエイしょん・・・相手が全2重モードに対応しているか
モードを自動切り替えする
リンクパルス・・・信号を流すことでネットワークに異常がないかを調べる
スイッチングハブは空いているポートを確認してパケットを流す
➡より効率がいい
ルーター・・・・中継部分(ルーティングテーブル、中継先を決める)ポート部分(イーサネットや無線LANなど通信回線に対応したもの、パケットを送受信する動作)
ルーターの各ポートにはMACアドレスとIPアドレスが割り当てられる
ルーターはIPアドレスで中継先を判断する ➡スイッチングハブはMACはアドレス
ゲートウェイ、ポート番号は中継先
ルータ➡MAC回路で信号をデジタルデータに移行、FCSでエラーがあるかチェック
➡MAcアドレスが自分に該当した場合、バッファメモリーに保存
➡MACヘッダーを捨てて、IPヘッダーを確認、中継 (中継不明のパケットは捨てる)
ネットマスク欄0.0.0.0はデフォルト経路
ルーターが相手を判断する方法
・ルーティングテーブルのゲートウェイにIPアドレスがあればそれが相手
・ゲートウェイが空欄だったらIPヘッダーの宛先が相手
・ルーターもARPを使って、MACアドレスを調べる
ルーターはパケットを運ぶ仕事をスイッチングハブに依頼する(IPパケットにMACアドレスを付ける)
・通信相手までパケットを届ける全体の動作はIP(ルーター)が担当し、その動作の際に次のルーターまでパケットを運ぶ部分をイーサネット(スイッチングハブ)が担当する
ロードバランサー・・・・CPUやメモリーの使用率で負担率を判断
プロキシ・・・サーバーとクライアントの間に入って、サーバーのアクセス動作を仲介する、またサーバーからのデータを保存し、サーバーの代わりにクライアントに送り返す。
キャッシュサーバーはサーバーからデータを受け取って保存しておき、データをクライアントに返す。
webサーバーの代わりにキャッシュサーバーをDNSに登録
プロキシはリクエストの中身を調べて転送する➡アクセス制限を設ける
リバースプロキシ・・・現在主流のプロキシ(サーバーの前)