单片机与多个从机通信,轮询方式

2024-05-16 13:28

1. 单片机与多个从机通信,轮询方式

RS485、I2C和SPI不一样。
RS485、I2C通讯协议中包含从机的地址,从机都不主动发送数据,主机发送数据,数据包中包含有从机地址,主机发送的数据,所有从机都接收,主机发送完后,转为接收状态。从机接收到数据包后,检测地址与自己的地址一致,就做应答发送数据。地址不一致,就不处理。所以RS485、I2C总线中的从机地址不能重复。
SPI是通过片选信号实现选择从机,没有被选择的从机,是不结收数据的。

单片机与多个从机通信,轮询方式

2. 485一主多从程序怎么写,要求双向通信。

主机以一定的时间间隔发送询问数据包,在数据包中以一定的数据格式(通信协议)填写,通常包括:起始字符,从机地址,数据,校验字节,结束符等。  各从机处于接收状态,主机发送询问数据包后,立即转换为接收状态,各从机同时接受到主机发来的数据,分析数据包中地址是否与自己地址相同,若不同,则不予应答,仍处于接受状态,若相同,则从机发出应答数据包,(在应答数据包中,同样包含从机地址信息),主机收到应答后,根据地址信息知道这是那个从机发来的数据,处理数据后,主机再询问其它地址的从机,从机则一一应答,从机从主机发来的询问信息中得到主机给它的数据,如此,便实现了多机双向通信。

3. 多机通信系统

2、系统网络协议设计
    拟定网络容量为1台服务机和62台客户机,客户机之间可以相互通信。客户机和服务机之间也可以相互通信。设计的协议考了停止等待协议,数据包参考了IP数据包而设计。
    经过综合分析和优化处理,制定如下单片机多机通信协议。
(1)服务机协议
①服务机按1/384的间隔发送询问数据包;
②将当前询问地址加1,判断,如果大于63则置当前询问地址为1,如果小于1则置当前询问地址为62,转下一步;
③向当前询问地址机器发送一询问数据包;
④等待一个发送间隔时间;
⑤如果没有收到确认包则转到将当前数据包重发,重发计数器加1,计数器大于2则转向⑥;如果收到确认包转到⑦;
⑥设置发送失败标记,重发计数器清0,转到②;
⑦设置发送成功标记,重发计数器清0,转到⑧;
⑧查看被询问客户机是否有数据要发送,有则分配总线使用权和时间片,转到⑨,否则转到②;
⑨等待被询问客户机的发送结束数据包,如果收到转到②。在一个时间片(1/384s)内,没有收到,视为超时。服务机收回总线使用权,转到②。
(2)客户机协议
①接收属于本机的数据包;
②如果是询问数据包,检查本机是否有数据要发送,如果有,则发送"有数据发送信息"到服务机,并捎带确认转到③,否则发送"没有数据发送信息"到服务机,并捎带确认,转到①;其它类型数据包不处理,转到①;
③等待网络资源分配数据包,收到则发送确认包,转到⑤;超时,停止等待转到①;
④等待上一数据包的确认,收到则转到⑤,否则转到⑦;
⑤检查是否还有数据要发送,有则发送数据包转到⑥;否则发送"结束发送信息"到服务机,转到①。
⑥检查是否超时,如果超时结束发送转到①,否则转到④。
⑦重发,是否超过两次,是则当前发送失败,转到⑤,否则转到④。
    因此,每发一数据包都会请求对方的确认,如果没有确认,则会再重发一次,超过两次则被视为对方不可达,发送失败;并且在被询问客户机有数据发送时,如果总线空闲,服务机将分配其使用时间片,在这个时间片内,如果数据未发送完成,服务机将强行收回。能发送完成,客户机要发送结束数据包,归还总线使用权。

3、系统网络拓扑设计
    选用总线型网络拓扑结构,各站直接连在总线上,由服务机统一管理网络总线,分配网络资源。使用类似于令牌总线网的协议,由服务机轮询每一客户机是否有数据发送,如果有分配发送时间,移交总线使用权,否则询问下一客户机;其中接口电路会将所接收到信号中继,并转发。因此网络中任意一台机器所发送的数据对其它机器都是可见的,并且在一定程度上保证了信号的可靠性。
    系统网络拓扑设计如下图所示:



图1 系统网络拓扑设计

4、网络接口电路的功能与设计
(1)网络接口电路的功能
    网络接口电路完成的主要功能如下:①完成网络数据元的接收;②对接收到的数据元转发给其它端口;③多端口机制,端口间相互转发;④提交收到的数据元;⑤中继收到的数据元;⑥提供网络状态信号;⑦各端口之间同构,使用交叉线。
(2)网络接口电路的设计
    为实现上述功能要求,网络接口电路设计时一共采用了四片74HC245芯片,共同承担数据的收发工作,其中每一块芯片对应一个端口。在外表现为三个端口,这是因为有一个端口被本机占用,电路已布置在线路板上。各端口之间用交叉线连接,当检测到收线上有信号时,芯片开始启动工作,将信号分成三路中继出来,一路发给单片机,其它两种发给另外的两个端口。在收方的收收线上如果检测到同样的信号,则进行同样的操作。当单片机向外界发送数据时,就启动对应于单片机收发端口上的芯片,将信号中继后发送给另外的三个端口,并随时检测收线信号的变化,一旦检测到电平信号由高倒低的变化一次,即说明有数据需要接收,接收完后将产生一中断信号,启动处理程序进行处理。
    网络接口电路中设计了网络状态信号BUS,当各芯片都没有工作时,表示网络中没有数据传输,这时BUS经非门电路取反变成低电平,与单片机二号中断引脚相连,单片机可以通过这一引脚撑握网络状态,实现数据包的发送。
    网络接口电路中还设计了指标信号,当收到数据时信号便置高,这时接在信号上的LED发光管将会发光,以表示收到数据。

5、客户机与服务机电路设计
    系统中有客户机和服务机两种不同的电路。将客户机电路和服务机电路整合在一个电路板上,即两种电路用同一块电路板表现出来。
    对于客户机,客户不需要部门控制电路,但其需要编址,故需要地址获取电路。
    对于服务机,它不需要编址,统一固定为65这一地址,故不需要地址获取这一部分电路。服务机担负着整个网络的监管与轮询工作。
    其它电路客户机与服务机均同构,所以不需要做任何修改。
    电路板上,采取不插器件的方式实现两种不同构的电路在同一电路板上实现,大大地压缩开发成本。

6、系统功能模块图
(1) 系统功能:
服务器部分
① 完成网络的轮询,每隔一定时间向网络中的机器发出询问数据包。
② 读取ADC数据,显示当前环境温度
③ 控制一个调风阀,显示电机角度数据
④ 扫描键盘,提供按键控制
⑤ 从网络中收集调风阀信息,智能控制风机的开启
⑥ 控制本实验室照明电路的开、关
⑦ 能够接管网络中任意一台客户机

客户机部分
① 接收服务机的轮询,发送确认数据包
② 读取ADC数据,显示当前环境温度
③ 控制一个调风阀,显示电机角度数据
④ 扫描键盘,提供按键控制
⑤ 读取本机地址
⑥ 接收来自服务器的管理操作

(2)功能划分:
    软件系统采用模块化的方式,每个设备编写一个驱动程序。驱动程序负责驱动其所控制的设备。并向其它程序提供接口,方便其它程序调用,控制设备。
    各个驱动功能划分如下:
① 数码管驱动程序:驱动数据管显示,按指定方式显示数据。
② 键盘驱动程序:动态扫描键盘,判别按键,并避开电路毛刺。
③ 蜂鸣器驱动程序:驱动蜂鸣器安指定方式发声。
④ ADC驱动程序:读取模数转换器数据,并转换为温度数值。
⑤ 串口驱动程序:收发数据包,过滤非本机数据包
    其中还有一个轮询模块,它在时钟的驱动下按一定间隔时间向网络中各台客户机发送询问数据包。如果两次没有收到回应,则视发送数据包失败。并能够向被接管的客户机发送管理数据包。同样也需要确认,超过两次则视为失败。
    系统功能模块图如图2所示。



图2 系统功能模块图

    由图可知,所有的驱动程序都挂靠在时钟中断上,由时钟中断按一定的频率调用这些驱动程序。 

7、小结
    系统设计了一个基于网络控制和管理的控制系统。它将计算机机网络技术和单片机技术进行融合,网络协议设计参考计算机网络中的停止等待协议和TCP/IP协议,但为了更好的适应于单片机处理,优化了数据包的格式和控制方式,大大提高了处理速度和效率。同时,引入帧检测序列,提供数据包的检测机制,提高了网络的可靠性。系统网络拓扑结构采用总线型,网络接口电路采用端口转发的形式,便于扩展且提高了稳定性。此系统设计功能齐全可以通过服务器控制整个网络的所有客户机,监视所有客户机运行情况;系统操作简单,具有一定的经济意义和实用价值。

多机通信系统

4. 多个下位单片机与上位机pc通过串口通信的实现

用PC机与多个51单片机通过RS232进行通讯。

在多机通讯中,要保证主机与所选择的从机实现可靠的通信,必须保证串口具有识别的功能。在串行口控制寄存器SCON中有一位叫做SM2,就是为了多机通讯而设置的控制位。多机通讯的过程可以如下:

1 首先从机初始化,开中断,让其以方式2或3接收(9位异步通讯方式),置位SM2,REN位,允许接收,那么当SM2=1的时候,只有当接收到的第9位数据(RB8)等于1(接收到的为地址帧)的时候,前8位数据送入接收SBUF,置位RI,产生中断。如果接收到的第9位数据位0,则将接收到的数据帧丢弃。

2 此时主机可以先将从机地址发送给各个从机系统,各个从机的串口接收到第9位数据RB8为1,由于SM2=1,置位RI,各个从机相应中断,在中断服务程序中判断主机送来的地址是否与本机地址相符合(这个地址是由软件编写人员自行设定的),若相符,则清零SM2,准备接收数据。若不符,则保持SM2=1.

3 第三步主机开始发送数据帧,此时前面地址相符合的从机,SM2=0,主机发送的数据RB8=0,这样只有SM2=0的相符的从机可以产生接收数据中断,激活中断标志位RI,进入中断服务程序,去接收数据。其他的从机因SM2=1,又RB8=0,不能激活中断标志RI,不能进入中断,则把接收到的数据丢失不做处理。从而保证了这个数据通信的正确性。

程序详见参考资料

5. 交换机通过mac地址进行数据包的交换,路由器通过ip地址进行数据包的交

  .交换机根据收到数据帧中的源MAC地址建立该地址同交换机端口的映射,并将其写入MAC地址表中。
  2.交换机将数据帧中的目的MAC地址同已建立的MAC地址表进行比较,以决定由哪个端口进行转发。
  3.如数据帧中的目的MAC地址不在MAC地址表中,则向所有端口转发。这一过程称为泛洪(flood)。
  4.广播帧和组播帧向所有的端口转发。
  二、交换机的三个主要功能
  学习:以太网交换机了解每一端口相连设备的MAC地址,并将地址同相应的端口映射起来存放在交换机缓存中的MAC地址表中。
  转发/过滤:当一个数据帧的目的地址在MAC地址表中有映射时,它被转发到连接目的节点的端口而不是所有端口(如该数据帧为广播/组播帧则转发至所有端口)。
  消除回路:当交换机包括一个冗余回路时,以太网交换机通过生成树协议避免回路的产生,同时允许存在后备路径。
  三、交换机的工作特性
  1.交换机的每一个端口所连接的网段都是一个独立的冲突域。
  2.交换机所连接的设备仍然在同一个广播域内,也就是说,交换机不隔绝广播(惟一的例外是在配有VLAN的环境中)。
  3.交换机依据帧头的信息进行转发,因此说交换机是工作在数据链路层的网络设备(此处所述交换机仅指传统的二层交换设备)。
  四、交换机的分类
  依照交换机处理帧时不同的操作模式,主要可分为两类:
  存储转发:交换机在转发之前必须接收整个帧,并进行错误校检,如无错误再将这一帧发往目的地址。帧通过交换机的转发时延随帧长度的不同而变化。
  直通式:交换机只要检查到帧头中所包含的目的地址就立即转发该帧,而无需等待帧全部的被接收,也不进行错误校验。由于以太网帧头的长度总是固定的,因此帧通过交换机的转发时延也保持不变。   五、二,三,四层交换机?
  多种理解的说法:
  1.
  二层交换(也称为桥接)是基于硬件的桥接。基于每个末端站点的唯一MAC地址转发数据包。二层交换的高性能可以产生增加各子网主机数量的网络设计。其仍然有桥接所具有的特性和限制。
  三层交换是基于硬件的路由选择。路由器和第三层交换机对数据包交换操作的主要区别在于物理上的实施。
  四层交换的简单定义是:不仅基于MAC(第二层桥接)或源/目的地IP地址(第三层路由选择),同时也基于TCP/UDP应用端口来做出转发决定的能力。其使网络在决定路由时能够区分应用。能够基于具体应用对数据流进行优先级划分。它为基于策略的服务质量技术提供了更加细化的解决方案。提供了一种可以区分应用类型的方法。
  2.
  二层交换机 基于MAC地址
  三层交换机 具有VLAN功能 有交换和路由 ///基于IP,就是网络
  四层交换机 基于端口,就是应用
  3.
  二层交换技术从网桥发展到VLAN(虚拟局域网),在局域网建设和改造中得到了广泛的应用。第二层交换技术是工作在OSI七层网络模型中的第二层,即数据链路层。它按照所接收到数据包的目的MAC地址来进行转发,对于网络层或者高层协议来说是透明的。它不处理网络层的IP地址,不处理高层协议的诸如TCP、UDP的端口地址,它只需要数据包的物理地址即MAC地址,数据交换是靠硬件来实现的,其速度相当快,这是二层交换的一个显著的优点。但是,它不能处理不同IP子网之间的数据交换。传统的路由器可以处理大量的跨越IP子网的数据包,但是它的转发效率比二层低,因此要想利用二层转发效率高这一优点,又要处理三层IP数据包,三层交换技术就诞生了。
  三层交换技术的工作原理
  第三层交换工作在OSI七层网络模型中的第三层即网络层,是利用第三层协议中的IP包的包头信息来对后续数据业务流进行标记,具有同一标记的业务流的后续报文被交换到第二层数据链路层,从而打通源IP地址和目的IP地址之间的一条通路。这条通路经过第二层链路层。有了这条通路,三层交换机就没有必要每次将接收到的数据包进行拆包来判断路由,而是直接将数据包进行转发,将数据流进行交换
  4.
  二层交换技术
  二层交换技术是发展比较成熟,二层交换机属数据链路层设备,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。具体的工作流程如下:
  (1) 当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的;
  (2) 再去读取包头中的目的MAC地址,并在地址表中查找相应的端口;
  (3) 如表中有与这目的MAC地址对应的端口,把数据包直接复制到这端口上;
  (4) 如表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应时,交换机又可以学习一目的MAC地址与哪个端口对应,在下次传送数据时就不再需要对所有端口进行广播了。
  不断的循环这个过程,对于全网的MAC地址信息都可以学习到,二层交换机就是这样建立和维护它自己的地址表。
  从二层交换机的工作原理可以推知以下三点:
  (1) 由于交换机对多数端口的数据进行同时交换,这就要求具有很宽的交换总线带宽,如果二层交换机有N个端口,每个端口的带宽是M,交换机总线带宽超过N×M,那么这交换机就可以实现线速交换;
  (2) 学习端口连接的机器的MAC地址,写入地址表,地址表的大小(一般两种表示方式:一为BEFFER RAM,一为MAC表项数值),地址表大小影响交换机的接入容量;
  (3) 还有一个就是二层交换机一般都含有专门用于处理数据包转发的ASIC (Application specific Integrated Circuit)芯片,因此转发速度可以做到非常快。由于各个厂家采用ASIC不同,直接影响产品性能。
  以上三点也是评判二三层交换机性能优劣的主要技术参数,这一点请大家在考虑设备选型时注意比较。
  (二)路由技术
  路由器工作在OSI模型的第三层---网络层操作,其工作模式与二层交换相似,但路由器工作在第三层,这个区别决定了路由和交换在传递包时使用不同的控制信息,实现功能的方式就不同。工作原理是在路由器的内部也有一个表,这个表所标示的是如果要去某一个地方,下一步应该向那里走,如果能从路由表中找到数据包下一步往那里走,把链路层信息加上转发出去;如果不能知道下一步走向那里,则将此包丢弃,然后返回一个信息交给源地址。
  路由技术实质上来说不过两种功能:决定最优路由和转发数据包。路由表中写入各种信息,由路由算法计算出到达目的地址的最佳路径,然后由相对简单直接的转发机制发送数据包。接受数据的下一台路由器依照相同的工作方式继续转发,依次类推,直到数据包到达目的路由器。
  而路由表的维护,也有两种不同的方式。一种是路由信息的更新,将部分或者全部的路由信息公布出去,路由器通过互相学习路由信息,就掌握了全网的拓扑结构,这一类的路由协议称为距离矢量路由协议;另一种是路由器将自己的链路状态信息进行广播,通过互相学习掌握全网的路由信息,进而计算出最佳的转发路径,这类路由协议称为链路状态路由协议。
  由于路由器需要做大量的路径计算工作,一般处理器的工作能力直接决定其性能的优劣。当然这一判断还是对中低端路由器而言,因为高端路由器往往采用分布式处理系统体系设计。
  (三)三层交换技术
  近年来的对三层技术的宣传,耳朵都能起茧子,到处都在喊三层技术,有人说这是个非常新的技术,也有人说,三层交换嘛,不就是路由器和二层交换机的堆叠,也没有什么新的玩意,事实果真如此吗?下面先来通过一个简单的网络来看看三层交换机的工作过程。
  组网比较简单
  使用IP的设备A------------------------三层交换机------------------------使用IP的设备B
  比如A要给B发送数据,已知目的IP,那么A就用子网掩码取得网络地址,判断目的IP是否与自己在同一网段。
  如果在同一网段,但不知道转发数据所需的MAC地址,A就发送一个ARP请求,B返回其MAC地址,A用此MAC封装数据包并发送给交换机,交换机起用二层交换模块,查找MAC地址表,将数据包转发到相应的端口。
  如果目的IP地址显示不是同一网段的,那么A要实现和B的通讯,在流缓存条目中没有对应MAC地址条目,就将第一个正常数据包发送向一个缺省网关,这个缺省网关一般在操作系统中已经设好,对应第三层路由模块,所以可见对于不是同一子网的数据,最先在MAC表中放的是缺省网关的MAC地址;然后就由三层模块接收到此数据包,查询路由表以确定到达B的路由,将构造一个新的帧头,其中以缺省网关的MAC地址为源MAC地址,以主机B的MAC地址为目的MAC地址。通过一定的识别触发机制,确立主机A与B的MAC地址及转发端口的对应关系,并记录进流缓存条目表,以后的A到B的数据,就直接交由二层交换模块完成。这就通常所说的一次路由多次转发。
  以上就是三层交换机工作过程的简单概括,可以看出三层交换的特点:
  由硬件结合实现数据的高速转发。
  这就不是简单的二层交换机和路由器的叠加,三层路由模块直接叠加在二层交换的高速背板总线上,突破了传统路由器的接口速率限制,速率可达几十Gbit/s。算上背板带宽,这些是三层交换机性能的两个重要参数。
  简洁的路由软件使路由过程简化。
  大部分的数据转发,除了必要的路由选择交由路由软件处理,都是又二层模块高速转发,路由软件大多都是经过处理的高效优化软件,并不是简单照搬路由器中的软件。结论
  二层交换机用于小型的局域网络。这个就不用多言了,在小型局域网中,广播包影响不大,二层交换机的快速交换功能、多个接入端口和低谦价格为小型网络用户提供了很完善的解决方案。
  路由器的优点在于接口类型丰富,支持的三层功能强大,路由能力强大,适合用于大型的网络间的路由,它的优势在于选择最佳路由,负荷分担,链路备份及和其他网络进行路由信息的交换等等路由器所具有功能。
  三层交换机的最重要的功能是加快大型局域网络内部的数据的快速转发,加入路由功能也是为这个目的服务的。如果把大型网络按照部门,地域等等因素划分成一个个小局域网,这将导致大量的网际互访,单纯的使用二层交换机不能实现网际互访;如单纯的使用路由器,由于接口数量有限和路由转发速度慢,将限制网络的速度和网络规模,采用具有路由功能的快速转发的三层交换机就成为首选。
  一般来说,在内网数据流量大,要求快速转发响应的网络中,如全部由三层交换机来做这个工作,会造成三层交换机负担过重,响应速度受影响,将网间的路由交由路由器去完成,充分发挥不同设备的优点,不失为一种好的组网策略,当然,前提是客户的腰包很鼓,不然就退而求其次,让三层交换机也兼为网际互连。
  5.
  第四层交换的一个简单定义是:它是一种功能,它决定传输不仅仅依据MAC地址(第二层网桥)或源/目标IP地址(第三层路由),而且依据TCP/UDP(第四层) 应用端口号。第四层交换功能就象是虚IP,指向物理服务器。它传输的业务服从的协议多种多样,有HTTP、FTP、NFS、Telnet或其他协议。这些业务在物理服务器基础上,需要复杂的载量平衡算法。在IP世界,业务类型由终端TCP或UDP端口地址来决定,在第四层交换中的应用区间则由源端和终端IP地址、TCP和UDP端口共同决定。
  在第四层交换中为每个供搜寻使用的服务器组设立虚IP地址(VIP),每组服务器支持某种应用。在域名服务器(DNS)中存储的每个应用服务器地址是VIP,而不是真实的服务器地址。
  当某用户申请应用时,一个带有目标服务器组的VIP连接请求(例如一个TCP SYN包)发给服务器交换机。服务器交换机在组中选取最好的服务器,将终端地址中的VIP用实际服务器的IP取代,并将连接请求传给服务器。这样,同一区间所有的包由服务器交换机进行映射,在用户和同一服务器间进行传输。
  第四层交换的原理
  OSI模型的第四层是传输层。传输层负责端对端通信,即在网络源和目标系统之间协调通信。在IP协议栈中这是TCP(一种传输协议)和UDP(用户数据包协议)所在的协议层。
  在第四层中,TCP和UDP标题包含端口号(portnumber),它们可以唯一区分每个数据包包含哪些应用协议(例如HTTP、FTP等)。端点系统利用这种信息来区分包中的数据,尤其是端口号使一个接收端计算机系统能够确定它所收到的IP包类型,并把它交给合适的高层软件。端口号和设备IP地址的组合通常称作“插口(socket)”。
  1和255之间的端口号被保留,他们称为“熟知”端口,也就是说,在所有主机TCP/I
  P协议栈实现中,这些端口号是相同的。除了“熟知”端口外,标准UNIX服务分配在256到1024端口范围,定制的应用一般在1024以上分配端口号。
  分配端口号的最近清单可以在RFc1700“Assigned Numbers”上找到。TCP/UDP端
  口号提供的附加信息可以为网络交换机所利用,这是第4层交换的基础。
  “熟知”端口号举例:
  应用协议     端口号
  FTP        20(数据)
  21(控制)
  TELNET    23
  SMTP      25
  HTTP       80
  NNTP      119
  NNMP      16
  162(SNMP traps)
  TCP/UDP端口号提供的附加信息可以为网络交换机所利用,这是第四层交换的基础。
  具有第四层功能的交换机能够起到与服务器相连接的“虚拟IP”(VIP)前端的作用。
  每台服务器和支持单一或通用应用的服务器组都配置一个VIP地址。这个VIP地址被发送出去并在域名系统上注册。
  在发出一个服务请求时,第四层交换机通过判定TCP开始,来识别一次会话的开始。然后它利用复杂的算法来确定处理这个请求的最佳服务器。一旦做出这种决定,交换机就将会话与一个具体的IP地址联系在一起,并用该服务器真正的IP地址来代替服务器上的VIP地址。
  每台第四层交换机都保存一个与被选择的服务器相配的源IP地址以及源TCP 端口相
  关联的连接表。然后第四层交换机向这台服务器转发连接请求。所有后续包在客户机与服务器之间重新影射和转发,直到交换机发现会话为止。
  在使用第四层交换的情况下,接入可以与真正的服务器连接在一起来满足用户制定的规则,诸如使每台服务器上有相等数量的接入或根据不同服务器的容量来分配传输流。

