[2024] Stun Server là gì? | Tổng quan kiến thức về Stun Server

Stun Server là gì? Trong thế giới ngày nay, khi mạng Internet trở nên phổ biến hơn bao giờ hết, việc kết nối các thiết bị trong mạng nội bộ với các thiết bị bên ngoài thông qua NAT đang gặp phải những thách thức đáng kể. Để giải quyết vấn đề này, Stun Server được phát triển nhằm hỗ trợ các thiết bị trong và ngoài mạng nội bộ được kết nối dễ dàng hơn. Mời bạn tìm hiểu chi tiết qua bài viết dưới đây của VinaHost.

1. Tổng quan kiến thức về Stun 

Dưới đây là những khái niệm liên quan đến Stun mà bạn cần nắm.

1.1. Stun là gì?

Giao thức Stun (Session Traversal Utilities for NAT) được áp dụng trong mạng máy tính để giúp khắc phục những thách thức liên quan đến NAT.

Giao thức Stun cho phép các thiết bị trong mạng, như điện thoại VoIP, camera IP, hoặc các ứng dụng truyền dữ liệu trực tiếp (P2P) xác định địa chỉ IP công cộng của chúng và các thông số kết nối mạng như cổng NAT và loại NAT. Điều này rất hữu ích khi các thiết bị này cần thiết lập kết nối trực tiếp với nhau hoặc cần truyền dữ liệu qua NAT.

stun server la gi
Tổng quan kiến thức về Stun

1.2. Stun Server là gì?

Stun server giúp máy khách xác định địa chỉ IP và Port được sử dụng bởi thiết bị NAT. Thông tin này đóng vai trò quan trọng trong việc thiết lập kết nối UDP giữa client và server trong ứng dụng VOIP, từ đó đảm bảo việc thiết lập cuộc gọi. Stun được định nghĩa trong RFC 3489 và giao tiếp qua cổng UDP 3478. Stun server thường có hai địa chỉ IP, và nó sẽ đề xuất cho Stun client thử kết nối với một IP và một số cổng khác.

1.3. Stun Client là gì?

Stun client là một ứng dụng hoạt động trên các thiết bị trong mạng, có trách nhiệm hỗ trợ quá trình thiết lập kết nối trực tiếp giữa các thiết bị trong mạng nội bộ đã áp dụng NAT, thông qua việc sử dụng giao thức Stun. Khi có nhu cầu thiết lập kết nối trực tiếp với một thiết bị khác trong mạng nội bộ, Stun client sẽ gửi yêu cầu tới Stun server để lấy thông tin về địa chỉ IP và cổng port được NAT gán cho nó. Sau đó, thông tin này được sử dụng để thiết lập kết nối trực tiếp.

Xem thêm: Máy chủ Server là gì? Tổng hợp kiến thức A-Z về máy chủ Server

2. Cách thức hoạt động của Stun 

Stun Server có khả năng liên lạc với Stun Client qua các tin nhắn để phát hiện thiết bị NAT và thu thập thông tin về địa chỉ IP và số Port mà thiết bị NAT cung cấp cho Stun Client. Khi một kênh dữ liệu giữa các Stun Client được thiết lập thành công, các máy khách này có thể truy cập vào nhau. Quá trình trao đổi Stun diễn ra thông qua hai giai đoạn chính: phát hiện NAT và Hole Punching.

2.1. Phát hiện NAT

Mỗi Stun Client gửi một yêu cầu ràng buộc đến máy chủ Stun. Khi nhận các yêu cầu này, máy chủ Stun trích xuất các địa chỉ IP nguồn và số Port, sau đó gửi các phản hồi ràng buộc đến các Stun Client. Trong các thông báo phản hồi, thuộc tính sẽ bao gồm RESPONSE-ORIGIN, MAPPED-ADDRESS và XOR-MAPPED-ADDRESS.

Stun Client sử dụng địa chỉ IP và số Port từ các thuộc tính MAPPED-ADDRESS hoặc XOR-MAPPED-ADDRESS trong phản hồi để so sánh với địa chỉ IP và số Port trong yêu cầu ban đầu. Nếu chúng khác nhau, điều này chỉ ra rằng một thiết bị NAT đã hoạt động trước đó với Stun Client.

2.2. Hole Punching 

Quá trình Hole Punching diễn ra như sau: Stun Client sử dụng BGP để thu thập thông tin TNP, bao gồm địa chỉ IP và số Port được sử dụng trước và sau NAT của một Stun Client khác. Khi Stun Client 1 muốn giao tiếp với Stun Client 2, nó gửi các gói BGP tới Stun Client 2 để thông báo về quá trình Hole Punching và thiết lập kênh dữ liệu.

