路由交换寻址详解
- 格式:docx
- 大小:86.73 KB
- 文档页数:3
网络寻址过程详解
(2009-11-14 12:13:19)
转载
标签:
网络寻址
it
预备知识:
1、OSI 七层模型
2、MAC 地址
3、IP 地址
4、ARP 协议
5、交换机工作原理
6、路由器工作原理
好的,大家好,今天我们来了解一下关于数据包在网络中寻址的过程。
数据包在两台电脑之间传输大体分为以下两种情况
1、通过二层设备交换机直连的两台主机之间数据传输
( HUB 就免谈了,它属于一层设备,既看不懂二层MAC 地址,也看不懂三层IP 地址,不存在寻址的问题,直接广播就是)
首先我们必须了解一个概念,封装与解封装
封装
所谓封装是指在发送方发生的自上而下的过程——在每一层为应用数据添加上特定的头部/ 尾部信息(PDU ,Protocol Data Unit ,协议数据单元)
Application (应用程序)→segment (数据段)→packet (数据包)→frame (数据帧)→bit (比特,二进制位)
解封装
所谓解封装是指在接收方发生的自下而上的过程——逐层的去掉头部以及尾部信息
由于今天我们只讨论数据传输过程,所以只牵涉到数据的四层以下封装。
假设现在A 要向B 发送数据,那么A 首先要对发送的数据进行封装,在每一层会加上相应的数据头,传输层主要是加上源和目标端口号,网络层则加源和目标IP 地址,数据链路层则加上源和目标MAC 地址
1) 好的,由于A 现在只知道B 的IP 地址,并不知道B 的MAC 地址,而二层设备交换机并不会按IP 地址来转发数据,所以这时A 会发一个ARP 广播,目标MAC 地址为FF:FF:FF:FF:FF:FF,询问IP 地址为192.168.0.2 的MAC 地址是多少
2) 交换机收到该帧后,发现是广播帧,于是转发到其它所有端口,并且会将该帧的源MAC 地址(即A 的MAC 地址)添加到自己的MAC 地址表中去
3) B 当然会收到该帧,于是和自己的IP 进行对比,发现匹配后,再以A为目标MAC 地址响应A的ARP请求帧
4) 交换机收到B的回复帧后,将该帧的目标MAC地址与自己的MAC地址表进行对照,发现该帧对应的的端口是F0/1 ,于是将帧转发到F0/1 端口(如果数据帧的目标MAC 地址在表中不存在,则会转发到除源端口外的其它所有端口),同时将该帧的源MAC 地址(即B 的MAC 地址)加到自己的MAC 地址表中
5) A 收到B 的回复帧后,得知192.168.0.2 的MAC 地址是2c 26.1ae3.2222 ,于是该信息保存到本地的ARP 高速缓存中,同时以 B 的MAC 地址为目标地址将要传的数据封装成帧,发送出去
6) 交换机再次收到A 的数据帧,发现目的MAC 地址是2c 26.1ae3.2222 ,并且该地址对应的端口是F0/2 ,于是将该数据转发到F0/2 端口
7) B 成功收到A 发来的数据
2、跨三层设备路由器的两台主机之间数据传输
好的,现在我们来看一下pcA 是如何发送数据给pcB 的
交换机的工作原理前面我们已经介绍过了,它维护了一张MAC 地址表,用来反映各端口和MAC 地址的对应关系,以便做好数据转发工作。
下面我们来看一下路由器的工作原理,在路由器中也要维护一张表格,叫做路由条目表,用来反映如何到达某个IP 地址网段,同时在路由器中也有ARP 高速缓存,反映了该路由器各直接网段的IP 地址和MAC 地址的对应关系
1) 由于B 的IP 地址并没有和A 在一个网段,所以当A 向B 发送数据时,A 并不会直接把数据给B ,而是交给自己的网关,也就是192.168.0.254 ,所以A 首先会ARP 广播请求192.168.0.254 的MAC 地址
2) A 得到网关的MAC 地址后,以它为数据帧的目标MAC 地址进行封装数据,并发送出去
3) routerA 收到该帧后,检查该帧的目标IP ,并到自己的路由表查找如何到达该网段,发现能够到过,并且下一跳地址是routerB 的s0 端口,于是将数据重新封装,将源地址改为s0 端口MAC 地址,目标MAC 地址改为routerB 的s0 端口MAC 址址,并发送给routerB
4) 中间路由器传递过程同理
5) 最后一个路由(此例为routerC )收到该帧,发现目标IP 就在自己的直连网段,于是查看ARP 缓存,如果找到该IP 的MAC 地址,则以该MAC 地址封装数据发送出去,如果在ARP 缓存没找到,则发出ARP 广播,请求该IP 的MAC 地址,得到对应的MAC 地址后,再发送给主机B
在以上数据传递过程中,我们发现,数据帧的源IP 和目标IP 始终是不变的,而经过每个路由进行重新封装数据时MAC 地址则在不断的变化,总是以自己的地址作为源MAC 地址,下一跳的地址作为目标MAC 地址
好的,关于数据包寻址过程今天就介绍到这里,希望对各位的学习能有所帮助!。