文章背景图

Day04-05-网络基础与进阶

2026-06-04
4
-
- 分钟
|

Day04-05 网络基础与进阶

[TOC]


1. 网络概述

互联网 = 信息高速公路(网络设备)+ 规范(网络协议)


2. OSI 七层协议

层级 名称 核心协议 数据单位 主要功能
7 应用层 HTTP、SMTP、FTP、TLS 消息/报文 为应用程序提供网络服务接口
4 传输层 TCP、UDP 段(Segment) 端到端通信,端口寻址
3 网络层 IP、ICMP、ARP 包(Packet) 跨网络路由,IP 寻址
2 数据链路层 Ethernet(以太网) 帧(Frame) 局域网内帧转发,MAC 寻址
1 物理层 IEEE 802.3、RJ45 比特(Bit) 物理介质上的电信号传输

严格来说 OSI 是七层,但考试/面试中常简化为 五层(合并应用层上三层),本文采用五层模型。


2.1 物理层

  • 传输电/光信号,负责比特与物理信号之间的转换
  • 常见物理介质:双绞线、光纤、无线电波
  • 数据单位:Bit(比特)

2.2 数据链路层(以太网协议)

Ethernet 帧结构 长度
Head 18 Byte
Data ≤ 1500 Byte
CRC 4 Byte

Head 组成:

字段 长度 说明
目标 MAC 6 Byte 接收方网卡地址
源 MAC 6 Byte 发送方网卡地址
数据描述 6 Byte 协议类型(如 0x0800 = IPv4)
  • MAC 地址:网卡物理地址,48 位十六进制数(如 00:1A:2B:3C:4D:5E),全球唯一
  • 广播:局域网内采用广播机制通信(类似"喊话")
  • MTU:最大传输单元 = 1500 字节(不含帧头/尾)

2.3 网络层(IPv4)

IPv4 数据包结构 长度
Head 20-60 Byte
Data ≤ 65515 Byte

Head 核心字段:

  • 源 IP 地址(32 位)
  • 目标 IP 地址(32 位)

关键概念:

  • IP + MAC = 定位全世界独一无二的计算机

  • 子网掩码:让 IP 地址同时表示 网络地址 + 主机地址

    IP:   192.168.71.100
    掩码: 255.255.255.0  →  /24
    
    网络地址:   192.168.71.0   (代表整个网段)
    主机地址:   0.0.0.100      (网段内的具体主机)
    
  • ARP 协议:将 IP 地址解析为 MAC 地址

通信流程对比

flowchart TD
    A[源主机] --> B{目标是否在同一局域网?}
    B -->|是| C[ARP 广播获取目标 MAC]
    C --> D[直接发送帧]
    B -->|否| E[ARP 广播获取网关 MAC]
    E --> F[封装帧: 源MAC→网关MAC]
    F --> G[路由器转发]
    G --> H{下一跳是否到达?}
    H -->|否| G
    H -->|是| I[ARP 获取目标 MAC]
    I --> J[最终交付]
场景 通信方式 说明
同局域网 ARP 广播 → 直接通信 目标 MAC 直接获取
跨局域网 ARP 获取网关 MAC → 路由器逐跳转发 借助网关实现路由

2.4 传输层

  • 基于端口工作,IP + Port = 唯一网络应用标识
  • 端口范围:0 ~ 65535(16 位)
常见端口 服务
80 HTTP
443 HTTPS
22 SSH
3306 MySQL
6379 Redis

2.5 应用层

  • HTTP/HTTPS、SMTP、FTP、DNS 等协议
  • Socket:对传输层及以下协议的抽象封装,提供统一编程接口

3. DNS 域名解析

3.1 域名结构

www.baidu.com.子域名.主域名.根域(根域 . 可省略)

域名从右到左层级递减,最后的 . 表示根域名服务器。

3.2 记录类型

