代々木で働く19歳エンジニアのブログ

思ったこととか、技術的なこと書きます。

TCP/IP

コンピュータネットワーク発展の7つの段階

---
1950 バッチ処理(処理するプログラムやデータなどをまとめて一括で処理する方式)
1960 タイムシェアリングシステム(TSS):一台のコンピュータに複数の端末を接続し、複数のユーザーが同時にコンピュータを利用できるようにしたシステム
1970 コンピュータ間通信
1980 コンピュータネットワーク
1990 インターネット普及
2000 インターネット技術中心
2010 TCPIP

プロトコル

例、IP TCP HTTP

  • コンピュータとコンピュータがネットワークを利用して通信するために作られた約束事

日本語英語 プロトコル 言語によるコミュニケーション 通信 話の内容 データ

通訳 ゲートウェイ

  • パケット交換とは 大きなデータをパケットと呼ばれる単位に分割して送信する方法

小包の荷札=パケットのヘッダ

OSI

ISOが国際標準としてOSIと呼ばれる通信体系を標準化 OSI:開放型システム間相互接続

上位層と下位層の間でサービスのやりとりをするときの約束事=インターフェイス 同じ階層=プロトコル

各層で何をするかという役割を定義 各層の役割を定義しているのがプロトコル

OSIの用語 ノード=通信を行うコンピュータ TCP/IPの用語 ホスト=ネットワークに接続されたコンピュータ

上位層から渡されたデータに自分の階層のプロトコル処理に必要な情報をヘッダという形で受け付ける。

  • プレゼンテーション層 ネットワーク全体で統一された表現形式とコンピュータやソフトウェアに適した表現形式を相互に変換する階層 符号化形式 UTF-8 shift_JIS

https://gyazo.com/0c55d7abe0f746b6d0b7286a697f0b3c

