数通 | 某些基本知识梳理

路由环路

路由环路,就是数据包不断在这个网络传输,始终到达不了目的地,导致掉线或者网络瘫痪。

这里引用百度百科中的一个示例来理解路由环路产生的原因。

如图所示,在网络11.4.0.0发生故障之前,所有的路由器都具有正确一致的路由表,网络是收敛的。

图源百度百科

在本例中,路径开销用跳数来计算,所以,每条链路的开销是1。路由器C与网络11.4.0.0直连,跳数为0。路由器B经过路由器C 到达网络11.4.0.0,跳数为1。路由器A 经过路由器B到达网络11.4.0.0,跳数为2。
如果网络11.4.0.0 故障,就可能会在路由器之间产生路由环路,下面是产生路由环路的步骤:

  1. 当网络11.4.0.0 发生故障,路由器C 最先收到故障信息,路由器C 把网络11.4.0.0 设为不可达,并等待更新周期到来通告这一路由变化给相邻路由器。如果,路由器B的路由更新周期在路由器C之前到来,那么路由器C就会从路由器B那里学习到去往11.4.0.0的新路由(实际上,这一路由已经是错误路由了)。这样路由器C的路由表中就记录了一条错误路由(经过路由器B,可去往网络11.4.0.0,跳数增加到2 )。
  2. 路由器C 学习了一条错误信息后,它会把这样的路由信息再次通告给路由器B,根据通告原则,路由器B也会更新这样一条错误路由信息,认为可以通过路由器C去往网络11.4.0.0,跳数增加到 3 。
  3. 这样,路由器 B 认为 可以通过路由器C 去往网络11.4.0.0,路由器C 认为 可以通过路由器B 去往网络11.4.0.0,就形成了环路。(以上示例摘自百度百科)

概括来讲,解决路由环路问题的方法主要分为六种:

  1. 定义最大值;
  2. 水平分割技术;
  3. 路由中毒;
  4. 反向路由中毒;
  5. 控制更新时间;
  6. 触发更新

参考阅读:

  1. 如何避免多路径网络中的路由环路?
  2. 解决路由环路问题的六种方法

直通网线和交叉网线

在学校的网络实验中也有自己动手制作直通网线,这里也算是回顾一下:

当时制作过程中的几个步骤

直通线是指一根双绞线的两端水晶头(最常见的就是RJ45水晶头)压线的标准一致,这样做出来的线叫直通线。也就是一根网线的一头是用T568A标准压的,那另一头也用T568A标准来压,或者两头都用T568B标准来做,这叫直通线。交叉线就是一根双绞线的两端水晶头压线的标准不同,一头用T568A标准做,一头用T568B标准来做,那这根线就叫交叉线。(即两个水晶头的连线交叉连接,A水晶头的1,2对应B水晶头的3,6;而A水晶头的3,6对应B水晶头的1,2。)

上面提到了两种水晶头压线的国际标准——T568A标准、T568B标准(其中,T568B为平常所使用的线序)!

  • T568A:从左到右依次为1-绿白、2-绿、3-橙白、4-蓝、5-蓝白、6-橙、7-棕白、8-棕
  • T568B:从左到右依次为1-橙白、2-橙、3-绿白、4-蓝、5-蓝白、6-绿、7-棕白、8-棕

既然直通线与交叉线的两端水晶头压线不同,那么用途自然也有区别:

  • 直通线主要用于交换机(或者集线器Hub)UPLINK口来连接另一台交换机(或者集线器Hub)的普通端口,或者交换机普通端口连接计算机(终端)网卡
  • 交叉线主要用于交换机(或者集线器Hub)普通端口连接到交换机(或者集线器Hub)普通端口,或者计算机(终端)网卡连接计算机(终端)网卡

某些网络测试工具

ping

ping 程序通常用来检测网络的连通性和延时

  • 命令格式:
    • ping IP地址或主机名 [-t] [-a] [-n count] [-l size]
  • 参数含义:
    • -t不停地向目标主机发送数据;
    • -a 以IP地址格式来显示目标主机的网络地址 ;
    • -n count 指定要ping 多少次,具体次数由count来指定 ;
    • -l size 指定发送到目标主机的数据包的大小。
ping示例

tracert

  • tracert用来跟踪报文到达目的地所经过的路由器,也是常见的网络诊断工具之一(基于ICMP协议),UNIX下与之对应的是traceroute(基于UDP协议)。
  • 通常的网络诊断顺序是首先使用ping程序来检测网络的连通性,如果不通,则使用Trace程序来跟踪报文在那台路由器上丢失,然后再进行下一步的处理。
  • 处理机制:

tracert通过发送端口大于30000的UDP报文达到目的地,目的地的应用程序不能识别该端口,会返回ICMP的错误消息“port unreachable”给源;tracert同时使用IP header的TTL值,通过设置TTL值从1到最大值逐渐增加,UDP报文每经过一台设备,TTL值加一,并返回ICMP的消息,同时在返回的ICMP消息中记录设备接口地址,并打印处理。

tracert在每个TTL都发送三个UDP /ICMP报文,并记录每个报文返回的ICMP的时间值,如果在5秒内不能收到返回的ICMP报文,该时间值记录为“*”号。

tracert示例

参考文献