Chapter00 OSI参照モデルとは_"前提知識"


筆者が大学の講義で手に入れた情報をクラウド上(note上)に残すために書いています。講義ノートに近いものです。インプットしたので、アウトプットしときたいという目的も含まれている

その道のプロではありません。誤情報が含まれている可能性があります。


はじめに


QiitaにOSI参照モデルまとめというものを書いている記事があった。

今の筆者にとってはわかりやすいまとめだが、初学者にとってはテクニカルワードが多くてよくわからなかった。

インターネットの成り立ちについてゼロからでも理解できるように書いていきたいと思う。

Chapter0では、OSI参照モデルのレイヤーという概念に入っていく前の前段階の説明を先に済ませておく。


前提知識

コンピューターとは情報処理することができる機械という認識でいいと思う。よく聞くパソコン(パーソナルコンピューター)みたいな形だけのものがコンピューターという訳ではない。

コンピューター上では、電気が流れる状態「1」流れていない状態「0」を駆使して、様々な情報を表現する。もうちょっと正確に表現すると、電圧の高低で表現する。電圧が高い状態が「1」、電圧が低い状態が「0」と表現している。

この「1」と「0」で表現された状態をディジタルデータと呼び、これでコンピューターはいろんな計算を処理できる。

ただどうやって「0」「1」だけで自分たちが扱いたい、文字や音、画像、動画などを処理していくのか。


コード化の例

例として文字で考えてみる。

まず、文字のコード化してみる。つまり、全ての文字に番号を割り振るということだ。コンピュータの世界では、基本的には様々なものに番号を割り振って、考えていく。

簡単に言えば、「あ」は0番、「い」は1番、「う」は2番.....

こんな感じで文字を数字で表していく(実際はもっとちゃんと割り振られている。あくまでも上記は例)。

だが、例で言えば「う」の「2番」は「0」「1」だけのコンピューターの世界の数字では表すことができない。ここで二進数の概念を使う。

「あ」は「0000 0000」,「い」は「0000 0001」、「う」は「0000 0010」........

のように二進数で出席番号のように与えていく。こうすれば「0」「1」だけの二つ状態だけでいろんなものが表現できる。こういものを文字に至っては、文字コードと呼ばれている


代表的な文字コードの例

文字は日本語のひらがな以外にもたくさんある、数字、アルファベット、記号、漢字、カタカナ、ドイツ語......

世界では文字コードをどのように考えているのか。世界で共通絵で使われている文字コードというものがある。

​ASCII
(American Standard Code for Information Interchange)
アルファベット、数字、記号、制御文字を利用可能
JISコード
(Japanese Industrial Standards)
ASCIIコード + 半角カナ文字
Shift JISコード
Windows PCで利用
Unicode
全世界の文字を扱えるコード

他にもいろんな文字コードがおそらくあるだろう。

一つだけ例として、JISコードについて
JIS8単位コード表というものがある。

文字を表すために8bitを使用する。
アルファベット、数字、記号のみならず、半角カナ文字も扱うことができる。

例:
「b」は62、「カ」はB6

スクリーンショット 2020-02-03 14.19.24


8bitで表すといっていたのに、なんだかわからなくなったと思うが、これは16進数で表している。

使い方,読み方
表の中から、目的の文字を見つける、そしてそこの上位4ビット、下位4ビットという部分を読み取る。
これで例で言えば、「62」のような16進数二桁の数字ができあがる。
これを二進数に変換すると「1100010」となる。これで二進数の8bitに変換された。

16進数はよく「BAh」「C6h」のように語尾に「h」をつけて、10進数とかと勘違いされないように表現する

つまり、JIS8単位コードで「Hello」と表すには

「H」 = 48h = 1001000
「e」 = 65h = 1100101
「l」 = 6Ch = 1101100
「l」 = 6Ch = 1101100
「o」 = 6Fh = 1101111
「Hello」 = 1001000 1100101 1101100 1101100 1101111

となる。コンピューター内ではこのように処理されているということだ。

N進数の使われ方

2進数も、10進数も、16進数も、その他N進数も全部おんなじ意味を表すことができるのだが、便利上、機能上の問題で使われる場面が異なる。ちょっとだけここにも書いておく。

10進数
「0 1 2 3 4 5 6 7 8 9」という10種類の文字を使って数字を表現する。
多くの人が、日常的に使っている数字は10進数だと思う。
使用環境 : 日常生活

2進数
「0 1」という2種類の文字を使って数字を表現する。
0 1で表すので桁数が多くなりがち。そのため人間的には読みにくい。bit列とも呼ばれる。
使用環境 : コンピュータ

16進数
「0 1 2 3 4 5 6 7 8 9 A B C D E F」という16種類の文字を使って数字を表現する。
小さな桁数で大きな数字を扱うのに向いているため。二進数より人間的には読みやすい。
使用環境 : 文字コード、ネットワーク

2,10,16進数の変換はできた方が、この先理解がしやすいので、あまりわかっていない人は簡単なので学習をオススメする。

下のような便利なツールも世の中にはあるので、仕組みさえ理解した人は計算に使っても便利だろう。


次回から早速インターネット・コンピューターネットワークについて入っていこうと思う。











この記事が気に入ったらサポートをしてみませんか?