集群間通訊協議 TIPC簡介

2021-06-19 17:29:29 字數 1851 閱讀 9680

tipc是愛立信公司提出的一種透明程序間通訊協議(transparent interprocess communication), 主要適用於高可用(hal)和動態集群環境. 該軟體當前主要由風河(windriver)公司在維護, 主要支援linux, solaris 和 vxworks三種作業系統, 從linux核心2.6.34開始支援tipc的最新版本2.0, 不過還有很多協議設計的功能沒有實現. 在可信網路環境下, tcp/ip協議的很多操作是冗餘的, 例如, 著名的三次握手, 從而導致通訊效率下降, 增加了應用程式的通訊時間, 不利於對時間響應要求比較高的應用, 比如, 處理集群成員節點由於重啟, down機等各種原因導致的增加和減少. tipc針對可信網路環境, 減少了建立通訊連線的步驟和定址目標位址的操作(在tcp/ip協議裡, 完成這些操作節點間最少也需要9次包交換, 而使用tipc則可以減少到2次). 這可以提高節點間資訊交換的頻率以及減少節點間等待的時間.

1、通過協議傳送的大部分message都是直接到達目的地

2、大部分message的傳輸時間都很短

3、大部分message都在集群內部節點間傳遞

4、包丟失率很低, 重傳不經常發生

5、可用頻寬和記憶體都很大

6、所有帶戳包的校驗和都由硬體校驗

7、通訊節點的數量在一定時間內是相對受限和靜態的

8、安全在封閉的集群環境裡相對internet來說不是關鍵因素

這些基礎假定允許tipc是乙個基於流量驅動(traffic-driven)和固定大小滑動視窗的訊號鏈路層協議. 而不是定時器驅動(timer-driven)的傳輸層協議. 這使得tipc擁有更早釋放傳送buffer, 更早偵測到包丟失並重傳, 更早偵測到節點不可用等優點.

平時我們使用的socket,tcp也好,udp也好,用來標識一對socket的通訊,無非是用兩個socket的ip位址和埠號。比如使用udp的socket,要發乙個datagram到另乙個socket,需要指定對端的位址,這個位址是由那台機的ip和埠組成。socket是在核心中管理,當核心檢測到socket有資料可讀時,就會通知擁有這個socket的程序去讀取裡面的資料。

這裡的不方便之處在於,要指定對端位址,我們必須知道這個socket在哪台機,埠是多少,才能傳送資料出去。能不能只提供一些應用層的資訊,就可以讓核心自己去查到socket的位置,再把訊息發過去?tipc做的就是這樣的事。使用tipc,我們在建立socket的時候在核心中註冊自己的服務型別service type,那麼在傳送端,只需要指定服務型別就可以由核心路由到相應的socket。這個時候,對應用層來說,對端位址僅僅是乙個服務型別service type!很顯然,核心維護著這麼一張tipc的路由表,即由服務去查詢socket。而每台機都有這樣的路由表,他們之間資訊就像能夠共享一樣地為整個集群的tipc socket服務。有了tipc,這個socket使用了哪個ip,那個埠,我們都不再需要知道,很好很強大。

1、有些時候多個程序提供同樣的服務,僅僅是為了負載平衡或其他原因,這種情況可以用乙個整數變數instance來標識不同socket,但是指定同樣的service type。這個時候socket的位址是由service type和instance共同來指定。傳送資料時候只需要指定service type和乙個instance的值,也可以指定service type和instance的乙個區間。對於後者,就是broadcast你的datagram。

2.、管理前面說的tipc路由表的是核心當中的乙個程序叫做name server。它知曉著集群中所有的tipc socket。在傳送datagram給服務某個service的socket之前,你可以向它請求服務這個service的socket是否已經在工作了,它會告訴你service的狀態。並且註冊了乙個observer,當你關心的socket起來之後發訊息通知你,這樣就可以避免你把datagram發給乙個根本不存在的socket。

MODBUS通訊協議簡介

modbus通訊協議簡介 一 概述 modbus 協議是應用於電子控制器上的一種通用語言。通過此協議,控制器相互之間 控制器經由網路 例如乙太網 和其它裝置之間可以通訊。它已經成為一通用工業標準。有了它,不同廠商生產的控制裝置可以連成工業網路,進行集中監控。此協議定義了乙個控制器能認識使用的訊息結構...

串列埠通訊協議簡介

串列埠通訊 serial communication 是一種裝置間非常常用的序列通訊方式,因為它簡單便捷,大部分電子裝置都支援該通訊方式,電子工程師在除錯裝置時也經常使用該通訊方式輸出除錯資訊。電平標準根據通訊使用的電平標準不同,串列埠通訊可分為ttl標準及rs 232標準,見如下 通訊標準 電平標...

Amxlink通訊協議 簡介

amxlink即阿魅星開源版通訊協議,英文諧音可讀作 amazing link 其中amazing意為 令人驚嘆的,了不起的 最新amxlink協議內容請參考 amxlink遵循bsd 3 clause開源協議,這意味著您可以自由使用該協議,但需要滿足一下幾個前提 如果再發布的產品中包含源 則在源 ...