转自:http://network.51cto.com/art/201009/223440.htm

在网络协议中,DHCP和NAT的使用非常普遍。那么对于这两个协议你是否有所掌握呢?这里我们针对这两方面来进行一下具体的介绍。首先让我们看看什么是DHCP,什么是NAT,之后再来将两者进行一下对比。

1. DHCP

DHCP 是 Dynamic Host Configuration Protocol(动态主机分配协议)缩写, 它分为两个部份:一个是服务器端,而另一个是客户端。所有的 IP 网络设定数据都由 DHCP 服务器集中管理,并负责处理客户端的 DHCP 要求;而客户端则会使用从服务器分配下来的IP环境数据。

它有一个租用地址的时期.就相当于我有很多的地址.假入你需要的话.我就借给你用几天.在一定的时期之内(指租用期限已到)你就会把地址还我.DHCP服务器.他有一个IP地址池.如果哪个计算机先来申请的话.他就从IP 地址池中捞一个起来.借给你用.你用完了.就还给我.

2. NAT

NAT 是 网络地址转换(Network Address Translation) 的缩写。 NAT 和 IP 伪装是完全一样的概念。 由 IPF 的 NAT 提供的一项功能是, 将防火墙后的本地局域网 (LAN) 共享一个 ISP 提供的 IP 地址来接入 Internet 公网。NAT 会自动地将每一台 PC 在内网的 LAN IP 地址, 在离开防火墙时转换为公网的 IP 地址。 此外,当数据包返回时, 也将进行逆向的转换。在 IP 地址空间中, 有一些特殊的范围是保留供经过 NAT 的内网 LAN IP 地址使用的。 根据 RFC 1918, 您可以使用下面这些IP 范围用于内网, 它们不会在 Internet 公网上路由:
起始 IP 10.0.0.0 - 结束 IP 10.255.255.255 
起始 IP 172.16.0.0 - 结束 IP 172.31.255.255 
起始 IP 192.168.0.0 - 结束 IP 192.168.255.255

3. 比较

DHCP.他只是动态的IP分配.没有将什么私有转换为公有地址.

一个形象的例子:

NAT用来将你的公司内部地址转换成internet可以识别的地址,这样你公司内部的计算机才可以浏览Internet. 通常你购买ISP提供的internet线路后,ISP会给你几个公网IP,但你的公司有上百,上千的计算机,那怎么办呢?

此时使用NAT进行地址转换,假设你设置73.12.36.81为你公司访问internet的公网地址,当你内部计算机要访问internet时,NAT会将他们的内部地址映射到73.12.36.81的某个端口上,例如:73.12.36.81:9999,这样就实现了N多计算机使用同一公网IP上网的功能。如果你不设置NAT,那内网IP在公网是无法识别的,也就无法上网。

DHCP是用来动态分配IP地址的,windows客户端默认使用DHCP获的内网IP地址,建立DHCP后它们就可以自动得到IP地址来进行网络访问了,如果不用DHCP,计算机多的话,一台一台设置,那是个没人愿意干的事。DHCP让你的内部客户端可以快速的得到自己的IP地址,NAT可以让这些IP来访问internet.

DHCP和NAT的概念与对比的更多相关文章

  1. winbox添加dhcp和nat

    例子如上,wan连接外网,lan作为内网. 设置网卡ip 保证mac地址正确! 去到ip address里,设置两网卡的ip! 保证能ping通外网! 设置dhcp ip pool添加池,192.16 ...

  2. VMWare开启DHCP和NAT服务(VMWare无法通过NAT上网以及和host主机通信的问题解决)

    最近在学习Hadoop,开始做一个集群.由于各个节点的IP地址需要保持不变,我决定在VMWare采用NAT的模式联网. 但是在安装Ubuntu系统的时候,提示我DHCP服务未开启. Your netw ...

  3. DHCP和NAT

    DHCP(dynamic host configuration protocol)用于内网动态分配IP,是一种基于UDP的应用层协议. NAT(net address translation)用于内网 ...

  4. 分配IP地址的好东西 DHCP以及NAT简单介绍

    主机配置协议DHCP 1.DHCP应用场景 2.DHCP基础原理 3.NAT简单介绍 4.配置命令 1.手工配置IP地址,工作量比较大而且不好管理,如果用户自己修改参数,可能会导致ip地址冲突,这个时 ...

  5. 【Python】【一些概念与对比】

    type.__new__()  : 返回类.可以把类看作是metaclass 创建出来的实例 普通类里的__new__() : 返回类的实例. __new__() : 返回类的实例.Python解释器 ...

  6. IPv6技术详解:基本概念、应用现状、技术实践(上篇)

    本文来自微信技术架构部的原创技术分享. 1.前言 普及IPV6喊了多少年了,连苹果的APP上架App Store也早已强制IPV6的支持,然并卵,因为历史遗留问题,即使在IPV4地址如果饥荒的情况下, ...

  7. (转) 注意啦,笔记本是无线的,虚拟机上网方式莫用NAT,好难整。

    有线网络 在有线网络的条件下,vmware的安装非常简单,上网方式几乎不用怎么设置(默认 NAT模式) 如果默认情况下不能上网,则按以下步骤尝试: ************************** ...

  8. 虚拟机NAT模式无法上网问题的解决办法

    在使用CentOS虚拟机时,出现了无法上网的情况,使用主机ping虚机地址可以ping通,而虚机ping不通主机,同时虚机也无法ping通其他的网址或ip,显示内容为Network is unreac ...

  9. [转]VMware虚拟机上网络连接(network type)的三种模式--bridged、host-only、NAT

    转自:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/03/15/1985084.html VMWare提供了三种工作模式,它们是brid ...

随机推荐

  1. Developing a plugin framework in ASP.NET MVC with medium trust

    http://shazwazza.com/post/Developing-a-plugin-framework-in-ASPNET-with-medium-trust.aspx January 7, ...

  2. golang社工库数据扫描程序

    https://github.com/xiaojiong/scanfile 演示站点: http://www.weigongkai.com/   7G数据 2s完成扫描 package scanfil ...

  3. CSS 仿Excel表格功能

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. WebService学习总结(三)——使用JDK开发WebService

    一.WebService的开发手段 使用Java开发WebService时可以使用以下两种开发手段 1. 使用JDK开发(1.6及以上版本) 2.使用CXF框架开发(工作中) 二.使用JDK开发Web ...

  5. VirtualBox 网络设置

    VirtualBox是什么 VirtualBox 是一款 x86 虚拟机软件.原由德国innotek公司开发,2008年Sun收购了Innotek,而Sun于2010年被Oracle收购,2010年1 ...

  6. PHP连接MySQL报错:SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket 'MySQL' (2)

    如下所示,PHP连接MySQL报错: SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket 'MySQL' ...

  7. PHP常用正则表达式

    正则表达式用于字符串处理.表单验证等场合,实用高效.现将一些常用的表达式收集于此,以备不时之需. 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表 ...

  8. 用LoadRunner实现接口测试

    接口测试的两种方法 其实无论用那种测试方法,接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一个过 ...

  9. Android Activity模拟dialog

    Android项目中很多地方,都会弹出一个弹出框.类似于自己定义的alertDialog,比如微信的退出提示,但由于Dialog的限制,可能不能很完美的实现你的想要的功能,所有研究发现他们这种实现其实 ...

  10. STL之list容器用法

    List 容器 list是C++标准模版库(STL,Standard Template Library)中的部分内容.实际上,list容器就是一个双向链表,可以高效地进行插入删除元素. 使用list容 ...