Giả sử chúng ta có máy chủ STUN tại địa chỉ stun_addr
và máy chủ tại địa chỉ srv_addr
. Sử dụng STUN thường đi như thế này:
- Máy khách kết nối với máy chủ STUN
stun_addr
thông qua thiết bị NAT. Thiết bị NAT dịch địa chỉ nguồn thànhnatted_addr_1
- Máy chủ STUN cho khách hàng biết địa chỉ mà nó nhận được kết nối, đó là
natted_addr_1
- Máy khách liên lạc với máy chủ
srv_addr
thông qua thiết bị NAT và báo cho hệ thống bên ngoài sử dụng natted_addr_1
nếu muốn tiếp cận máy khách
- Hệ thống bên ngoài gửi một cái gì đó cho khách hàng bằng cách sử dụng
natted_addr_1
Điều này sẽ chỉ hoạt động nếu thiết bị NAT sử dụng natted_addr_1
cho cả giao tiếp với máy chủ STUN và hệ thống bên ngoài khác. Cụ thể hơn, nó chỉ hoạt động nếu thiết bị NAT sẽ phân phối các gói đến bước 4 cho máy khách.
Một thiết bị NAT đối xứng sẽ sử dụng một bản dịch khác nhau trong bước 1 và 3 vì địa chỉ đích của lưu lượng là khác nhau. Trong bước 3, địa chỉ nguồn trong các gói đến máy chủ được dịch sang một số địa chỉ khác natted_addr_2
.
Thiết bị NAT chỉ biết về các kết hợp địa chỉ nguồn và đích này và sẽ chỉ cho phép các địa chỉ này quay lại:
- Từ
stun_addr
đếnnatted_addr_1
- Từ
srv_addr
đếnnatted_addr_2
Thật không may, máy chủ đã được yêu cầu sử dụng natted_addr_1
nhưng các gói từ srv_addr
định mệnh natted_addr_1
sẽ bị thiết bị NAT từ chối vì Địa chỉ NAT: Hạn chế cổng tại chỗ.
Để chính xác hơn, 'địa chỉ' nên được thay thế bằng 'địa chỉ / cổng' trong câu trả lời này, vì các thiết bị NAT sẽ hoạt động với sự kết hợp của địa chỉ IP và số cổng.