-
本文是[计算机网络](https://www.bilibili.com/video/BV1c4411d7jb?spm_id_from=333.999.0.0)的笔记,图片也从视频中截取。
6.1概述
6.2客户/服务器方式(C/S方式)和对等方式(P2P方式)
(1)客户/服务器方式(C/S方式)
(2)对等方式(P2P方式)
(3)小结
6.3动态主机配置协议DHCP
- 如何配置用户主机才能使用户主机正常访问Web服务器?
- 给网络中的主机正确配置IP地址、子网掩码、默认网关、DNS服务器等网络相关配置信息。
- 如果网络中主机数量多,则手工配置的工作量大,容易出错。
- 给网络配置一台DHCP服务器,在该服务器中设置好可为网络中其他主机配置的网络配置信息。
- 网络中各主机开机后自动启动DHCP程序,向DHCP服务器请求自己的网络配置信息。
- DHCP使用客户/服务器方式,在DHCP服务器上运行DHCP服务器进程,也可简称为DHCP服务器;
- 在用户主机上运行DHCP客户进程,也可简称为DHCP客户;
- DHCP是TCP/IP协议体系应用层中的协议,它使用运输层的UDP所提供的服务。
- DHCP报文段在运输层会被封装成为UDP用户数据报。
- DHCP服务器使用的UDP端口是67,DHCP客户使用的UDP端口是68。这两个都是熟知端口。
- 封装有DHCP报文的UDP用户数据报在网络层会被封装成IP数据包,然后再根据所使用的网络接口,封装成相应的数据链路层的帧进行发送,例如封装成以太网帧。
- 当启用主机的DHCP后,DHCP客户端将广播发送DHCP发现报文。
- 封装该报文的IP数据报的源IP地址为0.0.0.0,这是因为主机目前还没有分配到IP地址,使用该地址进行代替。
- 目的IP地址为255.255.255.255,进行广播发送,是因为主机不知道网络中有哪几个DHCP服务器,他们的IP地址是什么。
- 因为是广播,所以网络中所有设备都会收到,并对其层层解封,解封出封装有DHCP发现报文的UDP用户数据报。
- 对于DHCP客户,其应用层没有监听该UDP用户数据报目的端口67的进程,也就是DHCP服务器进程,因此无法交付DHCP发现报文,只能丢弃;
- 对于DHCP服务器,其应用层始终运行着DHCP服务器进程,因此会接受该DHCP发现报文并做出响应。
- DHCP报文的格式比较复杂,对于DHCP发现报文,我们只需知道,其内部封装有事物ID和DHCP客户端的MAC地址即可。
- DHCP服务器收到DHCP发现报文后,根据其中封装的DHCP客户端的MAC地址来查找自己的数据库,看是否有针对该MAC地址的配置信息。
- 如果有,则使用这些配置信息来构建并发送DHCP提供报文;
- 如果没有,则采用默认配置信息来构建并发送DHCP提供报文;
- 封装该报文的IP数据报的源IP地址为DHCP服务器的P地址,目的P地址仍为广播地址。
- 仍然使用广播地址的原因是:主机图前还没有配置IP地址,为了使主机可以收到,只能发送广播。
- 这样网络中的所有设备都会收到该IP数据报,并对其层层解封,解封出封裝有DHCP提供报文的UDP用户数据报。
- 对于DHCP服务器,其应用层没有监听该UDP用中数据报目的端口68的进程,也就是DHCP客户进程,因此无法交付DHCP提供报文&#