您的位置:首页 > 其它

数据转发过程

2013-07-23 17:45 211 查看
拓扑图:

192.168.2.1/24 [A2] 192.168.2.2/24 [B2]
R1(FA0/0)--------------------------------------------------(FA0/0)R2
| (FA0/3) 192.168.1.254/24 [A1] | (FA0/3) 192.168.3.254/24 [B1]
| |
|(FA0/12) |(FA0/12)
SW1 SW2
(FA0/1)/ \ (FA0/2) (FA0/1) / \ (FA0/2)
/ \ / \
PC1 PC2 PC3 PC4
IP 192.168.1.1/24 192.168.1.2/24 192.168.3.1/24 192.168.3.2/24
网关 192.168.1.254/24 192.168.1.254/24 192.168.3.254/24 192.168.3.254/24
MAC地址 C1 C2 C3 C4

TCP/IP协议栈:PDU
应用层
传输层段
网络层包
数据链路层帧
物理层比特流

在同一网段的通信:
PC1与PC2通信:
1,信息产生于应用层,然后会逐层的向下封装.假设在传输层采用TCP协议封装,到了网络层则用IP协议封装.
2,在网络层进行IP封装时,指定原IP地址(192.168.1.1)和目的IP地址(192.168.1.2),然后继续向下进行数据链路层封装
3,在数据链路层封装时,要指定原MAC地址(C1)和目的MAC地址(???),但目的MAC地址未知,所以要获取对方的MAC地址(用ARP协议来实现)
4,在用ARP获取MAC地址时,PC1首先要判断PC2是否与自己在同一个网段,如果在同一个网段,则直接求PC2的MAC地址,如果不在同一个网段,则请求网关的MAC地址(将数据给网关去处理)
5,获取了192.168.1.2(PC2)的MAC地址后,接着向下封装数据,最终成为比特流(物理信号)发送出去.
6,SW1收到物理信号(比特流)后,将其进行解封装,组成数据帧,查看数据帧的MAC地址,将原MAC地址进行学习,然后依据目的MAC地址进行转发/过滤处理(即再次将其封装成比特流).
7,当SW1把数据转发出去,PC2收到物理信号.PC2将物理信号进行转换并组成数据帧,查看目的MAC地址,若目的MAC地址是给自己的,则继续将数据帧进行解封装,交给网络层来查看目的IP地址是否给自己的,若是给自己的,则依次进行解封装,最终交给上层处理,若不是给自己的,则将数据丢弃.

在不同网段间的通信(前提是路由表已经完善):
PC1与PC3通信:
1,信息产生于应用层,然后会逐层的向下封装.假设在传输层采用TCP协议封装,到了网络层则用IP协议封装.
2,在网络层进行IP封装时,指定原IP地址(192.168.1.1)和目的IP地址(192.168.3.1),然后继续向下进行数据链路层封装
3,在数据链路层封装时,要指定原MAC地址(C1)和目的MAC地址(???),但目的MAC地址未知,所以要获取对方的MAC地址(用ARP协议来实现)
4,在用ARP获取MAC地址时,PC1首先要判断PC2是否与自己在同一个网段,如果在同一个网段,则直接求PC2的MAC地址,如果不在同一个网段,则请求网关的MAC地址(将数据给网关去处理)
5,获取了192.168.1.254(网关)的MAC地址后,接着向下封装数据,最终成为比特流(物理信号)发送出去.
6,SW1收到物理信号(比特流)后,将其进行解封装,组成数据帧,查看数据帧的MAC地址,将原MAC地址进行学习,然后依据目的MAC地址进行转发/过滤处理(即再次将其封装成比特流).
7,当SW1把数据转发出去,R1收到物理信号.R1将物理信号进行转换并组成数据帧,查看目的MAC地址,若目的MAC地址是给自己的,则继续将数据帧进行解封装,交给网络层来查看目的IP地址是否给自己的,若是给自己的,则依次进行解封装,最终交给上层处理,若不是给自己的,则查看路由表,看路由表中是否有到达目的地址的条目,若有,则进行转发;若没有,则将数据包丢弃.
8,当R1查看到目的IP不是自己后,查看路由表,发现通过自己的FA0/0接口可以到达目标,因此,路由器会将此数据再次进行封装(进行二层封装).
9,因为R1知道自己的FA0/0接口可以到达目的地,因此在进行二层封装时,原MAC地址会采用FA0/0接口的MAC地址(A2),目的MAC地址(???)[同样的道理,发现目的地址与自己所有的接口的地址都不处于同一网段,所以会将数据交给能够到达目的地的那一个下一跳地址(网关)去进行处理,即192.168.2.2]
10,R1通过路由表知道要到达192.168.3.1必须要将数据交给192.168.2.2进行处理,因此,发送ARP请求192.168.2.2的MAC地址.得知其MAC地址(B2)后,继续进行封装,最终以物理信号从FA0/0接口将数据发送出去.
11,R2在FA0/0接口收到信号后,将其转换并组成数据帧,查看目的MAC地址是自己,则继续解封装,在网络层查看目的IP地址并进行相应的处理[同理],当其发现目的网络是与其FA0/3接口相连时,就直接发送ARP请求,求出192.168.3.1的MAC地址(C3).
12,得知192.168.3.1的MAC地址后,将数据进行封装,源MAC地址为(B1),目的MAC地址为(C3),最终以物理信号从FA0/3接口发送出去.
13,SW2收到物理信号后将其转换并组成数据帧,查看MAC地址,学习源MAC地址,并依据目的MAC地址进行转发/过滤(封装并发送).
14,PC3的接口收到物理信号后,将其转换并组成数据帧后,查看目的MAC地址,若是给自己的,则继续解封装并查看目的IP地址,最终将数据交给应用层.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  拓扑图