内网的一台电脑要上因特网对外开放服务或接收数据。都须要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的局域网某特定主机上的的更多相关文章

  1. Windows下底层数据包发送实战

    1.简介 所谓“底层数据包”指的是在“运行”于数据链路层的数据包,简单的说就是“以太网帧”,而我们常用的Socket只能发送“运行”在传输层的TCP.UDP等包,这些传输层数据包已经能满足绝大部分需求 ...

  2. 外网主机访问虚拟机下的Web服务器_服务器应用_Linux公社-Linux系统门户网站

    body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...

  3. 外网主机远程ssh局域网Linux

    最近,公司有台配置极高的主机盒子(i7,32G,512G),组长让我装上kali,平时渗透测试时可以用,其余时间归我了,这么高配置的机器,怎么舍得让它吃灰呢 .所以我就去研究了一下,如何远程访问局域网 ...

  4. 外网主机访问虚拟机下的web服务器(NAT端口转发)

    主机:系统win7,ip地址172.18.186.210 虚拟机:VMware Workstation 7,虚拟机下安装了Centos操作系统,ip地址是192.168.202.128,部署了LAMP ...

  5. 外网主机访问虚拟机下的web服务器(NAT端口转发)-----端口映射

    主机:系统win7,ip地址172.18.186.210 虚拟机:VMware Workstation 7,虚拟机下安装了Centos操作系统,ip地址是192.168.202.128,部署了LAMP ...

  6. 【求助】NdisSend,自定义数据包发送失败?

    做ndis hook的时候,自定义了一个数据包,包结构应该没有问题,填充NDIS_PACKET结构是这样的,先初始化:        NdisAllocatePacketPool(&nStat ...

  7. 网络数据包发送工具PacketSender中文源码

    在网上发现了一个好用的工具PacketSender,数据包发送器.对于写网络程序来说,有很大的便利性.虽然在linux下,netcat工具也很好用,但是这个也不错. 原本是英文的,给翻译了一下.这是基 ...

  8. WireShark抓包时TCP数据包出现may be caused by ip checksum offload

    最近用WireShark抓包时发现TCP数据包有报错:IP Checksum Offload,经过查阅资料终于找到了原因 总结下来就是wireshark抓到的数据包提示Checksum错误,是因为它截 ...

  9. 渗透利器-BadUSB 控制外网主机详解 Teensy2.0++

    准备工作 一块 Teensy2.0++ 的板子(淘宝一搜就有) Arduino编译器 1.8.7版本下载连接:arduino下载地址 Teensy插件 下载连接:Teensy下载地址 [外链图片转存失 ...

随机推荐

  1. HDU 4344

    其实不过是大整数分解... 注意两点:注意L 不能==N 但是,N却可以是素数...囧 #include <iostream> #include <cstdio> #inclu ...

  2. 怎样改动 VC6.0 4.0 2010 打印预览界面上的文字

    前言:尽管早已下决心不再碰微软的东西,但手头的项目还得须要维护. 遇到问题还能解决. 问题由来: 之前的软件开发是基于中文环境开发的,建立项目的时候,选择了中文,为了方便客户使用.我们使用了静态编译的 ...

  3. ios除去可变字符串中的某些字符

    //除去字符串中的"111@" NSMutableString *str = [[NSMutableString alloc]initWithFormat:@"111@s ...

  4. codecombat之KithGard地牢19-37关代码分享

    codecombat中国游戏网址:http://www.codecombat.cn/ 全部代码为javascript代码分享 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 19 ...

  5. Control-of-Flow

    https://docs.microsoft.com/en-us/sql/t-sql/language-elements/control-of-flow The Transact-SQL contro ...

  6. Oracle 常见的33个等待事件

    一. 等待事件的相关知识: 1.1 等待事件主要可以分为两类,即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件. 1). 空闲等待事件指Oracle正等待某种工作,在诊断和优化数据库的时 ...

  7. input file上传文件

    如何使用input[type='file']来上传文件呢? html: //angular<input type="file" (change)="fileChan ...

  8. HIT Software Construction Lab 5_经验总结

    前言: 终于写完lab5了,这次lab5是基于lab3的一次实验,主要是王忠杰老师提供了4个大约有50w行的大文件让我们根据自己所选应用读取其中两个并且创建轨道系统. 这次lab5优化的我很崩溃,因为 ...

  9. 35.QT蝴蝶飞舞

    fly.h #ifndef FLY_H #define FLY_H #include <QObject> #include <QPainter> #include <QG ...

  10. 7. Reverse Integer[E]整数反转

    题目 Given a 32-bit signed integer, reverse digits of an integer. Example1: x = 123, return 321 Exampl ...