轉(zhuǎn)載:https://blog.csdn.net/ym815753607/article/details/75150593
下面將談?wù)凪AC地址學(xué)習(xí)這塊的東西
PC1要與PC2通信澎办,基于以太網(wǎng)通信中蔑歌,必須在數(shù)據(jù)幀中指定目標(biāo)MAC地址才可以進(jìn)行正常通信。
假定PC1的arp表項(xiàng)中沒有對(duì)應(yīng)通信的PC2的MAC地址B與IP映射占婉,那么PC1將廣播一個(gè)“arp請(qǐng)求”搜囱,交換機(jī)通過port1 接收到PC1廣播的arp請(qǐng)求報(bào)文丑瞧,通過查找交換機(jī)內(nèi)部的轉(zhuǎn)發(fā)表,發(fā)現(xiàn)沒有PC1的MAC地址A與端口1對(duì)應(yīng)關(guān)系(假定交換機(jī)處于初始化狀態(tài))蜀肘,如表1
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 表1 初始化的交換機(jī)轉(zhuǎn)發(fā)表
于是绊汹,交換機(jī)會(huì)將PC1發(fā)來的數(shù)據(jù)幀的源MAC地址A與端口1的對(duì)應(yīng)關(guān)系更新到自己的轉(zhuǎn)發(fā)表中,如表2扮宠;
接著交換機(jī)會(huì)廣播arp請(qǐng)求(flooding)到除了接收端口的的其他端口西乖,如圖2
PC2的情況:
PC2接收到arp請(qǐng)求后,通過對(duì)比目的IP與自己IP坛增,如果相等获雕,則會(huì)將PC1的MAC地址A與IP映射關(guān)系更新到自己的arp表項(xiàng)中,并且會(huì)以單播的形式通過端口2返回一個(gè)“arp應(yīng)答”收捣,交換機(jī)接收到此arp應(yīng)答后届案,會(huì)將PC2發(fā)來的數(shù)據(jù)幀的源MAC地址B與對(duì)應(yīng)的端口2更新到自己的轉(zhuǎn)發(fā)表中,如表3
接著交換機(jī)查看自己的轉(zhuǎn)發(fā)表發(fā)現(xiàn)arp應(yīng)答目標(biāo)MAC地址A對(duì)應(yīng)端口1罢艾,如表4楣颠,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 表4 查找MAC:A
于是將此arp應(yīng)答請(qǐng)求通過端口1發(fā)送給PC1尽纽,PC1得到arp應(yīng)答,將PC2 的MAC地址B與IP映射關(guān)系更新到自己的arp表項(xiàng)中童漩。PC1發(fā)送由鏈路層封裝的數(shù)據(jù)幀給PC2弄贿,如圖3
經(jīng)過交換機(jī),交換機(jī)通過轉(zhuǎn)發(fā)表發(fā)現(xiàn)目的MAC地址是B矫膨,如表5差凹,對(duì)應(yīng)端口為2,于是通過端口2 將此數(shù)據(jù)幀傳給PC2侧馅。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 表5 數(shù)據(jù)轉(zhuǎn)發(fā)
PC3的情況
PC3也接收到交換機(jī)廣播來的arp請(qǐng)求危尿,如圖2,發(fā)現(xiàn)目的IP不是自己的IP施禾,于是不作出任何回應(yīng)
下面是模擬Cisco交換機(jī)做的實(shí)驗(yàn)(用CiscoPacket Tracer 做的實(shí)驗(yàn)脚线,不能抓包用wireshark分析)
網(wǎng)絡(luò)拓?fù)淙鐖D1,交換機(jī)型號(hào)Cisco 2950-24
下圖6是模擬交換機(jī)初始化的轉(zhuǎn)發(fā)表弥搞,轉(zhuǎn)發(fā)表為空
由于不能通過wireshark抓包分析邮绿,我查看PC1 ping PC2的動(dòng)畫演繹數(shù)據(jù)報(bào)收發(fā)過程。事先PC1攀例、PC2 船逮、PC3? arp表項(xiàng)均為空,均如圖7粤铭,交換機(jī)轉(zhuǎn)發(fā)表MAC表項(xiàng)為空挖胃,如圖6
圖7 PC1、PC2和PC3初始arp表項(xiàng)
PC1先廣播arp請(qǐng)求梆惯,交換機(jī)接收到arp請(qǐng)求后酱鸭,將PC1發(fā)來的arp數(shù)據(jù)幀中源MAC和端口映射關(guān)系更新到自己的轉(zhuǎn)發(fā)表中,如圖8垛吗,接著交換機(jī)會(huì)廣播arp請(qǐng)求(flooding)到除了接收端口的其他端口凹髓,如圖9、圖10
?圖8 交換機(jī)接收到PC1廣播的arp請(qǐng)求
? ?圖9 交換機(jī)廣播arp請(qǐng)求
圖10 交換機(jī)廣播arp請(qǐng)求的模擬過程
PC2接收到廣播來的arp請(qǐng)求后怯屉,查看目標(biāo)IP發(fā)現(xiàn)是自己的IP蔚舀,于是將PC1的MAC與IP映射關(guān)系更新到自己的arp表項(xiàng)中,并單播一個(gè)arp應(yīng)答給交換機(jī)锨络,而PC3查看收到的arp請(qǐng)求后查看目標(biāo)IP并不是自己的IP赌躺,于是不做任何回應(yīng),如圖11羡儿、圖12礼患。
? ? ?圖11 ?PC2單播arp應(yīng)答
交換機(jī)接收到arp應(yīng)答后將源MAC和端口映射關(guān)系更新到自己的轉(zhuǎn)發(fā)表中,如圖13,然后將arp應(yīng)答通過端口1扔給PC1讶泰,PC1將PC2的MAC與IP映射更新到自己的arp表項(xiàng)咏瑟,然后向PC2發(fā)送ping包拂到,數(shù)據(jù)幀到達(dá)交換機(jī)后痪署,交換機(jī)查看轉(zhuǎn)發(fā)表,發(fā)現(xiàn)PC2的MAC與端口2的映射關(guān)系兄旬,于是將數(shù)據(jù)幀通過端口2扔給PC2狼犯,如圖14、圖15和圖16
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖14/15 數(shù)據(jù)幀轉(zhuǎn)發(fā)模擬過程
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖16 數(shù)據(jù)幀轉(zhuǎn)發(fā)過程
Cisco交換機(jī)轉(zhuǎn)發(fā)表老化時(shí)間默認(rèn)也是300s领铐,PC1與PC2自從上一次通信后沒有進(jìn)行數(shù)據(jù)交互悯森,一段時(shí)間后查看轉(zhuǎn)發(fā)表項(xiàng),如圖17
在Cisco這款交換機(jī)條件下做了一個(gè)錯(cuò)誤鏈路實(shí)驗(yàn)绪撵,PC1的MAC與端口1映射在老化時(shí)間內(nèi)瓢姻,我斷開PC1與交換機(jī)連接,查看交換機(jī)轉(zhuǎn)發(fā)表音诈,結(jié)果如下圖18幻碱,PC1的MAC對(duì)應(yīng)端口映射立即消失了。