IPv4 to IPv6 UDP Holepunching










0















So I'm writing a P2P multiplayer game. Server establishes connections (UDP) to each player and then gets the players to connect with each other directly (using the UDP Holepunching technique).



Then I tested at my parents house and wham - stopped working.



The reason is because my parents router is not IPv6 compatible.



Question



Is it possible to do UDP Holepunching between users that have different ip protocols?



Aka




  • User A:
    Behind router that has IPv4 address (can't send UDP messages to IPv6).


  • User B:
    Has IPv6 address. Can send UDP messages to both IPv4 and IPv6 addresses.

Or is this sort of setup doomed to fail?










share|improve this question






















  • IPv4 and IPv6 are completely separate, incompatible protocols. Hosts can run dual-stack (both IPv4 and IPv6), but IPv4 and IPv6 cannot directly communicate.

    – Ron Maupin
    Nov 14 '18 at 1:48











  • @RonMaupin - Right, I understand that. My cell phone seems to have both an IPv4 address and IPv6 address (as the server can accept connections from either protocol). But my Mac only has an IPv4 address under this router, and can't send UDP datagrams to IPv6 addresses.

    – Leif
    Nov 14 '18 at 2:00











  • "my Mac only has an IPv4 address under this router, and can't send UDP datagrams to IPv6 addresses." That would be correct. You would need something else (a kludge) that can translate, but IPv4-only devices cannot directly communicate with IPv6-only devices, and vice versa. We are near the end of 2018, and devices should be dual-stacked to use either protocol.

    – Ron Maupin
    Nov 14 '18 at 2:04











  • @RonMaupin - thanks for the feedback. The lack of information on IPv4/IPv6 UDP Holepunching on the internet is not a good sign. I've yet to find any good resources yet.

    – Leif
    Nov 14 '18 at 2:35











  • @RonMaupin - I've isolated the root of the problem. My cell phone (game client) has both an IPv6 and IPv4 address (supplied by the cell provider). When I send a udp packet to an IPv4 address, the cell provider acts as a router and gives me a port. However, unlike normal routers, it randomly changes the port anytime I send a udp packet to a different IPv4 address. I discovered this by running 2 servers and connecting to both of them, the IPv4 address is the same, but the port changes (even though my local udp port is the same for both messages). Need to slop together a work around now.

    – Leif
    Nov 14 '18 at 4:53
















0















So I'm writing a P2P multiplayer game. Server establishes connections (UDP) to each player and then gets the players to connect with each other directly (using the UDP Holepunching technique).



Then I tested at my parents house and wham - stopped working.



The reason is because my parents router is not IPv6 compatible.



Question



Is it possible to do UDP Holepunching between users that have different ip protocols?



Aka




  • User A:
    Behind router that has IPv4 address (can't send UDP messages to IPv6).


  • User B:
    Has IPv6 address. Can send UDP messages to both IPv4 and IPv6 addresses.

Or is this sort of setup doomed to fail?










share|improve this question






















  • IPv4 and IPv6 are completely separate, incompatible protocols. Hosts can run dual-stack (both IPv4 and IPv6), but IPv4 and IPv6 cannot directly communicate.

    – Ron Maupin
    Nov 14 '18 at 1:48











  • @RonMaupin - Right, I understand that. My cell phone seems to have both an IPv4 address and IPv6 address (as the server can accept connections from either protocol). But my Mac only has an IPv4 address under this router, and can't send UDP datagrams to IPv6 addresses.

    – Leif
    Nov 14 '18 at 2:00











  • "my Mac only has an IPv4 address under this router, and can't send UDP datagrams to IPv6 addresses." That would be correct. You would need something else (a kludge) that can translate, but IPv4-only devices cannot directly communicate with IPv6-only devices, and vice versa. We are near the end of 2018, and devices should be dual-stacked to use either protocol.

    – Ron Maupin
    Nov 14 '18 at 2:04











  • @RonMaupin - thanks for the feedback. The lack of information on IPv4/IPv6 UDP Holepunching on the internet is not a good sign. I've yet to find any good resources yet.

    – Leif
    Nov 14 '18 at 2:35











  • @RonMaupin - I've isolated the root of the problem. My cell phone (game client) has both an IPv6 and IPv4 address (supplied by the cell provider). When I send a udp packet to an IPv4 address, the cell provider acts as a router and gives me a port. However, unlike normal routers, it randomly changes the port anytime I send a udp packet to a different IPv4 address. I discovered this by running 2 servers and connecting to both of them, the IPv4 address is the same, but the port changes (even though my local udp port is the same for both messages). Need to slop together a work around now.

    – Leif
    Nov 14 '18 at 4:53














0












0








0








So I'm writing a P2P multiplayer game. Server establishes connections (UDP) to each player and then gets the players to connect with each other directly (using the UDP Holepunching technique).



Then I tested at my parents house and wham - stopped working.



The reason is because my parents router is not IPv6 compatible.



Question



Is it possible to do UDP Holepunching between users that have different ip protocols?



Aka




  • User A:
    Behind router that has IPv4 address (can't send UDP messages to IPv6).


  • User B:
    Has IPv6 address. Can send UDP messages to both IPv4 and IPv6 addresses.

Or is this sort of setup doomed to fail?










share|improve this question














So I'm writing a P2P multiplayer game. Server establishes connections (UDP) to each player and then gets the players to connect with each other directly (using the UDP Holepunching technique).



Then I tested at my parents house and wham - stopped working.



The reason is because my parents router is not IPv6 compatible.



Question



Is it possible to do UDP Holepunching between users that have different ip protocols?



Aka




  • User A:
    Behind router that has IPv4 address (can't send UDP messages to IPv6).


  • User B:
    Has IPv6 address. Can send UDP messages to both IPv4 and IPv6 addresses.

Or is this sort of setup doomed to fail?







udp ipv6 p2p ipv4






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 14 '18 at 1:43









LeifLeif

3716




3716












  • IPv4 and IPv6 are completely separate, incompatible protocols. Hosts can run dual-stack (both IPv4 and IPv6), but IPv4 and IPv6 cannot directly communicate.

    – Ron Maupin
    Nov 14 '18 at 1:48











  • @RonMaupin - Right, I understand that. My cell phone seems to have both an IPv4 address and IPv6 address (as the server can accept connections from either protocol). But my Mac only has an IPv4 address under this router, and can't send UDP datagrams to IPv6 addresses.

    – Leif
    Nov 14 '18 at 2:00











  • "my Mac only has an IPv4 address under this router, and can't send UDP datagrams to IPv6 addresses." That would be correct. You would need something else (a kludge) that can translate, but IPv4-only devices cannot directly communicate with IPv6-only devices, and vice versa. We are near the end of 2018, and devices should be dual-stacked to use either protocol.

    – Ron Maupin
    Nov 14 '18 at 2:04











  • @RonMaupin - thanks for the feedback. The lack of information on IPv4/IPv6 UDP Holepunching on the internet is not a good sign. I've yet to find any good resources yet.

    – Leif
    Nov 14 '18 at 2:35











  • @RonMaupin - I've isolated the root of the problem. My cell phone (game client) has both an IPv6 and IPv4 address (supplied by the cell provider). When I send a udp packet to an IPv4 address, the cell provider acts as a router and gives me a port. However, unlike normal routers, it randomly changes the port anytime I send a udp packet to a different IPv4 address. I discovered this by running 2 servers and connecting to both of them, the IPv4 address is the same, but the port changes (even though my local udp port is the same for both messages). Need to slop together a work around now.

    – Leif
    Nov 14 '18 at 4:53


















  • IPv4 and IPv6 are completely separate, incompatible protocols. Hosts can run dual-stack (both IPv4 and IPv6), but IPv4 and IPv6 cannot directly communicate.

    – Ron Maupin
    Nov 14 '18 at 1:48











  • @RonMaupin - Right, I understand that. My cell phone seems to have both an IPv4 address and IPv6 address (as the server can accept connections from either protocol). But my Mac only has an IPv4 address under this router, and can't send UDP datagrams to IPv6 addresses.

    – Leif
    Nov 14 '18 at 2:00











  • "my Mac only has an IPv4 address under this router, and can't send UDP datagrams to IPv6 addresses." That would be correct. You would need something else (a kludge) that can translate, but IPv4-only devices cannot directly communicate with IPv6-only devices, and vice versa. We are near the end of 2018, and devices should be dual-stacked to use either protocol.

    – Ron Maupin
    Nov 14 '18 at 2:04











  • @RonMaupin - thanks for the feedback. The lack of information on IPv4/IPv6 UDP Holepunching on the internet is not a good sign. I've yet to find any good resources yet.

    – Leif
    Nov 14 '18 at 2:35











  • @RonMaupin - I've isolated the root of the problem. My cell phone (game client) has both an IPv6 and IPv4 address (supplied by the cell provider). When I send a udp packet to an IPv4 address, the cell provider acts as a router and gives me a port. However, unlike normal routers, it randomly changes the port anytime I send a udp packet to a different IPv4 address. I discovered this by running 2 servers and connecting to both of them, the IPv4 address is the same, but the port changes (even though my local udp port is the same for both messages). Need to slop together a work around now.

    – Leif
    Nov 14 '18 at 4:53

















IPv4 and IPv6 are completely separate, incompatible protocols. Hosts can run dual-stack (both IPv4 and IPv6), but IPv4 and IPv6 cannot directly communicate.

– Ron Maupin
Nov 14 '18 at 1:48





IPv4 and IPv6 are completely separate, incompatible protocols. Hosts can run dual-stack (both IPv4 and IPv6), but IPv4 and IPv6 cannot directly communicate.

– Ron Maupin
Nov 14 '18 at 1:48













@RonMaupin - Right, I understand that. My cell phone seems to have both an IPv4 address and IPv6 address (as the server can accept connections from either protocol). But my Mac only has an IPv4 address under this router, and can't send UDP datagrams to IPv6 addresses.

– Leif
Nov 14 '18 at 2:00





@RonMaupin - Right, I understand that. My cell phone seems to have both an IPv4 address and IPv6 address (as the server can accept connections from either protocol). But my Mac only has an IPv4 address under this router, and can't send UDP datagrams to IPv6 addresses.

– Leif
Nov 14 '18 at 2:00













"my Mac only has an IPv4 address under this router, and can't send UDP datagrams to IPv6 addresses." That would be correct. You would need something else (a kludge) that can translate, but IPv4-only devices cannot directly communicate with IPv6-only devices, and vice versa. We are near the end of 2018, and devices should be dual-stacked to use either protocol.

– Ron Maupin
Nov 14 '18 at 2:04





"my Mac only has an IPv4 address under this router, and can't send UDP datagrams to IPv6 addresses." That would be correct. You would need something else (a kludge) that can translate, but IPv4-only devices cannot directly communicate with IPv6-only devices, and vice versa. We are near the end of 2018, and devices should be dual-stacked to use either protocol.

– Ron Maupin
Nov 14 '18 at 2:04













@RonMaupin - thanks for the feedback. The lack of information on IPv4/IPv6 UDP Holepunching on the internet is not a good sign. I've yet to find any good resources yet.

– Leif
Nov 14 '18 at 2:35





@RonMaupin - thanks for the feedback. The lack of information on IPv4/IPv6 UDP Holepunching on the internet is not a good sign. I've yet to find any good resources yet.

– Leif
Nov 14 '18 at 2:35













@RonMaupin - I've isolated the root of the problem. My cell phone (game client) has both an IPv6 and IPv4 address (supplied by the cell provider). When I send a udp packet to an IPv4 address, the cell provider acts as a router and gives me a port. However, unlike normal routers, it randomly changes the port anytime I send a udp packet to a different IPv4 address. I discovered this by running 2 servers and connecting to both of them, the IPv4 address is the same, but the port changes (even though my local udp port is the same for both messages). Need to slop together a work around now.

– Leif
Nov 14 '18 at 4:53






@RonMaupin - I've isolated the root of the problem. My cell phone (game client) has both an IPv6 and IPv4 address (supplied by the cell provider). When I send a udp packet to an IPv4 address, the cell provider acts as a router and gives me a port. However, unlike normal routers, it randomly changes the port anytime I send a udp packet to a different IPv4 address. I discovered this by running 2 servers and connecting to both of them, the IPv4 address is the same, but the port changes (even though my local udp port is the same for both messages). Need to slop together a work around now.

– Leif
Nov 14 '18 at 4:53













0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
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: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
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
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53291993%2fipv4-to-ipv6-udp-holepunching%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • 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.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53291993%2fipv4-to-ipv6-udp-holepunching%23new-answer', 'question_page');

);

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







這個網誌中的熱門文章

How to read a connectionString WITH PROVIDER in .NET Core?

Node.js Script on GitHub Pages or Amazon S3

Museum of Modern and Contemporary Art of Trento and Rovereto