簡體   English   中英

如何隔離服務器中的UDP多播地址+端口

[英]How can i isolate an UDP multicast address + port in a server

我已經在C#中開發了一個使用UDP多播系統的程序。 我的多播組正在使用224.0.0.1地址進行通信。

該場景是以下情況:

  • 我有幾台服務器正在運行該程序;
  • 每個服務器使用不同的端口進行通信。
  • 服務器共享同一網絡。

我想保護每台服務器免受他人造成的噪音影響。 如果有人決定使用相同的地址和端口,那么程序的穩定性就不會令人滿意。

如何將我的地址和端口與外部流量引起的噪聲隔離?

如何隔離我的多播流量並保護它免受網絡干擾?

對於第一個問題,我相信您也許可以實現某種控制層。

  • 從網絡拓撲POV:

    • 您可以嘗試將路由器或代理配置為僅允許特定計算機將數據包發送到特定地址(包括多播地址)。
  • 編程方式:

    • 添加有效服務器的本地目錄。 如果從未知地址接收到數據包,則將其丟棄。
    • 使用可逆算法(例如Rijndael)對數據包有效負載進行加密。 無法解密的有效載荷可能會被宣布為無效。

對於第二個問題-將套接字TimeToLive設置為1。這意味着多播數據將僅“跳”一次。 引用:

s.SetSocketOption(SocketOptionLevel.IP,
    SocketOptionName.MulticastTimeToLive, 2);

這設置了套接字的生存時間-這對於定義多播數據的范圍非常重要。 設置為1表示多播數據不會離開本地網絡,將其設置為高於此值將允許多播數據通過多個路由器,每個路由器將TTL減1。正確設置TTL值很重要出於帶寬考慮

http://www.codeproject.com/Articles/1705/IP-Multicasting-in-C

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM