用最有趣的方式帶你解決計算機網絡!(零)——概述

一、總述

  計算機網絡可謂是計算機最重要的基礎專業課之一,大家看到對於其中大量的概念、算法、原理、協議都非常頭疼,但是每次看完又一下子會忘記,所以希望能用各種有趣(騷裏騷氣)的比喻和舉例幫助大家更深刻的記憶相關的姿勢 QAQ

注:本教程參考華南理工大學的計算機網絡大學mooc教程,如果意猶未盡的同學可以繼續去深入學習一波~

二、互聯網絡發展史

(1) 奇妙的起源(1955-1970s初期)

  學習一個東西,最好從他是怎麼來的開始說起,只有知道了過去它是怎麼一步步過來的,才能知道現在它的每個部分都是爲啥這麼設計,它的好處在哪裏,能理解的更加深刻~
  那我們的男主角小計,是怎麼一步步長大成爲今天這樣迷倒萬千觀衆的帥哥的呢,故事要從1955年說起…
  1957年,老大哥前蘇聯發射了第一顆人造地球衛星,這美國可不能坐視不管啊,落後就得捱打,趕緊在1958年2月成立了APRA(Advanced Research Projects Agency),意思是高級研究計劃署,就相當於遊戲裏建了個能研發新技術的工廠。
  在這衆多項目中,有個娃子,叫ARPANET,在1969年出生了,這傢伙就是現在的因特網他爸。他有四個節點,分別位於斯坦福研究院,加州大學聖巴巴拉分校,加州大學洛杉磯分校,猶他大學。
圖片來自百度百科
  沒錯,大家看這幾個節點的位置就能感受到此子的不凡,但更加不凡的是,他特立獨行,有着跟前輩們完全不一樣的特點。它採用了包交換(Packet Switching),也叫分組交換,這可讓大傢伙大吃一驚。就像過去大家都喜歡穿運動褲,突然一個小夥穿着破洞褲就來了,之前最主要的通信網絡——電話網絡,用的一直都是電路交換技術,讓大家大吃一驚。
  這電路交換技術打電話打這麼爽,爲啥突然又來個分組交換呢,電路交換它不香嗎整這些花裏胡哨的,那肯定是他有啥不一樣的好處!分組交換使得APPAnet具備抗毀性,爲啥這麼說呢。分組交換是啥?大白話講就是派出一大堆外賣小哥,告訴他們要把這些外賣趕緊送到指定客戶手裏。這外賣小哥那是精通地理位置,所以爲了更快的送到客戶手裏,當它發現一個地方路堵了,或者塌了,馬上動用自己豐富的知識找其他的路最後到達終點。執行分組交換也就是這個外賣小哥是一個叫IMP(Interface Message Processor 接口報文處理器)的小型機設備。
在這裏插入圖片描述

(2) Internet的形成(1970s初期-1982)

  看到這小夥的天賦後,被譽爲互聯網之父的瑟夫、凱恩、柏蘭登發明了被稱爲互聯網骨幹協議的TCP/IP,ARPANET也由4個節點發展到30多個節點,快速成長。1981年美國國家科學基金成立計算機科學網絡CSnet,然後在Vinton Cerf的建議下,說這個姑娘和那個小夥挺配,讓他倆連起來吧!然後就進行了兩網互連,這一事件也被人認爲是互聯網正式誕生的標誌~主要的技術特點就是TCP/IP協議簇的形成和應用,可以把這個協議理解爲他們的結婚協議,說好他倆婚後怎麼交涉…

(3) 走向公衆

  雖然這小夥小姑娘都不錯,但是這倆都出身貴族,一般人家根本見不着他們。但是隨着技術的進步,他們的觀念也在轉變,逐漸走進了民衆的身邊。同時隨着計算機體積不斷縮小,以及視窗操作系統的出現,使得學習計算機的成本飛速下降。而1985年的仲夏之夜,Tim發明出世界上第一個web服務器和第一個web客戶機,他把它稱作World Wide Web,也就是我們說的3W,促進了瀏覽器的誕生。1993年4月,美國伊利諾州的伊利諾大學的NCSA發佈Mosaic瀏覽器誕生。

  說完了外國再說說咱中國的事情。

  • 1987年9月20日,從北京向德國卡魯厄爾大學發送了第一封郵件標誌着咱中國人使用Internet的起點。
  • 1994年4月20日,中國克服重重障礙,實現與Internet的全功能連接。
  • 1996年發佈了中國人寫的第一個RFC文檔RFC1922。
  • 1997年,中國四大網絡互聯互通。
  • 2006年,建成世界上最大的純IPv6網絡CNGI。
  • 2012年出現“互聯網+”概念。

