天天看點

web學習記錄9接口層網絡層傳輸層應用層最後

網絡協定基礎

  • 接口層
    • 實體層
    • 資料鍊路層
  • 網絡層
    • IP
    • 分片
    • 路由
  • 傳輸層
    • TCP
      • 建立和切斷連結
      • 分段與重組
      • 确認與重傳
    • UDP
  • 應用層
    • HTTP與HTTPS
  • 最後

首先介紹 OSI模型:

開放式系統互聯通信參考模型,簡稱為OSI模型(OSI model),一種概念模型,由國際标準化組織提出,一個試圖使各種計算機在世界範圍内互連為網絡的标準架構。

人與人的交流靠的是語言,在互相連接配接的計算機之間,它們的交流也是需要共同遵守一個大家都能聽懂的“語言”,這個語言就是大家加共同遵循的交流規則,即協定。

制定規則,計算機之間遵循這一規則進行處理。

那為什麼網絡的模型會分層?建立一個網絡,是一個非常艱巨的事。想想最先的計算機網絡,計算機的接口不同,不同的區域網路中,大家互相交流的方式也不同,不同區域網路之間的連接配接是一件複雜且麻煩的事。為了可以建立一個給所有計算機連接配接的網絡,就必須有一個标準,這個就是協定。但是我們的需求是不斷變化的,不可能每一個協定都要從規定以太網接口的樣子開始到程式調用協定的引用結束,隻是來實作不同的功能需求。可以一下子就想到了,我們隻需要制定規則實作應用功能就可以了,根本不需要管網絡電纜的粗細和接口的形狀。這就對了,我們對網際網路的需求不是不變的,相對于總是摧毀房子再建,我們更喜歡隻修改添加我們需要的部分。

而這就是網際網路分層的意義。

(1)層間的标準接口友善了工程子產品化。

(2)建立了一個更好的互連環境。

(3)降低了複雜度,使程式更容易修改,産品開發的速度更快。

OSI将計算機網絡體系結構劃分為以下七層:

1、實體層: 将資料轉換為可通過實體媒體傳送的電子信号 相當于郵局中的搬運勞工。

2、資料鍊路層: 決定通路網絡媒體的方式。

在此層将資料分幀,并處理流控制。本層指定拓撲結構并提供硬體尋址,相當于郵局中的裝拆箱勞工。

3、網絡層: 使用權資料路由經過大型網絡 相當于郵局中的排序勞工。

4、傳輸層: 提供終端到終端的可靠連接配接 相當于公司中跑郵局的送信職員。

5、會話層: 允許使用者使用簡單易記的名稱建立連接配接 相當于公司中收寄信、寫信封與拆信封的秘書。

6、表示層: 協商資料交換格式 相當公司中簡報老闆、替老闆寫信的助理。

7、應用層: 使用者的應用程式和網絡之間的接口。

web學習記錄9接口層網絡層傳輸層應用層最後

相對來說,OSI模型是理想中的結構。然而,TCP/IP和OSI不能準确地比對。參考OSI模型,出現了TCP/IP四層模型。我在接下來要介紹的就是四層模型。

它将OSI模型中的會話層、表示層、應用層合并為應用層;實體層和資料鍊路層合并為網絡接口層。

即接口層、網絡層、傳輸層、應用層。

先簡單介紹一下資料在傳出計算機的過程:

其中一個重要的概念就是封裝。

首先我們需要知道,計算機的資料都是由1和0組成的。就拿網絡四層體系來說,我們需要傳輸的資料是在應用程式中産生的,在應用層中稱之為上層資料。資料在網際網路中必須要通過一個媒體進行傳輸,也就是資料最後應該是在最底層經過接口層,或通過光纜,或通過無線電,傳輸出去。既然目的地是接口層,應用層把資料交給傳輸層,傳輸層協定子產品會給資料加上一個傳輸層頭,可以了解為傳輸的備注資訊。就像你寫一封信在新的封面寫上XX收。資料經傳輸層加工後交給網絡層,同樣的給資料(傳輸層頭+上層資料)加上一個資料頭,再次封裝。之後交給接口層,添加上MAC頭,通過媒體發送出去。同樣的接收資料就是一個拆解封裝的過程。

可以發現資料傳輸,是一個不斷的封裝與解封的過程。

web學習記錄9接口層網絡層傳輸層應用層最後

接下就簡單介紹不同網絡層的特點和功能以及經過這些網絡層資料是怎麼變化的。

接口層

接口層對應OSI模型的資料鍊路層和實體層。

實體層

實體層通過把上層的比特流(0、1的二進制流)轉換為電壓的高低、燈光的閃滅等實體信号,将資料傳輸出去。而接收端收到這些實體的信号以後再将這些實體信号恢複為比特流。是以,實體層的規範中包括比特流轉換規則、纜線結構和品質以及接口形狀等。

實體層要關注的四大特性:

1、機械特性:網絡裝置與傳輸媒體之間連接配接器的外觀和尺寸、接口引線數目、引線排列方式、固定和鎖定裝置

