1.2【基本路由原理】(三層轉發原理)2


三層轉發原理:

 
IPV4 頭部:
長度(20B~60B)
 
##【頭部結構】:
 
第一行(32bit):版本 (4bit) 首部長度(4bit) TOS(8bit)總長度(16bit)
第二行(32bit):標識(16bit) 標志(3bit)偏移地址(13bit)
第三行(32bit):TTL(8bit)協議標識(8bit)校驗和(16bit)
第四行(32bit):源IP
第五行(32bit):目的IP
//標准的頭部是包含前5行,每一行4個字節,共20個字節
第六行(32bit):填充字段 (40B)  填充時需要按照4的倍數填充
 
 
***************************************************************
如果把首部長度全部填充為1的話,
是15,表示15行,IP頭部長度是15*4=60B;
一般情況下是5,標准頭部,表示5行,IP頭部長度是5*4=20B;
填充選項:
 
 ****************************************************************************
TOS:服務質量:給IP包打標簽,通過這個字段給IP包進行分級,
通過不同的分級,可以標識IP包的優先性,針對不同的級別執行優先轉發。
**************************************************************************
偏移地址:分片
************************************************************************
TTL:生存時間:1.防止三層的環路問題,(不是路由的環路是ip包的 環路)        2.可以限制IP包的轉發距離
 
二層為什么會有廣播風暴會有環?
因為在二層的幀頭里面是沒有防環機制的,需要加協議,比如生成樹來防止環路。
TTL值是8個比特,25 5環,減到0,IP包會被丟掉
 
TTL值減到0,IP包會被丟掉,對還是不對?不對
TRACE的原理:
可以做一個追蹤,首先將TTL設為1,然后設為2,設為3,這樣把網絡上經過轉發的所有設備的IP地址拿過來。
 
*PC1->1:(類比快遞)
1.發送TTL=1報文,校驗IP包的完整性checksum,TTL-1=0;
2.TTL=0,需要判斷一下目標IP地址是不是本地的IP?;
3.如果不是本地的IP,需要說明 這個IP包是需要轉發的,但是TTL=0,需要被丟棄;
4.丟棄以后會告訴發送源什么原因造成丟包的,會回送ICMP超時應答,丟棄的原因:TTL超時應答。
通過應答, 可以獲取到這台設備的IP地址
 
//trace/ping 這兩個是工具,不是協議
 
PING-ICMP
TRACE:
tracert(ICMP)
traceroute(UDP)
 
可以 通過tracert可以把其他設備的IP給撈過來:通過TTL值。
//看書:6-ICMP
TTL超時 代碼:110
 
*PC1->2
TTL=2
 
*PC1->3
TTL=3,IP包不需要轉發,接收。
 
3可能會給源PC1回送ICMP端口不可達的報文-tracerout(IP的上層 封裝的是UDP的協議,UDP端口號大於30000,UDP進程下沒有開這個 端口號,會回送端口不可達的報文)代碼:33
 
3可能會給源PC1回送reply信息-tracert;代碼:00
 
 
ping返回TTL值:靠ICMP的Reply:看對端的TTL值信息。
ping網關:255
ping百度:55
時間:有一個定時器
 
*****************************************************************************
協議標識
是為了標識上層的協議:[1=icmp 6=tcp 17=udp 88=eigrp 89=ospf
47=GRE]
*****************************************************************************
校驗和
只針對包頭做校驗,而不包括所傳遞的數據
*****************************************************************************
分片
為什么會有分片?
要傳遞的數據大於MTU值最大傳輸單元1500B;
MTU標識接口一次發送的IP數據包 的長度可以到達多少個字節;
IP 3000,按MTU的大小值來進行分片;
 
標識字段-用來標識同一個IP包,到目的可以進行重組;
 
標志位(3bit)
DF = 0:IP包可以被分片; 1:IP包不能被分片;默認是0
MF =  3745
 
************************************************************************
## 實驗???
關於DF分片的實驗
1.實驗現象
Packet sent with the DF bit set
MMMMMM
 
ping 3.3.3.3 size 1500 df-bit re100
 
df-bit不能被分片 
 
2.實驗過程:
 
3.實驗分析:
R2收到以后需要轉發,IP包的長度需要大於出接口的MTU值,需要分片。但是IP包里面IP包置位了
(ping 3.3.3.3 255.255.255.255 siza 1500 df-bit),說明IP包不能被分片,丟包。
 
這時,丟棄者就會像發送源回送一個ICMP差錯應答,原因就是IP包不能被分片,同時回送的IP包里面還包括這台設備出接口的MTU值 代碼:34
 
是否分片只看出接口的MTU值,和入接口是沒有關系的,入方向收包是不檢查MTU的,只在出方向轉發的時候才會檢查MTU,
所以,R3回復的時候,fa0/0沒有改變MTU,3返回的包沒有問題。
 
4.實驗結論:不能被分片造成丟包的
 
5.抓包分析:
在R2的f0/0上抓包分析
 
 看Request里面,DF位,置1
 看回送的數據包,DF位,置0
 

 注意:在校園網里面就,保證MTU的一致性
實際上,在IPv4里面
PPPOE   MTU值改成1492,為什么?
標准的IP頭【IP+上層協議+數據】,因為后續需要增加一些頭部,PPPOE需要增加PPOE的頭部和PP的頭部,占了8個字節,如果按1500來添的話就會造成分片。
MPLS往里插標簽,IPsec里添加ESP 都會造成分片;
丟了一片就會造成不通或者時通時不通,所以要保證整個網絡MTU的一致性。
 
MTU一致性的測試方法:PMTUD(Path MTU Discovery,路徑MTU發現)
方法:發個1500B或2000B報文,將DF比特位置位,經過一台設備如果出接口MTU值小於1500B會丟包;
丟包會回送一個ICMP的差錯應答,告訴你因為什么原因丟包,同時這個報文里面會攜帶丟棄者的MTU值,可以通過這種方法獲得整個轉發路徑上面的最小設備的MTU值。
 
1->2
獲取1300,用1300發
1->3
獲取1000,用1000發
1->4
獲取最小MTU,用最小MTU去封裝數據報文
 
 

 
這也是校園網的一種排查思路。
 

************************************************************************
偏移地址:用來標識分片的起始位置,通過起始位置知道哪片是第一片,哪片是第二片,然后做一個重組
 
//看書:分片-在UDP章,TCP不會被分片,因為TCP有MSS,可以自動分段,避免分片
如果用UDP封裝數據的話,很多時候會限制填充的數據長度,這個數據長度是512B
 
rip 里的response報文可以傳送多少條路由?
 
 跳數的話:最大15跳,16不可達;
 
25條路由:rip每條路由的長度是20個字節,20*25=500B
rip通過UDP承載的,UDP頭部長度:8B  rip頭部長度:4B
500+8=4=512B;
 
為什么rip的每個response報文最多只能傳送25條路由?
是因為它已經限定了UDP報文的長度,用UDP傳送數據的話,很多協議會將最大填充數值固定在512B,不能太大,太大就會造成IP分片;為了避免分片
***************************************************************************
ARP:地址解析協議
用於解析MAC地址,實際上,在LAN網中才有ARP,在WAN中是沒有ARP的,因為不需要,WAN網中沒有MAC
1.ARP的報文類型
兩種:request     reply
2.ARP的報文長度:
28B
3.ARP的報文結構:
 硬件類型
 協議類型
 硬件長度
 協議長度
  OP字段[1=request  2=reply]
  發送方 MAC
  發送方IP
  目的方MAC
  目的方IP
4.ARP是靠什么協議來承載的?
ARP算是2.5層協議,不算2層,也不算3層(ARP沒有IP頭部)
5.ARP報文長度是28B,它滿足最小MTU值嗎?
  最小MTU是46B,ARP需要填充0來滿足最小MTU的長度
6.ARP和RARP有什么區別?
   ARP:將IP解析成MAC
   RARP:將MAC解析成IP(無盤工作站:只有服務器才有硬盤,PC沒有硬盤,使用網卡啟動加載系統:網卡會發送一個RARP廣播報文,通告自己的MAC地址,服務器收到后會給你回送一個IP,PC獲取IP后可以從服務器加載系統,對服務器,網絡性能要求比較高)
所有的request報文都是廣播;
           reply報文都是單播;
7.ARP的類型:
普通ARP(獲取MAC地址)、
代理ARP、
免費ARP(1.IP地址沖突檢查 2.通告MAC地址)
(自己發自己一個ARP請求,如果收到一個ARP應答,表示網絡 中有跟我一樣的IP地址,就會報錯;
免費ARP也會去刷新MAC地址);
 
8.收到一個ARP請求后,在本地會 生成ARP的映射表
show arp
arp -a  看到綁定關系
 
在思科路由器里面ARP表項的老化時間是多長?
4個小時
 
【實驗驗證】接收到下面哪個報文會刷新ARP的4個小時的老化時間?
1、ARP request ?
2、免費ARP ?
只有免費ARP才會刷新ARP的time out這個定時器
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM