深入浅出 LVS 负载均衡系列(一):NAT、FULLNAT 模型原理

LVS(Linux Virtual Server)是一个虚拟服务器集群系统。工作在 OSI 模型的传输层,即四层负载均衡。LVS 本身实现了 NAT、DR、TUN 模型,这些模型仅做数据包的转发,而不会与客户端建立连接,成本低效率高。FULLNAT 基于 NAT 实现,LVS 本身不支持,需要额外对内核打补丁后才能使用。

本系列按照负载均衡器对数据包的处理方式分类,从计算机间通信的角度出发,浅谈 NAT、FULLNAT、DR、TUN 模型的实现原理。

两台计算机如何在互联网中通信

在了解 LVS 负载均衡之前,先要搞清楚两台计算机如何在互联网中通信。茫茫互联网中,两台计算机如何才能找到对方?

我们先来看看,快递是如何被快递小哥完美地送到你手上的。根据你填写的地址,快递先送到你所在的省市区,接着在当前省市区找到你的门牌号,最后根据门牌号和姓名,再亲手把快递交给你。

两台计算机在互联网中的通信也是如此。首先需要知道双方的 IP 地址,即省市区,其次需要知道双方的 MAC 地址,即门牌号。MAC 地址标志着唯一的计算机。在同一台计算机上,可能有多个不同的服务,如何能像快递小哥按照姓名找到你一样,在计算机上找到对应的服务呢?没错,就是按照端口号。

这样,通信中每台计算机需要提供的信息就很清晰了,即 IP 地址、MAC 地址、端口号。总结一下,计算机之间通信必需的六个要素就是,源 IP 地址、端口号、源 MAC 地址,目标 IP 地址、端口号、目标 MAC 地址。

假设计算机 A 和计算机 B 在上述的网络拓扑图(不在同一局域网)中。可以很清晰地看到 计算机 A 和 计算机 B 通信需要五个步骤,其中 ①② 和 ④⑤ 的原理相同。现在我们来看看具体的每个步骤在计算机的世界中是如何实现的。

首先 A 和 B 的 IP 地址和端口号是已知的,即一个数据包从哪来要发往哪去。所以现在的问题是:A 如何能知道 B 的 MAC 地址?

最简单的方式就是 A 保存网络中全部设备的 MAC 地址,在发送时查

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值