ICMP报文中Identifier字段的用处?

来源:百度知道 编辑:UC知道 时间:2024/04/20 00:12:46
ICMP报文中ID用在什么地方,起到什么作用,不同的操作系统、路由器发出的ICMP报文ID是不一样的,请列举你知道的操作系统或路由器发出的ICMP报文的ID及其变化规律,例如XP系统是0x0200且不变。
ICMP报文的ID对路由器NAT的影响?
请各位朋友帮忙回答,尽量不要贴个网址给我,不要给我发RFC文档,不要只是复制粘贴。请尽量详细的回答,谢谢你们。
中国协议分析网,网络大典,都是好网站,我也经常去看,RFC文档我都看了N遍了,实际上RFC文档规定的不够细,我问的这个问题是我找不到答案才来知道里面问,希望知道的朋友不吝赐教,谢谢
RFC中就一句话有用:For example, the identifier might be used like a port in TCP or UDP to identify a session,也就是说,identifier类似于TCP、UDP的端口,可用于区分不同的ping进程。
还有一点,大家在看RFC文档的时候尽量看英文的,我发现好多中文的都有错误或者翻译不完整

楼主的问题非常有意思,简单查了下资料,尽我所能,给你如下解释,其中如有谬误,请大家指正。

问题一:Identifier字段的目的你已经说过了,其实就是根据这个区分不同的PING进程。

问题二:对于unix以及类unix操作系统来说,icmp Identifier的内容就是ping的进程号,对于windows系统来说,具体参考如下:

Microsoft Windows NT - 256
Microsoft Windows 98/98SE - 512
Microsoft Windows 2000 - 512
Microsoft Windows ME - 768
Microsoft Windows 2000 Family with SP1 - 768

这里有个比较有意思的问题,既然windows系统的icmp Identifier是固定不变的,那么系统如何区别不同的Ping进程呢?实际上windows系统就不在根据Identifier来区别ping进程了,它是根据Sequence Number field来区分的。

问题三:ICMP报文的ID对路由器NAT的影响?关于这个问题,实际上是这样的,对于NAT,由于ICMP报文没有端口号,因此NAT将icmp Identifier来做为NAT映射的依据。这里又涉及到另一个非常有意思的处理,也就是NAT对于ICMP报文分片的处理。以下内容取至Cisco文档“How NAT Handles ICMP Fragments”,具体参考:http://www.cisco.com/warp/public/556/10.html,里面有三个case,我选取其中一个做说明,相信对楼主理解icmp Identifier在NAT中的作用有所帮助。

拓扑:
172.16.0.1(PC1)----router(10.10.10.3)---NAT---172.17.1