当前位置:   article > 正文

《网络是怎样连接的》第三章 集线器,交换机,路由器_集线器会转发到输入端口吗

集线器会转发到输入端口吗
3.1 信号在网线和集线器中传输
  • 1

3.1.1 每个包都是独立传输的

从计算机发送出来的网络包会通过集线器,路由器等设备进行转发,最终到达目的地。转发设备会根据包头部中的控制信息,在转发设备内部一个写有转发规则的表中进行查询,以此来判断包的目的地,然后将包朝目的地的方向进行转发

转发设备在进行转发时不看数据的内容,因此无论包里装的是应用程序数据或者TCP协议控制信息,都不会影响包的传输操作本身。所有的包在传输到目的地的过程中都是独立的,相互间没有任何关联

网络包从客户端计算机出发后,要经过集线器,交换机和路由器最终进入互联网:
在这里插入图片描述

3.1.2 防止网线中的信号衰减很重要

网卡中的PHY/MAU模块负责将包转换成电信号,信号通过RJ-45接口进入双绞线,以太网的本质是正负变化的电压,网卡的PHY/MAU模块就是一个从正负两个信号端子输出信号的电路

信号会通过网线到达集线器的接口,这个过程就是单纯地传输电信号。但是信号到达集线器的时候并不是和刚发出去一摸一样,集线器收到的信号有时候会发生衰减,信号在网线的传输过程中,能量会逐渐损失,网线越长,信号衰减越严重

即便线路的条件很好,没有噪声,信号在传输过程中依然会发生失真,如果再加上噪声的影响,失真就会更厉害。如果本来衰减的信号再进一步失真,就会出现对1和0的误判,这就是产生通信错误的原因

3.1.3 ‘双绞’是为了抑制噪声

局域网网线使用的是双绞线,‘双绞’的意思就是以两根信号线为一组缠绕在一起,这种拧麻花一样的设计是为了抑制噪声的影响。

产生噪声的影响是由于网线周围的电磁波,当电磁波接触到金属等导体时,其中就会产生电流,由于信号本身也是一种带有电压变化的电流,其本质和噪声产生的电流是一样的,所以信号和噪声的电流就会混杂在一起,导致信号的波形发生失真,这就是噪声的影响

信号线是金属做的,当电磁波接触到信号线时,会沿电磁波传播的方向右旋方向产生电流,这种电流导致波形失真,如果将信号线缠绕在一起,信号线就变成了螺旋形,其中两根信号线中产生的噪声电流方向就会相反,从而使得噪声电流互相抵消,抑制了噪声

通过将信号线缠绕在一起的方式,噪声得到了抑制,从结果来看提升了网线的性能,还有其他一些工艺可以提高性能,如在信号线之间加入隔板保持距离,以及在外面包裹可阻挡电磁波的金属屏蔽网等,网线的性能是以来区分的

3.1.4 集线器将信号发往所有线路

当信号到达集线器后,会被广播到整个网络中,以太网的基本架构就是将包转发到所有的设备,然后设备根据接收方MAC地址来判断应该接收哪些包

通过集线器后,信号从所有接口流出,到达连接在集线器上的所有设备,然后这些设备在收到信号后会通过MAC头部中的接收方MAC地址判断是不是发给自己的,如果时发给自己的就接收,否则就忽略,这样网络包就会到达指定MAC地址的接收方了

由于集线器只是原封不动地将信号广播出去,所以即便信号受到噪声地干扰发生了失真,也会原样发送到目的地。这时,接收信号的设备,交换机,路由器,服务器等,会将信号转换成数字信息后通过FCS校验检查错误,将出错的包丢失

现在基本不使用集线器,直接用交换机将终端和路由器相连

3.2 交换机的包转发操作
  • 1

3.2.1 交换机根据地址表进行转发

交换机的设计是将网络包原样的转发到目的地。首先,信号到达网线接口,并由PHY/MAU模块进行接收,接下来PHY/MAU模块将网线中的信号转换成通用格式,然后传递给MAC模块
MAC模块将信号转换为数字信息,然后通过包末尾的FCS校验错误,如果没问题放入缓冲区中。可以认位每个网线接口后面都是一块网卡,网线接口和后面的电路加在一起称为一个端口,即交换机的每一个端口就是相当于计算机的一个网卡,但交换机端口的MAC模块并没有MAC地址

