トランスポート層 TCPとUDP ネットワークシステムⅠ 第10回
Download
Report
Transcript トランスポート層 TCPとUDP ネットワークシステムⅠ 第10回
トランスポート層
TCPとUDP
ネットワークシステムⅠ
第10回
インターネット層の復習
できること
宛先のノードまでパケットを送る
直接つながっていなければルータで中継
できないこと(制約)
パケットが届くことを保証しない
送り出した順に届くことを保証しない
ひとつのパケットが,複数個届くことがある
データが変化する(おかしくなる)可能性がある
重要なこと(できること・できないことの他に)
IPアドレス
インターネット上のノードを区別
32ビット
不足
ルーティングテーブル
直接配送と間接配送
トランスポート層
今回の本題
特にTCP
基 本 機 能 (2)
4つの機能が
モジュール化され,右
図のように
層をなしている
(階層化)
これで通信が行われ
る
今回はトランスポート
層
第6回のスライド
トランスポート層の概要
TCPとUDPの2種類のプロトコル
信頼性・到達性のあるパケット
正しいパケットが相手に確実に届く
信頼性・到達性が保証されないIP層を使って
実現する
ポートの管理
1台のPCで,複数のアプリケーション(プログラ
ム)が,それぞれ通信できる
ポート番号とポートによる通信
同じホストなので
IPアドレスは同じ
ポ ー ト 番 号 (1)
1台のホストで,複数のアプリケーション
メール,ブラウザなど異なるアプリケーション
複数の同じアプリケーション
どのアプリケーションが送り出したパケットなのか,
どのアプリケーション宛のパケットなのか区別
IPアドレスだけでは不可
ある住所にあ
そのためのものがポート番号
るアパートの
アプリケーションを区別する番号
部屋番号
ポ ー ト 番 号 (2)
実際にはポート番号だけでなく,
終点IPアドレス
始点IPアドレス
終点ポート番号
始点ポート番号
プロトコル番号(TCP 6,UDP 17)
で,通信(パケット)を区別する
この組合せをアソシエーション(association)
ポ ー ト 番 号 (3)
0~65535 (2オクテット)
0 ~ 1023
1024 ~ 49151
Well Knownポート番号
予約済みポート番号
49152 ~ 65535
動的割当て又はプライベート用ポート番号
ポ ー ト 番 号 (4)
Well Knownポート番号
代表的なアプリケーションは使用するポート番
号が決められている
サーバの管理者が勝手に決めると,クライア
ント側は困る(意識的に変える場合もある)
20,21 ftp
25 smtp 80 http 110 pop
ポ ー ト に よ る 通 信 (1)
サーバ(例えばWebサーバ)は
リクエストを受け付けるポート番号(80)
プロトコル(TCP)
を決め(決まっている場合もある),クライアント
(利用者)からの要求を待つ
アクセスしたいアプリケー
ションのポート番号が必要
ポ ー ト に よ る 通 信 (2)
クライアントは,サーバのIPアドレス,ポート番号,
プロトコルでアクセス
自分が通信に使うポート番号(サーバからの
返事を受けるポート番号 49152~)を決めて,
サーバに送る
アソシエーション
終点IPアドレス
始点IPアドレス
終点ポート番号
始点ポート番号
プロトコル番号(TCP・UDP)
ポ ー ト に よ る 通 信 (3)
サーバは,クライアントのポート番号宛てに返事
を返す
ポ ー ト に よ る 通 信 (4)
サーバは,複数のクライアントからのリクエストを
区別するために,ポート番号だけではなく,IPアド
レスを含む5つのデータ(アソシエーション)を用
いる
TCPとUDP
データの信頼性
IPとは異なり,データもチェックサムの対象として
いる
U D P
データが壊れていないことは保証
データ部分もチェックサムの対象
パケットの到達性は保証されない
送りっぱなし
TCPでのパケットの到達保証
到達性の保証 (1)
交信するホスト間で,データが届いたかどうかの
確認をすることにより,データの到達性の保証を
する
受け取ったら返事をする
返事があるまで,次を送らない
確認応答
ACK(アック,ACKnowledgement)
到達性の保証 (2)
TCPのパケットの一部
到達性の保証 (3)
シーケンス番号
送信するデータに付ける連続番号
1オクテットごとにつける
シーケンス番号3001のパケットの
データの大きさが1000オクテットなら,
次のパケットのシーケンス番号は4001
この番号でパケットの順序が分かる
到達性の保証 (4)
確認応答番号
受信側で,次に受け取るパケットのシーケンス
番号を返答する
シーケンス番号3001の大きさ1000オクテットの
データ(パケット)を受け取ると,確認応答番号
4001の返事を送る
到達性の保証 (5)
パケットの大きさを1000オクテットとする
送信側 シーケンス番号3001のパケットを送る
受信側 このパケットを受け取ると,確認応答番
号4001の返事を返す
送信側 この返事を受け取ると,シーケンス番号
4001のパケット送る
以下同様
到達性の保証 (6)
一定時間,確認応答のないパケットは再送
確認応答があるまで,送信済みであってもパケッ
トは保存
実際には確認応答を待たずに,次のパケットを
送る
いくつかまとめて送る(詳細略)
UDP
簡単に
ストリーム型・データグラム型
UDPは,アプリケーションから渡されたデータに
ヘッダを付けて,そのまま送る
データグラム型
TCPは,データを加工してから送る
ストリーム型
即 時 性
TCPは,到達性を保証するためなどのために,
即時性は低い
UDPは,即時性が高い
通信相手の数
TCPはユニキャストのみ
UDPはユニキャスト,マルチキャスト,ブロード
キャスト
省略事項
コネクションの管理
フロー制御
複数のパケットをまとめて送る
輻輳制御 など
ま と め
トランスポート層
信頼性・到達性のあるパケットのやりとりを実現
信頼性・到達性が保証されないIP層を使って
ポートの管理
複数の通信を混乱なく処理
TCPとUDP
TCP
時間がかかっても,確実に相手と通信したい
IPというあまり当てにならないものを使って,
信頼性のある通信を実現する
UDP
確実性を欠いても,直ぐに相手に届けたい
ライブ中継
少ないデータ
キーワード
ポート番号
シーケンス番号と確認応答番号
次
回
アプリケーション層