ping命令 外网回显 在一个局域网中用ping命令 ping外网的时候(外网出去共用一个公网地址),回显信息是如何传回本机的。一般UDP,TCP通信可以用NAPT,这里的端口是不是指UDP,TCP中的字段。但是Ping命令没有端口字段,那应该怎么实现。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个是用raw socket可参考一下:http://zhidao.baidu.com/question/16772008.html http://blog.csdn.net/VisualEleven/archive/2010/04/21/5512462.aspx 可能我没说清楚,我要的不是如何编程实现ping我的意思是当我用ping命令ping外网时,回显信息是如何传回我主机的(主机在局域网中,整个局域网公用一个公网地址,ping的对象是外网的)。我想知道的是回显信息传回我主机的时候。当回显信息传到路由器的时候,路由器怎么判断这个回显信息是那个主机的。 一般TCP UDP通信是可以用 端口+IP地址 。 但ping命令发的是ICMP包,没有端口号,这个应该怎么识别。 ICMP不是还带着IP的嘛,再底层一点还有MAC地址。 打个比方说一个局域网的两台机子同时ping一个外网地址。他们出口地址都是一样的,当外网地址回显信息的时候,他回显ICMP包中目的IP地址和MAC地址都应该是一样的,都是局域网共同的出口地址那他怎么判断回显的包是那一台主机的。 引至网上:这个问题涉及到NAT和ICMP本身,内网发送ICMP请求的时候,在ICMP的包头中有一个identifier参数,这个值就像tcp/udp中的端口号一样用来标识一个会话,不同的内网主机ping会产生不同的identifier,而echo-reply中的identifier是与echo- request保持一致的,这时候做NAT的路由器就知道echo-reply该回到哪个内网主机了。至于echo request与echo reply的对应是根据ICMP包头中的sequence number做对应的. 参考一下:http://zhidao.baidu.com/question/19266489.html dll问题 WM_ERASEBKGND消息处理中绘制半透明背景,但窗口移动后显示不正常 初学visual c++ 星际译王和金山词霸 用什么算法实现动态显示译词? 截屏被阻止怎么办?像nProject子类的保护软件,导致截屏失败。 UltraEdit"换行"的时候能不能象VC++的文本编辑器一样,自动判断下行的缩进的位置 如何把CString 对象转化为unsigned short str[6000] 要连续读入200个300KB大小的图形文件,怎样读最快 屏幕不刷新??? 如何在VC中进行鸣叫提示? ADO操作MYSQL数据库,不能查找到表内数据 急,各位高手帮帮忙,在线等
可参考一下:
http://zhidao.baidu.com/question/16772008.html
我要的不是如何编程实现ping
我的意思是当我用ping命令ping外网时,回显信息是如何传回我主机的(主机在局域网中,整个局域网公用一个公网地址,ping的对象是外网的)。
我想知道的是回显信息传回我主机的时候。当回显信息传到路由器的时候,路由器怎么判断这个回显信息是那个主机的。 一般TCP UDP通信是可以用 端口+IP地址 。 但ping命令发的是ICMP包,没有端口号,这个应该怎么识别。
ICMP不是还带着IP的嘛,再底层一点还有MAC地址。
一个局域网的两台机子同时ping一个外网地址。他们出口地址都是一样的,当外网地址回显信息的时候,他回显ICMP包中目的IP地址和MAC地址都应该是一样的,都是局域网共同的出口地址
那他怎么判断回显的包是那一台主机的。
引至网上:
这个问题涉及到NAT和ICMP本身,内网发送ICMP请求的时候,在ICMP的包头中有一个identifier参数,这个值就像tcp/udp中的端口号一样用来标识一个会话,不同的内网主机ping会产生不同的identifier,而echo-reply中的identifier是与echo- request保持一致的,这时候做NAT的路由器就知道echo-reply该回到哪个内网主机了。至于echo request与echo reply的对应是根据ICMP包头中的sequence number做对应的.
参考一下:
http://zhidao.baidu.com/question/19266489.html