知識マップ: TCP再送で産業用カメラ通信が止まる原因と切り分け

記事「TCP再送で産業用カメラ通信が止まる原因と切り分け」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。

産業用カメラ制御アプリで、まれに数秒だけ通信が止まる原因を切り分けた記事である。原因はアプリの停止ではなく、パケットロスによってACKが返らず、TCPが再送タイマ(RTO)の満了を待つ再送待ちだった。RTOは初期値1秒を基準に失敗のたびに倍化するため、条件が悪いと数秒単位の停止に見える。TCPタイムスタンプオプション(RFC1323/RFC7323)を有効にすると、Karnのアルゴリズムが禁じる再送セグメントからのRTT測定という制約を外し、RTOが過度に保守的なまま残る時間を抑えられたが、パケットロス自体を消す仕組みではない。Wiresharkでの再送と待ち時間の確認、SYN/SYN-ACKでのTSopt交渉確認が切り分けの基本になる。

TCP再送とRFC1323タイムスタンプの知識マップパケットロスがTCP再送とRTO待ちを引き起こし数秒間の通信停止に見えること、TCPタイムスタンプオプションがKarnのアルゴリズムの制約を外して再送時のRTT測定の曖昧さを軽減すること、Wiresharkでの確認手順との関係を示す図原因になり得る前提とする利用する原因になり得るで確認できるで確認できるで確認できる利用する利用する軽減する軽減する軽減する防止する前提とする原因になり得る前提とするで構成できるで確認できる利用するTCP再送(TCP Retransmission)RTO(再送タイマ)TCPタイムスタンプオプションパケットロスRTT(往復時間)断続的な数秒間の通信停止WiresharkRTTM(往復時間測定)PAWS(シーケンス番号一周対策)Karnのアルゴリズム再送時のRTT測定の曖昧さfast retransmit(高速再送)Duplicate ACK(重複ACK)TCPの3-way handshakeWindowsのTCPタイムスタンプ設定

概念間の関係(全19件)

図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。

主要概念の定義

TCP再送(TCP Retransmission)
送信したパケットに対するACKが返ってこないとき、TCPが同じデータを再度送信する仕組みである。
RTO(再送タイマ)
この時間内にACKが返らなければ再送する、RTTの推定値から計算されるTCPの再送タイマである。
TCPタイムスタンプオプション
TCPヘッダーに付く、種別8・長さ10バイトのオプションで、RTTM(RTT測定)とPAWS(シーケンス番号一周対策)のために送信側の時刻値TSvalとその応答TSecrを運ぶ仕組みである。
パケットロス
送信されたパケットが途中の経路で失われ、受信側に届かなくなる現象である。
断続的な数秒間の通信停止
平均では速いのに、まれに数秒単位で応答が止まる通信症状で、多くはアプリの停止ではなくTCPの再送待ちが原因になる。
Karnのアルゴリズム
再送したセグメントに対するACKはどちらの送信への応答か分からないため、そこからRTTサンプルを取ってはいけないとする規則である。
fast retransmit(高速再送)
同じシーケンス番号を指すDuplicate ACKが一定数(Windowsの既定では3つ)たまったら、RTOの満了を待たずに再送する仕組みである。
WindowsのTCPタイムスタンプ設定
netsh interface tcp、PowerShellのSet-NetTCPSetting、レジストリのTcp1323Optsのいずれかで行う、WindowsのTCPタイムスタンプオプションの有効化設定である。

機械可読データ

このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。