将包放入缓冲区后,接下来需要查询一下这个包的接收方MAC地址是否在MAC地址表中有记录了。MAC地址和端口是一一对应的,通过这张表就可以查到收到的包应该转发到哪个端口,交换电路将包运输到它由表查询到的发送端口

当网络包通过交换电路到达发送端口时,端口中的MAC模块和PHY/MAU模块会执行发送操作,将信号发送到网线中。过去使用集线器时,交换机需要使用半双工模式,现在使用交换机直接连接终端和路由器,使用全双工模式
在这里插入图片描述

3.2.2 MAC地址表的维护

交换机在转发包的过程中,还需要对MAC地址表的内容进行维护,分为两种维护方法:
1,收到包时,将发送方MAC地址以及其输入端口的号码写入MAC地址表中,以后收到发往这个地址的包时,交换机就可以将它转发到正确的端口。交换机每次收到包时都会执行这个操作,因此只要某个设备发送过网络包,它的MAC地址就会被记录到地址表中

2,删除地址表中某条记录的操作,这是为了防止设备移动时产生问题。地址表中的记录不能永久有效,而是要在一段时间不适用后自动删除。过时记录从地址表中删除的时间一般为几分钟

总之,交换机会自行更新或删除地址表中的记录,不需要手动维护,当地址表的内容出现异常时,只需重启一下交换机就可重置地址表

3.2.3 特殊操作

交换机在遇到特殊情况下会有特殊的操作:
1,交换机查询了地址表后发现记录中的目标端口和这个包的源端口是同一个端口,当交换机发现一个包要发回源端口时,会直接丢弃

2,地址表中找不到指定的MAC地址,这可能是因为具有该地址的设备还没有向交换机发送过包,或者这个设备一段时间没有工作导致其地址被从地址表中删除,这种情况下,交换机将包转发到除了源端口之外的所有端口上

如果接收方MAC地址是一个广播地址,那么交换机会将包发送到除了源端口之外的所有端口

广播地址:一种特殊的地址,将广播地址设置为接收方地址时,包会发送到网络中的所有设备,MAC地址中的FF:FF:FF:FF:FF:FF和IP地址中的255. 255. 255. 255 都是广播地址

3.2.4 全双工模式

全双工模式是交换机特有的工作模式,它可以同时进行发送和接收操作,集线器不具备这样的特征。过去使用集线器时,如果多台计算机发送信号,信号会在集线器内部混杂在一起,进而无法使用,这种现象称为碰撞,不过不用集线器,就不会发生碰撞

使用双绞线时,发送和接收的信号线是各自独立的,因此在双绞线中不会发生碰撞。如果不存在碰撞,就不需要半双工模式中的碰撞处理机制,使用全双工模式让发送和接收可以同时进行。

全双工模式下,无需等待其它信号结束就可以发送信号,因此它比半双工模式速度更快,由于双方可以同时发送数据,所以可同时传输的数据量更大,性能也就更高

3.2.5 自动协商:确定最优的传输速率

随着全双工模式的出现,半双工和全双工设备同时存在,为了彼此协同完成任务,出现了自动切换工作模式的功能。这一功能可以由互相连接的双方探测对方是否支持全双工模式,并自动切换相应的工作模式。除了能自动切换工作模式外,还能探测对方的传输速度并自动切换,这种自动切换的功能称为自动协商

在以太网中,当没有数据在传输时,网络中会填充一种被称为连接脉冲的脉冲信号。在没有数据信号时就填充连接脉冲,这使得网络中一直都有一定的信号流过,从而检测对方是否在正常工作,或者说网线有没有正常连接

自动协商利用这样的脉冲信号,通过这种脉冲信号将自己能够支持的工作模式和传输速率相互告诉对方,并从中选出一个最优的组合

3.2.6 交换机可同时执行多个转发操作

交换机只将包转发到具有特定MAC地址的设备连接的端口,其它端口都是空闲的。当包从最上面的端口发送到最下面的端口时,其它端口处于空闲状态,这些端口可以传输其它的包,因此交换机可以同时转发多个包

相对的,集线器会将输入的信号广播到所有的端口,如果同时输入多个信号就会发生碰撞,无法同时传输多路信号,因此从设备整体的转发能力来看,交换机要优于集线器

3.3 路由器的包转发操作
  • 1

