IPv6 is the next-generation standard for Internet Protocol addressing and routing. Development and deployment has been ongoing for over twenty years. As of 2026, the latest versions of Linux, macOS, and Windows appear to fully support the use of IPv6 both alone and in combination with IPv4 ("dual-stack"). However, many ISPs and cloud providers still do not support IPv6 server hosting.
MTP 4.6 implements dual-stack IPv6, allowing operation on IPv4, IPv6, and combined networks. In combined networks, selection of the correct protocol depends on the correct configuration of the client, server, and network systems.
Requirements
While all major operating systems have offered limited IPv6 support for decades, some have only recently achieved full dual-stack compatibility. Following are the minimum operating system requirements for MTP 4.6:
Check with your network service provider regarding the IPv6 compatibility of their hardware and services.
Connectivity
To support IPv6, a server must have a static, routable IPv6 address. Many ISPs and cloud providers only offer dynamic IPv6 addresses which may change frequently. Many operating systems will create local IPv6 addresses even when the network does not support IPv6 routing. Just because a machine has an IPv6 address does not mean it works!
The best way to control which protocol is used to access a server is with DNS. Ideally, an IPv6 capable server should return both AAAA and A records. Clients will choose which protocol to use based on heuristics in their operating system (RFC 6724). If the host OS believes it has IPv6 connectivity, clients will use IPv6. Otherwise, they will use IPv4. Servers which only support IPv4 must only return A records. If your server does not have a DNS record, use an IPv4 address for maximum compatibility.
Misconfigured servers or clients can result in "No Response", "Timed Out", or "No Application at Given Port" errors. If some clients are having difficulty reaching an IPv6 server, and you are not able to repair the DNS or client network configuration, consider creating an IPv4-only DNS record or using a raw IPv4 address.
Syntax
IPv6 addresses are written as up to 8 hexadecimal numbers, up to 4 digits each, separated by colons (RFC 5952). For example:
2001:db8:aaaa:bbbb:cccc:dddd:eeee:0001
Number groupings which consist only of zeros can be "compressed" into a double colon, but only once per address. For example, the following two addresses are equivalent:
2001:db8:0:0:0:0:0:1 2001:db8::1
Unfortunately, the choice of the colon character as an address delimiter conflicts with the common practice of using a colon to separate an address from a port number. The standard means of resolving this conflict (RFC 3986) is to surround the address with brackets. Here is an IPv6 address with port 8080:
[2001:db8:aaaa:bbbb:cccc:dddd:eeee:0001]:8080
Unfortunately, the choice of the bracket character as an escape delimiter conflicts with the common practice of using brackets to denote globbing expansions in command shells. As a result, you may need to use single quotes around addresses used in a shell script or command-line:
movedat 'user@[2604:a880:400:d1:0:4:4b58:4001]:path/folder/'
This use of quotes may be undesirable where globbing characters are needed.
To avoid these conflicts, MTP applications allow the use of a + character to separate the address from the port, with or without IPv6 brackets. (This is not new: ExpeDat and SyncDat have supported + for port separation since 2015 to avoid conflict with the host:path syntax.) For example, the following are valid and equivalent:
movedat user@2604:a880:400:d1:0:4:4b58:4001+8080:path/folder/ movedat 'user@[2604:a880:400:d1:0:4:4b58:4001]+8080:path/folder/' movedat -p 8080 'user@[2604:a880:400:d1:0:4:4b58:4001]:path/folder/' movedat -p 8080 user@2604:a880:400:d1:0:4:4b58:4001+:path/folder/
IPv6 capable MTP applications may accept any of the following formats for an address plus port combination:
[2001:db8:aaaa:bbbb:cccc:dddd:eeee:0001]:8080 [2001:db8:aaaa:bbbb:cccc:dddd:eeee:0001]+8080 2001:db8:aaaa:bbbb:cccc:dddd:eeee:0001+8080
When displaying or logging a host and port, MTP applications will prefer the host+port format to avoid ambiguity. If you are using scripts to parse application output, they may need to be updated.
Path MTU Discovery
Path MTU discovery is the process of determining the largest datagram size that a path can support. Variations in link hardware and packet header sizes make this value impossible to predict. Under IPv4, oversized datagrams might be broken up into fragments by hosts or routers, and ICMP signals were supposed to communicate limits to the sender. However, those standards were often ignored or incorrectly implemented.
IPv6 introduces larger and more variable headers, raises the minimum MTU that routers and hosts are required to support, and eliminates datagram fragmentation in routers.
MTP uses a rapid PMTU discovery algorithm to estimate the most efficient datagram size. MTP 4.6 uses slightly different datagram payload increments than previous versions, with changes for both IPv4 and IPv6. The most noticeable result is that, in some environments, the default MTP datagram payload will be 1424 instead of 1408, with smaller sizes used when IPsec or other tunneling mechanisms are present.
Performance
Where IPv6 and IPv4 are both fully supported, there should be no significant performance difference between them.
Tech Note History
| Sep | 23 | 2026 | Updated for publication |
| Jul | 30 | 2026 | First post |