Could IPv6 make NAT / port numbers redundant?NEWBIE: How can two computers communicate if they are behind firewalls?How will ISP's handle the future of IPv6 to pro-sumersSend HTTP Request to device through Mac Address?How would I make a client find a server with an unknown IPv6 Address?How sliding window protocols handle duplicate packets caused by extreme network delays?pfSense IPv6 NATAsa5508 NAT two internal IPsIf the IPv6 address will be strictly based on EUI-64 logic then is there any real need of Neighbour Discovery Protocol?Why are IPv4 addresses running out?How can hosting providers give you a dedicated IP adresses?
If the pressure inside and outside a balloon balance, then why does air leave when it pops?
Placement of positioning lights on A320 winglets
Is Jesus the last Prophet?
Enchiridion, 16: Does a stoic moan, or not?
Should I list a completely different profession in my technical resume?
How to befriend someone who doesn't like to talk?
What do you call the action of "describing events as they happen" like sports anchors do?
Why did the World Bank set the global poverty line at $1.90?
What is the theme of analysis?
What exactly "triggers an additional time" in the interaction between Afterlife and Teysa Karlov?
Entered UK using my now-lost UK passport; can I go to Spain using my US passport?
My mom's return ticket is 3 days after I-94 expires
What is this Amiga 2000 mod?
Who is "He that flies" in Lord of the Rings?
Is it advisable to add a location heads-up when a scene changes in a novel?
Is there a better way to do partial sums of array items in JavaScript?
How does AFV select the winning videos?
In American Politics, why is the Justice Department under the President?
Realistic, logical way for men with medieval-era weaponry to compete with much larger and physically stronger foes
When to use и or а as “and”?
Why do I seem to lose data using this bash pipe construction?
What is the proper event in Extended Events to track stored procedure executions?
How to change the headfont of newtheorem environments to match komascript font?
What is this object?
Could IPv6 make NAT / port numbers redundant?
NEWBIE: How can two computers communicate if they are behind firewalls?How will ISP's handle the future of IPv6 to pro-sumersSend HTTP Request to device through Mac Address?How would I make a client find a server with an unknown IPv6 Address?How sliding window protocols handle duplicate packets caused by extreme network delays?pfSense IPv6 NATAsa5508 NAT two internal IPsIf the IPv6 address will be strictly based on EUI-64 logic then is there any real need of Neighbour Discovery Protocol?Why are IPv4 addresses running out?How can hosting providers give you a dedicated IP adresses?
From what I can tell, each process could get its own IP address, with loads of IP's to spare.
What would the drawbacks be?
Essentially, your host would become a router and each process is a host (in the current system).
ip nat ipv6 protocol-theory transport-protocol
add a comment |
From what I can tell, each process could get its own IP address, with loads of IP's to spare.
What would the drawbacks be?
Essentially, your host would become a router and each process is a host (in the current system).
ip nat ipv6 protocol-theory transport-protocol
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
May 30 at 0:46
add a comment |
From what I can tell, each process could get its own IP address, with loads of IP's to spare.
What would the drawbacks be?
Essentially, your host would become a router and each process is a host (in the current system).
ip nat ipv6 protocol-theory transport-protocol
From what I can tell, each process could get its own IP address, with loads of IP's to spare.
What would the drawbacks be?
Essentially, your host would become a router and each process is a host (in the current system).
ip nat ipv6 protocol-theory transport-protocol
ip nat ipv6 protocol-theory transport-protocol
edited May 30 at 0:30
Tobiq
asked May 27 at 19:32
TobiqTobiq
14115
14115
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
May 30 at 0:46
add a comment |
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
May 30 at 0:46
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
May 30 at 0:46
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
May 30 at 0:46
add a comment |
6 Answers
6
active
oldest
votes
IPv6 does not have a NAT standard as IPv4 does (NAT breaks the end-to-end premise of IP, and IPv6 was designed to restore that). There is an experimental RFC for IPv6 NAT, but it is a one-to-one NAT at the network layer, rather than something like the IPv4 NAPT that also translates port addresses, and, in fact, the experimental IPv6 NAT RFC expressly forbids that.
If you think about the various transport protocols, TCP and UDP use ports, which are really addresses for those transport protocols. Other transport protocols may use other addressing, and some use no addresses.
Your idea would possibly work with either TCP or UDP, but only one, and probably not with other transport protocols. IPv6 is connectionless, like UDP, so it may work with UDP, but TCP is connection-oriented, and it performs a lot of work that would otherwise need to be performed by the application.
There are requirements for both connectionless and connection-oriented transport protocols. The predecessor to IPv4 actually had the equivalent of IP and TCP as a single protocol, but it became necessary to split them because some transport protocols need to be connectionless.
add a comment |
One drawback is that the upper layers would need to be aware of IP addresses, which sort of violates the layering principle. What would then happen if you switched to IPv4? Or something else?
How would the upper layers tell the network layer that it should start responding to an IP address? Suppose a new application starts up. How does the network layer know there's a new address to respond to?
IPv6 could theoretically eliminate NAT, but there are still reasons why an organization might want to hide its internal IP addresses.
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
Jun 5 at 1:44
add a comment |
The need for NATs as a way to share public IP adresses will be gone with IPv6, but NATs may still have some uses for security reasons.
Removing ports might be possible in theory, but it would be a huge undertaking. Even if you reserve the last 16 bits of the IP adress for port number + 1 bit for TCP/UDP flag, you would need to rework all the software that unpacks the pactet from the 3rd layer into the 4th one to use the bits from IP adress for port number and protocol, instead of data in the packet.
And that's the "easy" solution when you just put the port nubmers in the IP adress, if you wanted to get rid or port numbers altogether, you would need to change every software and library that uses ports, be it servers, clients, firewalls, etc etc. It would be basicly impossible, every software that says "open server at port X" which would work fine when just going from IPv4 to IPv6 would break instantly if you remove ports altogether.
It is infinetely more easier to just keep the ports.
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
May 29 at 22:03
add a comment |
It wouldn't be IPv6. Such a system is of course feasible, but it would be an variation of the IP protocol. Today, IP's contain two parts: a host identifier and a service identifier.
With your scheme, it would essentially be a service descriptor. This would require changes to DNS (e.g. how do you differentiate between the SMTP server for example.com and the www-server for example.com?)
I can't see how it would be beneficial over todays system with host:service descriptors. It would not achieve anything not possible today.
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
May 30 at 0:46
add a comment |
As others have said, having port numbers is a requirement, even if they end up being 'encoded' in the IP address of the service.
Some applications need more than one port number. For example, most web servers need port 80 and 443 (and maybe another port for websockets or whatever). Such a system would need three IP addresses with encoded ports. Whilst we've got plenty of IPs, it would (at present) mean system-level configuration would be required to support those three port numbers. Using a separate port number means the apps can just start up and use the ports without needing the sysadmin to do some config work first. As others have said - it's just easier to use a port number.
As for NAT, yes, IPv6 should remove the need for NAT in almost all cases. Some cases remain though, so it probably won't disappear entirely, but wide-spread use is likely to diminish significantly.
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
May 30 at 0:46
add a comment |
IP Addresses and Ports, though usually seen together, perform very distinct tasks. IP Addresses are used to route traffic to your computer specifically and port numbers are used by applications.
A very good analogy is sending mail to an apartment building. The address of the building would be equivalent to an IP address and the unit numbers would be analogous to a port number. For this analogy we'll say the building's address is 127 Home Ave. Say you wanted to send a letter to Henry T.T. Peterson, so you send a letter to the building, he doesn't receive it because it needs further direction to his apartment, apartment 80.
In theory, IPv6 address could take the place of both IPv4 addresses and port numbers, however this violates well-established precedents of networking and there are some major drawbacks:
- Defeats the very purpose that IPv6 was created to alleviate(concerns about the world running out of IP addresses)
- Routing tables internal to routers and switches would become exponentially larger while offering no benefit(many address will route to the same physical computer)
- Every application on every computer will need a unique address and although IPv6 offers many, many times more addresses (2^128 vs 2^32), we will run out rather quickly and then need to create IPv8, then IPv10, then IPv12, we will be racing an exponential curve and that pretty much won't be a fun time.
As far as NAT goes, this was created for 2 reasons, there were already concerns that the world was running out of (or would run out of) public IP addresses, which was massively alleviated by allowing for organizations and even home networks an incredible amount of IP addresses that can be used internally, and allows for important machines to be "hidden" from the world (such as your database with sensitive information on it, or the CEO's laptop)
I hope this explanation was helpful; you see, both NAT and port numbers are a good thing, we wouldn't want to replace them with IPv6 because that is a huge step backwards, if anything we'd want to actually expand them, or replace them with something even better
1
1. "Defeats the very purpose that IPv6" - No it wouldn't, your computer probably has several IPv6 addresses already with no issues. At least 2^64 addresses are reserved for a typical home network. "Routing tables would become larger" - No they wouldn't, there's just one routing table entry for your whole network. (And when you look from outside of your ISP, there's just one entry for your whole ISP.) You really underestimate how big 2^128 is. Say you treated the last 16 bits as a port number (which is probably not how this would work), you still have 2^112 computer addresses.
– immibis
May 28 at 23:54
(In reality most computers don't use all 65536 ports either. I'd guesstimate it's less than 100 99% of the time)
– immibis
May 28 at 23:56
@immibis you covered everything I was thinking while reading the post
– Tobiq
May 29 at 10:44
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "496"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fnetworkengineering.stackexchange.com%2fquestions%2f59438%2fcould-ipv6-make-nat-port-numbers-redundant%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
6 Answers
6
active
oldest
votes
6 Answers
6
active
oldest
votes
active
oldest
votes
active
oldest
votes
IPv6 does not have a NAT standard as IPv4 does (NAT breaks the end-to-end premise of IP, and IPv6 was designed to restore that). There is an experimental RFC for IPv6 NAT, but it is a one-to-one NAT at the network layer, rather than something like the IPv4 NAPT that also translates port addresses, and, in fact, the experimental IPv6 NAT RFC expressly forbids that.
If you think about the various transport protocols, TCP and UDP use ports, which are really addresses for those transport protocols. Other transport protocols may use other addressing, and some use no addresses.
Your idea would possibly work with either TCP or UDP, but only one, and probably not with other transport protocols. IPv6 is connectionless, like UDP, so it may work with UDP, but TCP is connection-oriented, and it performs a lot of work that would otherwise need to be performed by the application.
There are requirements for both connectionless and connection-oriented transport protocols. The predecessor to IPv4 actually had the equivalent of IP and TCP as a single protocol, but it became necessary to split them because some transport protocols need to be connectionless.
add a comment |
IPv6 does not have a NAT standard as IPv4 does (NAT breaks the end-to-end premise of IP, and IPv6 was designed to restore that). There is an experimental RFC for IPv6 NAT, but it is a one-to-one NAT at the network layer, rather than something like the IPv4 NAPT that also translates port addresses, and, in fact, the experimental IPv6 NAT RFC expressly forbids that.
If you think about the various transport protocols, TCP and UDP use ports, which are really addresses for those transport protocols. Other transport protocols may use other addressing, and some use no addresses.
Your idea would possibly work with either TCP or UDP, but only one, and probably not with other transport protocols. IPv6 is connectionless, like UDP, so it may work with UDP, but TCP is connection-oriented, and it performs a lot of work that would otherwise need to be performed by the application.
There are requirements for both connectionless and connection-oriented transport protocols. The predecessor to IPv4 actually had the equivalent of IP and TCP as a single protocol, but it became necessary to split them because some transport protocols need to be connectionless.
add a comment |
IPv6 does not have a NAT standard as IPv4 does (NAT breaks the end-to-end premise of IP, and IPv6 was designed to restore that). There is an experimental RFC for IPv6 NAT, but it is a one-to-one NAT at the network layer, rather than something like the IPv4 NAPT that also translates port addresses, and, in fact, the experimental IPv6 NAT RFC expressly forbids that.
If you think about the various transport protocols, TCP and UDP use ports, which are really addresses for those transport protocols. Other transport protocols may use other addressing, and some use no addresses.
Your idea would possibly work with either TCP or UDP, but only one, and probably not with other transport protocols. IPv6 is connectionless, like UDP, so it may work with UDP, but TCP is connection-oriented, and it performs a lot of work that would otherwise need to be performed by the application.
There are requirements for both connectionless and connection-oriented transport protocols. The predecessor to IPv4 actually had the equivalent of IP and TCP as a single protocol, but it became necessary to split them because some transport protocols need to be connectionless.
IPv6 does not have a NAT standard as IPv4 does (NAT breaks the end-to-end premise of IP, and IPv6 was designed to restore that). There is an experimental RFC for IPv6 NAT, but it is a one-to-one NAT at the network layer, rather than something like the IPv4 NAPT that also translates port addresses, and, in fact, the experimental IPv6 NAT RFC expressly forbids that.
If you think about the various transport protocols, TCP and UDP use ports, which are really addresses for those transport protocols. Other transport protocols may use other addressing, and some use no addresses.
Your idea would possibly work with either TCP or UDP, but only one, and probably not with other transport protocols. IPv6 is connectionless, like UDP, so it may work with UDP, but TCP is connection-oriented, and it performs a lot of work that would otherwise need to be performed by the application.
There are requirements for both connectionless and connection-oriented transport protocols. The predecessor to IPv4 actually had the equivalent of IP and TCP as a single protocol, but it became necessary to split them because some transport protocols need to be connectionless.
answered May 28 at 0:53
Ron Maupin♦Ron Maupin
70.2k1372134
70.2k1372134
add a comment |
add a comment |
One drawback is that the upper layers would need to be aware of IP addresses, which sort of violates the layering principle. What would then happen if you switched to IPv4? Or something else?
How would the upper layers tell the network layer that it should start responding to an IP address? Suppose a new application starts up. How does the network layer know there's a new address to respond to?
IPv6 could theoretically eliminate NAT, but there are still reasons why an organization might want to hide its internal IP addresses.
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
Jun 5 at 1:44
add a comment |
One drawback is that the upper layers would need to be aware of IP addresses, which sort of violates the layering principle. What would then happen if you switched to IPv4? Or something else?
How would the upper layers tell the network layer that it should start responding to an IP address? Suppose a new application starts up. How does the network layer know there's a new address to respond to?
IPv6 could theoretically eliminate NAT, but there are still reasons why an organization might want to hide its internal IP addresses.
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
Jun 5 at 1:44
add a comment |
One drawback is that the upper layers would need to be aware of IP addresses, which sort of violates the layering principle. What would then happen if you switched to IPv4? Or something else?
How would the upper layers tell the network layer that it should start responding to an IP address? Suppose a new application starts up. How does the network layer know there's a new address to respond to?
IPv6 could theoretically eliminate NAT, but there are still reasons why an organization might want to hide its internal IP addresses.
One drawback is that the upper layers would need to be aware of IP addresses, which sort of violates the layering principle. What would then happen if you switched to IPv4? Or something else?
How would the upper layers tell the network layer that it should start responding to an IP address? Suppose a new application starts up. How does the network layer know there's a new address to respond to?
IPv6 could theoretically eliminate NAT, but there are still reasons why an organization might want to hide its internal IP addresses.
answered May 27 at 20:02
Ron TrunkRon Trunk
43.2k34090
43.2k34090
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
Jun 5 at 1:44
add a comment |
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
Jun 5 at 1:44
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
Jun 5 at 1:44
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
Jun 5 at 1:44
add a comment |
The need for NATs as a way to share public IP adresses will be gone with IPv6, but NATs may still have some uses for security reasons.
Removing ports might be possible in theory, but it would be a huge undertaking. Even if you reserve the last 16 bits of the IP adress for port number + 1 bit for TCP/UDP flag, you would need to rework all the software that unpacks the pactet from the 3rd layer into the 4th one to use the bits from IP adress for port number and protocol, instead of data in the packet.
And that's the "easy" solution when you just put the port nubmers in the IP adress, if you wanted to get rid or port numbers altogether, you would need to change every software and library that uses ports, be it servers, clients, firewalls, etc etc. It would be basicly impossible, every software that says "open server at port X" which would work fine when just going from IPv4 to IPv6 would break instantly if you remove ports altogether.
It is infinetely more easier to just keep the ports.
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
May 29 at 22:03
add a comment |
The need for NATs as a way to share public IP adresses will be gone with IPv6, but NATs may still have some uses for security reasons.
Removing ports might be possible in theory, but it would be a huge undertaking. Even if you reserve the last 16 bits of the IP adress for port number + 1 bit for TCP/UDP flag, you would need to rework all the software that unpacks the pactet from the 3rd layer into the 4th one to use the bits from IP adress for port number and protocol, instead of data in the packet.
And that's the "easy" solution when you just put the port nubmers in the IP adress, if you wanted to get rid or port numbers altogether, you would need to change every software and library that uses ports, be it servers, clients, firewalls, etc etc. It would be basicly impossible, every software that says "open server at port X" which would work fine when just going from IPv4 to IPv6 would break instantly if you remove ports altogether.
It is infinetely more easier to just keep the ports.
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
May 29 at 22:03
add a comment |
The need for NATs as a way to share public IP adresses will be gone with IPv6, but NATs may still have some uses for security reasons.
Removing ports might be possible in theory, but it would be a huge undertaking. Even if you reserve the last 16 bits of the IP adress for port number + 1 bit for TCP/UDP flag, you would need to rework all the software that unpacks the pactet from the 3rd layer into the 4th one to use the bits from IP adress for port number and protocol, instead of data in the packet.
And that's the "easy" solution when you just put the port nubmers in the IP adress, if you wanted to get rid or port numbers altogether, you would need to change every software and library that uses ports, be it servers, clients, firewalls, etc etc. It would be basicly impossible, every software that says "open server at port X" which would work fine when just going from IPv4 to IPv6 would break instantly if you remove ports altogether.
It is infinetely more easier to just keep the ports.
The need for NATs as a way to share public IP adresses will be gone with IPv6, but NATs may still have some uses for security reasons.
Removing ports might be possible in theory, but it would be a huge undertaking. Even if you reserve the last 16 bits of the IP adress for port number + 1 bit for TCP/UDP flag, you would need to rework all the software that unpacks the pactet from the 3rd layer into the 4th one to use the bits from IP adress for port number and protocol, instead of data in the packet.
And that's the "easy" solution when you just put the port nubmers in the IP adress, if you wanted to get rid or port numbers altogether, you would need to change every software and library that uses ports, be it servers, clients, firewalls, etc etc. It would be basicly impossible, every software that says "open server at port X" which would work fine when just going from IPv4 to IPv6 would break instantly if you remove ports altogether.
It is infinetely more easier to just keep the ports.
answered May 28 at 9:04
kajacxkajacx
1613
1613
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
May 29 at 22:03
add a comment |
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
May 29 at 22:03
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
May 29 at 22:03
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
May 29 at 22:03
add a comment |
It wouldn't be IPv6. Such a system is of course feasible, but it would be an variation of the IP protocol. Today, IP's contain two parts: a host identifier and a service identifier.
With your scheme, it would essentially be a service descriptor. This would require changes to DNS (e.g. how do you differentiate between the SMTP server for example.com and the www-server for example.com?)
I can't see how it would be beneficial over todays system with host:service descriptors. It would not achieve anything not possible today.
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
May 30 at 0:46
add a comment |
It wouldn't be IPv6. Such a system is of course feasible, but it would be an variation of the IP protocol. Today, IP's contain two parts: a host identifier and a service identifier.
With your scheme, it would essentially be a service descriptor. This would require changes to DNS (e.g. how do you differentiate between the SMTP server for example.com and the www-server for example.com?)
I can't see how it would be beneficial over todays system with host:service descriptors. It would not achieve anything not possible today.
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
May 30 at 0:46
add a comment |
It wouldn't be IPv6. Such a system is of course feasible, but it would be an variation of the IP protocol. Today, IP's contain two parts: a host identifier and a service identifier.
With your scheme, it would essentially be a service descriptor. This would require changes to DNS (e.g. how do you differentiate between the SMTP server for example.com and the www-server for example.com?)
I can't see how it would be beneficial over todays system with host:service descriptors. It would not achieve anything not possible today.
It wouldn't be IPv6. Such a system is of course feasible, but it would be an variation of the IP protocol. Today, IP's contain two parts: a host identifier and a service identifier.
With your scheme, it would essentially be a service descriptor. This would require changes to DNS (e.g. how do you differentiate between the SMTP server for example.com and the www-server for example.com?)
I can't see how it would be beneficial over todays system with host:service descriptors. It would not achieve anything not possible today.
answered May 27 at 20:04
vidarlovidarlo
22117
22117
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
May 30 at 0:46
add a comment |
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
May 30 at 0:46
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
May 30 at 0:46
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
May 30 at 0:46
add a comment |
As others have said, having port numbers is a requirement, even if they end up being 'encoded' in the IP address of the service.
Some applications need more than one port number. For example, most web servers need port 80 and 443 (and maybe another port for websockets or whatever). Such a system would need three IP addresses with encoded ports. Whilst we've got plenty of IPs, it would (at present) mean system-level configuration would be required to support those three port numbers. Using a separate port number means the apps can just start up and use the ports without needing the sysadmin to do some config work first. As others have said - it's just easier to use a port number.
As for NAT, yes, IPv6 should remove the need for NAT in almost all cases. Some cases remain though, so it probably won't disappear entirely, but wide-spread use is likely to diminish significantly.
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
May 30 at 0:46
add a comment |
As others have said, having port numbers is a requirement, even if they end up being 'encoded' in the IP address of the service.
Some applications need more than one port number. For example, most web servers need port 80 and 443 (and maybe another port for websockets or whatever). Such a system would need three IP addresses with encoded ports. Whilst we've got plenty of IPs, it would (at present) mean system-level configuration would be required to support those three port numbers. Using a separate port number means the apps can just start up and use the ports without needing the sysadmin to do some config work first. As others have said - it's just easier to use a port number.
As for NAT, yes, IPv6 should remove the need for NAT in almost all cases. Some cases remain though, so it probably won't disappear entirely, but wide-spread use is likely to diminish significantly.
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
May 30 at 0:46
add a comment |
As others have said, having port numbers is a requirement, even if they end up being 'encoded' in the IP address of the service.
Some applications need more than one port number. For example, most web servers need port 80 and 443 (and maybe another port for websockets or whatever). Such a system would need three IP addresses with encoded ports. Whilst we've got plenty of IPs, it would (at present) mean system-level configuration would be required to support those three port numbers. Using a separate port number means the apps can just start up and use the ports without needing the sysadmin to do some config work first. As others have said - it's just easier to use a port number.
As for NAT, yes, IPv6 should remove the need for NAT in almost all cases. Some cases remain though, so it probably won't disappear entirely, but wide-spread use is likely to diminish significantly.
As others have said, having port numbers is a requirement, even if they end up being 'encoded' in the IP address of the service.
Some applications need more than one port number. For example, most web servers need port 80 and 443 (and maybe another port for websockets or whatever). Such a system would need three IP addresses with encoded ports. Whilst we've got plenty of IPs, it would (at present) mean system-level configuration would be required to support those three port numbers. Using a separate port number means the apps can just start up and use the ports without needing the sysadmin to do some config work first. As others have said - it's just easier to use a port number.
As for NAT, yes, IPv6 should remove the need for NAT in almost all cases. Some cases remain though, so it probably won't disappear entirely, but wide-spread use is likely to diminish significantly.
answered May 28 at 9:36
Ralph BoltonRalph Bolton
101
101
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
May 30 at 0:46
add a comment |
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
May 30 at 0:46
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
May 30 at 0:46
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
May 30 at 0:46
add a comment |
IP Addresses and Ports, though usually seen together, perform very distinct tasks. IP Addresses are used to route traffic to your computer specifically and port numbers are used by applications.
A very good analogy is sending mail to an apartment building. The address of the building would be equivalent to an IP address and the unit numbers would be analogous to a port number. For this analogy we'll say the building's address is 127 Home Ave. Say you wanted to send a letter to Henry T.T. Peterson, so you send a letter to the building, he doesn't receive it because it needs further direction to his apartment, apartment 80.
In theory, IPv6 address could take the place of both IPv4 addresses and port numbers, however this violates well-established precedents of networking and there are some major drawbacks:
- Defeats the very purpose that IPv6 was created to alleviate(concerns about the world running out of IP addresses)
- Routing tables internal to routers and switches would become exponentially larger while offering no benefit(many address will route to the same physical computer)
- Every application on every computer will need a unique address and although IPv6 offers many, many times more addresses (2^128 vs 2^32), we will run out rather quickly and then need to create IPv8, then IPv10, then IPv12, we will be racing an exponential curve and that pretty much won't be a fun time.
As far as NAT goes, this was created for 2 reasons, there were already concerns that the world was running out of (or would run out of) public IP addresses, which was massively alleviated by allowing for organizations and even home networks an incredible amount of IP addresses that can be used internally, and allows for important machines to be "hidden" from the world (such as your database with sensitive information on it, or the CEO's laptop)
I hope this explanation was helpful; you see, both NAT and port numbers are a good thing, we wouldn't want to replace them with IPv6 because that is a huge step backwards, if anything we'd want to actually expand them, or replace them with something even better
1
1. "Defeats the very purpose that IPv6" - No it wouldn't, your computer probably has several IPv6 addresses already with no issues. At least 2^64 addresses are reserved for a typical home network. "Routing tables would become larger" - No they wouldn't, there's just one routing table entry for your whole network. (And when you look from outside of your ISP, there's just one entry for your whole ISP.) You really underestimate how big 2^128 is. Say you treated the last 16 bits as a port number (which is probably not how this would work), you still have 2^112 computer addresses.
– immibis
May 28 at 23:54
(In reality most computers don't use all 65536 ports either. I'd guesstimate it's less than 100 99% of the time)
– immibis
May 28 at 23:56
@immibis you covered everything I was thinking while reading the post
– Tobiq
May 29 at 10:44
add a comment |
IP Addresses and Ports, though usually seen together, perform very distinct tasks. IP Addresses are used to route traffic to your computer specifically and port numbers are used by applications.
A very good analogy is sending mail to an apartment building. The address of the building would be equivalent to an IP address and the unit numbers would be analogous to a port number. For this analogy we'll say the building's address is 127 Home Ave. Say you wanted to send a letter to Henry T.T. Peterson, so you send a letter to the building, he doesn't receive it because it needs further direction to his apartment, apartment 80.
In theory, IPv6 address could take the place of both IPv4 addresses and port numbers, however this violates well-established precedents of networking and there are some major drawbacks:
- Defeats the very purpose that IPv6 was created to alleviate(concerns about the world running out of IP addresses)
- Routing tables internal to routers and switches would become exponentially larger while offering no benefit(many address will route to the same physical computer)
- Every application on every computer will need a unique address and although IPv6 offers many, many times more addresses (2^128 vs 2^32), we will run out rather quickly and then need to create IPv8, then IPv10, then IPv12, we will be racing an exponential curve and that pretty much won't be a fun time.
As far as NAT goes, this was created for 2 reasons, there were already concerns that the world was running out of (or would run out of) public IP addresses, which was massively alleviated by allowing for organizations and even home networks an incredible amount of IP addresses that can be used internally, and allows for important machines to be "hidden" from the world (such as your database with sensitive information on it, or the CEO's laptop)
I hope this explanation was helpful; you see, both NAT and port numbers are a good thing, we wouldn't want to replace them with IPv6 because that is a huge step backwards, if anything we'd want to actually expand them, or replace them with something even better
1
1. "Defeats the very purpose that IPv6" - No it wouldn't, your computer probably has several IPv6 addresses already with no issues. At least 2^64 addresses are reserved for a typical home network. "Routing tables would become larger" - No they wouldn't, there's just one routing table entry for your whole network. (And when you look from outside of your ISP, there's just one entry for your whole ISP.) You really underestimate how big 2^128 is. Say you treated the last 16 bits as a port number (which is probably not how this would work), you still have 2^112 computer addresses.
– immibis
May 28 at 23:54
(In reality most computers don't use all 65536 ports either. I'd guesstimate it's less than 100 99% of the time)
– immibis
May 28 at 23:56
@immibis you covered everything I was thinking while reading the post
– Tobiq
May 29 at 10:44
add a comment |
IP Addresses and Ports, though usually seen together, perform very distinct tasks. IP Addresses are used to route traffic to your computer specifically and port numbers are used by applications.
A very good analogy is sending mail to an apartment building. The address of the building would be equivalent to an IP address and the unit numbers would be analogous to a port number. For this analogy we'll say the building's address is 127 Home Ave. Say you wanted to send a letter to Henry T.T. Peterson, so you send a letter to the building, he doesn't receive it because it needs further direction to his apartment, apartment 80.
In theory, IPv6 address could take the place of both IPv4 addresses and port numbers, however this violates well-established precedents of networking and there are some major drawbacks:
- Defeats the very purpose that IPv6 was created to alleviate(concerns about the world running out of IP addresses)
- Routing tables internal to routers and switches would become exponentially larger while offering no benefit(many address will route to the same physical computer)
- Every application on every computer will need a unique address and although IPv6 offers many, many times more addresses (2^128 vs 2^32), we will run out rather quickly and then need to create IPv8, then IPv10, then IPv12, we will be racing an exponential curve and that pretty much won't be a fun time.
As far as NAT goes, this was created for 2 reasons, there were already concerns that the world was running out of (or would run out of) public IP addresses, which was massively alleviated by allowing for organizations and even home networks an incredible amount of IP addresses that can be used internally, and allows for important machines to be "hidden" from the world (such as your database with sensitive information on it, or the CEO's laptop)
I hope this explanation was helpful; you see, both NAT and port numbers are a good thing, we wouldn't want to replace them with IPv6 because that is a huge step backwards, if anything we'd want to actually expand them, or replace them with something even better
IP Addresses and Ports, though usually seen together, perform very distinct tasks. IP Addresses are used to route traffic to your computer specifically and port numbers are used by applications.
A very good analogy is sending mail to an apartment building. The address of the building would be equivalent to an IP address and the unit numbers would be analogous to a port number. For this analogy we'll say the building's address is 127 Home Ave. Say you wanted to send a letter to Henry T.T. Peterson, so you send a letter to the building, he doesn't receive it because it needs further direction to his apartment, apartment 80.
In theory, IPv6 address could take the place of both IPv4 addresses and port numbers, however this violates well-established precedents of networking and there are some major drawbacks:
- Defeats the very purpose that IPv6 was created to alleviate(concerns about the world running out of IP addresses)
- Routing tables internal to routers and switches would become exponentially larger while offering no benefit(many address will route to the same physical computer)
- Every application on every computer will need a unique address and although IPv6 offers many, many times more addresses (2^128 vs 2^32), we will run out rather quickly and then need to create IPv8, then IPv10, then IPv12, we will be racing an exponential curve and that pretty much won't be a fun time.
As far as NAT goes, this was created for 2 reasons, there were already concerns that the world was running out of (or would run out of) public IP addresses, which was massively alleviated by allowing for organizations and even home networks an incredible amount of IP addresses that can be used internally, and allows for important machines to be "hidden" from the world (such as your database with sensitive information on it, or the CEO's laptop)
I hope this explanation was helpful; you see, both NAT and port numbers are a good thing, we wouldn't want to replace them with IPv6 because that is a huge step backwards, if anything we'd want to actually expand them, or replace them with something even better
answered May 28 at 14:47
DreadedEntityDreadedEntity
91
91
1
1. "Defeats the very purpose that IPv6" - No it wouldn't, your computer probably has several IPv6 addresses already with no issues. At least 2^64 addresses are reserved for a typical home network. "Routing tables would become larger" - No they wouldn't, there's just one routing table entry for your whole network. (And when you look from outside of your ISP, there's just one entry for your whole ISP.) You really underestimate how big 2^128 is. Say you treated the last 16 bits as a port number (which is probably not how this would work), you still have 2^112 computer addresses.
– immibis
May 28 at 23:54
(In reality most computers don't use all 65536 ports either. I'd guesstimate it's less than 100 99% of the time)
– immibis
May 28 at 23:56
@immibis you covered everything I was thinking while reading the post
– Tobiq
May 29 at 10:44
add a comment |
1
1. "Defeats the very purpose that IPv6" - No it wouldn't, your computer probably has several IPv6 addresses already with no issues. At least 2^64 addresses are reserved for a typical home network. "Routing tables would become larger" - No they wouldn't, there's just one routing table entry for your whole network. (And when you look from outside of your ISP, there's just one entry for your whole ISP.) You really underestimate how big 2^128 is. Say you treated the last 16 bits as a port number (which is probably not how this would work), you still have 2^112 computer addresses.
– immibis
May 28 at 23:54
(In reality most computers don't use all 65536 ports either. I'd guesstimate it's less than 100 99% of the time)
– immibis
May 28 at 23:56
@immibis you covered everything I was thinking while reading the post
– Tobiq
May 29 at 10:44
1
1
1. "Defeats the very purpose that IPv6" - No it wouldn't, your computer probably has several IPv6 addresses already with no issues. At least 2^64 addresses are reserved for a typical home network. "Routing tables would become larger" - No they wouldn't, there's just one routing table entry for your whole network. (And when you look from outside of your ISP, there's just one entry for your whole ISP.) You really underestimate how big 2^128 is. Say you treated the last 16 bits as a port number (which is probably not how this would work), you still have 2^112 computer addresses.
– immibis
May 28 at 23:54
1. "Defeats the very purpose that IPv6" - No it wouldn't, your computer probably has several IPv6 addresses already with no issues. At least 2^64 addresses are reserved for a typical home network. "Routing tables would become larger" - No they wouldn't, there's just one routing table entry for your whole network. (And when you look from outside of your ISP, there's just one entry for your whole ISP.) You really underestimate how big 2^128 is. Say you treated the last 16 bits as a port number (which is probably not how this would work), you still have 2^112 computer addresses.
– immibis
May 28 at 23:54
(In reality most computers don't use all 65536 ports either. I'd guesstimate it's less than 100 99% of the time)
– immibis
May 28 at 23:56
(In reality most computers don't use all 65536 ports either. I'd guesstimate it's less than 100 99% of the time)
– immibis
May 28 at 23:56
@immibis you covered everything I was thinking while reading the post
– Tobiq
May 29 at 10:44
@immibis you covered everything I was thinking while reading the post
– Tobiq
May 29 at 10:44
add a comment |
Thanks for contributing an answer to Network Engineering Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fnetworkengineering.stackexchange.com%2fquestions%2f59438%2fcould-ipv6-make-nat-port-numbers-redundant%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Comments are not for extended discussion; this conversation has been moved to chat.
– Ron Maupin♦
May 30 at 0:46