学习了极客时间趣谈网络协议前两章内容,再结合自己理解,来看看从电脑出厂到能够浏览网页都经历了什么
阶段一:如何在多台空电脑上自动安装操作系统?
动态主机配置协议(DHCP):自动分配IP
BIOS(Basic Input Output System,基本输入输出系统):一个特别小的小系统,只能读取硬盘的 MBR 启动扇区,将 GRUB 启动起来
预启动执行环境(PXE):PXE 协议分为客户端和服务器端,将操作系统放入服务端,用客户端去请求执行
- 将光盘里要安装的操作系统放在一个服务器上
- BIOS启动
- 把PXE客户端调入内存里连接服务端做初始化操作
- PXE客户端IP地址通过发送DHCP请求,让DHCP Server分配一个。
- 设置DHCP Server配置的next-server字段指向PXE服务器的地址,
- 设置DHCP Server配置初始启动文件filename字段
- 连上PXE服务器后,使用TFTP协议在TFTP服务器上下载文件
- PXE客户端接收到文件开始执行,此文件会指示PXE客户端向TFTP服务器请求计算机的配置信息(在DHCP Server配置中filename的配置文件),TFTP发送配置文件(内核地址,initramfs地址),PXE客户端去请求这些文件
- 启动Linex内核
阶段二:有了操作系统,如何给多台电脑自动分配ip?
- 客户端使用0.0.0.0发送广播报到255.255.255.255,广播包封装了UDP,UDP封装了BOOTP
- DHCP Offer:因为之前配置了DHCP Server,它通过MAC得之来了个“新人”,需要租给它一个ip地址,DHCP回复一个IP及子网掩码、网关和 IP 地址租用期等,并且作记录,避免此ip被再次分配(格式:BOOT头-UDP头-ip头-MAC头)
- 如果有多个 DHCP Server,客户端收到多个IP,一般会选线到达的。并向网络发送一个DHCP Request 广播数据包。并告诉其他DHCP Server所接受的服务器地址,让其他服务器撤销所提供的IP地址
- 当 DHCP Server 接收到客户机的 DHCP request 之后,会广播返回给客户机一个 DHCP ACK 消息包,表明已经接受客户机的选择
阶段三:如果没有开通网络,那么只能玩单机游戏了,很多单机游戏都有连机功能,是如何把多台电脑连在一起的呢?
- 首先我们要有连接电脑和电脑的网线,实现物理层的发送和接收信号。此时被连接的两台电脑就构成了一个最小的局域网
- 如果要连接跟多的电脑
- 【方法一】使用在物理层工作的HUB(集线器)。HUB采取广播模式,若碰到多路访问问题,在MAC层(Media Access Control,媒体访问控制)收到广播后,会通过多种方式(信道划分、轮流协议、随机接入协议)来控制谁先发,谁后发的规则。然后数据包在链路上广播查找目标MAC地址(如果没有配置MAC地址,ARP协议会通过目标ip地址找到MAC地址,并进行ARP缓存),知道要发给谁。MAC网卡得知是自己把包收进来,然后打开 IP 包,发现 IP 地址也是自己的,再打开 TCP 包,发现端口也是自己的,也就是 80,而 nginx 就是监听 80,于是将请求提交给 nginx,nginx 返回一个网页。返回过程就是将原先的源地址和目标地址再返给请求的机器。
- 【方法二】交换机。如果机器数目较多,Hub 是广播的,不管某个接口是否需要,所有的 Bit 都会被发送出去,然后让主机来判断是不是需要,这样容易产生冲突。交换机会记住已经明确的口的MAC地址,最终得到整个网络的结构称之为转发表(有过期时间)。
阶段四:开通了网络后,我们电脑是如何去连接网络的?
- 进行连线:电话入户线——宽带分离器——猫DSL口——路由器的线一头插在猫的LAN口上,另一头插在路由器的WAN口上——电脑
- 进行路由器设置:打开浏览器输入192.168.1.1或192.168.0.1——输入路由器用户名、密码,进入控制页面——web设置——输入宽带账号和密码——开启DHCP服务——网参数里将ADSL宽带的DNS服务器地址也添加上——确认
- 自动配置ip:开启了DHCP服务,就可以自动获取ip,一般在在网上邻居——本地连接——属性——TCP/IP——属性——自动获取IP。