php如何实现局域网,局域网中是如何实现一对一通信
我们知道,局域网采用广播信道进行传输,广播信道可以实现一对多的通信。但现实中并不总是要进行一对多的通信的,那么如何在两台主机之间进行一对一的通信呢?这个问题不是那么简单的,我们需要考虑多个方面:主机是如何将产生的信息传送到信道上的
多个主机共享信道,那么如何控制不发生信息之间的碰撞
如何发信息送给特定主机
网络适配器(网卡)的作用
网络适配器也即我们通常所说的网卡。主机与外界局域网通信时通过网卡来适配的。因为主机与网卡间是通过并行传输,而网卡与局域网之家则是通过串行传输的,所以网卡需要在两者之间进行适配。
在网卡的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地址一致,如果不一致就丢弃。这样,具有广播特性的局域网就实现了一对一的通信了。
php如何实现局域网,局域网中是如何实现一对一通信相关推荐
- vue2.0s中eventBus实现兄弟组件通信
在vue1.0中,组件之间的通信主要通过vm.$dispatch沿着父链向上传播和用vm.$broadcast向下广播来实现.然而在vue2.0中,已经废除了这种用法. vuex加入后,对组件之间的通 ...
- java 线程 condition_Java编程中实现Condition控制线程通信
java中控制线程通信的方法 1.传统的方式:利用synchronized关键字来保证同步,结合wait(),notify(),notifyall()控制线程通信.不灵活. 2.利用condition ...
- STM32与中显串口屏的通信
STM32与中显串口屏的通信 本文将简要介绍STM32单片机和武汉中显串口屏之间的通信实现过程.不过使用大彩.迪文这些公司的串口屏的同学也能参考一下,它们的通信协议好像一样. 注意:我代码用的ardu ...
- html多页面之间如何通信,html5中sharedWorker实现多页面通信代码示例
本篇文章小编给大家分享一下html5中sharedWorker实现多页面通信代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 在没有登录浏览了一 ...
- 中移物联网onenet入门学习笔记2:中移物联的通信格式
中移物联网onenet入门学习笔记2:中移物联的通信格式 中移物联网硬件接入协议:LWM2M协议,EDP协议,MQTT协议,HTTP协议,TCP透传,MODBUS协议,JT/T808协议,RCMP协议 ...
- 在两个TIA博途项目中组态PROFIBUS和PROFINET通信的具体方法
在两个TIA博途项目中组态PROFIBUS和PROFINET通信的具体方法 为了在两个项目间实现S7-1200/S7-1500的通信,要为其中一个CPU创建GSDML文件,然后将其安装在TIA Por ...
- 考虑下行链路的蜂窝网络中存在多个D2D通信对和多个蜂窝用户,它们共享相同的频率资源并且蜂窝用户为主用户
1.仿真预览 2.理论分析 整个仿真一定要有完整的链路结构,波束赋形按照参考要求设计外,其他模块都要有,但可以适当根据理论进行简化,重点是波束赋形部分的matlab程序编写.主要看这部分内容. 具体实 ...
- sql中的参照完整性(一对一,一对多,多对多)
一.参照完整性 参照完整性指的就是多表之间的设计,主要使用外键约束. 多表设计: 一对多.多对多.一对一设计 1.一对多 关联主要语句: constraint cus_ord_fk foreign k ...
- mysql中建立一对多映射_Mybatis中的高级映射一对一、一对多、多对多
学习hibernate的时候,小编已经接触多各种映射,mybatis中映射有到底是如何运转的,今天这篇博文,小编主要来简单的介绍一下mybatis中的高级映射,包括一对一.一对多.多对多,希望多有需要 ...
最新文章
- C++标准库中sstream和strstream的区别
- 在线作图|2分钟绘制一张环状热图
- SpringBoot使用教程【1】Restful API设计 返回json,xml格式...
- 远程桌面上的文件复制到本地
- Redis Sentinel 配置文件
- 广西2021高考成绩位次查询,2020年广西高考一分一段表及高考位次成绩排名查询(理科+文科)...
- 肖仰华 | 基于知识图谱的问答系统
- batchnomal_反向传播之七:BatchNormal层的反向传播
- Android学习之为按钮添加事件监听器的两种方法
- python twisted应用_如何通过Python(而不是通过Twisted)运行Twisted应用程序?
- Session共享的解决方案。
- 数学建模系列-优化模型(三)---排队论模型
- 关于stm32单片机的通讯方式
- 一行代码学会Java--2.用IDEA神器编写“你好,Java”
- yaml-cpp保存标定文件-Node/Emitter
- T00LS MSF笔记
- 14Java第十四次课 五子棋的实现1
- Tekton系列之实践篇-我的第一条Pipeline
- iPhone 12已安装的App显示正在安装处理方法
- python seo cms_巧用帝国CMS系统变量提升网站用户体验 完善SEO优化
热门文章
- WebGIS开发软件安装问题
- 蓝牙秤方案开发需要注意什么?
- Limesdr-USB 基于 Ubuntu18.04 环境建立
- Programming Exercise 7: K-means Clustering and Principal Component Analysis【Maching Learning】
- 大容量电池充放电管理模块MOSFET选型及应用
- zigbee RSSI 定位
- 大专生自学java_大专生自学java如何在3年内学到可以找工作的程度?
- vue 文件上传组件封装
- 别再翻了,面试二叉树看这 11 个就够了~
- 决策树实战:california房价预测