簡單的跨路由通信分析和理解

linux route 通信

簡單的拓撲模型:
A —–1 R1 2—–3 R2 4——5 R3 6——-B

問題:

如果A 通過瀏覽器訪問B機器上網站的頁面
 firefox http://B

1、
判斷A和B是否在同一網段
判斷方法:
a、A先和自己的子網掩碼進行與運算,算出自己的網絡ID,
b、然后把B機器上的IP與自己的子網掩碼進行與運算,算出B機器所在的網絡ID
c、兩個網絡ID比較,如果一樣就在同一網段,如果不一樣,就不在同一網段。
如果A,B不在同網段,A就沒有辦法通過ARP協議把B機器的mac地址解析出來,

2、
因此A機器嘗試把數據包發往R1路由器的網關

在A的機器上事先肯定配置了網關(默認網關)(gateway : R1 IP1)
A機器雖然知道R1的gateway的地址,但是不知道IP1的mac1地址
ARP IP1—> mac
A機器和R1路由器IP1在同一網段,可以使用ARP廣播獲取到IP1的mac1地址

A ARP cache:(IP1 MAC1)
得到 R1 IP1的mac1地址,A機器會把IP1和mac1的對應關系保存到ARP表中,下一通信直接查詢ARP就可以了,不需要再次發送ARP請求了

3、
我們現在已經得到目標地址和源地址,可以填寫數據包信息

數據鏈路層
frame:DEST MAC1, SOUCRE MACA,

internet層
IP:dest IP:IPB , source IP:IPA

傳輸層
TCP: dest port:80 , source port: xxx(random隨機)

4、
數據包的信息填寫完整后,就可以根據數據的DEST MAC1把數據包發送到R1上了

5、
R1收數據包,會根據包中的目標地址,查詢自己的路由表
數據包要到達 netB網段
netB R1IP2 R2IP3
要到達netB 網絡,數據包要從R1的IP2接口出去,要到達R2的IP3接口
因此R1要嘗試把數據包發送到R2

ARP R2IP3 — MAC3

數據包頭信息重新封裝
frame:DEST MAC3, SOUCRE MAC2,
ip/TCP包頭不變

6、
R2收到數據包會根據包中的目標地址,查詢自己的路由表
數據包要到達 netB網段
netB R2IP4 R3IP5

ARP R2IP5 — MAC5

數據包頭信息重新封裝
frame:DEST MAC5, SOUCRE MAC4,
ip/TCP包頭不變

7、
數據包到達R3
R3收到數據包會根據包中的目標地址,查詢自己的路由表
發現R3和目標地址是直連
netB R3IP6 xxx
ARP IPB —> MACB

frame :dest macB ,source mac6
ip: dest IPB, source IPA
tcp: dest port22, source port xxxx

8、
數據包到達(一次通信完成)

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/97604

(0)
linux_testlinux_test
上一篇 2018-05-06 14:20
下一篇 2018-05-06 15:25

相關推薦

  • 第一周 筆記

    ../返回上一層 相對路徑絕對路徑 ? ?../../ ? 以根開始絕對路徑 不以根開始是相對路徑 alias 簡化特別長得命令和參數(別名) ?unalias去掉別名使用 .bashrc ? ?-a全取消 ls .bashrc 別名目錄文件 basename ? 查看主機名 ?(取最后的文件名) bc 計算器 ? obase=幾進制 ?進制轉換 clock…

    Linux筆記 2018-04-01
  • 網絡模型和iproute家族命令

    1、簡述osi七層模型和TCP/IP五層模型
    2、簡述iproute家族命令
    3、詳細說明進行管理工具htop、vmstat等相關命令,并舉例
    4、使用until和while分別實現192.168.0.0/24 網段內,地址是否能夠ping通,若ping通則輸出”success!”,若ping不通則輸出”fail!”

    2018-06-19
  • 轉載:Markdown 簡明語法手冊

    markdown 簡明語法手冊

    Linux筆記 2018-04-14
  • Linux文件系統簡介

    “一切皆是文件”是Linux基本哲學思想之一,可見文件系統在linux系統中的重要性,學好文件系統將為以后深入研究與學習Linux系統奠定良好的基礎。

    2018-03-30
  • 參加馬哥教育面授班

    很興奮,今天是開班的第6天了,課程的具體安排為,1、3、5上課,2、4、6實操課。課堂上目前是王老師授課,講的都是滿滿的干貨,很詳細。讓我再次確信參加這次培訓不會有錯。 面授班與在網絡學習,我覺得學習效果差別還是蠻大的。參加面授班能很好的約束我的行為,不會出現學著學著就打開游戲或看電影了,學習效率很高,哈哈。初次見到馬哥教育的各個老師發現都很平易近人,學習上…

    Linux筆記 2018-07-21
  • shell

    shell 內外部命令

    2018-04-07
欧美性久久久久