DB概要・ネットワーク層関連[基本情報]
知ってるとこが多いので軽く。
DB種類
- 階層型
- ネットワーク型
- RDB: DBMSというDBを扱うための言語で動かす
主なDBMS[ORACLE(オラクル)/PostgreSQL/MySQL/Microsoft...etc]
- 主キー:1行を特定するための項目に定義(基本はID)/複数項目での構成も可能NULL禁止
- 候補キー: テーブルに主キーは1つしかない、一意だけど主キー以外。ユニークキーのことかな?NULL可能
- 外部キー: 参照キー
関係従属
ある項目の値を決定すると他の項目の値も1つに決定されること
X→Yが成立するか表を見てとく。気抜くと間違える
正規化
さっきの関係従属を使う🙂⭐️
STEP1:関数従属を見つける
STEP2:関係従属を切り出す
STEP3:主キーを残す
とりまER図みたいなん作れればOKって感じだった
トランザクションとロールバック
一連の複数処理をまとめたものをトランザクションといい、その処理中にエラーが起きた場合、何もなかった様にエラーが起きるまでの処理も巻き戻すことをロールバックという
すべてが成功した場合に操作を確定することをコミットという
ロック
SQLのデータが複数人で書き換えてエラーが起きないようにロックという機能がある
ロックには種類がある
設定したり外したりできるから自分がいじる前にロック設定して書き換えたら外す~とかが出来てするタイミングとかはプロジェクトや会社で違うから決まりは無い
使うときにロックかけて最後に一気に外す進め方を2相ロックという
障害管理
更新作業があってからすぐに反映されるのではなく、一定期間が経つとストレージに反映されるようになっている。そのポイントをチェックポイントという。
もし何個か更新して、けどチェックポイントに来る前に障害が起きたら、前回のチェックポイント以降の変更は反映されていない。
その時の対処法は2つ👇
ネットワーク
ネットワークをつなぐときそれぞれのルール(プロトコル)が違うと通信できない。
そこでルールを共通化したプロトコルを設定する
プロトコルとは何か
プロトコルは、ネットワーク上の通信を行う際のルールや手順を定義したものです。これにより、異なる種類のデバイスやソフトウェアが同じ基準で通信できるようになります。
ルールが違うとどうなるか
もし異なるデバイスやソフトウェアが互いに異なるプロトコルを使用していると、通信内容が解釈できないため、通信が成立しません。例えるなら、異なる言語を話す人同士が通訳なしで話そうとするようなものです。
共通化されたプロトコルの役割
異なるシステムが円滑に通信できるようにするため、共通のプロトコルを使用することで、通信が可能になります。例えば、インターネットではTCP/IPという共通プロトコルを使用しています。
ネットワークは4層(レイヤーともいう)
テストではTCP/IPとかゆー言葉が出たらこれ!
[補足]🌟OSI基本参照モデル🌟と言われたら
- 第5層/アプリケーション層
第5層/プレゼンテーション層
第5層/セッション層 - 第4層/トランスポート層
- 第3層/ネットワーク層
- 第2層/データリンク層
- 第1層/物理層...POINTワード⇒リピーターハブ・メディアコンバータ
OSIだったらこっちの層で出るかも???だってさ。普通にでるな😒
ネットワークインターフェイス層(第1層・最深)
ネットワークインターフェイス層とは同一ネットワーク内で通信する為のプロトコル(ルール)を管理する層の事!(Wi-Fiとか)
ネットワークインターフェース層で通信を管理するデバイス⇒スイッチングハブ
またはL2スイッチという!OSIでは第2層だかららしい😀ややこしいねん
これは関係あるLANポートだけにデータを流すことが出来る(情報が集まる中央!github!!!)
関係あるLANレポートかどうかはネットワーク機器(パソコン)についているMACアドレスで判断している。
スイッチングハブ以外にも中継装置にはブリッジなどがある😳(あまり出題なし)
🌟インターネット層(第2層・深)[出題頻度高め🔥🔥🐺]
インターネット層は異なるネットワーク同士で通信する為のプロトコルを管理する層の事
必要な機器はルーター🔥とIPアドレス(32ビット)
IPアドレスは「送信元IPアドレス」と「宛先IPアドレス」😳
なぜインターネット層??
ARP(Address Resolution Protocol)はインターネット層に属していますが、動作としてはネットワークインターフェイス層に関連しています。
詳しく解説👇
ARPの役割
ARPはIPアドレス(インターネット層)を基に、そのデバイスのMACアドレス(ネットワークインターフェイス層)を特定するためのプロトコルです。
- IPアドレス:インターネット層で通信相手を特定するためのもの。
- MACアドレス:ネットワークインターフェイス層で直接データを送信するために必要なもの。
[ARPのプロセス]
インターネット層で通信先のIPアドレスが分かった際、ネットワークインターフェイス層でMACアドレスが必要になります。そこでARPが働き、ブロードキャストを使ってMACアドレスを取得します。
つまり
ARP自体はインターネット層のプロトコルですが、MACアドレスというネットワークインターフェイス層の情報を扱うため、「ネットワークインターフェイス層の話」に感じられるのは自然なことです。
また、インターネット層でまずは同一ネットワークか他のネットワークかを判断する必要がある!
理由:ルーターを使うか使わないかが変わるから🙄たしかに、、
同一かそうでないかはIPアドレス
で判断している!😼🌟
最初の3つの要素[ 今回なら 192
168
11
]が同じなら同じネットワークに属している!
例)192.168.10.5なら違う回線
ブロードキャストアドレスとは?
ブロードキャストアドレスは、特定のネットワーク内のすべてのホストにデータを一斉送信するために使用される特別なアドレスです。
このアドレスは、ホスト部がすべて1(2進数で1)になったものとして定義されます。
- PCにブロードキャストアドレスを割り振るのがダメな理由
-
全ホストに送信される特性:
ブロードキャストアドレスは同じネットワーク内のすべてのデバイスにデータを送信する仕組みになっています。
もしこれをPCに割り振ってしまうと、他のPCや機器が誤ってすべての通信をそのPCに送ろうとしてしまい、ネットワークの動作がおかしくなります。 -
予約済みアドレス:
ブロードキャストアドレスは特定の目的(全体送信)のために予約されているので、割り振って使うべきではありません。
割り振ってはいけないみたいな問題が出たらブロードキャスト疑う。
はにゃ???となったので**練習問題を使って自分的解釈メモ**
- [問題]
2台のPCにIPv4アドレスを割り振りたい、サブネットマスクが255.255.255.240のとき両PCのIPv4が同一ネットワークに所属する組み合わせなのは? - [答え]
192.168.1.17と192.168.1.29
[自分的解釈]
サブネットマスク 255.255.255.240
を2進数で表すと 11111111.11111111.11111111.11110000
- 1の部分(ネットワーク部): 同じネットワークかどうかを判断するために使います。
- 0の部分(ホスト部): 各ホスト(PCなど)を区別するために使います。
IPv4アドレスは2進数に変換して比較します。
つわり同じネットワークか判断してるのは11110000
なので最初の4桁(ビット)
だから2進数にして最後の数字の最初の4桁が同じ数字のものを探せばいい!!😀
192.168.1.17
→ 2進数で 11000000.10101000.00000001.00010001
192.168.1.29
→ 2進数で 11000000.10101000.00000001.00011101
17の最初の4ビット: 0001
0001
29の最初の4ビット: 0001
1101
0001
(ネットワーク部)が一致しています。
よって、17と29は同じネットワークに属していると判断できます。
240だから11110000
⇒最初の4桁まではネットワーク部、ブロードキャストはホスト部がオール1だから、選択肢の数字を2進数にして最後の4桁がオール1になる数字を見つければいい🤕なるへそ~
NAPT
IPアドレスは43億個しかない。人口70億人だし、1人がスマホ、PC、会社用PCとか何台も持ってることが普通。足りない⇒IPアドレス枯渇問題という🤕
そこで考えられたのが
-
プライベートIPアドレス:ネットワーク内で重複してはいけないローカルなIPアドレス
逆に言うとネットワークが異なって入れば重複して良い
インターネットには直接アクセスできないため、NATやNAPTを使う必要がある -
グローバルIPアドレス:世界中で重複いてはいけない世界規模のIPアドレス
重複しないようにICANNが管理している -
NAT:プライベートIPアドレスとグローバルIPアドレスを相互変換する機能
基本的に1つのプライベートIPアドレスを1つのグローバルIPアドレスに対応付けます。
- NAPT:NATの進化版で相互変換する際にポート番号を指定してくれる
複数のプライベートIPアドレスを1つのグローバルIPアドレスに変換できる技術。
[ポート番号を使って識別]:
各プライベートIPアドレスに対して異なるポート番号を割り当てることで、1つのグローバルIPアドレスで多数のデバイスを管理可能。
家庭のWi-Fiルーターや企業のネットワークで広く利用されるためNATより一般的に使用されている
トランスポート層
やっと次~~🤕
トランスポート層とは?
・ネットワーク通信で、アプリケーション同士のデータのやり取りを管理する層
・1つ上のアプリケーション層にデータを渡す役割を持つ
・ポート番号を使って、どのアプリケーションにデータを送るかを識別
ポート番号とは?
・アプリケーションを識別するための番号
例えば、Web(HTTP)は 80番、メール(SMTP)は 25番 など
トランスポート層のプロトコル(TCPとUDP)
TCPコネクションを識別するためには「IPアドレス」と「ポート番号」が必要である😯
3ウェイ・ハンドシェイク(TCPの接続確立)
TCP通信では、データを送る前に相手と 「接続」 を確立する。
その際に行われるのが 3ウェイ・ハンドシェイク(3回のやり取り)。
このやり取りが完了すると、TCPの通信が開始できる。
[丸暗記]OSI基本参照モデルのトランスポート層にあるのはゲートウェイ
アプリケーション層
アプリケーション層は、ユーザーが直接利用する通信サービスを提供する層
代表的なプロトコルには DNS、DHCP、HTTP/HTTPS、FTP、SMTP、NTPなどがある。
-
DNS
・ホスト名(例:example.com
)を指定すると、対応するIPアドレスを教えてくれる仕組み
・インターネットではIPアドレスで通信を行うが、人間にとってはドメイン名の方が覚えやすい為、
DNSが必要。
・DNSの情報を管理するサーバーをDNSサーバーという -
DHCP
・IPアドレスやサブネットマスクなどのネットワーク設定を自動で割り当てるプロトコル
・IPアドレスの管理を行うサーバーをDHCPサーバーという
・PCがネットワークに接続すると、DHCPサーバーが自動でIPアドレスを割り当てる -
HTTPとHTTPS
・HTTP:Webページ(HTMLコンテンツ)を送受信するプロトコル(ポート番号:80)
・HTTPS:暗号化されたHTTP(セキュリティ強化版)(ポート番号:443) -
FTP
・ファイルの送受信を行うプロトコルで主にWebサイトのデータ管理などに利用される
・ポート番号:20(データ転送用)、21(制御用)
・2つのモードがある
[アクティブモード]:サーバー側がデータ転送を開始
[パッシブモード]クライアント側がデータ転送を開始(NAT環境向け) -
SMTP
・電子メールの送信・転送に使われるプロトコル
・ポート番号:25(通常)587(認証付き)
・💡メール送信と転送はSMTPだがメールの受信はPOPを使用する
まとめ
送信 → SMTP(ポート 25/587)
受信 → POP3(ポート 110/995)or IMAP(ポート 143/993)
- NTP(time)
・ネットワーク上の機器の時刻を同期するためのプロトコル
無線ネットワーク
身近なものだと👇😯
Wi-Fi(屋内で100m・屋外で500m程度届く無線通信のブランド名)
LTE(スマホに使われている通信で届く距離は5km)
LPWA(ローパワーの略・loT[家電などモノがNWに繋がる仕組み]に使用・届く距離は50kmと広いが遅い)
WPA3(無線LANのセキュリティ規格)
Bluetooth(20mほどなら届く・2.4GHzの周波数を使用)
伝送速度の計算
ネットワークの伝送時間に関する問題は次の式で求めることが出来ます。
伝送時間はデータを伝送するのに掛かる時間、データ量は送るデータの量、回線速度は1秒間に伝送できるデータの量を表します。
まとめ
メガバイト (MB) への変換
1MB = 1,000,000 バイト (10⁶ バイト) (SI単位系)
220,000,000 バイト ÷ 1,000,000 バイト/MB = 220 MB
キロバイト (KB) への変換
1KB = 1,000 バイト (10³ バイト) (SI単位系)
220,000,000 バイト ÷ 1,000 バイト/KB = 220,000 KB
Discussion