- 通常情况下,×××网关采用双网卡结构,外网卡使用公共IP接入Internet;
- 如果网络一的终端A需要访问网络二的终端B,其发出的访问数据包的目标地址为终端B的IP (内部IP);
- 网络一的×××网关在接收到终端A发出的访问数据包时对其目标地址进行检查,如果目标地址属于网络二的地址,则将该数据包进行封装,封装的方式根据所采用的×××技术不同而不同,同时×××网关会构造一个新的数据包(×××数据包),并将封装后的原数据包作为×××数据包的负载,×××数据包的目标地址为网络二的×××网关的外部地址;
- 网络一的×××网关将×××数据包发送到Internet,由于×××数据包的目标地址是网络二的×××网关的外部地址,所以该数据包将被Internet中的路由正确地发送到网络二的×××网关;
- 网络二的×××网关对接收到的数据包进行检查,如果发现该数据包是从网络一的×××网关发出的,即可判定该数据包为×××数据包,并对该数据包进行解包处理。解包的过程主要是先将×××数据包的包头剥离,在将负载通×××技术反向处理还原成原始的数据包;
- 网络二的×××网关将还原后的原始数据包发送至目标终端,由于原始数据包的目标地址是终端B的IP,所以该数据包能够被正确地发送到终端B。在终端B看来,它收到的数据包就从终端A直接发过来的一样;
- 从终端B返回终端A的数据包处理过程与上述过程一样,这样两个网络内的终端就可以相互通讯了。
通过上述说明我们可以发现,在×××网关对数据包进行处理时,有两个参数对于×××隧道通讯十分重要:原始数据包的目标地址(×××目标地址)和远程×××网关地址。根据×××目标地址,×××网关能够判断对哪些数据包需要进行×××处理,对于不需要处理的数据包通常情况下可直接转发到上级路由;远程×××网关地址则指定了处理后的×××数据包发送的目标地址,即×××隧道的另一端×××网关地址。由于网络通讯是双向的,在进行×××通讯时,隧道两端的×××网关都必须知道×××目标地址和与此对应的的远端×××网关地址。