记录类型 作用 示例
A 域名 → IPv4 www.example.com1.2.3.4
AAAA 域名 → IPv6 www.example.com::1
CNAME 域名 → 域名 www.example.comexample.com
MX 邮件交换记录 @example.commail.example.com
NS 域名服务器 example.comns1.example.com

3.3 解析查询方式

方式 说明 场景
递归查询 DNS 服务器不知道答案,但代替客户端向下查询并返回最终结果 客户端 → 本地 DNS
迭代查询 DNS 服务器不知道答案,返回另一个 DNS 服务器地址,让客户端自行查询 DNS 服务器之间
sequenceDiagram
    participant Client as 客户端
    participant Local as 本地 DNS<br/>(递归)
    participant Root as 根域名服务器
    participant TLD as .com TLD<br/>(迭代)
    participant Auth as 权威 DNS<br/>(迭代)

    Client->>Local: 查询 www.example.com
    Local->>Root: 迭代查询
    Root-->>Local: 返回 .com 服务器地址
    Local->>TLD: 迭代查询
    TLD-->>Local: 返回 example.com DNS 地址
    Local->>Auth: 迭代查询
    Auth-->>Local: 返回 IP 地址
    Local-->>Client: 最终结果

3.4 解析优先级

Chrome DNS 缓存 > HOSTS 文件 > 系统 DNS 缓存 > DNS 服务器

3.5 验证命令

# 追踪 DNS 解析全过程
dig +trace egonlin.com

# 简单查询
nslookup www.example.com

# 查看 DNS 缓存(Windows)
ipconfig /displaydns

4. 网络通信流程

4.1 架构模型

架构 说明 示例
C/S Client/Server,客户端-服务器 MySQL 客户端连接数据库
B/S Browser/Server,浏览器-服务器 Web 应用(浏览器访问网站)

4.2 数据封装过程

flowchart LR
    subgraph Application["应用层"]
        A["HTTP 请求"]
    end
    
    subgraph Transport["传输层"]
        T["TCP 头 + Data<br/>源端口:随机 → 目标端口:80"]
    end
    
    subgraph Network["网络层"]
        N["IP 头 + TcpSegment<br/>源IP → 目标IP"]
    end
    
    subgraph DataLink["数据链路层"]
        D["以太网帧头 + IP包 + 帧尾<br/>源MAC → 目标MAC"]
    end
    
    subgraph Physical["物理层"]
        P["转换为电信号"]
    end
    
    A --> T --> N --> D --> P

    style Application fill:#e1f5fe
    style Transport fill:#fff3e0
    style Network fill:#e8f5e9
    style DataLink fill:#fce4ec

逐层封装示意:

封装层级 结构 说明
以太网帧 (Frame) Ethernet Head (14B) + IP 包 + CRC/FCS (4B) 数据链路层封装
IP 包 (Packet) IP Header (20B) + Data (TCP Segment) 网络层封装
TCP 段 (Segment) TCP Header (20B) + Application Data 传输层封装

MTU 限制:以太网 MTU = 1500 字节,当数据包超过 MTU 时需要进行分片


5. TCP vs UDP

特性 TCP UDP
连接性 面向连接(三次握手) 无连接
可靠性 可靠,有确认机制 不可靠,无确认
传输效率 相对较低 高(开销小)
数据顺序 保证顺序 不保证顺序
流量控制 支持(滑动窗口) 不支持
拥塞控制 支持(慢启动、拥塞避免) 不支持
头部大小 20~60 字节 8 字节
适用场景 文件传输、邮件、Web 视频通话、DNS、直播

5.1 TCP 三次握手

sequenceDiagram
    participant C as 客户端
    participant S as 服务端

    Note over C: 初始状态: CLOSED
    Note over S: 初始状态: LISTEN

    C->>S: SYN=1, seq=x
    Note over C: 状态: SYN_SENT

    S->>C: SYN=1, ACK=1, seq=y, ack=x+1
    Note over S: 状态: SYN_RCVD

    C->>S: ACK=1, seq=x+1, ack=y+1
    Note over C: 状态: ESTABLISHED
    Note over S: 状态: ESTABLISHED

    Note over C,S: 双方确认彼此收发能力正常

