1.TCP/IP通信の流れ
1-1.TCP/IP通信の仕組み
・TCP/IPモデルでは、下位層ヘッダに上位層識別子が含まれる。
・TCP/IPデータ通信では、データをカプセル化して送る。
・インターネット層には、IP通信を支えるARPとICMPがある。
・アプリケーション層には、HTTPやTelnetなど、
さまざまなプロトコルがある。
●TCP/IPモデルの代表的なプロトコル図
TCP/IPモデルでは、各層のヘッダに宛先と送信元のアドレス、上位識別子などの情報が入っています。
例えば、HTTP通信の場合、カプセル化により次のようなデータが作成されます。
インターネット層では、IPでのデータ通信を支えるICMP、ARPが定義されています。
・ICMP
→接続確認やエラー通知を行うプロトコル。
・ARP
→IPパケットをカプセル化する際に宛先IPアドレスから宛先MACアドレスに解決するプロトコル。
さらにアプリケーション層には、サービスごとの手続きを決めるさまざまなプロトコルが定義されています。
・HTTP
→WebブラウザからWebサーバへ通信するためのプロトコル
・Telnet
→遠隔サーバへログインするためのプロトコル
1-2.ARP通信
ARPとは・・・
・サブネット内の通信にはMACアドレスが必要。
・ARPは、IPアドレスからMACアドレスを知る為のプロトコル。
・ARPリクエストはブロードキャストで送信する。
・ARPレスポンスはユニキャストで送信する。
・・・・要はIPアドレスからMACアドレスを探すためのもの
1-3.ARP通信の流れ
→図の例は「192.168.1.11」で「192.168.1.14」と通信したいとき。
⑴ARPリクエスト送信
「192.168.1.11」は全員に対し、「『192.168.1.14』の方は手を挙げて下さい。」と聞く。
⑵ARPレスポンス送信
「192.168.1.14」は「192.168.1.11」に対し、「私が『192.168.1.14』です。私のMACアドレスは、『4444.4444.4444』です。」よ答える。
⑶ARPキャッシュに蓄積
コンピューターはIPアドレスとMACアドレスの関連付けがわかると、ARPキャッシュにこの情報を登録し、次回からはスムーズに通信を行います。
●ARPフロー
1-4.サブネット間の通信
・異なるNWにデータを送信する場合、デフォルトゲートウェイにデータを送信する。
・異なるNWにデータを送信する場合、デフォルトゲートウェイのMACアドレス。
・ルータではL2ヘッダの付け替えが行われる。
・ルータもARPリクエストを送信する。
<HTTP通信の概要>
・異なるサブネットへの通信でも、データはカプセル化して送信される。
・コンピュータもルータも、サブネット内の宛先MACアドレスをARPで解決する。
・異なるサブネットへの通信のために、コンピュータはデフォルトゲートウェイを設定する。
・デフォルトゲートウェイルータは、ルーティングケーブルに基づいてデータパケットをルーティングする。
・HTTP通信は以下の手順で行われる。
①HTTPリクエスト:WebブラウザからWebサーバへ、ページデータを要求
②HTTPレスポンス:WebサーバからWebブラウザへ、要求されたページデータを送信
2.ネットワークの実際
2-1.アドレス変換技術
・インターネット接続には、プライベートIPアドレスをグローバルIPアドレスに変換する必要がある。
・NATはプライベートIPアドレスとグローバルIPアドレスを1対1で変換する機能
・IPマスカレードは複数のプライベートIPアドレスと1つのグローバルアドレスを変換する機能
・IPマスカレードはIPアドレスとポート番号の情報を使用する。
インターネット上のリソースはIPアドレスで識別されています。ホームページもIPアドレスで管理されています。しかし、ホームページを閲覧する際、IPアドレスをいしきすることはありません。URLを使うのが一般的です。
DNS(Domain Name Service)という機能によってURLがIPアドレスに変換されているのです。これを名前解決と言います。
ここでひとつ例をあげてみます。
上記では、「PC-A」から「Webサーバ」までは問題なくデータそうしんできますが、「Webサーバ」から「PC-A」へのデータ送信ができません。
なぜなら、「Web」サーバは「PC-A」のプライベートIPアドレスが分からない為です。では、インターネットってどうやって繋がってるんですかね?
■NAT
前項の懸念点を解決するのがこのNAT(Network Address Translation:ネットワークアドレス変換)です。
NATとは何なのでしょうか??
NATとは、ルータから外に出る際にルータ側で保持してくれることです。
こうしてくれることにより、「PC-A」のIP(プライベートアドレス192.168.1.10 = グローバルアドレス1.1.1.1)という情報をルータは持つことになります。その為、「Webサーバ」からのデータは「ルータX /1.1.1.1」に届き、ルータXが「PC-A/192.168.1.10」、まで無事に届けてくれるのです。
■IPマスカレード
NATでインターネットの仕組みは理解して頂けたでしょうか。。
でも、NATだと1つのルータの下に複数のPCが存在した場合、全部同じところにデータが返ってきてしまう。と気づいていますでしょうか?インターネット上のWebサーバはグローバルIPアドレスしか情報を持っていないので、ルータ下のPCは把握できません。NATでいくら各PCのプライベートアドレスを保持していても、ルータは配属しているPCのどれにデータを送ってやれば良いのかわからないのです。
困りましたね。。
ですが!そこで活躍するのがIPマスカレードなのです。
IPマスカレードとは平たく言うとルータがPCの送信元ポート番号の情報を保持する。ということなのです。こうすることにより、インターネット上のWebサーバは送信元のIPアドレスとポート番号を知ることができ、そこに対してデータを送信してくれます。
あとは簡単ですね!データがルータに届いたとき、ルータはWebサーバのデータの宛先ポート番号を見てあげれば、ルータはどのPCにデータを送ってやれば良いだけなのです!簡単でしょ。
以上、5日目の講義でした。
この項目がNW基礎で一番分かり辛く躓きやすい所だと思います。
分からないことはガンガン質問してしっかり理解しましょう!