コンピュータネットワーク 第6回

コンピュータネットワーク
第6回
2013年5⽉31⽇(⾦)
授業⽤のWebページを⽤意しました

http://www.klab.is.sci.tohou.ac.jp/classes/
2013/5/31
コンピュータネットワーク
2
先週までのおさらい
通信の階層
 リンク層

◦ イーサネット(Ethernet)
◦ CSMA/CD

インターネット層
◦ IP(Internet Protocol)
◦ ルーティング
2013/5/31
コンピュータネットワーク
3
OSI参照モデル
階層の名称
役割
応⽤層
特定応⽤サービスと共通応⽤サービスの
提供
プレゼンテーション層 抽象構⽂と転送構⽂の相互変換
セッション層
セッション制御:⽚⽅向、半⼆重、全⼆
重
トランスポート層
順序制御や誤り制御機構
ネットワーク層
データ転送のための経路選択や中継機能
データリンク層
フレーム(ビット列)の順序制御、誤り
制御機能
物理層
2ノード間においてビット列の伝送を⾏な
うための規格、⼿順、機能特性
2013/5/31
コンピュータネットワーク
4
TCP/IP階層モデル
階層の名称
概要
具体例
アプリケーション層 アプリケーションを実現
(Application)
HTTP、DNS、
SMTP、POP、
IMAP、FTP、
SNMP、NNTP
トランスポート層
(Transport)
アプリケーションのためにエ
ンド間の通信サービスを提供
TCP、UDP
インターネット層
(Internet)
データを送信元から宛先に運
ぶ
IP、ICMP、ARP、
RARP
リンク層
(Link)
直接接続されたネットワーク
上で通信されるための通信プ
ロトコル
イーサネット、
FDDI、X.25、
ISDN、同軸ケー
ブル、UTP、光
ファイバー
2013/5/31
コンピュータネットワーク
5
先々週の部分
TCP/IP 階層モデル
階層の名称
概要
具体例
アプリケーション層 アプリケーションを実現
(Application)
HTTP、DNS、
SMTP、POP、
IMAP、FTP、
SNMP、NNTP
トランスポート層
(Transport)
アプリケーションのためにエ
ンド間の通信サービスを提供
TCP、UDP
インターネット層
(Internet)
データを送信元から宛先に運
ぶ
IP、ICMP、ARP、
RARP
リンク層
(Link)
直接接続されたネットワーク
上で通信されるための通信プ
ロトコル
イーサネット、
FDDI、X.25、
ISDN、同軸ケー
ブル、UTP、光
ファイバー
2013/5/31
コンピュータネットワーク
6
リンク層


直接接続されたネットワーク上での通信を確⽴する層
代表的なものは以下の3つ
◦ イーサネット(Ethernet)
◦ トークンリング
◦ FDDI(Fiber Distributed Data Interface)

LAN(ローカルエリアネットワーク)上でデータ転送を
⾏なうためのプロトコル
◦ いずれもデータ転送に「フレーム」と呼ばれるデータのか
たまりを⽤いる
リピータ
直接接続
リピータ・ハブを介した接続
2013/5/31
コンピュータネットワーク
7
イーサネットフレームの構造
プリアンブル
フレーム開始デリミタ
1010101010・・・・
最⼩7
宛先アドレス
送信元アドレス
データ
10101011
1
6
6
FCS
2
フレームチェッ
クシーケンス
46〜1500
タイプフィールド
4
単位はオクテット
データがどのプロトコルを
使っているかを⽰す情報
1オクテット=
8ビット
MACアドレス
アドレス 48ビット(6オクテットのデータ)。
イーサネット上の端末を識別するためのデータ。
上位3オクテットは、ネットワーク製品の製造者を⽰す。
2013/5/31
コンピュータネットワーク
8
先週の部分
TCP/IP 階層モデル
階層の名称
概要
具体例
アプリケーション層 アプリケーションを実現
(Application)
HTTP、DNS、
SMTP、POP、
IMAP、FTP、
SNMP、NNTP
トランスポート層
(Transport)
アプリケーションのためにエ
ンド間の通信サービスを提供
TCP、UDP
インターネット層
(Internet)
データを送信元から宛先に運
ぶ
IP、ICMP、ARP、
RARP
リンク層
(Link)
直接接続されたネットワーク
上で通信されるための通信プ
ロトコル
イーサネット、
FDDI、X.25、
ISDN、同軸ケー
ブル、UTP、光
ファイバー
2013/5/31
コンピュータネットワーク
9
リンク層とインターネット層
LAN A
LAN B
ホスト X
ホスト Y
ホストXからホストYへ通信する場合
・ リンク層プロトコルは同⼀ネットワーク内しか送ることができない
・ インターネット層プロトコルを利⽤し、ホストYまで中継してもらう
2013/5/31
コンピュータネットワーク
10
リンク層とインターネット層

