参考哈工大公开课。
一个主机获得获得IP地址的方法有两种:静态配置和动态申请。
静态配置
静态配置很好理解,就人为的去获得IP地址,子网掩码和默认网关,IP地址是主机的唯一标识;子网掩码决定了子网的范围大小;默认网关规定了当本机把数据报发送出去之后应该发送给谁。除此之外,还需要配置DNS服务器的地址。
图一:静态配置示例
动态申请
动态申请依赖于动态主机配置协议-DHCP(Dynamic Host Configuration Protocol),通过这个协议可以从服务器动态获取IP地址、子网掩码、默认网关地址、DNS服务器名称与IP地址。这样就实现了“即插即用”,而且允许地址的重用,支持在用地址的续租和移动用户加入网络。
动态申请IP地址的过程大致是这样的:
前提:在一个网络中有一个DHCP服务器,用来管理IP的分配和使用。
1)、主机广播“DHCP discover”(发现报文)。
2)、DHCP服务器利用“DHCPPFFER”(提供报文)进行响应。
3)、主机请求IP地址:“DHCPrequest”(请求报文)。
4)、DHCP服务器分配IP地址:“DHCP ack”(确认报文)。
具体过程如下:
图二:动态申请IP地址的过程
在DHCP discover报文中:
src:0.0.0.0 68 表示本网范围内的本机,端口号是68; dest:255.255.255.255 67 表示在本网范围内进行广播,本网范围内的服务器都可以接收到。
DHCP offer报文中:
Src:表示服务器IP;dest的IP 任然是255.255.255.255,这是因为arrivingclient任然没有IP地址;yiaddr:就是分配给该主机的IP地址。
DHCP request报文中:
dest的IP 任然是255.255.255.255而不是233.1.2.5,这是因为本网范围内可能不止一台DHCP服务器,主机在通知为其服务的DHCP服务器的同时也需要通知其他服务器yiaddr所记录的IP已经被分配了。