0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

TCP/IPを使ったネットワーク

Last updated at Posted at 2022-08-14

TCP/IPは一つのプロトコルではない。
2つのプロトコルが合わさったものだ。
TCPは正しくデータが送られたことを保証する仕組み
IPは複数のネットワークを繋いで、その上をパケットが流れる仕組み
このTCP/IPを企業内LANなどに転生したネットワークのことをイントラネットと言う。

TCP/IPの中核プロトコル

TCP/IPネットワークを構成する上で中核となるプロトコル

IP(Internet Protocol)

コネクションレス型の通信

事前に送信相手に接続確認をとることなく一方的にパケットを送りつける。
通信品質の保証についてはTCPやUDPなどの上位層に任せる。

IPアドレスと言う番号を割り当てて管理する。
それを基にネットワークからネットワークへとパケットを運んで相手に送り届ける。

TCP(Transmission Control Protocol)

コネクション型のプロトコル

通信相手とのコネクションを確立してから、データの送受信を行う。
パケットの順序や送信エラー時の再送などを制御して、送受信するデータの信頼性を保証する

なかなか送信先から再送されない場合待っている時間が勿体無いのでとりあえず連続でデータをパケットを送る

気づき

データの信頼性とは?

信頼性があったのでこれを載せる。
一定の条件下で安定して期待された役割を果たすことができる能力。
出典 https://e-words.jp/w/%E4%BF%A1%E9%A0%BC%E6%80%A7.html

役割を果たすか。
送信する役割を果たすか。確かに送信先が再送信しているから。
送信されていることを確かめることができる。

UDP(User Dategram Protocol)

コネクションレス型

事前に送信相手に接続確認をとることなく一方的にパケットを送りつける。
パケットの再送制御は一切しない。
しかし再送制御をしない分高速

信頼性よりもリアルタイム性を重視する用途には適している。

気づき UDPとIPの違いはなんだろう?

IPアドレスはネットワークの住所

TCP/IPのネットワークに繋がれているコンピュータやネットワーク機器は、IPアドレスで管理されている。

特徴

  • 重複は無く、一意の番号
  • 32ビットの数値で表され、それを8ビットずつ区切り10進数で表現する。

グローバルIPアドレスとプライベートIPアドレス

IPアドレスには2種類ある。

グローバルIPアドレス(またはグローバルアドレス)

  • インターネット世界で使用するIPアドレス
  • 世界中で一意
  • NIC(Network Information Center)と言う非営利機関で一意性を保証するため管理されている。

プライベートIPアドレス(またはプライベートアドレス)

  • 企業内などLANの中で使えるIPアドレス
  • LAN内で一意であれば良い。
  • 自由に割り当てできる。

気づき

  • プライベートIPアドレスはグローバルIPアドレスよりも簡単に割り当てができそうだ。
  • 範囲が限定されているんだな。

IPアドレスは「ネットワーク部」と「ホスト部」でできている。

IPアドレスは2つ要素から成り立っている。

  • ネットワークごとに分かれるネットワークアドレス部
  • そのネットワーク内でコンピュータを識別するホストアドレス部


p374のIPアドレスの最後の8びっとがホストアドレス部になる。
これでコンピュータを識別するコンピュータを識別する

自分のIPアドレスを探してみよう。

多分MACの場合
リンゴマーク⇨システム環境設定⇨Wi-Fiの詳細⇨TCP/IP
で確認できる。

IPv4アドレスとは?

IPv4アドレスとは、インターネットなどで用いられるIP(Internet Protocol)のバージョン4(IPv4)における機器の識別番号(アドレス)。32ビットの値で、約42億台の機器を識別することができる。現在インターネットで最も一般的に用いられている。
出典 https://e-words.jp/w/IPv4%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9.html

IPv6アドレスとは?

IPv6アドレスとは、インターネットなどで用いられるIP(Internet Protocl)のバージョン6(IPv6)における機器の識別番号(アドレス)。128ビットの値で、約340澗(1000京の3400京倍)台の機器を識別することができる
出典 https://e-words.jp/w/IPv6%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9.html

IPアドレスのクラス

使用するネットワークの規模によってクラスが分けられる。

クラスA

  • ネットワーク部は8ビット、ホストアドレス部は24ビット
  • 割り当て可能なホスト数は16,777,214台