三、常用基本概念

  爲了後面更好地講課,一些基本的行話還是要預先說明一下滴,就像各種奇葩的網絡術語,都需要有所瞭解才能在網上沒有阻礙地快樂衝浪~

廣義上的網絡

  • 廣義上網絡是指類似的事物連接在一起,以提供某些功能,說白了就是把能幹一個事兒的人都叫起來,然後大家一起幹一個活兒,人多力量大。就像快遞網絡啊,郵政網絡啊,電話網絡啊,都是網絡。

計算機網絡

  • 計算機網絡是網絡的一種,它指的是使用單一技術相互連接的自主計算機的互聯集合。說白了就是用同一個技術把很多自主的計算機讓它們互連起來,要注意這個自主,就說明每個計算機都是一個有血有肉的小夥,他不受其他人的限制,他的開關都是由自己決定的。同時這個介質也可以很多樣,可以是光纖、銅線也可以是微波、紅外、衛星,而且也可以呈現不同的大小形狀形式。

互聯網絡

  • 互聯網絡顧名思義,就是計算機網絡的相互連接,是網絡的網絡,就是我們常說的Internet,是全球最大的網絡。簡單的說就是每個地方都有自己的網絡,而互聯網絡呢,就是把大家的小圈子連起來,從而讓大傢伙都連起來。而我們常說的萬維網並不是計算機網絡,它是構建在互聯網絡上的一個分佈式系統,上面的一切都表現出高度一致性,就像一個文檔一樣。

信道

  • 信號的通道。

拓撲

  • 信道的分佈方式。
    – 分爲總線型、星型、環型、樹型和網狀。
    – 最常見的是總線拓撲和星型拓撲。
    在這裏插入圖片描述

總線拓撲

  • 主機連接在總線上,相互直接通達。
    – 從主機上發出的信號在總線上雙向同時傳輸
    – 所有的主機都可收到這個信號

說白了就是大家都住在同一條街上,然後大傢伙都比較懶,嗓子有比較大,直接就朝外大吼一聲,然後整條街都聽到了(所有主機都可收到信號)。而且你喊的時候,對面也能喊,兩邊可以同時說話(發出的信號可以在總線上雙向同時傳輸)。

星型拓撲

  • 主機都掛接在一箇中心節點上。
    – 早期中心節點由集線器充當,現在的中心節點主要由交換機充當。
    – 單點故障。

說白了就是現在大家聊天不能直接聊,得先告訴一個老大哥,老大哥幫你轉告給另一個人。這個老大哥以前是集線器,現在換成了交換機。這種模式的缺點就是老大哥得一直幹活,如果某天老大哥生病了就沒法聊天了。

協議

  • 一系列規則和約定的規範性描述,它控制網絡中的設備之間如何進行信息交換

協議就是說白了就是一些規定,比如你們現在不方便說話,就需要偷偷用一些手勢來說明現在的情況,而手勢就是兩個人約定好,哪些手勢是什麼意思,什麼時候應該用手勢,這樣才能更好地溝通。同時也制定了一些規則,比如這個時候不能說話只能用手勢。

數字帶寬

  • 值在單位時間內流經的信息總量
  • 帶寬越大越好,單位時間信息越多
  • 基本單位:比特每秒,即bps
    – 常用K,M,G,
    – 1Gbps=10310^3Mbps=10610^6kbs=10910^9bps

這個就相當於一條高速公路能通過的貨車,當然是單位時間通過的貨車越多,傳送的貨物越多啦。數字帶寬就是單位時間送出的貨物!

吞吐量

  • 指實際的、可測到的帶寬。
    – 網絡設備性能
    – 用網時間
    – 網絡拓撲
    – 用戶數量
    – 用戶計算機性能
    – 服務器

數字帶寬是你理想情況下能通過的信息總量,但是實際上,比如這個貨車,可能中間路堵了,或者說某個關卡需要檢測很久,即使貨車到了,還要接受很長時間的檢測所以很慢,這個吞吐量就是實際上的帶寬。

信息量、帶寬和傳輸時間之間的關係

理想情況:
T=SBWT=\frac{S}{BW}
傳輸時間=信息量/帶寬

實際上:
T=SPT=\frac{S}{P}
傳輸時間=信息量/吞吐量

點到點

  • 信源機和信宿機之間的通信由一段一段的直接相連的機器間的通信組成機器間的直接相叫做點到點連接。
  • 舉例:計算機-計算機,交換機-交換機

