簡體   English   中英

ZeroMQ - 在從隊列中接受新客戶端之前向客戶端發送和接收多條消息

[英]ZeroMQ - Send and receive multiple messages to a client before accepting new client from queue

是否可以將 ZeroMQ 與請求-回復風格的架構一起使用,其中服務器接受來自客戶端的初始消息,然后專門與該客戶端對話,直到它完成所有需要做的事情? 使用標准套接字,這很容易實現,因為當服務器接受客戶端連接時會創建一個新套接字。 有沒有一種方法可以在 ZeroMQ 中實現,在獲得大隊列處理能力的同時給出相同的結果?

這是在我之前的查詢之后,我最初的問題太開放了。 我的情況涉及可能有數千個客戶端同時與服務器通話,以嘗試證明並獲得解密庫的密鑰。 證明過程有多個質詢-響應樣式檢查。 此服務器不能線程化,因為密鑰配置不是線程安全的,因為它使用英特爾 SGX 飛地。

ZeroMQ - 模擬多個客戶端到一台服務器的標准套接字

讓我們想象一個這樣的解決方案:

1 ) Client No.[1~10000] 調用REQ.send()向 Attestation-server 請求回復

2 ) 無限循環中的證明服務器REP.poll( 0, ZMQ_POLLIN ) -s 以檢測任何新請求到達,如果傳入隊列中存在任何請求,則REP.recv() -s 下一個請求到回復

3)根據證明服務器的決定,它可能但不需要向請求證明並為“帶外”私有准備和設置新的服務器端訪問點的客戶端提供有意義或無意義的響應- 如上所述的通道通信。 一次性使用的接入點池或連接就緒接入點的旋轉池(在可行和安全的情況下)可能有助於將這一階段的任何延遲降低到幾乎為零的附加設置時間。

4)客戶端,無論是 POSACK 還是 NACK 的, REQ.recv() -sa 來自證明服務器的回復,如果它被 POSACK 證明,它包含一個新的 AccessPoint 定義(一套完整的傳輸-class 規范、地址規范、端口規范(如果對給定的傳輸類有意義))。 應對 NACK 的情況進行引導,以免損壞任何證明服務器資源(保護策略集的一個元素,以更好地將證明服務器與故意組織的大規模過載和其他類型的 DDoS 攻擊隔離開來)

5 ) 輪到客戶端嘗試.connect()一個新的私有通道到證明服務器提議的 AccessPoint,如果在任何證明策略檢查和如果需要更詳細地處理 NACK 和攻擊嘗試混合流的性質和動態演變,則可以針對一些沙盒目標。

6 ) POSACK 的客戶端將在任何原型和編排的私人頻道中保持對話,因此用於完成與證明服務器的證明過程的工具保持在服務器的意願和速度.


還有許多其他可能涉及到的 ZeroMQ 特性——每通道加密、白名單/黑名單、其他 ISO/OSI-L2/L3/L4/L5/L7 配置選項,以提高 Attestation-server 服務供應的健壯性.


結語……還有一點遲到的法律免責聲明

希望我不只是通過打開智能分布式行為 Troyan 原型的潘多拉盒子來縮短 SGX-silicon 的所有設計和制造研發

:o)

暫無
暫無

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

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