爲什麼便於讀者更好的理解,現將計算機網絡進行的簡單的整體介紹,之後再分層細講。
從本篇博文起,我儘可能將技術性與可讀性並重,並將知識聯繫起來,讓知識印在腦海裏。
博文部分插圖來自於網絡,做分享之用,侵權則刪。
一、計算機網絡模型
(一)OSI網絡七層模型
我們要傳輸的數據需要經過計算機網絡模型中的N多個協議的封裝,才能夠進行不同主機或設備之間的交流(筆記本與筆記本之間,筆記本與耳機之間,藍牙耳機與手機之間等等,諸如此類)。換句話說,計算機網絡模型實際上是爲網絡互聯的一個整體解決方案。
計算機網絡模型有好多種,其中最負盛名的是OSI網絡七層模型,OSI模型中每層負責的事情大致就是上圖中描述的那樣。看不懂沒關係,之後我們繼續講每一層的具體功效。
上圖描述了在兩臺主機之間,數據傳遞所需要經歷的過程。
假設現在是PC-A向PC-B傳輸數據:
PC-A:數據→應用層→表示層→會話層→傳輸層→網絡層→數據鏈路層→物理層
PC-B:物理層→數據鏈路層→網絡層→傳輸層→會話層→表示層→表示層→數據
(二)TCP/IP五層協議
OSI的七層模型更多的是概念上的東西,實際上更多應用的則是TCP/IP五層模型。TCP/IP五層模型將應用層、表示層、會話層合三爲一,變成應用層,其他層不變。
本系列均以TCP/IP五層模型敘述,希望讀者不要有理解上的誤區。
二、數據傳輸過程簡單描述
一日,有兩人打架,只有兩根頭髮,中分發型的男子受了委屈:
到了晚上,兩人在QQ上商討約架事宜:
翌日,兩人因約架在派出所,被警察蜀黍發現並拘留。
溫馨提示:和諧社會,請勿打架。如要約架,來派出所。
話說到這裏了,雙方如何將約架信息相互傳輸的呢?
圖一:發送方
圖二:發送過程中
圖三:接收方
圖四:全過程
圖一到圖四,從微觀的角度,描述的通信過程,這裏並未涉及到網絡層的尋址與子網概念。
宏觀部分(過程見標題3):
圖五:計算機網絡傳輸視圖
1. ARP協議
在傳輸過程中,有一個很重要的鏈路層協議,叫做ARP協議。簡單來講,有了ARP協議,那麼一臺主機有着同一自治系統(AS)內其他所有主機或網絡設備的IP與MAC信息。
也就是說:在AS1中,主機 A有[B、C、D、網關路由器]的IP和MAC信息,這些信息存放在主機A的ARP緩存中。
當然,如果你的計算機網絡基礎比較差,那麼也不要着急,以後還會細講。
2. 路由選擇
圖六:路由選擇示意圖
假若兩臺主機(AS1的主機A→AS4的主機B)傳輸消息,我們可以在圖5中看到:在傳輸過程中,AS1到AS4需要經過很多路由器形成一條通AS4網關路由器的路。那麼在實際過程中,我們只需要一條最優的路就好了,在源地址與目的地地址尋路的過程稱爲路由選擇,這也是路由器名稱的由來吧,我猜。
那麼路由器通過什麼進行尋址呢?IP地址。
我們要傳輸的數據在經過封裝成IP數據報的時候,會有源IP地址與目的IP地址:
圖七:Ipv4首部格式
也就是說,每當我們的數據變成比特流傳送到路由路線中的某個路由器上時,會對比特流進行解包處理,查看裏面的IP信息,具體以後如何解包,我們以後文章再講。
3. 傳輸過程簡介
路線:AS1.A→AS1.交換機→AS1.網關路由器→紅色路線→AS4.網關路由器→AS4.交換機→AS4.B
第一步:AS1.A將數據封裝成IP數據報,然後查詢本地ARP緩存,查看目的主機IP的信息是否存在(存在的話,通過IP地址會查到目的主機的MAC地址,然後直接將數據發送過去)。由於本地ARP緩存只存的同一自治系統的其他所有主機信息,很顯然,AS1.A主機查詢爲空。然後將該IP數據報封裝成以太網幀,並將AS1.網關路由器的MAC地址放到該以太網幀的目的MAC一欄,然後將此以太網幀轉換成比特流並進行傳輸。
第二步:AS1.交換機收到比特流後,將比特流轉換成以太網幀,讀取裏面的信息後,將以太網幀轉換成比特流併發送給AS1.網關路由器
第三步:AS.1.網關路由器收到比特流後,將比特流轉換成以太網幀,讀取裏面的目的MAC信息,確認是發給自己的以太網幀(如不是,則丟棄),然後進行解包處理,將以太網幀解包爲IP數據報。得到IP數據報後,查詢本地ARP緩存,查看目的主機IP的信息是否存在,AS1網關路由器查詢爲空。然後將該IP數據報封裝成以太網幀,並將紅色路線上的第一個路由器的MAC地址放到該以太網幀的目的MAC一欄,然後將此以太網幀轉換成比特流並進行傳輸。
第四步:紅色路線上的第一個路由器收到比特流後,將比特流轉換成以太網幀,讀取裏面的目的MAC信息,確認是發給自己的以太網幀,然後進行解包處理,將以太網幀解包爲IP數據報。得到IP數據報後,查詢本地ARP緩存,查看目的主機IP的信息是否存在,紅色路線上的第一個路由器查詢爲空。然後將該IP數據報封裝成以太網幀,並將紅色路線上的第二個路由器的MAC地址放到該以太網幀的目的MAC一欄,然後將此以太網幀轉換成比特流並進行傳輸,此過程持續到將數據比特流傳送到AS4.網關路由器。
第五步:AS4.網關路由器收到比特流後,將比特流轉換成以太網幀,讀取裏面的目的MAC信息,確認是發給自己的以太網幀,然後進行解包處理,將以太網幀解包爲IP數據報。得到IP數據報後,查詢本地ARP緩存,查看目的主機IP的信息是否存在,AS4.網關路由器查詢成功。然後將該IP數據報封裝成以太網幀,並將AS4.B的MAC地址放到該以太網幀的目的MAC一欄,然後將此以太網幀轉換成比特流並進行傳輸。
第六步:AS4.交換機收到比特流後,將比特流轉換成以太網幀,讀取裏面的信息後,將以太網幀轉換成比特流併發送給AS1.B。
第七步:AS4.B收到比特流後,轉換成以太網幀,讀取裏面的信息。然後再進行解包過程,完成傳輸過程。
路由器處理數據過程:
圖八:路由器轉發過程
三、結束語
不曉得基礎差的讀者能不能讀懂,讀不懂沒關係,有機會的話,還會細講每個層具體的工作原理。
自考路上的朋友,加油!