抓包 tcp -nn -i eth0 port 80 or arp
抓包2類請求包?一個是百度80端口?另一個是arp請求
開始listen監(jiān)聽
arp -d 192.168.150.2 && curl www.baidu.com
從arp表中刪除指定條目?然后請求百度
然后看tcpdump監(jiān)聽的內(nèi)容
這里就是熟悉的三次握手?數(shù)據(jù)傳輸?四次分手的過程
需要注意的是在三次握手之前?有2個ARP協(xié)議的數(shù)據(jù)包
請求誰有192.168.150.2的MAC地址請告訴192.168.150.11這個地址
別人就會告訴它這個IP地址在53:2b這個網(wǎng)卡上
才開始走三次握手的過程
如果不帶 -n: tcp -i eth0 port 80 or arp
route不帶-n
帶上-n?就會裸露這些數(shù)值
準(zhǔn)備2臺機(jī)器
node1
node2
這兩個主機(jī)在同一局域網(wǎng)
可以ping通?也不需要路由器
node1 ping node2
路由表1
在節(jié)點2上設(shè)置一個新的環(huán)回接口: ifconfig lo:22 192.168.168.88/24
如果在node1上ping192.168.168.88 能否ping通屡限?
拿著這地址和掩碼(255.255.255.0)做與運算得到192.168.168.0和目的地址192.168.150.0?不一樣?跳過第一個條目?匹配第二個條目?然后扔給了路由器192.168.150.2
這就是IPV4互聯(lián)網(wǎng)下一跳機(jī)制
但從網(wǎng)關(guān)192.168.150.2跳出去就回不來了
所以如果按照這種方式node1始終ping不通192.168.168.88
所以需要在路由表中添加一個條目
route add host 192.168.88.88 gw 192.168.150.12
添加一個主機(jī)?經(jīng)過網(wǎng)關(guān)?到?你能ping通的192.168.150.12
這個條目是?只有?192.168.88.88才會走網(wǎng)關(guān)
上面圖片?路由表1?中第二個條目中是?所有不知道的都會走默認(rèn)網(wǎng)關(guān)
注意這個新增的條目對應(yīng)的掩碼地址是?255.255.255.255
當(dāng)192.168.88.88這個ip和這個掩碼做與運算的時候得到的就是它自己?和?前面的目標(biāo)地址一樣?就轉(zhuǎn)發(fā)給了192.168.150.12
所以這個時候就通了
同一個局域網(wǎng)才會走網(wǎng)關(guān)?不再同一個局域網(wǎng)的不需要走網(wǎng)關(guān)?直接走交換機(jī)就可以出去
以上就是靜態(tài)路由的過程
再用下上篇文章畫的圖 串下整個過程
1踏施、用戶空間程序http協(xié)議(文本)
2剂娄、傳輸控制層?三次握手?傳輸數(shù)據(jù)?四次分手的過程
3蜕煌、數(shù)據(jù)包怎么出去的主機(jī)?網(wǎng)絡(luò)層的路由選擇規(guī)則以及下一條機(jī)制
4切诀、找到下一跳之后?數(shù)據(jù)包怎么給到下一跳的?是通過鏈路層的MAC地址切換的過程
5揩环、客戶端這一側(cè)?從上往下完成一個數(shù)據(jù)包?發(fā)出去?服務(wù)端完成數(shù)據(jù)包?回來?客戶端再確認(rèn)?兩邊開放資源給應(yīng)用層
6、應(yīng)用層起線程起進(jìn)程多路復(fù)用NIO即就需要關(guān)注IO模型了
7幅虑、再之后就需要關(guān)注線程池的概念了
交換機(jī)和路由器區(qū)別
交換機(jī)在拓?fù)鋱D中用長方形表示
路由表中x表示
交換機(jī)是3層的?有路由表route
交換機(jī)可以看到MAC地址
路由器是網(wǎng)絡(luò)層可以看到IP地址
所以交換機(jī)不能作為2個網(wǎng)絡(luò)連接使用
2個局域網(wǎng)連接的時候一定是路由表?里面添加一些路由條目
從A網(wǎng)到B網(wǎng)一定會有轉(zhuǎn)發(fā)規(guī)則
家里的路由器是路由器和交換機(jī)合二為一的
家里的路由器上面有4個接口可以接網(wǎng)線?插4臺機(jī)器
這是走的交換機(jī)
交換機(jī)里面有一個線插的是路由器
路由器上有2個接口?一個是交換機(jī)?一個是IP運營商
交換機(jī)是走局域網(wǎng)的
一個局域網(wǎng)至少具備三層?網(wǎng)絡(luò)層丰滑、鏈路層、物理層