笔记 —— 《网络是如何连接的》 第三章 从网线到网络设备

名词解释

局域网:局域网(Local Area Network,LAN)是指在某一区域内由多台计算机互联成的计算机组。一般是方圆几千米以内。局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算机组成。局域网通常是分布在一个有限地理范围内的网络系统,一般所涉及的地理范围只有几公里。局域网专用性非常强,具有比较稳定和规范的拓扑结构。

双绞线:双绞线是一种传输介质,由二根包着绝缘材料的细铜线按一定的比率相互缠绕而成。二根线双绞缠绕,改变了电缆原有的电子特性,不但可以减少自身的串扰,也可以最大程度上防止其它电缆上的信号对这对线缆上的干扰。

笔记 —— 《网络是如何连接的》 第三章 从网线到网络设备

我们今天在计算机通信网络中所用到的基本上都是“超五类非屏蔽双绞线缆”。线缆的二头分别按一定的线序压在RJ45水晶头内,这也就是通常大家说的“网线”。

笔记 —— 《网络是如何连接的》 第三章 从网线到网络设备

集线器:集线器(HUB)是指将多条以太网双绞线或光纤集合连接在同一段物理介质下的设备;是一个多端口的转发器。属于数据通信系统中的基础设备,它和双绞线等传输介质一样,是一种不需任何软件支持或只需很少管理软件管理的硬件设备。集线器工作在局域网(LAN)环境,像网卡一样,应用于OSI参考模型第一层,因此又被称为物理层设备。

交换机:是一种用于电(光)信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路。最常见的交换机是以太网交换机。其他常见的还有电话语音交换机、光纤交换机等。

交换式集线器:目前,集线器和交换机之间的界限已变得模糊。交换式集线器(SH: Switching Hubs)有一个核心交换式背板,采用一个纯粹的交换系统代替传统的共享介质中继网段。交换式集线器是一种网络开关,也称交换器,由于和电话交换机对出入线的选择有相似的原理,因此也有人译为交换机。

路由器:所谓“路由”,是指把数据从一个地方bai传送到另一个地方的行为和动作,而路由器,正是执行这种行为动作的机器,它的英文名称为Router,是一种连接多个网络或网段的网络设备,它能将不同网络或网段之间的数据信息进行“翻译”,以使它们能够相互“读懂”对方的数据,从而构成一个更大的网络。

​ 为了完成“路由”的工作,在路由器中保存着各种传输路径的相关数据--路由表(Routing Table),供路由选择时使用。路由表中保存着子网的标志信息、网上路由器的个数和下一个路由器的名字等内容。路由表可以是由系统管理员固定设置好的,也可以由系统动态修改,可以由路由器自动调整,也可以由主机控制。

网关:网关英文名称为Gateway,又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器,与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。

​ 通俗点形容,从一个房间走到另一个房间,必然要经过一扇门。同样,从一个网络向另一个网络发送信息,也必须经过一道“关口”,这道关口就是网关。顾名思义,网关(Gateway)就是一个网络连接到另一个网络的**“关口”**。也就是网络关卡。

路由器与网关:通常我们说的网关其实是一个逻辑概念,而路由器是一个具体的硬件。通常网关是具有路由功能的设备上实现的,其作用就是用来连接两个不同网段的网络的。如果类比的话,网关相当于软件,路由器则是硬件。软件要在硬件上运行。而硬件却不一定装这个叫网关的软件。

​ 目前可以当网关的东西还真不少,比如防火墙、路由器、三层交换机、电脑、部分MCU、一些存储设备,还有一些设备也很古怪的可以设置成网关,比如视频会议终端、语音网关等。所以说具有路由功能的硬件原则上都可以当网关使唤。

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

​ 从计算机发送出来的网络包会通过集线器、 路由器等设备被转发, 最终到达目的地。 所有的包在传输到目的地的过程中都是独立的, 相互之间没有任何关联。

​ 信号到达集线器的时候并不是跟刚发送出去的时候一模一样。集线器收到的信号有时会出现衰减( 图 3.3)。 信号在网线的传输过程中,能量会逐渐损失。 网线越长, 信号衰减就越严重。

笔记 —— 《网络是如何连接的》 第三章 从网线到网络设备

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

笔记 —— 《网络是如何连接的》 第三章 从网线到网络设备

​ 当信号到达集线器后, 会被广播到整个网络中。 以太网的基本架构就是将包发到所有的设备, 然后由设备根据接收方 MAC 地址来判断应该接收哪些包, 而集线器就是这一架构的忠实体现, 它就是负责按照以太网的基本架构将信号广播出去。

​ 信号到达集线器的 PHY( MAU) 模块后, 会进入中继电路。 中继电路的基本功能就是将输入的信号广播到集线器的所有端口上。

​ 由于集线器只是原封不动地将信号广播出去, 所以即便信号受到噪声的干扰发生了失真, 也会原样发送到目的地。 这时, 接收信号的设备, 也就是交换机、 路由器、 服务器等, 会在将信号转换成数字信息后通过 FCSA校验发现错误, 并将出错的包丢弃。 协议栈的 TCP 模块会检测到丢包,并对该包进行重传。

交换机的包转发操作

  1. 交换根据地址表进行转发

​ 交换机的设计是将网络包原样转发到目的地, 图 3.7 就是它的内部结构。 交换机端口的 MAC 模块不具有 MAC 地址。

笔记 —— 《网络是如何连接的》 第三章 从网线到网络设备

​ 交换机根据 MAC 地址表查找 MAC 地址,然后将信号发送到相应的端口。

  1. MAC地址表的维护

​ 交换机在转发包的过程中, 还需要对 MAC 地址表的内容进行维护,维护操作分为两种。
​ 第一种是收到包时, 将发送方 MAC 地址以及其输入端口的号码写入MAC 地址表中。 另一种是删除地址表中某条记录的操作, 这是为了防止设备移动时产生问题。 综合来看, 为了防止终端设备移动产生问题, 只需要将一段时间不使用的过时记录从地址表中删除就可以了。

  1. 全双工模式可以同时进行发送和接收

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

​ 而使用双绞线时, 发送和接收的信号线是各自独立的 A, 因此在双绞线中信号不会发生碰撞。 网线连接的另一端, 即交换机端口和网卡的 PHY( MAU) 模块以及 MAC 模块, 其内部发送和接收电路也是各自独立的, 信号也不会发生碰撞。 因此, 只要不用集线器, 就可以避免信号碰撞了。

笔记 —— 《网络是如何连接的》 第三章 从网线到网络设备

路由器的包转发操作

  1. **路由器的基本知识 **

​ 网络包经过集线器和交换机之后, 现在到达了路由器, 并在此被转发到下一个路由器。 这一步转发的工作原理和交换机类似, 也是通过查表判断包转发的目标。 不过在具体的操作过程上, 路由器和交换机是有区别的。 因为路由器是基于 IP 设计的, 而交换机是基于以太网设计的

​ 路由器的内部结构如图 3.12 所示。

笔记 —— 《网络是如何连接的》 第三章 从网线到网络设备

​ 路由器在转发包时, 首先会通过端口将发过来的包接收进来, 这一步的工作过程取决于端口对应的通信技术。 接下来, 转发模块会根据接收到的包的 IP 头部中记录的接收方 IP 地址, 在路由表中进行查询, 以此判断转发目标。 然后, 转发模块将包转移到转发目标对应的端口, 端口再按照硬件的规则将包发送出去, 也就是转发模块委托端口模块将包发送出去的意思。 路由器的各个端口都具有 MAC 地址和 IP 地址。

  1. 路由表中的信息

​ 在“查表判断转发目标” 这一点上, 路由器和交换机的大体思路是类似的。路由器中的表叫作路由表, 其中包含的信息如图 3.13 所示。

笔记 —— 《网络是如何连接的》 第三章 从网线到网络设备

​ 交换机是通过 MAC 头部中的接收方 MAC 地址来判断转发目标的, 而路由器则是根据 IP 头部中的 IP 地址来判断的。 交换机在地址表中只匹配完全一致的记录, 而路由器则会忽略主机号部分, 只匹配网络号部分。 打个比方, 路由器在转发包的时候只看接收方地址属于哪个区,×× 区发往这一边,×× 区发往那一边。

  1. 路由器的包接收操作

​ 路由器的端口有各种不同的类型, 这里我们只介绍以太网端口是如何接收包的。 首先, 信号到达网线接口部分, 其中的 PHY( MAU) 模块和 MAC 模块将信号转换为数字信息, 然后通过包末尾的 FCS 进行错误校验, 如果没问题则检查 MAC 头部中的接收方 MAC 地址, 看看是不是发给自己的包,如果是就放到接收缓冲区中, 否则就丢弃这个包。

​ 完成包接收操作之后, 路由器就会丢弃包开头的 MAC 头部。 MAC 头部的作用就是将包送达路由器, 其中的接收方 MAC 地址就是路由器端口的 MAC 地址。 接下来, 路由器会根据 MAC 头部后方的 IP 头部中的内容进行包的转发操作。 如果在路由表中无法找到匹配的记录, 路由器会丢弃这个包, 并通过ICMPA (Internet Control Message Protocol, Internet 控制报文协议 )消息告知发送方。 路由表中子网掩码为 0.0.0.0 的记录表示“默认路由”。

  1. 通过分片功能拆分大网络包

​ 不同的线路和局域网类型各自能传输的最大包长度也不同, 因此输出端口的最大包长度可能会小于输入端口。 遇到这种情况, 可以使用 IP 协议中定义的分片功能对包进行拆分, 缩短每个包的长度。

笔记 —— 《网络是如何连接的》 第三章 从网线到网络设备

​ 如果查询标志字段发现不能分片, 那么就只能丢弃这个包, 并通过ICMP 消息通知发送方。 否则, 就可以按照输出端口 MTU 对数据进行依次拆分了。

​ 路由器判断下一个转发目标的方法如下。
● 如果路由表的网关列内容为 IP 地址,则该地址就是下一个转发目标。
● 如果路由表的网关列内容为空,则 IP 头部中的接收方 IP 地址就是下一个转发目标。

  1. 路由器与交换机的关系

​ 计算机在发送网络包时, 或者是路由器在转发网络包时, 都需要在前面加上 MAC 头部。 准确的说法应该是将 IP 包装进以太网包的数据部分中。 路由器是基于 IP 设计的, 而交换机是基于以太网设计的, 因此 IP 与以太网的关系也就是路由器与交换机的关系。 换句话说, 路由器将包的传输工作委托给交换机来进行。

​ IP 本身不负责包的传输, 而是委托各种通信技术将包传输到下一个路由器, 这样的设计是有重要意义的, 即可以根据需要灵活运用各种通信技术, 这也是 IP 的最大特点。

路由器的附加功能

  1. 通过地址转换有效利用 IP 地址

​ 所谓地址, 就是用来识别每一台设备的标志, 因此每台设备都应该有一个唯一不重复的地址。 互联网原本是这样设计的, 但进入 20 世纪 90 年代之后, 互联网逐步向公众普及, 接入互联网的设备数量也快速增长, 如此一来, 情况就发生了变化。

​ 因此需要设置一定的规则, 规定某些地址是用于内网的,这些地址叫作私有地址, 而原来的固定地址则叫作公有地址。 私有地址的规则其实并不复杂, 在内网中可用作私有地址的范围仅限以下这些。
10.0.0.0 ~ 10.255.255.255
172.16.0.0 ~ 172.31.255.255
192.168.0.0 ~ 192.168.255.255
​ 在制定私有地址规则时, 这些地址属于公有地址中还没有分配的范围。换句话说, 私有地址本身并没有什么特别的结构, 只不过是将公有地址中没分配的一部分拿出来规定只能在内网使用它们而已。

​ 当公司内网和互联网连接的时候, 需要采用图 3.17 这样的结构, 即将公司内网分成两个部分, 一部分是对互联网开放的服务器, 另一部分是公司内部设备。 其中对互联网开放的部分分配公有地址, 可以和互联网直接进行通信;内网部分则分配私有地址, 内网中的设备不能和互联网直接收发网络包, 而是通过一种特别的机制进行连接, 这个机制就叫地址转换

笔记 —— 《网络是如何连接的》 第三章 从网线到网络设备

  1. 地址转换的基本原理

​ 地址转换的基本原理是在转发网络包时对 IP 头部中的 IP 地址和端口号进行改写,这里的端口号指的是 TCP 和 UDP 的端口号,不是路由器和集线器连接网线的那个端口。

​ TCP 连接操作的第一个包被转发到互联网时, 会像图 3.18 这样, 将发送方 IP 地址从私有地址改写成公有地址。 这里使用的公有地址是地址转换设备的互联网接入端口的地址。 与此同时, 端口号也需要进行改写, 地址转换设备会随机选择一个空闲的端口。 然后, 改写前的私有地址和端口号, 以及改写后的公有地址和端口号, 会作为一组相对应的记录保存在地址转换设备内部的一张表中。

笔记 —— 《网络是如何连接的》 第三章 从网线到网络设备

​ 改写发送方 IP 地址和端口号之后, 包就被发往互联网, 最终到达服务器, 然后服务器会返回一个包。 地址转换设备会从地址对应表中通过公有地址和端口号找到相对应的私有地址和端口号, 并改写接收方信息, 然后将包发给公司内网,这样包就能够到达原始的发送方了。