リンク層プロトコルとインターネット層プロトコルの違い
◦ リンク層では同⼀通信路上のホスト間
◦ インターネット層は複数のネットワークを越えてネットワーク間の
データ伝送を実現

ルーティング(Routing)
◦ 経路制御
◦ ネットワークを越えてデータ転送を⾏なう機能
◦ 経路制御を⾏なうネットワーク機器をルータ(Router)と呼ぶ
インターネット層のプロトコル
IP (Internet Protocol)
ICMP (Internet Control Message Protocol)
ARP (Address Resolution Protocol)
RARP (Reverse Address Resolution Protocol)
2013/5/31
コンピュータネットワーク
11
IP (Internet Protocol)
インターネットにおいてデータ転送の
基礎となるプロトコル
 さまざまな特徴

◦ コネクションレス
◦ ベストエフォート
◦ 経路選択(ルーティング)

「データグラム」と呼ばれるデータの
かたまりごとに通信を⾏う
2013/5/31
コンピュータネットワーク
12
IPデータグラムのフォーマット
IPデータグラムのフォーマット
バージョン
ヘッダ⻑
サービス種別
全⻑(オクテット)
識別⼦
⽣存時間
フラグ
プロトコル
断⽚位置
チェックサム
送信元アドレス
宛先アドレス
オプション
パディング
データ
IPアドレス:送信元と宛先のホストを指定するデータ(番号)
2013/5/31
コンピュータネットワーク
13
中継器(ルータ)とパケットの転送
?
どっちに転送
したらいい?
?
ホスト X
ホスト Y
2013/5/31
コンピュータネットワーク
14
直接ルーティングと間接ルーティング
ルータ V
LAN A
ホスト X
ルータ W
LAN B
ホスト Y
ホスト Z
ホストX→Y
•
•
同じネットワークの中なので、ARPで聞くとホストYのMACアドレスが返ってくる
ホストYのMACアドレスを宛先にIPデータグラムをイーサネットフレームに載せて送信
ホストX→Z
•
•
LAN Aを越えるので、ARPで聞くとルータVのMACアドレスが返ってくる
ルータVのMACアドレスを宛先にIPデータグラムをイーサネットフレームに載せて送信
2013/5/31
コンピュータネットワーク
15
今週の部分
TCP/IP 階層モデル
階層の名称
概要
具体例
アプリケーション層 アプリケーションを実現
(Application)
HTTP、DNS、
SMTP、POP、
IMAP、FTP、
SNMP、NNTP
トランスポート層
(Transport)
アプリケーションのためにエ
ンド間の通信サービスを提供
TCP、UDP
インターネット層
(Internet)
データを送信元から宛先に運
ぶ
IP、ICMP、ARP、
RARP
リンク層
(Link)
直接接続されたネットワーク
上で通信されるための通信プ
ロトコル
イーサネット、
FDDI、X.25、
ISDN、同軸ケー
ブル、UTP、光
ファイバー
2013/5/31
コンピュータネットワーク
16
今週やること

トランスポート層
◦ TCP(Transport Control Protocol)
◦ UDP(User Datagram Protocol)
2013/5/31
コンピュータネットワーク
17
クライアント-サーバモデル

