一次完整的 RPC 流程

2021-10-18 11:48:38 字數 905 閱讀 3645

一次完整的 rpc 流程

因為 rpc 是遠端呼叫,首先會涉及網路通訊, 又因為 rpc 用於業務系統之間的資料互動,要保證資料傳輸的可靠性,所以它一般預設採用 tcp 來實現網路資料傳輸。

網路傳輸的資料必須是二進位制資料,可是在 rpc 框架中,呼叫方請求的出入引數都是物件,物件不能直接在網路中傳輸,所以需要提前把物件轉成可傳輸的二進位制資料,轉換演算法還要可逆,這個過程就叫「序列化」和「反序列化」。

另外,在網路傳輸中,rpc 不會把請求引數的所有二進位制資料一起傳送到服務提供方機器上,而是拆分成好幾個資料報(或者把好幾個資料報封裝成乙個資料報),所以服務提供方可能一次獲取多個或半個資料報,這也就是網路傳輸中的粘包和半包問題。為了解決這個問題,需要提前約定傳輸資料的格式,即「rpc 協議」。 大多數的協議會分成資料頭和訊息體:

資料頭一般用於身份識別,包括協議標識、資料大小、請求型別、序列化型別等資訊;

訊息體主要是請求的業務引數資訊和擴充套件屬性等。

在確定好「 rpc 協議」後,一次完整的 rpc 呼叫會經過這樣幾個步驟:

1、呼叫方持續把請求引數物件序列化成二進位制資料,經過 tcp 傳輸到服務提供方;

2、服務提供方從 tcp 通道裡面接收到二進位制資料;

3、根據 rpc 協議,服務提供方將二進位制資料分割出不同的請求資料,經過反序列化將二進位制資料逆向還原出請求物件,找到對應的實現類,完成真正的方法呼叫;

4、然後服務提供方再把執行結果序列化後,回寫到對應的 tcp 通道裡面;

5、呼叫方獲取到應答的資料報後,再反序列化成應答物件。

這樣呼叫方就完成了一次 rpc 呼叫。

rpc 通訊流程中的核心組成部分包括了協議、序列化與反序列化,以及網路通訊。

安全 一次滲透測試完整流程

常規滲透測試流程 思維導圖 web安全滲透測試不是隨便拿個工具掃一下就可以做的,要了解業務還需要給出解決方案。滲透測試 出於保護系統的目的,更全面地找出測試物件的安全隱患。入侵 不擇手段地 甚至具有破壞性的 拿到系統許可權。明確目標 資訊收集 漏洞探測 漏洞驗證 資訊分析 獲取所需 資訊整理 形成報...

一次完整的瀏覽器請求流程

1.網域名稱解析 2.tcp3次握手 3.建立tcp鏈結後,發起http請求 4.伺服器響應htpp請求,瀏覽器得到html 5.瀏覽器解析html 並請求html 中的資源 js,css,png.6.瀏覽器對頁面進行渲染 2 tcp 3次握手 位碼即tcp標誌位,有6種標示 syn synchro...

一次完整的HTTP事務

http通訊機制是在一次完整的http通訊過程中,web瀏覽器與web伺服器之間將完成下列7個步驟 1.建立tcp連線 在http工作開始之前,web瀏覽器首先要通過網路與web伺服器建立連線,該連線是通過tcp來完成的,該協議與ip協議共同構建internet,即著名的tcp ip協議族,因此in...