交换机通过mac地址进行数据包的交换,路由器通过ip地址进行数据包的交

6. 某个节点B处于A和C之间,负责转发A和C通讯的数据包,为了防止B缓冲区溢出的方法?

我不知道你是不是想了解以太网的原理听
如果你可以看到这篇技术文章:

以太网侦听的原则和预防

随着计算机网络应用,网络的普及已日益成为生活中不可或缺的工具,但它带来的非法入侵一直威胁着计算机网络系统的安全性。因为以太网的广播,因此,在一个广播域可以侦听所有的数据包。网络监控是一种方法黑客常用。当成功登录到网络上的主机,该主机后获得超级用户的权限,往往在此基础上,并尝试抓住网络登录或其他主机的控制权。而网络监控是最简单,最有效的方法之一,他常常可以很容易地获取信息是很难获得通过其他方法。在网络中,监控效果最好的地方是在网关,路由器,防火墙设备在一类,通常由网络管理员操作。最方便的是在互联网的任何主机,这是大多数黑客的做法上使用以太网。事实上,很多人认为黑客入侵以太网扫描和侦听作为其最基本的步骤和手段,原因是让你想用这种方法他们的密码和其他信息。但在另一方面,我们黑客活动和其他网络犯罪的侦查,取证时,网络监控技术也可以用来获取必要的信息。因此,理解的以太网监控技术,实现方法和预防措施的原理是特别重要的。 ?基本面<BR 

 1以太网络可以收听/>相邻的计算机,终端,外设,内存容量,控制器,显示器和网络连接器用于连接其他网络了这种相互联系与设备共享,信息共享的高速数据通信等。以太网以这种方式工作,因为有很多人在一个大房间,大房间就像一个共享信道,其中每个人都似乎是一台主机。人们说的信息包,在大房间里到处蔓延。当我们谈到一个人在那里所有的人都能听到。一般情况下,只有人们会发生反应,反应的名称相同。其他人都知道该对话的内容,而且还向所有的谈话作出回应。因此,网络监控是用来监视网络的状态,在网络上传输的数据流和信息等。当信息以明文形式在网络上传输,利用技术来攻击监听器并不是一件难事,只要在网络接口设置为监控模式,它可以是在互联网上传输的信息截获层出不穷。 

 1.1广播以太网网络监控

