トランスポート層 - SEGAWA`s Web Site

トランスポート層
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
 確実性を欠いても,直ぐに相手に届けたい
 ライブ中継
 少ないデータ
キーワード

ポート番号

シーケンス番号と確認応答番号
次

回
アプリケーション層