最后更新:2022-07-21 08:47
每个数据包都独立传输
在传输中,一个包和一个包之间没有连接.
在网络中防止信号衰变是很重要的
线程越长,频率越高,损失就越大。
损失会导致波形变形,使0和1无法识别,并造成错误。
在网络中防止信号衰变是很重要的
线程越长,频率越高,损失就越大。
损失会导致波形变形,使0和1无法识别,并造成错误。
双悬挂是为了抑制噪音

收集器向所有线发出信号
按地址簿发送开关

MAC地址表的维护
两种维护方式:
特殊操作

两个工作模式都可以同时发送和接收。
自动咨询:确定最佳传输速率


该开关可以同时执行多个传输操作
1路由器通过检查表来判断传输目标
网络包经过集群器和交换器到达路由器,然后传送到下一路由器。
这一步转发的工作原理和交换机类似,不过在具体的操作过程上,路由器和交换机是有区别的,因为路由器是基于 IP 设计的,而交换机是基于以太网设计的。
② 路由器概概况
下面的图示显示了路由器的内部结构。 只要了解路由器由两个部分组成:传送器模块和终端模块。
传输模块负责确定包的传输目的地,港口模块负责接收和发送包。
双向关系是协议堆栈的IP模块与网络卡之间的关系,将路由器的传输模块想象为IP模块,将端口模块想象为网络卡。
每个路由器的端口都有IP地址和MAC地址。

通过更换网络卡,计算机可以支持不仅以太网,而且无线宽带。 如果路由器端口模块有支持无线LAN的硬件,它可以支持无线LAN。
除了以太网和无线宽带网络之外,计算机很少看到支持其他通信技术的各种网络卡。路由器的端口模块除了本地网络外,还支持多种通信技术,例如ADSL、FTTH、以及各种宽带专线等,支持这些技术的硬件只能安装在端口模块中。
根据端口兼容通信技术接收数据包
当路由器发送数据包时,通过端口发送的数据包被接收到,这取决于端口的相应通信技术。
对于以太网端口来说,就是按照以太网规范进行工作,而无线局域网端口则按照无线局域网的规范工作,总之就是委托端口的硬件将包接收进来。
2在查询包IP头上的IP地址后,将包转移到相应的端口
随后,传输模块将根据接收包的IP头ப்பில்记录的接收机IP地址查询路由表,以确定传输目标。
然后,传输模块将数据包转移到传输目标的相应端口,端口按照硬件规则发送数据包,这意味着传输模块委托端口模块发送数据包。
③ 端口具有MAC地址和IP地址
端口模块接收和发送网络包在实际发送者或接收者的身份。
例如,路由器的端口有MAC地址,因此它可以是Ethernet的发送者和接收者。
就像网膜一样,MAC地址在生产时也写入终端的ROM中,但端口不会是IP的发送者和接收者。
端口还具有 IP 地址,从这个意义上来说,它和计算机的网卡是一样的。
当转发包时,首先路由器端口会接收发给自己的以太网包,然后查询转发目标,再由相应的端口作为发送方将以太网包发送出去。
这一点和交换机是不同的,交换机只是将进来的包转发出去而已,它自己并不会成为发送方或者接收方。
端口按照Ethernet标准接受数据包,即端口只有当端口的MAC地址和数据包接收机的MAC地址匹配时才接受数据包,否则数据包会被丢弃。
1使用路由表确定传输目标
交换机是通过 MAC 头部中的接收方 MAC 地址来判断转发目标的,而路由器则是根据 IP 头部中的 IP 地址来判断的。
由于使用不同的地址,记录传输目标的表的内容也会不同,路由器中的表称为路由表。
② 路由表的结构
目标地址中的IP地址是子网的地址。
目标地址列记录接收器的信息。 事实上,IP地址仅包含代表子网的网络号码部分的位值,而代表子网的主机号码部分的位值全为0B。
路由器将与路由表中接收的网络包的接收IP地址与目标地址进行比较,并找到相应的记录。
交换器只匹配地址表中完全一致的记录,而路由器忽略了主机号码部分,只匹配网络号码部分。
相比之下,路由器只查看接收地址在传输数据包时属于哪个区域,向哪个区域发送到这个边,向哪个区域发送到那个边。

③ 路由聚合
正如我们刚才所说的,目标地址栏中的IP地址代表子网,但有一些例外。有时地址本身的子网编码和路由表中的子网编码不一致,这是路由合并的结果。
路由组将多个子网合并为一个子网,并在路由表中只生成一个记录。
如图 3.14 所示,我们现在有 3 个子网,分别为10.10.1.0/24、10.10.2.0/24、10.10.3.0/24,路由器 B 需要将包发往这 3 个子网。
路由器B 路由表本来应该有三个与这些三个子网相符的记录,但在这个例子中,无论什么发送到任何一个子网,它都会通过路由器A发送。
因此我们可以在路由表中将这 3 个子网合并成 10.10.0.0/16,这样也可以正确地进行转发,但我们减少了路由表中的记录数量,这就是路由聚合。
通过路由,多个子网被合并为一个子网,子网的掩护变化,目标地址列在合并后被更改为地址。

路由表中的子网罩列只显示需要匹配网络包目标地址的位数
还有其他例子,例如,一个子网被分开并登记在路由表中,然后被分解为多个记录。
因此,路由器表中的子网面列仅用于告诉路由器在匹配目标地址时应该匹配多少位。
此外,目标地址的地址可能与实际子网的网络号码不完全相同,但即使如此,路由器仍能正常工作。
通过上述方法,我们也可以将某台具体计算机的地址写入路由表中,这时的子网掩码为 255.255.255.255,也就是说地址中的全部 32 个比特都为 1。
这样一来,主机号部分比特全部为 0 可以表示一个子网,主机号部分比特不全部为 0 可以表示某一台计算机,两种情况可以用相同的规则来处理。
5 网络交换机 、 接口和跳点计数器
网路和接口代表网络包的传输目标。 当目标地址和子网面匹配记录后,路由器将网络包传递到接口列(即端口)指定的网络接口,并传递到网络交换列指定的IP地址。
跃点计数表示距离目标 IP 地址的距离是远还是近。这个数字越小,表示距离目的地越近;数字越大,表示距离目的地越远。
⑥ 路由表的维护
路由器中的路由表的维护与数据包传输操作无关,路由表的内容不需要在数据包传输过程中维护。
维护路由表有几种方法,可以分为两个主要类别:
手动维护路线记录
基于路由协议机制,路由器通过交换路由器的信息来维护路由表的记录
其中提到的路由协议有很多种,例如 RIP、OSPC、BGP 等都属于路由协议。
1接收器包后装入缓存
路由器端口有多种不同的类型,这里我们只是描述如何以太网端口接收数据包。
以太网端口的结构基本上与计算机网络卡的结构相同,接收数据包和存储在缓冲器中的过程几乎与网络卡一样。
2PHY和MAC模块处理信号作为数字信息
首先,信号到达网络接口,其中PHY(MAU)模块和MAC模块将信号转换为数字信息,然后在包末端通过FCS进行错误检查。
如果没有问题,请检查接收机的MAC地址在MAC头部,以查看它是否正在自己发送一个包;如果没有,则将其放在接收缓冲器中,或丢弃包。
如果数据包的接收者不是MAC地址本身,这表明数据包被发送到其他设备,则数据包的接收违反了Ethernet规则。
路由器的所有端口都有MAC地址,只接收匹配自己的地址的包,而不匹配的包直接丢弃
查询路由表确定输出端口
① 丢弃MAC头
包接收操作完成后,路由器将丢弃包启动的MAC头。
MAC 头部的作用就是将包送达路由器,其中的接收方 MAC 地址就是路由器端口的 MAC 地址。
因此,当一个包到达路由器时,MAC头衔的任务完成,MAC头衔被丢弃。
通过路由器传输的网络包,其接收机MAC地址是路由器端口的MAC地址。
2基于IP头查询路由表
根据最长的原则匹配目标地址
如下图所示,假设地址为 10.10.1.101 的计算机要向地址为 192.168.1.10 的服务器发送一个包,这个包先到达图中的路由器。
然后在接收器IP地址查询路由表中的目标地址列用于找到匹配记录。

这个匹配并不是匹配全部 32 个比特,而是根据子网掩码列中的值判断网络号的比特数,并匹配相应数量的比特。
根据这个规则,可以匹配3、4和5行,其中路由器首先需要记录最长的网络数位。
网络的长度越长,主机的长度越短,在子网中可能存在的主机就越少。这个规则的目的是尽量减少传输范围,以便根据这个记录判断的传输目标更加准确。
这个规则被称为“最长的匹配”原则。
直接分配服务器自己的地址比服务器自己的子网要花费较少的时间,因此这里应该选择第四行作为传输目标。
按照最大匹配原则进行筛选后,如果只剩一个候选记录,则根据该记录的内容发送。
3根据跳点值选择同一记录的网络号码
有时在路由表中有多个记录,相同的网络号码长度,例如备份路由设置以考虑到路由器或网络故障。
在这一点上,必须根据跳点计算的值判断。 跳点数越小,路径就越接近,所以应该选择一个较小的跳点数记录。
无法匹配记录的包直接丢弃
如果路由表中找不到匹配记录,路由器将数据包丢弃,并通过ICMP消息通知发送者。
由于交换机可以根据Ethernet协议发送包到所有端口,并且路由器的工作网络环境是互联网,连接设备比交换机大得多。
如果生成大量网络包,就会发生网络拥塞,因此路由器会遇到无法发送的包,并直接丢弃这些包。
没有匹配路径时选择默认路径
并非所有传输目标需要在路由表中配置
如果它是一家公司或家庭网络,那很好,但可能有超过20,00个传输目标在互联网上,并且把它们都配置在路由表上是非常不现实的。
其中有一行子网掩码为 0.0.0.0,意思是网络包接收方 IP 地址和路由表目标地址的匹配中需要匹配的比特数为 0,换句话说,就是根本不需要匹配。
只要将子网掩码设置为 0.0.0.0,那么无论任何地址都能匹配到这一条记录,这样就不会发生不知道要转发到哪里的问题了。
只要互联网访问路由器的地址输入在其中记录的网关栏中,当它们与其他路由器不匹配时,网络包将被发送到互联网访问路由器。
默认路由和默认网关
因此,这个记录被称为默认路径,而由这个行配置的端口地址称为默认端口。
在计算机的TCP/IP设置窗口还有一个填入默认网络开关的框,这意味着同样的事情。
计算机上还有一个路由器表,类似于路由器,其中网络交换机的默认地址是我们填入设置窗口的地址。
路由表中子网掩码为 0.0.0.0 的记录表示“默认路由”。
因为匹配的比特越长,优先次序越高(最长的匹配的原理),子网掩盖的记录优先次序就越低,并且只有在没有其他匹配记录的情况下才能选择这个记录。
6通过芯片功能拆卸大型网络包
路由器端口支持多种通信技术
路由器的端口不仅是一个Ethernet端口,而且支持其他宽带或专线通信技术。
不同的线路和本地网络类型也不同于传输的最大数据包长度,因此输出端口的最大数据包长度可能比输入端口小。
即使两个端口的最大数据包长度是相同的,但由于增加一些头数据,实际数据包长度可能会改变。
无论如何,一旦传输的包的长度超过输出端口能传输的最大长度,则不能直接发送包。
超过端口的最大输出数据长度的分离包的IP协议
在这种情况下,可以通过在IP协议中定义的芯片函数来分离每个包的长度。
需要注意的是,这里说的分片和第 2 章介绍的 TCP 对数据进行拆分的机制是不同的。
IP脱耦和TCP脱耦数据的区别
TCP 拆分数据的操作是在将数据装到包里之前进行的,换句话说,拆分好的一个数据块正好装进一个包里。
从 IP 分片的角度来看,这样一个包其实是一个未拆分的整体,也就是说,分片是对一个完整的包再进行拆分的过程。
如第15段所示,首先,我们需要了解输出端口的MTU,看看该包是否可以发送,而不直接切断芯片。
最大端口长度由端口类型决定,由此最大端口长度减小头部的长度为MTU,比较MTU与传输的端口长度。
如果输出端口的 MTU 足够大,那么就可以不分片直接发送;如果输出端口的 MTU 太小,那么就需要将包按照这个 MTU 进行分片。

首先询问IP标题中的标记字段是否可以分割
在这样做之前,您需要查看IP头部的图标字段,以查看是否可以分割电影。
如果不能分隔数据包,则将数据包丢弃并通过ICMP消息通知发送者,否则,数据可以通过输出端口MTU分隔。
下列两个情况不能分开
1发送程序等设置不允许分区
这个包已经分成部分了
TCP头与数据分开
在晶片集中,TCP头和其后面的其他数据是晶片可读数据,虽然TCP头不属于用户数据,但也是数据TCP请求从IP视角传输的一部分。
数据被拆分后,每一份数据前面会加上 IP 头部,其大部分内容都和原本的 IP 头部一模一样,但其中有部分字段需要更新,这些字段用于记录分片相关的信息。
① 包的有效期
更新存活时间TTL字段以防止数据包进入死循环.
在网络包转移到输出端口之前,路由器还需要更新IP头ப்பில்的TTL字段。
TTL字段表示数据包的有效性,每当数据包通过路由器时,其有效性会减少1,当该值变为0时,它表示数据包已经超过了它的有效性,并且数据包被丢弃。
这个机制是为了防止包在一个地方陷入死循环,如果其中的信息有问题,或者由于设备故障等原因切换到备用路由时导致暂时性的路由混乱,就会出现这样的情况。
发送者在发送包时设置TTL为64或128,这意味着包通过许多路由器,最终“睡着”。
如今,即使在地球另一边的服务器上访问,至少需要数十个路由器,因此如果数据包被正确传输,那么它们可以在期限到期之前到达目的地。
根据不同的输出端口转换信号。
这个步骤取决于输出端口的类型。 如果端口是Ethernet,则转换为以Ethernet规则发送的电报;如果ADSL,则转换为ADSL规则等等。
在家庭网络中,路由器通常通过ADSL连接到互联网,因此路由器根据互联网连接的规则发送数据包。
然而,为了了解具体的操作过程,必须了解相应的通信线,这些线更复杂,因此我们将把下一个章节留给研究内部的互联网来解释。
假设路由器位于公司等局域网的内部,即输出端口也是以太网,看看这种情况是如何操作的。
以太网包发送操作是按照以太网规则进行的,即使设备类型不同,但规则都是相同的。
换句话说,它的基本过程与协议堆中的IP模块一样,它发送了数据包,将MAC字节添加到数据包的前部,设置了数据包的一些字段,然后将完成的数据包转换成电报并发送出去。
① 查询路由表
首先,为了确定MAC地址在MAC项中应填入的值,我们需要根据路由表的网络列确定另一方地址。
如果开关是一个IP地址,那么这个IP地址就是我们想要发送的目标地址;如果开关是空的,那么IP标题中的接收 IP地址就是我们想要发送的目标地址。
路由器如何确定下一个传输目标
1 如果路由表的 Gateway 列的内容是 IP 地址,那么该地址是下一个传输目标。
2 如果路由表的 Gateway 列内容空,则 IP 头部的接收 IP 地址是下一个传输目标。
2使用基于IP的ARP查询 MAC
知道对方的 IP 地址之后,接下来需要通过 ARP 根据 IP 地址查询 MAC 地址,并将查询的结果作为接收方MAC 地址。
路由器也有ARP缓存,所以它们首先在ARP缓存中查询,如果找不到ARP查询请求。
路由器还使用ARP来查询下一个传输目标的MAC地址。
接下来是发送者MAC地址字段,输入输出端口的MAC地址,还有一个以Ethernet类型的字段填入0080(十六个数字)。
将数字信息转换成电报
网络包完成后,接下来会将其转换成电信号并通过端口发送出去。这一步的工作过程和计算机也是相同的。
如果Ethernet在半双重模式下运行,必须确认在传输之前线上没有其他信号,如果碰撞被检测,则需要等待一段时间才能重复。
如果Ethernet在全双重模式下运行,线中的信号不需要确认,可以直接发送。
4网络包到达下一路由器
如果输出端口是Ethernet,发送的网络包将通过交换机到达下一个路由器。
由于接收机的MAC地址是下一个路由器的地址,因此交换的机会将根据该地址将包转移到下一个路由器。
接下来,下一个路由器将将数据包转移到下一个路由器,并且在层级转移之后,网络数据包到达最后的目的地。
1向数据部分委托以太网传输,以太网包中IP包
当计算机发送网络包或路由器发送网络包时,必须将MAC头添加到包的前部,正确的表达式应该是将IP包到Ethernet包的数据部分。
将MAC头条添加到一个包并发送它,基本上是将IP包到一个Ethernet包的数据部分,并委托Ethernet传输数据。
IP协议本身没有数据包的功能,因此数据包的实际传输必须通过委托以太网进行。
路由器基于IP设计,开关基于Ethernet,因此IP与Ethernet之间的关系是路由器与开关之间的关系。
换句话说,路由器将包的传输工作交给交换机。
除了使用开关外,还可以使用连接器,或通过交叉线直接连接到路由器端口。
关键是,当委托传输时,只要它符合Ethernet规则,它就可以在任何设备上传输。
当然,这里的内容仅适用于最初实现IP和Ethernet机制的纯路由器和开关,而实际的路由器有内置开关功能。
例如,用于连接到互联网的家庭路由器属于这一类别,上述内容可能不适用于这些路由器。
但是,如果把这种“不纯粹”的路由器拆分成“纯粹”的路由器和“纯粹”的交换机,则它们各自都适用上面的内容。

2IP委托以太网传输到下一路由器
您可以从数据包的传输目标中看到路由器与交换器之间的客户端关系。
IP不委托Ethernet发送包到最终目的地,而是到下一路由器。
3ARP查询是下一路由器的MAC地址
在创建MAC 头部时,也是从 IP 的路由表中查找出下一个路由器的 IP 地址,并通过 ARP 查询出 MAC 地址,然后将 MAC 地址写入 MAC 头部中的。
这意味着IP委托给Ethernet只将数据包转移到下一个路由器。
当数据包到达下一路由器时,下一路由器将通过以太网重新分配数据包给下一路由器。
由于这个过程是重复执行的,包最终到达IP目的地,这是通信对象。
这里我们汇编了路由器和开关之间的关系。
简单地说,IP(路由器)负责发送数据包到通信对象的整个过程,而发送数据包到下一路由器的进程由Ethernet(接口)处理。
4IP不负责的包传输只向下一个路由器委托其他协议
如果数据包通过无线网络连接到下一路由器,则委托无线网络传输数据包;
如果它通过互联网连接, 那么委托它传递数据包.
除了上述的例子之外,世界上还有许多其他类型的通信技术,它们之间的关系是相同的,所有这些通信技术由客户使用将通过包。
IP本身不负责传输数据包,而是委托各种通信技术传输数据包到下一路由器。
这种设计是重要的,因为它可以根据需要灵活地使用各种通信技术,这也是IP的最大特征。
正是 这种 特点 使 我们 能够 建立 这 一 庞大 的 互联网 网络 。
本文由 在线网速测试 整理编辑,转载请注明出处。