2、功能特性:規定接口上各種信号線以及各種電平出現的先後順序,即那根信号線先動作,那根信号線後動作

3、電氣特性:接口引線上信号電平表示,什麼電平代表1,什麼電平代表0

4、規程特性:規定接口某一條引線上出現某一電平表示的含義

典型的資料編碼:

web學習記錄9接口層網絡層傳輸層應用層最後

資料鍊路層

資料鍊路層的主要功能是完成幀發送和幀接收,包括負責對使用者資料進行幀的組裝與分解,随時監測實體層的資訊監測标志,了解信道的忙閑情況,實作資料鍊路的收發管理。

資料鍊路層實作的是互聯計算機之間互相通信,負責某一區間之間的通信傳輸,是以資料鍊路層的通信為逐跳傳遞。

web學習記錄9接口層網絡層傳輸層應用層最後

相對網絡層的IP位址,資料鍊路層也有MAC位址用于定位主機。

web學習記錄9接口層網絡層傳輸層應用層最後

資料鍊路層将資料劃分為一個個資料幀進行傳輸。

web學習記錄9接口層網絡層傳輸層應用層最後

實際中大多數以太網的幀體格式是前者。而後者是IEEE的标準。

根據媒體是否共享,可以分出非共享媒體型網絡和共享媒體型網絡

1、非共享媒體型網絡(對媒體采取專用):網絡中每個站直連交換機,由交換機負責轉發資料幀。

2、共享媒體型網絡:多個裝置共享一個通信媒體的網絡。

共享媒體型網絡中有兩種媒體通路控制方式:争用方式和令牌傳遞方式。

(1)争用方式(CSMA/CD):争奪擷取資料傳輸的權力。産生沖突現象會導緻網絡擁堵與性能下降。

空閑發送,沖突停發,随機延時等待

(2)令牌傳遞方式:沿着令牌環發送一種叫做“令牌”的特殊封包,是控制傳輸的一種方式。隻有獲得令牌的站才能發送資料。不會用沖突且每個站都有通過平等循環獲得令牌的機會,是以,即使網絡擁堵也不會導緻性能下降。

web學習記錄9接口層網絡層傳輸層應用層最後

網絡層

網絡層的主要作用是“實作終端節點之間的通信”。這種終端節點之間的通信也叫“點對點(end-to-end)通信。

IP

IP協定主要作用就是在複雜的網絡環境中将資料包發送給最終的目标位址。

IP位址唯一辨別一台網絡裝置,由32個二進制位組成

IP位址采用點分十進制格式顯示

IP位址分為兩部分:網絡位址和主機位址

IP位址分成五類:

A類:1.0.0.0~126.155.255.255

B類:128.0.0.0~191.255.255.255

C類:192.0.0.0~223.255.255.255

D類:224.0.0.0~239.255.255.255

E類:240.0.0.0~255.255.255.255

私網IP分類:

A類:10.0.0.0~10.255.255.255

B類:172.16.0.0~172.31.255.255

C類:192.168.0.0~192.168.255.255

私有IP是一段保留的IP位址,隻能在區域網路中使用,無法在Internet上使用。

網絡掩碼:

使用掩碼區分網絡部分和主機部分,它使用與IP位址一樣的格式。

将網絡掩碼和IP位址進行與操作就可以得到網絡位址。

web學習記錄9接口層網絡層傳輸層應用層最後

分片

以太網和FDDI對資料幀的長度都有一個限制,其最大值分别是1500位元組和4352位元組。鍊路層的這個特性稱為MTU,即最大傳輸單元。

然而,IP上一層可能會要求傳送比MTU更大的資料,是以IP包需要進行分片處理,将較大的IP包分成多個較小的IP包。分片的IP包到達目标位址後會被再組合起來傳給上一層。抽象了資料鍊路層,使得從上層更不容易看到底層網絡構造的細節。

路由

路由控制是指将分組資料發送到最終目标位址的功能。通過路由控制确定到達目标位址的通路。

路由器中時刻維持着一張路由表,所有封包的發送和轉發都通過查找路由表從相應端口發送。

路由表可以是靜态配置的,也可以是動态路由協定産生的。

路由表包含目标位址、網絡掩碼、輸出接口、下一站。

網絡層路由:

web學習記錄9接口層網絡層傳輸層應用層最後

傳輸層

傳輸層為應用程式提供服務,定義了端到端的連通性。

大家想象一下,通過網絡層和接口層協定,資料已經可以到達目标計算機了。但實際上我們要求的是資料交給某一特定的程式進行處理,到達計算機并沒有實作我們需要的功能。這就引出了一個概念,就是端到端通信。

在網絡中,我們的計算機都有65535個端口,每個端口都對應着一個應用程式。比方,通過IP和MAC位址,你的包裹已經送到了你住宿樓門口,但是這一棟樓裡的住戶(應用程式)很多,你根本不知道這個包裹是誰的,而傳輸層端到端的通信就解決了這個問題——通過端口這個“視窗”包裹被送到了正确的住戶手上。

類似IP的分類,端口也有一套分類。

