2007年10月20日

【NAT原理简介】

  NAT英文全称是“Network Address Translation”,中文意思是“网络地址转换”,它是一个IETF(Internet Engineering Task Force, Internet工程任务组)标准,允许一个整体机构以一个公用IP(Internet Protocol)地址出现在Internet上。顾名思义,它是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术。
  简单地说,NAT就是在局域网内部网络中使用内部地址,而当内部节点要与外部网络进行通讯时,就在网关(可以理解为出口,打个比方就像院子的门一样)处,将 内部地址替换成公用地址,从而在外部公网(internet)上正常使用,NAT可以使多台计算机共享Internet连接,这一功能很好地解决了公共 IP地址紧缺的问题。通过这种方法,您可以只申请一个合法IP地址,就把整个局域网中的计算机接入Internet中。这时,NAT屏蔽了内部网络,所有 内部网计算机对于公共网络来说是不可见的,而内部网计算机用户通常不会意识到NAT的存在。如图2所示。这里提到的内部地址,是指在内部网络中分配给节点 的私有IP地址,这个地址只能在内部网络中使用,不能被路由(一种网络技术,可以实现不同路径转发)。虽然内部地址可以随机挑选,但是通常使用的是下面的 地址:10.0.0.0~10.255.255.255,172.16.0.0~172.16.255.255, 192.168.0.0~192.168.255.255。NAT将这些无法在互联网上使用的保留IP地址翻译成可以在互联网上使用的合法IP地址。而全 局地址,是指合法的IP地址,它是由NIC(网络信息中心)或者ISP(网络服务提供商)分配的地址,对外代表一个或多个内部局部地址,是全球统一的可寻 址的地址。
  NAT 功能通常被集成到路由器、防火墙、ISDN路由器或者单独的NAT设备中。比如Cisco路由器中已经加入这一功能,网络管理员只需在路由器的IOS中设 置NAT功能,就可以实现对内部网络的屏蔽。再比如防火墙将WEB Server的内部地址192.168.1.1映射为外部地址202.96.23.11,外部访问202.96.23.11地址实际上就是访问访问 192.168.1.1。另外资金有限的小型企业来说,现在通过软件也可以实现这一功能。Windows 98 SE、Windows 2000 都包含了这一功能。



【NAT技术类型】

  NAT有三种类型:静态NAT(Static NAT)、动态地址NAT(Pooled NAT)、网络地址端口转换NAPT(Port-Level NAT)。
  其中静态NAT设置起来最为简单和最容易实现的一种,内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址。而动态地址NAT则是在外部网络中定 义了一系列的合法地址,采用动态分配的方法映射到内部网络。NAPT则是把内部地址映射到外部网络的一个IP地址的不同端口上。根据不同的需要,三种 NAT方案各有利弊。
  动态地址NAT只是转换IP地址,它为每一个内部的IP地址分配一个临时的外部IP地址,主要应用于拨号,对于频繁的远程联接也可以采用动态NAT。当远程用户联接上之后,动态地址NAT就会分配给他一个IP地址,用户断开时,这个IP地址就会被释放而留待以后使用。
  网络地址端口转换NAPT(Network Address Port Translation)是人们比较熟悉的一种转换方式。NAPT普遍应用于接入设备中,它可以将中小型的网络隐藏在一个合法的IP地址后面。NAPT与 动态地址NAT不同,它将内部连接映射到外部网络中的一个单独的IP地址上,同时在该地址上加上一个由NAT设备选定的TCP端口号。
  在Internet 中使用NAPT时,所有不同的信息流看起来好像来源于同一个IP地址。这个优点在小型办公室内非常实用,通过从ISP处申请的一个IP地址,将多个连接通 过NAPT接入Internet。实际上,许多SOHO远程访问设备支持基于PPP的动态IP地址。这样,ISP甚至不需要支持NAPT,就可以做到多个 内部IP地址共用一个外部IP地址上Internet,虽然这样会导致信道的一定拥塞,但考虑到节省的ISP上网费用和易管理的特点,用NAPT还是很值 得的。

posted @ 2007-10-20 21:40 紧握刀锋 阅读(1594) | 评论 (0)编辑 收藏


2007年10月15日

  在一些无线网络中,由于客户机数目较多,为方便对这些机器进行管理,很多管理员会使用无线路由器提供的DHCP服务,为客户机提供TCP/IP参数配置,如IP地址、网关地址和DNS服务器等。但如果你的无线网络中,有些电脑必须手工指定TCP/IP参数配置,比如:将某些电脑的MAC地址绑定特定的IP地址,这时DHCP服务器提供的动态IP地址和手工指定的静态IP地址共存,如果你没有合理配置无线路由器中DHCP服务器的参数,就会很容易造成IP地址冲突。
  
  冲突如何产生?
  如笔者管理的一个无线网络,有50台电脑,其中有5台电脑由于特殊需要,使用了手工设置静态IP地址的方式,使用的IP地址段为“192.168.1.10~192.168.1.14”,其它45台电脑通过无线路由器的DHCP服务获得IP地址等参数信息。但如果你的无线路由器中DHCP服务的“地址池”参数设置不合理,包含了以上5台电脑使用的IP地址段,就有可能产生IP地址冲突。
  
  产生IP地址冲突的原因非常简单,如使用静态IP地址“192.168.1.11”的电脑A没有开机,当无线网络中的某台电脑B向无线路由器的DHCP服务器申请IP地址时,DHCP服务器发现“192.168.1.11”这个IP地址目前是空闲的,没有任何电脑使用,就很有可能将这个IP地址分配给申请IP地址的电脑B。当电脑A开机启动后上线,就会发现还有其它电脑使用“192.168.1.11”这个IP地址,于是就会产生IP地址冲突。
  
  合理设置DHCP参数
  知道了无线网络中IP地址冲突是如何产生的,预防这种事情的发生就很简单了,只要你合理设置DHCP服务器中的“地址池”参数。你要清楚地知道,采用静态IP地址方式的电脑占用了哪些IP地址段,为了避免发生IP地址冲突,在配置DHCP服务器的“地址池”参数时,一定要排除被静态IP地址占用的这些地址段。
  
  这里还是以笔者的无线网络为例(如图),采用静态IP地址的电脑占用了“192.168.1.10~192.168.1.14”这个IP地址段,因此在设置“地址池”参数时必须排除这个IP地址段,以防止冲突的产生,如笔者将“地址池”参数设置为“192.168.1.15~192.168.1.60”,这样既满足了45台动态IP地址客户机的需要,又防止了IP地址冲突的产生。

posted @ 2007-10-15 22:35 紧握刀锋 阅读(514) | 评论 (0)编辑 收藏


2007年10月14日

  每个人的学习历程都是从浅入深的,学习C++也不例外。
  以前在网上看过这样一个帖子,正在看其中的几本,觉得不错,贴出来与大家分享.

C++/OPP/OOD系列:

层级一:语法/语意(C++)
[Lippman2000] Essential C++
Essential C++,by Stanley B. Lippman Addison Wesley Longman 2000,276 pages
Essential C++ 中文版 ,侯俊杰 译,282页 

[Gregory95] C++:The Core Language
C++:The Core Language by Gregory Satir 1995 O'Reilly
C++语言核心,张铭泽 译 ,236页

[Deitel98] The Complete C++ Training Course
The Complete C++ Training Course 2/e by Harvey M.Deitel 1998 Prentice Hall
C++大学教程(第二版),邱仲潘等 译,816页

[Stevens2000] Standard C++ Bible
Standard C++ Bible   2000  Al Stevens   IDG
标准C++宝典,林丽闽等 译,766页

[Eckel2000] Thinking in C++
Thinking in C++ 2/e   Bruce Eckel  2000 1470 pages Prentice Hall
C++ 编程思想,刘宗田等 译,420页

[Lippman98] C++Primer
C++ Primer,3rd Editoin,by Stanley Lippman and Josee Lajoie
 Addison Wesley Longman,1998 1237 pages
C++ Primer 中文版,侯俊杰 译,1999,1237页

[Struostrup2000] The C++ Programming Language
The C++ Programming Language,Special Editoin,by Bjarne Stroustrup
 Addison Wesley Longman,2000,1017 pages
C++程序语言经典本,叶秉哲 译,儒林 1999

[ANSI C++] C++规格书 1998.9.1 PDF格式
ANSI C++ 1996 Draft


层级二:专家经验(C++/OOP)
[Meyers96] More Effective C++
More Effective C++,by Scott Meyers,Addison Wesley,1996,318pages
More Effective C++中文版,侯俊杰,培生 2000. 318页

[Meyers98] Effective C++
Effective C++,Second Edition,by Scott Meyers,Addison Wesley Longman,1998.256pages
Effective C++ 2/e 中文版,侯俊杰,培生 2000.256页

[Sutter99] Exceptional C++
Exceptional C++,by Herb Sutter,Addison Wesley Longman,2000.208pages
Exceptional C++中文版,侯俊杰,培生 2000.248页
 
[Sutter2001]More Exceptional C++
More Exceptional C++ by Herb Sutter,Addison Wesley Longman,2001.

层级三:底层机制(C++ Object Model)
[Ellis90] The Annotated C++ Reference Manual
The Annotated C++ Reference Manual,by Margaret A.Ellis and Bjarne Stroustrup
Addison Wesley Longman,1990,447 pages.

[Lippman96] Inside the C++ Object Model
Inside the C++ Object Model,by Stanley Lippman,Addison Wesley Longman,1996,280pages
深度探索C++物件模型,侯俊杰 译


层级四:设计观念的复用(C++/Patterns)
[Gamma95] Design Patterns:Elements of Reusable Object Oriented Software,
by Erich Gamma,Richard Helm,Ralph Johnson,and John Vlissides,Addison Wesley,1995.395pages
设计模式,李英军等译,机械工业出版社,2000.254页

[Alex2001]Modern C++ Design: Generic Programming and Design Patterns Applied
by Andrei Alexandrescu,Addison-Wesley,2001,352Paper
 

Genericity/STL系列:

第一个境界是使用STL:
[Josuttis99]:The C++ Standard Library -A Tutorial and Reference,by Nicolai M.Josuttis,
Addison Wesley 1999.799pages

第二个境界是了解泛型技术的内涵与STL的学理:
[Austern98]:Generic Programming and the STL -Using and Extending the C++ Standard
Template library,by Matthew H.Austern,Addison Wesley 1998.548page


第三个境界是扩充STL:
[Stepanov2001]:C++ Standard Template Library by P.J.Plauger,Alexander A.Stepanov,
Meng Lee,David R.Musser,Prentice Hall 2001


你看过其中的几本呢?

posted @ 2007-10-14 17:30 紧握刀锋 阅读(2969) | 评论 (9)编辑 收藏

.APS:存放二进制资源的中间文件,VC把当前资源文件转换成二进制格式,并存放在APS文件中,以加快资源装载速度。资源辅助文件。

.BMP:位图资源文件。

.BSC:浏览信息文件,由浏览信息维护工具(BSCMAKE)从原始浏览信息文件(.SBR)中生成,BSC文件可以用来在源代码编辑窗口中进行快速定位。用于浏览项目信息的,如果用source brower的话就必须有这个文件。可以在project options里去掉Generate Browse Info File,这样可以加快编译进度。

.C:用C语言编写的源代码文件。

.CLW:ClassWizard生成的用来存放类信息的文件。classwizard信息文件,ini文件的格式。

.CNT:用来定义帮助文件中“Contents”的结构。

.CPP或.CXX:用C++语言编写的源代码文件。

.CUR:光标资源文件。

.DEF:模块定义文件,供生成动态链接库时使用。

.DLG:定义对话框资源的独立文件。这种文件对于VC工程来说并非必需,因为VC一般把对话框资源放在.RC资源定义文件中。

.DSP:VC开发环境生成的工程文件,VC4及以前版本使用MAK文件来定义工程。项目文件,文本格式。

.DSW:VC开发环境生成的WorkSpace文件,用来把多个工程组织到一个WorkSpace中。工作区文件,与.dsp差不多。

.EXP:由LIB工具从DEF文件生成的输出文件,其中包含了函数和数据项目的输出信息,LINK工具将使用EXP文件来创建动态链接库。只有在编译DLL时才会生成,记录了DLL文件中的一些信息。

