您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > Ping过程正确详解-wy
1Ping过程正确详解先看拓扑图:主机A:IP:1.1.1.1MAC:00-50-56-C0-00-01主机B:IP:1.1.1.3MAC:00-50-56-C0-00-03路由器1端口IP:1.1.1.2MAC:00-50-56-C0-00-02主机C:IP:2.1.1.1MAC:00-50-56-C0-00-05路由器2端口IP:2.1.1.2MAC:00-50-56-C0-00-04图1拓扑图本文讲两种情况,一种是同一网段ping,一种是跨网段的ping。首先,如果主机A,要去ping主机B,会先查自己的MAC地址表,如果表中没有主机B的MAC地址,主机A就会向外发送一个ARP请求包(广播包,目的是请求获取主机B的MAC地址),如图2。主机A:IP:1.1.1.1MAC:00-50-56-C0-00-01主机B:IP:1.1.1.3MAC:00-50-56-C0-00-03路由器1端口IP:1.1.1.2MAC:00-50-56-C0-00-02主机C:IP:2.1.1.1MAC:00-50-56-C0-00-05路由器2端口IP:2.1.1.2MAC:00-50-56-C0-00-04图2ARP请求包2其中ARP请求包报文格式如下:以太网目的MAC以太网发送端MAC帧类型硬件类型协议类型64OP以太网发送端MAC发送端IP以太网目的MAC目的IPFF-FF-FF-FF-FF-FF00-50-56-C0-00-01080600010800100-50-56-C0-00-011.1.1.100-00-00-00-00-001.1.1.3操作类型(op):四中操作类型。ARP请求(1),ARP应答(2),RARP请求(3),RARP应答(4)。首先,交换机会收到这个报文后,交换机有学习MAC地址的功能,所以他会检索自己有没有保存主机B的MAC,如果有,就返回给主机A,如果没有,就会向所有端口发送ARP广播,其它主机收到后,发现不是在找自己,就纷纷丢弃了该报文。主机B收到报文后,就立即响应,我的MAC地址是要A要找的,同时学到主机A的MAC地址,并向主机A发送ARP报文,如图3。主机A:IP:1.1.1.1MAC:00-50-56-C0-00-01主机B:IP:1.1.1.3MAC:00-50-56-C0-00-03路由器1端口IP:1.1.1.2MAC:00-50-56-C0-00-02主机C:IP:2.1.1.1MAC:00-50-56-C0-00-05路由器2端口IP:2.1.1.2MAC:00-50-56-C0-00-04图3ARP应答过程ARP应答单播报文格式:以太网目的MAC以太网发送端MAC帧类型硬件类型协议类型64OP以太网发送端MAC发送端IP以太网目的MAC目的IP00-50-56-C0-00-0100-50-56-C0-00-03080600010800200-50-56-C0-00-031.1.1.300-50-56-C0-00-011.1.1.1此时候主机A学到了主机B的MAC地址,ICMP协议把这个MAC封装到二层报文中(回显请求)向主机B发送,报文格式如下:目的地址源地址…源IP目的IP…ICMP报文00-50-56-C0-00-0300-50-56-C0-00-011.1.1.11.1.1.3Echorequest3当主机B收到主机A的回显请求报文后,将按ICMP回显应答报文的格式,返回一个报文给主机A,至此完成了同一网段内的ping过程,ping实际过程的发生不到1毫秒。目的地址源地址…源IP目的IP…ICMP报文00-50-56-C0-00-0100-50-56-C0-00-031.1.1.31.1.1.1Echoanswer如果主机A要ping主机C,那么主机A发现主机C的IP和自己不是同一网段,主机A会去找网关转发,但是主机A也不知道网关的MAC情况下呢?主机A就会向之前步骤一样先发送一个ARP广播,学到网关的MAC,再发ICMP报文给网关路由器。报文格式如下:目的地址源地址…源IP目的IP…ICMP报文00-50-56-C0-00-0200-50-56-C0-00-011.1.1.12.1.1.1Echorequest当路由器收到主机A发送的ICMP回显请求报文,发现报文的目的MAC地址是自己的MAC地址,路由器根据目的IP2.1.1.1,查路由表,发现2.1.1.1/24的路由表项,得到一个出口指针,路由器将使用自己的MAC地址替换报文中的源MAC地址,向主机C转发ICMP回显请求,(如果路由器没有主机C的MAC地址,还是如前面步骤一样利用ARP协议获取主机C的MAC地址),报文格式如下:目的地址源地址…源IP目的IP…ICMP报文00-50-56-C0-00-0500-50-56-C0-00-041.1.1.12.1.1.1Echorequest最后,在主机C已学到路由器2端口的MAC的情况下,ICMP回显应答将发送给路由器的2端口,然后路由器2端口转发给路由器1端口,路由器1端口再转发给主机A。报文格式大致如下:目的地址源地址…源IP目的IP…ICMP报文00-50-56-C0-00-0400-50-56-C0-00-052.1.1.11.1.1.1EchoAnswer4ARP帧类型:以太网目的地址以太网源地址硬件类型帧类型协议类型6BYET622212发送者硬件地址发送者网络地址64目标硬件地址硬件地址长度(6)协议地址长度(4)硬件类型(以太网:0x0001)协议类型(IP地址:0x0800)帧类型(ARP/RARP:0x0806)目标网络地址6412字节28字节OP1以太网目的地址:目的主机的硬件地址。目的地址全为1的特殊地址是广播地址。以太网源地址:源主机的硬件地址。帧类型:对于ARP协议,该字段为0x0806。对于RARP协议,该字段为0x8035。硬件类型:表示硬件地址的类型。值为1时表示以太网地址。也就是说ARP协议不仅仅应用于以太网协议,还可以支持别的链路层协议。协议类型:表示要映射的协议地址类型。值为0x0800时表示IP协议。硬件地址长度:与硬件类型对应的硬件地址的长度,以字节为单位。如果是以太网,则是6字节(MAC长度)。协议地址长度:与协议类型对应的协议地址长度,以字节为单位。如果是IP协议,则是4字节(IP地址长度)。操作类型(op):四中操作类型。ARP请求(1),ARP应答(2),RARP请求(3),RARP应答(4)。发送端硬件地址:如果是以太网,则是源主机以太网地址,此处和以太网头中的源地址对应。发送端协议地址:如果是IP协议,则表示源主机的IP地址。目的端硬件地址:如果是以太网,则是目的以太网地址,和以太网头中的目的地址对应。目的端协议地址:如果是IP协议,则表示源主机要请求硬件地址的IP地址。对应ARP请求包来说,目的端的硬件地址字段无须填充,其他字段都需要填充。对于ARP回复包来说,所有字段都需要填充。APR请求包是广播的,但是ARP应答帧是单播的。以太网数据报最小长度是60字节(14字节的以太网头,不包含4字节的FCS),ARP数据包长度为42字节(14字节的以太网头和28字节的ARP数据),需要加入填充字符到以太网最小长度要求:60字节。
本文标题:Ping过程正确详解-wy
链接地址:https://www.777doc.com/doc-2850878 .html