這個就是說,比如說你要找你同桌,你直接叫了他一句,然後跟他開始聊天,這就是點到點連接。

端到端

  • 信源機和信宿機之間直接通信,好像擁有一條直接的線路
    –它是由一條一條點到點連接組成的

其實計算機網絡就是一個很好的例子,層與層之間的練習其實就是端到端,大家以爲是直接通信的,其實是一層層過去的。舉個例子,你現在要跟一個美國人聊天,但是你們都不會對方的語言,你通過一個很牛B的軟件,發送一條中文過去,然後軟件幫你弄到一個翻譯官那裏,給你翻譯後轉到美國人手裏,美國人拿到後發了個英語過來,然後翻譯官翻譯後發給你,在你們倆看來你們好像是直接在對話,但是實際上中間其實是要先到翻譯官的。

計算機網絡的分類

  • 按照傳輸介質:
    – 有線網絡
    – 無線網絡
  • 按照大小和規模:
    – PAN(Personal Area Networks)個域網——1米(電腦鼠標)
    – LAN(Local Area Networks)局域網——1公里(校園、單位、建築)
    – MAN(Metropolitan Area Networks)城域網——100/1000公里(國家、洲)
    – Internet互聯網——1萬公里(全球)

四、參考模型

網絡實在太複雜了,直接學太難,所以就把它分層,逐一擊破。

分層的好處

  • 各層工作獨立,層之間通過接口聯繫,降低協議工作的複雜程度
    – 每個人分配好自己的工作,大家只用關心自己負責的部分,就不會因爲推脫責任而掐架,而且大家乾的事情固定了也降低了複雜度。比如做菜,本來大家都要幹全程就很難學,現在把它分掉了,一個人只用洗,一個人只用切,一個人只用燒,協議只用規定好每個人幹啥,每個人要用別人的結果直接調用就行,降低了複雜度
  • 靈活性好,任何一層的改變不影響其他層
    – 洗菜的同學發現自己洗菜太累了,買了個洗菜機,用洗菜機來洗菜,但是他做出了洗菜方式的改變並不影響其他人幹活,因爲他怎麼洗菜後面的人不關心,只要他洗出來就好。這樣就能有很強的靈活性,你這一層想什麼辦法隨你定隨你改,能把東西弄出來就行。
  • 每層的實現技術可以不同,減少了實現的複雜度
    – 就跟剛纔說的一樣,每一步不管你咋樣,你咋花裏胡哨都行,不用去管別人咋搞,你只要能把東西弄出來就行,就不用擔心這麼多亂七八糟的,降低了複雜度。
  • 易於維護,每層可以單獨進行調試
    – 還是一個道理,大家都自己管自己的,所以大家都可以自己對自己實現的方法進行改進,不用管別人。
  • 有利於標準化

分層的原則

信宿機第n層收到的對象應與信源機第n層發出的對象完全一致。

典型模型

