外网主机如何将数据包发送到共用一个公网IP的局域网某特定主机上的
内网的一台电脑要上因特网对外开放服务或接收数据。都须要port映射。port映射分为动态和静态。
动态port映射:内网中的一台电脑要訪问站点。会向NAT网关发送数据包。包头中包含对方站点IP、port和本机IP、port,NAT网关会把本机IP、port替换成自己的公网IP、一个未使用的port。而且会记下这个映射关系,为以后转发数据包使用。然后再把数据发给站点,站点收到数据后做出反应。发送数据到NAT网关的那个未使用的port。然后NAT网关将数据转发给内网中的那台电脑,实现内网和公网的通讯.当连接关闭时,NAT网关会释放分配给这条连接的port,以便以后的连接能够继续使用。
动态port映射事实上也就是NAT网关的工作方式。
静态port映射:就是在NAT网关上开放一个固定的port,然后设定此port收到的数据要转发给内网哪个IP和port,无论有没有连接。这个映射关系都会一直存在。
就能够让公网主动訪问内网的一台电脑。
NAT(Network Address Translation,网络地址转换)是将IP 数据包头中的IP 地址转换为还有一个IP 地址的过程。
在实际应用中。NAT 主要用于实现私有网络訪问公共网络的功能。这样的通过使用少量的公有IP 地址代表较多的私有IP 地址的方式。将有助于减缓可用的IP地址空间的枯竭。NAT的实现方式有三种,即静态转换Static
Nat、动态转换Dynamic Nat和port多路复用OverLoad。
静态转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址仅仅转换为某个公有IP地址。借助于静态转换。能够实现外部网络对内部网络中某些特定设备(如server)的訪问。
动态转换是指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,全部被授权訪问上Internet的私有IP地址可随机转换为不论什么指定的合法IP地址。也就是说,仅仅要指定哪些内部地址能够进行转换,以及用哪些合法地址作为外部地址时,就能够进行动态转换。动态转换能够使用多个合法外部地址集。
当ISP提供的合法IP地址略少于网络内部的计算机数量时。能够採用动态转换的方式。
port多路复用(Port address Translation,PAT)是指改变外出数据包的源port并进行port转换,即port地址转换(PAT,Port
AddressTranslation).採用port多路复用方式。内部网络的全部主机均可共享一个合法外部IP地址实现对Internet的訪问,从而能够最大限度地节约IP地址资源。同一时候,又可隐藏网络内部的全部主机,有效避免来自internet的攻击。因此,眼下网络中应用最多的就是port多路复用方式。
外网主机如何将数据包发送到共用一个公网IP的局域网某特定主机上的的更多相关文章
- Windows下底层数据包发送实战
1.简介 所谓“底层数据包”指的是在“运行”于数据链路层的数据包,简单的说就是“以太网帧”,而我们常用的Socket只能发送“运行”在传输层的TCP.UDP等包,这些传输层数据包已经能满足绝大部分需求 ...
- 外网主机访问虚拟机下的Web服务器_服务器应用_Linux公社-Linux系统门户网站
body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...
- 外网主机远程ssh局域网Linux
最近,公司有台配置极高的主机盒子(i7,32G,512G),组长让我装上kali,平时渗透测试时可以用,其余时间归我了,这么高配置的机器,怎么舍得让它吃灰呢 .所以我就去研究了一下,如何远程访问局域网 ...
- 外网主机访问虚拟机下的web服务器(NAT端口转发)
主机:系统win7,ip地址172.18.186.210 虚拟机:VMware Workstation 7,虚拟机下安装了Centos操作系统,ip地址是192.168.202.128,部署了LAMP ...
- 外网主机访问虚拟机下的web服务器(NAT端口转发)-----端口映射
主机:系统win7,ip地址172.18.186.210 虚拟机:VMware Workstation 7,虚拟机下安装了Centos操作系统,ip地址是192.168.202.128,部署了LAMP ...
- 【求助】NdisSend,自定义数据包发送失败?
做ndis hook的时候,自定义了一个数据包,包结构应该没有问题,填充NDIS_PACKET结构是这样的,先初始化: NdisAllocatePacketPool(&nStat ...
- 网络数据包发送工具PacketSender中文源码
在网上发现了一个好用的工具PacketSender,数据包发送器.对于写网络程序来说,有很大的便利性.虽然在linux下,netcat工具也很好用,但是这个也不错. 原本是英文的,给翻译了一下.这是基 ...
- WireShark抓包时TCP数据包出现may be caused by ip checksum offload
最近用WireShark抓包时发现TCP数据包有报错:IP Checksum Offload,经过查阅资料终于找到了原因 总结下来就是wireshark抓到的数据包提示Checksum错误,是因为它截 ...
- 渗透利器-BadUSB 控制外网主机详解 Teensy2.0++
准备工作 一块 Teensy2.0++ 的板子(淘宝一搜就有) Arduino编译器 1.8.7版本下载连接:arduino下载地址 Teensy插件 下载连接:Teensy下载地址 [外链图片转存失 ...
随机推荐
- 继续过Hard题目.0207
接上一篇:http://www.cnblogs.com/charlesblc/p/6364102.html 继续过Hard模式的题目吧. # Title Editorial Acceptance ...
- Android 经常使用设计模式(一)
由于项目变更的频繁性,作为一名程序猿,我们须要掌握设计模式的必要性.就不言而喻~~.以下就是一些我自己学习的设计模式总结. 接下来,主要是针对几个比較经常使用模式进行解说,主要是以下几种: 观察者模式 ...
- [Spring实战系列](17)编写切点与声明切面
切点用于准确定位应该在什么地方应用切面的通知. 切点和通知是切面的最基本元素. 在Spring AOP中,须要使用AspectJ的切点表达式语言来定义切点. 关于Spring AOP的AspectJ切 ...
- OpenStack Heat总结之:Icehouse中通过Heat+Ceilometer实现Autoscaling
在I版本号中,Heat中加入了对于AutoScaling资源的支持.github上也提供了相应的AutoScaling的模板(https://github.com/openstack/heat-tem ...
- 拷贝构造函数(深拷贝vs浅拷贝)
拷贝构造函数(深拷贝vs浅拷贝) 类对象之间的初始化是由类的拷贝构造函数完毕的.它是一种特殊的构造函数,它的作用是用一个已知的对象来初始化还有一个对象.假设在类中没有显式地声明一个拷贝构造函数.那么, ...
- How do I UPDATE from a SELECT in SQL Server?
方法1 https://stackoverflow.com/questions/2334712/how-do-i-update-from-a-select-in-sql-server UPDATE T ...
- TP5异常处理
TP5异常处理 标签(空格分隔): php, thinkphp5 自定义异常处理 namespace app\common\exception; use think\Exception; class ...
- Java环境安装配置好了却不能运行xxx.jar程序?
1,检查Java环境是否已安装或配置成功. WIN+R → cmd → java -version,查看是否可以读取到Java版本信息,如果读取不到,说明Java环境安装或配置有问题,重新装一下. 2 ...
- VB入门在线视频教程大全学习
课程目录 9分钟47秒 课时1第一课:怎么编写程序 14分钟1秒 课时1第十七课第1节:文件读写的几种方式 14分钟14秒 课时2第二课:什么是变量和变量类型 19分钟24秒 课时3第三课:变量的声明 ...
- 数据库自动备份压缩脚本(备份最近七天,七天之前自动删除,只保留rar文件)
把下面脚本添加到服务器计划任务中去,设置为每天执行即可,文件备份路径即为脚本所在路径,必须安装压缩文件 @echo offrem 计算指定天数之前的日期,用于后面删除指定天数的数据set DaysAg ...