计算机网络 网络层 默认路由造成路由环路

默认路由造成路由环路


这些路由器都连成了一个环,每个路由器都连着交换机接着一个网段。

A和B计算机通信,可以看到去的时候数据包是顺时针方向,回来的时候数据包还是顺时针。

 还有一种情况A和B通信,去的时候千里迢迢,回来的时候一下子就回来了,很显然这样不合理,虽然网络可以通但是绕远了。 

使用默认路由省事,但是选择的路径未必是最佳的。

除了上面的问题,还有一个更大的问题,这样一个环会形成环路,A去ping了网络当中一个不存在的地址,这个时候计算机发了一个数据包,数据包就会在这个圈里来回转,永不消失,一直占用带宽。

好在IP协议有一种机制,防止路由环路,这个协议定义了一个字段TTL字段,叫做生存时间。

这个数据包每过一个路由器TTL就减一,当减为0的时候就将这个数据包丢掉。在发数据包的时候,都会有初始的TTL,比如Windows发包的时候默认是128,

 现在我这台计算机ping网关返回来的TTL是64,因为没有经过路由器,

C:\Users\12396>ping 172.17.0.2

正在 Ping 172.17.0.2 具有 32 字节的数据:
来自 172.17.0.2 的回复: 字节=32 时间=1ms TTL=64
来自 172.17.0.2 的回复: 字节=32 时间=2ms TTL=64

172.17.0.2 的 Ping 统计信息:
    数据包: 已发送 = 2,已接收 = 2,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 1ms,最长 = 2ms,平均 = 1ms
Control-C

要经过路由器,A向B发数据TTL是128,A ping B的时候发一个数据包过去,B返回响应,TTL是128,过一个路由器TTL变为127,再过一个路由器TTL变为126。

linux的TTL是64,Windows系统是128

这个是CCTV的网站,初步判断这个是Linux系统,发包的时候默认是64,最后是67,过的路由器个数是64-57

可以看到TTL过期了, 

可以看到从第二个地方发回来了TTL耗尽。这样就能够跟踪计算机到CCTV中间过了多少个路由器。

TTL目的就是防止数据包在网络当中来回转圈圈。

 没有环的时候也可能也可能造成往返转发,比如这个网络里面有两个路由器,一共有三个网段,如果A ping了这个网段当中不存在的地址,比如131.107.0.5,这样数据包就在两个路由器之前来回跳来跳去,最后TTL耗尽了,就丢掉了。这样相当于一个环,来回转圈,出不去了

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值