我们知道,局域网采用广播信道进行传输,广播信道可以实现一对多的通信。但现实中并不总是要进行一对多的通信的,那么如何在两台主机之间进行一对一的通信呢?这个问题不是那么简单的,我们需要考虑多个方面:
主机是如何将产生的信息传送到信道上的
多个主机共享信道,那么如何控制不发生信息之间的碰撞
如何发信息送给特定主机
网络适配器(网卡)的作用
网络适配器也即我们通常所说的网卡。主机与外界局域网通信时通过网卡来适配的。因为主机与网卡间是通过并行传输,而网卡与局域网之家则是通过串行传输的,所以网卡需要在两者之间进行适配。
在网卡的ROM(只读存储器)中,写入计算机的硬件地址即MAC地址。这个MAC地址是非常重要的,它是实现一对一通信的关键。后面我们会讲到。
CSMA/CD协议
因为局域网采用的是共享信道,既然是共享信道,我们就要控制主机的先发和后发的问题。因为,如果多台主机同时发送信息,那么就会产生混乱。这里有个著名的局域网协议CSMA/CD(载波监听多路访问/碰撞检测),就是解决该问题的。
该协议是非常容易理解的,我们用一个例子来说明:在一个会场,有一些人参加会议。会议上没有主持人,所有人都可以自由发言。但是,只有等其他人发言完毕,会场是安静的,才可以发言。如果有多个人在同时发言,那么同时发言的人都要结束发言,然后等待一个随机时间后,若会场是安静的就可再次发言了。这里为什么是一个随机时间,很好理解,如果是固定时间的话,同时发言的人过了一段时间后还是会同时发言的。
通过MAC地址实现一对一通信
解决了上面的问题后,我们再看主机间是如何进行一对一通信的。上文已经说过,网卡上有一个MAC地址,下面就是一个MAC地址
A0-A4-C2-4B-9F-56
它是由48位(6字节)组成的,每个网卡的MAC地址是全球唯一的,既然它是唯一的,那么就可以通过它来进行主机间一对一的通信。
局域网中通信的基本单位是数据帧。当局域网中的主机A想要向同一局域网的另一台主机B通信,那么在A发送的数据帧首部就要写明目的地址(B的MAC地址),然后这个数据帧就会广播到局域网中的所有主机,其他主机的网卡接受这个数据帧时,查看其目的地址是否和自己的MAC地址一致,如果不一致就丢弃。这样,具有广播特性的局域网就实现了一对一的通信了。
Atas ialah kandungan terperinci 局域网中是如何实现一对一通信. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!