首页 > 代码库 > 对TCP/IP协议的一些看法(13):IP路由

对TCP/IP协议的一些看法(13):IP路由

之前在介绍网络层协议的时候忘记介绍一个很重要的知识点:IP路由。

曾经讲过如果两个通信方的IP地址不在同一个子网内,那么两者要进行通信,数据包需要经过路由器进行转发,可能要经过多个路由器才能到达接收方。那么路由器是怎么工作的呢?其实最核心的一点是路由器内有一张路由表,它包括了以下几类信息:

1.目的IP地址:它既可以是一个完整的主机地址,也可以是一个网络地址。

2.下一跳路由器的IP地址,指的是一个在直连网络上的路由器。

3.标志。其中一个标志指明目的IP是主机地址还是网络地址,另一个标志表明下一跳路由器是否为真正的下一跳路由器,还是一个直连的网络接口。

IP路由的步骤如下:

1.在路由表中搜索目的地址,若存在,则将IP数据包直接发到该地址,否则转2.

2.搜索目的网络对应的子网地址,若存在,则发送到子网号对应的下一跳地址,否则转3.

3.搜索目的网络所对应的网络号,若存在,则发送到该网络号对应的吓一跳路由器,否则转4.

4.查找默认路由,若存在则进行转发, 否则丢弃。

因此路由表包括了动态路由控制和静态路由控制,显然,动态路由策略能够进行自适应调整,但开销较大。其又包括了内部网关协议IGP(包括著名的RIP和OSPF)和外部网管协议EGP(基于迪杰斯特拉算法)。而静态路由控制是在配置接口的时候,以默认的方式生成路由表项,可以通过route指令进行表项的生成或删除等操作。其开销小,但不能适应网络的变化。

对TCP/IP协议的一些看法(13):IP路由