(原创)理解主机设备(PLC,PC机)之间的以太网通信
主机设备:PC机,PLC
网络设备:家用路由器
局域网包括了有线局域网和无线局域网(WIFI)。怎么去使用2者?
网络设备的职责最终目的为了帮助2台主机的数据传输。路由器,交换机范围不同,目的相同。在局域网就是交换机的应用。在广域网就是路由器的应用。目的都是使2台主机的通信,数据传输正常完成。在局域网,范围就1个。所以,局域网内的2台计算机需要通信就靠交换机就可以完成。交换机会保存所有连接在自己上面的所有主机的MAC地址。所有的通信数据包中都有源MAC地址,目标MAC地址。源IP地址,目标IP地址。交换机能识别所有的数据包中的源MAC地址,目标MAC地址,所以可以快速建立2台主机的通信。当范围不再是局域网,是广域网,这时,路由器就上场了,由于所有的数据包中都有源IP地址,目标IP地址。这样就可以向外与远程的对方主机建立通信。
一说到主机之间通信,就要想到数据包中的4个地址:源MAC地址,目标MAC地址,源IP地址,目标IP地址
一说到数据包,你就要想到它是主机产生的7层ISO网络模型的完整数据。
一说到集线器,你就要想到它是纯粹的电气连接设备,没有分析能力,只是单纯地把各个主机电气连接起来。
一说到交换机,你就要想到局域网和主机MAC地址,以及交换机能分析和保存MAC地址的能力。交换机包含了集线器功能。
一说到路由器,你就要想到广域网和主机IP地址,以及分析IP地址的能力。家用路由器包含了交换机和集线器功能。
要理解的是网络设备的工作目的。它们是帮助的角色,2台主机双方需要传输数据,这些数据才是你的核心。路由器,交换机就是帮助2台主机之间顺利完成通信的。
主机产生的数据包是1个完整的ISO7层模型的结果。数据从7654321一路下来,数据包从7开始一直下到1,数据包会在每一层都进行对应协议的封装。所以,1个数据包的长度:7是最小的,1是最多的。除了顶层7,每一层都包括所有上层的所有内容。虽然2台主机在局域网内通信。你会奇怪在局域网内为什么还要设置IP地址?例如电脑要与PLC在同一网段才能进行通信。
解析:数据包是7层模型的完整数据,2台局域网主机彼此之间都能这样产生数据包的。而且,数据包的数据一定是会到达对方主机的最顶层。网络设备不管是路由器(3层设备),交换机(2层设备),集线器(1层设备),它们只是底3层设备,只是辅助你的数据包到达主机。在局域网中,交换机因为连接了所有主机,源主机发的数据包有7层,通过最低层(1层)发送到交换机的1层,交换机1层得到数据后,提到2层,得到数据包的MAC地址,交换机根据MAC地址发送数据包到目标主机,目标主机收到后一路上传到顶层,传输完成,顶层得到的数据是整个数据包的中间部分。整个过程,在交换机这里,数据包的最外层是被交换机使用到的,它就靠最外层来传送数据的。
(原创)理解主机设备(PLC,PC机)之间的以太网通信的更多相关文章
- 建立开发板与PC机之间的nfs服务器
ARM开发板与PC通过NFS 网络文件系统挂接,很方便文件的移动,也为我们的开发带来了方便.接下来,我就详细的介绍下如何建立ARM与PC机的挂接. 我是用的UBuntu系统. 首先,我们需要在主机上安 ...
- 通过路由器的IP映射来解决,两个不同IP地址的PC机之间的从LAN口到WAN口的单向通讯问题
1.问题假设: 在B机中IP地址与子网掩码都固定,网关是路由器的LAN口的IP地址,我们希望通过路由器来实现B机与A机之间的单向通讯问题,也就是说B可以ping通A且可以访问A提供的FTP站点. 2. ...
- (原创)如何搭建PLC+上位机监控系统达到成本的最小化?
以西门子PLC举例; 西门子PLC有几个型号:S7-200SMART,S7-1200,S7-300,S7-400,S7-1500,价格从低到高. 1个项目中要求的IO数量:600点的DI+DO,若干个 ...
- 上位机开发之三菱FX3U以太网通信实践
上次跟大家介绍了一下上位机与三菱Q系列PLC通信的案例,大家可以通过点击这篇文章:上位机开发之三菱Q系列PLC通信实践(←戳这里) 今天以三菱FX3U PLC为例,跟大家介绍一下,如何实现上位机与其之 ...
- 虚拟机 开发板 PC机 三者之间不能ping通的各种原因分析
这个问题事实上也相对照较简单.可是非常多网友都给我发消息说 遇到不能ping,每一个人都得回答一次确实显得心有余而力不足.如今我对遇到这几种问题给出最完整的解决方式. (说实话基本上也仅仅要这几种可能 ...
- 开发板-PC机(宿主机)-虚拟机(VM)之间网络通信设置方法及须要注意的问题
1.不使用路由器交换机 硬件连接: 使用网线将开发板和PC机相连 串口线将PC机和开发板相连 使用命令: ifconfig -a 串口控制端查看开发板的网络配置 route -n 串口控制端查看开发板 ...
- 组建自己的局域网(可以将PC机实现为服务器)
最近想要自己组建一个集群,并且可以通过外网访问,查了好些资料,终于成功了! 设备清单:笔记本1:(4g内存,500g硬盘),笔记本2:(12g内存,120g固态硬盘) (笔记本2上装有5台虚拟机,操作 ...
- Android设备之间通过Wifi通信
之前写过PC与Android之间通过WIFI通信(通过Socket,可以在博客里面搜索),PC作为主机,Android作为客户机,现在手头有一台仪器通过wifi传输数据,如果仪器作为主机发射WIFI热 ...
- 家用PC机打造VSphere5.1 测试环境:之部署VCenter Server 5.1
家用PC机打造VSphere5.1 测试环境前言:实践出真知,同样学习VMware VSphere 的朋友,也需要不断的测试总结,再测试再总结只有不断的积累才能学好,但是动辄几万的服务器不是所有朋友都 ...
随机推荐
- CentOS6.7编译安装mysql5.6
可能因为有各种情况,无法通过yum安装mysql,这里记录一下编译安装的简单步骤 使用yum安装一些依赖 yum -y install make gcc-c++ cmake bison-devel ...
- django crm2
1.模糊查询 由于Q的可以传递字符串属性,可以进行拼接__contains 进行搜索 2.未报名筛选,未报名的存储在models的 enroll_status_choices中,存储的是 enroll ...
- 异步HttpClient大量请求
由于项目中有用到HttpClient异步发送大量http请求,所以做已记录 思路:使用HttpClient连接池,多线程 public class HttpAsyncClient { private ...
- SpringBoot——配置文件详解【五】
前言 SpringBoot的配置文件 配置文件 SpringBoot使用一个全局的配置文件,配置文件名是固定的. application.properties application.yml 配置文件 ...
- Python基础之函数定义及文件修改
函数 函数的定义 #登录函数和注册函数 def register(): """注册函数""" username = input('请输入你的 ...
- 数据库: 安装配置数据库,使用Navicat for MySQL和手机APP 连接测试(如果上一节碰到问题可参考这一节)
咱就安装上 还有这个 最终测试请参考上一节 启动MySQL服务主要有以下两种方法: 第一种: 在搜索框中输入“services,msc” ,en ...
- [RN] React Native 获取地理位置
React Native 获取地理位置 实现原理: 1.用 navigator.geolocation.getCurrentPosition 获取到坐标信息 2.调用 高德地图 接口,解析位置数据 ...
- Flask常用实列化参数
Flask中实列化配置: app = Flask( __name__, template_folder=’temp’ , ...... ) >template_folder = "te ...
- ORA-01589错误的解决办法
出现下图错误 使用下面解决办法,首先输入下面第一个箭头的语句,然后会弹出一个等待光标,接下来就是找到最新的那个REMOD0X.LOG文件地址,也就是第二个箭头所示. 再输入下面图片第一个箭头的语句.
- 关于组件--React
组件按照页面结构可以分成,头部.底部.内容部分.这样就可以写三个组件. 组件内部还可以包含下一级组件, 比如头部,可以包含登录,注册等组件. 底部 可以 包含一些链接等. 内容部分可以包含表单组件.按 ...