主機a需要傳送乙個資料報到主機b,在整個傳輸流程中,源和目的ip位址是保持不變的(不考慮nat),源和目的mac位址是隨著具體鏈路的變化而變化。
這裡只考慮三種基本情形:a和b通過網線直連,a和b通過路由器連線,a和b通過交換機連線。真實網路中a和b的連線關係可能很複雜,但無非就是這三種基本情形的組合。
傳輸流程
主機a在本機的路由表中查詢匹配主機b的ip的網路號;
如果能夠查詢到,說明主機b和主機a在同一網段(通常是在同一區域網內),則下一跳即為主機b。主機a在arp快取中查詢主機b的mac位址(如沒有則先傳送arp廣播),然後將資料報封裝成幀傳送至通訊線路上。該幀的源mac是主機a的mac位址,目的mac是主機b的mac位址。
如果不能查詢到,說明主機a和主機b不處於同一網路中,需要通過閘道器來進行跨網路的通訊。主機a會通過預設閘道器(通常是路由器)來提交報文,即下一跳是路由器。主機a根據閘道器的ip在自己的arp快取中查詢對應的mac位址(如沒有則先傳送arp廣播),然後將資料報封裝成幀傳送至通訊線路上。該幀的源mac是主機a的mac,目的mac是路由器的mac。
當閘道器路由器接收到資料幀時,首先提取包頭中的目的mac位址,在mac表進行查詢。如果找到對應項,則按對應的埠進行**(這一步實現了與交換機一樣的功能);如果沒找到對應項,則提取資料報包頭中的目的ip。
attention
如果主機a和主機b位於同一網路,並通過路由器相連,主機a傳送資料報至主機b,目的mac位址是主機b。路由器接收到主機a傳送的包,取目的mac位址在自身mac表中查詢,通常情況下是能查到的。但如果查不到,路由器不會進行廣播(在每個埠都**),因為它不知道這個mac位址是本網段的還是外網的。路由器會進一步查詢目的ip,確定**埠,修改源和目的mac位址,然後**出去。所以說,路由器是包含交換機功能的,並且也首先進行交換機應做的工作(但不會進行廣播),這使得內網之間的資料傳輸更快。
資料報從源主機到達目標主機的過程
最近把跨路由的資料傳輸過程搞的差不多了,所以特意寫下這篇文章,僅為以後回憶之用。為了便於理解,先從同一廣播域內兩台主機通訊開始敘述吧。只要能理解這些,那也就差不多可以理解跨路由傳輸過程了 兩者不同之處在於源和目標mac位址的轉換 情景一 同一廣播域內,兩台主機通訊過程。我們知道兩主機要通訊傳送資料時...
資料報從源主機到達目標主機的過程。
本人現在研一,最近在準備學校的計算機網路考試,感覺自己對資料報選擇路由和資料傳輸過程的實質總是不清楚,今天認真翻閱課本,參考博文,總算有了自己的理解。本文採用循序漸進的方式今次那個陳述。理解同一廣播域內兩台主機通訊過程是理解跨路由傳輸過程的先決條件,兩者不同之處在於源和目標mac位址的轉換 因此先講...
關於遠端主機的資料傳輸
場景附註參考 經常需要向遠端主機傳檔案,實際情況中要考慮到多種場景。這種方式特別適合大檔案傳輸,比如達到gb級別時,可以考慮使用ftp及sftp。待補充更多資料。在securecrt中,可以使用rz命令上傳檔案,不過通常只能上傳幾十mb的檔案。有時新增引數 be,可以傳輸上百mb的檔案。至於更大的檔...