TCP
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*TCP とは [#z837be3c]
**名称 [#f0cc4e87]
-Transmission Control Protocol
**概要 [#fe9200f3]
-トランスポート層([[OSI参照モデル]]、[[TCP/IPモデル]])...
-コネクション型
--通信の[[信頼性]]が高い
--送信元[[IPアドレス]]の偽装が難しい(可能ではある)
-[[セグメント]]
--TCPでやりとりするデータの単位([[PDU]])
*TCP の機能 [#n91306de]
-再送処理
--再送タイムアウト([[RTO]])
--高速再転送
-フロー制御
-輻輳制御
*TCPの仕組み [#t30689b8]
**TCPコネクション [#ldc46dbb]
-通信の開始時に通信路を確立し、終了時に通信路を解放する
-TCPコネクションは下記の4つの情報によって識別される
--宛先IPアドレス
--宛先ポート番号(TCP)
--送信元IPアドレス
--送信元ポート番号(TCP)
-3つのフェーズで行われる
++コネクション確立フェーズ
++通信フェーズ
++コネクション切断フェーズ
***(1) コネクション確立フェーズ [#a38000d7]
-[[3wayハンドシェイク]]
--1. →(SYN)
--2. ←(ACK + SYN)
--3. →(ACK)
-※SYN:コネクション確立要求
-※ACK:肯定応答
***(2) 通信フェーズ [#a776f646]
***(3) コネクション切断フェーズ [#j7f991bf]
--1. →(FIN + ACK)
--2. ←(ACK)
--3. ←(FIN + ACK)
--4. →(ACK)
*TCP のデータ構造 [#qd8f92b0]
-TCPヘッダとペイロードで構成される
--TCPヘッダ(20バイト~)
--ペイロード(アプリケーション層のデータ)
**TCPヘッダ [#o850903a]
-1〜32bit
--送信元[[ポート番号]](16)
--宛先[[ポート番号]](16)
-33〜64bit
--シーケンス番号(32)
-65〜96bit
--確認応答番号(ACK番号)(32)
-97〜128bit
--データオフセット(4) ※TCPヘッダ長:単位は4Byte(32bit)
--予約(6) ※未使用(末尾3桁をコントロールフラグとして使う)
--コントロールフラグ(6)
--ウィンドウサイズ(16)
-129〜160bit(20Byte)
--チェックサム(16) ※TCPセグメント(TCPヘッダ + ペイロー...
--緊急ポインタ(16)
-161〜192bit
--オプション(n)
--パディング(32-n)
***シーケンス番号 [#xf7c56db]
-送信データの連番
-初期値はランダムな値
***確認応答番号(ACK番号) [#i3d9bfcf]
-受信データの連番
-3ウェイハンドシェイク前
--相手から受け取ったシーケンス番号に1を加算した値
-3ウェイハンドシェイク後
--相手から受け取ったシーケンス番号にデータサイズ(Byte)...
***コントロールフラグ [#qcb22efb]
-コードビット
-コントロールビット
-予約(末尾3桁)
| ビット位置 | コードビット | | 意味 |h
| 1 | NS | ECN-nonce | RFC3540 |
| 2 | CWR | congestion window reduced | 輻輳ウィンドウ減...
| 3 | ECE | EDN-echo | 輻輳発生の通知。RFC3168 |
-コントロールフラグ(6桁) ※RFC793
| ビット位置 | コードビット | | 意味 |h
| 1 | URG | urgent | 緊急 |
| 2 | ACK | acknowledgement | 応答。SYNパケットの場合"0"...
| 3 | PSH | push | プッシュ |
| 4 | RST | reset | リセット。TCP接続を強制終了する場合"1...
| 5 | SYN | synchronize | 同期。SYNパケットの場合"1"、SYN...
| 6 | FIN | finish | 終了。TCP接続を終了する場合"1" |
**SYNクッキー [#w9a3179d]
-TCP通信の正当性を確認するために、SYN/ACKパケットのシーケ...
-TCPヘッダをハッシュ化した値などが使われる
-SYN/ACKパケットを応答する際はTCPソケットはオープンしない
-[[SYNフラッド攻撃]]の対策として有効
*TCPの脆弱性 [#vcb4764a]
-発信元IPアドレスの偽装が難しい
-発信元IPアドレスが偽装されていても、コネクションの確立が...
--[[SYNフラッド攻撃]]
-接続要求(SYN)に対する応答(SYN/ACK)を攻撃に悪用される
--反射・増幅型[[DDoS攻撃]]
-初期シーケンス番号を推測した[[セッション・ハイジャック]]
-TCP ACKスキャン
--「[[ポートスキャン]]」参照
*関連用語 [#qd1439c9]
-[[Keep-Alive]]
-[[TCP/IP]]
-[[TFO]](TCPファストオープン)
-[[SPDY]]
-[[DCTCP]](データセンターTCP)
-[[セグメント]]
-ハーフオープン
-[[UDP]]
終了行:
*TCP とは [#z837be3c]
**名称 [#f0cc4e87]
-Transmission Control Protocol
**概要 [#fe9200f3]
-トランスポート層([[OSI参照モデル]]、[[TCP/IPモデル]])...
-コネクション型
--通信の[[信頼性]]が高い
--送信元[[IPアドレス]]の偽装が難しい(可能ではある)
-[[セグメント]]
--TCPでやりとりするデータの単位([[PDU]])
*TCP の機能 [#n91306de]
-再送処理
--再送タイムアウト([[RTO]])
--高速再転送
-フロー制御
-輻輳制御
*TCPの仕組み [#t30689b8]
**TCPコネクション [#ldc46dbb]
-通信の開始時に通信路を確立し、終了時に通信路を解放する
-TCPコネクションは下記の4つの情報によって識別される
--宛先IPアドレス
--宛先ポート番号(TCP)
--送信元IPアドレス
--送信元ポート番号(TCP)
-3つのフェーズで行われる
++コネクション確立フェーズ
++通信フェーズ
++コネクション切断フェーズ
***(1) コネクション確立フェーズ [#a38000d7]
-[[3wayハンドシェイク]]
--1. →(SYN)
--2. ←(ACK + SYN)
--3. →(ACK)
-※SYN:コネクション確立要求
-※ACK:肯定応答
***(2) 通信フェーズ [#a776f646]
***(3) コネクション切断フェーズ [#j7f991bf]
--1. →(FIN + ACK)
--2. ←(ACK)
--3. ←(FIN + ACK)
--4. →(ACK)
*TCP のデータ構造 [#qd8f92b0]
-TCPヘッダとペイロードで構成される
--TCPヘッダ(20バイト~)
--ペイロード(アプリケーション層のデータ)
**TCPヘッダ [#o850903a]
-1〜32bit
--送信元[[ポート番号]](16)
--宛先[[ポート番号]](16)
-33〜64bit
--シーケンス番号(32)
-65〜96bit
--確認応答番号(ACK番号)(32)
-97〜128bit
--データオフセット(4) ※TCPヘッダ長:単位は4Byte(32bit)
--予約(6) ※未使用(末尾3桁をコントロールフラグとして使う)
--コントロールフラグ(6)
--ウィンドウサイズ(16)
-129〜160bit(20Byte)
--チェックサム(16) ※TCPセグメント(TCPヘッダ + ペイロー...
--緊急ポインタ(16)
-161〜192bit
--オプション(n)
--パディング(32-n)
***シーケンス番号 [#xf7c56db]
-送信データの連番
-初期値はランダムな値
***確認応答番号(ACK番号) [#i3d9bfcf]
-受信データの連番
-3ウェイハンドシェイク前
--相手から受け取ったシーケンス番号に1を加算した値
-3ウェイハンドシェイク後
--相手から受け取ったシーケンス番号にデータサイズ(Byte)...
***コントロールフラグ [#qcb22efb]
-コードビット
-コントロールビット
-予約(末尾3桁)
| ビット位置 | コードビット | | 意味 |h
| 1 | NS | ECN-nonce | RFC3540 |
| 2 | CWR | congestion window reduced | 輻輳ウィンドウ減...
| 3 | ECE | EDN-echo | 輻輳発生の通知。RFC3168 |
-コントロールフラグ(6桁) ※RFC793
| ビット位置 | コードビット | | 意味 |h
| 1 | URG | urgent | 緊急 |
| 2 | ACK | acknowledgement | 応答。SYNパケットの場合"0"...
| 3 | PSH | push | プッシュ |
| 4 | RST | reset | リセット。TCP接続を強制終了する場合"1...
| 5 | SYN | synchronize | 同期。SYNパケットの場合"1"、SYN...
| 6 | FIN | finish | 終了。TCP接続を終了する場合"1" |
**SYNクッキー [#w9a3179d]
-TCP通信の正当性を確認するために、SYN/ACKパケットのシーケ...
-TCPヘッダをハッシュ化した値などが使われる
-SYN/ACKパケットを応答する際はTCPソケットはオープンしない
-[[SYNフラッド攻撃]]の対策として有効
*TCPの脆弱性 [#vcb4764a]
-発信元IPアドレスの偽装が難しい
-発信元IPアドレスが偽装されていても、コネクションの確立が...
--[[SYNフラッド攻撃]]
-接続要求(SYN)に対する応答(SYN/ACK)を攻撃に悪用される
--反射・増幅型[[DDoS攻撃]]
-初期シーケンス番号を推測した[[セッション・ハイジャック]]
-TCP ACKスキャン
--「[[ポートスキャン]]」参照
*関連用語 [#qd1439c9]
-[[Keep-Alive]]
-[[TCP/IP]]
-[[TFO]](TCPファストオープン)
-[[SPDY]]
-[[DCTCP]](データセンターTCP)
-[[セグメント]]
-ハーフオープン
-[[UDP]]
ページ名: