互聯網在軍備競賽中誕生
前言
現代人每天都在使用聯網設備,盡管現在有了“蜂窩”網絡(移動信號塔組成的網絡覆蓋區域類似一個蜂窩)、wifi 為移動設備或者其他的聯網設備提供無線網絡傳輸服務。但互聯網的物理層面還是一條一條的網線連接成千上萬的聯網設備,依靠這些網線才能完成數據的千里傳送。
自互聯網誕生,如何利用網線傳輸數據就是一個相當頭疼的問題。畢竟網線能做的就是傳輸一連串電信號。再有,互聯網上的計算機成萬上億,數據從一臺計算機發送到另一臺計算機,如何實現如此精準的定位?又如何判斷這些數據的發送方與接收方就是正確的呢?......
等等一些列問題,都和今天討論的主題有關:互聯網協議。
一、互聯網歷史簡略
研究一樣事物,要順著它的歷史演進
1. 面向終端
今天的生活中,特別是學術圈中,“結構”是一個很火的詞。有些時候,結構可能聽起來玄而又玄,沒法具象化理解。但結構,說白了就是事物的組成部分的組建方式。例如汽車,由發動機、輪子、底盤、外殼等部分組成,不同的車有不同的組裝方式,具有大同小異的結構。
互聯網也是如此。
上世紀60年代。第一代互聯網,是一個“中央計算機”直連終端(電腦)的簡單結構。每臺終端獨占一條線路,是一種最基礎的網絡結構:即中心到終端。
2. 分組交換
面向終端的結構缺點很明顯,每臺終端獨占一條線路,就像以前的電話,每臺電話占用一條電話線,十分占用資源,且很容易出現意外。
每條電話線每天的使用量不足 1%。此外,上述結構終端之間不互聯,受中央計算機的控制,中央計算機一旦出現問題,全體癱瘓。
到了 60 年代中期,許多研究機構與軍事機構紛紛研發終端互聯并且有效利用線路的網絡結構。
1969 年 12 月,美國國防部推出第二代網絡結構:ARPA 分組交換網絡結構。這也是互聯網 Internet 的前身。
分組交換剔除了中央計算機,將中央計算機替換成諸多的“中間處理器”,這些中間處理器相互連接,各終端再與這些中間處理器連接,由此實現數據分享、轉發信息、線路復用等優勢。
3. 標準化網絡
第二代網絡結構已經具有不錯的實際應用了。但大多數還是在大學、科研機構、軍事機構、計算機公司等小范圍內使用。各個組織有自己的標準和規范,大家互不兼容,難以發展。為了促進網絡的大范圍的使用,促進資源的共享,國際標準化組織(ISO)于 1984 年正式頒布了一個稱為 “開放式互聯基本參考模型”(OSI),將網絡數據傳輸的結構做了“7 層模型”的標準化。這個標準不是上述網絡結構“物理層”的結構標準,而是“數字化的”數據如何在網線里傳輸的結構標準。
這里的 7 層模型就是本文的主題之一。
4. Internet
在前面的基礎上,互聯網在各個國家開花結果,美國作為互聯網的主干網,各個國家建立自己的主干網,并通過各種渠道建立類似城域網、學術網、校園網等網絡。世界網絡由此組成了龐大的互聯網。
二、層與協議
契約,是人類社會發展的催化劑
上面講到 OSI 模型是數據傳輸的標準,但是由于各個廠商為了各自的利益已經形成了自己的實現標準,因此,OSI 并沒有被實現。但另一種模型:TCP/IP 模型卻成為了事實上的網絡傳輸模型。但整體上與 OSI 一致。在分層上, TCP/IP 將網絡數據傳輸分為 4 個層。
層
所謂“層”,是將網絡傳輸數據的過程分成一些層,每個層負責不同的事務。
OSI 分層:
- 應用層
- 表示層
- 會話層
- 傳輸層
- 網絡層
- 數據鏈路層
- 物理層
TCP/IP 分層:
- 應用層
- 傳輸層
- 網絡層
- 接口層
物理層,就是網線,越往上的層越靠近用戶,是一個由下至上,從大到小的分層。所謂應用層就是針對不同的使用需求制定不同的實現方法。比如發郵件,需要制定針對郵件的規范,也需要制定特殊的傳輸規范。之所以做出區分,是因為每種文件有它獨特的適用場景,這就導致了需要制定不同的規范
協議
協議,就是上面的規范。規范僅僅是做出了規定,得大家一起遵守才叫協議。比如網頁的傳輸使用 HTTP 協議,就是你在瀏覽器地址欄里輸入的網址開頭 http 的真正含義。HTTP 屬于“應用層”的協議。每個層可能有很多協議,用于處理不同的問題。
TCP: 傳輸控制協議
IP: Internet Protocol,互聯網協議
三、五層實用模型
OSI 與 TCP/IP 都有各自的優缺點。但更通行地便于闡明網絡原理,大多數人會綜合 OSI 與 TCP/IP 來進行分層,將網絡傳輸分為 5 個層。
- 應用層
- 傳輸層
- 網絡層
- 鏈路層
- 物理層
1. 發送數據
為創建這種層間邏輯連接,發送端的每一層協議都要在數據報文前增加報文頭。該報文頭只能被其他計算機的相應層識別和使用。接收端的協議層刪去報文頭,每一層都刪去該層負責的報文頭,最后將數據傳向應用層。
發送進程送給接收進程的數據,實際上是經過發送端各層從上到下傳遞到傳輸介質。整個過程從第五層(應用層)開始,然后一層一層地向下移動。
在發送端的從上到下逐層傳遞的過程中,每層都要加上適當的控制信息,在第二層同時還要加上一一個尾部信息T2。當格式化的數據單元經過物理層(第一層)時,成為由0和1組成的數據比特流,然后再轉換為電信號在物理傳輸。
2. 接收數據
接收端收到數據后,收到的是一個數據流,這個數據流每經過一層,該層會將它負責的那部分外衣剝掉,再傳遞給上層,上層重復操作,直到最后應用層拿到數據剝除自身負責的控制信息,將數據交給應用層。
結語
為了減少閱讀疲勞,本文在這里暫不做網絡協議在每層實現原理的講解。
到這里,你已經大致了解了互聯網的發展歷史,以及為了傳輸數據所用的一些模型和協議,但這還不能讓你完全了解數據是如何被電腦所解析的,數據是如何被一對一地傳遞的。這中間還有很復雜的東西,這里先告一段落。
欲知后事如何,且聽下回分解。