3.3.1 路由器的基本知识

网络包经过集线器和交换机后,到达了路由器,并在此被转发到下一个路由器,这一步与交换机类似,通过查询路由表来判断包转发的目标。不过在具体操作中存在差别,因为路由器是基于IP设计的,交换机是基于以太网设计的
在这里插入图片描述
路由器包括转发模块和端口模块两部分,转发模块负责判断包的转发目的地,端口模块负责包的收发操作。路由器转发模块和端口模块的关系就类似于协议栈的IP模块和网卡之间的关系

通过更换网卡,计算机不仅可以支持以太网,也可以支持无线局域网,路由器也是一样,如果路由器的端口模块安装了支持无线局域网的硬件,就可以支持无线局域网了,路由器的端口模块支持除局域网外的多种通信技术,如ADSL,FTTH以及各种宽带专线等,只要端口模块安装了支持这些技术的硬件即可

路由器在转发包时,首先会通过端口将发过来的包接收进来,这一步的工作过程取决于端口对应的通信技术,对以太网端口来说,就是按照以太网规范进行工作。总之就是委托端口的硬件将包接收进来

接下来,转发模块会根据接收到的包的IP头部中的记录的接收方IP地址,在路由表中进行查询,以此判断转发目标。然后转发模块将包转移到转发目标对应的端口,端口再按照硬件的规则将包发送出去,即转发模块委托端口模块将包送出去

路由器端口会接收发给自己的包,然后查询转发目标,再由相应的端口作为发送方将以太网包发送出去。这一点与交换机不同,交换机只是将进来的包转发出去而已,它自己不会成为接收方或发送方,而路由器只接收向它传递来的包

3.3.2 路由表中的信息

在‘查表判断转发目标’这一点上,路由器和交换机的大体思路类似,但具体不同。交换机通过MAC头部中的接收方MAC地址判断转发目标的,而路由器则根据IP头部中的IP地址来判断

路由器会将接收到的网络号的接收方IP地址与路由表中的目标地址进行比较,并找到相应记录。交换机在地址表中只匹配完全一致的记录,而路由器会忽略主机号部分,只匹配网络号部分。即路由器在转发时只看接收方地址属于哪个区

在这里插入图片描述
路由表的子网掩码列只是用来匹配目标地址时告诉路由器应该匹配多少个比特,而且目标地址中的地址和实际子网的网络号可能并不完全相同,但路由器仍然可以正常工作

根据目标地址和子网掩码匹配到某条记录后,路由器就会将网络包交给接口列中指定的网络接口(端口),并转发到网关列中指定IP地址。跃点数表示距离目标IP地址的距离是远是近,数字越小,距离越近

路由表记录和维护和交换机也有所不同,交换机中对MAC地址表的维护是包转发操作中的一个步骤,而路由器中对路由表的维护是与包转发操作相互独立的,即在转发包的过程中不需要对路由表的内容进行维护。路由表的维护大体分两类:1,人手工维护路由记录,2,根据路由协议机制,通过路由器之间的信息交换由路由器自行维护

3.3.3 路由器的包接收操作

1,信号到达网线接口部分,其中的PHY/MAU模块和MAC模块将信号转换成数字信息
2,通过包末尾的FCS进行错误校验
3,错误校验通过后,检查MAC头部中接收方的MAC地址,看看是不是发给自己的包
4,是向自己发送的包,则放到缓冲区,不是则丢弃

3.3.4 查询路由表确定输出端口

完成包接收操作之后,路由器就会丢弃包开头的MAC头部。通过路由器转发的网络包,其接收方地址为接收路由器端口的MAC地址

路由器会根据MAC头部后方的IP头部中的内容进行包的转发操作,首先查询路由表判断转发目标,在实际转发中需要遵循:
路由器根据子网掩码列中的值判断网络号的比特数,并匹配相应数量的比特,按照这个规则,可能会匹配到多条候选记录,这时采用最长匹配原则,即网络号比特数越长,说明主机号比特数越短,子网内可分配的主机越少,这样就缩小了范围。有时存在多条网络号长度相同的记录,这时需要根据跃点数的值进行判断,选择跃点数值小的进行转发

3.3.5 找不到匹配路由时选择默认路由