クラスB

  • ネットワーク部は16ビット、ホストアドレス部は16ビット
  • 割り当て可能なホスト数は65,634台

クラスC

  • ネットワーク部は24ビット、ホストアドレス部は8ビット
  • 割り当て可能なホスト数は254台

注意

ホストアドレス部が全て0、全て1となるアドレスは、それぞれ「ネットワークアドレス(全て0)」、「ブロードキャストアドレス(全て1)」と言う意味で予約され割り当てられない

クラスレス

ネットワーク部を固定長とせずに、クラスに依存せずにサブネットマスクによって長さを識別する方式。CIDR(Classless Inter-Domain Routing)とも言う。各組織に割り当てるグローバルIPアドレスを最低限にでき、アドレス不足に対応できる。

ネットワークアドレスとは?

ネットワークアドレスは、ホスト部の2進数のビットが全て 0 のアドレスです。ネットワークアドレスは ネットワーク自体を指すアドレスとして使用されます。
出典 https://www.infraexpert.com/study/ip4.html

ブロードキャストアドレスとは?

ブロードキャストアドレスはホスト部のビットが全て 1 のアドレスです。ブロードキャストアドレスは
あるセグメントに接続されている全てのホストにパケットを送信するためのアドレスとして使用されます。
出典 https://www.infraexpert.com/study/ip4.html

ループバックアドレスとは?

ループバックアドレスですが、ネットワークアドレスとしても使用禁止とされているネットワークの127.0.0.0/8のネットワークで、127.0.0.1のアドレスのことをループバックアドレスと呼んでいます。
ループバックアドレスは、自分自身を示す仮想的なIPアドレスです。例えば、パソコン上のコマンドプロンプトで ping 127.0.0.1 と実行し応答があれば、TCP/IPが正常に動作している事を意味します。

気づき

またループバックアドレスを勉強する機会があれば勉強しよう。
ネットワークアドレスとブロードキャストアドレスの意味を知ることができてよかった。

ブロードキャスト

同一のネットワーク内の全てのホストに対して、一切の同じデータを送信すること。
同一ネットワークなので第三層のネットワーク間を中継するルータを超えて流れません

特定の一台のみを送信することをユニキャストと言う。
不特定多数ではなく決められた範囲内の複数キャストに送信する場合はマルチキャストと言う。

気づき

ブロードキャストとは同じネットワーク上のコンピュータなどに送信することなのか。

サブネットマスクでネットワークを分割する

一番最小のIPアドレスのクラスCでも256個のホストを扱うことができる。
しかしホスト数が多すぎるかつより分割したい場合は
サブネットマスクを用いる。

サブネットマスクとは?

ネットワークアドレス部とホストアドレス部とみなすか指定するビット列のこと。

どんなものか?

255.255.255.0このようになっている。
これを10進数で表すと11111111.11111111.11111111.00000000
ネットワークアドレス部とホストアドレス部が1と0で分けられている。

気づき

  • サブネットマスクのビット列が増えていけばその分分割できるネットワークの量も増えるのかな。
  • サブネットマスクの意味を知れてよかった。前から気になっていた。

MACアドレスとIPアドレスは何が違うの?

ネットワーク間を渡ってパケット渡す時TCP/IPのプロトコルに則りOSI参照モデルを通らなければならない。
この場合、第1層から第三層までを通る。
MACアドレスはデータリンク層(第2層)
IPアドレスはネットワーク層(第3層)
つまり
MACアドレスはデータリンク層までしか使うことはできない。
ネットワーク間を渡るためにはIPアドレスが必要になる。
しかし送る場合もそうだがパケットを受け取る場合もデータリンク層を通らなければならない。
その時にまたMACアドレスは必要になる。
だから
送り先の中継所(ルータ、ハブ)も受け取る側もMACアドレスを使って受渡される。

自動で宛先までバケツリレーしてくれるのか。

DHCPは自動設定する仕組み

LANに繋ぐコンピュータが多くなるとIPアドレスが重複する可能性が出てくる。
そこで登場するのがDHCP(Dynamic Host Configuration Protocol)だ。

DHCPの特徴

  • IPアドレスの自動割り当て
  • ネットワークの設定作業を自動化

以上の特徴により管理の手間が省ける、人為的なミスを防ぐ。

