助记提要
- 双绞线抑制噪声的原理
- 集线器的工作
- 交换机的工作过程
- 交换机维护MAC地址表的方式
- 交换机特殊情况下的操作 3种
- 全双工模式的特点
- 自动协商的原理
- 路由器组成
- 路由表内容
- 路由器工作过程
- 路由器和交换机的区别
- 地址转换的基本原理
3章 从网线到网络设备 探索集线器、交换机和路由器
1 网线传输
1.1 信号在传输中失真
网卡中的PHY(MAU)模块会把包转换为电信号。以太网的信号的本质是正负变化的电压。
信号传输的网线越长,信号衰减越严重;噪声会让信号进一步失真。
1.2 噪声的产生
电磁波接触到金属导体时,会在其中产生电流。如果网线周围存在电磁波,就会在网线中产生和传输信号不一样的电流。噪声的电流和信号混杂在一起,就导致信号的波形失真。
1.3 双绞线抑制噪声
网线外的电磁波,在接触到信号线时,会沿电磁波右旋的方向产生电流,导致信号失真。
当信号线缠绕在一起时,信号线变为螺旋形,同一根信号线中的相邻两段信号线中产生的噪音电流方向就是相反的,从而使噪音电流相互抵消。
网线中信号线中有电流流过时,会向周围发出电磁波,对其他信号线带来噪声。这种噪声强度低,但是距离太近,也会在相邻信号线产生电流。
网线内部,每一对信号线绞合的节距都有差异,使得某些地方正信号线距离近,某些地方负信号线离得近。正负信号线产生的噪音影响是相反的,就会相互抵消。
2 集线器
集线器每个接口后面都装有和网卡的PHY(MAU)功能一样的模块,但是不能像网卡使用直连方式接线。必须将发送线路和接收线路连接起来才行。
信号到达集线器后,会被广播到连接在集线器上的所有设备。这些设备收到网络包后会检查MAC头部的接收方MAC地址是不是自己,不是的话就忽略这个包。
接收方会通过FCS校验发现错误,将出错的包丢弃。丢弃的包不会发出确认响应,因此TCP模块会检测到丢包,然后重传该包。
交叉网线
交叉网线是把发送和接收信号线反过来接的网线。
交叉网线可以把两台计算机直接连接起来。
3 交换机
3.1 交换机组成
- MAC地址表,记录设备的MAC地址和该设备连接的端口。
- 交换电路,控制包转发。
- 多个端口,功能类似网卡,也包含PHY(MAU)、MAC模块和内存。
信号到达交换机的网线接口时,被PHY(MAU)模块接收,PHY(MAU)模块会把网线里的信号转换为通用格式,然后传给MAC模块。MAC模块把信号转换为数字信息,然后通过FCS校验错误,如果没问题就放到缓冲区中。
网卡会判断包的MAC地址是不是发给自己的,不是的话就丢弃。和网卡不同的是,交换机的MAC模块没有MAC地址,会接收所有的包并存到缓冲区中。
交换电路把输入端和输出端连接起来,其中的信号线排列成网格状,每个交叉点都有一个电子控制的交换开关,通过切换开关状态能改变电流的流向。网络包通过网格状的电路在端口之间流动。每个交叉点的开关能够独立工作,只要路径不重复,就能同时传输多路信号。
网络包到达发送端口后,端口的MAC模块和PHY(MAU)模块会执行发送操作,把信号发送到网线中。
一次转发过程涉及两个端口,其余的端口都是空闲的,可以传输其他包,即交换机可以同时执行多个转发操作。
3.2 MAC地址表的维护
收到包时,将发送方MAC地址和输入端口的号码写到MAC地址表中。
记录的地址在一段时间不使用后,就会删除。
地址表的内容出现异常时,重启交换机就能重置地址表,不需要手动维护。
3.3 交换机的特殊操作
- 交换机发现包的来源端口和MAC地址记录的目标端口一致时,会丢弃这个包。
- 地址表中找不到指定的MAC地址时,交换机会把包转发给出了源端口之外的所有端口。
- 接收方的MAC地址是广播地址的时候,也会把包发给除源端口外的所有端口。
3.4 全双工模式
碰撞:多台计算机同时发信号时,信号在集线器内部会混杂,无法使用。
双绞线的发送和接收线路是独立的,其中的信号不会发生碰撞。交换机端口和网卡的PHY(MAU)模块和MAC模块内部的发送和接收电路是各自独立的,信号也不会发生碰撞。因此不使用集线器就能避免信号碰撞。
全双工模式:同时进行发送和接收的模式,不需要等待其他信号结束技能发送信号,停用碰撞检测模块。
3.5 自动协商
相互连接的双方能够探测对方是否支持全双工模式,从而切换工作模式。还可以探测对方的传输速率,并自动切换。
没有数据传输时,网络中会填充连接脉冲,用于检测对方是否正常工作或网线是否正常连接。自动协商功能就是把自己可支持的工作模式和传输速率通过这样的脉冲信号相互告知对方,并从中选择一个最优的组合。
网线接口处的绿色LED灯亮,就表示检测到正常的脉冲信号,PHY(MAU)模块和网线连接正常。
4 路由器
4.1 路由器组成
- 转发模块:根据路由表的记录判断包的转发目标;
- 端口模块:负责包的收发操作;
转发模块和端口模块类似计算机的IP模块和网卡。计算机通过更换网卡,能支持以太网也能支持无线局域网。路由器端口模块也能通过相应的硬件支持不同的网络,包括以太网、无线局域网、ADSL、FTTH和各种宽带专线等。
4.2 路由表组成
- 目标地址:接收方的子网的网络号信息,
- 子网掩码:表示匹配目标地址时需要比对的位数。
- 网关:与该行记录匹配的网络包该转发到这个地址。
- 接口:与该行记录匹配的网络包该交给这个端口。
- 跃点数:表示与目标IP地址的距离,值越小表示越近。
路由聚合:几个子网都是通过一个路由器转发到达,会尽可能地合并为一个子网,在路由表中只显示1条记录。
子网掩码为255.255.255.255。主机号不全为0时,表示某台具体计算机的地址。主机号全为0时,表示一个子网。
不是所有转发目标都需要配置在每个路由表中。子网掩码为0.0.0.0的记录是默认路由,这一行的网关地址填写互联网接入路由。匹配不到其他路由时,网络包会被转发到该地址。
路由器之间可以根据路由协议交换信息,自行维护路由表。
4.3 路由器的工作过程
1. 接收
路由器的PHY(MAU)模块和MAC模块把收到的信号转为数字信息,并进行FCS校验。校验无误后检查MAC头部的接收方MAC地址,如果是发给自己的就把包放入接收缓冲区中,如果不是则丢弃这个包。
完成接收操作后,MAC头部会被抛弃。
2. 查表
路由器根据IP头部的接收方IP地址在路由表的目标地址栏中找到相匹配的记录。多个记录选择网络号位数最长的一条(转发的范围更准确);网络号长度相同的多个匹配记录,会选择跃点较小的记录;路由表中找不到记录时,会丢弃包,然后通过ICMP消息告知发送方。
3. 更新有效期
将包的IP头部的TTL字段的值减1。值为0时,包被丢弃。防止包陷入循环。
4. 分片
由于路由器的端口有很多种,而不同线路和网络类型可传输的最大包长度不同,因此输入端的最大包的长度可能会小于输出端,或者在添加头部数据后,包的实际长度超过。
IP协议中的分片功能,可以对TCP传来的数据进行分片(包括TCP头部加上应用数据)。
路由器先看输出端口的MTU,判断包是否可以直接发送。如果输出端的MTU太小无法直接发送,再查看IP头部的标志确认是否可以分片。标志不可分片的包会被丢弃,并通过ICMP通知发送方。标志可分片的包,会按照输出端的MTU对数据进行拆分。数据拆分后,每一份数据前面都会加上IP头部,新的IP头部在原来的基础上更新了分片相关的信息。
5. 发送
网络包会按照输出端口的规则做转换后发送。
对于以太网类型的输出端口,过程和协议栈的IP模块发送过程基本相同。
路由表的网关列即为对方的IP地址,网关为空时,IP地址为IP头部的接收方IP地址。
构造MAC头部,路由器通过ARP根据IP地址查到接收方MAC地址,发送方MAC地址为输出端口的MAC地址。以太类型字段填0800。
之后整个包被转换为电信号通过端口发送出去。
4.4 路由器和交换机的区别
路由器转发包的原理和交换机类似,也是查表判断转发目标。
-
交换机没有自己的MAC地址和IP地址,只做单纯的转发;路由器的端口有各自的MAC地址和IP地址,可以改写包的头部信息,从而成为包的接受方和发送方。
-
路由器根据IP地址查表判断转发目标,交换机通过MAC地址查表。
-
路由器只接收和自己MAC地址匹配的包,不匹配的包会被丢弃。交换机接收所有发来的包。
-
路由器会丢弃在路由表中匹配不到记录的包,并通知发送方;交换机会把找不到的包发送给所有端口。因为路由器工作于规模很大的互联网,全部转发的话会产生很多网络包造成网络拥塞。而交换机连接的网络规模小,最多几千台设备,。
路由器是基于IP设计的,交换机是基于以太网设计的。IP对以太网的委托只是将包传输到下一个路由器,包到达下一个路由器后,下一个路由器又重新委托以太网将包传输到再下一个路由器。IP负责把包传输给通信对象的整体过程,其中将包传输到下一个路由器的过程是以太网负责的。
IP本身不负责包的传输,而是委托各种通信技术把包传到下一个路由器。
4.5 地址转换
地址转换的出现
避免可分配的地址用光,需要改变固定地址的分配方式。
不同公司的网络之间是相互独立的,同一内网中的设备不需要分配固定地址。
私有地址
规定某些地址仅用于内网,称为私有地址。固定地址叫做公有地址。
私有地址范围如下:10.0.0.010.255.255.255,172.16.0.0172.31.255.255,192.168.0.0~192.168.255.255。
这样,公司内部对互联网开放的服务器分配公有地址,内部设备则分配私有地址。内部设备不能和互联网直接通信,而是通过地址转换机制进行连接。
基本原理
地址转换设备在转发网络包时会对IP头部的IP地址和端口号进行改写。
包被转发到互联网时,地址转换设备会随机选择一个空闲端口,然后把包的私有地址改为转换设备接入互联网的公有地址,端口号改为随机选到的端口号。改写前后的地址和端口号会保存在内部的一张表中。
收到包时,地址转换设备从地址表中找到对应的私有地址和端口号,改写接收方信息,然后转给内网。
收发操作结束后,地址表中的对应记录会删除。
互联网如何访问内网
互联网访问内网时,如果地址转换表中没有对应的记录,就无法正常转发数据。
可以将用于外网访问的服务器放在地址转换设备外面并分配公有地址。或者把服务器的私有地址手动添加到地址转换设备中。
4.6 包过滤
转发包时,根据MAC头部、IP头部、TCP头部的内容,按事先设置好的规则决定转发还是丢弃该包。