Teredo allows you to talk with IPv6 servers even though you are operating on IPv4.
It does so by connecting you to a Microsoft proxy via ipv4. The proxy sends/receives data to remote hosts via ipv6 but encapsulates traffic into ipv4 before relaying it to/from you.
—
Now the question is does Microsoft force all xbox data to be ipv6, or is toredo just used for certain cases, more specifically is teredo only used to communicate with ipv6 only Microsoft servers that are performing a small subset of features within the Xbox live environment.
(Answer: Teredo is most likely present as a fallback when requiring the ability for ipv4 clients to talk to Microsoft servers that do NOT have an ipv4 address. This means it is only used for for match making servers, notifications, in game messages, etc, but not the critical ingame data)
—
If all Xbox data was actually mandated to be ipv6 and if Xbox was hosting teredo relays for any ipv4 user and mandating their use, then why would NAT type matter?
(Answer: It wouldn’t as the teredo tunnels would always transverse NAT configuration)
This means that Microsoft obviously choose the cheap route and does NOT route game data via teredo for ipv4 users. (Tunneling all game data would be expensive)
Combination Table - Cheap Method
Code:
Host Client Connection
IPv6+IPv4 IPv6+IPv4 IPv6
IPv6+IPv4 IPv6 IPv6
IPv6+IPv4 IPv4 IPv4
IPv6 IPv6+IPv4 IPv6
IPv6 IPv6 IPv6
IPv6 IPv4 (Toredo or exclude IPv4 player from joining match)
IPv4 IPv6+IPv4 IPv4
IPv4 IPv6 (Toredo or exclude IPv6 player from joining match)
IPv4 IPv4 IPv4
Combination Table - Expensive Method
Code:
Host Client Connection
IPv6+IPv4 IPv6+IPv4 IPv6
IPv6+IPv4 IPv6 IPv6
IPv6+IPv4 IPv4 (Toredo && Nat issues impossible)
IPv6 IPv6+IPv4 IPv6
IPv6 IPv6 IPv6
IPv6 IPv4 (Toredo && Nat issues impossible)
IPv4 IPv6+IPv4 (Toredo && Nat issues impossible)
IPv4 IPv6 (Toredo && Nat issues impossible)
IPv4 IPv4 (Toredo && Nat issues impossible)