本文最后更新于:2020年11月10日 晚上

移动网络:

2G时代上网:

1)手机通过无线信号连接基站;2)基站一面接无线,一面接核心网;3)核心网一面接基站请求,判断是否合法等,一面通过网关接电话网络;

2.5G网络:

在2G的网络基础上加入了分组交换业务;在基站接核心网的组件中,多了分组控制端元,提供分组交换通道;在核心网里面,有个朝前的接待员(SGSN,Service GPRS Supported Node)和朝后连接IP 网络的网关型 GPRS 支持节点(GGSN,Gateway GPRS Supported Node)。

3G网络:

主要是增加了无线的带宽

4G网络:

手机直接通过 eNodeB 连接 SGW,连上核心网,SGW 相当于数据面的接待员,并通过PGW 连到 IP 网络。PGW 就是出口网关。在出口网关,有一个组件 PCRF,称为策略和计费控制单元,用来控制上网策略和流量的计费。

4G网络协议-控制面协议:

一个手机想上网的时候,先要连接 eNodeB,并通过 S1-MME 接口,请求 MME 对这个手机进行认证和鉴权。eNodeB和MME之间使用SCTP协议进行通信。SCTP特点:1)多宿主,引入联合的概念,将多个接口、多条路径放到一个联合中来。当检测到一条路径失效时,协议就会通过另外一条路径来发送通信数据,从而使一台机器支持多个网卡;2)将一个联合分成多个流,一个联合中的所有流都是独立的,但均与该联合相关。每个流都给定了一个流编号,它被编码到 SCTP 报文中,通过联合在网络上传送。3)四次握手,引入cookie概念,防止SYN攻击;4)消息分帧,SCTP 借鉴了 UDP 的机制,在数据传输中提供了消息分帧功能。当一端对一个套接字执行写操作时,可确保对等端读出的数据大小与此相同;5)断开连接是三次挥手,当一端关闭连接时,两端都需关闭。

4G网络协议-数据面协议:

数据面的协议都是通过 GTP-U,分为乘客协议、隧道协议、承载协议。其中乘客协议是手机发出来的包,IP 是手机的 IP,隧道协议里面有隧道 ID,不同的手机上线会建立不同的隧道,因而需要隧道 ID 来标识。承载协议的 IP 地址是 SGW 和 PGW 的 IP 地址。

手机上网过程:

1)寻找并发送Attach Request给附近基站eNodeB;2)eNodeB 将请求发给 MME;3)MME 去请求手机,一是认证,二是鉴权,还会请求 HSS 看看有没有钱,看看是在哪里上网;4)认证通过,MME请求SGW创建会话、分配隧道;5)SGW请求PGW创建会话、分配隧道;6)PGW答复,并创建隧道,标记手机请求;7)SGW回复MME会话创建完成,回复隧道ID;8)MME回复eNodeB隧道创建完成,回复隧道ID;9)eNodeB回复MME,自身分给SGW的隧道ID;10)MME 将 eNodeB 给 SGW 分配的隧道 ID 告知 SGW,从而前面的隧道也建设完毕。

异地上网问题:

异地上网时,手机请求附近的eNodeB,并通过MME去查询国内运营商的HSS,验证用户信息,如果验证通过,手机会与异地的SGW建立隧道,异地的SGW再与国内运营商的PGW建立隧道,由PGW内的PCRF组件计算上网流量,控制上网策略。因此异地上网时,上网策略还是由国内运营商控制的。

虚拟网卡:

通过Linux上的TUN/TAP技术实现
###虚拟机间通信:
在Linux 上通过 brctl命令创建虚拟的网桥 brctl addbr br0。再将两个虚拟机的虚拟网卡,都连接到虚拟网桥 brctladdif br0 tap0 上,这样将两个虚拟机配置相同的子网网段,两台虚拟机就能够相互通信。
虚拟机访问外部:1)桥接:虚拟机和物理机网卡连接在同一个网桥上,使用同一网段,和物理机使用同一个DHCP等服务器;解决了虚拟机间、虚拟机和外部的通信问题,但同一子网内设备过多会引发广播问题;2)NAT:物理机会创建虚拟的DHCP服务器和独立的网桥br0,虚拟机要想访问互联网,需要通过 br0 连到路由器上,然后通过路由器将请求 NAT 成为物理网络的地址,转发到物理网络。
虚拟机隔离问题:基于物理网卡,为每个用户用 vconfig 创建一个带 VLAN 的网卡。不同的用户使用不同的虚拟网桥,带 VLAN 的虚拟网卡也连接到虚拟网桥上。

SDN(软件定义网络):

OpenFlow 是 SDN 控制器和网络设备之间互通的南向接口协议,OpenvSwitch 用于创建软
件的虚拟交换机。OpenvSwitch 是支持 OpenFlow 协议的,当然也有一些硬件交换机也支持
OpenFlow 协议。它们都可以被统一的 SDN 控制器管理,从而实现物理机和虚拟机的网络连
通。