上一节,我们封装了一个长长的网络包,“大炮”准备完毕,开始发送。
发送的时候可以说是重重关隘,从手机到移动网络、互联网,还要经过多个运营商才能到达数据中心,到了数据中心就进入第二个复杂的过程,从网关到 VXLAN 隧道,到负载均衡,到 Controller 层、组合服务层、基础服务层,最终才下单入库。今天,我们就来看这最后一段过程。
7. 一座座城池一道道关,流控拥塞与重传
网络包已经组合完毕,接下来我们来看,如何经过一道道城关,到达目标公网 IP。
对于手机来讲,默认的网关在 PGW 上。在移动网络里面,从手机到 SGW,到 PGW 是有一条隧道的。在这条隧道里面,会将上面的这个包作为隧道的乘客协议放在里面,外面 SGW 和 PGW 在核心网机房的 IP 地址。网络包直到 PGW(PGW 是隧道的另一端)才将里面的包解出来,转发到外部网络。
所以,从手机发送出来的时候,网络包的结构为:
源 MAC:手机也即 UE 的 MAC;
目标 MAC:网关 PGW 上面的隧道端点的 MAC;
源 IP:UE 的 IP 地址;
目标 IP:SLB 的公网 IP 地址。
进入隧道之后,要封装外层的网络地址,因而网络包的格式为:
外层源 MAC:E-NodeB 的 MAC;
外层目标 MAC:SGW 的 MAC;
外层源 IP:E-NodeB 的 IP;
外层目标 IP:SGW 的 IP;
内层源 MAC:手机也即 UE 的 MAC;
内层目标 MAC:网关 PGW 上面的隧道端点的 MAC;
内层源 IP:UE 的 IP 地址;
内层目标 IP:SLB 的公网 IP 地址。