远程主机发送数据包,路由器是怎么将数据包转发到我这台电脑上的?

什么是逆NAT操作呢?
NAT操作是将微信私有IP变换成网关的公网IP。那么逆NAT操作就是将报文的公网IP变换成微信的私有IP。当然有一次NAT操作,就会有一次逆NAT操作。有二次NAT操作,就会有二次逆NAT操作。
为了让NAT逆操作工作变得简单,要求在NAT操作时,动态生成NAT表。那么逆操作查表即可完成。当然为了公网IP的利用率,动态NAT表有一个生命周期,一旦生命周期内没有流量刷新,那么就会被删除。这将意味着微信服务器发送给客户端消息无法到达客户端。为了避免类似事情的发生,只要让客户端周期发送Keepalive。
如果你说的是,当登录知乎网站时,知乎的服务器是如何将消息推送到客户端的?
其实和上文原理是一样的,这里不再重复。之所以写这一点,是要分析一下反向的流量是如何流动的?即我们访问知乎服务器时,客户端的数据包是如何到达知乎服务器的?通常知乎的服务器也使用私有IP?
域名解析是服务器的公网IP,那么报文就到达公网IP对应的设备上。接下来该设备如何才能将数据包搬运到知乎服务器上?
基于目的IP地址的NAT转换
在我们数据包到达之前,NAT设备已经生成一个公网IP、服务器私有IP的转换表,那么查表即可转换,并将报文发给对应服务器。通常需要手工配置。
基于负载均衡的调度
负载均衡设备,根据服务器当前负载状态,选取其中某一台服务器,建立TCP连接,将来自客户端的数据包通过TCP连接发给服务器。服务器处理之后发给负载均衡设备。负载均衡设备从TCP连接提取字节流,将其转发给客户端,这样就完成了双向的通信。
(0)

相关推荐