家庭网络

	在运营商购买宽带服务,接入光猫,一般来说这样就可以上网了,但仅限于有线连接,所以还会接入一台路由器,使用网线与路由器的 "wan" 口连接,光猫通过ppoe拨号获取运营商分配的公网ip,路由器获取到光猫分配的内网ip (仅是举例,实则两个获取到的都是内网ip,运营商级NAT)

	对于网关来说,谁拨号获取到ip,谁就是网关,在这里光猫就是网关,而路由器则是NAT

	当一台主机要连接到网络,插上网线后,DHCP协议开始工作,电脑的DHCP客户端发起一个DHCP请求,用来获取IP,请求会被层层封装
	
以 "TCP/IP四层模型" 为例 	应用层 传输层 网络层 网路接口层

过程

1
2
3
4
5
6
7
数据来到 '传输层',传输层指定 DHCP 请求通过(?)协议,发往(?)端口
DHCP规定 客户端默认使用 68号UDP端口 服务端默认使用 67号UDP端口 源端口 68 -->目标端口 67

数据来到 '网络层',网络层的功能本来是封装IP,但这时候主机还在请求IP,但是它不知道谁是DHCP服务器,不管了,数据包发给所有设备
目标IP是一个广播IP(255.255.255.255)源IP(0.0.0.0 未指定IP) 接受设备知道是谁发送的

数据来到 '网络接口层',此层的功能是封装网卡的MAC地址,源MAC地址(网卡的物理地址括弧也称之为MAC地址)目标MAC是(ff.ff.ff.ff.ff.ff 广播MAC地址,因为不知道发给谁)

层层封装的数据包会从电脑的网卡接口顺着网线来到 路由器的LAN1 普通的家用路由器只能解析 网络接口层 的设备,也就是说除了MAC地址 ,IP、端口 都看不懂
路由器内部有一个 MAC地址映射表 记录每个接口对应的 MAC 地址,用来转发数据
从 LAN1 接收到数据后,把源MAC地址保存到映射表,查看目标MAC是一个广播MAC地址,会给每个连接的接口发送一份(主机网口,路由器WAN口)
当主机收到数据包根据网络模型解封装,网络接口层看到是广播MAC地址,接受
网络层看到目标是广播IP地址,接受
传输层看到是UDP方式 从主机的68号端口发往路由器的67端口,但电脑没必要开67端口,丢弃

可能传输层会觉得混淆,正常情况是 ‘主机68’ -> ‘路由器DHCP67’ ,为什么后面要加一句“电脑没必要开…….“是因为路由器LAN口看到是广播MAC地址干脆把连接口都发一遍(它不知道要发给路由器所以也给主机发了一份)

<———以上是将数据包发给主机———->

1
2
3
4
5
6
7
同样的数据来到路由器,网络接口层和网络层会接受,传输层看到目标是UDP67端口,数据包交给DHCP服务,收到后会从IP池中分配一个未被占用的IP地址,还要子网掩码、网关、DNS、租期等
封装好的数据包再发回去,主机就的网络就配置完成了,在租约的 1/2 后再次发起DHCP请求续约IP地址,若失败会再次 1/4 1/8 的时候再次尝试发起DHCP请求
如果还失败了,就说明路由器的DHCP死了,租约到期之后自动释放IP,重新发给获取IP的广播请求
但是因为DHCP死了,在请求多次没反应,主机会自动分配一个全球统一的网段 '169.254.x.x',确保和局域网的其他设备通信
如果电脑获取到 '169.254' 开头的IP,说明网络拓扑中没有提供DHCP服务的设备
------------------------------------------------------------------------------------------------------------------------------------
电脑关机不需要发送续约请求,租约到期后路由器的DHCP服务会放回IP池,等待下一位有缘机,公共场所的WIFI DHCP租期会比较短,防止地址池被沾满
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2018-2025 琳烦雨
  • Visitors: | Views: