You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am trying to capture and analyze GAP messages in Wireshark to better understand the purpose of the GAP submessage, but I am having trouble reproducing a situation where a GAP message is generated.
Additional qos setting: piggyback heartbeat turned off (to prevent the reader from acknowledging too many samples and hopefully provoke a GAP situation)
My assumption was that if an unacknowledged sample is removed from the writer’s history, the writer should send a GAP message to inform the reader that it does not need to send a NACK for that sequence number anymore. (And writer may send GAP messages which only correspond to unacked messages)
However what I observed was that this situation might have been resolved using a HEARTBEAT message simply indicating the sequence number of the writer’s currently available cache. What i guess is the reader would have somehow processed the messages whose sequence numbers are smaller than HEARTBEAT's firstSn as not available, so it didn't need to send ACKNACK.
The only time I have seen a GAP message was when I had two volatile subscribers connected to one publisher, and one subscriber joined later than the other.
In that case, a GAP message was sent along with a HEARTBEAT, indicating that sequence number 415 was not available for the late joiner.
What I don't really understand is why the HEARTBEAT message contained a sequence number that was published long before the late joiner was matched to the publisher, and why a GAP message is still needed when the available sequence number range could have been adjusted.
Can anyone suggest the best scenario to produce GAP message and why does GAP behavior like this? Anything I have missed? Thanks.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
I am trying to capture and analyze GAP messages in Wireshark to better understand the purpose of the GAP submessage, but I am having trouble reproducing a situation where a GAP message is generated.
Here is my test environment:
configuration subscriber -r -d 80configuration publisher -d 80 -r -i 33 -k 1My assumption was that if an unacknowledged sample is removed from the writer’s history, the writer should send a GAP message to inform the reader that it does not need to send a NACK for that sequence number anymore. (And writer may send GAP messages which only correspond to unacked messages)
However what I observed was that this situation might have been resolved using a HEARTBEAT message simply indicating the sequence number of the writer’s currently available cache. What i guess is the reader would have somehow processed the messages whose sequence numbers are smaller than HEARTBEAT's firstSn as not available, so it didn't need to send ACKNACK.
The only time I have seen a GAP message was when I had two volatile subscribers connected to one publisher, and one subscriber joined later than the other.
In that case, a GAP message was sent along with a HEARTBEAT, indicating that sequence number 415 was not available for the late joiner.
What I don't really understand is why the HEARTBEAT message contained a sequence number that was published long before the late joiner was matched to the publisher, and why a GAP message is still needed when the available sequence number range could have been adjusted.
Can anyone suggest the best scenario to produce GAP message and why does GAP behavior like this? Anything I have missed? Thanks.
Beta Was this translation helpful? Give feedback.
All reactions