IP路由的选择

如果发送方与接收方直接相连(点对点),或在同一个网络内,那么IP数据报就能直接送达。
而大多数情况则是:发送方与接收方通过若干个路由器(Router)相连,数据包需要经过若干个路由器的转发才能送达。
那么这个“送货”的过程是怎样实现的呢?
IP所在的网络层在内存中有一个路由表,(输入命令route -n可查看),当发送一个数据包时,都需要先查询该表,具体过程为:
1、搜索路由表,如果能找到和目的IP地址相一致的主机,则将IP数据包发送给该主机;
2、搜索路由表,如果匹配主机失败,则匹配同子网的路由器(需要子网掩码的协助)。如果找到路由器,则将IP数据包发向该路由器;
3、搜索路由表,如果匹配同子网的路由器失败,则匹配同网络号的路由器。如果找到路由器,则将IP数据包发向该路由器;
4、如果匹配同网络号的路由器失败,就搜索默认路由,如果默认路由存在,则发包;
5、如果以上都失败了,就丢掉这个包;
6、接收到数据包的路由器再按照它自己的路由表继续转发,直至数据包被转发给目的主机;
7、如果在转发过程中,IP数据包的TTL被减至0,就丢掉这个包。

另:
  • 查看路由表:route -n
  • 追踪路由过程:traceroute www.baidu.com
  • 安装traceroute工具:apt-get update; apt-get install -y traceroute

全部评论
第2步,如果路由表中有多个同子网的路由器,是向所有符合条件的路由器发包吗?
点赞 回复 分享
发布于 2019-04-21 21:09

相关推荐

11-03 14:38
重庆大学 Java
AAA求offer教程:我手都抬起来了又揣裤兜了
点赞 评论 收藏
分享
点赞 6 评论
分享
牛客网
牛客企业服务