Download presentation
Presentation is loading. Please wait.
1
ネットワークの基礎 ・ データ伝送の仕組み Ⓒ 2007 E.Moriya Ver.07.07 2018/11/6
ネットワークの基礎 ・ データ伝送の仕組み 2018/11/6 Inf. Math. III
2
データ伝送(1) OSI参照モデル Open System Interconnection 1984、ISOが発表
様々なネットワークテクノロジーの間の互換性を保証する概念的枠組み AのアプリケーションからBのアプリケーションへのデータ移動の方法を記述 7つの層(伝送作業の機能を階層化したもの、前ページ参照)に沿って、Aではデータが人間に近いものからコンピュータに近いものへと変換され、伝送路にはき出され、Bではその逆の変換が行なわれる データ伝送路 データ伝送路 ネットワーク ホストA ホストB 2018/11/6 Inf. Math. III
3
データ伝送(2) IP IP アプリ アプリ ケーシ ケーシ ョン層 ョン層 データ伝送路 OSI参照モデル TCP/IPプロトコル
データ送出 データ復元 OSI参照モデル TCP/IPプロトコル TCP/IPプロトコル データ アプリケ ーション層 アプリ ケーシ ョン層 アプリ ケーシ ョン層 アプリケーションに依存 プレゼンテー ション層 アプリケーションプロトコル ヘッダ データ SMTP HTTP HTTP セッション 層 SMTP FTP telnet FTP telnet トランス ポート層 TCP UDP TCP UDP TCP/UPIプロトコル ヘッダ データ ネットワーク 層 IP IPプロトコル ARP IP データ転送 ARP ICMP ICMP ヘッダ データ データ リンク層 ネットワーク アクセス層 LAN(イーサネット・ トークンリング・FDDI) 専用回線,PPP WAN(フレームリレー) ネットワーク アクセス層 LAN(イーサネット・ トークンリング・FDDI) 専用回線,PPP WAN(フレームリレー) ネットワークアクセスプロトコル 物理層 ヘッダ データ データ伝送路 出典:森本喜一郎、『通信とネットワークの基礎理論」、昭晃堂、2001 2018/11/6 Inf. Math. III
4
データ伝送(3a) OSI参照モデル 各層の機能 上位3層 この色で示したものは代表的なプロトコル
上位3層 この色で示したものは代表的なプロトコル アプリケーション層 ・・・ HTTP, FTP, SMTP この層では、ユーザが使う様々なアプリケーションのプロトコルを処理する機能を規定している。プロトコルの例:HTTPはウェブの、FTPはファイル転送の、SMTPは電子メールに関するプロトコルである。 プレゼンテーション層 ・・・ ネットワーク管理プロトコルSNMP この層では、送信元/宛先のメッセージのフォーマットの違いを変換したり、暗号化/復号やデータの圧縮/伸張などの処理をしたりすること等を規定している。 セッション層 この層では、通信し合うアプリケーションの間の対話の確立とか同期とか等の対話の制御に関することを規定している・・・長いファイルを分割する等の処理はこの層で行なう。 2018/11/6 Inf. Math. III
5
データ伝送(3c) OSI参照モデル 各層の機能(つづき) 下位4層 トランスポート層 ・・・ TCP/IP, UDP
下位4層 トランスポート層 ・・・ TCP/IP, UDP この層では、送信元から宛先へのend to end の通信機能について規定している。セッション層が必要とするトランスポートコネクション(伝送の単位)ごとに(あるいは、いくつかをまとめて1つとして)ネットワークコネクション(ネットワーク上で行われる通信の単位)を作成する。 ネットワーク層 ・・・ ARP, ICMP この層では、送信元から宛先へパケット(データを小さく分割して、それぞれに宛先アドレスなどの制御情報をヘッダとして付けたもの)を送る経路を決定する。 (netstat を試してみよ) データリンク層 この層では、伝送誤りを防ぐための仕組みを提供する(パケット⇔フレームの変換、データの誤り検出、伝送確認=フレームの重複・消失の確認と再送、データのオーバーフロー等の制御)。 物理層 この層では、データを物理信号としてネットワークへ送り出す/受け取る機能を規定している。例えば、コネクタの形状とピンの配置、電気的インターフェース、ビットレベルの同期などが規定されている。 (MAC アドレス → arp, ipconfig を試してみよ) 2018/11/6 Inf. Math. III
6
TCP/IP:信頼性を保障する通信プロトコル
接続フェーズ データ送信の開始を知らせる 受信準備OKの返答を返す。こちらからもデータ送信することを知らせる。 了解の返答をする データの送受信フェーズ データを送信する 受信したことの確認応答を送り返す ・・・ クライアント サーバー データを送信する 受信したことの確認応答を送り返す 切断フェーズ データを送り終わったことを知らせる 了解したことを知らせる データ送信を終了することを知らせる 了解したことを知らせる TCP/IPと違い、UDPではデータは送りっぱなし 2018/11/6 Inf. Math. III
7
通信の記録を見てみよう 2018/11/6 Inf. Math. III
8
ポート番号 IPアドレス → 通信相手のコンピュータを指定する
ポート番号 → そのコンピュータ上で動いている複数のプログラムのうちの一つを通信相手として指定 ポートとは論理的な通信の口 ポート番号の例 20 FTP (データ) 21 FTP (制御) 22 SSH 23 telnet 25 SMTP 53 DNS 67 DHCP(サーバ) 68 DHCP(クライアント) 80 HTTP 110 POP3 443 HTTPS IPアドレスと組み合わせて 133.9.34.141:22 のように書くことがある。 2018/11/6 Inf. Math. III
9
データ伝送(3d) パケットのカプセル化 01111000101101101101100011110011 電子メールのメッセージ
アプリケーション層 データ データ(ストリーム) セグメントヘッダ データ セグメント パケット ネットワークヘッダ セグメントヘッダ データ フレーム フレームヘッダ ネットワークヘッダ セグメントヘッダ データ ネットワーク トレーラ 01111000101101101101100011110011 2018/11/6 Inf. Math. III
10
データ伝送(3e) 各層におけるデータの伝送単位 TCP/IPモデル TCP IP データのカプセル化の過程 アプリケー ション層 ホスト層
(+プレゼンテーショ ン層+セッション層) データのカプセル化の過程 TCP ストリーム ホスト層 TCP UDP (トランスポート層) TCPヘッダ セグメント IP IPヘッダ データグラム (パケット) メディア層 (ネットワーク層) IPアドレス (ネットワーク上の位置を示すアドレス) ネットワーク アクセス層 (データリンク層・ 物理層) MACヘッダ フレーム MACアドレス (コンピュータの物理アドレス) ビット列 2018/11/6 Inf. Math. III
11
データ伝送(3f) TCPセグメントのフォーマット 4 8 16 24 32ビット TCPヘッダ データ (セグメント) 発信ポート番号
データ (セグメント) 4 8 16 24 32ビット 発信ポート番号 宛先ポート番号 シーケンス番号 受信確認の応答番号 オフセット 予約 フラグ ウインドウサイズ チェックサム 緊急ポイント オプション パディング データの種類ごとに専用の受け取り窓口がある→ポート番号(ftp=21, ssh=22, telnet=23, smtp=25, http=80 etc.) データは細切れのパケットにして送られる → シーケンス番号 宛先に届く順序は送った順序とは限らない 送信元と宛先の間で受け取ったかどうの確認をしあう → ACK(確認応答)番号 ACKを待たずに送信できるパケット数 → ウインドウサイズ 2018/11/6 Inf. Math. III
12
データ伝送(3h) IPv4データグラム(パケット)のフォーマット IPヘッダ データ (データグラム) バージョン ヘッダ長
20~60バイト 20~65536バイト IPヘッダ データ (データグラム) バージョン ヘッダ長 サービスの種類 パケット全長 識別番号 フラグ フラグメント オフセット 生存時間 プロトコルタイプ ヘッダチェックサム 送信元IPアドレス 宛先IPアドレス オプション パディング 2018/11/6 Inf. Math. III
13
データ伝送(3i) MACヘッダ ネットワークに送出されるパケット 6 12 14byte MACヘッダ データ
14バイト MACヘッダ データ 6 12 14byte 宛先MACアドレス 送信元MACアドレス イーサタイプ 自分(送信元)のMACアドレスは直ぐわかるけど、宛先のMACアドレスはどうやって知る?→後述 ネットワークに送出されるパケット プリアンブル スタートフレームデリミタ MACヘッダ IPヘッダ TCPヘッダ アプリケーションが作る データ データ損傷 の検出用 2018/11/6 Inf. Math. III これはLANアダプタが作って添加する
14
なぜMACアドレスが必要なの? イーサネット Ethernet
Xerox社とDEC社(現在はHewlett Packard社)が考案したLAN規格(IEEE 802.3委員会によって標準化された) アクセス制御にはCSMA/CD(carrier sense multiple access with collision detection)を採用 現在、特殊な用途を除いて、ほとんどのLANはEthernet イーサネットの仕組みはTCP/IPの仕組みとは異なる → MACアドレスを使う 送信した信号(宛先MACアドレス付き)がLAN全体に届く→そのMACアドレスを持つコンピュータがその信号を拾う LAN内のすべてのコンピュータを送信先とすることもできる(ブロードキャスト) ブロードキャストを使って、IPアドレスからMACアドレスを知ることができる(ARP:address resolution protocol) 各コンピュータは取得したMACアドレスを表(ARPテーブル)として保持する(一定時間(5分くらい)だけ) → arp –a を試してみよ。 2018/11/6 Inf. Math. III
15
ネットワーキングデバイス に関する用語補足
MACアドレス Media Access Control すべてのコンピュータが一意的に持つ物理的アドレス NICに割り当てられている 16進12桁の数(arp –a や ipconfig –all を試してみよ) NIC(Network Interface Card) データパケットをネットワーク上で送信される信号に変換する 出荷前にメーカーによって物理アドレスが割り当てられる ネットワークセグメント ブリッジによって区分されたネットワークの単位 2018/11/6 Inf. Math. III
16
ARP (address resolution protocol)
宛先のMACアドレスを どうやって知る? ARP (address resolution protocol) 送った信号はEthernetセグメント内のすべての機器に届く 「このIPアドレスの持ち主がいたら、MACアドレスを教えて下さい」と問いかける 返答があったら、使って、ARPテーブルにも一時的に保存 なかったら?→後述 ARPテーブルを見てみる 2018/11/6 Inf. Math. III
17
データ伝送(4) ネットワークケーブル ネットワーク機器 パケットのネットワークへの送出
パケットはNIC(ネットワークアダプタ)によってネットワークに送出される 同一セグメント内の機器はどれもそのデータを読むことができる → 自分宛てであるものだけを拾う 同一ネットワーク上に同時に2つの信号を送出すると衝突が起こり、データは壊れる → 再送信 ネットワークケーブル より対線、同軸ケーブル 光ファイバーケーブル ネットワーク機器 ネットワーク範囲を拡張/制限する データの送信・受信を制御する 減衰したデータを増幅する リピータ(ハブ)、スイッチングハブ、ブリッジ、ルータ 2018/11/6 Inf. Math. III
18
データ伝送(4a) リピータ (ハブ) 半二重 減衰した信号を増幅するのみ 信号を分配する役目も果たす
リピータ (ハブ) 半二重 減衰した信号を増幅するのみ 信号を分配する役目も果たす 受け取ったら信号をすべての送信口(ポート)に送り出してしまう 125 126 ハブ 124 128 127 2018/11/6 Inf. Math. III
19
データ伝送(4b) ブリッジ(スイッチングハブ)
MACアドレスだけに基づいてフィルタリングを行なう。アドレステーブル(接続するセグメントごとのMACアドレスのリスト)を持っている 2つのネットワークセグメント間でパケットの収集と受け渡しを行なう Ab X B PR Bc AL Ct Ct Ab AL X Bc B PR ブリッジ Ct Y AL D Bc F PR ブリッジ Y D F 2018/11/6 Inf. Math. III
20
データ伝送(4c) ルータ ルータ ルータ間のルーティング情報の交換にはいろんな方法がある
IPアドレス(ネットワーク層)を見て、パケットを送出する経路を決定する(ルーティング) 複数のポートを持ち、宛先ネットワークとポートの対応表(ルーティングテーブル)を持つ ルータ 2018/11/6 Inf. Math. III
21
データ伝送(4d) ルーティング(1) ルーターは自分に接続しているネットワーク上のデバイスのIPアドレスとMACアドレスを保持しているとともに、他のルータのIPアドレスとMACアドレスも保持している ルーティングテーブル C E0 D-FF-02-21 B8 12-36-FC E1 05-H1-76-2F-32-43 DD-32-10 E2 99-7B-65-G C1-24-5A-A2-G1-23 E3 ルータ E0 C1-24-5A-A2-G1-23 C D-FF-02-12 AB A2-B8 上段:IPアドレス 下段:MACアドレス E3 E0 AB-CD AB A1-G2-13 E1 E2 12-36-FC 05-H1-76-2F-32-43 DD-32-10 99-7B-65-G 2018/11/6 Inf. Math. III
22
ネットワーク192.168.11上のコンピュータへデータを送るには192.168.11.3のルーターに送り出せばよい
ルーティングテーブルを見る ネットワーク 上のコンピュータへデータを送るには のルーターに送り出せばよい 経路の距離 2018/11/6 Inf. Math. III
23
データ伝送(4e) ルーティング(2) ダイナミックルーティング 隣り合うルータ同士がルーティングテーブルの情報を交換する
ルーティングプロトコル ディスタンスベクタルーティング リンクステート法(Sortest Path First) ルーティング プロトコル ルーティング プロトコル ルーティング テーブル ルーティング テーブル 2018/11/6 Inf. Math. III
24
(具体例) ネットワーク上での通信(step 1)
ウェブブラウザを立ち上げて、ウェブページを読むまで ユーザが、ブラウザ上でURL( ブラウザは、そのURLを解読する。 プロトコル ウェブサーバー名 データの所在(パス名) 2018/11/6 Inf. Math. III
25
ネットワーク上での通信(step 2) 3.ブラウザは、相手のウェブサーバーのIPアドレスを調べるために、DNSサーバーに問い合わせをする
ライブラリ(プログラムの集まり。例えば、Socketライブラリ)の中にあるリゾルバ(name resolver)と呼ばれるプログラムを呼び出し、相手サーバーの名前 を渡して、それに対応するIPアドレスを調べてもらう。 リゾルバはDNSサーバーに送る問い合わせメッセージを作る 問い合わせメッセージはUDPプロトコルに従って作られたパケットである。 問い合わせメッセージは、OS内部にあるTCP/IPプロトコル処理用のプログラムに渡され、そのプログラムによりネットワークに送出される。 2018/11/6 Inf. Math. III
26
ネットワーク上での通信(step 3) 4.相手サーバーのURL(ドメイン名)からIPアドレスを求めるには、以下のようなやり取りが各階層のネームサーバーとの間で行なわれる。 ドメインの階層構造 com edu … jp de fr … co ac … ne ntt sony … waseda keio … plala … 名前の解決 ルートネームサーバ edu.waseda.ac.jp のアドレス問い合わせ ② ③ j pネームサーバ jpのネームサーバを教える ④ edu.waseda.ac.jp のアドレス問い合わせ ① IPアドレス 問い合わせ ⑤ ac.jpのネームサーバを教える ⑩ ・・・ ⑫ edu.waseda.ac.jp のアドレス問い合わせ IPアドレス を教える ローカル ネームサーバ ⑪ edu.waseda.ac.jpの IPアドレスを教える edu.waseda.ac.j pネームサーバ 2018/11/6 Inf. Math. III
27
ネットワーク上での通信(step 4) 5.ブラウザは、Socketライブラリ内のプログラムを呼び出してTCP/IPソフトに送受信の準備(送受信のために必要な制御情報を保管するために、ソケットと呼ばれるメモリー領域を作る)を促す。 6.TCP/IPソフトはディスクリプタ(descripter)と呼ばれる値をブラウザに返す → TCP/IPソフトが、動作中のアプリケーション(今の場合はブラウザ)を識別するために発行するもの → これ以後、アプリケーションはTCP/IPに作業を依頼するときは、このディスクリプタを提出する。 2018/11/6 Inf. Math. III
28
ネットワーク上での通信(step 5) 5.ブラウザは、取得したIPアドレスおよびポート番号(ポート番号はアプリケーションの種類によって値が決まっている。ウェブサーバーは80番)をディスクリプタと一緒にTCP/IPソフトに渡して、相手サーバーへの接続を依頼する。 6.TCP/IPソフトは、渡されたIPアドレスの相手に制御用のパケットを送って通信開始を知らせる。 2018/11/6 Inf. Math. III
29
ネットワーク上での通信(step 6) 7.相手サーバーは、ブラウザと同様に、通信に必要な準備(通信を許可する相手のIPアドレス、自分のポート番号等を含むソケットを作る)をしておく。 8.サーバーは、相手(この例ではブラウザ)から来た通信開始の制御パケットを、7で作ったソケットと照合して、通信を許可するか否か判定し、応答パケットを返送する。 2018/11/6 Inf. Math. III
30
ネットワーク上での通信(step 7) 9.通信開始 ブラウザは、相手サーバーへ送るためのHTTPリクエストメッセージを作成する。
ブラウザは、相手サーバーへ送るためのHTTPリクエストメッセージを作成する。 GET /~moriya/index.html HTTP/1.1 ・・・ User-Agent: Opera/8.5 Host: リクエストの内容(ファイル~moriya/index.htmlをGETしたい) 付加情報(ブラウザ名、URL、・・・) 2018/11/6 Inf. Math. III
31
ネットワーク上での通信(step 8) 10.リクエストに対し、サーバーからレスポンスメッセージが返ってくる 相手のウェブサーバー情報
HTTP/ OK Date: Fri, 18 June :12:56 GMT Server Apache/ ・・・ ・・・ <html> <head> <title> 守屋研究室HP</title></head> <body> </body> </html> 相手のウェブサーバー情報 ファイル ~moriya/index.html の内容(htmlテキスト) 2018/11/6 Inf. Math. III
32
参考書 森本喜一郎、『通信とネットワークの基礎』、昭晃堂、2001. 戸根勤、『ネットワークはなぜつながるのか』、日経BP社、2002.
W.リチャード・スティーヴァンス、『詳解TCP/IPプロトコル』、ピアソン・エデュケーション、2000. 戸根勤、『完全理解TCP/IPネットワーク』、日経BP社. 2018/11/6 Inf. Math. III
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.