https://gyazo.com/a704557a6162b87c1cc69e490f8ef18e

  • コネクション型 tcp データの送信を開始する前に送信ホストと受信ホストの間で回線の接続をする 必ずしもパケットにはならない 電話みたいな感じ

  • コネクションレス型 ip パケットが多い 郵便 通信相手がいるかどうかの確認はない

  • 回線交換 交換機がデータの中継処理、交換機を通して回線を設定、回線接続=コネクションの確立、一度コネクションを確立するとその回線は占有利用(デメリット) 通信の速度が一定

  • パケット交換(蓄積交換) パケット交換機(ルータールーター、バッファと呼ばれる記憶領域、キュー(行列)を作りながら、バッファに格納 回線は一つ、共有利用、遅くなったりする

  • ユニキャスト:電話

  • ブロードキャスト:TV

  • マルチキャスト:テレビ電話

  • エニーキャスト:DNSのルートネームサーバー

  • アドレスの唯一性 階層性のあるアドレス=IPアドレス 階層性のないアドレス=MACアドレス

IPアドレス:ネットワーク部とホスト部

  • アドレスの階層性 ネットワークの途中にある通過点で各パケットの宛先アドレスを見て、どのネットワークインターフェイスから送り出すか決める =macアドレス 転送表 =IPアドレス 経路制御表

ネットワーク構成要素

コンピュータ機器の外部インターフェイス=ポート

パケットin データリンク層=フレーム

https://gyazo.com/f3d796cecf97398770c6943cdead457a

  • ネットワークインターフェイス NIC(LANを使うための機能が集約された部品)

  • リピーター(物理層) 減衰して変形した信号の波形を増幅、整形して流す装置、速度を変換することはできない

  • ブリッジ(レイヤ2、物理層) ネットワークとネットワークを結ぶ橋、どのネットワークにどのフレームを流すか

  • ルーター(レイヤ3、ネットワーク層) 経路を決定してパケットを配送する配達屋

  • レイヤ4−7スイッチ 4−7層の内容を分析して、特定の処理を行う。 ロードバランサー:複数のサーバーに負荷を分散する 帯域制御:電話を優先して、メールとかを後回しにする

  • ゲートウェイ トランスポート層からアプリケーション層までの階層でデータを変換して中継する装置のこと プロトコルの翻訳 中継

実際のネットワーク

  • バックボーン,コア:大量のデータを高速に送受信することを目的にして、構築。 例、道路網の高速道路

  • エッジ 高速なレイヤ3スイッチ 例、インターチェンジ

  • アクセス・アグリゲーション レイヤ2スイッチ、レイヤ3スイッチで、エッジを越えてやりとりする情報とネットワーク内に留まる情報を制御している 例市街地

  • データセンター 巨大なサーバーとストレージ、ネットワーク

DNS(ネットワーク層)

  • ホスト名→hostsファイルを参照(ホスト名とIPアドレス)→IPアドレスに変換 hostsファイルはネットワークインフォメーションセンターで一括管理

  • DNS:ホストを管理している組織がホスト名とIPアドレスの関係を表すデータベースを管理できる 通信をしたいユーザーがホスト名(ドメイン名)を入力すると自動的にホスト名やIPアドレスが登録されているデータベースサーバーが検索され、そこからIPアドレスの情報を得るようになっている。

    $ nslookup コマンド名
    ipアドレスがわかる

  • ドメイン名:ホストの名前や組織の名前を識別するための階層的な名前、サブドメインはホスト名とドメイン名の間に入る kusa.ac.jp pepper.kusa.ac.jp piyo.kusa.ac.jp

kusa: くさ大学固有のドメイン名 ac: 高等教育機関 jp: 日本 pepper, piyo: ホスト名

階層構造を取っているため、各組織単位で自由にホスト名を ネームサーバーとは、ドメイン名を管理しているホストやソフトウェアのこと、そのネームサーバが設置された階層のドメインに関する情報を管理する。 管理する階層のことをzoneと呼ぶ リゾルバ:DNSに問い合わせを行うホストやソフトウェア(自分のパソコン)

https://gyazo.com/c5011796c21f0e64f485341052e799b6

https://gyazo.com/916a24818db9de4049901d134127e952

DHCP(ネットワーク層)

面倒なIPアドレスの設定の自動化や、一括管理を行うことができる プラグアンドプレイ

DHCP○○パケットを送信するときは、IPアドレスは決まっていないので、送信元が0.0.0.0で送信先が255.255.255.255になっている。

複数のDHCPサーバーの設定を行ってくれるもの=DHCPリレーエージェント

https://gyazo.com/0e81c863d506f72642af555c9e2fbf66

https://gyazo.com/a0a6b5eccc02f265ce91ec62ea592160

ポート番号(トランスポート層

  • データリンク→macアドレスは同一のデータリンクに接続されたコンピュータを識別するためのもの
  • IP→IPアドレスTCP/IPネットワーク上に接続されているホストやルーターを識別するためのもの
  • トランスポート→ポート番号は同一のコンピュータ内で通信を行なっているプログラムを識別するためのもの 送信元IPアドレス・宛先IPアドレスプロトコル番号・送信元ポート番号・宛先ポート番号 で通信が識別される

ポート番号の決め方 - 標準→ウェルノウンポート番号(サーバー側)1024~49151 - ダイナミック→クライアントのOSが決める(クライアント側)複数のプラウザを開いたときとか

  • ポート番号は使用されるトランスポートプロトコルごとに決定される
  • ウェルノウンポート番号はトランスポートプロトコルに関係なく同じ番号が同じアプリケーションに割り当てられる

https://gyazo.com/84b57e0b7cadfb6a486cb11ceb3f1a2d

遠隔ログイン(5,6,7)

遠隔ログインはTSSのような環境を実現するアプリケーション。メインフレームと端末の関係をコンピュータネットワークに応用 - telnet:tcpのコネクションを一つ利用、この通信路を通して、相手のコンピュータでコマンドが実行される。ルーターや高機能スイッチなどのネットワーク機器にログインしてその機器の設定を行うときによく使われる。自分のログイン名とパスワードがその機器に登録されている必要がある。

https://gyazo.com/c5d8c82ebd5cd9678be2d21b31881f96

  • ssh:通信内容が暗号化された遠隔ログインシステム

https://gyazo.com/d24623338ff67443d14e9063b5fc4387

ftp - コンピュータ間でファイルを転送するときに使われるプロトコル。相手先コンピュータにログインする必要がある。 (インターネット上にある誰でもログインできるanonymous ftpサーバー) 二つのTCPコネクションを利用 - 制御用(ログイン、転送するファイル名、転送の方法)ポート番号21 - データの転送用 ポート番号20 要求コマンドにASCII文字列が使われる

www(5,6,7)

  • wwwは、インターネット上のハイパーテキスト形式で参照できる情報提供システム
  • wwwの情報を画面に表示するクライアントソフトウェアを webブラウザと呼ぶ

  • 情報へのアクセス手段と位置の定義 URI

  • 情報の表現フォーマットの定義 HTML
  • 情報の転送などの操作の定義 HTTP
  • ホスト名 ドメイン名やIPアドレス
  • ポート番号 トランスポート番号

    $ telnet サーバー名・もしくはアドレス 80

  • CGIはwebサーバーが外部プログラムを呼び出すサーバーサイドアプリケーションの仕組み

  • RSSはwebサイトの更新内容に関する要約情報をやり取りするためのデータフォーマット(ページの要約を表示、検索の精度が高くなる)

暗号化技術の基礎

  • 暗号化ではある値を用意して、その値を使って、元のデータ(平文)に対して、一定のアルゴリズムによる変換を行い、暗号化データを作る。 逆に暗号化されたデータを元に戻すことを復号という。

  • 暗号化と復号に同じ鍵を使うのが、共通鍵暗号方式

  • 暗号化と復号化に一対の別々の鍵(公開鍵と秘密鍵)を使うのが公開鍵暗号形式 二つを組み合わせる ある情報(パスワード)、あるもの(電話番号)、ある特徴(瞳孔)を持っていることによる認証