有人可以從網絡的角度描述RPC(SUN和/或DCE)是什麼以及它偏離標準TCP行爲的原因?RPC和TCP行爲
我瞭解它的方式是客戶端通過一個唯一的源端口伸出服務器,然後在TCP三次握手完成後切換源端口。我使用ASA防火牆,因此當檢查DCE RPC未啓用時,此行爲變得非常明顯,因爲防火牆會將其視爲威脅而阻止它。我已經閱讀了幾篇MS TechNet文章和其他網站定義,包括觀看了五個Youtube視頻,這些視頻似乎都是從程序員的角度來解釋它,但由於我不是程序員,所以我還沒有完全理解這個概念。
有人可以從網絡的角度描述RPC(SUN和/或DCE)是什麼以及它偏離標準TCP行爲的原因?RPC和TCP行爲
我瞭解它的方式是客戶端通過一個唯一的源端口伸出服務器,然後在TCP三次握手完成後切換源端口。我使用ASA防火牆,因此當檢查DCE RPC未啓用時,此行爲變得非常明顯,因爲防火牆會將其視爲威脅而阻止它。我已經閱讀了幾篇MS TechNet文章和其他網站定義,包括觀看了五個Youtube視頻,這些視頻似乎都是從程序員的角度來解釋它,但由於我不是程序員,所以我還沒有完全理解這個概念。
請注意,關於RPC協議沒有任何偏離標準TCP的東西。
SunRPC或DCE RPC在UDP之上(至少SunRPC可以使用UDP)或在TCP之上工作。
通常,爲了讓RPC客戶端聯繫/調用RPC服務器,它首先聯繫某種查找服務器(在SunRPC中稱爲portmapper或rpcbind),該服務器使用位置(IP地址和端口號)實際服務器在哪裏運行。
所以從網絡角度來看:
通常,portmapper服務與RPC服務器程序在同一臺機器上運行。
當客戶端想要連接到或調用RPC服務它執行下述動作:
(在這種情況下使用UDP,而不是TCP,它的工作原理大致相同,但有沒有自然沒有連接建立/拆除在網絡上執行)
這爲防火牆的一個問題,因爲服務器偵聽隨機選擇的端口號,不能以管理方式允許訪問特定的端口號。相反,想要支持這種設置的防火牆需要打開端口映射器端口,捕獲去往該端口映射器的RPC消息,檢查與端口映射器交換的消息內容以從該映射器中提取IP地址和端口號RPC消息(portmapper本身實現爲RPC服務器),以便動態地打開RPC服務器和客戶端之間的端口。
謝謝你的出色解釋! – Keenan