题外话:原本想按照互联网的层级自下向上回顾这些协议的,可是今天实在得破个例,DHCP不得不说!数据库
主机从一个网络迁移到另外一个网络,那么IP编址的结构就要发生改变,当今主流有以下几种修改方案:vim
(一)改变地址:服务器
主机在移动到新的网络的时候改变它的地址,这里须要DHCP协议,将其和新的网络关联起来,这么作的话须要咱们手动修改可能须要以下的命令网络
1 sudo vim /etc/network/interface
每次修改若想要使修改以后生成的IP地址生效,大部分状况下须要咱们重启主机spa
1 /etc/init.d/network restart
而且这么作的话DNS表必需要更新,使因特网上的其余主机能够知道其变化代理
(二)两个地址:rest
使用两个地址是一种更可行的方法,主机有原始的地址成为归属地址,还有一个临时的地址称为转交地址,前者是永久的,使得它与归属网络永久相关联。code
每次当主机发生移动的时候,改变的是临时地址即转交地址,下面重点看这方面的内容。blog
归属地址和转交地址与之对应的是归属网络和转交网络,归属网络和外地网络之间的桥梁是因特网,而归属网络和因特网之间须要一个归属代理,转交网络和因特网链接须要一个转交代理,所谓的代理就是路由器,可是代理的功能是在应用层完成的,因此两个代理更强调的是做为主机的功能。路由
当主机在移动到一个外地的网络的时候,外地的网络就须要动态地给加入的主机分配一个IP地址,这个IP地址的分配过程就是DHCP完成的,(当外地主机充当外地代理的时候,这个转交地址就成为同址转交地址,使用同址转交地址的主机能够移动到任何的网络,没必要担忧代理的可用性)。
关于与远程主机的通讯过程,移动主机须要通过三个过程:代理发现,登记和传送数据:
1.代理发现
##移动主机在外地网络进行代理发现的基础条件是已知归属代理地址##
代理发现的过程主要分为两个阶段:
a.代理通告
发送一个ICMP报文(类型值16:用户信息应答)报文中数据是转交地址,只有外地代理才能使用这个字段。
代码位含义:
0 须要登记,没有同址转交地址
1 代理忙,如今不接受登记
2 代理充当归属代理
3 代理充当外地代理
4 代理使用最小的封装
5 代理使用通用路由选择封装
6 代理支持首部压缩
7 Reserved
b.代理询问
发送一个ICMP询问报文,在当移动主机已经移动到了新的网络而没有收到代理通告的时候,它能够发起一个代理询问,让代理知道它须要帮助。
2.登记
移动主机移动到外地网络以后,而且已经发现了外地代理以后,必须登记。登记的四个要素以下:
a.移动主机必须向外地主机进行代理
b.移动主机必须向它的归属代理登记,这一般是由外地代理以移动主机的身份来完成的。
c.若是截至期到了,那么移动主机必须从新登记
d.若是移动主机回到了归属网络,那么必须取消登记
登记的过程之中须要使用登记请求和登记回答,这些信息是封装在UDP协议报中的,代理处理登记请求和回答使用知名端口434,移动主机使用任意临时端口。
报文内容中须要指明归属地址,归属代理地址,转交地址和标识(用于使请求和回应相互匹配)
3.数据传送
进行数据传送的过程时已经搭建了移动IP的通信环境,通信过程分为大体两种 :
a.当远程地址向移动地址发送信息时,源地址是远程主机自己的地址,目的地址是移动主机的归属地址,总之就是认为移动主机在归属网络中。实质上呢,是归属代理使用ARP代理技术使用归属物理地址从而在链路层上接收了数据帧分组,而后再将分组转发给移动主机所在的外地网络。
b.从移动主机向远程主机发送信息时,它就像正常的状况同样进行发送,移动主机分片后将分组发送给归属地址,用远程主机的地址做为目的地址。
(三)关于DHCP协议:
绝大多数状况下来说,对于一台主机四种信息是必要的:
(1)IP address
(2)subnet mask
(3)gateway IP
(4)DNS IP
一样做为IP地址分配/回馈协议的有RARP和BOOTP,不一样的是DHCP的出现更为了符合将以上4个必要的信息动态分配(与BOOTP不一样,BOOTP为查表静态)的协议。
DHCP客户和DHCP服务器能够处于同一个网络上,也能够处于不一样的网络之中,当客户和服务器放在了同一个网络中的时候,会进行以下的操做:
(1)DHCP服务器在UDP端口67发出被动打开命令,等待客户请求。
(2)客户端在UDP68号端口发出主动打开命令,这个报文天然被装入UDP报文的首部之中,再使用IP地址进行封装,这里的IP地址源端IP为0,目的地址-1(受限广播,只在本地网络传播)
(3)服务器使用广播或者单播来响应这个客户,它使用了UDP源端口67和目的端口68,这里回复的过程之中就可使用IP地址拉,也不须要ARP解析地址。
当DHCP客户和DHCP服务器处于不一样的网络之中的时候,会进行以下的操做:
(1)服务器端和客户端进行的操做以前是同样的,可是由于受限广播,没有路由器会接收该IP数据报。
(2)在网络中设置一台主机做为中继代理,中继代理知道DHCP服务器的单播IP地址,而后DHCP服务器和中继代理在应用层完成通信,中继代理再把它转达给DHCP客户。
经过DHCP报文的格式咱们能够注意到DHCP的差错控制和对类型细致的分类。
DHCP服务器分配IP过程分为两种:静态分配和动态分配
静态分配:经过访问DHCP服务器中的表来进行查询与DHCP客户相对应的永久IP地址
动态分配:经过数据库实现IP地址池,当接收请求的时候动态分配一个IP地址,时间长短能够协商。