The reply table remembers where the public port should deliver.

highlighted = computed this step

The outbound step saved a private endpoint

The saved private endpoint is 192.168.1.10 port 40000.

private port=40000\text{private port}=40000
Saved NAT mappingThe toy NAT table maps the public reply key back to the private endpoint.NAT reply mapping - 203.0.113.5:62000 maps to 192.168.1.10:40000serverpublic keyprivateprotomatchaction198.51.100.53:53203.0.113.5:62000192.168.1.10:40000UDPyesrestore destination

The reply payload is separate

The reply payload marker is 0x6f6b. The mapping is about addresses and ports.

payload=0x6f6b\text{payload}=0x6f6b
Saved NAT mappingThe toy NAT table maps the public reply key back to the private endpoint.NAT reply mapping - 203.0.113.5:62000 maps to 192.168.1.10:40000serverpublic keyprivateprotomatchaction198.51.100.53:53203.0.113.5:62000192.168.1.10:40000UDPyesrestore destination

The table remembers where to deliver

When the reply comes back to the public port, the table can restore the private destination.

private destination port=40000\text{private destination port}=40000
Saved NAT mappingThe toy NAT table maps the public reply key back to the private endpoint.NAT reply mapping - 203.0.113.5:62000 maps to 192.168.1.10:40000serverpublic keyprivateprotomatchaction198.51.100.53:53203.0.113.5:62000192.168.1.10:40000UDPyesrestore destination

Summary

The saved private endpoint is the delivery target for the matching reply.

private port=40000\text{private port}=40000
Saved NAT mappingThe toy NAT table maps the public reply key back to the private endpoint.NAT reply mapping - 203.0.113.5:62000 maps to 192.168.1.10:40000serverpublic keyprivateprotomatchaction198.51.100.53:53203.0.113.5:62000192.168.1.10:40000UDPyesrestore destination