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

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
下一篇 2018-05-06

相關推薦

  • shell練習

    1、檢查磁盤使用率,如果分區利用率大于80%(此處實驗以15%)就執行警報   echo “The disk check script will be starting”sleep 0.5 disk_used=`df |grep “^/dev/sd”|tr -s ” ” %|c…

    2018-05-07
  • 計算機的組成及其功能

    計算機(computer)俗稱電腦,常用于進行數值計算、邏輯計算,除此之外還帶有存儲記憶功能。 計算機主要由五個部分組成。 (1)運算器 運算器(ALU,Arithmetic Logic Unit),基本功能是完成對各種數據的加工處理,主要負責完成計算機中的算術運算(即加、減、乘、除以及相應的復合運算)和邏輯運算(與、或、非等邏輯運算以及數據的比較和移位等操…

    Linux筆記 2018-05-13
  • 任務計劃

    at crontab

    Linux筆記 2018-05-05
  • mysql

    yum安裝 1、yum install mysql-server /var/lib/mysql 用戶存放的位置 2、chkconfig –list mysqld 查看是否啟動 3、chkconfig mysqld on 設置為開機啟動 4、ss -ntl;service mysqld start 開啟服務 端口號為3306 /!可以執行linux…

    Linux筆記 2018-06-14
  • 羅列Linux發行版的基礎目錄名稱命名法則及功用規定

    FHS: ? ? Filesystem Hierarchy Standard http://refspecs.linuxfoundation.org/ http://refspecs.linuxfoundation.org/fhs.shtml ? ? /bin:所有用戶可用的基本命令程序文件; ? ? /sbin:工系統管理使用的工具程序; ? ? /boo…

    Linux筆記 2018-05-13
  • 第二周作業20180521

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示 Linux常用的文件管理命令為cp,mv,rm cp: 格式用法: 源文件為文件 目標文件不存在,則在目標文件夾中新建文件 目標文件存在,則進行文件覆蓋,通過-i提示是否進行覆蓋 源為目錄,cp后要加-r,復制文件夾以及其下所有文件夾的文件,目的需為目錄 多文件復制,目的必須為目錄且…

    2018-05-21
欧美性久久久久