设为首页收藏本站language 语言切换
查看: 3131|回复: 7
收起左侧

[求助] 请问路由器接收到一个数据包时的工作过程有些混淆

[复制链接]
发表于 2015-4-28 08:48:45 | 显示全部楼层 |阅读模式
5鸿鹄币
路由器接收到一个数据包时,工作过程如下:
首先提取数据包头的目的MAC信息,与自身MAC表比较:
1如果找到对应项,则按MAC表进行转发(与交换机一样);
2:如果没找到则提取数据包头的目的IP信息,则与自身的路由表进行比较,      找到了对应的路由表,则按着路由表转发,没找到对应路由表,则按着缺省路由转发
请问上面说的对不对?
还是路由器接收到一个数据包时无论何种情况都要提取IP信息?





最佳答案

查看完整内容

路由器收到包后,首先检查目的Mac地址,如果Mac地址是他的,路由器就进行二层的解封装,数据包中的源Mac和目的Mac都被丢掉;这时数据包还有三层封装,就是源IP和目的IP,路由器继续检查目的IP,如果目的IP是他的任何一个接口的IP地址,他都会认为这个包是给他的,路由器进行三层解封装,将ping包交给Icmp处理。
发表于 2015-4-28 08:48:46 | 显示全部楼层
路由器收到包后,首先检查目的Mac地址,如果Mac地址是他的,路由器就进行二层的解封装,数据包中的源Mac和目的Mac都被丢掉;这时数据包还有三层封装,就是源IP和目的IP,路由器继续检查目的IP,如果目的IP是他的任何一个接口的IP地址,他都会认为这个包是给他的,路由器进行三层解封装,将ping包交给Icmp处理。
沙发 2015-4-28 08:48:46 回复 收起回复
回复

使用道具 举报

发表于 2015-4-28 12:32:03 | 显示全部楼层
请参考图
路由器收到数据时的基本处理流程.png
板凳 2015-4-28 12:32:03 回复 收起回复
回复

使用道具 举报

发表于 2015-4-28 13:12:54 | 显示全部楼层
在无类环境中要使用路由表里的每条路由条目的掩码跟数据包的目的IPV4地址作布尔逻辑与运算
地板 2015-4-28 13:12:54 回复 收起回复
回复

使用道具 举报

 楼主| 发表于 2015-4-28 22:49:52 | 显示全部楼层
本帖最后由 swfw 于 2015-4-28 23:08 编辑

还是不太明白,
比如是发给路由器自己的接口ip,但这个ping包不是发给接收包的那个接口,而是另一个自己的接口但不同网段,
如果收到时TTL =1, 那么路由器就不转发给下一个路由器了,那会发到那个不同网段的自己的接口么?或者不同网段自己的loopback口?因为ebgp建邻居loopback口ttl值要为2.    如果进来时ttl就为1那TTL减 1判断为零是在哪个阶段?

路由器判断是否发给自己的某个接口ip地址(未必是接收包的那个口)是查路由表做布尔逻辑与运算看是否直连还是另外根据什么表直接就知道是自己的接口????

5# 2015-4-28 22:49:52 回复 收起回复
回复

使用道具 举报

发表于 2015-4-29 20:38:24 | 显示全部楼层
关于ttl,首先要知道他什么时候减1,路由器收到IP报文,将ttl减1,发报文时不减1。
ebgp对等体(邻居),一般都是直连的,你ttl设置为2,邻居收到后将ttl减1,这时ttl=1,报文不会被丢弃。
作为路由器,他知道自己所有接口的IP地址,包括loopback接口,只要数据包的目的IP和他任何一个接口的IP一样,这个包就是他的,至于什么表,我也不知道,比如show ip interface brief,你说这个命令是通过什么表查询到的,我也不知道。
6# 2015-4-29 20:38:24 回复 收起回复
回复

使用道具 举报

 楼主| 发表于 2015-5-2 07:40:32 | 显示全部楼层
真心感谢各位回答!
7# 2015-5-2 07:40:32 回复 收起回复
回复

使用道具 举报

 楼主| 发表于 2015-5-2 07:41:14 | 显示全部楼层
真心感谢各位回答
8# 2015-5-2 07:41:14 回复 收起回复
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-5-21 13:22 , Processed in 1.356839 second(s), 31 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表