コンピュータネットワーク覚え書き④

 こんばんは、インターネットの技術第4回です。う~ん、この単位はとにかくアルファベットの略語が多いよね。国際経済の講義かっていうくらい。そしてネコも杓子もプロトコル。そうは思わんかね??

参考文献:中岡快二郎著『インターネット技術入門』

ARPプロトコル
アドレス・リソリューション・プロトコル。
相手のIPアドレスからMACアドレスを知るための仕組み。
通常、コンピュータは自分のMACアドレスは認識しているが、情報を届けたい相手のMACアドレスは知らないし、全ての相手先のMACアドレスを記憶するのは現実的ではない。
ARPは、宛先IPアドレスを手がかりに、そのパケットを次に受け取るべきホストのMACアドレスを獲得するプロトコルである。ちなみに同一LAN上に宛先IPアドレスを持つホストが存在せず、ルータを経由する場合は、ルータのMACアドレスを獲得する。
ARPリクエストはブロードキャスト(同じネットワークアドレスを持つLANに所属する全てのホストに送信すること)として送信されるため、リクエストが届く範囲は、同じネットワークに接続されているホストのみに限られる。つまりARPリクエストパケットはルータを通過できない。

ARPの手順
ホストA(IPアドレス:192.168.10.15)がホストC(IPアドレス:192.168.10.17)にデータを届ける場合、ホストAはホストCのIPアドレスは知っているが、ホストCのMACアドレスは知らない。
そのためホストAは、ホストCのMACアドレスを得るためにARPリクエストパケットをブロードキャストする。リクエストパケットには、宛先IPアドレスには、LANのブロードキャストアドレスが入る。
このパケットの中には、ホストAのIPアドレスや、データを届けたいホストCのIPアドレスも入っている。ここでホストAが送るイーサネットフレームの宛先MACアドレスフィールドには、ブロードキャスト用の特殊なアドレス(ff:ff:ff:ff:ff:ff)が入る。
同一ネットワーク上の全てのホストは、ARPリクエストパケットを受信し、自分のIPアドレスが192.168.10.17と一致するかを確認する。
一致しないホストBとDはリクエストパケットを破棄し、返事をしない。
一致したホストCはARPレスポンスパケットをホストAに返送する。この中には、ホストCのIPアドレスとMACアドレスが入っており、ホストAはホストCのMACアドレスを知ることができる。
ホストAは毎回問い合わせをしなくて済むようにホストCのIPアドレスとMACアドレスをメモリに保存する(ARPキャッシュ)。接続状況が変わった場合でも正しく通信できるようにするため、このキャッシュは一定時間経つと消去される。

IPv4(インターネット・プロトコル・バージョン4)
インターネット・プロトコルとは、パケットの配送や準備をするプロトコルで、OSI参照モデルではネットワーク層に当たる。現在主流のバージョンがこの4。
アドレスは32ビットで42億通りのアドレスを作ることができる・・・が現在はそれを凌ぐアドレスが必要となっている。
データの先頭に置かれる補足データのことをヘッダと言うが、このヘッダのフォーマット(形式)は以下のように決まっている。

①バージョン(4ビット)
IPv4ではバージョンは4なので0100となる。

②ヘッダ長(4ビット)
IPヘッダの長さを32ビットなら1として表す。この値によって、パケットの中の本データの先頭位置(=IPヘッダの終わり)を知ることができる。

③サービスタイプ(8ビット)
送信しているIPパケットのサービス品質を表す。最大限の信頼性や、最低限の遅延を要求することになるが、ほとんどのネットワークはこの要求を無視し、現在のインターネットでは形骸化している。

④パケット長(16ビット)
IPヘッダとデータを合わせたパケット全体の長さを表す。最大サイズは65535バイト。

⑤識別子(16ビット)
あたりまえだが分割されたデータのIPヘッド内の識別子は全て同じものが入る。

⑥フラグ(3ビット)
パケットの分割(フラグメンテーション)に関する情報が入る。そのフラグメント(断片)がデータの途中のものか最後のものかを判断する。

⑦フラグメントオフセット(13ビット)
フラグメントが元データのどこに位置しているかを示す。0~8192までの値がシーケンス番号として格納される。

⑧生存時間TTL(8ビット)
タイム・トゥ・ライブ。
本来は、そのパケットがネットワークに存在してよい時間を秒単位で示したものであるが、実際には何個のルータを経由してよいかという意味になり、整数値で表す。
ルータを通過する度に、この整数値は1つずつ減っていき0になったらパケットは破棄される。

⑨プロトコル(8ビット)
上位層のプロトコルが何かを示す。ICMP(エラーや診断を担当)というプロトコルなら1、TCPでは6、UDPでは17が入る。

