是什么机制保证了IP数据包最终能到达目的地?

金丝龙麟闪电劈 2013-12-12 04:55:07
请不要说什么,IP是不可靠的,我这里说的是理想情况不考虑线路等物理条件
到底是什么样的物理或逻辑模型,保证一个IP数据包,从一端发送到另一端?? 换句话说 每个路由器都只是决定了下一跳,那又是什么保证了,这不断的下一跳,能够到达目标地址?
...全文
808 45 打赏 收藏 转发到动态 举报
写回复
用AI写文章
45 条回复
切换为时间正序
请发表友善的回复…
发表回复
DDR2013 2013-12-20
  • 打赏
  • 举报
回复
路由器只是工作在IP层,只转发数据包,转发不转发由TTL决定。
DDR2013 2013-12-20
  • 打赏
  • 举报
回复
TCP的重传机制,如果主机没的到从机回应,就会重传数据包。
  • 打赏
  • 举报
回复
引用 44 楼 czarten 的回复:
[quote=引用 41 楼 wangdahu888 的回复:] [quote=引用 40 楼 ForestDB 的回复:] LZ去学习一下“图”这种数据结构,并且去学习下OSPF算法。
大牛,别光说不练,能简单的讲解下嘛? [/quote] 别无视我呀,38楼说的就是RIP算法的思想,也用不着图,OSPF则要再复杂一些,三言两语不好说清[/quote] RIP算法的什么思想呢?
你怎么了熊吉 2013-12-20
  • 打赏
  • 举报
回复
引用 41 楼 wangdahu888 的回复:
[quote=引用 40 楼 ForestDB 的回复:] LZ去学习一下“图”这种数据结构,并且去学习下OSPF算法。
大牛,别光说不练,能简单的讲解下嘛? [/quote] 别无视我呀,38楼说的就是RIP算法的思想,也用不着图,OSPF则要再复杂一些,三言两语不好说清
赵4老师 2013-12-20
  • 打赏
  • 举报
回复
搜“蚁群算法”?
ForestDB 2013-12-20
  • 打赏
  • 举报
回复
引用 41 楼 wangdahu888 的回复:
[quote=引用 40 楼 ForestDB 的回复:] LZ去学习一下“图”这种数据结构,并且去学习下OSPF算法。
大牛,别光说不练,能简单的讲解下嘛? [/quote] LZ不是要“模型”么,“图”就是模型。
  • 打赏
  • 举报
回复
引用 40 楼 ForestDB 的回复:
LZ去学习一下“图”这种数据结构,并且去学习下OSPF算法。
大牛,别光说不练,能简单的讲解下嘛?
ForestDB 2013-12-20
  • 打赏
  • 举报
回复
LZ去学习一下“图”这种数据结构,并且去学习下OSPF算法。
Meteor_Code 2013-12-20
  • 打赏
  • 举报
回复
理论上讲,每个路由交换设备在运行一段时间后内部都保存了一个自己可以得到的路由图,所以路由交换设备在得到一个包后通过目的地址知道应该从哪个端口穿出去可以达到 但一个路由交换设备不可能得到整个网络的布网状态,所以有个所谓的默认端口,用来连接你设定给他的更nb的路由交换设备,, 至于路由交换设备怎么得到网络连接信息,就是tcpip不是有一大堆协议吗?其中有好几个都是干这个事情的,,,
你怎么了熊吉 2013-12-20
  • 打赏
  • 举报
回复
引用 30 楼 wangdahu888 的回复:
我的意思是说,设计IP协议这个人,肯定有一个数学或物理模型,这个模型保证了正常情况,或者说是理想情况下,IP包,能从一端传到另一端。 那这到底是一个什么样的数学或物理模型呢?
你想太复杂了 首先,从一个路由器能发到相邻路由器,这个你没有什么疑惑吧? 那么假设,有个路由器A,它直接相连的邻居有B,C,D,然后A只要给每个邻居发一个包,告诉它们“我的邻居有B,C,D”,那么当B收到这个包,就知道“我可以通过A到达C,D”,这样一来,虽然B和C并不直接相连,但B知道怎样到达C,就这么简单
zilaishuichina 2013-12-19
  • 打赏
  • 举报
回复
引用 30 楼 wangdahu888 的回复:
我的意思是说,设计IP协议这个人,肯定有一个数学或物理模型,这个模型保证了正常情况,或者说是理想情况下,IP包,能从一端传到另一端。 那这到底是一个什么样的数学或物理模型呢?
lz为什么这么肯定 肯定有一个数学或物理模型 很多发明都是从日常生活中模仿出来的,人类最擅长的是模仿 并不是一定都有数据建模去验证可行性,实践就是最好的验证 日常生活,你从a点到b点, 你可能是:12路公交车 转 3号地铁 转 24路公交车 也可能是:12路公交车 转 4号地铁 转 5号地铁 你是怎么知道这两条线路的呢?谁来保证你一定可以从a点到达b点? 你是通过“学习”获得的。 可以是查地图,可以是问询别人获得经验,你可以是其中某一段路你以前走过所以认得路 只不过现在这些“学习”的事不需要数据包(人)去完成,而是路由器(站牌)自己完成 就像你到了一个站牌,输入你的目的地 站牌自己会告诉你坐哪一路车最方便快捷,坐到什么地方下 到了下一个地方,你再输入你的目的地 站牌再告诉你坐哪一路车,坐到什么地方下 如果你觉得这就是数学模型 那他就是数学模型好了~~~
熊熊大叔 2013-12-18
  • 打赏
  • 举报