Stun Client 1 và Stun Client 2 trao đổi các yêu cầu ràng buộc để thực hiện Hole Punching, bao gồm:

  • Thông báo A chứa địa chỉ IP và số Port sau NAT
  • Thông báo B cũng chứa địa chỉ IP và số Port sau NAT

Khi Stun Client 2 nhận được cả hai thông báo A và B, quá trình xử lý sẽ diễn ra như sau:

  • Nếu cả Stun Client 1 và Stun Client 2 đều nằm trên cùng một mạng riêng (tức là sau cùng một thiết bị NAT), thì thông báo A sẽ được gửi thành công.
  • Sau khi Stun Client 1 gửi thông báo B tới Stun Client 2, thiết bị NAT tạo ra một mục để ghi lại phiên làm việc. Tuy nhiên, nếu NAT 1 hoặc NAT 2 không có mục nhập phiên tương ứng, thì thông báo B sẽ bị loại bỏ.
  • Stun Client 1 và Stun Client 2 sẽ liên tục trao đổi các yêu cầu ràng buộc. Khi các mục nhập phiên được tạo ra trên cả NAT 1 và NAT 2, cả hai máy khách Stun đều có thể nhận được các yêu cầu ràng buộc từ nhau.
  • Sau khi Stun Client 2 nhận được yêu cầu ràng buộc từ Stun Client 1, nó sẽ phản hồi bằng các yêu cầu ràng buộc đến Stun Client 1.
stun server la gi
Cách thức hoạt động

Xem thêm: OPC Server là gì? | Cách thức hoạt động của OPC Server

3. Vai trò chính của Stun Server

Stun server đóng vai trò quan trọng trong việc xác định địa chỉ IP công khai của thiết bị nằm sau một bộ định tuyến NAT bằng các cách sau:

  • Phát hiện NAT: Stun server hỗ trợ các thiết bị trong mạng nội bộ xác định sự tồn tại và loại của NAT đang được áp dụng trong mạng. Điều này là cần thiết để thiết lập kết nối trực tiếp qua NAT.
  • Cung cấp thông tin NAT: Khi muốn thiết lập kết nối trực tiếp với một thiết bị bên ngoài mạng, thiết bị gửi yêu cầu tới Stun server để nhận thông tin về địa chỉ IP và cổng port được NAT gán. Việc cung cấp thông tin này sẽ cho phép thiết bị trong mạng nội bộ thiết lập kết nối.
  • Hole Punching: Stun server hỗ trợ kỹ thuật Hole Punching để tạo ra lỗ trống trên NAT, giúp các gói tin từ thiết bị khác có thể đi qua NAT và kết nối với thiết bị đằng sau NAT.
  • Hỗ trợ giao thức khác: Stun server có khả năng hỗ trợ các giao thức bổ sung như TURN (Traversal Using Relay NAT) hoặc ICE (Interactive Connectivity Establishment) để đảm bảo kết nối truyền thông theo thời gian thực được thiết lập và đảm bảo chất lượng kết nối tốt nhất giữa các thiết bị trong mạng nội bộ đang sử dụng NAT.
stun server la gi
Vai trò chính của Stun Server

Xem thêm: SIP Server là gì? | Tổng quan kiến thức về SIP Server A-Z

4. Tính ứng dụng của Stun Server 

Dưới đây là những cách mà Stun server được sử dụng trong các ứng dụng phổ biến:

4.1. VoIP (Voice over IP)

Trong ứng dụng VoIP, Stun server đóng vai trò trong việc hỗ trợ thiết bị xác định địa chỉ IP công cộng và cổng NAT của mình. Thông tin này là quan trọng để thiết lập kết nối trực tiếp giữa các thiết bị VoIP, nhằm cải thiện chất lượng cuộc gọi và giảm độ trễ.

4.2. Video Conference

Trong các ứng dụng họp trực tuyến và video conference, Stun server giúp các thiết bị xác định thông tin về NAT và thiết lập kết nối trực tiếp giữa chúng. Điều này đóng góp vào việc nâng cao tính ổn định và chất lượng của cuộc họp, đồng thời giảm thiểu độ trễ và sự gián đoạn trong truyền hình ảnh và âm thanh.

4.3. Trò chơi trực tuyến

Trong các trò chơi trực tuyến đa người chơi, Stun server đóng vai trò quan trọng trong việc giúp các thiết bị xác định địa chỉ IP công cộng và cổng NAT. Qua đó, các thiết bị có thể thiết lập kết nối trực tiếp với nhau, đảm bảo việc truyền dữ liệu trong trò chơi diễn ra một cách nhanh chóng và ổn định, từ đó nâng cao trải nghiệm chơi game của người dùng.

4.4. Truyền dữ liệu Peer-to-Peer