クライアント
◦ サービスを受けるもの
◦ PC、モバイル端末、携帯電話

サーバ
◦ サービスを提供するもの
これやって
ちょうだい
かしこ
まりました
2013/5/31
コンピュータネットワーク
18
実際のWebアクセスでのデータの流れ
〜AからBへデータを渡す〜
A
S1
R1
B
送りたいデータ
L3ヘッダ 送りたいデータ
L2ヘッダ
L2データ
L1ヘッダ
L1データ
※ここでは、3階層の通信でそれぞれが
パケット通信をすることを仮定しています。
2013/5/31
コンピュータネットワーク
19
実際のWebアクセスでのデータの流れ
〜AからBへデータを渡す〜
A
L1ヘッダ
S1
R1
B
L1データ
2013/5/31
コンピュータネットワーク
20
実際のWebアクセスでのデータの流れ
〜AからBへデータを渡す〜
A
S1
L1ヘッダ
R1
B
L1データ
L1ヘッダ
S1はL1だけのヘッダ
を⾒て中継する機器
2013/5/31
コンピュータネットワーク
21
実際のWebアクセスでのデータの流れ
〜AからBへデータを渡す〜
A
S1
L1ヘッダ
R1
B
L1データ
2013/5/31
コンピュータネットワーク
22
実際のWebアクセスでのデータの流れ
〜AからBへデータを渡す〜
A
S1
B
R1
L1ヘッダ
L1データ
L2ヘッダ
L2データ
R1はL2のヘッダ
を⾒て中継する機器
2013/5/31
コンピュータネットワーク
23
実際のWebアクセスでのデータの流れ
〜AからBへデータを渡す〜
A
S1
B
R1
L1ヘッダ
L1データ
L2ヘッダ
L2データ
L3ヘッダ
L3データ
元々の
送りたいデータ
2013/5/31
コンピュータネットワーク
24
TCPとUDP

IPが出来ること
◦ 経路制御(ルーティング)を⽤いて、遠くの相⼿とで
もデータをやり取り可能

IPが出来ないこと
◦ 信頼できる通信
◦ 複数のサービスを同時提供

そこでTCPとUDP
HTTP、DNS、SMTP、POP3、
IMAP、FTP、SNMP、NNTP
TCP
UDP
IP (ICMP、ARP、RARP)
◦ TCP
(Transmission Control
イーサネット、FDDI、X.25、ISDN、
Protocol)
同軸ケーブル、UTP、光ファイバー
◦ UDP
(User Datagram Protocol)
2013/5/31
コンピュータネットワーク
25
TCP(Transport Control Protocol)
信頼性のある通信を実現するプロトコル
 信頼性提供のための機能

◦
◦
◦
◦
◦
コネクション指向
順序制御
再送制御
フロー(流量)制御
輻輳回避
WebやメールはTCPの上で動いている
 「セグメント」と呼ばれるデータのかた
まりごとに通信を⾏う

2013/5/31
コンピュータネットワーク
26
ポートを利⽤した多重化

ポート
◦ 複数サービスを提供する通信
相⼿に対して、どのサービス
を利⽤するかを特定するもの

TCPとUDPはともにポート
番号でサービスを指定する
◦ 0-65535番
◦ 特に1024番未満の数を
「Well-Known」ポート番号
と呼ぶ
2013/5/31
TCPにおける
代表的なサービスとポート番号
22
ssh
23
telnet
25
smtp
80
http
110
pop3
123
ntp
443
https
コンピュータネットワーク
27
TCPセグメントのフォーマット
送信元ポート
あて先ポート
シーケンス番号
応答確認番号
ヘッダ
⻑
予約
フラグ
ウインドウサイズ
(Code bit)
チェックサム
緊急ポインタ
オプション
データ
•
•
宛先/送信元ホストを指定する機能を提供していない
中継、転送機能を提供していない
IPなどの下位プロトコルで提供
2013/5/31
コンピュータネットワーク
28
TCPコネクションと3-Way Handshake

