欢迎光临
我们一直在努力

【计算机网络 | 概述1:计算机网络学习路线 - 从分层模型到一次完整 Web 请求】

在这里插入图片描述

当我们在浏览器中输入一个网址并按下回车,页面看似很快就出现了;但在这背后,浏览器、操作系统、网卡、交换机、路由器、DNS 服务器和 Web 服务器共同完成了一次跨网络协作。

这个过程会涉及 DNS、HTTP、TCP、IP、ARP、以太网等许多协议。它们并不是彼此孤立的知识点,而是按照分层模型协作的。

计算机网络初学时容易遇到一个问题:协议很多、名词很多,却不知道它们分别出现在哪一步。本系列会按照 五层模型 展开,先建立全局视角,再逐层理解每个协议解决的问题。

一、计算机网络这门课到底在解决什么问题?

最简单的网络通信,可以理解为两台计算机通过一根网线交换数据。但当通信范围从两台设备扩展到一个局域网、多个局域网,甚至整个互联网时,问题会迅速变复杂:

  • 数据如何在线缆、光纤或无线信号中传输?
  • 数据传输出错或丢失时,如何发现并处理?
  • 多台设备同时通信时,如何找到正确的目标设备?
  • 数据跨越不同网络时,如何选择下一跳和最终路径?
  • 一台主机上的多个应用同时联网时,数据该交给哪个应用?
  • 浏览器、邮件客户端、文件传输工具如何约定数据格式?

这些问题不可能由一个协议全部解决。因此,网络把复杂任务拆分给不同层次:每一层只专注解决一类问题,并向上层提供服务。这就是分层思想。

二、为什么要按照分层模型学习?

分层的价值不只是便于记忆,更重要的是帮助我们定位每个概念的职责和边界。

有了分层视角,网络问题就不再是一团杂乱的协议名,而可以沿着“从下到上”或“从上到下”的路径逐步分析。

本文及后续文章采用 五层模型:

层次主要职责常见内容
应用层 为用户和应用程序提供网络服务 HTTP、DNS、DHCP、FTP、SMTP
传输层 实现进程到进程的通信 TCP、UDP、端口号
网络层 让数据跨网络到达目标主机 IP、路由、ICMP、NAT
数据链路层 在同一链路或局域网中传输数据 以太网、MAC、ARP、交换机、VLAN
物理层 将比特转换为可在介质中传播的信号 网线、光纤、无线电波、编码与调制

三、本系列的学习路线

学习计算机网络不需要一开始就钻进 TCP 报文首部或路由算法。更自然的路线是:先知道每层在做什么,再逐步理解这一层中的关键协议。

1. 概述:先建立网络全景图

这一部分回答三个问题:网络为什么要分层、不同层之间如何协作、数据在不同层的名字为什么不同。

  • TCP/IP 五层模型与 OSI 七层模型
  • 协议、服务与接口的关系
  • 报文、数据段、数据报、帧和比特流
  • 分组交换与网络性能指标

2. 物理层:比特如何真正出发

物理层关注的是最底层的传输问题:0 和 1 如何通过电信号、光信号或无线电波表示出来,以及一条信道的容量为什么有理论上限。

  • 传输介质与信号
  • 编码和调制
  • 信道复用
  • 奈奎斯特定理与香农公式

3. 数据链路层:数据如何走出当前局域网

主机把数据交给网卡后,数据还需要被封装成帧,交由交换机或无线接入设备转发。MAC 地址、ARP 和以太网都属于这一阶段的重要内容。

  • 帧与差错检测
  • MAC 地址与交换机转发
  • ARP:从 IP 地址获取下一跳 MAC 地址
  • 以太网、VLAN 与介质访问控制

4. 网络层:数据如何跨越不同网络

局域网只能解决局部范围内的通信。网络层通过 IP 地址和路由机制,使数据能够从一台主机出发,经过多个路由器,到达另一个网络中的目标主机。

  • IPv4、IPv6 与 IP 编址
  • 子网掩码、CIDR 和子网划分
  • 路由器转发与路由选择
  • NAT、ICMP、SDN

5. 传输层:数据如何交给正确的应用

一台主机上同时运行浏览器、聊天软件、数据库和游戏客户端。仅有 IP 地址只能找到主机,传输层还需要借助端口号把数据交给正确的进程。

  • TCP 与 UDP 的区别和应用场景
  • 可靠传输、确认与重传
  • 三次握手、四次挥手和连接状态
  • 流量控制与拥塞控制

6. 应用层:浏览器和服务器真正说的话

应用层直接面向具体网络应用。日常访问网站时最常接触的 DNS、HTTP 和 HTTPS,都属于这一层。

  • DNS 域名解析
  • HTTP 请求与响应
  • HTTPS 与 TLS
  • DHCP、电子邮件、文件传输、CDN 等协议和服务

四、从输入 URL 开始,一次 Web 请求经过了什么?

在深入每一层前,先从一个完整的案例出发:在浏览器中输入 https://www.baidu.com。

简化后的流程如下:

  • DNS 解析域名,获得Web服务器 IP 地址
  • 然后主机开始访问Web服务器,用到应用层的HTTP协议,基于传输层的TCP协议
  • 传输层建立TCP连接,进行三次握手,然后进行数据传输,加TCP首部
  • 网络层加IP首部
  • 链路层加帧首部、帧尾部,然后进行ARP协议寻址,不断的进行传递,直到交给Web服务器(数据逐层封装信息。)
  • Web服务器接收到之后,会逐层解封装,得到HTTP请求,然后进行处理,回送一个HTTP响应、
  • 然后按照同样的过程一步一步的进行加各种首部,最后发回给主机,主机也是一层一层的剥开,得到HTTP响应报文,然后浏览器根据这个报文渲染页面
  • 五、一次请求中,各层分别做了什么?

    层次在访问网页时的典型动作
    应用层 DNS 查询域名;浏览器发送 HTTP 请求、接收 HTTP 响应
    传输层 DNS 通常使用 UDP;HTTP 常基于 TCP 传输;通过端口找到对应进程
    网络层 为数据添加源 IP 和目的 IP;路由器根据目的 IP 转发数据
    数据链路层 使用 MAC 地址在当前链路传输帧;必要时通过 ARP 获取下一跳 MAC 地址
    物理层 将帧表示为可传播的信号,通过网线、光纤或 Wi-Fi 发出

    通过这个例子,我们可以对计算机网络有一个全局的认识,下一篇,将详细介绍一下计算机网络是如何分层的?

    如果这篇文章对你有帮助,欢迎点赞、评论、关注、收藏。你们的支持是我前进的动力!

    赞(0)
    未经允许不得转载:171主机测评 » 【计算机网络 | 概述1:计算机网络学习路线 - 从分层模型到一次完整 Web 请求】
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址