信息在网络中的漫游(四)

本文分析一下DHCP和NAT

首先分析一下NAT,即网络地址转换。家中的路由器利用了这种技术,本来一个家庭只是从ISP那里申请到了一个IP,但是为什么能够同时供好几个终端同时上网,IP在家用路由器这里发生了什么?这只是NAT的应用场景之一,还有比如很多公司存在所谓的内部网络,处于内部网络的终端可以访问外部网络,但是外部网络却不能访问这些终端,这里使用的也是NAT技术。

从上面的描述中可以看出NAT至少有两个好处:一是缓解了IP资源不足的问题,或者说多路复用了IP;二是安全,至少保证了内网的安全,因为外网无法访问内网(但是内网却可以访问外网,有点信息不对称的赶脚)。而这两个好处大概就是促使NAT出现的原因。

现在考虑一个机构的情形:机构的网络一般分为两部分,一部分是对外的,称为外网;另一部分就是内网了。外网的终端一般都是一些网页服务器之类的,它们是对外宣传的窗口,所以必然要能被别的网络访问,因而要有独立的、合法的IP地址;内网的终端存放的都是机构的机密信息,不希望被外界访问,所以只需要私有IP(参见这里)就够了,然后提供几个或一个合法IP(以下称为公共IP)供它们访问外部网络。

划分外网和内网的关键是路由器,这样的机构显然需要搭建自己的路由器。假设该机构从上级ISP那里申请到一段IP,那么首先要给那些服务器分配合法的IP;然后要给内部网络留至少一个公共IP,考虑到上网机器很多,多留几个IP分担流量也是必要的。这样一来,其实可以把总的网络分为两个子网,一个作为外网,另一个做内网,相应的,IP也被分为两部分。子网的核心是交换机,于是只要在内网的那台交换机中集成NAT功能就可以了。

下面进入正题,NAT的原理是什么?跟路由器差不多,核心也是类似的NAT转换表,负责私有IP和公共IP的转换。比如内部一台终端的IP是192.1.23.78,当这台终端发送一个数据包到NAT(集成在路由器或交换机中)的时候,NAT将把这个包的源地址IP修改成某个公共IP,然后才发送到外部网络;同样的道理,当外部的数据包按照某个公共IP发送到NAT的时候,NAT要把该数据包的目的IP修改成对应的私有IP,那么问题来了,公共IP就那么几个还好说,但是内部的私有IP却是成千上百个,NAT如何知道这个进来的数据包应该发往哪个私有IP呢?

答案是这样的:内部终端向外发的数据包经过NAT的时候,这个包称为请求包(或者形象的说,是询问包),NAT会同时记录下这个包的目的IP和源IP,然后把源IP修改成公共IP;当一个包从外部进来的时候,这个包就是应答包,它必然对应一个请求包,而且是从对应请求包的目的IP代表的终端发来的,NAT检查这个应答包的源地址,这个地址必然是刚才某个请求包的目的地址,这样就能找到这个请求包的修改前的源地址,也就是私有IP地址。如下图:

那么家用的路由器原理也就很清楚了。

然后是DHCP,即动态主机配置协议。想象以下,有朋友来你家,想通过你家的路由器上网,那你是不是要亲自配置以下路由器中的转发表为你朋友的电脑配置一个IP呢?而且每天都有不同的朋友来,那你每天都要配置一次是不是就要抓狂?而这还不是最要命的,加入你是一家公司的网管,而公司每天都有成千上百个这样的“朋友”造访的话。。。是的,你这时就需要DHCP!!

(今天偷个懒,明天继续)

时间: 2024-10-20 11:12:02

信息在网络中的漫游(四)的相关文章

信息在网络中的漫游(一)

其实写题目的时候犹豫了半天,到底该如何概括一下这一部分内容?既涉及到公共因特网,还有局域网的主要实现方式--以太网,还有路由,交换机,IP地址,MAC地址...总之,一切有关上网的主要的那一部分东西.我希望能够通过这一系列文章,能够给当今我们正在使用的这个世界范围内的网络一个比较清晰的轮廓,看看从一台主机发出去的分组信息,是如何在因特网中漫游并找到自己的最终归宿的,它到底都有哪些有趣的历险. 网络是一个伟大的发明,它把全世界各地的人们联系在一起,让人们在家中就可以知晓其他地方发生的事,并与其他地

信息在网络中的漫游(三)