握手状态变化:

阶段 客户端 服务端
初始 CLOSED LISTEN
第1次握手 SYN_SENT -
第2次握手 - SYN_RCVD
第3次握手 ESTABLISHED ESTABLISHED

5.2 TCP 四次挥手

sequenceDiagram
    participant C as 主动关闭方
    participant S as 被动关闭方

    C->>S: FIN=1, seq=u
    Note over C: 状态: FIN_WAIT_1

    S->>C: ACK=1, ack=u+1
    Note over S: 状态: CLOSE_WAIT
    Note over C: 状态: FIN_WAIT_2

    Note over S: 处理剩余数据...

    S->>C: FIN=1, seq=w
    Note over S: 状态: LAST_ACK

    C->>S: ACK=1, ack=w+1
    Note over C: 状态: TIME_WAIT
    Note over S: 状态: CLOSED

    Note over C: 等待 2MSL 后 CLOSED

MSL(Maximum Segment Lifetime):报文最大生存时间,通常为 60 秒


6. 网络通信四种地址

地址类型 用途 获取方式
IP 地址 主机唯一标识 DHCP 动态 / 静态配置
子网掩码 划分网络/主机部分 与 IP 共同配置
网关地址 跨网段通信出口 通常由路由器分配
DNS 服务器 域名解析 ISP 提供 / 自建

6.1 流量类型

流量类型 说明 示例
南北流量 与外网通信(纵向) 用户访问服务器
东西流量 集群内部通信(横向) Nginx → App Server

7. 子网划分

7.1 CIDR 表示法

前缀 子网掩码 可用主机数 示例网段
/24 255.255.255.0 254 192.168.71.0/24
/25 255.255.255.128 126 192.168.71.0/25, 192.168.71.128/25
/26 255.255.255.192 62 4 个子网,每段 62 主机
/30 255.255.255.252 2 point-to-point 链路

7.2 示例:/25 子网划分

flowchart LR
    subgraph subnet1["192.168.71.0/25"]
        A1["网络地址: 192.168.71.0"]
        A2["可用IP: 1~126"]
        A3["广播地址: 192.168.71.127"]
    end
    subgraph subnet2["192.168.71.128/25"]
        B1["网络地址: 192.168.71.128"]
        B2["可用IP: 129~254"]
        B3["广播地址: 192.168.71.255"]
    end

8. VLAN 虚拟局域网

  • 将一个物理交换机划分为多个逻辑交换机
  • 每个 VLAN 是一个独立的广播域
  • 跨 VLAN 通信需要三层路由
  • 常见使用场景:
    • 隔离办公网络与服务器网络
    • 按部门/业务划分网络
    • 提升网络安全性和性能

9. 特殊 IP 地址

地址范围 类型 说明
10.0.0.0 ~ 10.255.255.255 私网 A 类 大型组织内部网络
172.16.0.0 ~ 172.31.255.255 私网 B 类 中型网络
192.168.0.0 ~ 192.168.255.255 私网 C 类 家庭/小型办公网络
127.0.0.1 本地回环 localhost
169.254.0.0/16 链路本地地址 DHCP 失败时自动分配
0.0.0.0 任意网络 表示"任何地址"

10. 常用网络命令

# 查看 IP 配置
ip addr show
ifconfig

# 测试连通性
ping <目标IP/域名>

# 追踪路由
traceroute <目标>
tracert <目标>      # Windows

# 查看端口监听
netstat -tlnp
ss -tlnp

# DNS 查询
dig <域名>
nslookup <域名>

# 网络诊断
curl -v <URL>
telnet <IP> <端口>
原创

Day04-05-网络基础与进阶

本文链接: Day04-05-网络基础与进阶

本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

评论交流

文章目录