如果找不到匹配路由时,路由器通过默认匹配到了0.0.0.0的子网掩码,即任何IP地址都可以匹配,在这一条记录的网关中填写接入互联网的路由器地址,当匹配不到其他路由时,网络包就会被转发到互联网接入路由器,因此这条记录被称为默认路由,这一行配置的网关被称为默认网关

3.3.6 包的有效期

从路由表中查找到转发目标之后,网络包就会被转交给输出端口,并最终发送出去,但路由器还需要更新IP地址头部中的TTL 生存时间字段。

TTL字段表示包的有效期,每经过一个路由器的转发,这个值就会减1,当这个值变为0时,就表示超过了有效期,这个包就会被丢弃。这个机制是为了防止包在一个地方陷入死循环,发送方在发送包时会将TTL设为64或128,现在互联网即便访问地球另一侧的服务器,最多只需要经过几十个路由器,因此只要包被正确转发,就可以在过期之前到达目的地

3.3.7 通过分片功能拆分大网络包

路由器的端口并不只有以太网一种,也可以支持其它局域网或专线通信技术。不同线路和局域网类型各自能传输的最大包长度也不同,因此输出端口的最大包长度可能会小于输入端口。遇到这种情况,就可以使用IP协议中定义的分片功能对包进行拆分,缩短每个包的长度

TCP拆分数据的操纵是在将数据装到包之前进行的,拆分好的数据块正好装进一个包里。而IP分片是对一个完整的包进行再拆分的过程。

在这里插入图片描述
在分片之前,需要查询一下IP头部的标志字段,确认是否可以分片,如果发现不可以,则丢弃这个包,并通过ICMP 控制报文协议消息通知发送方。否则就按照输出端口MTU对数据进行依次分片,分片中,TCP及后面的部分都是可以分片的数据。数据被拆分后,每一份前面加上IP头部,其中大部分内容与原先相同,但有些关于记录分片的字段需要更新

3.3.8 路由器的发送操作和计算机相同

包的发送取决于输出端口的类型,如果是以太网端口,则按照以太网的规则将包转换成电信号发送出去。其基本过程和协议栈中的IP模块发送包的过程是相同的,即在包前面加上MAC头部,设置其中的一些字段,然后将完成的包转换成电信号并发送出去

为了判断MAC头部中的MAC地址应该填写什么值,需要根据路由表的网关列判断对方的地址,如果网关是一个IP地址,则这个IP地址就是我们要转发到的目标地址。如果网关为空,则IP头部中的接收方IP地址就是我们要转发到的目标地址。知道对方IP地址后,接下来需要通过ARP查询MAC地址,并将结果作为接收方MAC地址。路由器也有ARP缓存,因此会先在ARP缓存中查询,如果找不到再发送ARP查询请求

接下来是发送方MAC地址,这里填写路由器输出端口的MAC地址,还有一个以太类型字段。网络包完成后,接下来会将其转换成电信号并通过端口发送出去。如果输出端口是以太网,则发送出去的网络包会通过交换机到达下一个路由器。由于接收方MAC地址就是下一个路由器的地址,所以交换机根据这一地址将包传输到下一个路由器,经过层层转发网络包就到达了最终目的地

3.3.9 路由器和交换机的关系

IP协议本身没有传输包的功能,因此包的实际传输要委托以太网进行,路由器是基于IP设计的,而交换机是基于以太网设计的,路由器将包的传输工作委托给交换机来进行

IP(路由器)负责将包发送给通信对象这一整体过程,而其中将包传输到下一个路由器的过程则是由以太网(交换机)来负责的

IP本身并不负责包的传输,而是委托各种通信技术将包传输到下一个路由器,这样的设计可以灵活运用各种通信技术,这也是IP的最大优点

3.4 路由器的附加功能
  • 1

3.4.1 通过地址转换有效利用IP地址

现在路由器除了基本的功能外,还有一些附加功能,最为重要的是地址转换包过滤

所谓地址就是用来识别每一台的标志,因此每台设备都应该有一个唯一的不重复的地址。当公司接入互联网时,应该向地址管理机构申请IP地址,并将它们分配给公司里的每台设备,之前的所有客户端都是直接连接到互联网的。但20世纪90年代后,互联网广泛普及,接入互联网的设备也快速增长。如果用原来的方法接入,过不了不多久,可分配的地址就用光了。如果不能保证每台设备有唯一不重复的地址,就会从根本上影响网络包的传输,物联网无法正常发展

