2012-04-23 184 views
0

我有許多服務器運行在不同的計算機上並偵聽其衆所周知的IP地址和端口。 我想在服務器之間建立連接(首先嚐試獲勝),並基於衆所周知的IPAddress /端口對對呼叫者進行身份驗證。在套接字偵聽器服務器之間建立連接

我現在的問題是,我無法重新使用偵聽器端口來啓動一個新的連接 - 所以這種身份驗證是不可能的(即使連接套接字稍後會被通信實例參數唯一標識)。

我想保持夥伴之間的對稱性(沒有什麼像'主'協調節點)。 有沒有解決這個問題的方法?

[據我所知,SO_REUSEADDR並不意味着這個...]

更新: 我剛纔定義包含ip地址和端口號對一些配置。這個想法是使用這些對來建立連接。因此,具有配置的參與方可以輕鬆檢查傳入的連接。 後來我想把所有東西放在xinetd後面,讓他驗證傳入的地址/端口組合。

摘要: 事件如果在理論上可能通過使用機器特定的(IPAddress,端口)對來建立網絡,則不可能通過等效的通信節點來實現它(它們的「一半」必須是客戶端,其他半服務器)。 對嗎? [我們也可以討論這個問題背後的動機,但這並不問題]

+1

而不是使用相同的端口作爲服務器正在偵聽,爲什麼不將傳出連接綁定到另一個指定的端口?一個常見的例子是「listening_port_number + 1」。 – 2012-04-23 13:38:30

+0

...並繼續爲所有的網絡節點?它可以很難被授權然後... – BenSteven 2012-04-23 13:41:09

+0

你能澄清你知道的IP地址和端口**是什麼意思嗎?如果它的標準服務,如SMTP,如何在SMTP上添加基於IP端口對的身份驗證服務? – tuxuday 2012-04-23 13:53:15

回答

0

我必須說,依靠IP地址是不是真正的安全。但是,如果這是你選擇做什麼,你可以做以下

  • 使用UDP,而不是TCP之一。您可以輕鬆地從同一端口發送/接收消息。
  • 使用一對TCP端口。一個用於發送,另一個用於接收。
相關問題