プロトコルを支えるサーバー

DHCP(Dynamic Host Configuration Protocol)というプロトコル(通信手順)を用いて、管理者があらかじめ設定したIPアドレスやDNSサーバのアドレスなどの情報を端末に自動的に送信する。DHCPサーバにアクセスして設定情報を入手する端末やソフトウェアDHCPクライアントという。
出典 https://e-words.jp/w/DHCP%E3%82%B5%E3%83%BC%E3%83%90.html

気づき

DHCPがあるおかげで知らないLAN環境でインターネットをすることができるのか。
ありがたい。感謝!

NATとIPマスカレード

IPアドレスにはプライベートIPアドレスとグローバルIPアドレスがある
コンピュータの中にはプライベートIPアドレスしか持たないものもある。
そんな時に
NATIPマスカレードと言うアドレス変換技術だ。
つまりプライベートIPアドレスからグローバルIPアドレスを繋げてくれる。

NAT(Network Address Translation)

グローバルIPアドレスとプライベートIPアドレスとを1対1で結びつける。
お互いに変換をおこなう。
同時にインターネット接続できるのは、グローバルIPアドレスの個数分だけ。

NATでは一般的にIPパケットのヘッダ内にある送信元IPアドレスを変換します。企業ネットワークでは
 送信元IPアドレスがプライベートIPアドレスなので、NATによってグローバルIPアドレスに変換します。

 NATでは、企業内LANのクライアントPCに割り当てられたIPアドレスを変換してインターネット通信が
 行われることから、セキュリティが向上する利点がある一方、アプリケーションによりNAT変換による
 通信では正常に動作しない問題点もあります。
出典 https://www.infraexpert.com/study/ip10.html

NATの種類

NATは「動的NAT」「動的NAPT」「静的NAT」「静的NAPT」の4種類に分けられます。

「動的NAT」

NATプールと言う変換後アドレスリストを使用し、送信元IPアドレスを未使用アドレスに変換することです。NATプールを使い切った後は、クライアントは接続できなくなります。

NATプール(確定はしていません)

動的NATでISPから割り当てられたアドレスプール内のグローバルIPアドレスを使用して,複数の社内クライアントからInternetの外部HTTPサーバにアクセスする例を示します。
出典 https://www.alaxala.com/jp/techinfo/archive/manual/AX2000R/HTML/CFGUIDE/0124.HTM

気づき

出典元の図でイメージできると思う。
変換できるグローバルIPアドレスを溜め込むものかそれがなくなると変換できなくなるのか。

「動的NAPT」

送信元IPアドレスを、グローバルIPアドレスに変換することです。送信元のポート番号を、使用していないポート番号に変換します。大企業や一般家庭でも使う一般的な方法です。

「静的NAT」

IPアドレス1つを、別のIPアドレス1つに変えています。具体的にはグローバルIPをプライベートIPに変換することです。

「静的NAPT」

IPアドレス1つに対して、別のIPアドレスとポート番号に変えられます。ポート番号を指定する必要があり、番号に対して1対1で変換する決まりです。

出典 https://www.freshvoice.net/knowledge/word/6881/

IPマスカレード(NAPT)

グローバルIPアドレスに複数のプライベートIPアドレスを結びつけて、1対複数の変換を行う。
IPアドレスの変換時にポート番号も合わせて書き換える
一つのグローバルIPアドレスでも複数のコンピュータが同時にインターネット接続。

気づき

もうちょっと勉強が必要だ。
時間がないからこの辺で

ドメイン名とDNS

IPアドレスは2進数や10進数で表現されていても覚えられなくもないが人間には覚えづらい。
なのでIPアドレスを文字に置き換えたものをドメイン名と言う。
ドメイン名はコンピュータを表すことができる。

ドメイン名を訳してみる

www.gihyo.co.jp

  • www コンピュータの名前
  • gihyo 組織の名前
  • co 組織の種類
  • jp 国の名前

日本の企業の技術評論社のwwwと言うコンピュータとなる。

それぞれのドメインの名前

ドメイン名を構成する最も右側のラベルを「トップレベルドメイン」と呼び、 以下左へ順に「第2レベルドメイン」「第3レベルドメイン」、……と呼びます。

