網絡中數據傳輸過程的分析

咱們天天都在使用互聯網,咱們電腦上的數據是怎麼樣經過互聯網傳輸到到另外的一臺電腦上的呢?把本身的理解寫一下,可能有不少細節尚未能的很清楚!但願在之後可使之更加的完善!有不對的地方還請指正.
     咱們知道如今的互聯網中使用的TCP/IP協議是基於,OSI(開放系統互聯)的七層參考模型的,(雖然不是徹底符合)從上到下分別爲 應用層 表示層 會話層 傳輸層 網絡層 數據鏈路層和物理層。其中數據鏈路層又但是分爲兩個子層分別爲邏輯鏈路控制層(Logic Link Control,LLC )和介質訪問控制層((Media Access Control,MAC )也就是日常說的MAC層。LLC對兩個節點中的鏈路進行初始化,防止鏈接中斷,保持可靠的通訊。MAC層用來檢驗包含在每一個楨中的地址信息。在下面會分 析到。還要明白一點路由器是在網路層的,而網卡在數據鏈路層。
   咱們知道,ARP(Address Resolution Protocol,地址轉換協議)被看成底層協議,用於IP地址到物理地址的轉換。在以太網中,全部對IP的訪問最終都轉化爲對網卡MAC地址的訪問。如 果主機A的ARP列表中,到主機B的IP地址與MAC地址對應不正確,由A發往B數據包就會發向錯誤的MAC地址,固然沒法順利到達B,結 果是A與B根本不能進行通訊。
   首先咱們分析一下在同一個網段的狀況。假設有兩臺電腦分別命名爲A和B,A須要相B發送數據的話,A主機首先把目標設備B的IP地址與本身的子網掩碼進行 「與」操做,以判斷目標設備與本身是否位於同一網段內。若是目標設備在同一網段內,而且A沒有得到與目標設備B的IP地址相對應的MAC地址信息,則源設 備(A)以第二層廣播的形式(目標MAC地址爲全1)發送ARP請求報文,在ARP請求報文中包含了源設備(A)與目標設備(B)的IP地址。同一網段中 的全部其餘設備均可以收到並分析這個ARP請求報文,若是某設備發現報文中的目標IP地址與本身的IP地址相同,則它向源設備發回ARP響應報文,經過該 報文使源設備得到目標設備的MAC地址信息。爲了減小廣播量,網絡設備經過ARP表在緩存中保存IP與MAC地址的映射信息。在一次 ARP的請求與響應過程當中,通訊雙方都把對方的MAC地址與IP地址的對應關係保存在各自的ARP表中,以在後續的通訊中使用。ARP表使用老化機制,刪 除在一段時間內沒有使用過的IP與MAC地址的映射關係。一個最基本的網絡拓撲結構:
數據庫


   若是中間要通過交換機的話,根據交換機的原理,它是直接將數據發送到相應端口,那麼就必須保有一個數據庫,包含全部端口所連網卡的MAC地址。它經過分析 Ethernet包的包頭信息(其中包含不原MAC地址,目標MAC地址,信息的長度等信息),取得目標B的MAC地址後,查找交換機中存儲的地址對照 表,(MAC地址對應的端口),確認具備此MAC地址的網卡鏈接在哪一個端口上,而後將數據包發送到這個對應的端口,也就相應的發送到目標主機B上。這樣一 來,即便某臺主機盜用了這個IP地址,但因爲他沒有這個MAC地址,所以也不會收到數據包。
   如今咱們討論兩臺不在同一個網段中的主機,假設網絡中要從主機PC-A發送數據包PAC到PC-C主機中,以下圖所示:
            路由器A ===================路由器B
                 |           INTERNET                             |        
                |                                                       |
             交換機A                                            交換機B
             |    |                                                    |    |
             |    |                                                    |    |
         PC-A    PC-B                                      PC-C   PC-D

    PC-A並不須要獲取遠程主機(PC-C)的MAC地址,而是把IP分組發向缺省網關,由網關IP分組的完成轉發過程。若是源主機(PC-A)沒有缺省網 關MAC地址的緩存記錄,則它會經過ARP協議獲取網關的MAC地址,所以在A的ARP表中只觀察到網關的MAC地址記錄,而觀察不到遠程主機的 MAC地址。在以太網(Ethernet)中,一個網絡設備要和另外一個網絡設備進行直接通訊,除了知道目標設備的網絡層邏輯地址(如IP地址)外,還要知 道目標設備的第二層物理地址(MAC地址)。ARP協議的基本功能就是經過目標設備的IP地址,查詢目標設備的MAC地址,以保證通訊的順利進行。
    數據包在網絡中的發送是一個及其複雜的過程,上圖只是一種很簡單的狀況,中間沒有過多的中間節點,其實現實中只會比這個更復雜,可是大體的原理是一致的。
(1)PC- A要發送數據包到PC-C的話,若是PC-A沒有PC-C的IP地址,則PC-A首先要發出一個dns的請求,路由器A或者dns解析服務器會給PC-A 迴應PC-C的ip地址,這樣PC-A關於數據包第三層的IP地址信息就全了:源IP地址:PC-A,目的ip地址:PC-C。
(2)接下來 PC-A要知道如何到達PC-C,而後,PC-A會發送一個arp的地址解析請求,發送這個地址解析請求,不是爲了得到目標主機PC-C的MAC地址,而 是把請求發送到了路由器A中,而後路由器A中的MAC地址會發送給源主機PC-A,這樣PC-A的數據包的第二層信息也全了,源MAC地址:PC-A的 MAC地址,目的MAC地址:路由器A的MAC地址,
(3)而後數據會到達交換機A,交換機A看到數據包的第二層目的MAC地址,是去往路由器A的,就把數據包發送到路由器A,路由器A收到數據包,首先查看數據包的第三層ip目的地址,若是在本身的路由表中有去往PC-C的路由,說明這是一個可路由的數據包。
(4) 而後路由器進行IP重組和分組的過程。首先更換此數據包的第二層包頭信息,路由器PC-A到達PC—C要通過一個廣域網,在這裏會封裝不少廣域網相關的協 議。其做用也是爲了找下一階段的信息。同時對第二層和第三層的數據包重校驗。把數據通過Internet發送出去。最後通過不少的節點發送到目標主機 PC_C中。
   如今咱們想一個問題,PC-A和PC-C的MAC地址若是是相同的話,會不會影響正常的通信呢!答案是不會影響的,由於這兩個主機所處的局域網被廣域網分 隔開了,經過對發包過程的分析能夠看出來,不會有任何的問題。而若是在同一個局域網中的話,那麼就會產生通信的混亂。當數據發送到交換機是,這是的端口信 息會有兩個相同的MAC地址,而這時數據會發送到兩個主機上,這樣信息就會混亂。所以這也是保證MAC地址惟一性的一個理由。
   知識補充:
(1)網關的含義:是說這樣一種設備:若是主機要發包,就往這個設備發送。也就是說此設備要有路由功能或有去往外部網路的路徑。
在實際網絡裏,網關通常由路由器或server充當。
(2)ARP(Address Resolution Protocol)是地址解析協議,ARP是一種將IP地址轉化成物理地址的協議。從IP地址到物理地址的映射有兩種方式:表格方式和非表格方式。ARP 具體說來就是將網絡層(IP層,也就是至關於OSI的第三層)地址解析爲數據鏈接層(MAC層,也就是至關於OSI的第二層)的MAC地址。ARP協議是 經過IP地址來得到MAC地址的。
(3)網絡中須要惟一的MAC地址的理由:(a)IP地址的分配是根據網絡的拓樸結構,而不是根據誰製造了網絡 設置。若將高效的路由選擇方案創建在設備製造商的基礎上而不是網絡所處的拓樸位置基礎上,這種方案是不可行的。(b)當存在一個附加層的地址尋址時,設備 更易於移動和維修。例如,若是一個以太網卡壞了,能夠被更換,而無須取得一個新的IP地址。若是一個IP主機從一個網絡移到另外一個網絡,能夠給它一個新的 IP地址,而無須換一個新的網卡。(c)不管是局域網,仍是廣域網中的計算機之間的通訊,最終都表現爲將數據包從某種形式的鏈路上的初始節點出發,從一個 節點傳遞到另外一個節點,最終傳送到目的節點。數據包在這些節點之間的移動都是由ARP,負責將IP地址映射到MAC地址上來完成的。
(4)標識網 絡中的一臺計算機,通常至少有三種方法,最經常使用的是域名地址、IP地址和MAC地址,分別對應應用層、網絡層、物理層。網絡管理通常就是在網絡層針對IP 地址進行管理,但因爲一臺計算機的IP地址能夠由用戶自行設定,管理起來相對困難,MAC地址通常不可更改,因此把IP地址同MAC地址組合到一塊兒管理就 成爲常見的管理方式。
交換機和路由器的主要區別:
(1)、兩者的工做層次不一樣
最 初的的交換機是工做在OSI/RM開放體系結構的數據鏈路層,也就是第二層,而路由器一開始就設計工做在OSI模型的網絡層。因爲交換機工做在 OSI的第二層(數據鏈路層),因此它的工做原理比較簡單,而路由器工做在OSI的第三層(網絡層),能夠獲得更多的協議信息,路由器能夠作出更加智能的 轉發決策。
(2)、兩者的據轉發所依據的對象不一樣
交換機是利用物理地址或者說MAC地址來肯定轉發數據的目的地址。而路由器則是利用不一樣 網絡的ID號(即IP地址)來肯定數據轉發的地址。IP地址是在軟件中實現的,描述的是設備所在的網絡,有時這些第三層的地址也稱爲協議地址或者網絡地 址。MAC地址一般是硬件自帶的,由網卡生產商來分配的,並且已經 固化到了網卡中去,通常來講是不可更改的。而IP地址則一般由網絡管理員或系統自動分配。
(3)、傳統的交換機只能分割衝突域,不能分割廣播域;而路由器能夠分割廣播域
由 交換機鏈接的網段仍屬於同一個廣播域,廣播數據包會在交換機鏈接的全部網段上傳播,在某些狀況下會致使通訊擁擠和安全漏洞。鏈接到路由器上的網段會被分配 成不一樣的廣播域,廣播數據不會穿過路由器。雖然第三層以上交換機具備VLAN功能,也能夠分割廣播域,可是各子廣播域之間是不能通訊交流的,它們之間的交 流仍然須要路由器。
(4)路由器提供了防火牆的服務,而交換機則沒有
路由器僅僅轉發特定地址的數據包,不傳送不支持路由協議的數據包傳送和未知目標網絡數據包的傳送,從而能夠防止廣播風暴。
MAC地址的安全問題:
    咱們爲了防止IP地址被盜用,就經過簡單的交換機端口綁定(端口的MAC表使用靜態表項),能夠在每一個交換機端口只鏈接一臺主機的狀況下防止修改MAC地 址的盜用,若是是三層設備還能夠提供:交換機端口/IP/MAC 三者的綁定,防止修改MAC的IP盜用。通常綁定MAC地址都是在交換機和路由器上配置的。
緩存

相關文章
相關標籤/搜索