问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

局域网如何模拟nat的穿越

发布网友 发布时间:2022-04-30 17:28

我来回答

2个回答

热心网友 时间:2022-04-12 21:21

其实我所遇到的问题称为NAT Traveral,即NAT穿越问题,目前已经有很多关于这方面的讨论。相信大家也有所zhanwo,从内部网络中的各主机分配的都是虚拟IP地址,一个内部网络通过一个真实的IP地址与外界通讯,从而隐藏了内部主机地址,起到保护作用,同时也节省了真实IP地址的使用.当一个内部主机与外界某主机通讯时,内部主机将数据包发送到NAT设备,此时数据包中包含源地址\端口,目的地址\端口和其它一些信息。当数据包到达NAT设备时,NAT设备生成一个MAP映射表,并将包中的源地址换成自己的合法IP地址,并为此次通讯分配一个端口号,用来替换源端口号。MAP映射表中记录所有这些改变。以后当NAT接到外界传来的数据包时,NAT察看映射表,再重新将目的地址和端口作替换,从而将数据包发送到内部某主机。
现在我们看到,通过NAT,子网内的计算机向外连结是很容易的(NAT相当于透明的,子网内的和*的计算机不用知道NAT的情况)。但是如果外部的计算机想访问子网内的计算机就比较困难了,这时就涉及到了NAT打洞技术(Hole Punching)。打洞思想基本是:一台*IP地址的计算机想和NAT后面的内网计算机通讯的条件就是要求NAT后面的内网计算机主动向*IP地址的计算机发起一个UDP数据包。*IP地址的计算机利用收到的UDP数据包获取到NAT的*IP地址和映射的端口,以后就可以和内网IP的计算机透明的进行通讯了。
但这里还存在一个问题:内网主机怎么知道何时外部有人想与他通信,外部节点又是谁呢?查阅的资料中关于这点提到的较少。只是有一份资料中提到了”心跳包”,即内部主机按一定频率向外部server或外部主机发送心跳包,从而维持通道畅通,否则过一段时间若无数据传输,通道将自动关闭,外部将无法与内部通讯。这方面的内容我还得在研究一下。
目前,我们已经解决了内 ->外,外 ->内两种情况。现在来讨论一下内 ->内的情况,即若两个主机都位于两个不同的NAT后面,此时双方都无法获得对方的地址,这时就需要一个中间人来联系两个主机。如下图:
Server S (219.237.60.1)
|
|
+----------------------+----------------------+
| |
NAT A (*IP:202.187.45.3) NAT B (*IP:187.34.1.56)
(内网IP:172.168.0.1) (内网IP:192.168.0.1)
| |
Client A (172.168.0.20:4000) Client B (192.168.0.10:5000)

首先,Client A登录服务器,NAT A为这次的Session分配了一个端口60000,那么Server S收到的Client A的地址是202.187.45.3:60000,这就是Client A的*地址了。同样,Client B登录Server S,NAT B给此次Session分配的端口是70000,那么Server S收到的B的地址是187.34.1.56:70000。
此时,Client A与Client B都可以与Server S通信了。如果Client A此时想直接发送信息给Client B,那么他可以从Server S那儿获得B的公网地址187.34.1.56:70000,但此时Client A向这个地址发送信息Client B是收不到的。因为NAT B中没有关于NAT A的信息,所以将会把来自NAT A的数据包丢弃。现在我们需要的是在NAT B上打一个方向为202.187.45.3(即Client A的*地址)的洞,那么Client A发送到187.34.1.56:70000的信息,Client B就能收到了。这个打洞命令就由Server S来完成,即如果Client A想向Client B发送信息,那么Client A发送命令给Server S,请求Server S命令Client B向Client A方向打洞。

热心网友 时间:2022-04-12 22:39

参*我家住在黄土高坡,大风从坡上刮过,不管是李宇春,还是曾轶可,都是我滴哥,我滴哥
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
2198香辣虾是什么意思 虾什么梗 肖战 刻纸制作需要哪些步骤 好玩的生存游戏手游(好玩的生存游戏手游推荐) 北京电脑职业培训学校都有哪些北京电脑培训班都有哪些 欧盟商标注册需要提供什么资料? 怎么注册欧盟商标?需要准备哪些材料? 5g手机有什么好处 5g手机大概多少钱 口水臭是什么原因呢? 口水臭是什么原因 口水臭怎么改善 包粽子的平沙是苏打粉吗? 什么是Email的自动回复功能 qq邮箱邮件标题后有一个数字(24)是啥意思 用(lliirnatb)组成英语单词 苹果8plus的截屏小窗口突然不见了 qq邮箱邮件名称后有数字,如(2),里面有两封邮件,是怎么回事? 吃粽子沾的那个粉叫什么? 什么是NAT,常见分为那几种,DNAT与SNAT有什么不同,应用事例有那些? 盆栽树主要有几种类型? 自动回复功能 包粽子时添加的那种让米变黄的粉怎么叫啊? 成考需要准备什么? 模式和NAT模式有什么区别 粽子加的白色粉末是什么,学名是什么 什么是邮件的自动回复功能? 箭射没有洞,刀砍不留痕。雨来成碎锦,风起现花纹。是什么生肖的动物? 裸连nat b联网对战的话卡吗 各位大佬,NAT B的类型能玩喷射战士2吗 请问包粽子时,在米中加入的白粉是什么粉? 提着灯笼砍柴明砍是指什么生肖 适合室外盆栽花树 qq自动回复有什么好处,优势? 包粽子的糯米里放什么粉糯米变黄色 北方地区室外盆栽果树冬季该怎么保温和管理 露天也可以盆栽果树吗 手机QQ中的自动回复功能怎样有用 砍了头的竹子节外生枝是什么生肖? 为什么我的iphone 截图时没有悬浮窗?为什么我的iphone截图的时候图片上没有悬浮窗 江西省信丰县包粽子的时候有放2种白色的粉,一种是”食用碱“,另一种是什么?求解!!!, 提着灯笼砍柴---明砍 猜一生肖并说明理由谢谢.. 端午节包粽子放的是什么碱?是不是小苏打?放这个东西有什么作用 案板上砍骨头,干干脆脆,是什么生肖 9月份室外盆栽能种什么水果 如何从画册设计排版看质量 发财树盆栽能否放在露天种植 砍了头的竹子,节外生枝。是什么生肖? 砍柴卖买柴烧(尽做倒功)指什么生肖 北京室外木盆栽树能过冬吗? 包粽子要放什么材料 说一个生肖清明节有一道“砍″什么意思?