TCP, UDP
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>ネットワークの基礎編]]
* 目次 [#y872a9ac]
#contents
*概要 [#a333065c]
-TCP、UDPプロトコルについて説明する。
-現在のWindowsネットワークでは、TCP、UDPプロトコルが標準...
-一般的なサービスやそのクライアント アプリケーションが使...
「%windir%\system32\drivers\etc\services」に記述されてい...
**UDPプロトコル [#h9fe0c6d]
-UDPは、IPアドレスを使用する「データグラム型通信」である。
--「データグラム型通信」は高速で、
--1対1の通信機能(ユニキャスト)だけではなく
--1対多の通信機能([[ブロードキャスト>ネットワークの基礎...
-また、ステートレスなサービスを実装しやすいという特徴があ...
データが相手に届いたことが保証されないという欠点がある。
**TCPプロトコル [#nd1e34ab]
-TCPは、IPアドレスを使用する「コネクション型通信」である。
--「コネクション型通信」は、初めに通信する者同士がデータ...
--以後、このコネクションを使ってデータが正しく相手に届く...
-TCP/IPの[[プロトコル スタック>OSI参照モデル#se3b608d]](...
--トランザクション処理のような、アプリケーションがストレ...
--通信媒体上のエラーでデータが相手に届かなかったりデータ...
---一般的には、データを受けた側では必ず確認応答(以下、AC...
データの送受信が正しく処理されたことを相互に確認する。
---これによって、エラーのない信頼性のある通信を実現してい...
そして、どうしてもデータを送信できなければアプリケーショ...
*詳細 [#jf82e3dc]
**TCPとUDPの比較 [#g99f18d7]
***ヘッダ [#k42c4720]
-宛先IPアドレスは[[IPヘッダ>IPv4, v6#v8763850]]に、
-TCP, UDPヘッダにはポート番号が含まれる。
***特徴 [#abf808c3]
以下の表に、
-UDP: データグラム型通信
-TCP: コネクション型通信
の特徴をまとめた。
|#|比較項目|データグラム型通信|コネクション型通信|h
|1|通信目的|必ずしも応答を要求しない場合や、素早く相手に...
|2|オーバーヘッド|小さい。&br;接続の確立処理などを行わず...
|3|信頼性|低い。&br;エラーが発生しても再送処理などは行わ...
|4|適する通信の種類|1対多の通信や、信頼性よりもリアルタ...
-UDP
--データグラム型通信
--以下はアプリケーションで実装
---パケット送信順に並べる
---ロストしたパケットの再送要求など
--誤り検出
---チェックサム・ヘッダがある。
---誤り訂正はできない。
---誤り検出されたらパケット廃棄
-TCP
--コネクション型通信
---トランスポート層以上の経路で確立される。
---3ウェイ・ハンドシェイク (SYN、SYN ACK、ACK)
--ウィンドウ制御~
TCPパケットを(ACKの確認なしで)連続して送信する
---ウィンドウサイズを大きく調整して、データを纏めて送信で...
---ウィンドウサイズを小さく調整して、輻輳を回避できる。
--誤り訂正~
チェックサム・ヘッダがある。
---フォワード誤り訂正(前方誤り訂正、自己誤り訂正~
受信側が誤り訂正する方式
---バックワード誤り訂正(後方誤り訂正、再送誤り訂正~
受信側が再送要求し、送信側が誤り訂正する方式
**TCPプロトコルの伝送制御 [#n1816c39]
TCPプロトコルの伝送制御方法について簡単に説明する。
-TCPでは、信頼性のある通信を実現するために、~
「相手にデータが届いたことをACKから必ず確認する」という手...
--ACKにはアプリケーションは介在せず、TCP/IPのプロトコル ...
--このような仕組みになっているため、上位アプリケーション...
信頼性のある「コネクション型通信」を利用することができる。
-また、TCPでは効率の悪い「コネクション型通信」の転送方法...
***ウィンドウ制御 [#f3efcd07]
-この方式により、
--TCPパケットを(ACKの確認なしで)連続して送信することが...
--効率よく(ネットワークの帯域幅いっぱいまで)回線を利用...
#ref(WindowControl.png,left,nowrap,ウィンドウ制御)
-また、「ウィンドウ制御」では「シーケンス番号」と「ウィン...
--「シーケンス番号」は「ウィンドウ サイズ」上のデータの位...
--また、「ウィンドウ サイズ」はデータの流れを許可したり禁...
-「ウィンドウ制御」における「シーケンス番号」と「ウィンド...
--[参考]:@IT > 連載 > 基礎から学ぶWindowsネットワーク~
第14回 信頼性のある通信を実現するTCPプロトコル(その1)~
2.シーケンス番号とウィンドウ制御~
http://www.atmarkit.co.jp/fwin2k/network/baswinlan014/bas...
***TCPコネクションの状態 [#fe39f2c5]
TCPプロトコルは「コネクション型通信」のプロトコルであり、...
-TCPコネクションの状態の種類
--TCPコネクションには下記の状態がある。
--これは、現時点の状態がTCPコネクションの~
「オープン」 ⇒ 「通信経路の確保」 ⇒ 「クローズ」~
といったシーケンス中の何処にあるかを示すものである。
|#|区分|状態|意味|h
|1|>|>|ポート未使用状態側(双方の側)|
|1-1||CLOSED|未使用状態のTCPポート。&br;通常これが表示さ...
|2|>|>|リスニング ポートの作成側(パッシブ オープン側)|
|2-1||LISTENING|待ち受け状態(リスニング状態)のポート。&...
|2-2||SYN_RECEIVED|ACK(SYN/ACK)に対するACKの受信を待機...
|3|>|>|コネクション確立要求の送信側(アクティブ オープン...
|3-1||SYN_SENT|サーバに対してSYNを送信し、ACK(SYN/ACK)...
|4|>|>|コネクション確立状態側(双方の側)|
|4-1||ESTABLISHED|TCPコネクションが確立して通信している状...
|5|>|>|コネクション終了要求の送信側(アクティブ クローズ...
|5-1||FIN_WAIT_1|状況に応じて以下のいずれかの状態に遷移す...
|5-2||FIN_WAIT_2|FINの受信を待機している状態。&br;FINの受...
|5-3||CLOSING|FINに対するACK返信し、ACK(FIN ACK)の受信...
|5-4||TIME_WAIT|コネクションの終了待ち状態。&br;しばらく...
|6|>|>|コネクション終了要求の受信側(パッシブ クローズ側)|
|6-1||CLOSE_WAIT|ソケットを解放し、FINを送信してからLAST_...
|6-2||LAST_ACK|FINに対するACK(FIN ACK)の受信を待機して...
-状態の状態遷移図
--次に、この状態の状態遷移図を示す。
--ただし、コネクション終了要求(FIN)が重複し、~
FIN_WAIT_1の状態で先に相手からのFINを受け取った時の状態...
--TCPコネクションのオープン処理
---TCPでコネクションを確立するためには、~
3つのTCPパケット(SYN、ACK / SYN、ACK)の送受信を行う。
---これを「3ウェイ ハンドシェイク」という。
---RST / ACKで接続を拒否することもある。
#ref(TCP_Open.png,left,nowrap,TCPコネクションのオープン処...
--TCPコネクションのクローズ処理~
クローズ処理では、TCPコネクションの両端のアプリケーション...
4つのTCPパケット(FIN*2、FIN ACK*2)を送受信することによ...
#ref(TCP_Close.png,left,nowrap,TCPコネクションのクローズ...
***TCP,UDPの状態の確認([[netstatコマンド]]) [#v4563a06]
***クライアントとサーバー [#k2d044dd]
-一般的には
--パッシブ オープン側がサーバ
--アクティブ オープン側がクライアント
-しかし、TCP/IPは、本質的にはクライアント・サーバを区別し...
--コネクション確立後は、プログラムからクライアント・サー...
ソケットのストリーム バッファにデータを書き込むだけでデー...
--余談:FTP(アクティブ モード)など、クライアント側がパ...
---クライアント側がパッシブ オープンし、
---サーバ側が(クライアント側のリスニング ポートに対して...
***TCPのチューニング [#k8f781f3]
新しいOSでは変更などもあるかも。
-Windows XP での TCP/IP と NBT の構成パラメータ~
http://support.microsoft.com/kb/314053/ja
--TCPのチューニング パラメータ~
以下、Windows OSの[[レジストリ チューニング パラメータ>レ...
|#|>|項目|型|説明|h
|1|>|>|>|TCP/IPインターフェイス関連の設定&br;HKEY_LOCAL_M...
|1-1||MTU|DWORD|IPパケットのサイズを決定する。大きなパケ...
|2|>|>|>|TCP/IP関連の設定&br;HKEY_LOCAL_MACHINE\SYSTEM\Cu...
|2-1||RWIN(TcpWindowSize)|DWORD|TCPのウィンドウ制御に使用...
|2-2||MSS(Maximum Segment Size)|DWORD|通常は MTU値から 40...
|2-3||DefaultTTL|DWORD|パケットを破棄するまでの時間(経由...
|2-4||SackOpts|DWORD|1:有効(デフォルト)、0:無効&br;エ...
|2-5||TcpMaxDupAcks|DWORD|パケット紛失を判断する通知回数...
|2-6||Tcp1323Opts|DWORD|3は、window scale、timestamps オ...
|2-7||EnablePMTUBHDetect|DWORD|1:有効、0:無効(デフォル...
|2-8||EnablePMTUDiscovery|DWORD|1:有効(デフォルト)、0...
|3|>|>|>|AFD (Ancillary Function Driver)が使用するフロー...
|3-1||LargeBufferSize|DWORD|初期値:00001000&br;AFDが使用...
|3-2||MediumBufferSize|DWORD|初期値:000005e0&br;AFDが使...
|3-3||SmallBufferSize|DWORD|初期値:00000080&br;AFDが使用...
|3-4||TransmitWorker|DWORD|有効値は0x10(デフォルト)か0x...
|3-5||DefaultReceiveWindow|DWORD|AFDが使用するバッファの...
|3-5||DefaultSendWindow|DWORD|AFDが使用するバッファのサイ...
--Window Scalingオプション(TCPウィンドウ拡大オプション)~
---TcpWindowSize値を 65536以上に設定する場合に有効にする。
--Time Stampsオプション
---TcpWindowSize値を 65536以上に設定する場合に有効にする。
---ただし、TCPヘッダが12バイト増加するため、実効データ帯...
-チューニング例
--一般的な、TCPのチューニング
---一般的な、TCPのチューニングとは、「帯域幅は大きいが、...
「[[TCPプロトコルの伝送制御>#n1816c39]]」で説明した、ACK...
---RWINのサイズとは、相手側の確認応答(Ack)を待たずに一...
--TCPのチューニングの要素
#ref(FactorsOfTcpTuning.png,left,nowrap,TCPのチューニング...
--ウィンドウ サイズ(RWIN)の値の計算方法~
ウィンドウ サイズ(RWIN)の値の計算方法については、以下の...
回線速度 * pingが戻ってくる平均速度 = RWIN
次に、回線速度、pingが戻ってくる平均速度の求め方を説明す...
--回線速度~
「回線速度」は、以下の方法で求める。
---[[pingコマンド]]を使用してサイズの大きいIPパケットを送...
(ここでは、50 KBのIPパケットを送信するように指定した。[[...
C:\Documents and Settings\Administrator>ping xxx.xxx.xxx...
Pinging xxx.xxx.xxx.xxx with 50000 bytes of data:
Reply from xxx.xxx.xxx.xxx: bytes=50000 time=10ms TTL=128
Reply from xxx.xxx.xxx.xxx: bytes=50000 time=10ms TTL=128
Reply from xxx.xxx.xxx.xxx: bytes=50000 time=10ms TTL=128
Reply from xxx.xxx.xxx.xxx: bytes=50000 time=10ms TTL=128
Ping statistics for xxx.xxx.xxx.xxx:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 10ms, Maximum = 10ms, Average = 10ms
---回線速度は、以下の式で求めることができるので、
回線速度 ≒ データ サイズ / ( 所要時間 / 2 )
この式に当て込んで、回線速度は、~
回線速度 = 50 (KB) / ( 10 / 2 ) (msec)
= 50 / 5 (KB) / (msec)
= 10 * (1,000 (byte)) / (( 1 / 1,000 ) (sec))
= 10 * 1,000 * 1,000 (bps)
= 10,000,000 (bps)
= 10 (M bps)
10M bpsと算出できる。~
~
確認のため、ファイル共有(SMB)を使用して、100MBのファイ...
10秒程度で転送が完了すれば、pingを使用した方法でも回線速...
--pingが戻ってくる平均速度~
「pingが戻ってくる平均速度」は、以下の方法で求める。
---[[pingコマンド]]を使用して 1 パケット分のデータ(1,500...
C:\Documents and Settings\Administrator>ping xxx.xxx.xxx...
Pinging xxx.xxx.xxx.xxx with 1500 bytes of data:
Reply from xxx.xxx.xxx.xxx: bytes=1500 time=2ms TTL=128
Reply from xxx.xxx.xxx.xxx: bytes=1500 time=2ms TTL=128
Reply from xxx.xxx.xxx.xxx: bytes=1500 time=2ms TTL=128
Reply from xxx.xxx.xxx.xxx: bytes=1500 time=2ms TTL=128
Ping statistics for xxx.xxx.xxx.xxx:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 2ms, Maximum = 2ms, Average = 2ms
この時のAverageの値である2ミリ秒が「pingが戻ってくる平均...
---上記の環境(100BASE-TXのローカル ネットワーク間のノー...
● 回線速度 :10 M bps~
● pingが戻ってくる平均速度 :2 m sec~
で必要なRWINの値は、
回線速度 * pingが戻ってくる平均速度 = RWIN
の計算方法式に当てはめ、次のようになる。
RWIN = 10 ( MB / sec ) * 2 ( msec )
= 10 * (1,000 (KB / sec)) * (( 2 / 1,000 ) (sec))
= 10 * 1,000・( 2 / 1,000 ) ((KB / sec) (sec))
= 10 * 2 ( KB )
= 20 ( KB )
= 20,000 ( byte )
--結果
---デフォルトのRWINの値は、65,535 byteであるため、帯域幅...
遅延の大きいネットワーク間のノードの通信でない限り、~
TCPのチューニング(RWINの拡張)は基本的に必要無い。
---また、以下のチューニング ポイントも考慮する。~
● RWINは、MSSの整数倍に設定する。~
● パケット再送信が起きる場合は、RWINを1.5倍する。
----
Tags: [[:IT国際標準]], [[:インフラストラクチャ]], [[:通信...
終了行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>ネットワークの基礎編]]
* 目次 [#y872a9ac]
#contents
*概要 [#a333065c]
-TCP、UDPプロトコルについて説明する。
-現在のWindowsネットワークでは、TCP、UDPプロトコルが標準...
-一般的なサービスやそのクライアント アプリケーションが使...
「%windir%\system32\drivers\etc\services」に記述されてい...
**UDPプロトコル [#h9fe0c6d]
-UDPは、IPアドレスを使用する「データグラム型通信」である。
--「データグラム型通信」は高速で、
--1対1の通信機能(ユニキャスト)だけではなく
--1対多の通信機能([[ブロードキャスト>ネットワークの基礎...
-また、ステートレスなサービスを実装しやすいという特徴があ...
データが相手に届いたことが保証されないという欠点がある。
**TCPプロトコル [#nd1e34ab]
-TCPは、IPアドレスを使用する「コネクション型通信」である。
--「コネクション型通信」は、初めに通信する者同士がデータ...
--以後、このコネクションを使ってデータが正しく相手に届く...
-TCP/IPの[[プロトコル スタック>OSI参照モデル#se3b608d]](...
--トランザクション処理のような、アプリケーションがストレ...
--通信媒体上のエラーでデータが相手に届かなかったりデータ...
---一般的には、データを受けた側では必ず確認応答(以下、AC...
データの送受信が正しく処理されたことを相互に確認する。
---これによって、エラーのない信頼性のある通信を実現してい...
そして、どうしてもデータを送信できなければアプリケーショ...
*詳細 [#jf82e3dc]
**TCPとUDPの比較 [#g99f18d7]
***ヘッダ [#k42c4720]
-宛先IPアドレスは[[IPヘッダ>IPv4, v6#v8763850]]に、
-TCP, UDPヘッダにはポート番号が含まれる。
***特徴 [#abf808c3]
以下の表に、
-UDP: データグラム型通信
-TCP: コネクション型通信
の特徴をまとめた。
|#|比較項目|データグラム型通信|コネクション型通信|h
|1|通信目的|必ずしも応答を要求しない場合や、素早く相手に...
|2|オーバーヘッド|小さい。&br;接続の確立処理などを行わず...
|3|信頼性|低い。&br;エラーが発生しても再送処理などは行わ...
|4|適する通信の種類|1対多の通信や、信頼性よりもリアルタ...
-UDP
--データグラム型通信
--以下はアプリケーションで実装
---パケット送信順に並べる
---ロストしたパケットの再送要求など
--誤り検出
---チェックサム・ヘッダがある。
---誤り訂正はできない。
---誤り検出されたらパケット廃棄
-TCP
--コネクション型通信
---トランスポート層以上の経路で確立される。
---3ウェイ・ハンドシェイク (SYN、SYN ACK、ACK)
--ウィンドウ制御~
TCPパケットを(ACKの確認なしで)連続して送信する
---ウィンドウサイズを大きく調整して、データを纏めて送信で...
---ウィンドウサイズを小さく調整して、輻輳を回避できる。
--誤り訂正~
チェックサム・ヘッダがある。
---フォワード誤り訂正(前方誤り訂正、自己誤り訂正~
受信側が誤り訂正する方式
---バックワード誤り訂正(後方誤り訂正、再送誤り訂正~
受信側が再送要求し、送信側が誤り訂正する方式
**TCPプロトコルの伝送制御 [#n1816c39]
TCPプロトコルの伝送制御方法について簡単に説明する。
-TCPでは、信頼性のある通信を実現するために、~
「相手にデータが届いたことをACKから必ず確認する」という手...
--ACKにはアプリケーションは介在せず、TCP/IPのプロトコル ...
--このような仕組みになっているため、上位アプリケーション...
信頼性のある「コネクション型通信」を利用することができる。
-また、TCPでは効率の悪い「コネクション型通信」の転送方法...
***ウィンドウ制御 [#f3efcd07]
-この方式により、
--TCPパケットを(ACKの確認なしで)連続して送信することが...
--効率よく(ネットワークの帯域幅いっぱいまで)回線を利用...
#ref(WindowControl.png,left,nowrap,ウィンドウ制御)
-また、「ウィンドウ制御」では「シーケンス番号」と「ウィン...
--「シーケンス番号」は「ウィンドウ サイズ」上のデータの位...
--また、「ウィンドウ サイズ」はデータの流れを許可したり禁...
-「ウィンドウ制御」における「シーケンス番号」と「ウィンド...
--[参考]:@IT > 連載 > 基礎から学ぶWindowsネットワーク~
第14回 信頼性のある通信を実現するTCPプロトコル(その1)~
2.シーケンス番号とウィンドウ制御~
http://www.atmarkit.co.jp/fwin2k/network/baswinlan014/bas...
***TCPコネクションの状態 [#fe39f2c5]
TCPプロトコルは「コネクション型通信」のプロトコルであり、...
-TCPコネクションの状態の種類
--TCPコネクションには下記の状態がある。
--これは、現時点の状態がTCPコネクションの~
「オープン」 ⇒ 「通信経路の確保」 ⇒ 「クローズ」~
といったシーケンス中の何処にあるかを示すものである。
|#|区分|状態|意味|h
|1|>|>|ポート未使用状態側(双方の側)|
|1-1||CLOSED|未使用状態のTCPポート。&br;通常これが表示さ...
|2|>|>|リスニング ポートの作成側(パッシブ オープン側)|
|2-1||LISTENING|待ち受け状態(リスニング状態)のポート。&...
|2-2||SYN_RECEIVED|ACK(SYN/ACK)に対するACKの受信を待機...
|3|>|>|コネクション確立要求の送信側(アクティブ オープン...
|3-1||SYN_SENT|サーバに対してSYNを送信し、ACK(SYN/ACK)...
|4|>|>|コネクション確立状態側(双方の側)|
|4-1||ESTABLISHED|TCPコネクションが確立して通信している状...
|5|>|>|コネクション終了要求の送信側(アクティブ クローズ...
|5-1||FIN_WAIT_1|状況に応じて以下のいずれかの状態に遷移す...
|5-2||FIN_WAIT_2|FINの受信を待機している状態。&br;FINの受...
|5-3||CLOSING|FINに対するACK返信し、ACK(FIN ACK)の受信...
|5-4||TIME_WAIT|コネクションの終了待ち状態。&br;しばらく...
|6|>|>|コネクション終了要求の受信側(パッシブ クローズ側)|
|6-1||CLOSE_WAIT|ソケットを解放し、FINを送信してからLAST_...
|6-2||LAST_ACK|FINに対するACK(FIN ACK)の受信を待機して...
-状態の状態遷移図
--次に、この状態の状態遷移図を示す。
--ただし、コネクション終了要求(FIN)が重複し、~
FIN_WAIT_1の状態で先に相手からのFINを受け取った時の状態...
--TCPコネクションのオープン処理
---TCPでコネクションを確立するためには、~
3つのTCPパケット(SYN、ACK / SYN、ACK)の送受信を行う。
---これを「3ウェイ ハンドシェイク」という。
---RST / ACKで接続を拒否することもある。
#ref(TCP_Open.png,left,nowrap,TCPコネクションのオープン処...
--TCPコネクションのクローズ処理~
クローズ処理では、TCPコネクションの両端のアプリケーション...
4つのTCPパケット(FIN*2、FIN ACK*2)を送受信することによ...
#ref(TCP_Close.png,left,nowrap,TCPコネクションのクローズ...
***TCP,UDPの状態の確認([[netstatコマンド]]) [#v4563a06]
***クライアントとサーバー [#k2d044dd]
-一般的には
--パッシブ オープン側がサーバ
--アクティブ オープン側がクライアント
-しかし、TCP/IPは、本質的にはクライアント・サーバを区別し...
--コネクション確立後は、プログラムからクライアント・サー...
ソケットのストリーム バッファにデータを書き込むだけでデー...
--余談:FTP(アクティブ モード)など、クライアント側がパ...
---クライアント側がパッシブ オープンし、
---サーバ側が(クライアント側のリスニング ポートに対して...
***TCPのチューニング [#k8f781f3]
新しいOSでは変更などもあるかも。
-Windows XP での TCP/IP と NBT の構成パラメータ~
http://support.microsoft.com/kb/314053/ja
--TCPのチューニング パラメータ~
以下、Windows OSの[[レジストリ チューニング パラメータ>レ...
|#|>|項目|型|説明|h
|1|>|>|>|TCP/IPインターフェイス関連の設定&br;HKEY_LOCAL_M...
|1-1||MTU|DWORD|IPパケットのサイズを決定する。大きなパケ...
|2|>|>|>|TCP/IP関連の設定&br;HKEY_LOCAL_MACHINE\SYSTEM\Cu...
|2-1||RWIN(TcpWindowSize)|DWORD|TCPのウィンドウ制御に使用...
|2-2||MSS(Maximum Segment Size)|DWORD|通常は MTU値から 40...
|2-3||DefaultTTL|DWORD|パケットを破棄するまでの時間(経由...
|2-4||SackOpts|DWORD|1:有効(デフォルト)、0:無効&br;エ...
|2-5||TcpMaxDupAcks|DWORD|パケット紛失を判断する通知回数...
|2-6||Tcp1323Opts|DWORD|3は、window scale、timestamps オ...
|2-7||EnablePMTUBHDetect|DWORD|1:有効、0:無効(デフォル...
|2-8||EnablePMTUDiscovery|DWORD|1:有効(デフォルト)、0...
|3|>|>|>|AFD (Ancillary Function Driver)が使用するフロー...
|3-1||LargeBufferSize|DWORD|初期値:00001000&br;AFDが使用...
|3-2||MediumBufferSize|DWORD|初期値:000005e0&br;AFDが使...
|3-3||SmallBufferSize|DWORD|初期値:00000080&br;AFDが使用...
|3-4||TransmitWorker|DWORD|有効値は0x10(デフォルト)か0x...
|3-5||DefaultReceiveWindow|DWORD|AFDが使用するバッファの...
|3-5||DefaultSendWindow|DWORD|AFDが使用するバッファのサイ...
--Window Scalingオプション(TCPウィンドウ拡大オプション)~
---TcpWindowSize値を 65536以上に設定する場合に有効にする。
--Time Stampsオプション
---TcpWindowSize値を 65536以上に設定する場合に有効にする。
---ただし、TCPヘッダが12バイト増加するため、実効データ帯...
-チューニング例
--一般的な、TCPのチューニング
---一般的な、TCPのチューニングとは、「帯域幅は大きいが、...
「[[TCPプロトコルの伝送制御>#n1816c39]]」で説明した、ACK...
---RWINのサイズとは、相手側の確認応答(Ack)を待たずに一...
--TCPのチューニングの要素
#ref(FactorsOfTcpTuning.png,left,nowrap,TCPのチューニング...
--ウィンドウ サイズ(RWIN)の値の計算方法~
ウィンドウ サイズ(RWIN)の値の計算方法については、以下の...
回線速度 * pingが戻ってくる平均速度 = RWIN
次に、回線速度、pingが戻ってくる平均速度の求め方を説明す...
--回線速度~
「回線速度」は、以下の方法で求める。
---[[pingコマンド]]を使用してサイズの大きいIPパケットを送...
(ここでは、50 KBのIPパケットを送信するように指定した。[[...
C:\Documents and Settings\Administrator>ping xxx.xxx.xxx...
Pinging xxx.xxx.xxx.xxx with 50000 bytes of data:
Reply from xxx.xxx.xxx.xxx: bytes=50000 time=10ms TTL=128
Reply from xxx.xxx.xxx.xxx: bytes=50000 time=10ms TTL=128
Reply from xxx.xxx.xxx.xxx: bytes=50000 time=10ms TTL=128
Reply from xxx.xxx.xxx.xxx: bytes=50000 time=10ms TTL=128
Ping statistics for xxx.xxx.xxx.xxx:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 10ms, Maximum = 10ms, Average = 10ms
---回線速度は、以下の式で求めることができるので、
回線速度 ≒ データ サイズ / ( 所要時間 / 2 )
この式に当て込んで、回線速度は、~
回線速度 = 50 (KB) / ( 10 / 2 ) (msec)
= 50 / 5 (KB) / (msec)
= 10 * (1,000 (byte)) / (( 1 / 1,000 ) (sec))
= 10 * 1,000 * 1,000 (bps)
= 10,000,000 (bps)
= 10 (M bps)
10M bpsと算出できる。~
~
確認のため、ファイル共有(SMB)を使用して、100MBのファイ...
10秒程度で転送が完了すれば、pingを使用した方法でも回線速...
--pingが戻ってくる平均速度~
「pingが戻ってくる平均速度」は、以下の方法で求める。
---[[pingコマンド]]を使用して 1 パケット分のデータ(1,500...
C:\Documents and Settings\Administrator>ping xxx.xxx.xxx...
Pinging xxx.xxx.xxx.xxx with 1500 bytes of data:
Reply from xxx.xxx.xxx.xxx: bytes=1500 time=2ms TTL=128
Reply from xxx.xxx.xxx.xxx: bytes=1500 time=2ms TTL=128
Reply from xxx.xxx.xxx.xxx: bytes=1500 time=2ms TTL=128
Reply from xxx.xxx.xxx.xxx: bytes=1500 time=2ms TTL=128
Ping statistics for xxx.xxx.xxx.xxx:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 2ms, Maximum = 2ms, Average = 2ms
この時のAverageの値である2ミリ秒が「pingが戻ってくる平均...
---上記の環境(100BASE-TXのローカル ネットワーク間のノー...
● 回線速度 :10 M bps~
● pingが戻ってくる平均速度 :2 m sec~
で必要なRWINの値は、
回線速度 * pingが戻ってくる平均速度 = RWIN
の計算方法式に当てはめ、次のようになる。
RWIN = 10 ( MB / sec ) * 2 ( msec )
= 10 * (1,000 (KB / sec)) * (( 2 / 1,000 ) (sec))
= 10 * 1,000・( 2 / 1,000 ) ((KB / sec) (sec))
= 10 * 2 ( KB )
= 20 ( KB )
= 20,000 ( byte )
--結果
---デフォルトのRWINの値は、65,535 byteであるため、帯域幅...
遅延の大きいネットワーク間のノードの通信でない限り、~
TCPのチューニング(RWINの拡張)は基本的に必要無い。
---また、以下のチューニング ポイントも考慮する。~
● RWINは、MSSの整数倍に設定する。~
● パケット再送信が起きる場合は、RWINを1.5倍する。
----
Tags: [[:IT国際標準]], [[:インフラストラクチャ]], [[:通信...
ページ名: