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