局域网中是如何实现一对一通信

我们知道,局域网采用广播信道进行传输,广播信道可以实现一对多的通信。但现实中并不总是要进行一对多的通信的,那么如何在两台主机之间进行一对一的通信呢?这个问题不是那么简单的,我们需要考虑多个方面:

  • 主机是如何将产生的信息传送到信道上的

  • 多个主机共享信道,那么如何控制不发生信息之间的碰撞

  • 如何发信息送给特定主机

网络适配器(网卡)的作用

网络适配器也即我们通常所说的网卡。主机与外界局域网通信时通过网卡来适配的。因为主机与网卡间是通过并行传输,而网卡与局域网之家则是通过串行传输的,所以网卡需要在两者之间进行适配。

在网卡的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地址一致,如果不一致就丢弃。这样,具有广播特性的局域网就实现了一对一的通信了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


查找全部容器的日志文件 $ sudo find /var/lib/docker/containers -name *.log 查看日志位置 $ docker inspect --format='{{.LogPath}}' <container_name> 实时查询内容 $
Linux日志文件中列属性的详细解析
在Linux系统中没有duf命令,如何有效地管理磁盘空间?
深入探讨EncryptPad在Linux操作系统中的功能和优势
原理和应用场景:Linux中ttyload工具的工作原理和实际用途
深度解析SELinux的三种策略类型
评估Linux系统性能的ttyload工具使用效果
分享在Linux系统中检测SSH版本的方法
介绍Linux平台上的数据加密工具EncryptPad
在Linux系统中,如何查看和诊断块设备信息?
在Linux环境下如何查看块设备信息?
探索Linux操作系统下的数据加密工具EncryptPad
学会在Linux系统中查看硬盘信息
分析SELinux:原理与实践
掌握SELinux策略类别
技巧:有效解读和管理Linux日志文件
查看Linux系统中的所有用户
了解Linux系统中各种不同类型的日志文件
深入理解Linux PS命令
方法:在Linux操作系统中查看用户