⑩ヘッダチェックサム(16ビット)
IPヘッダが送信途中で壊れてないかどうかを検出するために使う。

⑪送信元IPアドレス(32ビット)

⑫送信先IPアドレス(32ビット)

⑬オプション(可変長の長さ)
通常は使用しない。
例えば、任意の順番でIPアドレスを巡らせたい場合に用いるソースルーティングなど。

⑭パディング(32ビット-オプションのビット長)
オプションが必要な場合はIPヘッダが32ビットの整数倍になるように調整する。

IPv6(インターネット・プロトコル・バージョン6)
アドレスは128ビットで天文学的な数のアドレスを作ることができる。
バージョン4の問題点をすべて解決しているが、バージョン4が広く普及しているため、バージョン6へすぐには移行できない状況になっている。
ヘッダフォーマットは以下の通り。

①バージョン(4ビット)
6を示す二進数の0110が入る。

②パケット長(16ビット)
IPv4と異なり、IPヘッダの長さを除いたサイズが入る。最大サイズは65535バイト。

③次のヘッダ(8ビット)
ヘッダに続くデータのプロトコルを指定する。

④ホップリミット(8ビット)
IPv4でいう生存時間に当たる。

⑤送信元IPアドレス(128ビット)

⑥送信先IPアドレス(128ビット)

⑦拡張ヘッダ(可変長)
中継点オプション、ルーティング、フラグメント、宛先オプション、認証、暗号ペイロードの6種類がある。

TCPプロトコル
IPプロトコルの上位プロトコルで、OSI参照モデルではトランスポート層に該当する。
TCPは信頼性のあるコネクション型プロトコルで、送受信データの脱落や重複、誤りがない、使いやすい通信路を提供する。
TCPとIPの両プロトコルは60年代後半、アメリカ国防総省が中心となってパケット技術(データを決められた長さに区切り、それぞれの細切れデータ=パケットに宛先と自分のアドレスをつけて回線に送り出す技術)を利用したデータ伝送の研究をおこなう際に開発された。

ポート番号
IPアドレスは宛先のコンピュータを指定するだけであるため、インターネット通信においては、それぞれのコンピュータ内で動作しているプログラムを指定するための番号が必要になる。それがポート番号で、様々なアプリケーションプログラムを区別する。
ポート番号は16ビットで構成され、0~65535までの数値である。
このうち、0~1023まではインターネット上で利用するアプリケーション用(ウェルノウンポート)として予約されている。例えばHTTPのポート番号は80で全世界共通である。
なお、サーバ側とクライアント側では用いるポート番号が異なり、1023以降はクライアントのアプリケーション識別に使用される。

TCPセグメント
TCPでは、信頼性のある通信を実現するために、上位層から受け取ったデータを決められた長さに分割し、それらにTCPヘッダを付け加える。
この分割データとTCPヘッダを合わせたものをTCPセグメントという。
TCPセグメントは以下のフィールドで構成される。

①送信元ポート番号(16ビット)

②送信先ポート番号(16ビット)
上位層のアプリケーションを判断するための、各アプリに対応したポート番号を指定する。

③シーケンス番号(32ビット)
分割されたTCPセグメントが、送信データ全体のどの部分のものかを指定する。
これにより、分割されて送られてきたデータを順番通りに受信するストリーム伝送が実現される。

④確認応答番号(32ビット)
受信側がACKセグメント(正常に受信したことを送信側に知らせるセグメント)を返すとき、送信側が次に送るべきデータのシーケンス番号が入る。これにより、送信側は受信側が誤りなくデータを受信したことが確認でき、次のデータを送信しても良いことがわかる。

⑤コードビット(6ビット)
1~6の各ビットはTCP通信の各種制御を特定するためのフラグとして使用される。
フラグは以下の通り。
・URG(アージェント・フラグ)
このビットが1の時は緊急に処理すべきデータが含まれている。
・ACK(アクノウレッジ・フラグ)
このビットが1の時は、確認応答番号のフィールドが有効。
・PSH(プッシュ・フラグ)
このビットが1の時は、受信したデータをすぐに上位のアプリケーションに渡す。
・RST(リセット・フラグ)
このビットが1の時は、コネクションが強制的に切断される。
・SYN(シンクロナイズ・フラグ)
このビットが1の時は、コネクションの確立を要求する。
・FIN(フィン・フラグ)
このビットが1の時は、データの送信は終了。

⑥ウィンドウサイズ(16ビット)
受信側が現在受信可能なデータサイズを送信して知らせる。

