通信プロトコルの基礎知識
https://gyazo.com/8248038b7b71200a84265e8e95c8cd53
はじめに
ソフトウェアエンジニアを目指すニートのために通信プロトコルの基礎知識を簡潔にまとめました
ネットワークエンジニアやインフラエンジニアを目指すみなさんはこの程度で満足せずもっと頑張って下さい
OSI参照モデルは、エンジニア間で通信ネットワークの話をする際に便利なのでなんとなく使われていますが現代では有名無実化している側面もあります
オススメ書籍
この記事は、現代のネットワーク通信プロトコルに関する基礎的な知識の全体像を可能な限り薄く広くまとめているだけなので、詳しくは以下の本を読んでください
https://gyazo.com/6ce3daea0141716dda58948a9e8fe5b2
https://gyazo.com/6ea8ad54621e4a67126d06227feb848e
https://gyazo.com/12f496786fd309044da5d2a2dcd5aee7
参考文献
https://gyazo.com/e26286d8bd7d43652b0c6e7c19de9210
具体的な通信サービスを提供
例えばファイル・メールの転送、遠隔データベースアクセス
HTTPやFTP等の通信サービス
データの表現方法
例えばEBCDICコードのテキストファイルをASCIIコードのファイルへ変換する
通信プログラム間の通信の開始から終了までの手順
接続が途切れた場合、接続の回復を試みる
ネットワークの端から端までの通信管理
(エラー訂正、再送制御等)
https://gyazo.com/349c39f96fb9ad669dd1aaf4df15533f
ネットワークにおける通信経路の選択(ルーティング)
https://gyazo.com/5e0842565f8d7548e4e6b1ccfb1d0ad6
直接的(隣接的)に接続されている通信機器間の信号の受け渡し。
https://gyazo.com/48148c92f38bab4431534cadad1ec723
物理的な接続。コネクタのピンの数、コネクタ形状の規定等。銅線-光ファイバ間の電気信号の変換等
https://gyazo.com/bd34dfa805a96bb62efb206b799008ea
実際の通信の様子
ネットワーク上で送受信されるデータの塊のこと
小分けにして送受信することで一つのケーブルを通して複数の機器とやりとりができる
https://gyazo.com/a1d4f3d203cec85e8a7f47d7468e98b6
https://gyazo.com/80080b9716806e08f08124abf3e91bb3
各レイヤーの説明
ドメイン名(例 google.com) と IPアドレス (例 172.217.161.78) を紐付けて管理するためのプロトコル ネットワーク構成設定を自動で動的に各デバイスに割り当ててくれるプロトコル
LANにデバイスを接続した時にローカルIPアドレスの割り当てが自動で行われるのはこいつのおかげ Webブラウザ(ChromeとかSafariとか)がWebサーバーと通信するために使っているプロトコル
現在はスマホアプリ等様々なアプリケーションがHTTPで通信している 通信者の認証・通信内容の暗号化のためののプロトコル
音声や動画の配信に使われるプロトコル
音声や動画などのマルチメディア・データをふくむサーバを遠隔操作するためのプロトコル
ネットワークに接続された機器のシェルの遠隔操作のためのプロトコル
ネットワークに接続された機器のシェルの遠隔操作のためのプロトコル
暗号化通信できないプロトコルなので、廃れてきている
パケット交換による遅延時間が変動するネットワーク上のコンピュータシステム間で時刻同期させるための通信プロトコル
1985年以前から運用されており、現在使用されている中で最も古いインターネットプロトコルの1つ
NTPパケットを利用した、簡単な時刻同期プロトコル ファイルを転送するプロトコル
暗号化通信できないプロトコルだったため、ほぼ滅んだ
IP電話で使われてるやつ
インスタントメッセンジャーのためのプロトコル
遠隔地にあるストレージを利用するためのプロトコル
電子メールで使われるプロトコル
電子メールで使われるプロトコル
電子メールで使われるプロトコル
IPネットワーク上のネットワーク機器を監視(モニタリング)・制御するための情報の通信方法を定める通信プロトコル 携帯電話用のメールで使われるプロトコル
通信相手からの応答を待たずにデータを送り続ける
高いリアルタイム性が要求されるシステム(例 オンラインゲーム、IP電話等)で使う
通信相手からの「データが到着しました!」という応答を待ってから次のデータを送る
信頼性が要求されるシステム(例 データ転送)で使う
TCPの遅さを改善するためにGoogleが開発し始めた 2012年に開発開始
ネットワークの上の機器を判断するために使われる番号
パケットの送信者と宛先を示す宛名
32bitの数値
約43億個
https://gyazo.com/91f1f084d06b4a46d7af10453a332fbf
128bitの数値
約340澗個
https://gyazo.com/8bd91f7946b30c37031ff8d29f229882
ネットワーク内の全ての機器にパケットを一斉送信するためのアドレス
ネットワーク内の指定した複数の機器にパケットを一斉送信するためのアドレス
1つのネットワークを論理的に2つ以上のネットワークに分割したもの
サブネットに属するIPアドレスの範囲を柔軟にブロック分けするための機構
例: 192.168.0.0/16 は 192.168.0.0 ~ 192.168.255.255 の、65536(2^16) 個のIPアドレスを含む範囲のアドレスブロックを表している
同じ建物内など限定された範囲の中を繋ぐネットワーク
物理的な接続形態とは別に仮想的にLANセグメントを構成すること
パケットの誤り通知や通信に関する情報の通知に使われる
IPのパケット単位での改竄検知やデータの秘匿機能を提供するためのプロトコル インターネット内の統一された運用ポリシーによって管理されたネットワーク
目的のIPアドレスまでの最短経路を探索するためのプロトコル
最適なルーティングに収束するまでの時間がかかってしまう問題のため、現在ではあまり使われていない
目的のIPアドレスまでの最短経路を探索するためのプロトコル
比較的に処理に計算量がかかるが、RIPにおける問題を解消しており現在よく使われている 2点間通信において広く使われているプロトコル
2点間の接続を確立するためのLCPと上位層のために環境を整えるNCPからなる
コンピュータにネットワーク接続の機能を追加するためのハードウェア
Wi-Fiルータが認識した全てのパケットを受信するモード ネットワーク通信に用いられる有線ケーブルの規格
ネットワーク通信に用いられる無線通信の規格
脆弱性が明らかになったため現在ではあまり使われていない
ネットワーク全体がデジタル化された回線網
かつてはよく使われていたが、高速通信ができないため廃れた
ツイストペアケーブルで通信を行う技術
上りと下りの回線速度が非対称(Asymmetric)なDSL スイッチ
受信されたデータをもとに接続されている各機器に転送するかどうかを判断する機器
判断にしようとするデータがどのレイヤーの情報なのかによって名称が変わったりする
例えば、第2層のデータを利用するものは「L2スイッチ」(Layer 2)と呼ばれる
シリアルポートの規格
廃れた
Ethernetのコネクタの規格
ツイストペアケーブル
電波
光ファイバー
ハブ
ネットワークにおける集線装置
物理層データの修復(リピータ)機能も持つ