效卫投屏

  • 官网首页
  • 演示视频
  • 产品手册
  • 立即下载
  • 联系我们
Skip to content

网络中的集线器的工作原理

01网络通信前面小哥跟大家介绍了在Linux平台的的UDP和TCP的多线程编程等等,采用的编程模型一般是客户端与服务器模型(C/S模型)。而前面的知识只是学习了一台主机到另外一台主机的通信过程,或者说应用程序之间的通信,而实际报文是如何通过交换器或者路由器进行传递的呢?如上图所示,是一种常见的网络拓扑形式,主机通过交换器,再经过路由器等最终可以访问到右侧服务器。那么从今天小哥就跟大家一步一步讲解这中间的一些过程。当然在学习的过程中,一般不太可能在现实环境中搭建这样的平台,如果你有这样的条件也是可以的,通过抓包工具进行测验学习。但是更加方便的是使用一些网络的仿真工具进行测试、仿真所搭建的网络拓扑和通信,比如常用的PacketTracer工具等。

02集线器Hub如下是集线器常用的拓扑形式:集线器可把多台主机互联到同一网段的网络中,具体集线器是如何工作的,我们以PC1 ping PC2为例讲解该过程,从而解释集线器的工作内容。PC1 ping PC2PC1使用ping命令主要采用ICMP网络控制报文协议向PC2发送报文,而ICMP在IP层之上,可以认为其也在网络层。那么当网络层的报文发往链路层,其需要通过目的主机IP获得对应的目的主机mac地址,而每个主机都有自己的一张arp表,即目的IP地址与mac地址映射的表格,在windows的cmd命令栏中可以输出arp -a进行该表的查询。在首次通信的过程中并没有对应的映射数据的存在,所以当ICMP报文下发到链路层以后,其在对应的arp表中无法寻找到目的主机对应的mac地址。(注意 : ICMP报文发请求和应答都是单播)为了获得目的主机的mac地址,链路层会使用arp协议(也叫地址解析协议)进行广播获得对应的mac地址,目的主机ip地址相同的主机会进行单播应答,其他主机会丢弃,从而更新本主机的arp表,以便后续使用。小知识:上图的时间表示的是网络延时,因为回复和发送都需要传输时间;TTL表示生命周期,一把是64或者128,单向每经过一个路由器其TTL数值会减1,如果TTL在传输过程中降为0了就会被丢弃。

03集线器Hub工作原理从上面的通信过程我们可以知道,通过集线器发出的数据均为转发到连接在集线器上的其他设备上。但需要注意的是:1、其不是广播,而仅仅只是一种转发,其转发的数据目的mac并不是8个FF。

2、集线器其工作在物理层,并且是共享带宽,如下图所示:由于集线器是工作在物理层,几乎是无条件转发数据,所以每个设备会平分集线器的带宽,比如40M的带宽,那么4台主机,每台主机的带宽就只有1/4=10M。

3、功率放大功能,网络数据的传输都是会被衰减的,那么集线器为了更好的转发,集线器会使用自身电源来对传输的数据进行处理,从而使得更加稳定的传输。