零基础入门计算机网络:一文搞懂体系结构与分层思想

零基础入门计算机网络:一文搞懂体系结构与分层思想 计算机网络是现代互联网的基石但它的复杂性常常让初学者望而却步。其实计算机网络的核心设计哲学非常优雅 ——分层。通过将庞大复杂的问题拆解为若干个小问题每层专注解决特定任务整个系统变得清晰易懂且易于维护。本文将带你从零开始系统学习计算机网络体系结构的核心知识所有重点内容都整理成了表格方便你快速查阅和记忆。一、三种常见的计算机网络体系结构为了实现不同厂商、不同类型计算机之间的互联互通历史上出现了两种主要的网络体系结构标准以及一种用于教学的原理性结构。体系结构对比表体系结构类型层数各层名称从下到上地位核心特点文档重点标注OSI 参考模型7 层物理层、数据链路层、网络层、运输层、会话层、表示层、应用层法律上的国际标准理论完善但过于复杂1977 年由 ISO 提出因缺乏商业驱动力、实现复杂、周期过长而失败TCP/IP 参考模型4 层网络接口层、网际层、运输层、应用层事实上的国际标准简单实用市场主导1983 年开始使用网络接口层无具体内容可互联各种网络接口五层原理体系结构5 层物理层、数据链路层、网络层、运输层、应用层教学用标准综合 OSI 和 TCP/IP 优点将 TCP/IP 的网络接口层重新划分为物理层和数据链路层核心要点OSI 模型是理论上的完美标准但从未被大规模商用TCP/IP 模型是互联网的实际标准能够占领市场的就是标准五层结构是为了教学方便而提出的折中方案也是本文后续讲解的重点二、为什么要分层各层的核心任务计算机网络是一个极其复杂的系统分层设计的本质是分而治之。我们按照从简单到复杂的顺序看看实现计算机网络需要解决哪些问题以及这些问题如何被分配到不同层次。五层结构各层任务表层次解决的核心问题主要功能关键技术 / 概念文档重点标注物理层使用何种信号表示比特 0 和 1传输比特流传输媒体、物理接口、信号编码传输媒体不属于物理层举例用方波信号是为了简化理解数据链路层分组在一个网络 / 一段链路上的传输主机编址、帧封装、介质访问控制MAC 地址、以太网帧、冲突检测解决 谁发给谁 和 如何避免冲突 问题网络层分组在多个网络间的传输和路由网络编址、路由选择、分组转发IP 地址、路由器、路由表解决 跨网络传输 问题IP 协议是网际层核心运输层进程之间基于网络的通信进程标识、可靠 / 不可靠传输端口号、TCP、UDP解决 数据交给哪个应用程序 问题应用层通过应用进程交互实现特定网络应用提供各种网络服务HTTP、SMTP、FTP、DNS直接面向用户的网络应用核心要点分层将庞大复杂的问题转化为若干较小的局部问题每层只关心自己的任务不需要知道其他层的实现细节下层为上层提供服务上层使用下层提供的服务三、分层思想实战一次 HTTP 请求的完整旅程理论讲完了我们通过一个最常见的例子 —— 用浏览器访问网页来看看各层是如何协同工作的。这个过程被称为封装与解封装。HTTP 请求处理过程表阶段设备处理层次操作内容生成的数据单元文档重点标注发送请求主机应用层按 HTTP 协议构建请求报文HTTP 请求报文包含请求方法、URL、协议版本等信息运输层添加 TCP 首部TCP 报文段首部包含源端口和目的端口用于区分应用进程网络层添加 IP 首部IP 数据报首部包含源 IP 和目的 IP用于路由转发数据链路层添加以太网首部和尾部以太网帧首部包含源 MAC 和目的 MAC尾部用于差错检测物理层添加前导码转换为电信号比特流前导码用于让目的主机做好接收准备转发请求路由器物理层将信号转换为比特流去掉前导码比特流逐层解封装到网络层数据链路层去掉以太网首部和尾部IP 数据报网络层解析 IP 首部查找路由表确定转发端口IP 数据报核心是路由选择数据链路层添加新的以太网首部和尾部以太网帧源 MAC 变为路由器出接口 MAC目的 MAC 变为服务器 MAC物理层添加前导码转换为电信号比特流接收请求服务器物理层将信号转换为比特流去掉前导码比特流逐层解封装到应用层数据链路层去掉以太网首部和尾部IP 数据报检查尾部的差错检测码网络层去掉 IP 首部TCP 报文段检查 IP 地址是否匹配运输层去掉 TCP 首部HTTP 请求报文根据端口号交给对应应用进程应用层解析 HTTP 请求生成响应报文HTTP 响应报文包含状态码、响应头和响应体核心要点发送方是自上而下逐层封装每一层都添加自己的首部和尾部接收方是自下而上逐层解封装每一层都去掉对应层的首部和尾部路由器只处理到网络层不关心运输层和应用层的内容四、必须掌握的核心术语计算机网络中有很多专用术语它们都来源于 OSI 七层模型但同样适用于 TCP/IP 模型和五层结构。核心术语汇总表术语类别术语定义关键说明文档重点标注实体实体任何可发送或接收信息的硬件或软件进程可以是硬件如网卡也可以是软件如浏览器进程对等实体通信双方相同层次中的实体例如主机 A 的应用层进程和服务器的应用层进程通信双方的网卡和正在通信的应用进程都是对等实体协议协议控制两个对等实体进行逻辑通信的规则的集合协议是 水平的只在对等实体之间起作用逻辑通信是假设的目的是方便单独研究某一层语法定义通信双方所交换信息的格式规定数据的字段、长度和顺序协议三要素之一语义定义通信双方所要完成的操作规定收到信息后应该做什么协议三要素之一同步定义通信双方的时序关系规定操作的先后顺序和状态转换协议三要素之一不是指时钟频率同步服务服务本层向上一层提供的功能服务是 垂直的下层为上层提供服务上层实体看得见下层的服务但看不见实现服务的具体协议服务访问点 (SAP)同一系统中相邻两层实体交换信息的逻辑接口用于区分不同的服务类型数据链路层帧类型字段网络层协议字段运输层端口号服务原语上层使用下层服务时交换的命令是层间交互的接口数据单元协议数据单元 (PDU)对等层次之间传送的数据包不同层有不同名称物理层 - 比特流数据链路层 - 帧网络层 - IP 数据报运输层 - TCP 报文段 / UDP 用户数据报应用层 - 应用报文服务数据单元 (SDU)同一系统内层与层之间交换的数据包多个 SDU 可以合并为一个 PDU一个 SDU 也可以划分为几个 PDU核心要点协议是水平的服务是垂直的下层协议对上层实体是透明的就像我们使用手机不需要懂手机的工作原理一样协议三要素语法、语义、同步是理解任何网络协议的基础总结计算机网络体系结构的核心是分层思想它将复杂的网络通信问题分解为五个相对独立的层次物理层传输比特流数据链路层同一网络内的帧传输网络层跨网络的分组路由运输层进程间的端到端通信应用层提供具体的网络应用服务通过本文的学习你应该已经对计算机网络体系结构有了整体的认识。这些知识是后续学习 TCP/IP 协议、HTTP 协议、网络安全等内容的基础。随着学习的深入你会越来越体会到分层设计的精妙之处。