jpがトップレベルドメイン
coが第2レベルドメイン
gihyoが第3レベルドメイン
.
.
.
となる。
出典 https://www.nic.ad.jp/ja/dom/system.html

DNS

IPアドレスとドメイン名を関連づけを管理している組織をDNS(Domain Name System)と言う。
DNSサーバーを使ってIPアドレスでドメイン名を問い合わせることができる。
逆も然り

DNSの構造

下の図はDNSの構造を表したもので、ドメイン名空間と呼ばれます。 これは、木をさかさまにした形となっており、 一番上の「ルート(root)」と呼ばれる部分(「“ ”」で表現される)を頂点にして、 下の階層へと空間が広がっていきます。 ルートの下には「com」「net」「jp」などのトップレベルドメインが配置され、 そのさらに下に第2レベルドメイン、 第3レベルドメイン……と続きます。

あるドメインの下の階層に複数のドメインを新設する場合は、 必ず異なるラベルをつけるようにしなければなりません。 これによって、ドメイン名空間を構成するすべてのドメイン名は、 必ず一意性が保証されるようになっています。

それぞれの階層の各ドメインには「ネームサーバー」と呼ばれるデータベース機能が配置され、 その空間にある名前の管理を行っています。 ネームサーバーは、 基本的にはその配下にあるドメイン名とIPアドレスの対応関係を管理するものですが、 そのさらに下の階層のドメイン(サブドメイン)を管理しているネームサーバーの位置を示す役割も担っています。

ドメイン名空間の最上位にあるネームサーバーは「ルートサーバー」と呼ばれます。 このルートサーバーが管理している「ルートゾーン」には、 「jp」や「com」といったトップレベルドメインのネームサーバー(のホスト名とIPアドレス)が記述されており、 ルートサーバーはそれらのネームサーバーがどこに位置しているのかを把握しているというわけです。

出典 https://www.nic.ad.jp/ja/dom/system.html
図を見るとイメージしやすくなる。
ルートサーバは世界各地に存在する。詳しくは出典元の一番下

DNSの誕生理由

現在のインターネットの前身であるARPANETでは、 「HOSTS.TXT」(JPNIC Newsletter No.22のインターネット10分講座を参照 )というテキストファイルを使用して名前の管理を一元的に行っていました。 しかし、ARPANETの規模拡大とともに、 HOSTS.TXTによる集中管理は破綻をきたすことになります。 HOSTS.TXTの更新が週1、2回であったということもあり、 ローカルサイトのホスト情報が変わっても、 それがHOSTS.TXTに反映されるまでに時間がかかるという問題がありました。 また、ネットワークに接続するホスト数の増加に伴い、 HOSTS.TXTが巨大なファイルとなり、 これをダウンロードするトラフィックがネットワークの大きな負荷となってしまうという問題も発生しました。

そこで、 こうした問題を解決するための新たな仕組みとしてDNSが考案されました。 DNSは、上の図(出典元の図)に示したような階層構造を持つことによって、 データを分散管理することが可能になっています。 これにより、 DNSではローカルに管理されているネームサーバーでホスト情報を更新することができるようになり、 その更新結果がネットワーク全体に反映される仕組みとなっています。
出典 https://www.nic.ad.jp/ja/dom/system.html

気づき

ネットワークにつなぐものが多くなっていくと分散させて管理するのか。

問題を解いた時の気づき

IPアドレスとサブネットマスクからネットワークアドレスの求め方

IPアドレスとネットマスクのANDを計算すると、ネットワークアドレスを得ることができるのです。
2進数で表されたサブネットマスクを見てみると11111111.11111111.11111111.00000000になっている。

ANDで計算するとIPアドレスが1の時は1を0の時は0を返してくれる。
そのためネットワークアドレス部を取り出すことができる。

ホストアドレス部を求めるときもサブネットマスクの1と0を逆にすれば求める音ができる。
出典 https://wa3.i-3-i.info/word11975.html

ホストアドレスの求め方

11000000.10101000.00000000.00000010の場合はホスト部が````00000010```なので
値は2になる。

ブロードキャストアドレスの求め方

求めたネットワークアドレスのホストアドレス部分を「全て1」に設定した値がブロードキャスアドレスとなります。
192.168.1がネットワークアドレス部の場合、192.168.1.255になる。
出典 https://ict-skillup.com/network/506/#toc9

出典

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?