トランスポート層について

トランスポート層とは

ネットワーク層(L3)の上で、アプリケーションデータを効率的に伝送する仕組みを提供する。

 

■具体的には・・・

・アプリケーションの通信制

・アプリケーションの識別

の2つを行っている。

 

どんな通信制御を必要としているのかを、「TCP」か「UDP」のどちらかのプロトコルで表し、ヘッダを付与しネットワーク層に渡す。

どのサービスを使用したアプリケーションなのかはヘッダ内の「ポート番号」で表す。

 

TCP と UDP の使い分け

即時性を求めるなら・・・UDPVoIP、時刻同期、DNSDHCP

信頼性を求めるなら・・・TCP(メール、ファイル転送、Webブラウザ

 

UDP

・ほとんどIPを生で使うのと同じ

・到達保証、順序保証無し

#パケットロスを判定する方法が無いため、アプリケーション側で判定する必要がある。途中で経路が変わっても順序保証は無し。途中経路でパケットロスが発生しても再送要求はしない。

 

TCP

・信頼性のある全二重のフロー制御付の通信路提供

・データの抜け重複、誤り無し

・到達順序の保証

#データ転送前にコネクションを張る必要がある。(最初にコストが掛かる)

コネクション接続時に、1往復のパケットのやり取り。終了時に2往復必要。

 

TCPのすごい機能

TCP Sliding Window(TCPで最も重要)

 確認応答無しでパケットを連投する機能。

 Window Size で指定した値分まで確認応答無しでパケットを連投可。

 #Window Sizeを指定しないと無限に連投し続けて、受信側のバッファが溢れ機能停止を起こしてしまう。

 Window を管理する為に各パケットにシーケンス番号を振る。

 ACKが帰ってきたらWindowをずらす。

TCP再送

 再送タイマがタイムアウトしてもACKが帰ってこない場合にパケットを再送。

 RTTを測定して、再送タイマは決まる。

 RTT(Round Trip Time)とは、パケットが1往復する時間。伝送路の状況により変化。

 初回はSYN/ACKでRTT測定。順次測っていき、RTTの平滑化を図っている。

 

複数のTCPバージョン

TCP Tahoe

TCP Reno

TCP NewReno

どんどんVerUPしてる。

 

TCPに対する攻撃

TCP SYN Attack(シーケンス番号同期、ハーフオープン)

・IP Spoofing(アドレス詐称、詐称は簡単(証明が無い))

上記二つを組み合わせて攻撃

TCP SYN flooding Attack

 SYNは送るが、ACKは送らない。

 約3分でSYN_RCVD状態は解除されるが、それより早く次のAttckを行う。

 サーバに多数のSYN_RCVD(コネクション)が生成。

 ➡ポート番号65365個分のコネクションを張り、新規コネクション不可。

  メモリを使われて、システムクラッシュする。

#今はだいぶ対応策が取られているが、TCPの持っている本質的な問題。

 

TCP/IP とは

単純にIPプロトコル と TCPプロトコルのことを表す。

インターネットプロトコルスイートとも呼ばれる。

World wide web と共にコンピュータネットワークに革命をもたらしたことがきっかけで世界標準的に利用されている通信プロトコル

 

World wide web> 

ネットワーク上のコンテンツを相互に閲覧するために規格化された仕組み。

Webやインターネットとよく表現される。

 

TCPコネクション>

TCP通信でデータを送る前に作る、仮想的な通信路のこと