欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux DHCP协议实现过程

程序员文章站 2022-06-03 17:42:16
我特别喜欢Linux启动的时候屏幕上一行一行的提示。它把系统正在干的所有事情都告诉了我们,不像Windows,自检完了就给个进度条,背后干啥都不让我们知道。   DHCP协议部分实现过程... 09-06-30...
我特别喜欢linux启动的时候屏幕上一行一行的提示。它把系统正在干的所有事情都告诉了我们,不像windows,自检完了就给个进度条,背后干啥都不让我们知道。

  dhcp协议部分实现过程如下

  ①:dhcp 服务器被动打开 udp 端口 67,等待客户端发来的报文。

  ②:dhcp 客户从 udp 端口 68发送 dhcp 发现报文。

  ③:凡收到 dhcp 发现报文的 dhcp 服务器都发出 dhcp 提供报文,因此 dhcp 客户可能收到多个 dhcp 提供报文。

  ④:dhcp 客户从几个 dhcp 服务器中选择其中的一个,并向所选择的 dhcp 服务器发送 dhcp 请求报文。

  ⑤:被选择的 dhcp 服务器发送确认报文dhcpack,进入已绑定状态,并可开始使用得到的临时 ip 地址了。

  书面上的文字怎么说我们都会觉得有点晦涩,虽然这个解释其实已经非常明了了。

  不过前几天启动linux的时候,我注意到了这个小细节,linux启动过程中把这个步骤一步一步在屏幕上输出,我觉得能让我们看的更直观,就截了个图,呵呵。

  如下图:

  Linux DHCP协议实现过程

  这个图里面,我上面说的从第2步到第5步都非常明了(第一步是服务端的,我们看不到),端口,mac,状态这些都清楚的标明了。

  dhcpdiscover on eth0 to 255.255.255.255 port 67 interval 4 //第2步,发送dhcp发现报文

  dhcpoffer from 192.68.116.254 //第3步,收到dhcp提供报文

  dhcprequest on eth0 to 255.255.255.255 port 67 //第4步,发送dhcp请求报文

  dhcpack from 192.168.116.254 //第5步,收到dhcp确认报文dhcpack

  bound to 192.168.116.128 -- renewal in 826 seconds //已绑定,826秒应该是0.5t,也就是ip租用期的一半,到时间就再次发送请求更新租用期

  done.

  linux真是个好东西。