On 2011-08-12 09:25, [email protected] wrote:
> |In your experiments, do you measure port and session usage on 
> |the NAT, on the internal host, or both? It's not clear to me 
> |when reading your experiment results at 
> |http://opensourcev6transtechnologies.weebly.com/experiments-res
> |ults.html
> 
> The data shows there are only the port and session usage on the NAT.

Ok. Thanks.

Then I think we're missing an important piece of data: port and session
usage on the host. Here's why, with an example.


Suppose I run an app on my host that creates two sessions using two
different source ports:

192.168.0.10:65000 --> 1.2.3.4:80
192.168.0.10:65001 --> 5.6.7.8:80

An EIM NAT will always map these two sessions to two different external
ports, let's say like this:

4.4.4.4:65000 --> 1.2.3.4:80
4.4.4.4:65001 --> 5.6.7.8:80

A non-EIM NAT could instead conserve ports by reusing the same external
port for the two sessions:

4.4.4.4:65000 --> 1.2.3.4:80
4.4.4.4:65000 --> 5.6.7.8:80

------------------------------

Suppose now that a different app creates two sessions using the same
source port:

192.168.0.10:65000 --> 1.2.3.4:80
192.168.0.10:65000 --> 5.6.7.8:80

Both the EIM NAT and the non-EIM NAT would map them to the same external
port:

4.4.4.4:65000 --> 1.2.3.4:80
4.4.4.4:65000 --> 5.6.7.8:80

--------------------------------------


So, conclusion: unless your extremely certain of the NAT behaviour (we
rarely are, especially in edge cases), just by looking at the NAT port
and session usage says nothing about what happens on the host. We don't
know whether BitTorrent, Skype, or Firefox reuse source ports for
different destinations or whether they simply use additional internal
source ports.

Usually, if an application just uses the usual BSD sockets API to
initiate each new session (socket() then connect()), the OS will assign
a different source ports (for all common consumer OSes). It could be
possible that the application does it otherwise, but the straightforward
way to do it just consumes another port.

So your observations on the NAT, where significantly more sessions were
active than there were ports, mean that either of these is true:

a) Firefox, the BitTorrent client you tested, and Skype do not create
new sessions with the usual socket() then connect() sequence. (That
would be quite strange for Firefox and BitTorrent, not so much for Skype.)

b) The NAT you tested was not EIM. (This would not be surprising since
there are many non-EIM consumer grade NATs out there.)

Thoughts?

Simon
-- 
DTN made easy, lean, and smart --> http://postellation.viagenie.ca
NAT64/DNS64 open-source        --> http://ecdysis.viagenie.ca
STUN/TURN server               --> http://numb.viagenie.ca
_______________________________________________
Softwires mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/softwires

Reply via email to