Soft20060210102649635

所属分类:P2P编程
开发工具:C/C++
文件大小:32KB
下载次数:118
上传日期:2008-11-06 12:11:43
上 传 者fflower1118
说明:  NAT 穿越 NAT分成四种,NAT是为解决网络地址紧张而产生的,但是他给p2P带来了麻烦,要想进行端到端的连接,就必须穿透这一层NAT 但是NAT多种多样,这就给NAT的穿越带来的麻烦,我们必须先确定NAT的类型,然后再进行穿越,这个代码讲述了UDP德穿越,它适用于大多数刘媒体穿越
(NAT through NAT divided into four, NAT is a network address to resolve the tensions arising from, but he has brought trouble to P2P, in order to carry out end-to-end connectivity, it must penetrate this layer of NAT, however a variety of NAT, which NAT alone the trouble of crossing, we must first determine the type of NAT, then we will proceed through the code on the UDP Tak crossing, which applies to most of the media across the Liu)

文件列表:
P2P之UDP穿透NAT的原理与实现源代码\Exception.h (498, 2004-05-21)
P2P之UDP穿透NAT的原理与实现源代码\proto.h (1725, 2004-05-21)
P2P之UDP穿透NAT的原理与实现源代码\UDP穿越NAT.TXT (8733, 2004-05-22)
P2P之UDP穿透NAT的原理与实现源代码\P2PServer\P2PServer.cpp (5364, 2004-05-21)
P2P之UDP穿透NAT的原理与实现源代码\P2PServer\P2PServer.dsp (4320, 2004-05-21)
P2P之UDP穿透NAT的原理与实现源代码\P2PServer\P2PServer.dsw (541, 2004-05-21)
P2P之UDP穿透NAT的原理与实现源代码\P2PServer\P2PServer.ncb (19456, 2004-05-22)
P2P之UDP穿透NAT的原理与实现源代码\P2PServer\P2PServer.opt (48640, 2004-05-21)
P2P之UDP穿透NAT的原理与实现源代码\P2PServer\P2PServer.plg (252, 2004-05-21)
P2P之UDP穿透NAT的原理与实现源代码\P2PServer\P2PServer.sln (907, 2004-05-22)
P2P之UDP穿透NAT的原理与实现源代码\P2PServer\P2PServer.suo (8192, 2004-05-22)
P2P之UDP穿透NAT的原理与实现源代码\P2PServer\P2PServer.vcproj (4305, 2004-05-22)
P2P之UDP穿透NAT的原理与实现源代码\P2PServer (0, 2006-02-10)
P2P之UDP穿透NAT的原理与实现源代码\P2PClient\P2PClient.cpp (9841, 2004-05-21)
P2P之UDP穿透NAT的原理与实现源代码\P2PClient\P2PClient.dsp (4324, 2004-05-21)
P2P之UDP穿透NAT的原理与实现源代码\P2PClient\P2PClient.dsw (541, 2004-05-21)
P2P之UDP穿透NAT的原理与实现源代码\P2PClient\P2PClient.ncb (19456, 2004-05-22)
P2P之UDP穿透NAT的原理与实现源代码\P2PClient\P2PClient.opt (48640, 2004-05-21)
P2P之UDP穿透NAT的原理与实现源代码\P2PClient\P2PClient.plg (252, 2004-05-21)
P2P之UDP穿透NAT的原理与实现源代码\P2PClient\P2PClient.sln (907, 2004-05-22)
P2P之UDP穿透NAT的原理与实现源代码\P2PClient\P2PClient.suo (8192, 2004-05-22)
P2P之UDP穿透NAT的原理与实现源代码\P2PClient\P2PClient.vcproj (4361, 2004-05-22)
P2P之UDP穿透NAT的原理与实现源代码\P2PClient (0, 2006-02-10)
P2P之UDP穿透NAT的原理与实现源代码 (0, 2006-02-10)

P2P之UDP穿透NAT的原理与实现源代码 论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的东西产生(源代码)。呵呵,在这里我就用自己实现的一个源代码来说明UDP穿越NAT的原理。 首先先介绍一些基本概念: NAT(Network Address Translators),网络地址转换:网络地址转换是在IP地址日益缺乏的情况下产生的,它的主要目的就是为了能够地址重用。NAT分为两大类,基本的NAT和NAPT(Network Address/Port Translator)。 最开始NAT是运行在路由器上的一个功能模块。 最先提出的是基本的NAT,它的产生基于如下事实:一个私有网络(域)中的节点中只有很少的节点需要与外网连接(呵呵,这是在上世纪90年代中期提出的)。那么这个子网中其实只有少数的节点需要全球唯一的IP地址,其他的节点的IP地址应该是可以重用的。 因此,基本的NAT实现的功能很简单,在子网内使用一个保留的IP子网段,这些IP对外是不可见的。子网内只有少数一些IP地址可以对应到真正全球唯一的IP地址。如果这些节点需要访问外部网络,那么基本NAT就负责将这个节点的子网内IP转化为一个全球唯一的IP然后发送出去。(基本的NAT会改变IP包中的原IP地址,但是不会改变IP包中的端口) 关于基本的NAT可以参看RFC 1631 另外一种NAT叫做NAPT,从名称上我们也可以看得出,NAPT不但会改变经过这个NAT设备的IP数据报的IP地址,还会改变IP数据报的TCP/UDP端口。基本NAT的设备可能我们见的不多(呵呵,我没有见到过),NAPT才是我们真正讨论的主角。看下图: Server S1 18.181.0.31:1235 | ^ Session 1 (A-S1) ^ | | 18.181.0.31:1235 | | v 155.99.25.11:62000 v | | NAT 155.99.25.11 | ^ Session 1 (A-S1) ^ | | 18.181.0.31:1235 | | v 10.0.0.1:1234 v | | Client A 10.0.0.1:1234 有一个私有网络10.*.*.*,Client A是其中的一台计算机,这个网络的网关(一个NAT设备)的外网IP是155.99.25.1 转载请注明来源: 开源盛世-源代码下载网 www.vscodes.com

近期下载者

相关文件


收藏者