简单理解SNAT回流中的概念:路由器怎么知道外网返回的数据是局域网中哪台主机的
内网到外网用的是NAT技术(地址封装)外网到内网用的是端口映射(PNAT)计算机的端口又65535(0-65534),你说的那些有名气的端口大多都是0-1023之间的你说的这个问题很简单,但首先你要懂得数据是通过端口来传输的,路由器会记住机器用那个地址的那个端口发出去的信息比如: 192.168.0.2(内网主机地址)----192.168.1.1(内网网关,一般是你路由器的地址)-123.52.1.1(路由器WAN口地址,ISP给你发的一般是临时的)----123.52.1.2(目标主机IP) 这个时候你的内网主机会自动生成一个大于1023的端口连接到路由器,路由器会记住这个IP和端口,解封装以后,他会把用户IP报文里的ip和端口换成自己的ip和端口(这个端口也是随机的),再把数据转发到目标网络,这样就和目标网络建立了连接,目标网络往回传递信息的时候就会和路由器上的那个端口请求连接,然后路由器看一下自己的映射表,他会发现这个端口是和内网的 那台主机做的 映射,所以就会把数据传给你,这样你就读到了对方的信息。
参考:
https://zhidao.baidu.com/question/2073975904211508908.html
http://www.360doc.com/content/11/0419/09/2614615_110685387.shtml
简单理解SNAT回流中的概念:路由器怎么知道外网返回的数据是局域网中哪台主机的的更多相关文章
- 多网卡下如何配置指定IP走某个路由器(适用于外网不通,但是钉钉服务器通的情况)
# 多网卡下如何配置指定IP走某个路由器(适用于外网不通,但是钉钉服务器通的情况) ## 如何查看一个进程建立的网络连接,方式一 - 查看进程pid `ps -ef|grep dingtalk`- 查 ...
- vm中centos7配置静态ip访问外网
我使用的是桥接方式,具体步骤如下 1.设置虚拟机网络: 编辑>虚拟网络编辑器 2.设置vm中操作系统的网络设置 3.进入centos7中后修改网络配置: 另附我的宿主机网络配 ...
- 服务器能远程连接,网络连接正常,但是外网域名Ping不通,浏览器中打不开网站
服务器能远程连接成功,但在浏览器中打不开任何网站,出现这个问题一般是安装什么软件引起IE的相关设置做了变动或者是服务器中了病毒引起的,或是服务器的DNS设置是错误的. 一.先检查服务器DNS是否正确 ...
- 将后端返回的数据在jsp中拼接成table列表
//先下载jquery js文件 放入项目中 jsp文件内容 <%@ page language="java" pageEncoding="UTF-8"% ...
- 【ASP.NET 问题】Win7中IIS被防火墙阻止导致外网无法访问的解决方法。
今天装了IIS7.0,把网站发布了上去,但局域网的其他电脑始终无法访问主机上的网站. 于是想到防火墙的原因,把防火墙关掉,可以正常访问,但是打开就不行. 于是去网上找资料,总算搞定了. 原来在防火墙的 ...
- OpenStack创建网络和虚拟机、dhcp设备、虚拟路由器、虚拟机访问外网原理分析
创建网络和虚拟机流程: 1.创建网络和子网 背后发生了什么: Neutron让控制节点上针对此子网的dhcp(虚拟设备)启动,用于给该子网下的实例分配ip 2.生成虚拟机 背后发生了什么: 用户通过G ...
- visio2003 数据表模型中显示字段类型和注释
1.在visio菜单上选择 数据库->选项->文档. 2.在常规中找到 [在图表中可见的名称] 选中 两者. 3.在表中找到 [数据类型] 选中 显示物理. 4.在数据表模型中创建字段,并 ...
- NAT ------ 内网的主机如何通过路由器与外网的主机通信
内网主机A,路由器B,外网主机C 使用了两个协议: 路由:位于网络层,为数据包提供一个寻径的算法,不改变数据包的源IP和目的IP,但是会修改源MAC和目的MAC,只在同个网段的进行数据的转发 NAT: ...
- windows7在局域网中无法映射驱动器问题解决
昨天下班时闲的蛋疼,因电脑比较慢,因此在计算机的[系统配置中]的启动选项下对[启动项目]和[服务]做了误操作,导致在计算机重启之后声卡.显卡.网卡等许多服务禁用,更令人费解的是内网中断了连接,无法访问 ...
随机推荐
- device tree 負值 property 寫法
倘若你要設定 負值的property, 可能需要括符才會 build 過. 正確 decidegc = <(-10)>; 錯誤 decidegc = <-10>;
- 【Android XML】Android XML 转 Java Code 系列之 Selector(2)
今天我们要把drawable下的selector的XML文件转换成Java代码.(打包进jar,不依赖apk) 在转换工具中的代码为: https://github.com/SickWorm/Andr ...
- 64_g5
golang-github-kr-text-devel-0-0.11.git6807e77.f..> 11-Feb-2017 07:48 14250 golang-github-kr-text- ...
- memcached基本操作和语法
一.基本语法 <command name><key><flags><exptime><bytes>\r\n<data block> ...
- python代码实现dijkstra算法
求解从1到6的最短路径. python代码实现:(以A-F代表1-6) # Dijkstra算法需要三张散列表和一个存储列表用于记录处理过的节点,如下: processed = [] def buil ...
- 6:django 通用视图
上一节我们介绍了django视图函数里面几个常用的函数,这节我们来看一下django为我们提供的一些通用视图吧 在最后面有我自己的示例代码,html部分太多了就不贴了 “简单”视图函数 正如名字所言, ...
- hdu 2818(并查集,带权更新)
Building Block Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- Java String lastIndexOf() 方法
Java String lastIndexOf() 方法 测试代码 public class Test { public static void main(String[] args) { // -- ...
- python+django+vue搭建前后端分离项目
以前一直是做基于PHP或JAVA的前后端分离开发,最近跟着python风搭建了一个基于django的前后端分享项目 准备工作:IDE,[JetBrains PyCharm2018][webpack 3 ...
- HDFS上传文件错误--hdfs:DFSClient:DataStreamer Exception
今天上传文件的时候发现传上去的文件为空,错误提示如上述所示,原来是IP地址改掉了对呀应etc/hosts下面的IP地址也要改变,永久改ip命令-ifconfig eth0 xxx·xxx·xxx·xx ...