Open7

Frontend Developer

tatatsurutatatsuru

本スクラップについて

エンジニア3年目になり、基礎的にあやふやで覚えている点を学習していく。
Frontend Developerに従って学習し、疑問点や気になる点をまとめていく。

tatatsurutatatsuru

TCP/IP(Transmission Control Protocol/Internet Protocol)

インターネットや企業ネットワークで利用されている通信プロトコル。

tatatsurutatatsuru

帯域幅とビットレート

帯域幅

Bandwidth。
一定の時間内にデータ接続を通過できる情報量の尺度。

ビットレート

bit rate。
1秒間あたりのデータ量のことを指してビットレートと呼ぶ。

wifiのスピードとかでMbpsとか出てくるのがこれ。
170Mbpsであれば1秒間に170万bitを送れる。

tatatsurutatatsuru

bitとバイナリー

bit

Binary Digitの略でコンピューターが扱う最小の情報の単位。
ビットは0または1で表す。

バイナリー

2進数のことを指す。

tatatsurutatatsuru

通信物理層

  1. 電気ケーブル: 電気でバイナリーデータを通信する。物理的距離が遠いと通信不可に。
  2. 光ケーブル: 遠くまでデータを届けることができるが、コストが高い。
  3. ワイヤーレス: 携帯などの無線通信を可能に。ラジオ波で実現。

通信には回線(海底など)が存在しており、その上にISP(インターネットサービスプロバイダー)が回線への接続サービスを提供しているイメージ。

回線などはNECが日本の海底ケーブルなどを提供している。
NTT、KDDI、ソフトバンクなどのISPとして有名。

ネットワークの基盤はこのようにして作られている。

tatatsurutatatsuru

通信全体像

HTTP(HyperText Transfer Protocol)

クライアントとサーバー間で情報をやり取りするためのプロトコル。

IPアドレス

193.192.392.939みたいな数字の羅列。インターネットに接続する機器に割り当てられる識別番号のこと。

DNS

Domain Name Systemといい、ドメイン名とIPアドレスを紐づけて管理するシステムのこと。
www.example.comにアクセスした際、これをIPアドレスに直さないとアクセスしたいサーバーにアクセスできないのでDNSが必要。
→ ここを攻撃されて、IPアドレスの書き換えが起きると違うサイトへ誘導されてしまう。

パケット

大きいバイナリデータを分割して通信する際の一塊をいう。
※パケット(箱)のイメージ。
パケットはデバイス間を毎回違うルートで送られる。ルーターというものが混んでる回線や壊れている回線を避けた道に振り分けてくれる。

TCP

Transmission Control Protocol。
分割したパケットが全て受信できたかどうかを確かめる機構。データの整合性を保つ。

SSL/TLS

インターネット上でデータを暗号化して送受信するプロトコル。
HTTPSのSはSecureのSであり、Sがついていると暗号化して通信できているということになる。
証明書によって、信頼できるサーバーだということを証明し、公開鍵と秘密鍵を使ってデータをセキュアに通信する。
<通信の例>

  1. ユーザーがHTTPSのサイトにアクセス
  2. サーバーが証明書を提示(公開鍵を含む)
  3. ブラウザが証明書の信頼性を確認
  4. セッション鍵(共通鍵)を生成し、サーバーの公開鍵で暗号化して送信
  5. サーバーは秘密鍵でセッション鍵を復号
  6. 以降の通信はセッション鍵で暗号化