2.1 協議如同人與人聊天
通常,我們上網的時候根本感覺不到協議的存在,人們通常也不會在意協議之類的事情。隻要程序能正常運行,就足以滿足日常需求,何況現在的大部分網絡都是可以自動連接的。協議對于非專業人員變得更加陌生。通常也不會有人因為不懂協議導緻不能上網的情況發生。然而在通過網絡實現通信的過程背後,協議卻起到了至關重要的作用。
假設有三個人A、B、C。A隻會說漢語、B隻會說英語、而C既會說漢語又會說英語。現在A與B要聊天,它們之間應該入後溝通呢?若A和C要聊天,又會如何?這時,如果我們:
- 将漢語和英語當作“協議”
- 将聊天當作“通信”
- 将說話的内容當作“數據”
那麼A與B之間由于各持一種語言,恐怕說多久也無法交流。因為它們之間談話所用的協議(語言)不同,雙方都無法将數據(所說的話)傳遞給對方。接下來,我們分析A與C之間聊天的情況。兩人都用漢語這個“協議”就能理解對方所要表達的具體含義了。也就是說A與C為了順利溝通,采用同一種協議,使得他們之間能夠傳遞所期望的數據(想要說給對方的話)。
如此看來,協議如同人們平常說話說采用的語言。雖然語言是人類才具有的特性,但是計算機與計算機之間通過網絡進行通信時,也可以 認為是依據類似于人類“語言”實現了相互通信。
當然,即便是人與人之間溝通也不能胡說,要遵循一定的要求或者規律。協議也是同樣,協議受到協議三要素約束。
- [x] 語法
- [x] 語義
- [x] 順序
回到網絡的世界,計算機網絡是由多個互連的結點組成,結點之間可以不斷交換數據和控制信息。要做到井然有序地交換數據,每個結點都必須遵守一些事先約定的好的規則。這些規則明确地規定了所交換數據的格式和時序。這些為網絡數據交換而制定的規則、約定形成了标準,稱為網絡協議。
任何一種網絡通信協議都必須包括了三個組成部分:語法、語義和時序,其實就是我們所說的協議三要素。
- 語法:語法是用來規定通信雙方“如何講”,主要任務是确定用戶數據和控制信息的結構和格式,即确定用何種編碼及信号電平等。
- 語義:語義規定通信雙方準備“講什麼”,涉及用于協調與差錯處理的控制信息。規定了通信雙方如何進行數據交換。包括需要發出何種控制信息、完成何種動作以及做出何種響應,對發出請求、執行動作,以及返回應答等進行規定,同時也規定了用于協調和差錯處理的控制信息。
- 時序:又稱為同步,規定雙方“何時進行通信”,即對事件的實現順序以及速度匹配等。
我們已知的廠商有很多,IBM、微軟、思科、華為都屬于巨頭了,有這麼多的廠商在,那麼網絡協議究竟用誰家的?他們之間是否兼容呢?這些都是問題,如果沒有統一的協議,就會出現“一人一把号,各吹各的調”的問題。那麼究竟有沒有協議的标準,或者說制定這個标準的組織呢?肯定是有的。這樣的組織有很多,咱們簡單說幾個。
第,,一個組織就是ISO,國際标準化組織(International Organization for Standardization),簡稱ISO,是一個全球性的非政府組織,是國際标準化領域中一個十分重要的組織。中國是ISO的正式成員,代表中國參加ISO的國家機構是中國國家技術監督局。
第二個IEEE,電氣和電子工程師協會(Institute of Electrical and Electronics Engineers),簡稱IEEE。是一個國際性的電子技術與信息科學工程師的協會,是目前全球最,大的非營利性專業技術學會,其會員人數超過40萬人,遍布160多個國家。IEEE緻力于電氣、電子、計算機工程和與科學有關的領域的開發和研究,在太空、計算機、電信、生物醫學、電力及消費性電子産品等領域已制定了900多個行業标準,現已發展成為具有較大影響力的國際學術組織。
還有國際互聯網協會(Internet Society),簡稱ISOC。是一個全球性的互聯網組織,在推動互聯網全球化,加快網絡互連技術、發展應用軟件、提高互聯網普及率等方面發揮重要的作用。ISOC是一個非政府、非赢利的行業性國際組織,在世界各地有上百個組織成員和數萬名個人成員。ISOC同時還負責互聯網工程任務組(IETF)、互聯網結構委員會(IAB)等組織的組織與協調工作。這裡有一個比較重要的“團夥”,國際互聯網工程任務組(The Internet Engineering Task Force,簡稱 IETF)是一個公開性質的大型民間國際團體,彙集了與互聯網架構和互聯網順利運作相關的網絡設計者、運營者、投資人和研究人員,并歡迎所有對此行業感興趣的人士參與。
其實還有很多公司、組織、學校在協議方面做了很重要的貢獻,我們在這裡隻說這三個,後邊如果有遇到的,我們再細說。為什麼這三個有代表性呢?我們可以簡單看看這三家都幹了什麼。
先說ISO,它在網絡協議方面做的最重要的一件事情,就是定義了OSI(Open System Interconnection,意為開放式系統互聯)。一般我習慣稱其為OSI參考模型,該模型定義了不同計算機互聯的标準,是設計和描述計算機網絡通信的基本框架。這裡值得注意的是,OSI模型給協議做了一個基本框架,就是畫了各圈,從此以後的各種協議的定制,盡量參照該模型。雖然OSI本身也作為協議存在過,不過早已被TCP/IP協議族淘汰了。
然後緊接着我們就說TCP/IP協議族,TCP/IP并非ISO指定,是由IETF建議、緻力推進标準化的一種協議,其中,大學等研究機構和計算機行業是推動标準化的核心力量,現已成為業界标準協議。TCP/IP并非一種協議,而是一族協議,簡單理解就是包含了很多協議。它們都屬于TCP/IP協議族,在不同的層面發揮不同的作用。
IEEE呢?它定義的通常不是協議,而是一些技術标準。大家應該都見過,隻是沒注意,比如說802.11系列标準,這個是幹什麼的?細心的人都會發現,這個就是Wi-Fi用的标準。一般我們都能看到Wi-Fi路由器上寫着支持802.11a、b、g,這個就是IEEE定義的工業标準。
到這裡呢,我們還要說一個RFC,全稱是Request For Comments,是一系列以編号排定的文件。文件收集了有關互聯網相關信息,以及UNIX和互聯網社區的軟件文件。目前RFC文件是由ISOC贊助發行。基本的互聯網通信協議都有在RFC文件内詳細說明。RFC文件還額外加入許多的論題在标準内,例如對于互聯網新開發的協議及發展中所有的記錄。因此幾乎所有的互聯網标準都有收錄在RFC文件之中。如果你想成為網絡方面的專家,那麼RFC無疑是最重要也是最經常需要用到的資料之一,所以RFC享有網絡知識聖經之美譽。通常,當某家機構或團體開發出了一套标準或提出對某種标準的設想,想要征詢外界的意見時,就會在Internet上發放一份RFC,對這一問題感興趣的人可以閱讀該RFC并提出自己的意見;絕大部分網絡标準的指定都是以RFC的形式開始,經過大量的論證和修改過程,由主要的标準化組織所指定的,但在RFC中所收錄的文件并不都是正在使用或為大家所公認的,也有很大一部分隻在某個局部領域被使用或并沒有被采用,一份RFC具體處于什麼狀态都在文件中作了明确的标識。
,