广播以太网通过一根总线和一组总线上的节点在逻辑上的联系。任何节点的数据包是由主机在每个数据包报头的以太网传输媒体共享部分送去传输包含源地址和目的地址。负责经由网络接口(NIC)来检查每一个数据包,如果目的地址是本地发现,在接收到的数据包被传递到上层至下一个处理步骤在网络上的所有节点;如果目的地址是不机,数据包将不处理被丢弃。以太网数据包过滤机制在数据链路层,网络层和传输层。是否在链路层,网络卡驱动程序接收的数据包,以确定目的MAC地址是其自身的MAC地址;在网络层,以确定是否在本地IP地址绑定的目标IP地址,在传输层,例如TCP或UDP层层决定是否在本机的目的端口已经被打开。如果是否定的判定,数据包将被丢弃。 

进行网络数据包通过设置系统,以绕过系统工作作为“混杂模式”的网络监控程序处理机制,直接访问底层网络“听”,第一个网络接口。不管该数据包的目的地址是否是本机可以截获并传递给上位层处理(听只有那些通过他们的网络接口的数据包),通过适当的软件进行进一步分析和处理,能够获得基本的数据包的属性诸如分组类型,分组大小,目的地址,源地址,数据,如用户名,密码,以及所关注内容的内容的实时分析。 

同样,正确使用网络监控技术也可以在入侵发现和跟踪入侵者的位置,以获取有关网络犯罪取证调查进行的违法犯罪行为的重要信息已成为打击网络犯罪的有力工具。工程

 1.2交换式以太网交换机听

不像集线器共享分组模式下,交换机在转发数据包是一对一的,能有效隔离冲突域和广播风暴抑制一代。由此看来,然后交换环境中使用传统的共享式以太网网络监控是不可能的,因为数据包被转发信件,一般的网络监控软件在这个时候可以不听任何其他主机交换环境的宝贵数据。然而,数据包的以太网主机的IP地址内的转移,而不是依靠完成,但关于ARP找到对应的IP地址实施的MAC地址。 ARP协议是不可靠的,无连接的,通常即使主机没有发出一个ARP请求时,将接受发送给他的ARP应答,并回应了MAC和IP的对应关系到自己的ARP缓存。因此,使用ARP协议,安全开关也面临着严峻的考验。 

 1.2.1交换机的缓冲区溢出攻击

