最初的時候,即時通訊功能是被用來作為系統服務而開發的,例如列印或者郵件程式,普通使用者和系統管理員之間,通常會用短資訊或通知進行資訊交流。
後來,開始用於區域網各計算機之間的通訊。例如,林鴻第一次在學校機房上課的時候,亞瑟入侵他的計算機,使用的就是作業系統中自帶的這樣一個區域網通訊功能。
網際網路興起之後,這些協議通訊協議被越來越多的技術人員所瞭解,逐漸在各大主流作業系統上出現了一些即時通訊軟體。這些軟體使用協議基本可以分為兩種協議架構,一類是基於點對點,也即客戶端和客戶端直接進行通聯,另外一類則需要客戶端和伺服器聯絡,然後再由伺服器進行中級轉發。
點對點的通訊比較簡單,就和打電話一樣,必須兩人同時線上才能進行聯絡,如果有一方網路並不是很好,或者對方並不線上的話,通訊顯然就不能進行。還有一點,點對點通訊只能同時和一個人進行通聯。
而伺服器和客戶端的架構,這類似bbs,有一臺專門的伺服器作為中央樞紐,大家都和這個中央樞紐聯絡,例如告訴他,我要發資訊給某某,麻煩幫我轉發一下。這樣,就算對方當時不線上,等對方線上的時候,伺服器再發給他也行,這就是延遲傳送。
並且,第二種架構還有一個優點,那就是可以進行群聊,一個人對多人傳送資訊,讓建立聊天室有了可能。
亞瑟和馬修之前進行聯絡的那個名為xaric的通訊軟體,就是建立在這個架構之上。
林鴻專門針對這個軟體進行了研究,發現這個軟體所使用的協議是irc協議。
這個協議是1988年由芬蘭人雅爾口歐伊卡林恁開發出來的,是一個網際網路即時文本訊息協議,是專門為了bbs或團體成員之間進行內部溝通交流而設計的,允許點對點,也允許一對多,甚至還包括了檔案共享方面的內容。
林鴻瞭解了一下,發現這個協議是公開的,也就是說向所有人都免費開放,就像是其他常見的dp,ftp協議那樣,可以隨意使用,無論是用於商業用途和個人用途。
林鴻對其心生佩服,在科學技術的發展史上,不知道有多少這樣的人做著貢獻,從最開始的電子技術無線電技術到現代的電話技術計算機技術,正是有著這些技術前輩們的無私奉獻,做著基礎方面的建設,才能夠逐漸發展到今天。
林鴻心中琢磨著,這個軟體自己編寫出來之後,也免費給大家使用,貢獻一份自己的力量。
林鴻之前去學校圖書館找了一下,並沒有看到有關irc協議方面的資料,後來他又問了一下亞瑟和馬修,他們兩個也不知道到哪裡能找到這方面資料。
後來他不得不去一些技術論壇進行詢問,最終終於有一個人告訴他一個bbs討論組的地址,林鴻登入到那個討論組,最終找到了原作者的email地址,於是他向原作者雅爾口嘗試著發了一封郵件,林鴻在郵件中明確地告訴他,自己想要編寫一個基於irc協議上的軟體,想要irc協議的細節。
原本還要等上一段時間,卻沒想到不到半個小時就收到了作者的回信。
雅爾口對於有人加入到irc協議軟體開發的行為感到非常高興,對於每一個人,他都會盡自己最大的努力去幫助別人,提供便利。
在郵件中,他給林鴻發來了詳細的協議技術細節,而且還包括最新的升級版本,包括頻道加密和更便利的檔案共享功能。
原本,林鴻只想編寫一個用於團隊內部進行交流的溝通軟體,這樣,只需要有一個伺服器端就行了,其他的都作為客戶端和伺服器端連線。
但是了雅爾口的最新irc協議之後,他決定擴充一下之前所構想的軟體功能,不侷限於一個伺服器端,而是多個,即在軟體中同時整合伺服器端和客戶端。也就是說,每一個使用者都可以將自己作為中繼伺服器,給大家提供服務。並且,伺服器端之間也可以進行通聯。
實際上,這種架構和業餘無線電非常相似。在無線電通訊中,有一種特殊電臺稱為無線中繼臺,能實現訊號的中繼和放大,從而延伸無線電網路的覆蓋範圍。
在無線電發明的早期,人們還沒有發現短波訊號的遠距離傳播特性,而中長波無線電地波通訊因為大地吸收損耗,距離有限。早期的業餘無線電愛好者就通過人工中轉的辦法來擴大通訊範圍。原理和接力一樣,通過火腿志願者地熱心幫助,火腿們可以僅僅通過長波就可以將無線電訊號送至大洋彼岸,甚至地球的另外一端
林鴻決定修改架構,讓每一個客戶端都同時具備中繼臺功能,從而可以極大地增強整個即時通訊系統的穩定性。因為如果僅僅只有一個伺服器端的話,一旦這臺伺服器由於某種原因出現問題,那麼其他人之間的通訊就會根本無法進行。
而重新設計之後的架構則不會如此,如果其中一個節點損壞,訊息還是可以通過另外一個節點傳輸到目的地。這其中資訊傳輸的路徑從理論上來講有無數條,只要通過最短路徑演算法找出最短的那條即可。
至於編寫這個軟體的語言,林鴻最終選擇了c語言,他在剛開始的時候就考慮到了跨平臺的需要,目前他所接觸到的高階語言中,只有c語言能夠滿足這個要求。
第一百八十四章即時通訊軟體
第一百八十四章即時通訊軟體,到網址
作者「瘋狂小強」的其他小說
《修仙高手再戰都市》