知識マップ: TCP再送で産業用カメラ通信が止まる原因と切り分け
記事「TCP再送で産業用カメラ通信が止まる原因と切り分け」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
産業用カメラ制御アプリで、まれに数秒だけ通信が止まる原因を切り分けた記事である。原因はアプリの停止ではなく、パケットロスによってACKが返らず、TCPが再送タイマ(RTO)の満了を待つ再送待ちだった。RTOは初期値1秒を基準に失敗のたびに倍化するため、条件が悪いと数秒単位の停止に見える。TCPタイムスタンプオプション(RFC1323/RFC7323)を有効にすると、Karnのアルゴリズムが禁じる再送セグメントからのRTT測定という制約を外し、RTOが過度に保守的なまま残る時間を抑えられたが、パケットロス自体を消す仕組みではない。Wiresharkでの再送と待ち時間の確認、SYN/SYN-ACKでのTSopt交渉確認が切り分けの基本になる。
flowchart LR
accTitle: TCP再送とRFC1323タイムスタンプの知識マップ
accDescr: パケットロスがTCP再送とRTO待ちを引き起こし数秒間の通信停止に見えること、TCPタイムスタンプオプションがKarnのアルゴリズムの制約を外して再送時のRTT測定の曖昧さを軽減すること、Wiresharkでの確認手順との関係を示す図
tcp_retransmission["TCP再送(TCP Retransmission)"]
tcp_rto["RTO(再送タイマ)"]
tcp_timestamps_option["TCPタイムスタンプオプション"]
packet_loss["パケットロス"]
tcp_rtt["RTT(往復時間)"]
intermittent_communication_stall["断続的な数秒間の通信停止"]
wireshark["Wireshark"]
rttm["RTTM(往復時間測定)"]
paws["PAWS(シーケンス番号一周対策)"]
karn_algorithm["Karnのアルゴリズム"]
retransmission_rtt_ambiguity["再送時のRTT測定の曖昧さ"]
fast_retransmit["fast retransmit(高速再送)"]
duplicate_ack["Duplicate ACK(重複ACK)"]
tcp_handshake["TCPの3-way handshake"]
windows_tcp_timestamp_setting["WindowsのTCPタイムスタンプ設定"]
packet_loss -->|"原因になり得る"| tcp_retransmission
tcp_retransmission -.->|"前提とする"| tcp_rto
tcp_rto -->|"利用する"| tcp_rtt
tcp_retransmission -->|"原因になり得る"| intermittent_communication_stall
intermittent_communication_stall -->|"で確認できる"| wireshark
tcp_retransmission -->|"で確認できる"| wireshark
packet_loss -->|"で確認できる"| wireshark
tcp_timestamps_option -->|"利用する"| rttm
tcp_timestamps_option -->|"利用する"| paws
karn_algorithm -->|"軽減する"| retransmission_rtt_ambiguity
tcp_timestamps_option -->|"軽減する"| retransmission_rtt_ambiguity
tcp_timestamps_option -.->|"軽減する"| intermittent_communication_stall
fast_retransmit -.->|"防止する"| tcp_rto
fast_retransmit -->|"前提とする"| duplicate_ack
packet_loss -->|"原因になり得る"| duplicate_ack
tcp_timestamps_option -->|"前提とする"| tcp_handshake
tcp_timestamps_option -.->|"で構成できる"| windows_tcp_timestamp_setting
windows_tcp_timestamp_setting -->|"で確認できる"| wireshark
tcp_rto -->|"利用する"| karn_algorithm
概念間の関係(全19件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- パケットロスはTCP再送(TCP Retransmission)の原因になることがあります。
- TCP再送(TCP Retransmission)はRTO(再送タイマ)を前提とします。
- RTO(再送タイマ)はRTT(往復時間)を利用します。
- TCP再送(TCP Retransmission)は断続的な数秒間の通信停止の原因になることがあります。
- 断続的な数秒間の通信停止はWiresharkで確認できます。
- TCP再送(TCP Retransmission)はWiresharkで確認できます。
- パケットロスはWiresharkで確認できます。
- TCPタイムスタンプオプションはRTTM(往復時間測定)を利用します。
- TCPタイムスタンプオプションはPAWS(シーケンス番号一周対策)を利用します。
- Karnのアルゴリズムは再送時のRTT測定の曖昧さを軽減します。
- TCPタイムスタンプオプションは再送時のRTT測定の曖昧さを軽減します。
- TCPタイムスタンプオプションは断続的な数秒間の通信停止を軽減します。
- fast retransmit(高速再送)はRTO(再送タイマ)を防ぎます。
- fast retransmit(高速再送)はDuplicate ACK(重複ACK)を前提とします。
- パケットロスはDuplicate ACK(重複ACK)の原因になることがあります。
- TCPタイムスタンプオプションはTCPの3-way handshakeを前提とします。
- TCPタイムスタンプオプションはWindowsのTCPタイムスタンプ設定で構成できます。
- WindowsのTCPタイムスタンプ設定はWiresharkで確認できます。
- RTO(再送タイマ)はKarnのアルゴリズムを利用します。
主要概念の定義
機械可読データ
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。