HC110110007 数据转发过程

0x00 汇总

汇总链接


0x01 数据转发过程

这个没太多内容可以写的,总结一下。
HC110110007 数据转发过程
主机A需要访问服务器A的Web服务,并且假定两者之间已经建立了TCP连接。接下来会以此示例来讲解数据在不同网络间的传输过程。
HC110110007 数据转发过程
此时TCP为会发送源端口为1027,目的端口为80的数据段,交由下层处理,即到了IP层。
HC110110007 数据转发过程
主机A完成传输层封装后,一般会进行网络层数据封装,在使用IP进行封装时,需要明确IP报文的源和目的地址。
源地址就是主机A即10.1.1.1,而目的就是服务器A了,也就是172.16.10.1。

接着会查询路由表,通过路由表获取发包时去往的下一跳及出接口
HC110110007 数据转发过程
从上图可以看出来是发往10.1.1.254的,则接着去arp表中查询是否存在对应的表项,从而获取MAC地址,如果没有对应的表项的话,还需要先去解析ARP。
HC110110007 数据转发过程
从上图中可以看出来,这里是有对应表项的所以就可以直接交由下层数据链接层来完成封装了。
HC110110007 数据转发过程
MAC地址都是已知的,所以可以封装成功,进行下一层处理。
HC110110007 数据转发过程
物理层将数据帧转换化比特流进行传递。
HC110110007 数据转发过程
网关收到此数据帧后,发送目的MAC确实为自身地址,交由上层处理。通过Type可以知道上层协议是IP。
HC110110007 数据转发过程
IP层检查以后,发现目的IP不是自身地址,则通过路由查询得知道,需要从E0/1接口发送出去,由于之前已经拆掉了二层帧头,所以这次转发时会添加上新的二层帧头,源MAC地址为E0/1接口的MAC,目的MAC地址则为服务器A的MAC地址。
HC110110007 数据转发过程
当服务器A收到数据帧后,目的MAC地址为自身,则继续交由上层IP处理,此时目的IP地址也为自身,则又交由上层协议TCP处理。
HC110110007 数据转发过程
TCP检查头部时,通过目的端口80,继续交由上层HTTP处理,应用层HTTP接收到最终的Data即表示完成了这次通信