我们通过在浏览器中输入网址/URL就能访问网页了,但整个访问流程涉及到哪些协议以及什么内容? 首先,我们要想访问某个网址,电脑先要联网,因此我们有些前期准备工作需要进行。
1. 接入互联网
要联网才能访问啊!
DHCP
Dynamic Host Configuration Protocol
我们要想上网,首先要有IP地址。IP地址可以手动分配,但我们不管是有线连接还是无线连接网络都会采用自动获取IP地址的方式。
DHCP会给我们分配IP地址、子网掩码、默认网关、DNS IP地址。获得这些信息后就可以上网了。
DHCP是有租期的,一般我们连接家用WIFI,IP地址不常变就是因为DHCP在续租。
DHCP流程
1. DHCP Discover 发现与寻找
DHCP协议是应用层协议,根据四层网络模型需要依次经过传输层、网络层、数据链路层发送。报文里会有客户端提供的TransactionID,如果有其他设备在和DHCP进行交互,就可以通过这个ID判断属于哪个设备的请求。DHCP基于Bootstrap Protocol发展出来的,因此报文里会有Bootp和Boot。Bootp设置为Unicast,服务器可以单播发送给新设备
-
传输层
UDP协议,源端口号默认68,目标端口号67。
-
网络层 IP设置为多少呢
我们为了获取IP地址才进行的请求,那这里的IP是多少呢。这里使用特殊IP,不知道目标地址可以 通过广播方式,将目标IP设置为广播地址255.255.255.255。源地址设置为0.0.0.0。广播只在局域网范围内进行传播,路由器收到广播消息后不会进行转发,由路由器独享。
-
数据链路层 MAC地址设置为多少呢
这里需要知道源和目标的MAC地址。设备知道自己的MAC地址但是不知道目标的MAC地址,因此填写MAC的广播地址。
如果有IP地址存在,那么DHCP服务器会金星DHCP Offer。
2. DHCP Offer 提供
DHCP要提供IP地址、子网掩码、默认网关、DNS IP地址了。一般家里的网关、DHCP、DNS地址都是路由器。同样经过四层协议。
-
传输层
UDP协议,源端口号默认67,目标端口号68。
-
网络层
源地址就是路由器自己的IP地址,目标地址就是分配的IP地址。注意响应不是广播是单播。
-
数据链路层
源地址是路由器的MAC地址,目标MAC地址就是刚才设备提供的。
因为局域网内可能有多个DHCP服务器,客户端可能会收到多个IP地址。所以我们还需要确认使用哪个IP地址。
3. DHCP Request 选择与请求
客户端需要确定IP地址。
-
传输层
UDP协议,源端口号默认68,目标端口号67。
-
网络层
因为还没确定IP,因此源地址还是填写0.0.0.0,目标IP地址依然是广播地址255.255.255.255。因为局域网内可能有多个DHCP服务器。
-
数据链路层
源MAC地址设置为自己的MAC地址,目标MAC地址设置为广播地址。
接下来服务器收到客户端的请求后就需要进行确认。
4. DHCP ACK
和步骤2基本相同。
客户端可以联网了
获得了IP,可以联网了!