开关大多采用存储转发技术,工作,维护MAC地址与端口的映射表,该表记录了每个交换机端口绑定MAC地址。他工作的判别分析的分组寻址和转发了一定期间,发出前被存储在交换机的缓冲区。然而,交换机的缓冲区是有限的。作为具有大量无效的IP数据包包含错误的MAC地址的数据帧给交换机攻击。交换机会收到大量不符合规定的与包装袋的原则,造成交换机处理器繁忙,导致报文转发太晚,导致缓冲区溢出数据包丢失。然后切换回集线器将被广播到所有的端口发送数据包。以这种方式,听众就变得非常容易。 

 1.2.2ARP协议和欺骗

以太网数据包被传输以太网数据包,以及以太网数据包的寻址基于其第一部分的物理地址(MAC地址)。只知道一台主机的逻辑地址(IP地址)不允许内核数据发送给主机,内核必须知道发送数据的目的主机的物理地址。 ARP协议的作用是,将逻辑地址转换成物理地址,不仅32 b将IP地址变成48 b将以太网地址。每个主机都有一个ARP高速缓存,该缓存记录对方IP地址之间的最近对应的MAC地址。如果你想在机器与主机进行通信时,首先要找到这些信息中的IP和MAC的ARP缓存的主机,如果存在的话,直接用此MAC地址的以太网数据包结构,如果没有,那么在网络上每个主机广播一个ARP请求报文。它的意思是“如果你有这样的IP地址,请告诉我你的MAC地址”,目标主机收到这个请求数据包,接收到该响应报文后,发送一个ARP响应数据包,本机,相关信息被记录在ARP缓存中。可以看出,ARP协议是有缺陷的,第三方主机可以构造一个ARP欺骗报文,而源主机不能真假辨别。 

假设A是听主人,B被监控主机,C为其他网络中的主机。当A接收到A发送到C到B的ARP乙请求报文响应一个ARP应答。主动发送到C的响应,C缓存IPMAC对B的映射。当A接收到ARP发送的位C到B的请求,主动发送到B的应答,B到缓存IPMAC映射在长,因此,ARP欺骗数据包(欺骗B到C的连接)的结构。事实上,B剂可能会成为一个捕获所有相关数据B和C。

 

 2检测和预防网络监控网络监控

都很难找到,因为运行网络监视器只是被动的主机收到局域网上传输的信息,不采取与其他信息的主机交换主动权,有一个在数据包的传输网上没有。 

 2.1网络监控检测

(1)在局域网上运行监听程序的机器的主机发送的犯罪嫌疑人非广播一个ARP报文(错误的物理地址),一台主机如果局域网内的ARP响应这一要求,我们可以判断机器是否处于混杂模式。本机是不是在正常的混杂模式,错误的物理地址将不会得到响应。 

(2)网络和主机的响应时间测试。大量向Internet发送的数据包不会在机器处于混杂模式的物理地址的存在,是由于缺乏这种基本的过滤器,因为听众分析和处理大量的数据包会占用大量的CPU资源在网络流量的突然增加会造成机器,这将导致性能退化的一个更显著作用。机器的性能,以确定是否有网络监控前后对比。 

(3)使用反监控工具,如antisniffer其他测试。 

 2.2网络监控网段,防止

 2.2.1 

网络分段通常被认为是控制网络广播风暴的基本手段之一,但其实也很重要,以防止网络监控措施。将网络划分成不同的部分,其目的是未经授权的用户和相互隔离敏感的网络资源,从而防止可能的非法窃听。 

 2.2.2开关,而不是共享LAN集线器

中心交换机网段集线器,危险仍然存在网络监视器。这是因为在接入网络通常是最终用户,而不是轮毂的中心通过分支交换机和最广泛使用的通常是共享的分支毂毂。因此,当与主机的用户数据通信时,两台机器(单播数据包)或之间的数据包将被在同一集线器其他用户监控。而不是交换式集线器因此,应共享式集线器,只有两个节点之间传送使单播数据包,从而防止非法窃听。 

 2.2.3使用数据加密技术

加密后,你仍然可以得到的信息通过听来传输,但显示的是乱码。使用加密技术的缺点是影响数据传输速度以及使用一个弱加密是比较容易折断。 

 2.2.4划分VLAN 

使用VLAN(虚拟局域网)技术,将以太网通信变为点到点通信,VLAN的子网广播风暴隔离可以防止大部分基于网络侦听的入侵,实施了一系列重要安全部门。而当一个部门的物理位置改变,只需将开关设置,可以实现网络的重组,非常方便,快捷,节约成本。为了确保不同部门的稳定性,方便管理和安全,以及运行中的虚拟网络VLAN技术在整个网络可以划分。 

 

 3结束语
网络监控技术在信息安全领域是非常重要的,他是一把双刃剑,总是在扮演着积极和消极方面的作用。对于网络管理员来说,网络监控技术可以用于分析网络性能是否,网络入侵检测中起着重要作用;对于入侵者,网络监控技术可以很容易地得到明文密码和其他机密传送数据。为了保护网络信息安全,网络监控技术必须是反跟踪,对现有网络的时间证明安全状况,掌握了主动权,以保证网络的信息安全。 ?

7. 一个IP地址内有多台电脑,那么如何才能区分数据包是分配哪台计算机的

二层三层四层交换机区别

二层交换技术是发展比较成熟,二层交换机属数据链路层设备,可以识别数据包中的MAC 地

址信息,根据MAC 地址进行转发,并将这些MAC 地址与对应的端口记录在自己内部的一个地

址表中。具体的工作流程如下:

(1) 当交换机从某个端口收到一个数据包,它先读取包头中的源MAC 地址,这样它就知道

源MAC 地址的机器是连在哪个端口上的;

(2) 再去读取包头中的目的MAC 地址,并在地址表中查找相应的端口;

(3) 如表中有与这目的MAC 地址对应的端口,把数据包直接复制到这端口上;

(4) 如表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应

时,交换机又可以学习一目的MAC 地址与哪个端口对应,在下次传送数据时就不再需要对所

有端口进行广播了。

不断的循环这个过程,对于全网的MAC 地址信息都可以学习到,二层交换机就是这样建立和

维护它自己的地址表。

从二层交换机的工作原理可以推知以下三点:

(1) 由于交换机对多数端口的数据进行同时交换,这就要求具有很宽的交换总线带宽,

如果二层交换机有N个端口,每个端口的带宽是M,交换机总线带宽超过N×M,那么这交换

机就可以实现线速交换;

(2) 学习端口连接的机器的MAC 地址,写入地址表,地址表的大小(一般两种表示方式:

一为BEFFER RAM,一为MAC 表项数值),地址表大小影响交换机的接入容量;

(3) 还有一个就是二层交换机一般都含有专门用于处理数据包转发的ASIC (Applicati

on specific Integrated Circuit)芯片,因此转发速度可以做到非常快。由于各个厂家

采用ASIC 不同,直接影响产品性能。

以上三点也是评判二三层交换机性能优劣的主要技术参数,这一点请大家在考虑设备选型

时注意比较。

(二)路由技术

路由器工作在OSI模型的第三层---网络层操作,其工作模式与二层交换相似,但路由器工

作在第三层,这个区别决定了路由和交换在传递包时使用不同的控制信息,实现功能的方

式就不同。工作原理是在路由器的内部也有一个表,这个表所标示的是如果要去某一个地

方,下一步应该向那里走,如果能从路由表中找到数据包下一步往那里走,把链路层信息

加上转发出去;如果不能知道下一步走向那里,则将此包丢弃,然后返回一个信息交给源

地址。

路由技术实质上来说不过两种功能:决定最优路由和转发数据包。路由表中写入各种信息

,由路由算法计算出到达目的地址的最佳路径,然后由相对简单直接的转发机制发送数据

包。接受数据的下一台路由器依照相同的工作方式继续转发,依次类推,直到数据包到达

目的路由器。

而路由表的维护,也有两种不同的方式。一种是路由信息的更新,将部分或者全部的路由

信息公布出去,路由器通过互相学习路由信息,就掌握了全网的拓扑结构,这一类的路由

协议称为距离矢量路由协议;另一种是路由器将自己的链路状态信息进行广播,通过互相

学习掌握全网的路由信息,进而计算出最佳的转发路径,这类路由协议称为链路状态路由

协议。

由于路由器需要做大量的路径计算工作,一般处理器的工作能力直接决定其性能的优劣。

当然这一判断还是对中低端路由器而言,因为高端路由器往往采用分布式处理系统体系设

计。

(三)三层交换技术

近年来的对三层技术的宣传,耳朵都能起茧子,到处都在喊三层技术,有人说这是个非常

新的技术,也有人说,三层交换嘛,不就是路由器和二层交换机的堆叠,也没有什么新的

玩意,事实果真如此吗?下面先来通过一个简单的网络来看看三层交换机的工作过程。

组网比较简单

使用IP 的设备A------------------------三层交换机------------------------使用IP 的

设备B

比如A要给B 发送数据,已知目的IP,那么A就用子网掩码取得网络地址,判断目的IP 是否与

自己在同一网段。

如果在同一网段,但不知道转发数据所需的MAC 地址,A就发送一个ARP请求,B返回其MAC 地

址,A用此MAC 封装数据包并发送给交换机,交换机起用二层交换模块,查找MAC 地址表,将

数据包转发到相应的端口。

如果目的IP 地址显示不是同一网段的,那么A要实现和B的通讯,在流缓存条目中没有对应

MAC 地址条目,就将第一个正常数据包发送向一个缺省网关,这个缺省网关一般在操作系统

中已经设好,对应第三层路由模块,所以可见对于不是同一子网的数据,最先在MAC 表中放

的是缺省网关的MAC 地址;然后就由三层模块接收到此数据包,查询路由表以确定到达B的

路由,将构造一个新的帧头,其中以缺省网关的MAC 地址为源MAC 地址,以主机B 的MAC 地址

为目的MAC 地址。通过一定的识别触发机制,确立主机A与B 的MAC 地址及转发端口的对应关

系,并记录进流缓存条目表,以后的A到B 的数据,就直接交由二层交换模块完成。这就通

常所说的一次路由多次转发。

以上就是三层交换机工作过程的简单概括,可以看出三层交换的特点:

由硬件结合实现数据的高速转发。

这就不是简单的二层交换机和路由器的叠加,三层路由模块直接叠加在二层交换的高速背

板总线上,突破了传统路由器的接口速率限制,速率可达几十Gbit/s。算上背板带宽,这

些是三层交换机性能的两个重要参数。

简洁的路由软件使路由过程简化。

大部分的数据转发,除了必要的路由选择交由路由软件处理,都是又二层模块高速转发,

路由软件大多都是经过处理的高效优化软件,并不是简单照搬路由器中的软件。

结论

二层交换机用于小型的局域网络。这个就不用多言了,在小型局域网中,广播包影响不大

,二层交换机的快速交换功能、多个接入端口和低谦价格为小型网络用户提供了很完善的

解决方案。

路由器的优点在于接口类型丰富,支持的三层功能强大,路由能力强大,适合用于大型的

网络间的路由,它的优势在于选择最佳路由,负荷分担,链路备份及和其他网络进行路由

信息的交换等等路由器所具有功能。

三层交换机的最重要的功能是加快大型局域网络内部的数据的快速转发,加入路由功能也

是为这个目的服务的。如果把大型网络按照部门,地域等等因素划分成一个个小局域网,

这将导致大量的网际互访,单纯的使用二层交换机不能实现网际互访;如单纯的使用路由

器,由于接口数量有限和路由转发速度慢,将限制网络的速度和网络规模,采用具有路由

功能的快速转发的三层交换机就成为首选。

一般来说,在内网数据流量大,要求快速转发响应的网络中,如全部由三层交换机来做这

个工作,会造成三层交换机负担过重,响应速度受影响,将网间的路由交由路由器去完成

