一、网络参考模型
(一)OSI 参考模型
OSI 参考模型分为 7 层,从下到上依次为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层,每层有明确的功能定位:
- 物理层:传输电信号、光信号等比特流,定义电压、线缆等物理参数,支持单工(如收音机)、半双工(如对讲机)、双工(如电话)三种通信模式。
- 数据链路层:根据 MAC 地址转发数据,完成封装成帧、差错检测、透明传输,实现精确转发。
- 网络层:基于 IP 地址转发数据,提供分片功能(MTU 为 1500 字节),通过路由表实现跨网络通信。
- 传输层:建立端到端的逻辑连接(通过端口号),提供分段功能(MSS 为 1500 字节);端口号范围 0-65535,其中 1-1023 为知名端口(如 HTTP 的 80、HTTPS 的 443)。
- 会话层:建立、维护、拆除通信双方的会话,通过 session id 区分同一应用的不同进程。
- 表示层:定义数据格式,完成压缩 / 解压缩、加密 / 解密、编码 / 解码(如 ASCII、UTF-8 转换为二进制)。
- 应用层:为应用程序提供网络服务,将人类语言转换为计算机可识别的编码。
封装与解封装:数据发送时从上至下逐层封装(添加首部 / 尾部),接收时从下至上逐层解封装(拆除外层信息),只有拆除外层封装才能获取内层数据。
(二)TCP/IP 参考模型
TCP/IP 模型分为两种常见表述:
- TCP/IP 标准模型:应用层(融合 OSI 的应用层、表示层、会话层)、传输层、网络层、网络接口层(融合 OSI 的数据链路层、物理层)。
- TCP/IP 对等模型:应用层、传输层、网络层、数据链路层、物理层。
与 OSI 模型的核心区别:
- TCP/IP 支持跨层封装(OSI 不支持),可跳过部分层次提高传输效率。
- OSI 先有模型后有协议,层次依赖强;TCP/IP 先有协议后有模型,协议独立可灵活组合。
跨层封装示例:
- 跨四层封装(跳过传输层):如 OSPF 协议(协议号 89),用网络层协议号代替端口号功能,适用于直连路由设备。
- 跨三四层封装(跳过传输层、网络层):如 STP 协议,适用于直连交换设备。
二、主机访问服务器的完整流程
以小明的电脑访问谷歌 Web 服务器为例,流程分为 5 个核心步骤:
(一)获取 IP 地址(DHCP 协议)
学校路由器运行 DHCP 服务器,客户端通过 DHCP 获取 IP 地址,流程如下:
- DHCP Discover:客户端广播发送(目标 MAC 为 FF-FF-FF-FF-FF-FF,目标 IP 为 255.255.255.255),源 IP 为 0.0.0.0,封装在 UDP(源端口 68,目标端口 67)中。
- DHCP Offer:服务器单播回复,携带分配的 IP 地址(如 68.85.2.101),源 IP 为服务器地址(如 68.85.2.1)。
- DHCP Request:客户端广播确认将使用该 IP,源 IP 为分配的 IP。
- DHCP Ack:服务器单播最终确认,客户端正式使用该 IP。
交换机与路由器作用:交换机收到广播帧后执行泛洪(广播、组播、未知单播帧均泛洪);路由器收到后根据目标 IP 查表转发(最长掩码匹配,无匹配则查缺省路由,均无则丢弃)。
(二)域名解析(DNS 协议)
客户端需将 “www.google.com” 转换为 IP 地址,依赖 DNS 协议:
- DNS 简介:基于 TCP/UDP 的 53 号端口,UDP 用于多数查询,TCP 用于服务器间记录迁移,采用 C/S 模式和树状层次结构。
- 域名结构:从右到左为根域(.)、顶级域(如.com、.cn)、二级域(如 google)、主机名(如 www),完全合格域名(FQDN)以 “.” 结尾(如www.google.com.)。
- 解析流程:
- 客户端向本地 DNS 服务器发送递归查询(要求返回确切结果)。
- 本地 DNS 服务器向根域名服务器发起迭代查询(获取下一级服务器地址),逐级查询至谷歌域名服务器,最终获取 IP(如 64.233.169.105)。
- 本地 DNS 服务器将结果返回客户端。
(三)建立 TCP 连接(三次握手)
客户端与谷歌 Web 服务器通过三次握手建立可靠连接:
- 客户端发送 SYN 报文(seq=x),进入 SYN-SENT 状态。
- 服务器回复 SYN+ACK 报文(seq=y,ack=x+1),进入 SYN-RCVD 状态。
- 客户端回复 ACK 报文(seq=x+1,ack=y+1),双方进入 ESTABLISHED 状态,连接建立。
(四)HTTP 通信
客户端通过 HTTP 协议请求网页数据:
- HTTP 简介:基于 TCP 的 80 端口,C/S 架构,请求方法包括 GET(数据在 URL 中,长度受限)和 POST(数据在请求体中,长度无限制)。
- 请求与响应:客户端发送 GET 请求(如获取/api/qqfastlogin/singlelogin3.php),服务器返回响应报文,包含状态码(200 为成功,404 为页面未找到等)。
- 数据封装:HTTP 数据经 TCP(源端口随机,目标端口 80)、IP(源 IP 为客户端 IP,目标 IP 为服务器 IP)、以太网(源 MAC 为客户端 MAC,目标 MAC 为网关 MAC)封装后传输。
(五)断开连接(四次挥手)
数据传输完成后,通过四次挥手释放连接:
- 客户端发送 FIN 报文(seq=u),进入 FIN-WAIT-1 状态。
- 服务器回复 ACK 报文(seq=v,ack=u+1),进入 CLOSE-WAIT 状态,客户端进入 FIN-WAIT-2 状态。
- 服务器发送 FIN+ACK 报文(seq=w,ack=u+1),进入 LAST-ACK 状态。
- 客户端回复 ACK 报文(seq=u+1,ack=w+1),进入 TIME-WAIT 状态(等待 2MSL),最终双方进入 CLOSED 状态。
三、静态路由综合实验
实验目标:实现局域网(R1-R5,私有 IP 192.168.1.0/24)与 ISP(R6,公有 IP)的通信,核心要求包括:
- IP 分配:R1-R5 的环回接口合理分配(如 R1 环回 192.168.1.32/27,R5 环回 192.168.1.160/27),R3 下的 PC 通过 DHCP 获取 IP。
- 路由优化:选路最佳,路由表最小,避免环路;R1-R5 均能访问 R6 环回。
- 服务配置:R1 配置 Telnet 服务,使 R6 可通过 R5 公有地址访问;R4 与 R5 优先使用 1000M 链路,故障时切换至 100M 链路。
- 默认路由:通过静态路由配置,确保私网流量能到达公网。
四、PPPOE 技术
(一)背景
以太网接入存在三大问题:无法提供用户身份验证、难以自动分配公网 IP、受双绞线距离限制。PPPOE(PPP over Ethernet)技术解决了这些问题,使 PPP 协议能在以太网上传输。
(二)简介
PPPOE 采用 C/S 模式,将 PPP 报文封装在以太网帧中,帧结构包括 DMAC、SMAC、PPPoE-Packet、FCS,以太类型字段标识 PPPoe 协议。
(三)工作阶段
- Discovery 阶段:协商会话 ID(Session-ID)
- 客户端广播发送 PADI 报文,查询 PPPoE 服务器。
- 服务器单播回复 PADO 报文,提供服务。
- 客户端单播发送 PADR 报文,请求建立会话。
- 服务器发送 PADS 报文,确认会话建立(包含 Session-ID)。
- PPP Session 阶段:完成 PPP 协议协商
- LCP 协商:链路配置(如最大接收单元)。
- 身份验证:支持 PAP、CHAP 等验证方式。
- NCP 协商:获取 IP 地址等网络层参数(如 IPCP)。
(四)实验配置
- 拓扑:R2 为 PPPoE 服务器(公网,Loopback0 为 202.1.1.1/32),R1 为 PPPoE 客户端(私网,连接 PC1 所在的 192.168.1.0/24 网段)。
- 配置目标:R1 自动拨号并获取公网 IP,通过 EASY IP 实现 PC1 访问互联网,R1 配置默认路由指向公网。