.H、.HPP或.HXX:用C/C++语言编写的头文件,通常用来定义数据类型,声明变量、函数、结构和类。

.HLP:Windows帮助文件。

.HM:在Help工程中,该文件定义了帮助文件与对话框、菜单或其它资源之间ID值的对应关系。

.HPJ:由Help Workshop生成的Help工程文件,用来控制Help文件的生成过程。

.HPG,生成帮助的文件的工程。

.ICO:图标资源文件。

.ILK:连接过程中生成的一种中间文件,只供LINK工具使用。

.INI:配置文件。

.LIB:库文件,LINK工具将使用它来连接各种输入库,以便最终生成EXE文件。

.LIC:用户许可证书文件,使用某些ActiveX控件时需要该文件。

.MAK:即MAKE文件,VC4及以前版本使用的工程文件,用来指定如何建立一个工程,VC6把MAK文件转换成DSP文件来处理。

.MAP:由LINK工具生成的一种文本文件,其中包含有被连接的程序的某些信息,例如程序中的组信息和公共符号信息等。执行文件的映像信息记录文件。

.MDP:旧版本的项目文件,相当于.dsp

.NCB:NCB是“No Compile Browser”的缩写,其中存放了供ClassView、WizardBar和Component Gallery使用的信息,由VC开发环境自动生成。无编译浏览文件。当自动完成功能出问题时可以删除此文件。编译工程后会自动生成。

.OBJ:由编译器或汇编工具生成的目标文件,是模块的二进制中间文件。

.ODL:用对象描述语言编写的源代码文件,VC用它来生成TLB文件。

.OLB:带有类型库资源的一种特殊的动态链接库,也叫对象库文件。

.OPT:VC开发环境自动生成的用来存放WorkSpace中各种选项的文件。工程关于开发环境的参数文件。如工具条位置信息等。

.PBI、.PBO和.PBT:由VC的性能分析工具PROFILE生成并使用的三种文件。

.PCH:预编译头文件,比较大,由编译器在建立工程时自动生成,其中存放有工程中已经编译的部分代码,在以后建立工程时不再重新编译这些代码,以便加快整个编译过程的速度。

.PDB:程序数据库文件,在建立工程时自动生成,其中存放程序的各种信息,用来加快调试过程的速度。记录了程序有关的一些数据和调试信息。

.PLG:编译信息文件,编译时的error和warning信息文件。

.RC:资源定义文件。

.RC2:资源定义文件,供一些特殊情况下使用。

.REG:注册表信息文件。

.RES:二进制资源文件,资源编译器编译资源定义文件后即生成RES文件。

.RTF:Rich Text Format(丰富文本格式)文档,可由Word或写字板来创建,常被用来生成Help文件。

.SBR:VC编译器为每个OBJ文件生成的原始浏览信息文件,浏览信息维护工具(BSCMAKE)将利用SBR文件来生成BSC文件。

.TLB:OLE库文件,其中存放了OLE自动化对象的数据类型、模块和接口定义,自动化服务器通过TLB文件就能了解自动化对象的使用方法。

.WAV:声音资源文件。

posted @ 2007-10-14 14:09 紧握刀锋 阅读(404) | 评论 (0)编辑 收藏

  上学期偏离了一下研究C++的方向,所以没有来写C++博客,以至于原来那个C++博客的用户名和密码都忘记了:以前登陆C++博客时,都是浏览器自动填写登陆信息,很少自己手动输入帐号密码的。这学期重装了系统,原来保存在浏览器里面的帐号信息现在全没有了!真后悔当初没有做个备份。
  这学期虽然已经奔(大)三,学习任务比较繁忙(现在才发现通信工程还是比较难的~~这几天被《电磁场与电磁波》搞得晕头转向),但对C++的热情不减,更希望在http://www.cppblog.com学到更多的知识,结识更多的朋友,所以重新申请了一个帐号,作为一个新的起点吧!

posted @ 2007-10-14 03:09 紧握刀锋 阅读(418) | 评论 (2)编辑 收藏


仅列出标题  

posts - 5, comments - 11, trackbacks - 0, articles - 0

Copyright © 紧握刀锋