为了解决这个问题,提出了固定地址的分配方式。假如有A,B两家公司,它们的内网是完全独立的,这种情况下,两家公司的内网之间不会有网络包流动,即使A公司和B公司某设备有相同的IP地址也没关系,因为它们不会进行通信,只要每个公司的网络是相互独立的,就不会出现问题

公司内部设备的地址不一定要和其它公司不重复,这样公司内部设备就不需要分配固定地址,从而节省了大量IP地址,但即使是内网,也不可以随便分配地址,需要设置一定的规则,规定某些地址是用于内网的,这些叫做私有地址,而原来的固定地址叫做公有地址

私有地址并没有什么特殊的结构,只不过是将公有地址还没分配的一部分拿出来规定只能在内网中使用。这个范围内的地址和其它公司重复也没关系,所以对这些地址不做统一管理,不需要申请,任何人都可以使用。但公司内网中有重复的内网地址就无法传输网络包了,因此需要避免在内网中出现重复的地址,如果很多地方都出现相同的地址,包就无法正确传输

在这里插入图片描述
将公司内网分成两个部分,一部分对互联网开放的服务器,另一部分是公司内部设备。其中对互联网开放的部分分配公有地址,可以和互联网直接通信,而内网则分配私有地址,内网中的设备则不能和互联网直接收发网络包,而是通过一种特别的机制进行连接,这个机制就叫做地址转换

3.4.2 地址转换的基本原理

地址转换的基本原理是在转发网络包时对IP头部中的IP地址和端口号进行改写(此处端口号是 TCP和UDP的端口号)

当第一个包被转发到互联网时,将发送方IP地址从公有地址改写成私有地址。这里使用的公有地址是**地址转换设备(路由器,防火墙)**的互联网接入端口的地址。于此同时,端口号也需要进行改写,地址转换设备会随机选择一个空闲的端口,然后改写前的私有地址和端口号,以及改写后的公有地址和端口号,会作为一组相对应的记录保存在地址转换设备内部的一张表中
在这里插入图片描述
改写发送方的IP地址和端口号后,包就会被发到互联网,最终到达服务器,然后服务器会返回一个包,返回包的接收方是改写后的公有地址和端口号。这个公有地址就是地址转换设备的地址,然后地址转换设备从对应表中查到对应的私有地址和端口号,并改写接收方信息,然后将包发给公司内网,这样包就能够到达原始的发送方

当数据收发结束后,进入断开阶段,访问互联网的操作全部完成后,对应表中的记录就会被删除

3.4.3 改写端口号的原因

早期的地址转换机制只改写地址,不改写端口号,所以有多少台设备要上网,就要有多少个公有地址,公司人数一多,就需要大量的公有地址

为了改善这种状况,采用同时改写地址和端口号。客户端的端口号本来就是从空闲端口随机选择的,端口号是一个16比特的数值,可以分配出几万个端口号。因此使用公有地址加上端口的组合对应一个私有地址,一个公有地址就可以对应几万个私有地址,这种方法提高了公有地址的利用率

3.4.4 从互联网访问公司内网

对于从公司内访问互联网的包,即便其发送方私有地址和端口号没有保存在对应表中也是可以正常转发的,因为用来改写的公有地址就是地址转换设备自身的地址,端口号只需要随便选一个空闲的端口就好了。然而,对于从互联网访问公司内网的包,如果对应表中没有记录就无法正常转发。因为如果对应表中没有记录,就意味着地址转换设备无法判断公有地址与私有地址间的对应关系

没有在访问互联网的内网设备,是无法从互联网向其发送网络包的。除非公司主动允许,否则是无法从互联网向公司内网络发送网络包的,这种机制具有防止非法入侵的效果。如果希望互联网访问公司内网,那么事先手动添加这样的记录就可以了

3.4.5 路由器的包过滤功能

包过滤就是在对包进行转发时,根据MAC头部,IP头部,TCP头部中的内容,按照事先设置好的规则决定是转发这个包还是丢弃这个包,常说的防火墙设备或软件,大多数采用这一机制来防止非法入侵的。只阻止非法入侵而不影响正常访问,是非常不易的。如果简单的阻止来自互联网的全部包,那么内网访问互联网的操作也会无法正常进行

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/89548
推荐阅读
相关标签
  

闽ICP备14008679号