这篇文章要介绍局域网,但是局域网有很多实现的方法,本篇采用目前最流行的以太网. 首先要明白的是什么是局域网?为什么要有局域网?逻辑上,我个人认为先有局域网,然后根据互联的需求再有的公共因特网.一个不太恰当的类比是:局域网就像现在的一个个国家,而公共因特网是联合国.联合国是个比较松散的组织,局域网可以选择加入,也可以选择不加入.但是局域网本身的出现,是因为有几台电脑(一般地理上比较接近,比如同一个公司.同一所大学等)想要相互连接在一起,以便相互通信,比如共享文件等.连接的方式有总线型.环型.星型等

信息在网络中的漫游(二)

上一篇文章主要介绍了公共因特网的拓扑,或者说物理结构,那么这一篇文章要介绍IP--就是网络中每个节点或者端系统的识别问题.现实中,道路的端点是一个个村庄或城市,它们都是有名字的,但是网络世界中,用名字来标示每一台主机是一件不太明智的事,于是人们发明了IP这种方式来识别主机. IP是二进制数字,共有32位,理论上可以有2的32次方(大约40亿)个不同0.1组合,于是可以标示这么多主机,每个组合就是一台主机的名字.如下图是一个IP的例子: 11000001 00100000 11011000 000

网络中TCP、IP、MAC、UDP的头部格式信息

TCP头部格式 字段名称 长度(比特) 含义 TCP头部(20字节~) 发送方端口号 16 发送网络包的程序的端口号 接收方端口号 16 网络包的接收方程序的端口号 序号(发送数据的顺序编号) 32 发送方告知接收方该网络包发送的数据相当于所有发送数据的第几个字节 ACK号(接收数据的顺序编号) 32 接收方告知发送方接收方已经收到了所有数据的第几个字节.其中ACK是acknowledge的缩写 数据偏移量 4 表示数据部分的起始位置,也可以认为表示头部的长度 保留 6 该字段为保留,现在未使用

DHCP在企业网络中的应用

DHCP在企业网络中的应用 一.DHCP及DHCP的工作原理 DHCP(Dynamic Host Configure Protocol,动态主机配置协议),用于向网络中的计算机分配IP地址及一些TCP/IP配置信息. DHCP的工作工程大致分为四步: (1)Dhcpdiscover:客户端向DHCP服务器端发送广播,寻找DHCP服务器 (2)Dhcpoffer:DHCP服务器收到客户端的广播后,DHCP服务向客户端提供IP地址. (3)Dhcprequest:客户端收到DHCP服务器提供的IP地

[C# 网络编程系列]专题四:自定义Web浏览器

转自:http://www.cnblogs.com/zhili/archive/2012/08/24/WebBrowser.html 前言: 前一个专题介绍了自定义的Web服务器,然而向Web服务器发出请求的正是本专题要介绍的Web浏览器,本专题通过简单自定义一个Web浏览器来简单介绍浏览器的工作原理,以及帮助一些初学者揭开浏览器这层神秘的面纱(以前总感觉这些应用感觉很深奥的,没想到自己也可以自定义一个浏览器出来),下面不啰嗦了,进入正题. 一.Web浏览器的介绍 Web浏览器是指可以显示Web

iOS开发网络篇—文件下载(四·暂停和恢复)

iOS开发网络篇—文件下载(四·暂停和恢复) 一.Range简单说明 通过设置请求头Range可以指定每次从网路下载数据包的大小 Range示例 bytes=0-499 从0到499的头500个字节 bytes=500-999 从500到999的第二个500字节 bytes=500- 从500字节以后的所有字节 bytes=-500 最后500个字节 bytes=500-599,800-899 同时指定几个范围 Range小结 - 用于分隔 前面的数字表示起始字节数 后面的数组表示截止字节数,没

【网络原理】第四章 数据链路层(三)

三.常用的数据链路协议(HDLC.PPP) (一)分析协议的思路 步骤一:了解协议的概貌,知道这个协议设计的目的.基本特征 步骤二:以协议数据单元(对于数据链路层而言是帧)的格式为主要线索来研究协议的      具体实现 步骤三:协议如何解决实际问题? (二)HDLC协议(高级数据链路控制规程)(面向比特协议) HDLC协议是一个面向比特的协议,其主要解决了数据链路层链路管理.寻址.帧同步.差错控       制.流量控制,其具有了平衡系统的和非平衡系统两个特性. 1.HDLC的组成: 帧结构(

网络中的NAT模式

一.概述 NAT英文全称是"Network?Address?Translation",中文意思是"网络地址转换",它是一个IETF(Internet?Engineering?Task?Force,?Internet工程任务组)标准,允许一个整体机构以一个公用IP(Internet?Protocol)地址出现在Internet上.顾名思义,它是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术.NAT 可以让那些使用私有地址的内部网络连接到Internet