⑦チェックサム(16ビット)
IPアドレス、ポート番号、プロトコルに誤りがないかを検査する。

⑧緊急ポインタ(16ビット)
URGが1の時に有効。緊急に処理するデータの場所を示す。

WWW
ワールド・ワイド・ウェブ。
インターネット上で不特定多数の人々が比較的簡単にマルチメディア情報を発信・受信することを可能にしたシステム。以下の3つの実現要素がある。
①URL
ホームページアドレスを一意の名前で指定する。
②HTTP
HTMLファイルの画像データをホスト間で移送するためのプロトコル。
③HTML
Webページを記述するための規格。

URL
ユニフォーム・レスポンス・ロケ―ター。サイトの住所の様なもの。
みたいWebページがネット上のどのサーバのどこに格納されているかを示す。
最初のhttpは、ダウンロードする際のアクセスプロトコル
次のwww.○○.ac.jpは、サイトを管理するウェブサーバのドメイン名
次の80は、ポート番号で標準ポート番号の80だったら省略可能
最後のindex.htmlは、ウェブサーバ内のファイル名である。

HTTPプロトコル
ウェブサーバとウェブブラウザ間でHTMLのテキストファイルや、画像や音声のデータファイルなどを交換するためのプロトコル。
また、HTTPプロトコルの処理をするウェブサーバとブラウザをHTTPサーバ、HTTPクライアントという。
HTTPプロトコルの特徴は、命令は単純で少ない。通信の負荷が少ない。マルチメディアの転送が可能であることである。
通信は「ブラウザからサーバへのリクエストメッセージ」と「サーバからブラウザへのレスポンスメッセージ」の2つのHTTPメッセージだけで行われる。
HTTPメッセージは、ヘッダ部とボディ部のふたつで構成されるシンプルなもので、ヘッダ部はテキスト文字で構成され要求行には「GET」「POST」などの各種メソッドが入る。
ボディ部には転送されるデータが入る。
ただし単にデータを取得するときのリクエストメッセージ、エラーを返す場合のレスポンスメッセージのボディには、何も含まれないこともある。
なおHTTP通信ではTCPプロトコルが使われている。

FTP
異なるコンピュータ間でのファイル転送サービスを提供する。
ファイル転送はリモートホストにあるファイルを自分のコンピュータに持ってきたり、その逆を行ったりすることである。
通常、FTPサーバは許可を受けたユーザしかアクセスできないが、anonymousFTPサーバは誰でもアクセスできる。
FTPは、その目的から信頼性のあるコネクションが要求されるのでTCPプロトコルが使われ、ポート番号は20と21を使う。

DNSサーバ
ドメイン・ネーム・システムを管理するコンピュータのこと。
これを運用するためには専用のサーバプログラム(インターネットではBINDというソフトが一般的)が必要である。
サーバは、ドメイン中のホスト名とIPアドレスの情報、またはほかのDNSサーバがどこに存在するかといった情報を持っている。
これによりホスト名とIPアドレスを対応づけることができ、自分の管轄外のドメイン名であったときは、他のDNSサーバに問い合わせる。なおDNSサーバは組織の中で最低1台以上稼働していなければならない。

リゾルバ
クライアントがDNSサーバに名前を照会するためのソフト。
リゾルバはDNSサーバのIPアドレスを最低1つは知っている必要がある。
具体的には、ユーザがブラウザに階層的なドメインを持つURL(例:www.do-johodai.ac.jp)を入力すると、リゾルバは所属する組織のネームサーバDNSに問い合わせる。DNSサーバはそのIPアドレスを知っていれば返事をするが、知らなければルートネームサーバに問い合わせる。
ルートサーバはjpドメインを管理するネームサーバを知っているから、それをDNSサーバに教える。次にDNSサーバはjpドメインを管理するネームサーバに問い合わせると、ac.jpドメインを管理するネームサーバのIPアドレスを教えてもらえる。
このようにして、組織のネームサーバは最終的にそのURLのIPアドレスを所得すると、クライアントに通知をする。
DNSサーバは問い合わせ結果をテーブルに残しておくことができるので、二回目以降は自分が直接応えて処理の効率を高める。
なおDNSサーバはトランスポート層のプロトコルとしてTCP(サーバ間でのやりとり)とUDP(クライアントとのやりとり)を利用する。
Calendar
<< May 2020 >>
SunMonTueWedThuFriSat
     12
3456789
10111213141516
17181920212223
24252627282930
31
search this site.
tags
archives
recent comment
recent trackback
others
にほんブログ村 科学ブログへ にほんブログ村 科学ブログ 恐竜へ カウンター
admin
  • 管理者ページ
  • 記事を書く
  • ログアウト