Keen的博客

记录所思、所想、所遇

欢迎来到我的个人站~


网络是怎样连接的(三)- 集线器、交换机、路由器

0 探索线路

jpg jpg

3 集线器、交换机、路由器

3.1 信号在网线和集线器中传输

3.1.1 局域网结构

一般家用路由器都集成了集线器和交换机的功能,独立设备已经很少了,以下是为了表述更清晰。 jpg

3.1.2 防止网线中的信号衰减、利用双绞线抑止噪声

jpg 高频信号更容易损失信号,波形边缘容易变得圆滑
电机、荧光屏、CRT显示器等设备泄漏出来的电磁波,接触到信号线时,会沿电磁波传播的右旋方向产生电流,如果两根线缠绕变成螺旋形,会使得噪声电流方向相反从而互相抵消。
对于相邻信号线的干扰,是通过不同信号线缠绕距离变化来抵消的。 jpg

双绞线: jpg

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

以太网的基本框架:将包发到所有的设备,然后由设备根据接收方MAC地址来判断应该接收哪些包。集线器就是做广播信息的。 jpg jpg

3.2 交换机的包转发操作

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

信号到达网线接口,由PHY(MAU)模块进行接收,转换为通用格式,然后传递给MAC模块;
MAC模块将信号转换为数字信号,并通过包末尾的FCS校验错误,如果没有错误,就放到缓冲区;

交换机的过程与上面类似,只不过不再需要MAC地址校验,而是接收所有的包,放到缓冲区。交换机端口不具备MAC地址;
jpg 包进入缓冲区后,查询这个包的接收方MAC地址是否已经在MAC地址表中有记录了。MAC地址表主要包含两个信息:设备的MAC地址,该设备连接在交换机的哪个端口。交换机内部有电子开关,通过切换,可以改变信号流向,决定从哪个端口流出或者接收哪个端口的数据。

3.2.2 MAC地址表的维护

(1)收到包时,add
(2)每条记录都有有效期,一段时间不使用则删除(几分钟)

3.2.3 特殊情况

(1)目标端口和源端口一样:直接丢弃
(2)地址表找不到MAC地址:将包发送到除源端口外的所有端口
(3)接收方MAC地址是广播地址(FF-FF-FF-FF-FF-FF或者IP:255.255.255.255):将包发送到除源端口之外的所有端口

3.2.4 全双工模式(交换机特有的工作模式),可以同时进行发送和接收

全双工的两种方式:双绞线(两条独立的信号线)、一条线多频段

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

探测对方是否支持全双工,也可以探测传输速率。
以太网中,没有数据信号传输时,也会填充连接脉冲。(网线接口绿色的LED指示灯,灯亮,表明连接正常)。脉冲信号,告知了最优的连接速率。 jpg 脉冲信号传达了速率、半双工全双工工作模式。速率的话,会选取尽可能大的速率,作为双方协商达到的最优速率。优先级如下图示例: jpg

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

多个端口决定的。

3.3 路由器的包转发操作

3.3.1 路由器基本知识

网络包被集线器和交换机转发后,到达路由器,再由路由器,继续转发到下一个路由器。
基本功能和交换机类似,但是路由器是基于IP的,交换机是基于MAC地址的。路由器的端口模块是具有MAC地址的,出厂时写入ROM。 jpg

3.3.2 路由表中的信息

路由器根据IP地址判断转发目标,只看网络号,也就是子网网段部分(IP地址与掩码的与操作),具体转发表如下: jpg 多个子网的情况下,路由表中只有一个记录,会进行多子网聚合,例如10.10.1.0/24、10.10.2.0/24、10.10.3.0/24,多子网聚合,会只有一个记录于路由表中10.10.0.0/24 jpg 当根据目标地址和子网掩码匹配到某条记录后,路由器会将网络包交给接口列指定的网络接口(即端口),并转发到网关列中指定的IP地址。跃点数,表示距离IP地址的距离。

路由表信息维护:
(1)人功能手动维护路由记录
(2)根据路由协议机制,通过路由器之间的信息交换由路由器自行维护路由表的记录(RIP、OSPC、BGP等都属于路由协议)。

3.3.3 路由器的包接收及包转发

路由器的端口都具有MAC地址,只接收与自身匹配的包,遇到不匹配的包直接丢弃。也就是说,任何网络包,虽然实际发送的是一个远端客户端的,但是填充的MAC地址,只会是离自己最近跟自己交互的那个路由器的对应端口的MAC地址。例如,我机器连接的我的小米路由器wifi模块端口的MAC地址:64:09:80:0C:22:2F,ping一下百度,发现MAC地址填充确实是小米路由器的,而百度搜索服务器主机网卡的MAC地址 jpg

当发现输出的包的MAC地址确实是连接的路由器的MAC地址时,由于路由器是根据IP来转包,这里这个网络包接收MAC地址找到路由器后,就已经完成它的任务,不需要MAC地址了,就把MAC地址干掉,通过目标IP地址和掩码,查询路由表,找到对应记录,然后找到网关,确定转发端口,然后根据这个网关,确定网关MAC地址,新填充到网络包中。

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

子网掩码是0.0.0.0,即不需要匹配的,这一行就是默认路由,对应的网关是默认网关(互联网接入路由器)。

3.3.5 包的有效期

TTL(Time to Live,生存时间),包每经过一个路由器的转发,值减去1,当值变成0时,丢弃。目前互联网即便访问一台位于地球另一侧的服务器,最多也只需要经过几十个路由器,因此TTL一般设置为64或128

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

IP模块会对一个完整包进行分片(不同于TCP包的拆分,IP分片会将TCP头部也当做数据),是否分片,主要决定于MTU大小 jpg

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

(1)优先看网关,网关作为转发目标
(2)若网关为空,则目标IP地址作为转发目标
(3)通过ARP,可以查询网关或者目标IP所在端口的MAC地址

3.3.8 交换机与路由器的关系

路由器放入路由器端口的MAC地址,然后装载进以太网包;
以太网包,由交换机,从一个路由器传输到下一个路由器。

3.4 路由器的附加功能

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

为了IP地址不被用光,采用私有地址和公有地址。任何局域网跟局域网的私有IP是不会进行交互的,因此也可以使用相同的IP,例如192.168.1.19
私有地址可用范围:
10.0.0.0 ~ 10.255.255.255
172.16.0.0 ~ 172.31.255.255
192.168.0.0 ~ 192.168.255.255
这些地址,不需要申请,任何人都可以使用
jpg

3.4.2 地址转换的基本原理

在转发网络包时对IP头部中的IP地址和端口号进行改写。
利用端口号改写IP地址:
jpg

3.4.3 从互联网访问公司内网

如果路由器的表中,没有端口号跟私有地址的映射关系,那么从互联网到公司内网,路由器是无法正常转包的。要想能够正常从互联网外部访问,则需要在路由器中添加映射关系。我们的VPN或者其他网络穿透工具,做的事情,应该就是这个? jpg

3.4.4 路由器的包过滤功能(防火墙)

包过滤就是在对包进行转发时,根据MAC头部、IP头部、TCP头部的内容,按照事先设置好的规则决定是转发这个包还是丢弃这个包。

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少