NAT
2017-01-09 21:24:14 0 举报
NAT(网络地址转换)是一种在IP网络上进行地址转换的技术。它允许一个机构内的所有设备共享一个公共的IP地址,从而节省了公网IP地址资源。NAT通过将内部网络设备的私有IP地址转换为公有IP地址来实现这一目标。这样,当内部设备需要与外部网络通信时,NAT设备会将其私有IP地址转换为公有IP地址,从而实现通信。NAT技术广泛应用于家庭、企业和其他组织的内部网络中,以实现对内部网络资源的保护和访问控制。
作者其他创作
大纲/内容
返回值置2
是
static_map==TRUE?
回收对应全局IP资源的端口
找到动态映射?
port所在组已分配空间?
开始
返回值置0
删除对应表项
否
将修改后的静态地址转换表写入文件static_NAT_table.dat中
找到下标i?
为该组分配存储空间
结束
遍历全局IP资源,找一个空闲端口
根据输入的IP和端口在静态地址转换表中查找
根据索引将对应端口标记为空闲状态
找到相应表项?
获取输入参数i和port根据port计算其所在组号、组内变量索引及变量内位索引
静态地址转换表中的全局IP都在全局IP资源数组中?
根据输入的内网IP和port的组合在静态表中查找表项
将对应的全局IP和端口放入输出参数
尝试为其创建动态映射
返回值置1
创建成功?
文件创建或打开成功?
第i个全局IP资源的using_group=-1
将创建(或找到)的映射的全局IP和端口号分别放到函数第三、四个指针参数所指区域
计算port所在组索引、组内变量索引及变量内的位索引
返回值置非零值
第i个全局IP资源的using_group=port所在组
将port所在组所占的空间释放掉
将静态地址转换表的表项逐条写入此文件
找到静态映射?
根据组内变量索引、变量内位索引将表示port的位标记为已占用
将找到的映射的全局IP和端口号分别放到函数第三、四个指针参数所指区域
创建或打开static_NAT_table.dat文件
删除静态转换表中全局IP不在全局IP资源数组中的表项
port所在unsigned short变量表示的16个端口是否均为空闲状态?
根据输入的内网IP和port的组合在动态表中更新并查找表项
将静态地址转换表写入文件static_NAT_table.dat中
删除成功?
释放全局IP资源数组所占的空间
初始化相应属性
释放静态地址转换表和动态地址转换表的空间
根据其中内容构建静态地址转换表
第i个全局IP资源的using_group与port所在组下标相同?
static_NAT_table.dat成功打开?
port所在组所有端口是否均为空闲状态?
关闭文件
根据pd-global_IP查找其对应的全局IP资源下标i
找到空闲端口?
0 条评论
下一页