计算机网络核心概念

一、计算机网络到底在做什么?

**本质:把数据从一台设备,可靠 / 快速地送到另一台设备。**为了做到这件事,需要解决:

  • 怎么标识设备(地址)
  • 怎么找到路径(路由)
  • 怎么保证不丢、不错、不被窃听(可靠 / 安全)
  • 怎么让不同设备、不同系统能互相听懂(协议)

二、分层思想:网络的 "总架构"

1. 为什么要分层?

  • 复杂问题拆小
  • 各层只干自己的事
  • 方便替换、升级、排错
  • 下层为上层服务,上层使用下层能力

2. 实用模型:TCP/IP 四层(开发 / 面试主流)

  1. 应用层:给用户 / 软件用(HTTP、DNS、FTP)
  2. 传输层:端到端传输(TCP、UDP)
  3. 网络层:跨网寻址转发(IP、ARP、ICMP)
  4. 网络接口层:局域网内传输(以太网、MAC)

三、每层核心原理(从上到下)

1. 应用层:你每天都在用的一层

作用:规定 "数据长什么样、怎么交互"

  • HTTP/HTTPS:网页、接口
  • DNS:域名 → IP
  • FTP:文件传输
  • WebSocket:长连接、实时通信

特点

  • 面向业务
  • 基于传输层协议(大多基于 TCP)

2. 传输层:程序之间的快递员

作用:实现 进程 ↔ 进程 的通信端口号 区分不同应用。

两个核心协议:

① TCP(可靠快递)

  • 面向连接
  • 可靠:丢包重传、有序、校验
  • 流量控制 + 拥塞控制
  • 面向字节流
  • 场景:网页、文件、登录、接口

② UDP(短信 / 快递包裹)

  • 无连接
  • 不保证可靠、不管顺序
  • 速度极快、开销小
  • 面向数据报
  • 场景:直播、游戏、视频通话、DNS 查询

3. 网络层:跨网导航系统

作用:实现 主机 ↔ 主机 的通信 负责寻址 + 路由选择

核心协议
  • IP

    • 给每台设备一个地址
    • IPv4:32 位,如 192.168.1.10
    • 尽力投递,不保证可靠
  • ARP

    • 功能:IP → MAC 地址
    • 局域网内广播问路
  • ICMP

    • 探测网络是否通
    • ping 命令就是基于它

4. 网络接口层:局域网内搬运工

作用:同一局域网内,设备之间传帧

  • MAC 地址 标识网卡
  • 单位:帧(Frame)
  • 代表:以太网、Wi-Fi

四、数据怎么流动:封装与解封装

发送方(从上到下封装) 应用数据→ 加 TCP/UDP 头 → 段 / 报文 → 加 IP 头 → → 加帧头 / 尾 → → 转为比特流发出

**接收方(从下到上解封装)**比特流 → 拆帧头 → 拆 IP 头 → 拆 TCP 头→ 纯数据交给对应应用

一句话:每一层只认识自己的头,不关心上层数据是什么。


五、网络最核心流程:打开一个网页发生了什么?

  1. 浏览器查 DNS,把域名解析成 IP
  2. 浏览器与服务器建立 TCP 三次握手
  3. 浏览器发送 HTTP 请求
  4. 服务器处理,返回 HTTP 响应
  5. 浏览器渲染页面
  6. 结束后 TCP 四次挥手 断开

如果是 HTTPS :在 TCP 连接后,多一步 TLS 握手(加密协商)。


六、必须掌握的硬核概念

1. 无状态 vs 有状态

  • HTTP 无状态:服务器记不住你
  • Cookie + Session 实现 "记住你"

2. 三次握手(建立 TCP)

目的:

  • 确认双方收发正常
  • 同步序列号

过程:

  1. C → S:SYN
  2. S → C:SYN+ACK
  3. C → S:ACK

3. 四次挥手(断开 TCP)

因为是全双工,两边要分别关闭:

  1. A:我发完了(FIN)
  2. B:收到(ACK)
  3. B:我也发完了(FIN)
  4. A:收到(ACK)

4. HTTPS 加密逻辑

  • 非对称加密:安全交换对称密钥
  • 对称加密:真正传输数据
  • 数字证书:防中间人掉包公钥

七、设备分别工作在哪一层?

  • 路由器:网络层(根据 IP 转发)
  • 交换机:数据链路层(根据 MAC 转发)
  • 防火墙:多层(可按端口 / 应用过滤)

八、高频问题一句话答案

  1. **TCP 和 UDP 区别?**TCP 可靠、慢、面向连接;UDP 不可靠、快、无连接。

  2. **IP 和 MAC 区别?**IP 标识网络位置,MAC 标识网卡硬件。

  3. **HTTP 和 HTTPS 区别?**HTTP 明文 80;HTTPS 加密 443,多了 TLS 层。

  4. **为什么要三次握手?**防止失效连接建立,浪费资源。

  5. **为什么 DNS 一般用 UDP?**小包、快、允许偶尔丢包。

  6. **什么是拥塞控制?**网络堵了,TCP 主动减慢发送速度。

  7. **什么是会话保持?**用 Cookie 带 SessionId,让服务器认出同一个用户。


九、极简知识地图(可直接背诵)

  • 应用层:HTTP/DNS → 业务数据
  • 传输层:TCP/UDP + 端口 → 进程间传输
  • 网络层:IP/ARP + 路由 → 跨网寻址
  • 链路层:MAC + 以太网 → 局域网传输
  • 整体流程:封装 → 传输 → 解封装
  • 核心目标:连通、寻址、可靠、安全
相关推荐
头疼的程序员4 小时前
计算机网络:自顶向下方法(第七版)第六章 学习分享(一)
网络·学习·计算机网络
Byte不洛6 小时前
基于 C++ 手写 HTTP 服务器:从请求解析到响应构建全流程解析
linux·网络·c++·计算机网络·http
Du_chong_huan6 小时前
第 3 章 运输层 总述|《计算机网络:自顶向下方法》精读版
计算机网络
.豆鲨包1 天前
【计算机网络】物理层
网络·计算机网络
跃渊Yuey1 天前
【计算机网络】高级IO模型与多路转接select、poll
计算机网络
旺仔.2911 天前
UDP 编程 详解
linux·网络·计算机网络·udp
马猴烧酒.1 天前
【面试八股|计算机网络】计算机网络常见面试题详解笔记
java·开发语言·网络·笔记·计算机网络·算法·面试
谪星·阿凯1 天前
从XXE遗留疑问到Upload-Labs全通关:文件上传漏洞的溯源与实战突破
android·计算机网络
猹叉叉(学习版)2 天前
【系统分析师_知识点整理】 4.计算机网络与分布式系统
笔记·计算机网络·软考·系统分析师