サーバー構築 セキュリティ TCP/IP基礎 TIPS 書籍 ブログ

Web全体 サイト内検索

 TCP/IPの基礎知識
TCP/IPとOSI参照モデル
必須:コンピュータの情報単位
IPアドレスとその仕組み
プリフィックス値とサブネットマスク
グローバル/プライベートアドレス
ブロードキャスト/マルチキャストアドレス
 プロトコル別解説編
ARPとRARP/MACアドレス
ポート番号とは?
TCPとUDP/両プロトコルの相違
ICMPとは?
DNSとは/DNSサーバーの仕組み
VPN(PPTP/L2TP)とは
 実践ネットワークコマンド
PINGコマンド/MTU値の調整
TRACERTコマンド
NETSTATコマンド
NSLOOKUPコマンド
ARPコマンド
IPCONFIGコマンド
 各関係組織・団体
JPNIC
Whoisデータベース(VeriSign)
IANA
 




次項の「IPアドレスとその仕組み」で実際にIPアドレスについて説明していくわけですが、IPアドレスを理解するためにはどうしても知っておかなければならないことがあります。それはコンピュータにおける情報の単位進数です。コンピュータは皆さんも知ってのとおり、デジタル信号を処理する機械です。アナログ信号が信号を波の強弱、電圧の強弱として考えるのに対し、デジタル信号は、信号のあるなし、電圧のあるなしという考え方をしています。つまり、「Yes」あるいは、「No」という判断基準しかないために、処理を単純化することができます。そして、電圧のある部分を1、電圧のない部分を0とした場合、0と1という2つの判断基準だけで全てを計算することになるため、2進数での表示と2進数での計算が可能になります。我々、人間の世界では10進数が使われているのに対し、コンピュータの世界では2進数が採用されているわけです。






■2進数とは

では、2進数とは一体、なんなのか?学生時代に勉強しましたよね。ここでは、学生時代に算数をおろそかにした方のために「2進数」の解説をします。かなり重要なことなのできちんと理解してください。2進数とは、わかりやすく言えば、0と1が2回発生するだけで桁が繰り上がる表記法です。これを仮に10進数で考えた場合は0、1と来たら次は当然、2となります。しかし、2進数では0と1の2つの数字しかないために桁が繰り上がってしまい、3番目は「10」となります(以下表参照)。因みに2進数のことを英語では「Binary」(バイナリ)と呼びます。

■16進法と2進法と10進法の対応表

16進法 2進法 10進法
0 0 0
1 1 1
2 10 2
3 11 3
4 100 4
5 101 5
6 110 6
7 111 7
8 1000 8
9 1001 9
A 1010 10
B 1011 11
C 1100 12
D 1101 13
E 1110 14
F 1111 15




■ビット(bit)

ここでようやく登場するのがビット(bit)という単位です。ビットとは、「コンピュータが扱うことのできる情報の単位」を示しており、数値計算の上では「10進数の数値を2進数表記にした時に必要となる桁数」と一致しています。例えば、「6」という数値は、上表をみると、「110」であるため、3ビットの情報によって2進数表記が成立していることになります。同様に、8~15までの数値は4ビット(1000~1111)で表現でき、16~31間での数値は5ビットで表現することができます。これらの10進法と2進法の間には、実は一定の法則が成り立っており、一般に「xビットでは、最大値2のx乗 - 1」までの数値で表現できるようになっています。

具体的には、5ビットの場合は、「2の5乗 - 1」=31となりますので、0~31までの32通りの数値が表現でき、同様に6ビットでは0~63の64通り、7ビットでは0~127の128通り、8ビットでは0~255の256通りとなるわけです。そしてこのビットという単位が8つ集まったものをコンピュータの世界では、Byte(バイト)と呼んでいます。つまり、バイトとは8つのビット列ということになります(以下表参照)。したがって、IPアドレスは32ビット表記なので(詳しくは「IPアドレスとその仕組み」を参照)、2の32乗=4,294,967,296通りの数字の組み合わせが可能であると言えるわけです。

ビット数 ビット数で扱える数値の範囲 ビット数 ビット数で扱える数値の範囲
1ビット 0~1(2通り) 9ビット 0~511(512通り)
2ビット 0~3(4通り) 10ビット 0~1023(1024通り)
3ビット 0~7(8通り) 11ビット 0~2047(2048通り)
4ビット 0~15(16通り) 12ビット 0~4095(4096通り)
5ビット 0~31(32通り) 13ビット 0~8191(8192通り)
6ビット 0~63(64通り) 14ビット 0~16383(16384通り)
7ビット 0~127(128通り) 15ビット 0~32767(32768通り)
8ビット 0~255(256通り) 16ビット 0~65535(65536通り)



■10進数を2進数に変換する(10進数⇔2進数)

では、次に10進数を2進数に変換する方法を説明していきます。算数が嫌いであった人も、ここをしっかりとマスターしておくと、のちのちネットワークに関する事項が理解しやすくなるので、必ず覚えるようにしましょう。とはいってもWindowsに付属の電卓を使用すれば、難なく変換することができるのでその方法も解説していきます。

◎Windows付属の電卓を使用する

さっそく、Windowsに付属する関数電卓を使用して10進数を2進数に変換する方法を解説します。「スタート」→「プログラム」→「アクセサリ」→「電卓」をクリックしてください。

「表示」→「関数電卓」をクリックしてください。




使い方はいたって簡単です。特定の数字を電卓で打ち込んだら「2進」という切り替えチェックボックスをクリックすれば即座に変換されるようになります(例えば「345」を打ち込んでから「2進」チェックボックスをクリックすると「101011001」とはじきだされます)。なお、見ればわかると思いますがこの電卓は8進数と16進数にも対応しています。




◎手計算で10進数⇔2進数を行う

もしも、手元に関数電卓がなかった場合は手作業で行わなくてはなりません。念のため、手計算での変換方法も覚えておきましょう。10進数を2進数に変換するには、一般的には2で割っていって、余りを求める方法がよく利用されています。例えば、10進数での「100」を2進数に変換する場合には、2で割っていってその商が0になるまで計算をして下から順に余りを並べていくと2進数表記をすることができます(下図参照)。

10進→2進変換



2進→10進変換

2進から10進に変換する際には以下のような重みを掛けることで計算を求めます。具体的な例として2進数、「10101」(5ビット)と「110010」(6ビット)の例で考えていきましょう。なお2の0乗は1です(2に限らず全ての数の0乗は1ですよね。青春時代を思い出しましたか?)。





■その他の単位

単位として1バイト=8ビットであることは前述したとおりですが、コンピュータで使う単位には8、16、32、64といった8の倍数が頻繁に出てくるのは、8ビットを単位としているためです。コンピュータの頭脳とも言えるCPU(Central Processing Unit)[中央演算処理装置]の性能を表す名称を、16ビットCPUや32ビットCPUなどと呼びますが、これは一度に処理することのできるデータ量が16ビットであったり、32ビットであったりすることを表しており、数字が大きいほどそれだけ多くのデータを一度に処理することができます。また、画面解像度の640X480、1024X768なども8で割り切れる数字になっています。デスクトップを右クリックして「画面のプロパティ」で「画面の色」の部分を見てみると「256色カラー 8ビット」「High Color 16ビット」「True Color 32ビット」などのようになっています。よく8ビットカラーという言い方をしますが、これは1バイトですから1色につき256階調の表現が可能であることを表しているわけです。

その他にも1バイトの1024倍を1K(キロ)バイト、1Kバイトの1024倍を1M(メガ)バイト、1Mバイトの1024倍を1G(ギガ)バイトと呼んでいます。WindowsOSをインストールしたことがある方なら(リカバリーCDではなく)、ドライブをパーティションごとに区切ったことがあると思います。一般的にはNTFSの最大パーティションサイズは4096Mバイトとなっていますが、その4096Mバイトという数値を、なんて中途半端な値なんだろうと思った方はたくさんいるのではないでしょうか?しかし、上述したように、1Mバイトの1024倍が1Gバイトであることから考ると、「4096(MB) X 1.024 = 4000」という結果から、パーティションの最大サイズはぴったり4Gバイトであることがわかるのです。私がはじめてこのことを知ったときは、なんか胸の支えが取れたような心地よい気分になったのを覚えています。



 

Copyrights©KORO 2002-08 All Rights Reserved.Since 02/08/15 | サイトのプライバシーポリシー