报文格式以ping arp数据包转发过程概要.docx
《报文格式以ping arp数据包转发过程概要.docx》由会员分享,可在线阅读,更多相关《报文格式以ping arp数据包转发过程概要.docx(28页珍藏版)》请在冰豆网上搜索。
报文格式以pingarp数据包转发过程概要
STP数据流分析过程
一:
以太网帧格式(EthernetII)
数据长度64-1518(前导码不属于数据部分)
7字节
1字节
6字节
6字节
2字节
46-1500字节
4字节
前导码
帧首定界符
目的MAC地址
源MAC地址
类型:
3种
数据(可变长度)
CRC(帧校验序列:
0x0)
0800:
IP数据报
0806:
ARP请求/应答
8035:
RARP请求/应答
←—————————以太网帧首部—————————→↑↑
IP报文ARP报文
插入Vlan标签后
EthernetII帧变成
Ethernet802.1q帧
二:
IP数据报格式(IPDatagram)位数
04816192431
4版本
4首部长度
6区分服务
16总长度
16标识
3标志
13片偏移
8生存时间
8协议:
200多种如
PRO:
0x1(ICMP报文)
PRO:
0x118(STP协议)
16首部检验和
32源地址(IP)
32目的地址(IP)
可选字段,可变长度(如果有)
填充
数据部分
注释:
前5行固定字节20前6行组合成(IP首部)协议:
200种最底页
IP数据报完整结构
IP帧首部(前6行)
数据部分
↑↑↑↑
ICMP报文格式STPOSPFARP请求
三:
ARP/RARP格式(地址解析协议/逆地址解析协议)
单位:
字节
14
2
2
1
1
2
6
4
6
4
以太网帧首部
硬件类型
协议类型
硬件地址长度
协议地址长度
OP(选项字段)
0x1:
ARP请求
0x2:
ARP应答
源MAC
源IP
目的MAC
目的IP
←———————————28位字节ARP请求/应答———————————————→
四:
ICMP报文(互联网控制消息协议)
单位:
位
IP头部20字节
(4)类型
(4)代码
(8)校验和
(4)标示符
(8)序列号
(16)选项(有很多种格式)可不选
←—IP部分—→←———————————ICMP格式—————————————→
ICMP定义了五种常用差错报文和八种询问报文类型,差错报告报文的类型有一下几个:
类型3:
目的站不可达格式表达→类型:
0x3
类型4:
源站抑制
类型5:
改变路由
类型11:
时间超过
类型12:
参数问题
查询报文的类型有一下几个:
类型8或0:
回送请求或回答
类型13或14:
时间戳请求或回答
类型17或18:
地址掩码请求或回答
类型10或9:
路由器询问或通告
协议数据单元PDU(ProtocolDataUnit)是指对等层次之间传递的数据单位。
协议数据单元(ProtocolDataUnit)物理层的PDU是数据位(bit),数据链路层的PDU是数据帧(frame),网络层的PDU是数据包(packet),传输层的PDU是数据段(segment),其他更高层次的PDU是数据(data)。
一:
明白在以太网中,PDU是封装在Ethernet帧中进行传输的。
1:
ARP数据包封装在Ethernet帧中的数据部分传输。
2:
ICMP报文封装在IP数据报的中的数据部分,IP数据报封装在Ethernet帧中进行传输。
3:
三层交换机在重新封装个数据包的时候会插入对应网段的vlan标签
4:
当路由器其中的一个借口有子接口的时候,在重新封装数据包的时候会重子接口发出,
进入交换机的借口的时候会打上一个Vlan的标签
5:
路由器工作原理
路由条目:
由协议生产、记录的IP地址信息、从哪个接口出去。
路由学习:
从其他路由器哪里学习到路由条目(一定是可用正确的)存放到路由表,然后传
播路由条目给其他路由器。
路由功能:
收到数据后,会根据路由表处理接收数据,然后转发数据。
可以通过路由协议学
习路由条目
路由表:
顾名思义、存满了路由条目,并且记录了这条路由从哪个接口出去
网关:
路由器接口有了IP地址就是网关,成为网关后就拥有了路由功能
6交换机工作原理
ARP缓存表:
ARP缓存表里存放着MAC地址,并且在MAC地址上映射上了出接口的端
口号。
运算
交换功能:
不对任何数据进行更改、只针对数据进行转发
MAC地址学习功能:
学习源MAC地址
五:
STP流量分析过程详解
第一阶段ARP学习过程配置已全
SW3Fa0/3允许vlan10通过,堵塞vlan11Fa0/4允许vlan11通过,堵塞vlan10
1:
PC1pingPC2。
<1>192.168.10.100ping192.168.11.100首先PC1将目标IP地址192.168.11.100和自己的源IP地址192.168.10.100进行位与运算,发现与目标IP不在同一个网段
<2>所以要将数据交给自己的网关SW1192.168.10.1
2:
PC1查看自己的ARP缓存表。
<1>由于PC1没有网管的MAC地址,需要发送一个ARP请求广播包从请求网关的MAC地址,所以ARP进程会为目标IP地址构建一个ARP请求,设备将PDU封装成Ethernet帧从FastEthernet端口出去
进入SW3后会打上Vlan10的标签
注:
(PC1)表示数据在PC1阶段
来源
目的MAC
源MAC
目的IP
源IP
处理层PC1
00X6
PC1
192.168.10.1
192.168.10.100
目的地SW2
(PC1)→SW3
3:
SW3收到带有vlan10的Ethernet帧(ARP请求广播包)后:
交给ARP进程处理。
<1>查看ARP缓存表,如果没有则学习PC1的MAC地址并且记录对应的端口,更新ARP缓存表。
<2>除接收到Ethernet帧广播包的端口,对其他所有端口进行广播泛红。
从Fa0/3转发出去→交换机的转发功能
目的MAC
源MAC
目的IP
源IP
来源PC1
00X6
PC1
192.168.10.1
192.168.10.100
处理层SW3
00X6
PC1
192.168.10.1
192.168.10.100
目的地SW1
PC1→(SW3)→SW1
4:
SW1从Fa0/3端口收到带有vlan10的Ethernet(ARP请求广播包)后,拆封交给ARP进程处理。
<1>查看ARP请求包,并且拆封到第三层,然后查看ARP缓存表,如果没有则学习PC1的MAC地址和IP地址并且记录对应的端口,更新ARP缓存表。
<2>发现ARP的帧是请求帧,请求的目的IP自己的,ARP进程处理后进行后,会重新封装一个ARP应答单播包,封进Ethernet帧并且插入一个vlan10的标签
<3>查看ARP缓存表从记录的对应端口Fa0/3发出单播。
例:
ARP缓存表
目的MAC
源MAC
目的IP
源IP
来源SW3
00X6
PC1
192.168.10.1
192.168.10.100
处理层SW1
PC1
SW1Vlan10
192.168.10.100
192.168.10.1
目的地SW3
PC1→SW3→(SW1)→SW3
5:
SW3从Fa0/3接收到带有vlan10的Ethernet帧(ARP请求单播包)后,拆封交给ARP进程处理。
<1>查看ARP应答单播包信息,拆封至第二层。
学习SW1MAC的地址并且记录对应的端口Fa0/3,更新ARP缓存表
<2>发现目的MAC地址是PC1的,查看出对应的端口是Fa0/10
<3>ARP应答单播帧插入Ethernet帧从Fa0/10进行转发
目的MAC
源MAC
目的IP
源IP
来源SW1
PC1
SW1Vlan10
192.168.10.100
192.168.10.1
处理层SW3
PC1
SW1Vlan10
192.168.10.100
192.168.10.1
目的地PC1
PC1→SW3→SW1→(SW3)→PC1
6PC1收到来自SW1的Ethernet(ARP回应单播)后,拆封交给ARP进程处理。
<1>查看ARP数据,学习SW1的MAC地址,并更新自己的ARP缓存表
<2>拥有网关SW1的MAC地址后,就可以将数据发给自己的网关了
<3>ping进程创建一个ICMP报文交给底层进程处理,最后封装进Ethernet帧
<4>底层进程将Ethernet帧从Fa0/10接口出发,进入SW3后插入vlan10的标签
目的MAC
源MAC
目的IP
源IP
来源SW3
PC1
SW1Vlan10
192.168.10.100
192.168.10.1
处理层PC1
SW1
PC1
192.168.11.100
192.168.10.100
目的地SW3
PC1→SW3→SW1→SW3→(PC1)→SW3
7SW3从Fa0/10接收到带有vlan10的Ethernet帧(ICMP请求)单播包后。
<1>拆开至第二层查看目的MAC地址,然后查看ARP缓存表有目的MAC地址和对应的端口Fa0/3
<2>按照对应的端口将ICMP报文从Fa0/3转发出去
目的MAC
源MAC
目的IP
源IP
来源PC1
SW1
PC1
192.168.11.100
192.168.10.100
处理层SW3
SW1
PC1
192.168.11.100
192.168.10.100
目的地SW1
PC1→SW3→SW1→SW3→PC1→(SW3)→SW1
8SW1从Fa0/3接收到带有vlan10的Ethernet帧(ICMP请求单播包)后。
<1>拆开至第三层发现目的IP192.168.11.100,并且检索路由表中的IP地址信息
<2>发现路由表中存在属于vlan11的目的IP地址的直连网段,路由器设置直连网段作为下一跳(意思是从192.168.11.0网段转发出去TTL值-1)
<3>在ARP缓存表中没有目的MAC地址,ARP进程需要发送一个该IP的ARP请求报文,然后丢弃从Fa0/10接收到的ICMP的请求单播包(所以该帧回不去,这也就是第一次ping对方主机为什么会丢弃1-2个包的原因)
<4>ARP进程为目标IP地址构建一个请求。
将PDU封装成为Ethernet帧,插入vlan11的标签,以广播的形式发送出去,将该帧除接收宽口之外的同一vlan的所有端口发送。
<5>从Fa0/1出发
目的MAC
源MAC
目的IP
源IP
来源SW3
SW1
PC1
192.168.11.100
192.168.11.1
处理层SW1
00X6
SW1
192.168.11.100
192.168.11.