一.路由转发
网络数据包IP段只包含源地址与目的地址,经过数据链路层包装与物理层信号形式转换,最终经由不同的链路节点到达目的地址。这个过程是一步一步(hop by hop)进行的,路过一个路由节点则称为一跳。每个路由节点都存在一个路由表,需要从表中针对目的地址进行匹配,选择下一跳节点路径。最终经过多跳数据报传送至目的节点。
在计算机网络中,路由表(routing table)或称路由择域信息库(RIB, Routing Information Base),是一个存储在路由器或者联网计算机中的电子表格(文件)或类数据库。路由表存储着指向特定网络地址的路径(在有些情况下,还记录有路径的路由度量值)。路由表中含有网络周边的拓扑信息。路由表建立的主要目标是为了实现路由协议和静态路由选择。
例如,使用traceroute追踪HTTP服务数据报传输至Baidu的路由转发情况如下:
二.LPM最长前缀匹配
最长前缀匹配是指在IP协议中,被路由器用于在路由表中进行选择的一个算法。因为路由表中的每个表项都指定了一个网络,所以一个目的地址可能与多个表项匹配。最明确的一个表项——即子网掩码最长的一个——就叫做最长前缀匹配。之所以这样称呼它,是因为这个表项也是路由表中,与目的地址的高位匹配得最多的表项。
路由表中包含多个CIDR条目。无类别域间路由(Classless Inter-Domain Routing、CIDR)是一个用于给用户分配IP地址以及在互联网上有效地路由IP数据包的对IP地址进行归类的方法。0.0.0.0代表默认路由。171.33.0.0/16代表掩码占用16位即171.33.0.1 - 171.33.255.255中所有Ipv4地址都可以与其进行匹配。