Download presentation
Presentation is loading. Please wait.
Published byひでか しのしま Modified 約 6 年前
1
情報通信システム(11) http://www10. plala. or
情報通信システム(11) 年7月10日 火曜日 午後4時10分~5時40分 NTT-TX Corp. 加藤 洋一
2
ここにディジタル伝送路がある。送信側から1ビット送ると受信側で1ビット受信できる。
本日のテーマは「伝送プロトコル」 ここにディジタル伝送路がある。送信側から1ビット送ると受信側で1ビット受信できる。 この伝送路を使って、意味のあるデータを送りたい。 データ=テキスト、画像、その他いろいろな情報。 どういうことを考えなければならないか? とりあえず、テキストデータを送ることにします。
3
さて、どのように送る? (皆さんにお聞きします)
ディジタルデータを伝送しよう さて、どのように送る? (皆さんにお聞きします) 文字を1と0の組み合わせで表現する 区切りがわかるようにする必要がある 送受で約束事に従う 既存の規格を使う 誤り訂正、伝送エラーへの対処 盗聴を防ぐ … …. … …. Sender Receiver 送信側から1ビット送ると、受信側で1ビット受け取る
4
さて、どのように送る? (皆さんにお聞きします)
ディジタルデータを伝送しよう さて、どのように送る? (皆さんにお聞きします) 文字を符号(1と0の組み合わせ)におきかえる 届け先、区切り、本文はどこからか? 文字ごとに一個一個おくる 形式を指定する 誤りをどうするか?外乱? ほかの人に読まれないようにする。 … …. … …. Sender Receiver 送信側から1ビット送ると、受信側で1ビット受け取る
5
バイトの切れ目を見つけた。次に、データを一塊として扱う「パケット」という概念を導入しよう。
パケット伝送 バイトの切れ目を見つけた。次に、データを一塊として扱う「パケット」という概念を導入しよう。 パケットに必要な「決め事」は? ヘッダーに入れたい情報? 届け先、形式を指定 ヘッダー 内容
6
パケット伝送 ヘッダーに入れたい情報? 概要、タイトル 宛先、アドレス 送信日時、タイムスタンプ 送り主に関する情報 表現形式の指定
暗号の方法 パケットの長さ 誤り符号の形式 ヘッダー 内容
7
ディジタル伝送のネットワーク(回線スイッチ)
A AからBへデータ伝送したい ネットワークにAからBへ接続要求 Node1はL1とL3を接続 Node3はL3とL5を接続 Node4はL5とL6を接続 AからBへネットワークがつながる データ伝送を行う 切断要求 ネットワークが切れる L1 Node 1 L2 L3 Node 2 L4 Node 3 L5 Node 4 L6 ISDNで使われた方式ですが、現在の主流の方式ではありません。 B
8
ディジタル伝送のネットワーク(パケット通信)
A AからBへデータ伝送したい ネットワークは常に全てつながっている状態 では、どのようにネットワークを構成するか? L1 Node 1 L2 L3 Node 2 L4 Node 3 L5 Node 4 L6 B
9
パケット伝送 パケットを異なる受信先に届けたい。どのように伝送システムを作れば便利で効率的か考える。 どういう事項について検討する?
10
伝送路ではエラーがある、盗聴がある 受信先に確実にデータを届けたい 盗聴させない
11
インターネット(あるいはIPネットワーク)
本日は、インターネットの仕組みを見てみましょう 音 画像 ビデオ テキスト データ インターネット (パケット網) Webサーバー 「TCP/IP」というパケット伝送インタフェース Web、メール、その他なんでも。。。 Webサーバー
12
インターネットは、様々なプロトコルの集積で成立しています。
プロトコルと通信レイヤー インターネットは、様々なプロトコルの集積で成立しています。 「プロトコル」とは通信の決め事のこと。 電圧とビットの対応(1Vは’1’で-1Vは’0’など) ビットと文字の対応( は’A’という文字) “GET /index.html HTTP/1.1”で‘index.html’というWebページの要求を表す、など 通信レイヤー(層)とは、ディジタル通信の考え方を整理したもの 通信レイヤーごとに別のプロトコル、つまり「決め事」があります。 通信レイヤーには、物理層、データリンク層、ネットワーク層、トランスポート層、アプリケーション層などがあります。
13
プロトコルと通信レイヤー 通信レイヤー:物理層 情報は、電気か、電波か、光で運ばれる
ディジタルデータを電気か光の信号にマッピングし、伝送路を通じて送ること。QAMなどの変調方式も物理層の一つ。 ディジタルビット列 ディジタルビット列 光ファイバー 同軸ケーブル ツイストペアケーブル 加入者電話線 何らかの伝送装置(あるいは部品) 何らかの伝送装置(あるいは部品) 大気中:電波 物理層
14
プロトコルと通信レイヤー 物理層1 物理層2 データリンク層
物理層で繋がれたディジタル伝送の一区間を使って、ビット列、あるいは、ビットのかたまり(パケット)をやり取りする 後述するEthernetの場合には、ハブを介することで複数の物理層にまたがったデータリンク層を構成します。 データリンクでの機器の識別は、MACアドレスで行います。 データリンク1 データリンク2 物理層1 物理層2 異なる物理層へ2箇所で接続
15
プロトコルと通信レイヤー ネットワーク ネットワーク層 データ(パケット)を目的地まで届ける パケットとは、ある長さのデータのかたまり
目的地まで、複数のデータリンクを使う場合もある データリンク C ルーター2 Bからパケットが来た A Cあてのパケットだ。Cに送ろう。 データリンク データリンク ‘ ’ データリンク ルーター1 データリンク ルーター3 データリンク Cあてのパケットだ。ルーター2に送ろう。 ‘ ’ ネットワーク B D パケットをCに送りたい
16
プロトコルと通信層 トランスポート層 データ伝送の確実性を保証する(しないものもある)
ACKパケット 「ポート」という概念で、パケットを受け取るべきアプリケーションプログラムを指定する。 Webブラウザー ネットワーク 80 Webサーバープログラム メールリーダー 25 メールサーバープログラム ひとつのサーバーにWebサーバーとメールサーバーが動いている
17
プロトコルと通信レイヤー アプリケーション層(アプリケーション毎の決め事) Web、メール、Web会議、ストリーミングビデオ
HTTPサーバーポート 要求パケット HTMLページBの返送を要求するリクエストをディジタルデータで表現 HTMLページB ネットワーク 要求パケット HTMLページB HTMLページBへの要求が来た。ページBをハードディスクから読み取り、要求元へ返信しよう。 サーバーAにあるHTMLページBを見たい
18
プロトコルと通信レイヤー レイヤー 役目 インターネット アプリケーション層 通信の端点となるプログラムなど
HTTPサーバー、メールサーバー トランスポート層 データをあるコンピューターのプログラムから別のコンピューターのプログラムまで届ける TCP、UDP ネットワーク層 パケットを目的地まで運ぶ IP データリンク層 ひとつのネットワーク内でデータを伝送する Ethernet MACレイヤー、PPP 物理層 電気あるいは光の信号でビットやパケットを伝送する Ethernet物理層など
19
イサーネットは、物理層とデータリンク層にまたがるディジタル伝送方式
Ethernet(イサーネット) イサーネットは、物理層とデータリンク層にまたがるディジタル伝送方式 オフィスや家庭のLANはほとんどEthernet 10Base2、10Base5、10BaseT、100BaseT、1000BaseT、1000BaseFXなどいろいろな種類がある Etherとは「エーテル」のこと。その昔、(一部の物理学者によって)、光を伝達する媒体で、宇宙全体を満たしていると考えられていた
20
Ethernetの物理層は「ベースバンド」符号化
10BaseT では、「マンチェスタ符号化」が使われている いろいろなベースバンド符号化 NRZ(Non-Return-to-Zero) ディジタル回路で用いられる RZ(Return-to-Zero) 必ずゼロに戻る NRZI(NRZ-Inversion) 1が来る度に極性反転 AMI(バイポーラ) 1の極性を交互に マンチェスタ LHが0、HLが1 H L
21
「そう決めたから」というのが最も確かな答えと思われる。もちろん、下記のような理由はあったであろう。
10BaseTではなぜマンチェスタ符号化? 「そう決めたから」というのが最も確かな答えと思われる。もちろん、下記のような理由はあったであろう。 マンチェスタ符号化では信号からクロックの抽出が簡単 ただし、信号クロックは、ビットレートの倍となる 回路的にも簡単に作れる
22
10BaseTのデータリンク 送るべきディジタル信号がないときは、何も出さない(信号線は0ボルト)
以下のようなパケット(データの集まり、Etherパケット、あるいは、Etherフレーム)を単位にデータを伝送 ビットクロックは10MHz(マンチェスタ符号化のため、最大クロックは20MHzとなる)。1ビット伝送は、0.1マイクロ秒。 プリアンブル ヘッダー データ トレイラー or 単位は「バイト」 プリアンブル:「これから信号を出しますよ」というお知らせ(82Hが7つ、83Hがひとつ) ヘッダー:あて先アドレス(6バイト)、送信元アドレス(6バイト)、データ長(2バイト) データ:任意のデータ。バイト単位。 トレイラー:チェックサム トレイラーの後は、最小12バイト分の休止期間を取る(12*8*0.1=9.6マイクロ秒期間)。 アドレス(MACアドレス):6バイト、全てのEthernet機器は異なるMACアドレスを持つ(ことになっている) 慣習上、16進表記で以下のように表記する FC-BA or 00:02:00:32:FC:BA
23
16進表記 4ビット(2の4乗、即ち0から15までを表せる)を0, 1, 2, 3, 4, 5,6,7,8,9、A(10), B(11), C(12), D(13), E(14), F(15)で表す 1バイトは、2つの16進表記で、A0(192)、FF(255)、60(96)、1F(31) などのように表す。 先頭に’0x’をつける場合もある。0x で4バイトの1を表している。0x1001で2バイトの4097を表している(後ろにHをつけることもある。‘80H’など)。 では、0x7FFFは10進でいくつか?
24
データの発生からケーブルに信号を流すまで
送るべきデータが発生する なにかしらのデータ データをバイト列で表す 10 4A A4 B5 00 FC … ここから先がEthernet プリアンブル、ヘッダー、トレイラーを付加する プリアンブル ヘッダー データ トレイラー バイト列からビット列へ変換 ビット列をマンチェスタ符号へ変換 電気信号に変えてケーブルから送り出す
25
10BaseTの伝送方式 送るべき信号のないときはケーブルには何も流れていない (実際には接続確認信号が時々流れている) UTPケーブル
コンピューター ハブ 送るべき信号のないときはケーブルには何も流れていない (実際には接続確認信号が時々流れている) UTPケーブル コンピューター ハブ 無信号状態であることを確認! データを送るときは、まず、ケーブルが無信号状態であることを確認する。 UTPケーブル コンピューター ハブ プリアンブルから始まるデータを流す
26
ハブ(スイッチングハブ)の動作 ハブの各ポートとコンピューター(あるいは他の機器)とは1対1で接続される。
ハブ(16ポート) MACアドレス fc-10 MACアドレス c-02-10 c-02-10へデータを送出 MACアドレス c-fc-10 MACアドレス c-fc-10 ハブの各ポートとコンピューター(あるいは他の機器)とは1対1で接続される。 ハブは、ポート毎に、接続されている機器のMACアドレスを記憶している(機器から送られてくるETHERパケットの送信元アドレスを覚える)。 ハブは、ETHERパケットを受け取ると、あて先アドレスを見て該当するポートから同じETHERパケットを送出する。
27
信号の複製だけを行うハブ(ダムハブ) ハブ(16ポート)
MACアドレス fc-10 MACアドレス c-02-10 c-02-10へデータを送出 MACアドレス c-fc-10 MACアドレス c-fc-10 スイッチ機能を持たず、あるポートから受け取ったデータを全てのポートに送出するハブもある(古いタイプ)。 CSMA/CD (Carrier Sense Multiple Access/Collision Detection) (1)伝送路があいていることを確認して送信開始 (2)もし他のコンピューターとたまたま送信がぶつかったら、ランダム時間待つ (3)コンピューターは、常に全パケットを監視し、自分宛のものだけを処理する 伝送路の使用効率は落ちる(一台のコンピュータが全てのネットワークを占有してしまう)
28
ハブ同士の接続/Ethernetの範囲 ハブ同士を接続することもできる。ある機器から別の機器までの間に最大3個まで。
ポート毎に複数のMACアドレスを記憶することができる。 ひとつのEthernetの範囲は、MACアドレスによってEtherパケットが届く範囲。これを「Etherセグメント」という。 Ethernetはデータリンク層以下(つまりデータリンク層と物理層)の方式。Etherセグメントを越えた通信には「ネットワーク層」が必要。
29
現在の主流は、100BaseTや1000BaseT(GbE)。
いろいろなEthernet 現在の主流は、100BaseTや1000BaseT(GbE)。 ケーブルの外見やプラグなどは10BaseTと同じ。 ケーブルの心材は少し太くなり、周波数特性の良いものを使う。 100BaseTでは10BaseT同様、8芯のうち4芯(1,2がペア、3,6がペア、4,5,7,8は未使用)を使用。 1000BaseTでは8芯全て使用。しかもひとつのペアを送信受信で兼用する。 電気的な伝送方法は10Baseと全く異なる。 当然、パルスのクロックが早い。100BaseTでも1000BaseTでも125MHz。 無信号時にも何かしらのパルス(信号)が流れている 光ファイバを物理媒体としたもの、無線LANなども使われるものもある(MACアドレスをもち、Etherフレームで伝送が行われる)
30
データリンク層には以下のようなものがある
そのほかのデータリンク層および物理層 物理層には以下のようなものがある ADSL 電話線とモデム データリンク層には以下のようなものがある PPP 元々はモデムなどで利用されている方式。WAN(Wide Area Network)に向く。ADSLやFTTHでも一部で使用されている。 ATM データを53バイトの小さなパケットで送る方式 生のATMレイヤーの上に、MACレイヤーを乗せる フレームリレー
31
ネットワーク層は、IP(インターネットプロトコル)を用いるのがほとんど。 パケットの構造は以下のように簡単
必須の部分のみ説明します IPパケット ヘッダ部 データ部 ヘッダ部は、通常20バイト 自分のアドレス: 4バイト(32ビット) あて先アドレス:4バイト(32ビット) データ長:2バイト(つまり、データは最大でも65000バイトほど) TTL:2バイト(後述) ヘッダのチェックサム:2バイト その他:6バイト(固定的なものやまれにしか使用されない情報)
32
IPパケットは、データリンク層の「データ」
上位層のパケット全体が、ひとつ下位の層のデータとなる。 IPパケット ヘッダ部 データ部 データリンク層(Ethernetフレーム) or プリアンブル ヘッダー データ トレイラー
33
IPパケットの伝わり方 あるEtherセグメント(例えばオフィス) ルーター ルーター間を結ぶデータリンク インターネット
ルーターをひとつ経由するごとにTTLが1引かれる。TTLが0になるとパケットは破棄される。 ルーター ルーター間を結ぶデータリンク サーバーAまでパケットを送る インターネット ルーター間のデータリンクで、距離がある場合には、PPP、ATM、フレームリレー、光接続のEthernet、などが用いられる。物理層は、ISDN、フレームリレー、光接続のEthernetなど。 データセンターのEtherセグメント A
34
IPパケットの伝わり方は、「バケツリレー」
ルーターの基本的な動作は以下のよう ポートA 他のルーターやハブなど(直接、端末装置、例えばPC、を接続することもある) ポートB ポートX あるポートにIPパケットを受信 あて先IPアドレスをパケットヘッダーから読み取る ルーティングテーブル アドレスaaaからczzまではポートAから出力 アドレスdzzからkfzまではポートBから出力 : ルーティングテーブルを探索 あて先アドレスに対応するポートからパケットを出力 「ポート」は、「インタフェース」ともいう
35
インターネット上の機器はユニークなアドレスを持つ 以下のような構造を持つ
IPアドレス IPアドレスは、4バイト(32ビット) 次世代のIPであるIPV6では16バイト(128ビット) インターネット上の機器はユニークなアドレスを持つ 以下のような構造を持つ 32ビット ネットワークの識別 機器の識別 分け方は基本的に任意、「ネットマスク」で区分けを表す ルーター 4つのバイトに区切って、以下のように表す IPアドレスの例: Etherセグメント=ネットワーク
36
ひとつのネットワーク内でのIPの伝送 IPパケットを送るには、相手先のMACアドレスを知る必要がある。
ARP(Address Resolution Protocol)でMACアドレスとIPアドレスの変換を行う ARPリクエスト(IPアドレスが指定されている)をブロードキャスト 指定されたIPアドレスを持っている機器は、ARP応答を返す arp コマンド ARP応答を受け取りARPテーブルに追加 それは私です ハブ(16ポート) IPアドレス IPアドレス 「IPアドレスIPアドレス を持つ機器は返事をしてください」 IPアドレス IPアドレス
37
他のネットワークへのIPパケットの伝送 ネットワーク内の「デフォルトゲートウェイ」へIPパケットを送る
ネットワーク=データリンク層でデータが届く範囲 デフォルトゲートウェイ ルーター サーバーAまでパケットを送る
38
ルーティング Netmask= B A ルーター1 C ルーター1のルーティングテーブル Aへ Bへ Cへ Cへ Etherセグメント=ネットワーク ルーターは、インタフェースごとにIPアドレスを持つ tracert
39
パケットを他の機器のアプリケーションまで届ける
トランスポート層:UDP パケットを他の機器のアプリケーションまで届ける 自ポート番号 データの長さ データ 16ビット 16ビット 16ビット 16ビット チェックサム あて先ポート番号 UDPヘッダー IPパケット ヘッダ部 データ部
40
トランスポート層:TCP IPパケットは、通信エラーがあるとパケットが破棄される 通信エラーを吸収する。 ACK、再送 ヘッダー部 データ
41
TCPとUDP TCP UDP コネクションという概念がある コネクションレス IPパケットが紛失しても再送によりデータの完全性を保障する仕組みがある IPパケットが紛失したもなにもしない Web、メールなどに利用されている VoIP、ビデオ送信などに用いられる
42
インターネットでは、IPアドレスの代わりに「ドメインネーム」という名前が使われる
名前とIPアドレス:DNS インターネットでは、IPアドレスの代わりに「ドメインネーム」という名前が使われる DNSというサーバーが、名前とIPアドレスの変換をしてくれる 210.172.40.212 nslookupを試す
43
アプリケーション層:Web トランスポートはTCPを使う。 ポート番号は80。 電文ヘッダーは、テキスト。 要求電文フォーマット
GET/ HTTP1.1 Accept: image/gif, image/jpeg, … Accept-Language: ja Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (Compatible; MSIE 6.0; Windows NT 5.0) Host: Connection: Keep-Alive Cookie: PREF=ID=… (改行コードが2つ)
44
結果電文 アプリケーション層:Web HTTP1.1 200 OK Chache-Control: private
Content-Type:html/text Content-Encoding: gzip Server: gws/2.1 Content-Lenngth: 1650 Date: Mon, 04 Jul :11:04 GMT (改行コード2つ) (データ。この場合には、gzipで圧縮されたテキストデータ) Etherealで確認
45
ソケットインタフェースは、TCPやUDPで通信を行うプログラムのためのライブラリ
# # socket_recv.py import socket s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.bind( ('localhost', 5012) ) while 1: recv_data = s.recvfrom(2000) print recv_data if recv_data[0] == 'exit': break s.close() UDPソケットを生成 UDPにポート5012を割り当てる ポートからデータを読み、プリントする ‘exit’という文字列が来たら終了
46
データ構造のまとめ レイヤー化されたプロトコルの層をプロトコルスタックという。以下は、Ethernetを使ったインターネットのプロトコルスタック HTTPなど ヘッダ部 データ部 アプリケーション TCPあるいはUDP ヘッダ部 データ部 トランスポート IPパケット ヘッダ部 データ部 ネットワーク Etherフレーム データリンク or プリアンブル ヘッダー データ トレイラー ビット列へ変換、マンチェスタ符号化、伝送路へ 物理層
47
暗号について 暗号化(Encryption)の一般的方法 暗号をかける前の元のディジタルデータを「平文」といいます。
暗号を適用するディジタルデータ(平文) 暗号化の「鍵」 暗号化 暗号化されたディジタルデータ(暗号文) 暗号化されたディジタルデータ(暗号文) 暗号を解く「鍵」 復号 元のデータ(平文) 暗号化の鍵=暗号を解く鍵 の場合を「共通鍵方式」といいます。 暗号化の鍵が公開されていて、暗号を解く鍵が秘密の場合を、「公開鍵方式」といいます。
48
暗号方式にはいろいろなものがある。よく使われるアルゴリズムの要素の一部を紹介しまします。
暗号化の方法 暗号方式にはいろいろなものがある。よく使われるアルゴリズムの要素の一部を紹介しまします。 平文を数十から数百ビット程度のブロックに区切り、ブロック毎に暗号化を行う。 ビットの入れ替え、反転などを行う操作を施す(対応表を用意する)。簡単な例では、ビットローテートがある(シフトするビット数を決めておく)。対応表やビットシフト量は、鍵により適宜動的に決定される 暗号化 復号 ビット操作対応表 鍵 ビット操作逆対応表 鍵
49
暗号化の方法 排他的論理和 一般の論理和は、 =0, 0+1 =1, 1+0 =1, 1+1 =1 ちなみに、論理積は 0×0=0, 0×1=0, 1×0=0, 1×1=1 排他的論理和(エクスクルーシブOR) 1 0 = 1 1 = 0 1 0 = 0 1 = 0 0 = 1 1 = 1 同じ値との排他的論理和を2回繰り返すと元に戻る 同じ値 暗号化 復号 平文 暗号文 鍵 鍵(暗号化と同じもの) 暗号文 平文
50
対応表によるビット操作と排他的論理和を組み合わせた方式(DESなどに見られる方式)
暗号化の方法 対応表によるビット操作と排他的論理和を組み合わせた方式(DESなどに見られる方式) 平文:64ビット 2つの32ビットデータに分ける 32ビット 32ビット ビット操作表を鍵で変更する 鍵 この操作を何回か繰り返す ビット操作表 32ビットデータを入れ替える 32ビット 32ビット
51
公開鍵方式では、暗号化のための鍵を秘密にしておく必要がない。
公開鍵方式の要素 公開してある鍵 公開鍵は、受信者ごとに異なる。 誰でも、公開鍵によってその受信者向けの暗号文を作ることができる 公開鍵に対応する秘密鍵 受信者だけが知っている 復号に用いる 公開鍵方式では、暗号化のための鍵を秘密にしておく必要がない。 一方、共通鍵方式では、暗号側と復号側で同じ鍵が必要。鍵はどうやって相手に知らせるか、という問題が常につきまとう。
52
RSA公開鍵暗号という方式が標準的に用いられている。
公開鍵方式 RSA公開鍵暗号という方式が標準的に用いられている。 RSAの易しい解説は下記URLを参照のこと。 RSAはSSL(Secure Socket Layer)に利用されている。 Webブラウザーで、鍵がロックされているアイコンが出ているときは、RSAが利用されている。 RSA方式は計算量がとても多い。そこで、実際の暗号方式は別の共通鍵方式を用い、その鍵の配送にRSAを使っている。
53
大きな数字(桁数が100以上)の数で、2つの素数の積である数があったとき、その2つの素数を知ることは計算量的に困難であることに基づく。
RSA方式 大きな数字(桁数が100以上)の数で、2つの素数の積である数があったとき、その2つの素数を知ることは計算量的に困難であることに基づく。 2種類の使い方がある 暗号化の鍵を公開。復号の鍵を秘密に持つ 暗号化は秘密。復号の鍵を公開。
54
公開鍵方式の運用 鍵が公開されていると「なりすまし」という問題がある。 そのために、鍵を認証する「認証局」がある。
この公開鍵は本当にこの受信者のものなのか?誰かが「なりすましている」とすると、自分の重要な情報を悪意のある第三者へ送ってしまう危険がある。 そのために、鍵を認証する「認証局」がある。 署名の確認(認証局の署名を公開復号鍵で復号) 暗号送信者 認証局 公開鍵で暗号化 公開鍵と認証局の署名 秘密鍵で復号 暗号受信者 秘密鍵は安全に保管
Similar presentations
© 2025 slidesplayer.net Inc.
All rights reserved.