<br><br><div class="gmail_quote">On Sun, Sep 16, 2012 at 3:07 PM, Ralph Droms (rdroms) <span dir="ltr">&lt;<a href="mailto:rdroms@cisco.com" target="_blank">rdroms@cisco.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
On Sep 16, 2012, at 1:21 AM 9/16/12, Pars Mutaf wrote:<br>
<br>
&gt; Hi Timothy,<br>
&gt;<br>
&gt; Please see in-line.<br>
&gt;<br>
&gt; On Sat, Sep 15, 2012 at 11:04 PM, Timothy J. Salo &lt;<a href="mailto:salo@saloits.com">salo@saloits.com</a>&gt; wrote:<br>
&gt; On 9/15/2012 8:57 AM, Pars Mutaf wrote:<br>
&gt; For example me, I want to use IPv9 in my country and for this I am ready<br>
&gt; to pay the following processing cost for each packet:<br>
&gt;<br>
&gt; IPv4 packet comes in.<br>
&gt; I remove the header.<br>
&gt; I replace it with a IPv9 header.<br>
&gt; I route the packet.<br>
&gt; (and vice versa)<br>
&gt;<br>
&gt; Of course you can do this.  The IETF does precisely this with, for<br>
&gt; example, the 6lowpan protocol.  The principal difference is that<br>
&gt; the IETF isn&#39;t going to call 6lowpan a new version of IP.<br>
&gt;<br>
&gt; As the IETF 6lowpan work has shown, there are some good reasons for<br>
&gt; running another network layer protocol within a network.  In the case<br>
&gt; of 6lowpan, it is to create a network protocol that works with very<br>
&gt; small frames, very little bandwidth, no inexpensive multicast, nodes<br>
&gt; that sleep much of the time, and a few other constraints.  Of course,<br>
&gt; this is the IETF, so we don&#39;t view 6lowpan as anything other than IPv6,<br>
&gt; although a typical IPv4/IPv6 router will choke on a 6lowpan packet.<br>
&gt;<br>
&gt; I am not sure to understand the similarity with 6lowpan. 6lowpan is IPv6.<br>
&gt; I am talking about using any IP version.<br>
<br>
The principles in Timothy&#39;s post are correct; 6lowpan isn&#39;t such a great example.  NAT64 is a better example.  Sure, you can replace an IPv4 header with an IPv6 header.  That&#39;s what layered design and architecture is about, right?  But there are many little details that keep NAT64 from working well.<br>
</blockquote><div><br><br>How TCP works over NAT64? I can&#39;t find doc on this but it sounds different than what I mean.<br><br>In my proposal TCP doesn&#39;t work because TCP assumes that the source and destination addresses have the same IP version.<br>
My proposal needs an additional host identification layer above IP. It is a different and long term solution.<br><br>I propose that we add new Internets to the current one. A new IPv4 Internet (reusing the same IPv4 space, you can reuse yahoo&#39;s address at home for example), IPv6, or IPv7 Internets. We can reuse IP addresses because hosts are not identified using IP addresses anymore. <br>
<br>If you want to be able to reach new Internets, implement Discrete IP.<br><br>A host implementing Discrete IP does the following:<br><br>If the destination host is in the current Internet, use normal IP.<br>If the destination host is in a new Internet (IPv4 or IPv6 or IPv7), use Discrete IP.<br>
<br>Details are in the paper: <br><a href="http://www.scribd.com/doc/105448105/Discrete-IP">http://www.scribd.com/doc/105448105/Discrete-IP</a><br><br> </div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

<br>
- Ralph<br>
<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; As the 6lowpan work has shown, there are a lot of challenges to<br>
&gt; running your own private network protocol.  Here is some of the<br>
&gt; challenges that come to mind, although there are others:<br>
&gt;<br>
&gt; o Your private protocol has to be close enough to IPv4 and/or IPv6<br>
&gt;   that you can reasonably translate between IPv4/IPv6 and your private<br>
&gt;   protocol.  I assume that you want your private protocol to<br>
&gt;   interoperate (through gateways) with the global IPv4 and/or IPv6<br>
&gt;   Internet.<br>
&gt;<br>
&gt;<br>
&gt; Yes we will change the IPv4 header and replace it with a IPv6 header and vice versa.<br>
&gt; Or IPv7.<br>
&gt;<br>
&gt;<br>
&gt; o Gateways have to maintain a bunch of state to support the mapping<br>
&gt;   between IPv4/IPv6 and your private protocol.  Some of this mapping<br>
&gt;   can be static (e.g., 6lowpan&#39;s static mapping between port numbers),<br>
&gt;   although some of this information is dynamic.  For example, your<br>
&gt;   gateway has to maintain mappings between IPv4/IPv6 addresses and the<br>
&gt;   addresses you are using internally.  There is a bit of tedium to<br>
&gt;   maintaining these mappings.  (Personally, I think this translation<br>
&gt;   might work better if the gateways maintain even more state.  This<br>
&gt;   might be a good research topic...)<br>
&gt;<br>
&gt;<br>
&gt; This is my problem. Again, what is this illusion that you can take design decisions for me?<br>
&gt; ***Enable technology instead***<br>
&gt;<br>
&gt; No one asked you to design my IP. ***Enable technology instead***<br>
&gt;<br>
&gt; Discrete IP is one way to enable IP technology. If there were Discrete IP today,<br>
&gt; many people would be using IPv6 already and doing research on new IP versions<br>
&gt; freely (without touching the IPv4 Internet).<br>
&gt;<br>
&gt;<br>
&gt; o You have to figure out what to do about naming.  (6lowpan pretty<br>
&gt;   much punted on this.)  Will your network use the existing DNS<br>
&gt;   system?  How will IPv4/IPv6 hosts learn the name and the IPv4/IPV6<br>
&gt;   address of your hosts.  Oh, and how will IPv4/IPv6 addresses be<br>
&gt;   assigned to your hosts, since the existing Internet won&#39;t be able<br>
&gt;   to route to your private addresses.  I assume that you aren&#39;t going<br>
&gt;   to use IPv4 or IPv6 addresses internally.  What will happen when one<br>
&gt;   of your hosts requests the address of an IPv4/IPv6 host?  Will this<br>
&gt;   address need to be translated into an internal address?  If so, where<br>
&gt;   is this translation done?<br>
&gt;<br>
&gt;<br>
&gt; DNS needs modification probably, we also need a new identifier.<br>
&gt; This is much better than changing the whole Internet. Do not touch the<br>
&gt; existing core network, change the end-nodes instead.<br>
&gt;<br>
&gt;<br>
&gt; o All of this stuff works much better if your network is an edge<br>
&gt;   network.  Trying to be a transit network for IPv4/IPv6 traffic<br>
&gt;   probably gets pretty hard.<br>
&gt;<br>
&gt; o What are you going to do about higher-level protocols.  For example,<br>
&gt;   will your hosts implement a pretty standard TCP?  If not, will your<br>
&gt;   hosts interoperate with IPv4/IPv6 TCP hosts?  You can certainly<br>
&gt;   translate between TCP and your own favorite transport protocol, but<br>
&gt;   your protocol has to be close enough to TCP for a reasonable mapping<br>
&gt;   to be possible.  There has been quite of bit of work done on this<br>
&gt;   topic; start with &quot;performance enhancing proxies&quot;.<br>
&gt;<br>
&gt;<br>
&gt; TCP will probably change. Again, this is better than changing the whole<br>
&gt; core Internet and disabling technology. IETF made a mistake 20 years ago.<br>
&gt; The right way to save the Internet was not Inventing a new IP<br>
&gt; version, it was reviewing the IP architecture. Saying that it is now too late is<br>
&gt; a technology blocker approach.<br>
&gt;<br>
&gt; TCP assumes that source and destination addresses have the same IP version.<br>
&gt; We need another identification layer above IP. A new global identifier which is<br>
&gt; not used for routing. We all know since long years that IP address is not an<br>
&gt; identifier.<br>
&gt;<br>
&gt;<br>
&gt; o How are multiple gateways going to work?  A gateway has to maintain<br>
&gt;   a bunch of state: at a minimum address mappings.  Will you support<br>
&gt;   multiple gateways?  If so, will they work well?  Will you try to<br>
&gt;   synchronize state between all of your gateways?  Or, if a flow<br>
&gt;   moves from one gateway to another, do you start a process that will<br>
&gt;   create the state in the new gateway?  Can you make movement between<br>
&gt;   gateways invisible to your hosts?  To your transport protocol?  To<br>
&gt;   your application?  Will you handle asymmetric routing (in through one<br>
&gt;   gateway and out through another)?  Will you permit a flow to be<br>
&gt;   distributed among multiple gateways simultaneously?<br>
&gt;<br>
&gt;<br>
&gt; Ideally, everybody takes care about their own network. There is no global design, no global<br>
&gt; decision for others. I don&#39;t know yet about all details.<br>
&gt; My question here for the moment is &quot;What is good for the Internet?&quot;<br>
&gt; Discrete or Continuous IP?<br>
&gt;<br>
&gt;<br>
&gt; You might want to thoroughly examine 6lowpan and understand what it<br>
&gt; does, what it doesn&#39;t do, and what it doesn&#39;t do, but could.<br>
&gt;<br>
&gt; In my view 6lowpan is sort of an initial, fairly limited attempt at<br>
&gt; translating between IPv6 and a private network protocol.  It turns out<br>
&gt; that this translation is difficult to do well.  I believe that this<br>
&gt; topic of how to translate between IPv4/IPv6 and a private network<br>
&gt; protocol, and maybe private higher-level protocols, would benefit from<br>
&gt; some comprehensive thought: there are a lot of existing techniques that<br>
&gt; have been developed, but I don&#39;t think that they have been pulled<br>
&gt; together into one integrated solution.<br>
&gt;<br>
&gt; One lesson from the 6lowpan work is that all of this is easier to<br>
&gt; sell if you call your new protocol an optimized or an enhanced version<br>
&gt; of IPv6, rather than a new version of IP...<br>
&gt;<br>
&gt;<br>
&gt; I am not sure to understand the similarity with 6lowpan. 6lowpan is IPv6.<br>
&gt; I am talking about using any IP version.<br>
&gt;<br>
&gt;<br>
&gt; -tjs<br>
&gt;<br>
&gt;<br>
&gt;<br>
<span class="HOEnZb"><font color="#888888">&gt;<br>
&gt; --<br>
&gt; <a href="http://www.content-based-science.org" target="_blank">http://www.content-based-science.org</a><br>
&gt;<br>
<br>
</font></span></blockquote></div><br><br clear="all"><br>-- <br><a href="http://www.content-based-science.org" target="_blank">http://www.content-based-science.org</a><br><br>