| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1264 人关注过本帖
标题:路由器对IP包做了什么处理?
只看楼主 加入收藏
redice
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:902
专家分:0
注 册:2006-12-11
结帖率:72.73%
收藏
 问题点数:0 回复次数:2 
路由器对IP包做了什么处理?

[bold]网关路由对数据包所做的处理?[/bold][bold][/bold]


[italic]
[/italic]
通过Ether Peek抓取IP包,分析这些数据包后我发现它们有一个共同特征(都含有如下四部分信息):

Destination:
目的主机的MAC地址
Source:
源主机的MAC地址
Source IP Address:
目的IP(不一定是与Destination MAC对应的IP)
Dest. IP Address:

源IP(不一定是与Source MAC对应的IP)
我想得知网关路由对数据包所做的处理,做了以下试验:

1 Ping 某主机(该主机与我的网关路由器处于同一级局域网,也就是我所在子网的上一级网络)
2 抓包
3 总结一共抓取到了10个有关的IP包(如下统计)

ARP请求  1个  由本机发出广播,查询我使用的网关的MACARP应答
ARP应答 1个   由我的网关路由发出
ICMP Request

[size=3][font=宋体]ICMP Request   4个   包中部分信息如下[/font][/size]
Destination:
我的网关路由MAC
Source:
我的网卡MAC
Source IP Address:
我的IP
Dest. IP Address:

ICMP Response   4个   包中部分信息如下
Destination:
我的网卡MAC
Source:
我的网关路由MAC
Source IP Address:
目标IP
Dest. IP Address:

我的IP
我想得知网关路由对数据包所做的处理,但是我无法抓取到我的ICMP Request包通过路由后的包。仔细一想,我虽然不能抓取到我的ICMP Request包通过路由后的包但是我能抓取到目标主机返回的数据包通过路由后的数据包。我上面所抓取的4个Arp Response包就是这样的包。

推测一:
分析这四个包,我推测如下:通过网关路由器的数据包,网关路由器并没有修改“Source IP Address:
Dest. IP Address:”这两部分内容,只是修改了“Destination:Source:”这两部分内容。


推测二:

根据我的这个推测我试图解释整个Ping过程的数据包发送情况(假设所有机器的ARP缓存刚开始都是空的):当我在CMD下输入”Ping IP”并按下回车后,本地网络服务程序先判断该IP是否是同一局域网的IP(通过子网掩码与该IP进行运算)。如果是内网IP则先通过ARP广播获取目的主机的MAC,得到MAC后网络服务程序就将含有ICMP包发送至目的主机。如果不是内网IP则先获取网关路由的MAC,然后将ICMP包先发至网关,网关收到该数据包,先判断包中的“Dest. IP Address:”,然后决定是继续发送到下一路由还是发送到同一级的网络主机(当然这一过程也少不了ARP查询)。总之,这样一级一级地传送,最终这个ICMP包被传送到了目的主机。目的主机利用包中的Source IP Address:”信息产生响应的ICMP应答信息数据包,该包中的Dest. IP Address:”与收到的ICMP请求包中的Source IP Address:”一致。这样该数据包就再通过一级一级的传送最终到达我的机器。

我这样的推测似乎合理,但是如果我发送的ICMP请求中的“Source IP Address:”是内网IP,那么目的主机怎么能正确地将响应数据包发送给我呢?

请问我的推测一正确吗?推测二呢?如果推测二正确那最后的那个问题该如何解释呢?

[[italic] 本帖最后由 redice 于 2007-11-29 06:26 编辑 [/italic]]
搜索更多相关主题的帖子: 路由器 
2007-11-28 11:01
古木夕阳
Rank: 2
等 级:新手上路
威 望:4
帖 子:286
专家分:0
注 册:2007-10-4
收藏
得分:0 
不太明白   ,不过帮你顶下

美思乐特产  店铺虽小, 胃口不小。 http://shop62436858./
2007-12-07 18:48
redice
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:902
专家分:0
注 册:2006-12-11
收藏
得分:0 
查了一些资料,我清楚了:

路由器是不会将IP包中的目的IP进行修改的。它要对源MAC和目的MAC进行修改。连接内外网的路由器还回将源MAC修改成一个合法的外网IP(NAT映射)。

鲲鹏数据 - 专业Web数据采集服务提供者
http://www.
2007-12-08 11:22
快速回复:路由器对IP包做了什么处理?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.046241 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved