前言
正在學習計算機網絡這門課程,順便做個筆記,記錄一下知識點。
參考資料:
中科大鄭烇老師全套《計算機網絡(自頂向下方法 第7版,James F.Kurose,Keith W.Ross)》課程:https://www.bilibili.com/video/BV1JV411t7ow?p=1
《計算機網絡(自頂向下方法 第7版,James F.Kurose,Keith W.Ross)》
第一章:計算機網絡概述
為了更好的了解
Internet(網際網路
)這個概念,先從簡單的
網絡
概念說起:通俗的了解網絡,就是由許多節點和邊組成的系統。當我們把這些節點和邊具象化之後,計算機網絡以及Internet的概念就更容易了解了。
計算機網絡
通俗的解釋計算機網絡的概念:聯網的計算機所構成的系統。
其“節點”分為兩類:分别為主機節點以及資料交換節點。
-
主機節點: 主機及其上運作的應用程式(是資料的源或目标)。
舉例:ipad、手機、智能冰箱…
- 資料交換節點: 路由器、交換機等網絡交換裝置(既不是資料的源也不是目标,而是資料的中轉節點)。
其“邊”(通信鍊路)同樣分為兩類:分别為接入網鍊路以及主幹鍊路。其作用是将各個節點連接配接在一起。
- 接入網鍊路:主機連接配接到網際網路的鍊路。
- 主幹鍊路:路由器之間的鍊路。
僅僅依靠所謂的“節點”和“邊”是無法進行網際網路間的通信的,還有一個要素就是協定。
- 協定(protocol):定義了在兩個或多個通信實體之間交換的封包的格式和順序,以及封包發送和/或接收一條封包或其他事件所采取的動作。
Internet 中所有的通信行為都受協定制約。

