登录社区:用户名: 密码: 忘记密码 网页功能:加入收藏 设为首页 网站搜索  

文档

下载

图书

论坛

安全

源码

硬件

游戏
首页 信息 空间 VB VC Delphi Java Flash 补丁 控件 安全 黑客 电子书 笔记本 手机 MP3 杀毒 QQ群 产品库 分类信息 编程网站
 内容搜索 网页 下载 源代码
最新源码
  VC中ftp协议实现多线程断点..
  点对点视频会议程序VideoN..
  DC++ V0.672 源码
  P2P之UDP穿透NAT的原理与实..
  演示如何用MFC和DAO(数据访..
  功能强大的热点连接(HotLi..
  功能强大的热点连接(HotLi..
  一个支持POP3(Post Office..
  罗列IP地址的一个应用
  一个支持SMTP(Simple Mess..
  一个邮件发送程序
  一个支持PING协议的MFC类C..
热点源码
  P2P之UDP穿透NAT的原理与实..
  VC中ftp协议实现多线程断点..
  点对点视频会议程序VideoN..
  很酷的菜单
  一个邮件发送程序
  一个多文档浏览器
  聊天室也是Socket编程里常..
  DC++ V0.672 源码
  simple browser 1.0图片浏..
  在视图中嵌入文件选择对话框
  一个支持PING协议的MFC类C..
  创建2000风格的向导对话框
最新招聘信息

您现在的位置:立华软件园->源码中心->VC代码->网络开发
P2P之UDP穿透NAT的原理与实现
发表日期:2004-11-14文件大小:28KB 下载次数:8899  

源代码说明:
论坛上经常有对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才是我们真正讨论的主角。

参见:P2P之UDP穿透NAT的原理与实现

立即下载

我来说两句】 【发送给朋友】 【加入收藏】 【返加顶部】 【打印本页】 【关闭窗口
中搜索 P2P之UDP穿透NAT的原理与实现
关于我们 / 合作推广 / 给我留言 / 版权举报 / 意见建议 / 广告投放 / 友情链接

Copyright ©2001-2003 Allrights reserved
e_mail:站长:webmaster(at)lihuasoft.net
网站编程QQ群  
京ICP备05001064号

页面生成时间:0.00386