I've got some questions I've been noodling over:
* Does Coda work over NAT? I think not, unless the NAT is static and
includes a specific rule that helps the server contact the client
(assuming client is NATed but server isn't, such as a client at my house
on a DSL/NAT and a server elsewhere in the real world).
* Does the server contact the client on a well-known port, or is it
dynamically assigned at the client and then remembered by the server?
(Given the digging I did in the RPC2 code, you'd think I'd know this one
off the top of my head...)
* Does the server correctly recognize that you're the same client when
your IP address changes (e.g., when I move from the office to home)?
* Is there an RPC or configuration switch you can send/set to force a
client to always be either weakly or strongly connected, or is it always
done only with the heuristics? I'm thinking of environments where the
client might have a way to directly determine some characteristics of
its network state (e.g., knowing that it's using a modem); then it could
inform the server, rather than one or both sides guessing.
* Being UDP based, it should be better off with large numbers of clients
than TCP, but has this been tested? Do we know how many clients a
server can scale to? Thousands? Tens of thousands? Millions? (I
know, this is a VERY complicated and subtle question, but essay answers
of the form, "Well, we tested..." or "We calculated, assuming..." are
quite welcome :-)
I think I know the answers to some of these, which is why I think IPv6
is a good idea, but just for some peace of mind...
--Rod