DHCP协议的工作过程
首先,DHCP客户端发送DHCPDISCOVER消息(IP地址租用申请),这个消息是通过广播方式发送出去的,所有网络中的DHCP服务器都将接收到这个消息。
随后,网络中的DHCP服务器会回应一个DHCPOFFER消息(IP地址租用提供),由于这个时候客户端还没有网络地址,所以DHCPOFFER也是通过广播的方式发送出去的。需要注意的是,由于网络中可能存在不止一台的DHCP服务器,所以,如果不考虑网络丢包的话,客户端将接收到不止一条的DHCPOFFER 消息。那么客户端会选择它接收到的第一条DHCPOFFER作为获取配置的服务器。
然后,向该服务器发送DHCPREQUEST消息。虽然这个时候客户端已经明确知道选择的DHCP服务器的地址所在,但仍将采用广播的方式发送DHCPREQUEST消息,这样做不仅可以通知选中的服务器向客户端分配IP地址,同时也可以通知其他没有选中的DHCP服务器不需要再响应它的请求。在DHCPREQUEST消息中将包含客户端申请的IP地址。
最后,DHCP服务器将回送DHCPACK的响应消息来通知客户端可以使用该IP地址,该确认里面包含了分配的IP地址和该地址的一个稳定期限的租约(默认是8天),并同时更新DHCP数据库。
当租约过了一半时(即4天),客户端将和设置它的TCP/IP配置的DHCP服务器更新租约。当租约过了85.7%时,如果客户端仍然无法与当初的DHCP服务器联系上,他将与其他DHCP服务器通信,如果网络中再没有任何DHCP服务器在运行时,该客户端停止使用该IP地址,并重新发送一个DHCPDISCOVER 消息,再一次重复整个过程。
DHCP工作时要求客户机和服务器进行交互,由客户端通过广播向服务器发起申请IP地址的请求,然后由服务器分配一个IP地址以及其他的TCP/IP设置信息。DHCPACK整个工作过程如图所示,可以分为以下步骤。
(1)IP地址租用申请(DHCPDISCOVER):DHCP客户机通过UDP68端口发送DHCPDISCOVER广播信息来查找DHCP服务器。网络上每一台安装了TCP/IP协议的主机
都会接收到这种广播信息,但只有DHCP服务器才会做出响应。DHCP客户机发送的
DHCPDISCOVER数据包的源地址是0.0.0.0,目标地址是255.255.255.255。
(2)IP地址租用提供(DHCPOFFER):当网络中的DHCP服务器接收到DHCPDISCOVER广播时,将确定是否可以用自己的数据库来为该请求提供服务。如果可以为该请求提供服务,
DHCP服务器就从尚未出租的IP地址范围中选择最前面的空置IP,连同其他TCP/IP设定,
通过UDP 67端口以单播DHCPOFFER的形式为客户端提供IP配置信息。可能有多台DHCP
服务器收到DHCPDISCOVER广播,并且向DHCP客户端响应DHCPOFFER。客户接收到
的DHCPOFFER数据包中包含客户的MAC地址,后面跟着服务器能提供的IP地址、子
网掩码、租约期限以及DHCP服务器的IP地址。
(3)IP地址租用选择(DHCPREQUEST):DHCP客户端通常是接收第一个收到的DHCPOFFER 所提供的信息,并且会向网络发送一个DHCPREQUEST广播风暴,告诉所有DHCP服务器
它将接收哪一台服务器提供的IP地址。
(4)IP地址租用确认(DHCPACK):当DHCP服务器收到DHCPREQUEST信息之后,便向DHCP客户端发送一个单播的DHCPACK信息,以确认IP租约的正式生效。然后DHCP客
户端便将其TCP/IP协议与网卡绑定。
FTP连接
FTP客户端和服务器端的FTP程序通过TCP20和21端口建立连接,一个用于传输控制信息(控制连接),另一个用于传输文件数据(数据连接)。
FTP通过控制连接,客户端可以向服务器发送FTP命令,根据登录用户的权限,获取一定的信息,控制管理一定的服务器文件。FTP控制连接默认通过TCP 21端口建立。FTP的控制连接建立过程如图所示。
FTP控制连接建立过程
(1)客户端通过任意端口向FTP服务器TCP 21端口发送连接请求,服务器确认后,双方便建立一个TCP连接。
(2)客户端向FTP服务器发送登录请求。
(3)FTP服务器接收到请求后,向客户端要求登录帐号。
(4)客户端向FTP服务器返回登录帐号。
(5)FTP服务器炎症登录帐号(正确)后,向客户端要求登录密码。
(6)客户端向FTP服务器返回登录密码。
(7)FTP服务器炎症登录密码(正确)后,上方建立FTP的控制连接。
FTP在控制连接的基础上建立数据连接,每当客户端需要下载或上传文件时就建立数据连接。FTP 的数据连接有两种模式:一种是主动模式(PORT);另一种是被动模式(PASV)。
(1)主动模式(PORT)
主动模式(PORT)的工作方式如图所示。
PORT模式FTP数据连接建立过程
●客户端软件向FTP服务器的TCP 20端口发送一个PORT命令,请求建立数据连接。PORT命
令包含了客户端的IP地址和使用端口,告诉了服务器“X.X.X.X”的客户机打开N端口,请求数据连接。
●服务器接到请求后准备完毕,便通过PORT命令中的IP地址和端口主动与客户端建立数据连
接。
(2)被动模式(PASV)
主动模式(PASV)的工作方式如图所示。
PASV模式FTP数据连接建立过程
●客户端软件向FTP服务器的TCP 20端口发送一个PASV命令,请求建立数据连接。PASV命
令只是简单地告诉服务器“X.X.X.X”的客户机请求数据连接。
●服务器接到请求后准备完毕,便返回PASV命令给该客户端,本服务器已经打开了N端口(一
般是随机产生的,比如(1389、1390),允许你的连接。
●客户端接到PASV应答之后,自己通过PASV中的端口号N与服务器建立连接。
当数据传输完毕,数据发送端便断开数据连接,但此时控制连接仍然存在着。客户端可以再次建立数据连接,也可以同时建立几个数据连接,用户传输不同的文件。