ISO OSI七層模型
  • OSI(Open System Inerconnection 開放系統互聯)是ISO(International Stantards Organization於1983年提出。

  • 結構
    – 應用層(供網的):主要爲各種各樣的網絡應用提供網絡服務(Email,FTP,微信)
    – 表示層(信息轉比特的):將信息表示爲一定形式和格式的數據流(因爲計算機不認識信息,但是認識比特,所以得轉成比特流)
    需要完成壓縮解壓縮、加密解密等
    – 會話層(建聯繫的):它負責通信主機間的會話建立、管理和拆除。協調、通信雙方。
    – 傳輸層(連接加控制傳輸的):參考模型上的核心層之一,負責通信主機間端到端連接。對於TCP來說,還負責提供可靠傳輸、差錯恢復、擁塞控制等額外的功能。
    – 網絡層(確定送快遞路線的,負責把東西送到):另一個核心層,它的功能可用地址(爲通信主機提供標識)和最優路徑(路由,尋徑,每一箇中間設備都爲到達的分組找到一根最優路徑並送出)來描述,它負責將每一個分組從源機一路送達目的機。
    – 數據鏈路層 (檢錯 打包 順便確定快遞送哪兒):提供介質訪問服務,通過物理地址識別通信主機,提供可靠的幀傳遞,並做差錯控制,流控等。
    – 物理層 (真正的快遞員):提供透明的比特流傳輸,只關心比特流傳輸,忽略比特流具體內容(就想快遞小哥只關心把貨物送到,但是不關心送的是啥)。

  • 特點
    – 每一層都完成特地的功能,都爲它的上一層提供服務,每一層都是用下層提供的服務
    每個人都可以讓自己的小弟提供服務,同時自己也要給自己的老闆服務。

TCP/IP(DoD)四層模型
  • 結構
    – 應用層
    – 傳輸層
    – Internet
    – 物理層
OSI模型和DOD模型比較
  • 相同點
    – 分層
    – 都有應用層(服務不同)
    – 都有可比較的傳輸層和網絡層
    – 使用分組交換而不是電路交換技術
  • 不同點
    – TCP/IP將表示層和會話層包含到了應用層
    – TCP/IP將OSI的數據鏈路層和物理層包括到了一層中
    – TCP/IP更簡潔,但OSI更易開發和排除故障
    – TCP/IP廣泛應用,而OSI僅在教科書中
OSI模型沒流行的原因
  • 糟糕的時機:TCP/IP已經流行
  • 糟糕的技術:參雜太多政策考量
  • 糟糕的實現:龐大而笨拙

五、參考模型相關的概念

一次發送涉及的主角

發送方
  • 封裝/打包:將信息打包,從最高層——應用層開始逐漸下行到最底層——物理層

  • 在每一層上,數據都被加上頭部信息,用於傳遞信息
    就是現在要發送一個快遞,每到一個地方就得給快遞加一個包裝,用來幫它確定要去的地方,標註它要去的地方,並說明一些關於包裹的事項,還得查查有沒有送錯

  • 具體來說
    – OSI上三層,信息被表示爲一定格式和形式的數據流(DataStream),先根據需求打造商品。
    – 數據流被傳到傳輸層,將其切割爲適合傳輸的數據段(Segment),並加上段頭,段頭中包含定位應用進程的端口號等信息,就是說明要送給哪個進程,也就是給商品放進包裹,並說明要送到小區的一個房間的哪個人
    – 數據段傳到下一層網絡層,添加分組頭部形成分組(Packet),分組頭部中包含尋址主機的IP地址和其他一些傳輸需要用到的信息,就是確定送給哪個局域網,也就是送給哪個小區
    – 分組再傳到數據鏈路層,添加幀頭部形成幀,幀頭中包含尋址主機所需的物理地址、校驗等信息,就是確定送給哪個設備,可以理解成送給小區的哪個房間
    – 幀到了物理層,被轉成可供傳輸的比特流,也就是快遞被準備好,要送出去了

接收方
  • 解封裝/解包:將收到的比特流解包,從最低層——物理層開始逐漸上行到最高層——應用層提出去信息。
  • 解封裝的過程是封裝的逆向過程,在每層去掉頭部信息,最終還原出應用層的輸出:信息
  • 在網絡層,從下層收到分組,去掉分組頭,提取出數據段,送給上層傳輸層

在這裏插入圖片描述

中間的信號通道

在這裏插入圖片描述

數據在各層的形式

  • 數據單元(PDU:Protocol Data Unit)
    – 信息(Information,應用層)
    – 數據流(Data stream,上三層)
    – 數據段(Segment,傳輸層)
    – 分組(Packet,網絡層)
    – 幀(Frame,數據鏈路層)
    – 比特流(Bits,物理層)

實體

  • 每層中活動的元素
  • 每一層都有一個實體,可能是硬件也可能是軟件,它負責實現本層的功能,就是這一層幹活的傢伙就叫實體
  • ==對等實體(Peer Entity):==收發雙方對應層上的實體互稱,還是前面跟美國人用牛Bapp聊天的例子,先發到翻譯,翻譯先幫忙翻了再給對方,但是你並沒有注意到,你以爲你是直接跟那個美國人聊天,你們就是對等實體

虛擬通信

  • 只看發方和收方的對應層,發現收發雙方的對應層之間(即對等實體之間)有一根直接的通道(虛通道),沿着這根通道,PDU從發放到達收方

服務、協議和接口之間的關係

  • 參考模型上的每一層都爲它的上層提供服務,以接口的形式供上層調
  • 協議作用於對應層之間
  • 層與層之間有接口,用於服務的調用
    在這裏插入圖片描述

總結

  • 任何一次通信,總是以發放的封裝開始,接收方的解封裝結束。
  • 封裝由上而下,信息從數據流起,數據段、分組、幀,到比特流。
  • 數據從發方穿過中間的網絡雲流向雙方,是一個“U”型流。
  • 發方和收方對應層之間有一個“直接”的通道
  • PDU從發方流向接收方

六、結語

  到這裏,概述的部分就告一段落,在這裏我們介紹了互聯網的歷史,計網的基本概念,以及用到的基本模型,大概瞭解了計算機網絡是咋運作的,接下來我還會繼續逐層的講解每層的情況,歡迎大家繼續閱讀~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章