至此我們可以大緻了解計算機網絡的概念。
Internet(網際網路)
以TCP/IP協定為主的一簇協定,由該協定支撐起的計算機網絡。
我們可以從兩方面了解到底何為Internet:一個方面是從Internet的具體構成角度(即上文所提),另一方面是從服務的角度來了解。
從具體構成的角度
-
數以億計的、互聯的計算裝置,具體包括:
主機(host)= 端系統(end system)
在作業系統中駐留的網絡應用程式
-
通信鍊路
舉例:光纖、同軸電纜、無線電、衛星
傳輸速率 = 帶寬(bps)
注意區分:
存儲常用位元組Byte:K/M/G層級為2^10進制
傳輸常用比特Bit:K/M/G層級為10^3進制
-
分組交換裝置:轉發分組(packets)。
舉例:路由器、交換機…
-
協定:控制發送、接收消息。
舉例:TCP、IP、HTTP、FTP、PPP…
-
Internet标準:
RFC(Request for comments):請求評述
IETF(Internet Engineering Task Force):網際網路工程任務組
-
Internet即“網絡的網絡”
了解:
- 很多網絡通過網絡互聯裝置連接配接在一起
- 網絡之下還包括很多小網絡
- 小網絡之間也可以任意互聯
從服務的角度
分布式的應用程序以及為分布式應用程序提供通訊服務的基礎設施。
基礎設施:包括主機以及應用層以下的所有協定實體。
-
使用通信設施進行通信的分布式應用
舉例:Web、VoIP、email、分布式遊戲、電子商務、社交網絡…
-
通信基礎設施為apps提供程式設計接口(通信服務):将發送和接收資料的apps與網際網路連接配接起來。
通信服務分為兩種:
- 面向連接配接的服務:以TCP/IP協定向應用程序提供服務的形式。
- 無連接配接的服務:以UDP協定向應用程序提供服務的形式。
網絡結構
如上圖,網絡結構主要由三個部分組成:網絡邊緣(Edge)、網絡核心(Core)、接入網(Acess)\實體媒體
- 網絡邊緣:包括應用程序(程式)以及為其提供硬體基礎服務的主機。邊緣上運作的網絡應用是網絡存在理由。
- 網絡核心:包括網絡交換節點(路由)以及節點間的通信鍊路。邊緣主機隻有通過接入網連接配接到網絡核心才可以實作互相間的資訊傳遞。
- 接入網:有線或無線的通信鍊路。其作用是将邊緣的主機系統接入到網絡核心中去。
網絡邊緣
網絡邊緣就是端系統(主機),包括網絡應用(如:Web、Email)和支援網絡應用的硬體裝置。應用程序可以說是整個網絡系統存在的理由,其中不同邊緣的應用程序通過網絡進行資料交換。
應用程序間的通訊模式有兩種:
- C/S模式(用戶端/伺服器):有着明确的用戶端以及伺服器。其特點也是該模式比較緻命的問題:擴充性差。一個伺服器的請求載荷是有限的,随着用戶端的請求載荷增加,伺服器的壓力會越來越大,處理能力就會逐漸下降。一旦請求載荷超過某一個門檻值時,伺服器的處理能力就會出現斷崖式下跌。目前的解決方式就是增加伺服器的部署。
- P2P模式(peer-peer):沒有明确的用戶端或者伺服器的界限。每一個分布式的應用程序既可以是用戶端,又可以是伺服器。這樣的模式可以很好地解決C/S模式中擴充性差的問題,因為随着請求服務的節點增加,從某種意義上來說提供服務的節點也在相應地增加。(執行個體:迅雷、BitTorrenth)
基礎設施為網絡應用提供的服務有兩種方式:
- 了解基礎設施的概念:在網絡應用(應用程序)下層的所有内容,包括主機、接入網、網絡核心等,都統一了解為基礎設施。
- 兩種服務方式的目的都是在端系統之間傳輸資料。
-
面向連接配接的通信方式:
代表:TCP服務(Transmission Control Protocol,傳輸控制協定)
有握手:目的是兩個通信主機間為連接配接建立狀态,有一個資料傳輸前的準備的過程。
特性:
- 可靠地、按順序地傳送資料:不同端系統間的通信歸根到底都是資料通過底層的實體信道進行傳輸,如何保證實體資訊在傳輸時準确,TCP服務給予保證。
- 流量控制:在資訊傳輸時存在這樣一種情況,即伺服器的能力很強,可以高速地發送大量資料,但是資訊接收方(用戶端)接收、處理資訊的能力很弱,二者的速度不比對,資訊傳輸就容易造成錯誤。TCP協定實體可以發送回報,進而協調好發送方和接收方的速度,緻使發送方不會淹沒接收方。
- 擁塞控制:資訊傳輸時還有一種情況:資訊發送和接收雙方的能力都很強,但是網絡核心中的傳輸信道發生擁塞,如果此時發送方仍然不斷地向外大量發送資料,很可能造成資料的丢失。TCP協定就可以根據情況判斷,當網絡擁塞時,控制發送方降低資訊發送速率。
-
無連接配接服務:
代表:UDP服務(User Datagram Protocol,使用者資料報協定)
無握手:直接傳輸資料,沒有傳輸前的準備過程。
特性:
- 資料傳輸不可靠
- 無流量控制
- 無擁塞控制
UDP服務不能保證資訊傳輸的準确性,但是它的存在也具有價值。一些實時流媒體應用對于資料傳輸的延遲是無法接受的,UDP服務正是省去了資訊傳輸的很多步驟進而保證了資訊傳輸的速度。
使用UDP的應用:流媒體、遠端會議、DNS、Internet電話
網絡核心
網絡核心由資料交換節點和其間的通信鍊路組成。
網絡核心的主要功能是:
- 路由:決定分組采用的源主機到目标主機的路徑(全局)
- 轉發:将分組從路由器的輸傳入連結路轉移到輸對外連結路(局部)
通信網絡大緻可以按照如下方式分類:
電路交換網絡
端到端的資源被配置設定給從源端到目标端的呼叫(建立起一條專有鍊路)。
如圖:每段鍊路有4條鍊路。從左上到右下角主機間建立了呼叫。該呼叫采用了上面鍊路的第2個線路,右邊鍊路的第1個線路。
電路交換網絡的特點是資源獨享,即便主機間建立連接配接後無資料傳輸,也會占用線路資源,進而使其他使用者無法使用,導緻資源浪費。但是這種連接配接方式保證了性能,多用于傳統電話網絡,而不适用計算機間的連接配接。
計算機之間的通信不像電話,它具有很強的突發性,兩台主機建立連接配接後并不是時時刻刻都在進行資料傳輸。(如浏覽網頁,使用者發起請求之後的很長一部分時間都在進行頁面浏覽,此時并沒有資料傳輸)
為了提高電路交換網絡的使用效率,網絡資源(如帶寬)被分成“片段”,同時被多位使用者使用。像這樣分成片段的方式主要有:
- 頻分(Frequency-division multiplexing)
- 時分(Time-division multiplexing)
- 波分(Wave-division multiplexing))
頻分(FDM):将帶寬分成幾個片段,不同的使用者使用不同的片段。
時分(TDM):将帶寬按周期分為成許多片段,每一個周期再分為幾個不同的時隙(slot),每位使用者固定使用其中的一個時隙。
波分(WDM):多用于光電路傳輸,把光信号分成不同波段,分給不同使用者使用。
分組交換網絡
将要傳輸的資料分成一個個的機關:分組/包(packet)
與電路交換網絡不同,采用分組交換網路通信時,資料傳輸會占用通信鍊路的全部帶寬。
主機間的資料傳輸過程如圖:轉發節點接收前一個節點傳來的分組,并存儲起來,等分組的全部傳輸完成之後,再将資料傳輸給下一個節點。(存儲-轉發)
需要注意的是:每一個節點都必須接收分組的全部之後才能向後傳遞。如果邊接收分組,邊向後傳輸,就會造成多段通信鍊路全部處于占用狀态,緻使其他使用者無法使用。分組也就失去了意義。
例子:如圖,長度為L = 7.5Mbits的分組,在一個速率為R = 1.5Mbps的鍊路中傳輸,三次存儲-轉發的延時為3 × (7.5 / 1.5)s = 15s.
分組交換網絡的優勢就是:按需使用。即有需要時才占用網絡資源。
但是這較于電路交換網絡的延遲會高很多,延遲的具體組成分為兩部分:
- 節點對分組進行存儲
- 排隊時間
分組交換的排隊延遲和丢失:
當轉發節點的資料到達速率>鍊路的輸出速率時,分組将會進行排隊,如果路由器的緩存用盡,分組将會丢失。
為了保證資料可靠地傳輸,就需要協定來限制:擁塞控制
了解了分組交換網絡的資料傳輸原理,就可以引出統計時分多路複用(statistical time division multiplexing,STDM):
這個概念很像時分多路複用(TDM),差別在于:由于每個分組的傳輸時間不同,是以對于帶寬無絕對的時間劃分方式(每個時隙是不同的)。
同樣的網絡資源,分組交換網絡較電路交換網絡允許更多的使用者使用。(具體的計算過程不贅述,但很有趣)
存儲-轉發
分組的存儲轉發一段一段從源端到目标端,按照有無網絡層的連接配接可分為兩種:
- 資料報(datagram)網絡
- 虛電路(virtual circuit)網絡
資料報網絡:
- 在通信之前無需建立連接配接,一有資料就傳輸。
- 每一個分組都獨立路由(路徑不一樣,可能會失序)。
- 源主機發送給目标主機的分組,攜帶了目标主機的完整位址,路由器根據分組的目标位址進行路由。
- 路由器不會維護主機間的通訊狀态。
虛電路網絡:
- 在通信之前,主機間需要先通過信令建立連接配接,分組傳輸路徑保持不變。
- 每個分組都帶标簽(虛電路辨別VCID),标簽決定了下一個跳轉。
- 路由器會維持每個呼叫的狀态資訊。
接入網和實體媒體
将端系統和邊緣路由器連接配接的方式可以分為三類:住宅接入網絡;機關接入網絡(學校、公司);無線接入網絡。
注意接入網絡的帶寬分為:共享;專用。(比如:有一個接入住宅大樓的網絡是專用的,分發到每個住戶的網絡是共享這一接入網的。)
接入網
住宅接入:
-
數據機(moden):将上網資料調制加載音頻信号上,在電話線上傳輸,在局端将其中的資料解調出來,接入網絡核心;反之亦然。
撥号數據機:56kbps的速率直接接入路由器(通常更低)。不能同時上網和打電話。
- DSL(digital subscriber line):采用現存的到交換局DSLAM的電話線。
- 依然采用調制解調的方式
- 帶寬其中
的部分用于傳播語音,其他的部分分為上行和下行資料傳輸(通常下行速度更大,稱為ADSL(非對稱))0k~4k
- DSL線路上的資料被傳到網際網路
- DSL線路上的語音被傳到電話網
- 小于2.5Mbps上行傳輸速率(typically < 1 Mbps)
- 小于24Mbps下行傳輸速率(typically < 10 Mbps)
- 線纜網絡:有線電視信号線纜雙向改造。(利用電視線傳輸)
- 帶寬其中一部分用于傳播電視信号,其他的部分分為上行和下行資料傳輸。
- FDM:在不同頻段傳輸不同信道的資料,數字電視和上網資料(上、下行)。
- HFC(hybrid fiber coax,混合光纖同軸網):光纖傳輸系統與同軸電纜配置設定網相結合。(非對稱:最高30Mbps下行傳輸速率,2Mbps上行傳輸速率)
- 線纜和光纖網絡:将各個家庭使用者接入到ISP路由器。
- 各使用者共享到線纜頭端的接入網絡。(注意與DSL不同,DSL中每個使用者都有一個專用的線路到CO(central office))
- 電纜模式
- 家庭網絡:
企業接入網絡:
- 經常被企業或者大學等機構采用(10Mbps、100Mbps、1Gbps、10Gbps傳輸率。現在,端系統經常直接接到以太網絡交換機上)
無線接入網絡:
-
各無線端系統共享無線接入網絡(端系統到無線路由器)
無線LANs(建築物内部)
廣域無線接入
實體媒體
幾個概念:
- bit:在
間傳播發送-接受對
- 實體鍊路:連接配接每個發送-接受對之間的實體媒體
- 導引型媒體(看得見、摸得着):信号沿着固體媒介被引導。(eg:同軸電纜、光纖、雙絞線)
- 非導引型媒體(看不見):開放的空間傳輸電磁波或者光 信号,在電磁或者光信号中承 載數字資料。
雙絞線、同軸電纜、光纖(導引型媒體):
- 雙絞線(TP):由兩根絕緣銅導線擰合(5類雙絞線:100Mbps以太網;6類雙絞線:10Gbps萬兆以太網)
- 同軸電纜:由兩根同軸的銅導線構成。
- 雙向
- (窄)基帶電纜:電纜上一個單個信道(Ethernet)
- 寬帶電纜:電纜上有多個信道(HFC)
- 光纖和光纜:
- 光脈沖:每個脈沖表示一個bit,在玻璃纖維中傳輸
- 高速:點到點的高速傳輸(如:10Gbps~100Gbps的傳輸速率)
- 低誤碼率:在兩個中繼器之間可以有很長的距離,不受電磁噪聲的幹擾。
- 安全:光在内導體中進行全反射。
無線鍊路(非導引型媒體):
開放空間傳輸電磁波,攜帶要傳輸的資料。(無需實體“線纜”)雙向傳播。
傳播環境效應:反射、吸收、幹擾。
類型:
- 地面微波
- LAN(eg:WiFi)
- wide-area(eg:蜂窩)
- 衛星
Internet結構和ISP
ISP:Internet Service Provider
任何一個端系統都是通過接入ISP接入網絡,是以就會有很多ISP。由于網絡使用者數量非常之多,是以也會有許多ISP,ISP必須是互聯的,隻有這樣端系統之間才可以通信。那麼ISP之間是如何互聯的?
有一種辦法是将他們兩兩互聯,但是這會存在一個問題:ISP數量非常之多,在數量達到一定的情況下,再增添一個ISP所耗費的成本會非常巨大,整個體系的性能也會下降。是以這個方法并不可行,我們稱其為:不可擴充。
當意識到這點之後,人們就會想到利用一個
global ISP
作為“橋梁”,來将各個接入ISP連接配接起來。
一個global ISP可以完成“橋梁”的工作,很明顯這種做法一定是有利可圖的,是以為了不讓其出現壟斷的局面(壟斷總是不好的),是以這時一定會有其他的ISP來參與競争(如圖:部分接入網連接配接ISP A,部分連入ISP B…)。
有競争必然也有合作,營運商們可以互相商量,給彼此提供一個接口,這樣所有的用戶端就都可以互相通信。
ISP之間連接配接方式有兩種:
- 直接連接配接(peering link)
- 通過IXP(Internet exchange point,網絡交換點)來連接配接
接下來該種通信業務就會細分,出現所謂的區域性網絡,他們可以更加友善地為某一地區提供通信服務,同時将與之接入的邊緣ISP接入到全局的ISP。
然後
内容提供商網絡
(Internet Content Providers,ICP,例:Google,Microsoft),可能會建構他們自己的網絡,将它們的服務、内容更 加靠近端使用者,向使用者提供更好的服務,減少自己的營運支出。
至此,整個網絡體系就構成了當今的局面,即網絡的網絡。
Internet結構
是一個具有層次的結構:
- 第一層ISP(中心):國家/國際覆寫,速率極高。(如UUNet, BBN/Genuity, Sprint, AT&T)
- 直接與其他第一層ISP相連
- 與大量的第二層ISP和其他客戶網絡相連
- 通過Peer或IXP連接配接
- 第二層ISP:更小些的 (通常是區域性的) ISP。
- 與一個或多個第一層ISPs連接配接,也可能與其他第二層ISP相連。
- 通過Peer或IXP連接配接
- 第三層ISP與其他本地ISP: 接入網 (與端系統最近)
ISP之間的連接配接:
- POP: 高層ISP面向客戶網絡的接入點,涉及費用結算(如一個低層ISP接入多個高層ISP,多宿(multi home))
- 對等接入:2個ISP對等互接,不涉及費用結算
- IXP:多個對等ISP互聯互通之處,通常不涉及費用結算(對等接入)
- ICP自己部署專用網絡,同時和各級ISP連接配接
分組延時、丢失和吞吐量
分組丢失和延時發生的原因:分組在傳輸過程中,會在路由器的緩沖區形成分組隊列,分組等待排到隊頭,就會被傳輸至下一節點。這一排隊過程就會産生排隊延時(還有其他的延時,後面會詳細提到)。如果緩沖區容納不下被傳輸來的分組(隊列容量不夠),就會發生分組丢失的現象。
分組延時
- 節點處理延時(nodal processing delay):節點在收到分組時,為處理分組所花費的時間。
- 檢查bit級差錯
- 檢查分組首部和決定将分組導向何處
- 微秒級
- 排隊延時(queuing delay):分組在節點中排隊等待被發送所花費的時間。
- 時間長短依賴于路由的擁塞程度(是不确定的)
- 毫秒-微妙級
- 傳輸延時(transmission delay):資料從節點進入到傳輸媒體所耗費的時間。
- R = 鍊路帶寬(bps)
- L = 分組長度(bits)
- 将分組發送到鍊路上的時間:T = L/R
- 傳播延時(propagation delay):資料(電磁波)在實體信道上傳輸一定距離所耗費的時間。
- d = 實體鍊路的長度
- s = 資料信号在媒體上傳播的速度(約為2×108 m/sec)
- 傳播延時:T = d/s
下面以車隊的例子來類比:
延時小結:
排隊延時取決于流量強度:
- R = 鍊路帶寬 (bps)
- L = 分組長度 (bits)
- a = 分組到達隊列的平均 速率
流量強度 = La/R
- La/R ~ 0: 平均排隊延時很小
- La/R -> 1: 延時變得很大
- La/R > 1: 比特到達隊列的速率超過了從該隊 列輸出的速率,平均排隊延時将趨向無窮大!
- 注意:設計系統時流量強度不能大于1,會導緻分組丢失!
Traceroute
診斷程式: 提供從源端,經過路 由器,到目的的延時測量。
- 沿着目的的路徑,向每個路由器發送3個探測分組
- 路由器 i 将向發送方傳回一個分組
-
發送方對發送和回複之間間隔計時
Traceroute具體實作原理:
利用了ICMP(Internet Control Message Protocol,網際網路控制封包協定)。這種協定下的封包資料IP頭部有一個字段:TTL(Time to Live,生存時間)字段。這個字段在最初傳輸時會被指派,每經過一個路由器時,TTL減1。當TTL在某一個路由器降為零時,該分組會被抛掉,并會向源主機發送一個ICMP封包——通知源主機:分組發送到該路由時被“幹掉”了(并附帶IP位址),是以實作每一跳的查詢方式就是設定不同的TTL。當分組到達目标主機時,肯定會占用一個端口,但是在目标主機中該端口并沒有程序在跑,于是目标主機就會向源主機發送另一種ICMP封包——通知源主機:分組在我這邊由于目标端口不可達,“挂掉了”(并附帶IP位址)。這就是具體的工作原理。
例子:
上圖在第7步和第8步延時出現了陡增的情況,很有可能是跨洋鍊路(該段鍊路特别長)
吞吐量(Throughput)
在源端和目标端之間傳輸的速率(數 據量/機關時間)
- 瞬間吞吐量: 在一個時間點的速率
-
平均吞吐量: 在一個長時間内平均值
瓶頸鍊路:端到端路徑上,限制端到端吞吐的鍊路。(短闆效應)
主機A到主機B之間的通信鍊路一定是公用的,我們假設有10個使用者在用同一段鍊路(該鍊路帶寬最小),那麼A到B的連接配接就會占用這最小鍊路帶寬的十分之一。這十分之一帶寬就是A到B的瓶頸帶寬,是它限制了A到B的吞吐量。
協定層次及服務模型
網絡是一個複雜的系統。一般對于實作複雜的組織與功能的思路就是分子產品,把不同的小功能分子產品實作,然後總體實作一個複雜龐大的功能。計算機網絡功能的實作同樣利用這個思路,利用階層化方式實作複雜的網絡功能。
階層化的具體思路:
- 将網絡複雜的功能分層功能明确的層次,每一層實作了其中一個或一 組功能,功能中有其上層可以使用的功能:服務
- 本層協定實體互相互動執行本層的協定動作,目的是實作本層功能, 通過接口為上層提供更好的服務
- 在實作本層協定的時候,直接利用了下層所提供的服務
- 本層的服務:借助下層服務實作的本層協定實體之間互動帶來的新功能(上層可以利用的)+ 更下層所提供的服務
服務(Service):低層實體向上層實體提供它們之間的 通信的能力,是通過原語(primitive)來操作的,是垂直關系。
協定(protocol) :對等層實體(peer entity)之間在互相通信的過程中,需要遵循的規則的集合,是水準關系。
協定和服務的關系:協定需要下層提供的服務才能實作,協定實作的目的是為了向上層提供更好的服務。本層的服務使用者隻能看見服務而無法看見下面的協定,下面的協定對上面的服務使用者是透明的(看不見的)。
一些術語介紹:
- 實體(entity):表示任何可發送或接收資訊的硬體或軟體程序。
- 服務(Service):低層實體向上層實體提供它們之間的通信的能力。
- 服務通路點 SAP (Services Access Point) :上層使用下層提供的服務通過層間的接口。
-
原語(primitive):上層使用下層服務的形式,高層使用低層提供的服務,以及低層向高層提供服務都是通過服務通路原語來進行互動的。
一個服務提供者(service provider)可能會向上層使用者((service user )提供不同的服務,提供服務的具體接口就是層間的服務通路點(SAP),服務的具體形式就是原語。
服務的類型:
- 面向連接配接的服務(Connection-oriented Service):
- 連接配接(Connection):兩個通信實體為進行通信而建立的一 種結合。
- 面向連接配接的服務通信的過程:建立連接配接,通信,拆除連接配接。
- 适用範圍:對于大的資料塊要傳輸; 不适合小的零星封包。
- 特點:保序(也不盡然)。
- 無連接配接的服務(Connectionless Service):兩個對等層實體在通信前不需要建 立一個連接配接,不預留資源;不需要通信雙方都是 活躍。
- 特點:不可靠、可能重複、可能失序。
- 适用範圍:适合傳送零星資料。
分層處理和實作複雜系統的好處:
- 概念化:結構清晰,便于标示網絡元件,以及描述其互相關系。(分層參考模型)
-
結構化:子產品化更易于維護和系統更新。(改變某一層服務的實作不影響系統中的其他層次)
分層也具有有害的地方:分層實作一個功能時,需要不同層次時時交換資訊資料,那麼整體的效率就會降低。(每一層都要做差錯檢測)
層具有的功能:
- 差錯控制(error control):使得兩個對等體(不同端系統中相同的層次)之間的邏輯通信更加可靠。
- 流量控制(flow control):防止發送方淹沒接收方。
- 分段與重組(segmentation and reassembly):在發送端将大資料塊分割成小資料塊,在接收端将小資料塊重新組合成原來的大資料塊。
- 多路複用(multiplexing):允許多個上層會話共享一個下層連接配接。
- 連接配接建立(connection setup):握手。
Internet協定棧
從上至下層次劃分為:
-
應用層(application):完成應用封包之間的互動。(實作各種網絡應用)
資料單元:封包(message)
eg:FTP、SMTP、HTTP
-
傳輸層(transport):實作程序到程序之間的資料傳輸。
資料單元:封包段(segment)
eg:TCP、UDP
-
網絡層(network):實作端到端(源主機-目标主機)的以分組為機關的資料傳輸。
資料單元:分組(packet);如果是無連接配接的方式:資料報(datagram)
eg:IP、routing protocols(路由協定)
-
鍊路層(link):在相鄰網絡節點間以幀為機關傳輸資料。
資料單元:幀(frame)
eg:PPP(點對對協定)、802.11(wifi)、Ethernet
-
實體層(physical):線上路上傳送bit。(把數字資料轉換成實體信号,使其承載于媒體之上)
資料單元:位(bit)
Internet實際上隻定義了上三層協定(應用層、傳輸層、網絡層),下面的鍊路層和實體層被統一為網絡接口層。
協定棧不同層中的協定并未實作全覆寫,有些應用可以直接跨層,由更低層的協定實作。
OSI參考模型
從上至下層次劃分為:
- 應用層(application)
-
表示層(presentation):允許應用解釋傳輸的資料。(關心交換資料的格式)
表示層的目的是表示出使用者看得懂的資料格式,實作與資料表示有關的功能。主要完成資料字元集的轉換、資料格式化和文本壓縮、資料加密、解密等工作。
- 會話層(session):資料交換的同步,檢查點,恢複。
- 傳輸層(transport)
- 網絡層(network)
- 鍊路層(data link)
-
實體層(physical)
表示層與會話層的功能在TCP/IP協定棧中由應用層完成。
OSI參考模型包括了體系結構、服務定義和協定規範三級抽象。
封裝與解封裝
源主機向目标主機傳送封包的真正流程——不斷地封裝與解封:
上層封包的傳輸需要借助層間接口,依托于下層的服務,在不同層加入相應的控制資訊,形成本層的資料單元,繼續向下傳遞,直到實體層将每一個bit傳送給通信鍊路(這是封裝的過程)。通過鍊路交換機,底部實體層會還原資料形成鍊路層的資料單元(幀),鍊路層查詢幀頭部的目标MAC位址,并查詢該交換機的棧表(或交換表),并決定将幀從哪一個端口放出,接着就交給該端口的網卡,轉換成對應實體層的bit,将其釋放到通信鍊路中。通過路由器,先向上傳遞形成幀,再将幀轉換為網絡層的資料單元(分組),網絡層從分組擷取目标的IP資訊,并查詢網絡層的轉發表,決定将資料從哪一個網口釋放出去,再形成對應的幀向下傳遞,進而轉為bit由實體層将其傳輸到通信鍊路。就這樣資料不斷傳輸,最後到達目标主機,并不斷解封裝形成應用層的封包。
曆史
早期(1960以前)計算機網絡
- 線路交換網絡
- 線路交換的特性使得其不适合計算機之間的通信
- 線路建立時間過長
- 獨享方式占用通信資源,不适合突發性很強的計算機之間的通信
- 可靠性不高:非常不适合軍事通信
- 三個小組獨立地開展分組交換的研究
- 1961: Kleinrock(MIT),排隊論,展現了分組交換的有效性
- 1964: Baran(美國蘭德公司) – 軍用網絡上的分組交換
- 1964:Donald(英國)等,NPL
1961-1972: 早期的分組交換概念
- 1967: 美國進階研究計劃研究局考慮ARPAnet
- 1969: 第一個 ARPAnet 節點開始工作,UCLA
- 1969年底: 4個節點
- 1972:
- ARPAnet 公衆示範
- 網絡控制協定是第一個端系統直接的主機-主機協定(NCP協定:相當于傳輸層和網絡層在一起,支援應用開發)
- 第一個e-mail程式(BBN)
- ARPAnet有15個節點
1972-1980: 專用網絡和網絡互聯
- 出現了很多對以後來說重要的網絡形式, 雨後春筍
- 1970: ALOHAnet,夏威夷上的微波網絡
- 1973: Metcalfe在博士論文中提出了Ethernet
- ATM網絡
- ALOHAnet,Telenet,Cyclades法國等
- 1970後期,網絡體系結構的必要性
- 專用的體系結構: DECnet, SNA, XNA
- 标準化的體系結構
-
1974: 網際互聯的Cerf and Kahn 體系結構
Cerf and Kahn 網絡互聯原則:
- 極簡、自治
- 盡力而為(best effort)服務模型
- 無狀态的路由器
- 分布控制
- 1979: ARPAnet的規模在持續增加,體系結構也在醞釀着變化,以支援網絡互聯和其他目的(性能)需求。(有200個節點)
1980-1990: 體系結構變化, 網絡數量激增,應用豐富
- 1983: TCP/IP部署,标記日
- NCP分化成2個層次,TCP/IP, 進而出現UDP
- 覆寫式IP解決網絡互聯問題
- 主機裝置和網絡交換裝置分開
- 1982: smtp e-mail協定定義
- 1983: DNS 定義,完成域名到IP位址的轉換
- 1985: ftp 協定定義
- 1988: TCP擁塞控制
- 其他網絡形式的發展
- 新的國家級網絡: Csnet, BITnet, NSFnet, Minitel
- 1985年:ISO/OSI提出, 時機不對且太繁瑣,
- 100,000主機連接配接到網絡聯邦
1990, 2000’s: 商業化, Web, 新的應用
- 1990年代初: NSF對ARPAnet 的通路網,雙主幹,ARPAnet退役
- 1991: NSF放寬了對NSFnet用于商業目的的限制 (1995退役),ASFNET非盈利性機構維護,後面叫Internet
- UNIX 中TCP/IP的免費捆綁
- 1990年代初: Web
- hypertext [Bush 1945, Nelson 1960’s]
- HTML, HTTP: Berners-Lee
- 1994: Mosaic (Netscape, andreesen)
- 1990年代後期: Web的商業化
- 1990後期 – 21世紀:
- TCP/IP體系結構的包容性,在其上部署應用便捷,出現非常多的應用
- 新一代殺手級應用(即時訊息 ,P2P 檔案共享,社交網絡等 )更進一步促進網際網路的發展
- 安全問題不斷出現和修訂(網際網路的更新檔對策)
- 2001網絡泡沫,使得一些好公司沉澱下來(谷歌,微軟,蘋果,Yahoo,思科)
- 主幹網的速率達到Gbps
2005-現在
- ~50+億主機:包括智能手機和平闆
- 寬帶接入的快速部署
- 高速無線接入無處不在:移動互聯時代
- 4G部署,5G蓄勢待發
- 帶寬大,終端性能高,價格便宜,應用不斷增多
- 線上社交網絡等新型應用的出現:
- Facebook: 10億使用者
- 微信,qq:數十億使用者
- 内容提供商 (Google, Microsoft)建立他們自己的網絡。通過自己的專用網絡提供對搜尋、視訊内容和電子郵件的即刻通路
- 電子商務,大學,企業在雲中運作他們的服務 (eg, Amazon EC2)
- 體系結構醞釀着大的變化,未來網絡蠢蠢欲動
後記
本篇已完結
(如有補充或錯誤,歡迎評論區留言)