二層交換機(jī)原理和工作流程
二層交換機(jī)是位于于OSI模型的第2層也就是數(shù)據(jù)鏈路層。和普通的交換機(jī)相比就是二層交換技術(shù)的發(fā)展比較成熟,二層交換機(jī)屬數(shù)據(jù)鏈路層設(shè)備,可以識(shí)別數(shù)據(jù)包中的MAC地址信息,根據(jù)MAC地址進(jìn)行轉(zhuǎn)發(fā),并且二層交換機(jī)支持線速交換,吞吐量要大一些。
二層交換機(jī)工作于數(shù)據(jù)鏈路層,可以識(shí)別數(shù)據(jù)包中的MAC地址信息,根據(jù)MAC地址進(jìn)行轉(zhuǎn)發(fā),并將這些MAC地址與對(duì)應(yīng)的端口記錄在自己內(nèi)部的一個(gè)地址表中。
數(shù)據(jù)鏈路層主要通過(guò)接收物理層提供的比特流服務(wù),在相鄰節(jié)點(diǎn)之間建立鏈路,對(duì)傳輸中可能出現(xiàn)的差錯(cuò)進(jìn)行檢錯(cuò)和糾錯(cuò),向網(wǎng)絡(luò)層提供無(wú)差錯(cuò)的透明傳輸。
在數(shù)量鏈路層傳輸?shù)幕締挝粸?ldquo;幀(Frame)”。每一幀包括一定數(shù)量的數(shù)據(jù)和一些必要的控制信息。
目前,有四種不同格式的以太網(wǎng)幀,在每種格式的以太網(wǎng)幀的開始處都有64比特(8字節(jié))的前導(dǎo)字符,其中,前7個(gè)字節(jié)稱為前同步碼(Preamble),最后1個(gè)字節(jié)是幀起始標(biāo)志符0xAB,它標(biāo)志著以太網(wǎng)幀的開始。前導(dǎo)字符的作用是使接收節(jié)點(diǎn)進(jìn)行同步并做好接收數(shù)據(jù)幀的準(zhǔn)備。緊接著的是6字節(jié)的目標(biāo)MAC地址,6字節(jié)的源MAC地址,隨后的幀因不同的格式而各不同,最后4個(gè)字節(jié)是幀校驗(yàn)序列FCS ,采用32位CRC循環(huán)冗余校驗(yàn)對(duì)從“目標(biāo)MAC地址”字段到“數(shù)據(jù)”字段的數(shù)據(jù)進(jìn)行校驗(yàn)。不同格式的以太網(wǎng)幀的各字段定義都不相同,彼此也不兼容。
交換機(jī)的具體工作流程如下:
1) 當(dāng)交換機(jī)從某個(gè)端口收到一個(gè)數(shù)據(jù)幀,它先讀取包頭中的源MAC地址,這樣它就知道源MAC地址的機(jī)器是連在哪個(gè)端口上的;
2) 再去讀取包頭中的目的MAC地址,并在地址表中查找相應(yīng)的端口;
3) 如本端口下的主機(jī)訪問(wèn)本端口下的主機(jī)時(shí)丟棄;
4) 如表中有與這目的MAC地址對(duì)應(yīng)的端口,把數(shù)據(jù)包直接轉(zhuǎn)發(fā)到這端口上;
5) 如表中找不到相應(yīng)的端口則把數(shù)據(jù)包廣播到所有端口上,當(dāng)目的機(jī)器對(duì)源機(jī)器回應(yīng)時(shí),交換機(jī)又可以記錄這一目的MAC地址與哪個(gè)端口對(duì)應(yīng),在下次傳送數(shù)據(jù)時(shí)就不再需要對(duì)所有端口進(jìn)行廣播了。不斷的循環(huán)這個(gè)過(guò)程,對(duì)于全網(wǎng)的MAC地址信息都可以學(xué)習(xí)到,二層交換機(jī)就是這樣建立和維護(hù)它自己的端口地址表。
端口地址表中記錄了端口下包含主機(jī)的MAC地址,端口地址表是交換機(jī)上電后自動(dòng)建立的,保存在RAM中,并且自動(dòng)維護(hù)。端口地址列表中表項(xiàng)是有生命期的。每個(gè)表項(xiàng)在建立后開始進(jìn)行倒記時(shí),每次發(fā)送數(shù)據(jù)都要刷新記時(shí),對(duì)于長(zhǎng)期不發(fā)送數(shù)據(jù)的主機(jī),其MAC地址的表項(xiàng)在生命期結(jié)束時(shí)被刪除,所以端口地地表記錄的總是最活動(dòng)的主機(jī)的MAC地址。