Nội dung bài viết
#

Stun server là gì? Stun hoạt động như thế nào?

Nội dung bài viết

    Stun server hoạt động với các thiết bị NAT hiện có, không yêu cầu bất kỳ sửa đổi nào trên chúng và chỉ cần triển khai một STUN server trên mạng. Vì thế Stun server được sử dụng rất rộng rãi. Để hiểu rõ hơn về Stun server, mời các bạn cùng BKHOST tìm hiểu bài viết dưới đây.

    Giao thức STUN là gì?

    Giao thức P2P yêu cầu hai bên giao tiếp có thể chủ động truy cập lẫn nhau. Tuy nhiên, các thiết bị NAT gây ảnh hưởng đến hoạt động bình thường của các ứng dụng P2P vì chặn quyền truy cập.

    Vì vậy công nghệ STUN thường được sử dụng để khắc phục vấn đề truyền tải NAT này. Stun server cho phép các thiết bị mạng khám phá các địa chỉ IP sau NAT và số cổng của các bên liên lạc và sử dụng thông tin này để thiết lập các kênh dữ liệu P2P đi qua các thiết bị NAT để liên lạc P2P.

    Stun Server là gì?

    Stun Server la gi

    STUN sử dụng mô hình client/server và bao gồm STUN server và STUN client:

    • STUN server: Một bộ định tuyến có thể hoạt động như một máy chủ STUN. Nó có thể gửi phản hồi và nhận yêu cầu liên kết STUN và thường được sử dụng cho các kết nối công cộng.
    • STUN client: Một bộ định tuyến có thể hoạt động như một STUN client và gửi các yêu cầu liên kết STUN và nhận phản hồi liên kết STU.

    Mo hinh stun

    STUN hoạt động như thế nào?

    STUN server có thể khám phá thiết bị NAT, lấy địa chỉ IP và số cổng được phân bổ bởi thiết bị NAT cho STUN client thông qua trao đổi tin nhắn với STUN client. Các client có thể truy cập lẫn nhau sau khi kênh dữ liệu được thiết lập giữa các STUN client.

    Máy chủ STUN sẽ hoạt động theo chu trình, bao gồm phát hiện NAT và Hole Punching. Hình dưới đây cho thấy quá trình chi tiết.

    Cach thuc hoat dong cua Stun
    Quá trình trao đổi bản tin STUN

    Phát hiện NAT

    • Mỗi STUN client gửi một yêu cầu ràng buộc đến STUN server.
    • Sau khi nhận được các yêu cầu ràng buộc, STUN server lấy địa chỉ IP nguồn và số cổng rồi gửi phản hồi ràng buộc tới từng STUN client. Sau đó, từng client sẽ lấy dữ liệu từ các liên kết kiểu MAPPED-ADDRESS, XOR-MAPPED-ADDRESS và RESPONSE-ORIGIN.
    • Sau khi lấy được dữ liệu, client sẽ so sánh địa chỉ IP và số cổng thu được với dữ liệu tương ứng ở nguồn. Nếu kết quả khác nhau thì STUN client sẽ thông báo cho mô-đun dịch vụ rằng có một NAT đã được sử dụng trước đó.

    Hole Punching

    Hole Punching là một kỹ thuật dùng để tạo kết nối giữa các bên đằng sau các NAT. Cụ thể, nó thiết lập một kênh dữ liệu giữa các client P2P STUN trên các thiết bị trung gian (chẳng hạn như RR) bằng cách tạo các mục phiên NAT trên các thiết bị NAT. Dựa vào đó, Hole Punching hoạt động như sau:

    • STUN client lấy thông tin TNP (bao gồm địa chỉ IP và số cổng được sử dụng trước và sau NAT) của STUN client khác từ RR đến BGP. Khi cần giao tiếp với STUN client 2, STUN client 1 sẽ gửi các gói BGP nhằm yêu cầu thực hiện Hole Punching để thiết lập liên kết dữ liệu.
    • Để thiết lập được kênh dữ liệu, STUN client 1 phải gửi đến STUN client 2 hai thông báo. Trong đó, một thông báo chứa dữ liệu (IP và số cổng) trước NAT, thông báo còn lại sẽ chứa dữ liệu sau NAT.
    • Nếu hai client cùng nằm trên một mạng thì thông báo A sẽ được chuyển tiếp thành công đến STUN client 2. Ngược lại, thông báo A sẽ bị loại bỏ khi hai client này nằm ở hai mạng khác nhau.
    • Thiết bị NAT 1 tạo một mục để ghi lại phiên từ STUN client 1 đến STUN client 2 sau khi STUN client 1 gửi tin nhắn B. Tuy nhiên, do thiết bị NAT 2 (ở phía trước STUN client 2) không có mục nhập phiên tương ứng, thiết bị NAT 2 sẽ loại bỏ thông báo B.
    • Trong khi đó, thiết bị NAT 2 cũng tạo một mục để ghi phiên từ STUN client 2 sang STUN client 1. Vì thiết bị NAT 1 cũng không có mục nhập phiên tương ứng nên nó sẽ loại bỏ thông báo B.
    • STUN client 1 và STUN client 2 liên tục gửi các yêu cầu ràng buộc lẫn nhau. Khi các mục phiên được tạo trên cả thiết bị NAT 1 và thiết bị NAT 2, hai STUN client có thể nhận các yêu cầu ràng buộc lẫn nhau.
    • Sau khi nhận được yêu cầu từ STUN client 1, STUN client 2 và STUN client 1 lần lượt gửi phản hồi liên kết cho nhau.

    Một kênh dữ liệu được thiết lập giữa các STUN client để các gói có thể đi qua các thiết bị NAT sau khi các bản tin STUN trước đó được trao đổi.

    Tổng kết về Stun server

    Với bài viết trên đây, BKHOST hy vọng đã giúp các bạn hiểu hơn về Stun server cũng như cách hoạt động của Stun.

    Nếu còn gặp bất cứ vướng mắc gì, hãy để lại ở bên bình luận bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.

    Mua tên miền .VN tại BKHOST

    Giá chỉ từ 750k/năm. Kiểm tra tên miền .VN đẹp và đăng ký ngay hôm nay!

    mua tên miền .vn giá rẻ

    Tôi là Trịnh Duy Thanh, CEO & Founder Công ty Cổ Phần Giải Pháp Mạng Trực Tuyến Việt Nam - BKHOST. Với sứ mệnh mang tới các dịch vụ trên Internet tốt nhất cho các cá nhân và doanh nghiệp trong nước và quốc tế, tôi luôn nỗ lực hết mình nâng cấp đầu tư hệ thống phần cứng, nâng cao chất lượng dịch vụ chăm sóc khách hàng để đem đến những sản phẩm hoàn hảo nhất cho người tiêu dùng. Vì vậy, tôi tin tưởng sẽ đem đến các giải pháp CNTT mới nhất, tối ưu nhất, hiệu quả nhất và chi phí hợp lý nhất cho tất cả các doanh nghiệp.
    Bình luận
    Trượt lên đầu trang
    Miễn phí cước gọi
    Bạn đã hài lòng với trải nghiệm trên Bkhost.vn?
    Cảm ơn lượt bình chọn của bạn, Chúc bạn 1 ngày tốt lành !