,充分发挥不同设备的优点,不失为一种好的组网策略,当然,前提是客户的腰包很鼓,

不然就退而求其次,让三层交换机也兼为网际互连。

第四层交换的一个简单定义是:它是一种功能,它决定传输不仅仅依据MAC 地址(第二层网

桥)或源/目标IP 地址(第三层路由),而且依据TCP/UDP(第四层) 应用端口号。第四层交换功

能就象是虚IP,指向物理服务器。它传输的业务服从的协议多种多样,有HTTP、FTP、NFS

、Telnet或其他协议。这些业务在物理服务器基础上,需要复杂的载量平衡算法。在IP 世

界,业务类型由终端TCP 或UDP 端口地址来决定,在第四层交换中的应用区间则由源端和终

端IP 地址、TCP 和UDP 端口共同决定。

在第四层交换中为每个供搜寻使用的服务器组设立虚IP 地址(VIP),每组服务器支持

某种应用。在域名服务器(DNS)中存储的每个应用服务器地址是VIP,而不是真实的服务

器地址。

当某用户申请应用时,一个带有目标服务器组的VIP 连接请求(例如一个TCP SYN包)发

给服务器交换机。服务器交换机在组中选取最好的服务器,将终端地址中的VIP 用实际服务

器的IP 取代,并将连接请求传给服务器。这样,同一区间所有的包由服务器交换机进行映

射,在用户和同一服务器间进行传输。

第四层交换的原理

OSI模型的第四层是传输层。传输层负责端对端通信,即在网络源和目标系统之间协调

通信。在IP 协议栈中这是TCP(一种传输协议)和UDP(用户数据包协议)所在的协议层。

在第四层中,TCP 和UDP标题包含端口号(portnumber),它们可以唯一区分每个数据包

包含哪些应用协议(例如HTTP、FTP 等)。端点系统利用这种信息来区分包中的数据,尤其

是端口号使一个接收端计算机系统能够确定它所收到的IP 包类型,并把它交给合适的高层

软件。端口号和设备IP 地址的组合通常称作“插口(socket)”。

1和255之间的端口号被保留,他们称为“熟知”端口,也就是说,在所有主机TCP/I

P 协议栈实现中,这些端口号是相同的。除了“熟知”端口外,标准UNIX 服务分配在256到

1024端口范围,定制的应用一般在1024以上分配端口号.

分配端口号的最近清单可以在RFc1700”Assigned Numbers”上找到。TCP/UDP 端

口号提供的附加信息可以为网络交换机所利用,这是第4 层交换的基础。

"熟知"端口号举例:

应用协议 端口号

FTP 20(数据)

21(控制)

TELNET 23

SMTP 25

HTTP 80

NNTP 119

NNMP 16

162(SNMP traps)

TCP/UDP端口号提供的附加信息可以为网络交换机所利用,这是第四层交换的基础。

具有第四层功能的交换机能够起到与服务器相连接的“虚拟IP”(VIP)前端的作用。

每台服务器和支持单一或通用应用的服务器组都配置一个VIP 地址。这个VIP 地址被发送出

去并在域名系统上注册。

在发出一个服务请求时,第四层交换机通过判定TCP 开始,来识别一次会话的开始。然

后它利用复杂的算法来确定处理这个请求的最佳服务器。一旦做出这种决定,交换机就将

会话与一个具体的IP 地址联系在一起,并用该服务器真正的IP 地址来代替服务器上的VIP 地

址。

每台第四层交换机都保存一个与被选择的服务器相配的源IP 地址以及源TCP 端口相

关联的连接表。然后第四层交换机向这台服务器转发连接请求。所有后续包在客户机与服

务器之间重新影射和转发,直到交换机发现会话为止。

在使用第四层交换的情况下,接入可以与真正的服务器连接在一起来满足用户制定的规

则,诸如使每台服务器上有相等数量的接入或根据不同服务器的容量来分配传输流。

如何选用合适的第四层交换

a,速度

为了在企业网中行之有效,第四层交换必须提供与第三层线速路由器可比拟的性能。也

就是说,第四层交换必须在所有端口以全介质速度操作,即使在多个千兆以太网连接上亦

如此。千兆以太网速度等于以每秒1488000 个数据包的最大速度路由(假定最坏的情形,即

所有包为以及网定义的最小尺寸,长64 字节)。

b,服务器容量平衡算法

依据所希望的容量平衡间隔尺寸,第四层交换机将应用分配给服务器的算法有很多种,

有简单的检测环路最近的连接、检测环路时延或检测服务器本身的闭环反馈。在所有的预

测中,闭环反馈提供反映服务器现有业务量的最精确的检测。

c,表容量

应注意的是,进行第四层交换的交换机需要有区分和存贮大量发送表项的能力。交换机

在一个企业网的核心时尤其如此。许多第二/ 三层交换机倾向发送表的大小与网络设备的

数量成正比。对第四层交换机,这个数量必须乘以网络中使用的不同应用协议和会话的数

量。因而发送表的大小随端点设备和应用类型数量的增长而迅速增长。第四层交换机设计

者在设计其产品时需要考虑表的这种增长。大的表容量对制造支持线速发送第四层流量的

高性能交换机至关重要.

d,冗余

第四层交换机内部有支持冗余拓扑结构的功能。在具有双链路的网卡容错连接时,就可

能建立从一个服务器到网卡,链路和服务器交换器的完全冗余系统。

一个IP地址内有多台电脑,那么如何才能区分数据包是分配哪台计算机的

8. 接收到一个从外网发送的数据包,在数据包里包含源发送者的网卡MAC地址吗?

封装后经过节点不会被替换。

正常情况:目标主机接受到的网卡MAC地址就是源(发送的者)的网卡MAC地址。

非常情况:有人用特殊的软件把你的数据包劫持了,修改里面的东西。。。那时候,目标主机接收到的网卡MAC地址还是不是源(发送的者)的网卡MAC地址由别人决定。
基本上,这个非常情况。。。还真不容易发生。。。