區域網a中主機a產生的資料報是如何傳送至區域網b中的主機b的。下圖展示了資料報從主機a中應用程式生成到**到主機b的過程。
主機a的應用程式先生成應用層資料,應用層資料達到傳輸層後,傳輸層根據應用層協議型別,對應用層資料進行tcp或udp封裝,封裝好的報文送至網路層進行網路層封裝,網路層對資料進行封裝時,要新增ip頭,ip頭中的源ip位址填寫主機a的ip位址,目的ip填寫主機b所在區域網b對映的b的外網ip位址。ip層資料報之後傳輸到資料鏈路層進行資料鏈路層的封裝。一般來講,區域網採用乙太網的組網方式,因此資料鏈路層是根據mac位址對幀資料進行**的。主機a在資料傳送開始是不知道主機b的mac位址的,因此,①主機a會先傳送arp廣播資料報至網路,請求主機b的mac位址。②交換機a接收到arp廣播資料報後,先進行解封裝,學習主機a的ip位址和mac位址,接著對arp包進行重新封裝並繼續廣播至除接收埠外的所有埠。③路由器接收到該arp廣播資料報後,解封裝arp資料報,發現其中的目的ip位址為外網ip,此時,路由器a將arp響應包的源mac設定為自己的mac位址,目的mac設定為主機a的mac位址併發送到交換機a。④交換機a接收到該arp響應資料報後,發現目的mac為主機a,因此直接將該arp響應包**至主機a。到此,主機a知道了傳送資料到主機b需要封裝的目的mac位址。⑤主機a將資料報封裝好後傳送至交換機a。⑥交換機根據mac位址將資料都傳送至路由器a。⑦路由器a作為區域網a與外網的連線,它同時也要承擔網路位址轉換的工作,將接收的資料用對映好的外網ip作為源ip進行重新封裝,之後將資料**至外網。(根據nat位址轉換的規則,區域網位址轉換為外網位址有三種方式:靜態轉換、動態轉換、埠多路復用。)
外網資料如何被正確的**至主機b中的過程和上述過程是對稱的。
2015.11.16補充
這兩天室友問我資料在網路上是怎麼傳播的,本以為很清楚了,巴拉巴拉給室友講,結果在講的過程中發現很多細節的東西還是說不清楚。果然是「絕知此事要躬行」啊,沒有實際去跟蹤或解析過資料報,了解的也都只是皮毛。今天去樂視面試,又被問到了資料在網路上的**過程,還好慶幸當時室友問完趕緊去查了查。
ip位址在傳輸過程中不會發生改變,除非遇到nat
mac位址在傳輸過程中,在同乙個廣播域內不發生變化,跨廣播域時發生變化。也就是在經過路由器的時候mac位址會發生改變。
(這裡講的更清楚)
網路基礎一(區域網)
首先了解下 計算機 馮諾依曼式算機 包含電腦 手機 平板等一類產品。運算器 cpu 邏輯運算 gpu 顯示卡 儲存器 記憶體 整數運算 gpu 浮點型運算 儲存器 記憶體 斷電資料清空,讀寫速度很快 硬碟 輔存 資料持久化,讀寫速度,相對 較慢,成本低。控制器 主機板上的一些硬體。輸入裝置 鍵盤滑鼠...
Git學習一 「區域網篇」
前段時間,參考廖雪峰的官方 學習了git,這邊簡單記錄下 第一次用markdown編輯 開發一直延用的svn,誰知道哪天git就上崗了呢,學吧,技多不壓身!1.git是分布式的,svn不是 git使用的時候,每個開發人員本地都有乙個和 庫相同的本地庫,在沒有網路的情況下,照常可以commit,檢視版...
windows本地MySQL同一區域網共享
1.連線本地資料庫 windows r開啟執行,輸入cmd進入命令提示符視窗 若未將mysql加入環境變數,則切換目錄到mysql安裝的目錄下的bin目錄 若已加入環境變數,則不必切換目錄 我沒有加入,所以切換到bin下 輸入 mysql uroot p 按回車,輸入密碼回車,顯示如下圖所示,即成功...