IANA(Internet Assigned Numbers Authority,網際網路位址指派機構)将端口号劃分為3個範圍:熟知的、注冊的和動态的(或私有的)。

熟知端口:0~1023,由IANA指派和控制

注冊端口:1024~49151,IANA不指派也不控制。 它們隻能在IANA注冊以防止重複。

動态端口:49152~65535,既不用指派也不注冊。它們可以由任何程序來使用,是臨時的端口。

web學習記錄9接口層網絡層傳輸層應用層最後

一個例子,我浏覽器向一個伺服器發送一個HTTP連接配接請求,目标端口80,但是發出的端口是随機的動态端口;浏覽器再請求一個新的伺服器,從随機端口送出請求。這樣就有兩個互相不影響的頁面。請求的都是HTTP服務,但實際上接收資料包的端口不一樣,形成了會話,彼此的資料傳輸不受其它應用的幹擾。

TCP

TCP為應用程式提供一種面向連接配接的、可靠的服務。

TCP的可靠性:

1、面向連接配接的傳輸

2、最大封包段長度

3、傳輸确認機制

4、首部和資料的校驗和

5、流量控制

TCP封包結構:

web學習記錄9接口層網絡層傳輸層應用層最後

建立和切斷連結

三握手,四揮手

web學習記錄9接口層網絡層傳輸層應用層最後

分段與重組

最大封包段長度(MSS)是TCP協定的一個選項,用于在TCP連接配接建立時,收發雙方協商通信時每一個封包段所能承載的最大資料長度(不包括文段頭)。

MSS=MTU-(TCP Header)-(IP Header)

即MSS的大小不包括TCP頭和IP頭

web學習記錄9接口層網絡層傳輸層應用層最後

MSS在建立連接配接時由雙方協商确定。

确認與重傳

web學習記錄9接口層網絡層傳輸層應用層最後

其中的重發時間與主機的網絡環境有關,TCP會監視傳輸時延,由自适應算法動态調整。

因為要給每個資料包進行确認應答,是以當包的往返時間變長,網絡的吞吐量會變差,是以可以一次發送多個資料包和給多個資料包進行确認應答。

TCP流量控制:

web學習記錄9接口層網絡層傳輸層應用層最後

UDP

UDP為應用程式提供面向無連接配接的服務。傳輸資料之前源端和目的端不需要建立連接配接。

不需要維護連接配接狀态,收發狀态等,是以伺服器可同時向多個用戶端傳輸相同的消息。

UDP适用于對傳輸效率要求高的運用。

UDP封包結構:

web學習記錄9接口層網絡層傳輸層應用層最後

相對TCP,UDP連接配接速度更快。

應用層

在應用層有很多協定,可以提供不同的服務。它們定義了應用程式程序如何互相傳遞封包,以及了解分析資料實作不同的功能。

應用層中的應用軟體服務模式:

1)客戶/伺服器(client/server)

用戶端請求伺服器,伺服器響應用戶端。

web學習記錄9接口層網絡層傳輸層應用層最後

2)P2P

也稱為對等體系結構。P2P相當于每個人的電腦都可以充當伺服器和用戶端,不單單限制隻能用戶端通路伺服器。

你自己的計算機可以通路别人計算機上的内容,别人同樣可以通路你計算機上的内容,達到一種共享的狀态。

HTTP與HTTPS

HTTP特點:

1、無狀态:協定對用戶端沒有狀态存儲,對事物處理沒有“記憶”能力。

2、無連接配接:HTTP/1.1之前,由于無狀态特點,每次請求需要通過TCP三次揮手四次握手,和伺服器重建立立連接配接。

3、基于請求和響應:基本的特性,由用戶端發起請求,服務端響應。

4、簡單快速、靈活

5、通信使用明文、請求和響應不會對通信方進行确認、無法保護資料的完整性

HTTPS特點:

基于HTTP協定,通過SSL或TLS提供加密處理資料、驗證對方身份以及資料完整性保護

1、内容加密:采用混合加密技術,中間人無法之間檢視明文内容

2、驗證身份:通過證書認證用戶端通路的是自己的伺服器

3、保護資料完整性:防止傳輸的内容被中間人冒充或篡改

HTTP請求過程:

web學習記錄9接口層網絡層傳輸層應用層最後

HTTP有很多請求方式:

web學習記錄9接口層網絡層傳輸層應用層最後

下圖是HTTP請求和響應封包的格式:

web學習記錄9接口層網絡層傳輸層應用層最後

在應用層還有很多的協定,比如

web學習記錄9接口層網絡層傳輸層應用層最後
web學習記錄9接口層網絡層傳輸層應用層最後

電子郵件還可以使用POP3協定,以及我們使用的QQ采用OICQ協定,等等

最後

我們平時使用的網絡時相當複雜的,我們一眼能看到的隻是它的冰山一角,要想深入學習網際網路掌握一些基本的協定時相當重要的,我上面寫的隻是這些協定最最淺顯的東西。根據TCP/IP協定棧的四層模型的講解,估計大家已經對網絡的構成有了基本的認識,不過要想更深入的學習,還是需要研讀書籍,多思考!