<div dir="ltr">Hi Vince<div><br></div><div>This is similar to #1589 and #2174. Ubuntu could affected by those issues, but it's less severe than OSX.</div><div><br></div><div><br></div><div>When you do prefix registration with nfdc using a FaceId, the following signing operations are involved:</div><div><ol><li>nfdc connects to NFD: NFD signs face status change notification</li><li>nfdc sends registration command to RIB: nfdc signs the command</li><li>RIB answers registration command to nfdc: RIB signs the answer</li><li>RIB sends FIB update(s) to NFD: RIB signs FIB update command(s)</li><li>NFD answers FIB update(s): NFD signs the answer(s)</li><li>nfdc disconnects from NFD: NFD signs face status change notification</li></ol></div><div>There are at least 6 signing operations, assuming the registration triggers only one FIB update.</div><div>At least 4 signing operations are within NFD thread.</div><div>If using RSA, they will take 78ms with osx-keychain TPM, and 10ms with file TPM on Ubuntu (see #1589 note-1 benchmark).</div><div><br></div><div>The log shows 13ms extra RTT when processing a registration command. This is in line with the calculation above.</div><div>10ms is spent for RSA signing, and 3ms is spent for other processing (eg. step 6 also causes NFD to enumerate the FIB to erase NextHopRecords that points to the failing face).</div><div><br></div><div><br></div><div>To either confirm or reject this hypothesis, please try doing the prefix registration with FaceUri of an non-existing UDP face.</div><div>This should cause nfdc to send a face query request followed by a face creation command, and make NFD to sign two more answers.</div><div>If the RTT is further increased by about 5ms, the hypothesis is confirmed.</div><div><br></div><div>Yours, Junxiao<br></div><div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 23, 2015 at 4:15 PM, Vince Lehman (vslehman) <span dir="ltr"><<a href="mailto:vslehman@memphis.edu" target="_blank">vslehman@memphis.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div style="word-wrap:break-word"><div><br>
</div>
<div>I am able to replicate this result on my laptop from the command line. When I run an ndnping server and ndnping on my laptop, I see consistent RTTs. But, when I send</div>
<div>nfdc register commands at a relatively slow interval (0.5 s) at the same time, I see a large jump in the RTT.</div>
<div><br>
</div>
<div>Below is an example. I started the RIB registrations right after the ping with reference 810245465.</div>
<div><br>Content From /ndn - Ping Reference = 810245463  <span style="white-space:pre-wrap">
</span>- Round Trip Time = 1.271 ms<br>
Content From /ndn - Ping Reference = 810245464  <span style="white-space:pre-wrap">
</span>- Round Trip Time = 1.436 ms<br>
Content From /ndn - Ping Reference = 810245465  <span style="white-space:pre-wrap">
</span>- Round Trip Time = 1.328 ms<br>
Content From /ndn - Ping Reference = 810245466  <span style="white-space:pre-wrap">
</span>- Round Trip Time = 1.22 ms<br>
Content From /ndn - Ping Reference = 810245467  <span style="white-space:pre-wrap">
</span>- Round Trip Time = 14.618 ms<br>
Content From /ndn - Ping Reference = 810245468  <span style="white-space:pre-wrap">
</span>- Round Trip Time = 1.255 ms<br>
Content From /ndn - Ping Reference = 810245469  <span style="white-space:pre-wrap">
</span>- Round Trip Time = 1.211 ms<br><br>
</div>
<div>I used this simple bash script to send the registration commands:</div>
<div><font face="Menlo">for i in `seq 1 25`; do<br>
  nfdc register /a 258<br>
  sleep 0.5<br>
done</font></div></div></blockquote></div></div></div>