基于upnp穿越nat技术

基于upnp穿越nat技术

ID:19306531

大小:122.50 KB

页数:7页

时间:2018-09-21

基于upnp穿越nat技术_第1页
基于upnp穿越nat技术_第2页
基于upnp穿越nat技术_第3页
基于upnp穿越nat技术_第4页
基于upnp穿越nat技术_第5页
资源描述:

《基于upnp穿越nat技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于UPnP的穿越NAT的技术附件2(实验资料清单)作者唐善成撰写时间2005年9月7日文档类型实验资料文档状态草稿目录1、总体设计32、详细设计32.1、内网客户端32.2、外网客户端53、物理实现54、文档代码清单64.1、文件夹projectat.inclient的内容64.2、文件夹projectat.outclient的内容65、软件部署75.1、部署硬件平台75.2、部署软件平台75.3、部署客户端软件71、总体设计为了验证基于UpnP的穿越NAT的技术的可行性(针对两种情况:外网主机主动访问内网主机;内网主机在数据包中包含后继

2、会话的新地址端口),需要构建实验平台。实验平台的硬件部分由3台PC机、4块以太网网卡组成,实验平台的框架如图1所示。而内网主机客户端和外网主机客户端的软件框架如图2和图3所示。Winsock和NATUPnP组件都是WindowsXP自身携带的,分别是.ocx和.dll文件。内网主机客户端和外网主机客户端基于C/S模式进行交互,来达到实验目的。交互分两种情况:第一种,外网主机主动访问内网主机。①内网主机客户端通过穿越NAT功能将位于内网主机的FTP服务的服务端口映射到NAT主机上,如192.168.22.44:21映射到193.168.22.1:62

3、1;②外网主机可以通过FTP客户端访问ftp://193.168.22.1:621来获得192.168.22.44:21所提供的服务。第二种,内网主机在数据包中包含后继会话的新地址端口。①外网主机客户端监听端口,如991,等待内网客户端的连接请求;②内网客户端连接外网主机端口991,连接成功后,先获取NAT外网IP,然后选定下次会话的新端口如882,接下来设置NAT以建立映射,将192.168.22.44:882映射到193.168.22.1.6882,最后发送特定的数据包,其中包含下次会话的新地址端口(NAT外网IP和NAT外网端口,如193.1

4、68.22.1.6882);③内网客户端监听端口,如882,等待外网客户端的连接请求;④外网客户端接收到特定的数据包后,关闭监听端口,解析数据包,更新界面数据,并获得NAT外网IP和NAT外网端口,然后连接所得的IP和端口;⑤外网客户端连接内网客户端成功后,就可以发送特定数据包给内网客户端;⑥内网客户端接收到数据包后,解析数据包,更新界面数据。图1实验平台框架内网主机192.168.22.44NAT主机内网接口192.168.22.1外网接口193.168.22.1外网主机193.168.22.44WindowsXPSP2WindowsXPSP2W

5、indows2000SP4内网主机客户端应用程序TCP/UDP会话WinsockNAT设置NATUPnP外网主机客户端应用程序TCP/UDP会话Winsock图2内网主机客户端软件框架图3外网主机客户端软件框架2、详细设计根据总体设计方案对内网主机客户端软件和外网主机客户端软件进行设计,分内网客户端和外网客户端分别叙述。2.1、内网客户端内网客户端主要包含两个功能:①测试设置NAT以让外网主机主动访问内网主机的情况;②测试内网主机在数据包中包含后继会话的新地址端口的情况。相关组件描述如表1,组件以及组件之间的关系如图4。modUtilPublicS

6、ubErrorPrint(ByValErrValueAsLong)clsBringDataPublicstrDisplayAsStringPublicstrNewIPAsStringPublicstrNewPortAsStringPublicstrNewNatIPAsStringPublicstrNewNatPortAsStringPublicstrOldIPAsStringPublicstrOldPortAsStringPublicstrOldNatIPAsStringPublicstrOldNatPortAsStringPublicFuncti

7、onDataFieldToString()AsStringPublicSubStringToDataField(…)modMainPublicunatRouterAsNATUPNPLib.UPnPNATPublicstrUnableResolveExtIPAsStringPublicSubMain()PublicFunctionGetExternalIP()AsStringPublicFunctionSetExternalPort(…)AsBooleanPublicFunctionDeleteExternalPort(…)AsBooleanfrmU

8、PnPTraversalInPrivateSubForm_Load()PrivateSubcmdQuery_Click()

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。