Trong các ứng dụng truyền dữ liệu P2P (Peer-to-Peer) như trao đổi tệp, chia sẻ nội dung trực tuyến, Stun server hỗ trợ các thiết bị trong mạng xác định thông tin về NAT và thiết lập kết nối trực tiếp. Nhờ đó làm tăng tốc độ truyền dữ liệu và hiệu suất chia sẻ tệp giữa các thiết bị.

Stun server chủ yếu được triển khai và sử dụng trong môi trường mạng Internet công cộng, cung cấp phương tiện để các thiết bị xác định thông tin NAT và thiết lập kết nối trực tiếp. Nhờ có Stun server mà các ứng dụng này có thể tối ưu hóa khả năng kết nối và truyền dữ liệu qua NAT, nâng cao tính ổn định và hiệu suất truyền dữ liệu.

stun server la gi
Tính ứng dụng của Stun Server

Xem thêm: NTP Là Gì? Hướng Dẫn Cấu Hình [A-Z] NTP Server Chi Tiết

5. Stun được sử dụng để làm gì trong SD-WAN?

Trong SD-WAN, Stun được áp dụng để giải quyết vấn đề của việc thiết lập kết nối thông qua các thiết bị NAT. Trong môi trường SD-WAN, khi các thiết bị CPE (Customer Premises Equipment) kết nối với trung tâm thông qua địa chỉ IP riêng thông qua NAT, địa chỉ IP có thể thay đổi. Stun sẽ xác định các thay đổi này, đảm bảo sự liên tục trong quá trình truyền dữ liệu giữa các thiết bị trong mạng, ngay cả khi thông qua các thiết bị NAT.

Xem thêm: Client Server là gì? | Tổng quan về mô hình Client Server

6. Một số thông báo quan trọng trong Stun 

Trong giao thức Stun, có một số thông báo quan trọng, mỗi loại thông báo đóng vai trò truyền tải việc giao tiếp giữa các thiết bị nhằm xác định chính xác thông tin về địa chỉ IP, cổng và loại NAT đang được sử dụng. Các loại thông báo chính trong giao thức Stun bao gồm:

  • Binding Request (Yêu cầu liên kết): Thông báo được gửi từ thiết bị client đến Stun server bao gồm mã transaction ID, thường được tạo ngẫu nhiên, và có thể bao gồm các thuộc tính định danh như USERNAME hoặc MESSAGE-INTEGRITY, tùy thuộc vào nhu cầu cụ thể. Mục đích chính của thông báo này là để yêu cầu Stun server xác định thông tin về địa chỉ IP và cổng mà thiết bị client đang sử dụng.
  • Binding Response (Phản hồi liên kết): Thông báo được Stun server gửi đến thiết bị client chứa thông tin quan trọng về địa chỉ IP và cổng mà thiết bị client đang sử dụng. Nó cũng đi kèm với mã transaction ID tương tự như trong yêu cầu ban đầu, giúp thiết bị client nhận biết đó là phản hồi cho một yêu cầu cụ thể. Bên cạnh đó, thông báo có thể chứa các thuộc tính tùy chọn như XOR-MAPPED-ADDRESS.
  • Binding Error Response (Phản hồi lỗi liên kết): Khi có lỗi xảy ra trong quá trình xác định NAT hoặc không thể tìm thấy thông tin về địa chỉ IP và cổng qua NAT, Stun server gửi thông báo này đến thiết bị client. Thông báo này chứa mã lỗi cụ thể để thiết bị client có thể xử lý và điều chỉnh theo cách thích hợp.

Xem thêm: Application Server là gì? | Toàn bộ kiến thức về App Server

7. Tổng kết

Mong rằng bạn đã hiểu rõ khái niệm Stun Server là gì. Với vai trò quan trọng trong việc giúp các thiết bị trong mạng nội bộ kết nối trực tiếp với các thiết bị bên ngoài mạng, Stun server trở thành một phần mềm không thể thiếu trong các ứng dụng truyền thông và IoT. Bạn có thể truy cập vào Blog của VinaHost TẠI ĐÂY để xem thêm nhiều bài viết hấp dẫn khác. Hoặc liên hệ ngay cho chúng tôi khi bạn cần hỗ trợ nhé:

Xem thêm một số bài viết khác:

C&C Server là gì? | Hướng dẫn Phát hiện & Ngăn chặn CC Server

Dedicated Server Là Gì? Tổng Hợp Toàn Bộ Kiến Thức [A-Z]

VPS là gì? | Tổng hợp kiến thức [A-Z] về máy chủ ảo VPS

Windows Server là gì? | Lý do nên chọn Windows Server?

Đánh giá
5/5 - (6 bình chọn)
Đăng ký nhận tin

Để không bỏ sót bất kỳ tin tức hoặc chương trình khuyến mãi từ Vinahost

    Bài viết liên quan
    Bình luận
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Phản hồi nội tuyến
    Xem tất cả bình luận
    Tổng lượt truy cập: lượt xem