两套地址并存的时候,一个问题马上出现:只有新地址的一方,怎么去找只有旧地址的一方。互相都不认识对方的写法,直接连是连不上的。中间需要一个负责转换的环节,把一种写法换成另一种,或者在两个网络之间架一条通道。这些做法各有各的代价,理解之后就知道为什么过渡期会拖这么久。代理IP使用中如果两端不在同一代,同样会碰到这个问题。
常见的两种衔接方式
一种是就地转换:请求走到中间某个设备时,把源和目标的写法换成对端认识的那一种,再转发出去。另一种是加一层封装:把一种写法整包塞进另一种写法里,到对端再取出来。前一种改的是地址本身,后一种改的是外层包装,两种都能让两代互通。
- 转换:改地址本身,两端不动,中间设备压力大
- 封装:加一层包装,兼容性好,效率有折损
- 选择依据是规模与持续时长,两种常混用
转换这种方式的特点
改动集中在中间设备上,两端都不用动,接入成本低。代价是中间设备要记住每一条正在进行的连接,连接多了就吃力;有些协议里带着地址信息,转换的时候还得一并调整,处理不干净就会出问题。代理IP走这种衔接时,连接数太多会明显变慢。
封装这种方式的特点
两端也不用改,但要在中间架一条通道,配置起来比转换麻烦。好处是原样的数据被完整保留,不用逐条调整,兼容性更好。缺点是外层多了一层包装,每个包都变大了,效率会打折扣。
两种方式怎么选
看规模和使用场景。少量设备需要互通,转换更省事;成片网络之间要长期打通,封装更稳。实际环境里两种常常一起用,不同位置选不同的做法。
为什么过渡期会很长
新旧要同时能通,任何一端提前停掉旧的都会断掉一部分访问。所以两套得长期并存,中间这些衔接设备也就一直要维护。代理IP服务在这段时间里通常两套都提供,就是因为使用者的两端不一定在同一个阶段。
两端都改完了,中间的衔接环节才能撤掉。
衔接环节多一层,每个数据包就多一次拆装的开销。
两种衔接方式解决的是同一件事,代价各不相同。按规模和时长来选,比按习惯来选稳妥。
