【理論研究】漫談傳統IT基礎設施06-網絡(下)

本文歡迎轉載,轉載請註明出處和作者。

繼續討論一下OSI七層模型,如果上篇的解釋還是意猶未盡,那麼我們繼續嘗試以使用QQ軟件聊天的類比說明,來說明OSI七層模型。

兩主機通信的過程,從發送者(以下簡稱A)到接收者(以下簡稱B),屬於從7層(應用層)->1層(物理層)封裝,然後傳輸到遠端,再從1層(物理層)->7層(應用層)解封裝的過程。

1、 當A打開了QQ這個軟件,相當就到達應用層了;因爲軟件會根據你的操作調動機器底層的硬件工作了。

2、 當A往QQ這個軟件的聊天窗口裏面輸入信息,發出後,QQ會將這個信息保存在本地聊天記錄文件MSGEX.db(一般就保存在QQ目錄下以你的QQ號碼爲文件夾裏)。以某種格式編碼/保存某種信息,這可以理解爲表示層了。

3、 當A打開與B的聊天窗口,輸入信息,按下“輸入”按鈕,用戶的操作就完結了,剩下都是機器自己的操作了。實際傳輸之前QQ會先建立A與B的會話連接,才真正開始傳輸信息/數據(你可以理解借傳輸文件理解:你發送文件給對方,要等待對方按下接收,纔算建立了會話,然後纔開始傳輸。)這算會話層了。

4、 會話建立後,會將A發的信息斬件,如A發送“你吃了飯沒有”?傳輸層將這句話斬成“你”“吃”“了”“飯”“沒”“有”6個數據段,標記號使用的端口號,然後準備發出去。

5、 接上一層,信息還未發出去,這時候在網絡層做路由選路,可以理解爲,從A家出去,可以分別經“聯通”“電信”“移動”3個網絡中的一個再到B家。

網絡層根據路由協議負責選路(根據鏈路質量、帶寬、開銷等方法論)。假設最後選了2條,可能就A->聯通->B發送“你”“吃”“了”3個數據段,A->電信->B發送“飯”“沒”“有”3個數據段。

選路後,這一層要標記IP包頭,包頭主要內容是源IP地址,目的IP地址,使用什麼協議。其中源、目的IP相當於你寄信的時候的收發的地址與郵政編碼,標記出發送者與接收者。而協議相當於這封信到底用什麼語言書寫。(只有保證2端使用同種語言,才能確保通信起來,否則你用英文寫信給大媽,大媽怎麼看得懂呢?)

6、 然後再到數據鏈路層,數據鏈路層主要是負責同一個子網內的通信的。例如A、B連接在同一臺二層交換機,就屬於同一個子網,那麼數據幀的通信室是不需要通過網絡層的(即三層交換機或者路由器),直接在這臺二層交換機就過去了。這一層打的是MAC地址的幀頭,對於上述通信過程來說,就是爲數據幀打上A的機器的MAC與A的網關的MAC。這一層的工作就完成了。

7、 最後一層了,經過上述斬件、打完各層標籤後的6個數據幀,物理層將他們翻譯文6段0、1表示的比特流,然後通過光纖、銅纜進行傳輸。

8、 當比特流傳輸到了遠端,接着B的機器按照上述的1~7的步驟反方向運行一次即可(即有物理層到應用層)。就是一層層讀取標籤,傳輸給標籤標記着的相應對象,然後摘除標籤,再讀取上一層標籤,直到最後B的應用程序能夠讀到A往應用程序輸入的數據爲止。

2個主機之間的通信,對於2臺主機來說,肯定是都需要跨越7層的,而平常說的只需要去到2層或者3層,其實是對於中間系統而言的,就是說中間的交換機、路由器而言;
【理論研究】漫談傳統IT基礎設施06-網絡(下)
例如圖1的假設兩端的通信實體在一個局域網內,其實傳輸的數據包去到交換機時,交換機拆開二層幀頭,再查自身的MAC地址表,發現表裏面有對應的MAC地址,然後對應的端口是哪個,接着就把幀發送到該端口轉發出去,它的任務就完成了。根本不需要到達網絡層的意思是,根本都不需要拆開3層的IP包頭來讀取裏面的信息。

通過轉發,最後到達B主機,然後從1層拆到7層,B用戶的主機最終就讀取到信息了。
【理論研究】漫談傳統IT基礎設施06-網絡(下)
對於圖2,由於A、B兩通信實體跨域廣域網,所以光靠MAC地址表,肯定是查不到的,這時候路由器會把IP包頭也拆開,讀取目的IP地址,再查路由表,就知道往哪個端口發出去了。然後層層轉發,就可以達到目的地了,接下來就和圖1的一樣了。

關於網絡的理論還有很多很多,VLAN、STP、VRRP、動態路由(OSPF、EIGRP、BGP)、×××、GRE TUNNEL等,俗話說拋開劑量論毒性就是耍流氓,如果光說不練,來講述上面的這些理論,根本無法很好地理解與消化。因此後面,網絡部分我們以packet tracer模擬器來作爲入口,試着每個概念既講述理論,又嘗試動手實驗,穿插着講,務求學以致用。

更多精彩內容,可以關注我的微信公衆號Waiting的運維日常
【理論研究】漫談傳統IT基礎設施06-網絡(下)

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