我們知道,局域網(wǎng)采用廣播信道進(jìn)行傳輸,廣播信道可以實現(xiàn)一對多的通信。但現(xiàn)實中并不總是要進(jìn)行一對多的通信的,那么如何在兩臺主機(jī)之間進(jìn)行一對一的通信呢?這個問題不是那么簡單的,我們需要考慮多個方面:
-
主機(jī)是如何將產(chǎn)生的信息傳送到信道上的
-
多個主機(jī)共享信道,那么如何控制不發(fā)生信息之間的碰撞
-
如何發(fā)信息送給特定主機(jī)
網(wǎng)絡(luò)適配器(網(wǎng)卡)的作用
網(wǎng)絡(luò)適配器也即我們通常所說的網(wǎng)卡。主機(jī)與外界局域網(wǎng)通信時通過網(wǎng)卡來適配的。因為主機(jī)與網(wǎng)卡間是通過并行傳輸,而網(wǎng)卡與局域網(wǎng)之家則是通過串行傳輸?shù)模跃W(wǎng)卡需要在兩者之間進(jìn)行適配。
在網(wǎng)卡的ROM(只讀存儲器)中,寫入計算機(jī)的硬件地址即MAC地址。這個MAC地址是非常重要的,它是實現(xiàn)一對一通信的關(guān)鍵。后面我們會講到。
CSMA/CD協(xié)議
因為局域網(wǎng)采用的是共享信道,既然是共享信道,我們就要控制主機(jī)的先發(fā)和后發(fā)的問題。因為,如果多臺主機(jī)同時發(fā)送信息,那么就會產(chǎn)生混亂。這里有個著名的局域網(wǎng)協(xié)議CSMA/CD(載波監(jiān)聽多路訪問/碰撞檢測),就是解決該問題的。
該協(xié)議是非常容易理解的,我們用一個例子來說明:在一個會場,有一些人參加會議。會議上沒有主持人,所有人都可以自由發(fā)言。但是,只有等其他人發(fā)言完畢,會場是安靜的,才可以發(fā)言。如果有多個人在同時發(fā)言,那么同時發(fā)言的人都要結(jié)束發(fā)言,然后等待一個隨機(jī)時間后,若會場是安靜的就可再次發(fā)言了。這里為什么是一個隨機(jī)時間,很好理解,如果是固定時間的話,同時發(fā)言的人過了一段時間后還是會同時發(fā)言的。
通過MAC地址實現(xiàn)一對一通信
解決了上面的問題后,我們再看主機(jī)間是如何進(jìn)行一對一通信的。上文已經(jīng)說過,網(wǎng)卡上有一個MAC地址,下面就是一個MAC地址
A0-A4-C2-4B-9F-56
它是由48位(6字節(jié))組成的,每個網(wǎng)卡的MAC地址是全球唯一的,既然它是唯一的,那么就可以通過它來進(jìn)行主機(jī)間一對一的通信。
局域網(wǎng)中通信的基本單位是數(shù)據(jù)幀。當(dāng)局域網(wǎng)中的主機(jī)A想要向同一局域網(wǎng)的另一臺主機(jī)B通信,那么在A發(fā)送的數(shù)據(jù)幀首部就要寫明目的地址(B的MAC地址),然后這個數(shù)據(jù)幀就會廣播到局域網(wǎng)中的所有主機(jī),其他主機(jī)的網(wǎng)卡接受這個數(shù)據(jù)幀時,查看其目的地址是否和自己的MAC地址一致,如果不一致就丟棄。這樣,具有廣播特性的局域網(wǎng)就實現(xiàn)了一對一的通信了。