数据报文在网络设备中是如何传输的呢?且听我娓娓道来。这么说吧,本文讲述的是数据报文在普通的二层或三层设备即交换机或路由器之间的传输过程,不涉及防火墙一类网络设备间的传输场合。
请看下图,这是一个简易的网络结构,由一台路由器两台交换机组成。假设各设备的MAC地址、IP地址为图上所标。
相同网段内PC1发给PC2的数据报文传输过程如下,这是数据报文的二层转发过程
- PC1的应用程序提供数据(细节忽略),由PC1的网卡构建成数据报文(其他字段省略),D.IP填入PC2的,S.IP填入PC1自己的,S.MAC填入自己PC1的,D.MAC填入PC2的。完整的数据报文从PC1 的网卡发送出去。
- 交换机的接口Ethernet0/0/1收到数据报文后,根据D.MAC查找映射表,发现有匹配项,关联接口为Ethernet0/0/2,所以将数据报文从这个接口转发出去。
- PC2接收到数据报文后,检查D.MAC,发现与自己网卡的相同,所以接收数据,提交给自己的网络层,应用层处理。
不同网段之间PC1发给PC4的数据报文传输过程如下,这是数据报文的三层转发过程,先看下图。
- PC1的应用程序提供数据(细节忽略),由PC1的网卡构建成数据报文(其他字段省略),D.IP填入PC4的,S.IP填入PC1自己的,S.MAC填入PC1
自己的,由于PC1发现D.IP与S.IP不在同一网段,所以数据报文要转交网关设备处理,所以D.MAC填入网关的MAC。完整的数据报文从PC1 的网卡发送出去。 - 交换机的接口Ethernet0/0/1收到数据报文后,根据D.MAC查找映射表,发现有匹配项,关联接口为GE 0/0/1,所以将数据报文从这个接口转发出去。
- 路由器的GE 0/0/1接口收到数据报文后,检查D.MAC,发现与自己接口的相同,所以接收数据,提交给网络层处理。
- 路由器检查D.IP后,检查自己的路由表,发现指向GE 0/0/2接口,转发之前需要重新封装Ethernet Header,D.MAC填入PC4的,S.MAC填入自己GE0/0/2接口的,如下图中所示。然后将重新封装好的数据报文转发出去。
- 经交换机转发后,PC4收到了由PC1发来的数据报文,同样检查了D.MAC、D.IP字段后,匹配通过,PC4将数据层层解封装后提交给应用层处理。