回复
具体内容可以参见Tanenbaum的<计算机网络> 5.2节
熊熊大叔 2013-12-18
  • 打赏
  • 举报
回复
这是因为路由器生成路由下一条是遵循OSPF或BGP等路由协议, 这些协议使用的距离矢量路由算法或者链路状态路由算法已经在数学上证明了,在一般情况下网络拓扑发生改变时, 可以得到收敛的可行路由. 但是在一些非常极端情况下, 这些算法也可能出现收敛速度慢,或者乒乓路由现象, 所以IP机制是不可靠的.
  • 打赏
  • 举报
回复
我的意思是说,设计IP协议这个人,肯定有一个数学或物理模型,这个模型保证了正常情况,或者说是理想情况下,IP包,能从一端传到另一端。 那这到底是一个什么样的数学或物理模型呢?
  • 打赏
  • 举报
回复
引用 28 楼 CKnightx 的回复:
路由器维护了一个最近的通信table。如果有包从A路由通过,A路由会记下这个包从哪来(上一跳的地址)。 每个路由都有一个这样的table,就可以组成一个图。 至于包从源地址到目的地址,就是找一个路径了。 路由都会假设把包发到表中某个地址,可以发到目的地。没到达一个路由,都会在TTL的数字上减去1,当TTL数字变成0了,就丢弃了。
路由器维护了一个最近的通信table。如果有包从A路由通过 那这个包如何是到达A路由的呢?
  • 打赏
  • 举报
回复
引用 29 楼 wangdahu888 的回复:
[quote=引用 28 楼 CKnightx 的回复:] 路由器维护了一个最近的通信table。如果有包从A路由通过,A路由会记下这个包从哪来(上一跳的地址)。 每个路由都有一个这样的table,就可以组成一个图。 至于包从源地址到目的地址,就是找一个路径了。 路由都会假设把包发到表中某个地址,可以发到目的地。没到达一个路由,都会在TTL的数字上减去1,当TTL数字变成0了,就丢弃了。
路由器维护了一个最近的通信table。如果有包从A路由通过 那这个包如何是到达A路由的呢?[/quote] 貌似路由开机启动的时候,会广播一下。收到回应,就把回应的地址加入到table里面?
ztenv 版主 2013-12-18
  • 打赏
  • 举报
回复
引用 楼主 wangdahu888 的回复:
请不要说什么,IP是不可靠的,我这里说的是理想情况不考虑线路等物理条件 到底是什么样的物理或逻辑模型,保证一个IP数据包,从一端发送到另一端?? 换句话说 每个路由器都只是决定了下一跳,那又是什么保证了,这不断的下一跳,能够到达目标地址?
1、交换机或路由器的发送机制决定了, 2、下一跳并不是任意的下一跳,该跳的时候才跳(访问外网就跳,访问内网就不跳,直接从路由表查到MAC发送或通过ARP包学习MAC再发送)
排山和倒海 2013-12-17
  • 打赏
  • 举报
回复
这个应该主要了解路由协议吧,而且路由协议也没有指定这一次包走的是这条路,下一次也走这条路,都是自学习的吧。而且还有一个问题,至于丢包和重发,和具体应用有关,TCP,UDP之类的,或者自己做ACK。 丢包是说,路由器的缓存不够存储这么多数据,那他会把收到其他数据都丢弃~
  • 打赏
  • 举报
回复
路由器维护了一个最近的通信table。如果有包从A路由通过,A路由会记下这个包从哪来(上一跳的地址)。 每个路由都有一个这样的table,就可以组成一个图。 至于包从源地址到目的地址,就是找一个路径了。 路由都会假设把包发到表中某个地址,可以发到目的地。没到达一个路由,都会在TTL的数字上减去1,当TTL数字变成0了,就丢弃了。
赵4老师 2013-12-17
  • 打赏
  • 举报
回复
引用 26 楼 bijiaoben 的回复:
[quote=引用 14 楼 zhao4zhong1 的回复:] 《TCP-IP详解卷一:协议》 《TCP-IP详解卷二:实现》 《TCP-IP详解卷三:TCP事务协议,HTTP,NNTP和UNIX域协议》
我勒个去,我是个新手,逛了这么久,难得看到老赵你没念大悲咒[/quote]
加载更多回复(25)

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