knowingone 2015-08-06 03:06 采纳率: 66.7%
浏览 2731

NAT 如何确定返回数据应转发给哪个内部主机

我们知道,内网的主机将向外网发送数据可以通过NAT获取一个合法的ip,进而向外部发送数据。
我疑惑的是,当外部向该主机返回数据时,因为目的IP是NAT分配的,必然数据会发送给NAT,那么NAT如何确定该数据包应该返回给哪个内网的主机的呢?
网上的一个解释是,NAT在为内部主机分配地址时会同时为该主机分配一个虚拟端口号,在收到返回数据时通过端口号确定数据的目的主机,但如果这样的话,目的主机在收到数据后,因为端口号被占用(虚拟端口号),那么该主机又是如何确定数该提交给哪个进程的呢?

  • 写回答

3条回答 默认 最新

  • Tiger_Zhao 2015-08-06 03:16
    关注

    你的话越看越难懂。
    NAT机的虚拟端口是和外部通讯用的,NAT程序本身会侦听这个端口,受到数据后再通过内网把数据转给内网主机。

    评论
  • knowingone 2015-08-06 03:39
    关注

    啊,我原先理解有问题,NAT分配的IP 与端口号是与内部主机的内部IP以及端口号是绑定的(不单是主机IP),这么的话就能理解了。

    评论
  • oyljerry 2015-08-06 05:42
    关注

    路由器上维护的是NAT分配的IP加端口到内网机器的IP加端口,这样返回的数据,路由器就知道该怎么转发回去了

    评论

报告相同问题?

悬赏问题

  • ¥50 74LS系列 74LS00 74LS04设计一个RS485电路(关键词-差分)
  • ¥30 各位help写一下代码
  • ¥15 在运行SDEdit模型下载不了
  • ¥15 求51控制l298n驱动的小车中超声波避障怎么写
  • ¥15 电脑连上WIFI却用不了
  • ¥30 MATLAB在RLC电路的固有响应和阶跃响应GUI仿真报告
  • ¥15 hyper-v出现的问题
  • ¥15 有能用的可加酬金,求可以批量下载懒人听书的软件,能登录自己帐号的。
  • ¥100 高博一起做RGB-D SLAM(5)VO无法出visualisation问题
  • ¥15 使用matlab进行手眼标定的仿真验证,得到齐次矩阵与opencv相差较大