きちんとした通信を確⽴す
るため、TCPには「コネク
ション」という概念がある
◦ コネクション確⽴状態の制
御のためにフラグが⽤いら
れ、フラグの状態によりパ
ケットの⽤途が決まる

SYN
元気?
SYN+ACK
フラグの種類
◦ SYN
元気だよ。
おまえは?
 コネクション確⽴の要求
◦ ACK
おれも
元気だよ。
 応答確認
◦ SYN+ACK
◦ その他
ACK
で、⽤件
なんだけど・・・
 RST、FIN、URG
2013/5/31
コンピュータネットワーク
29
WiresharkでTCP 3-Way Handshakeを⾒る
Wiresharkを⽴ち上げて、キャプチャ
を開始する。
 Webを⾒るなどして⼀定時間したあと、
Filterをかける

◦ 「ip.proto == 6」

TCPのパケットで、SYN、SYN+ACK、
ACKと成っている3つの組を⾒つけてみ
よう
2013/5/31
コンピュータネットワーク
30
UDP(User Datagram Protocol)

TCPが持っていた機能を持たない、シンプルなプロトコ
ル
◦ コネクションレス、順序・再送制御なし、フロー制御なし

リアルタイム性の⾼いサービスはUDPの上で動いている

「データグラム」と呼ばれるデータのかたまりごとに通
信を⾏う
◦ VoIP、ストリーミング
送信元ポート
あて先ポート
セグメント⻑
チェックサム
データ
2013/5/31
コンピュータネットワーク
31
まとめ
階層の名称
概要
アプリケーション層
(Application)
アプリケーションを実現
トランスポート層
(Transport)
アプリケーションのた
めにエンド間の通信
サービスを提供
•
•
順序・再送・フ
ロー制御
多重化
インターネット層
(Internet)
データを送信元から宛
先に運ぶ
•
•
中継機能
順序・再送・フ
ロー制御なし
リンク層
(Link)
直接接続されたネット
ワーク上で通信される
ための通信プロトコル
•
•
LAN内で直接通信
中継機能なし
2013/5/31
コンピュータネットワーク
32
TCPで通信しているパケットの確かめ⽅
SYN、ACKといったフラグが確認できる
2013/5/31
コンピュータネットワーク
33
第2回課題:内容と提出物

課題内容
◦ Wiresharkを使ってパケットデータを取得
 そのときにWebでどこかのサイトにアクセスする
◦ パケットデータより
 ⾃分が利⽤したホスト(PC)のIPアドレスを調べよ
 TCPで通信している通信のポート番号(送信元、宛
先)を調べよ

提出内容
◦ ⾃分が利⽤したホスト(PC)のIPアドレス
◦ TCP通信におけるポート番号と、
その該当パケットの番号
◦ パケットデータ
2013/5/31
コンピュータネットワーク
34
第2回課題:提出⽅法と締切

提出⽅法
◦ 電⼦メール
◦ ⾃分のIPアドレスはメール本⽂に記載
◦ パケットデータ中のパケット番号と、そのパケットにおけるTCPの宛先ポートと
送信元ポートの番号をそれぞれメール本⽂に記載
◦ パケットデータはファイルをメールに添付

メールタイトル(件名)に「[コンピュータネットワーク:(学籍番
号)]」と⼊れること
◦ akira.kanaoka@is.sci.toho-u.ac.jp
◦ (アットマークが全⾓になっていますので、半⾓に直してから送ってください)

締切
◦ 2013年6⽉14⽇(⾦)18:00

注意:
◦ 電⼦メールで提出した場合、必ず私から「受領しました」というメールを返信し
ます。返信がない場合は、メールば届いていない可能性があります。課題提出後
は、⾦岡からの受領メールを必ず確認してください。

英語ではメール返信はしません
◦ データが全く同じ⼈達がいた場合、「最初に提出した⼈のみを通常の評価」にし、
後の⼈は「半分の評価」とします
2013/5/31
コンピュータネットワーク
35