網絡基礎-TCP/IP協議之分層體系結構

計算機網絡學習的核心內容就是網絡協議的學習。網絡協議是為計算機網絡中進行數據交換而建立的規則、標準或者說是約定的集合。因為不同用戶的數據終端可能採取的字符集是不同的,兩者需要進行通信,必須要在一定的標準上進行。一個很形象地比喻就是我們的語言,我們大天朝地廣人多,地方性語言也非常豐富,而且方言之間差距巨大。A地區的方言可能B地區的人根本無法接受,所以我們要為全國人名進行溝通建立一個語言標準,這就是我們的普通話的作用。同樣,放眼全球,我們與外國友人溝通的標準語言是英語,所以我們才要苦逼的學習英語。計算機網絡協議同我們的語言一樣,多種多樣。而ARPA公司與1977年到1979年推出了一種名為ARPANET的網絡協議受到了廣泛的熱捧,其中最主要的原因就是它推出了人盡皆知的TCP/IP標準網絡協議。目前TCP/IP協議已經成為Internet中的“通用語言”,下圖為不同計算機群之間利用TCP/IP進行通信的示意圖。

網絡基礎-TCP/IP協議之分層體系結構

TCP/IP協議

網絡層次劃分:不同的劃分方式

為了使不同計算機廠家生產的計算機能夠相互通信,以便在更大的範圍內建立計算機網絡,國際標準化組織(ISO)在1978年提出了“開放系統互聯參考模型”,即著名的OSI/RM模型(Open System Interconnection/Reference Model)。它將計算機網絡體系結構的通信協議劃分為七層,自下而上依次為:物理層(Physics Layer)、數據鏈路層(Data Link Layer)、網絡層(Network Layer)、傳輸層(Transport Layer)、會話層(Session Layer)、表示層(Presentation Layer)、應用層(Application Layer)。其中第四層完成數據傳送服務,上面三層面向用戶。

網絡基礎-TCP/IP協議之分層體系結構

除了標準的OSI七層模型以外,常見的網絡層次劃分還有TCP/IP四層協議以及TCP/IP五層協議,它們之間的對應關係如下圖所示。

網絡基礎-TCP/IP協議之分層體系結構

三種通訊協議架構

下圖是應用進程的數據在各層之間的傳遞過程中所經歷的變化,假定兩臺主機通過一臺路由器連接起來,雖然傳輸的過程是複雜的,但兩臺主機對應的層次在邏輯上是對等的

網絡基礎-TCP/IP協議之分層體系結構

標準的OSI分層模式

TCP/IP協議毫無疑問是互聯網的基礎協議,沒有它就根本不可能上網,任何和互聯網有關的操作都離不開TCP/IP協議。不管是OSI七層模型還是TCP/IP的四層、五層模型,每一層中都要自己的專屬協議,完成自己相應的工作以及與上下層級之間進行溝通。由於OSI七層模型為網絡的標準層次劃分,所以我們以OSI七層模型為例從下向上進行一一介紹。

網絡基礎-TCP/IP協議之分層體系結構

各層的協議

物理層:RJ45、CLOCK、IEEE802.3 (中繼器,集線器)

數據鏈路:PPP、FR、HDLC、VLAN、MAC (網橋,交換機)

網絡層:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、 (路由器)

傳輸層:TCP、UDP、SPX

會話層:NFS、SQL、NETBIOS、RPC

表示層:JPEG、MPEG、ASII

應用層:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS

各層的作用

物理層:通過媒介傳輸比特,確定機械及電氣規範(比特Bit)

數據鏈路層:將比特組裝成幀和點到點的傳遞(幀Frame)

網絡層:負責數據包從源到宿的傳遞和網際互連(包PackeT)

傳輸層:提供端到端的可靠報文傳遞和錯誤恢復(段Segment)

會話層:建立、管理和終止會話(會話協議數據單元SPDU)

表示層:對數據進行翻譯、加密和壓縮(表示協議數據單元PPDU)

應用層:允許訪問OSI環境的手段(應用協議數據單元APDU)

在瀏覽器中輸入 www.baidu.com 後執行的全部過程

現在假設如果我們在客戶端(客戶端)瀏覽器中輸入http://www.baidu.com,而baidu.com為要訪問的服務器(服務器),下面詳細分析客戶端為了訪問服務器而執行的一系列關於協議的操作:

1,在應用層,客戶端瀏覽器通過DNS解析到www.baidu.com的IP地址220.181.27.48,通過這個IP地址找到客戶端到服務器的路徑。客戶端瀏覽器發起一個HTTP會話到220.161.27.48,然後通過TCP進行封裝數據包,輸入到網絡層。

2,在運輸層,客戶端的傳輸層,把HTTP會話請求分成報文段,添加源和目的端口,如服務器使用80端口監聽客戶端的請求,客戶端由系統隨機選擇一個端口如5000,與服務器進行交換,服務器把相應的請求返回給客戶端的5000端口。然後使用IP層的IP地址查找目的端。

3,在網絡層,客戶端的網絡層不用關心應用層或者傳輸層的東西,主要做的是通過查找路由表確定如何到達服務器,期間可能經過多個路由器,這些都是由路由器來完成的工作,不作過多的描述,無非就是通過查找路由表決定通過那個路徑到達服務器。

4,在數據鏈路層客戶端的鏈路層,包通過鏈路層發送到路由器,通過鄰居協議查找給定IP地址的MAC地址,然後發送ARP請求查找目的地址,如果得到回應後就可以使用ARP的請求應答交換的IP數據包現在就可以傳輸了,然後發送IP數據包到達服務器的地址。

5,在物理層被封裝成比特流傳送


分享到:


相關文章: