TCP/IP详解 卷1 IP路由选择

简单描述

如果目的主机与源主机是点对点,同一个共享网络上(以太网或令牌环网)。那么IP数据将会直接发送到目的主机上。否则就发到默认路由上,由路由器来转发

路由表

IP从TCP UDP,ICMP,IGMP或1个网络接口获取数据报并进行发送。IP层在内存中有一张路由表,当接收到数据报时会先搜索路由表。看下数据报的首部目的IP是不是本机的IP地址或者IP广播地址。是的话在根据首部中写明的协议类型指定相应的协议模块处理。如果不是则有两种情况。本机的IP层被设置成具有路由功能的时候,则进行转发。如果没有此功能,则丢弃该数据报

路由表内容
  1. 目的IP地址,可以是一个网络地址
  2. 下一站(下一跳)路由器的IP地址,或者直接连接的IP地址。下一站路由器不是最终目的。但可以通过它将数据报传送至目的地址
  3. 标志 包含两部分,
    1. 表示目的IP是主机地址还是网络地址
    2. 表示下一站是路由器还是直连接口
  4. 指定网络接口
IP路由选择过程

获取IP数据报之后:

  1. 搜索路由表,寻找能与目的IP地址(看标志)相匹配的表目(网络号和主机号均要匹配)。如果找到就讲数据报发送至该表目中指名的下一站路由或直连接口
  2. 搜索路由表,寻找能与目的IP相匹配的网络号,然后将数据报发送至该匹配的表目中指名的下一站路由或直连接口,需要考虑子网掩码。
  3. 如果这两种都无法找到相匹配的表目,则寻找路由表中被标为默认的表目,将数据报丢过去
  4. 如果也没有默认表目,一般是生成差错报文返回给源主机(“主机不可达”或“网络不可达”)
举例

在这里插入图片描述
目的IP主机140.252.13.,33,
目的网络 140.252.13.0
源IP主机收到上层协议发过来的发送数据报请求。发现目的IP与本机IP处在1个直连的网络上。那么将会将数据直接发送过去。

另一个例子

在这里插入图片描述
源主机IP:140.252.13.35(主机名bsdi)
目的IP: 192.48.96.9
顺序:

  1. bsdi搜索路由表发现没有与之匹配的IP地址和网络地址。则发送至默认表目的下一站主机(140.252.13.33)(主机名sun,被设置成具有路由功能)
  2. sun发现该数据报的目的IP也与自己的路由表目不匹配,然后就丢给默认表目的下一站主机(140.252.1.183)(主机名netb,被设置成具有路由功能)采用SLIP协议传输
  3. netb发现该数据报目的IP与自己的路由表的表目都不匹配。依然是丢给默认表目的下一站路由器(这次是路由器了,140.252.1.4)
  4. 路由器搜索路由表。依然没有匹配的,就丢给默认表目(140.252.104.2)
总结
  1. 大多数情况下都是使用默认路由表目
  2. 目的IP不会发生变化,所有的路由决策都基于该目的IP
  3. 链路层的目的IP地址始终是下一站的链路层地址,SLIP没有该地址
  4. 以太网地址通过ARP转换
发布了239 篇原创文章 · 获赞 31 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/soulwyb/article/details/102836225