Produced by OmniGraffle 7.7.1
2018-07-04 12:39:41 +0000
transmit path
Layer 1
timed
events
thread
proxy
reader
writer
history
dest.
locators
writer
QOS
QOS
"writer" is a DDSI writer,
which is a proxy for a local
DCPS writer; "proxy
reader" is a proxy for a
remote DDSI reader.
transmit path
set
locators
set
ack info
serdata is CDR
encoded data and a
separate copy of its
key (except for
discovery message
where it uses the
DDSI "parameter-list"
encoding).
xpacks
an xmsg either references
the destination address
set of a writer, or a
locator of a proxy-reader.
application
writes
sockets
writer history indexed by sequence
number (seqidx; for retransmitting
on request) and by key (tlidx)—key
used only for retaining/dropping data
when new data comes in
ack info: highest sequence
number ack'd so far; writer can
drop non-TL msgs from the
WHC with sequence numbers
less than the minimum over all
matched readers; unreliable
readers have it fixed at MAX.
whc
node
ser.data
refcounted
refcounted
copied
writer
match
proxy
reader
match
guid
guid
set
set
guid
hash
table
guid
hash
table
DCPS
writer
xmsg
timed events: xmsgs for delayed
transmission (delay can be 0),
heartbeat, ack generation,
automatic liveliness "participant
message" generation, SPDP
generation, &c.
an xmsg for transmitting a
sample references a serdata
along with a base+length pair;
large samples are fragmented
"on-the-fly", each fragment
references a different range of
the CDR encoded data.
xpacks bundle xmsgs into
DDSI messages, copying
some things and leaving
others as references; xmsgs
included in an xpack are
explicitly tracked.
reader
match
reader
rdary
guid
set
set
The local delivery path is
essentially the same for
local writers & for proxy
writers