网络基础(一):协议与网络传输基本流程

📅 2026/8/11 14:19:47
网络基础(一):协议与网络传输基本流程
一、计算机网络背景计算机最初都是独立运行的个体。每台计算机都配备专属的CPU、内存和存储设备能够独立完成各类计算任务。但随着计算机数量不断增多单一独立工作的模式逐渐无法满足使用需求人们开始产生新的诉求实现不同计算机之间的数据共享完成不同设备之间的信息交换支持多台计算机协同完成工作任务基于这样的需求计算机之间开始建立连接计算机网络就此形成。计算机网络的发展主要经历了三个阶段网络互联多台计算机建立连接实现基础数据共享随着网络规模持续扩张按照覆盖范围可将网络分为两大类局域网LAN广域网WAN局域网指小范围区域内的计算机网络连接常见场景包括家庭网络公司内部办公网络校园网络广域网指远距离、跨区域的计算机网络连接常见场景包括不同城市之间的网络互联不同国家之间的网络互通无论是局域网还是广域网核心本质都是实现不同计算机之间的数据通信而计算机想要完成跨设备的数据通信首先必须解决一个核心问题。二、什么是协议1. 协议是一种约定日常生活中处处存在“协议”的身影。以两人打电话为例双方需要默认遵守一系列约定电话响几声代表何种状态、谁优先开口对话、如何清晰传递信息。这些通用约定保障了双方能够准确理解彼此的表达。计算机通信的逻辑与生活场景完全一致。两台计算机交换数据时发送方需要按照固定格式组织数据接收方必须按照完全相同的格式解析数据。这种通信双方共同遵守的统一规则就是协议。协议的本质是一种约定。2. 为什么计算机通信必须有协议网络中的计算机、设备存在诸多差异比如不同厂商生产的硬件设备、不同版本的操作系统、不同类型的网络传输设备。如果没有统一的通信规则当A计算机发送一串二进制数据「101010」时B计算机无法识别这串数据的含义、格式和用途。这就好比两个人交流一人说中文、一人说葡萄牙语即便各自遵守自身的语言规则最终也无法完成有效沟通。因此计算机网络必须制定全网通用的统一标准所有联网设备共同遵守的通信规则就是网络协议。三、重新理解协议协议就是双方都认识的数据结构从程序开发的角度理解协议会更加直观易懂。假设两个程序需要完成通信发送方定义了专属的数据结构体struct Protocol { int a; int b; int c; };发送方赋值并传输数据a 10; b 20; c 30;如果接收方也定义了完全一致的结构体格式收到数据后就能精准解析出a10、b20、c30。能够精准解析的核心原因是通信双方拥有统一、可识别的数据格式。因此从程序层面可以定义协议是通信双方都认可、能够精准识别的数据结构。课件中也通过结构体案例佐证协议就是通信双方共同认可的结构化数据类型。四、为什么协议需要分层从本质上来说网络协议也是一类软件程序。如果将所有网络通信的功能、逻辑全部整合到单一协议中会出现诸多问题代码臃肿复杂、功能迭代修改困难、不同业务功能高度耦合、容错性极差。为了解决这些问题网络协议采用了分层设计的核心思想。举一个简单的分层案例语言层 ↓ 通信设备层语言层负责信息的语义表达与内容组织通信设备层负责数据的物理传输两层功能相互独立、互不干扰。如果后续升级、更换通信设备无需修改语言层的任何规则同理优化语言表达规则也不会影响设备传输功能。这就是分层设计带来的解耦优势。课件明确说明协议本质属于软件范畴为了实现模块化开发、降低代码耦合度网络协议被设计为层状结构。五、OSI七层模型为了统一全球网络通信标准、规范设备交互逻辑行业推出了OSI开放系统互连模型从逻辑层面将网络通信划分为七个层级每层各司其职、分工明确。OSI七层模型层级从上至下依次为应用层 → 表示层 → 会话层 → 传输层 → 网络层 → 数据链路层 → 物理层OSI模型的理论体系十分完善清晰区分了服务、接口、协议三大核心概念但整体架构过于繁琐、落地成本高无法适配实际的互联网工程场景。因此当下实际运行的互联网统一采用更轻量化、可落地的TCP/IP模型。六、TCP/IP五层模型TCP/IP并非单一协议而是一套完整的协议集合也是互联网的核心通信标准。在实际网络通信过程中上层协议会持续调用下层协议提供的服务逐层完成数据处理与传输。TCP/IP五层模型层级从上至下依次为应用层 → 传输层 → 网络层 → 数据链路层 → 物理层1. 物理层核心职责传输比特流网线、光纤、WiFi无线电波等都属于物理层的传输介质。该层级主要决定网络的传输速度、传输距离、抗干扰能力等基础物理参数。2. 数据链路层核心职责完成相邻设备之间的数据传输主要工作内容包括数据帧封装与传输、传输错误检测、网卡设备通信。日常使用的交换机核心工作层级就是数据链路层。3. 网络层核心职责实现不同网络之间的数据传输核心协议为IP协议核心功能包含地址管理、路由路径选择。路由器的核心工作层级为网络层。4. 传输层核心职责完成两台主机之间的端到端数据传输主流核心协议为TCP、UDP负责保障主机间数据传输的可靠性、有序性。5. 应用层核心职责实现应用程序之间的数据交换与交互常见协议包含HTTP、FTP、SMTP等。网络编程的核心学习与实践重点均集中在应用层。七、网络传输的基本过程数据封装与分用了解完协议分层模型后我们需要理清核心问题应用程序生成的原始数据如何通过多层协议处理最终转化为网络可传输的数据以浏览器请求为例应用层生成原始数据「GET /index.html」这部分数据仅能被应用层识别。想要完成网络传输还需要补充目标地址、传输路径、局域网标识等各类信息。因此原始数据需要经过协议栈的逐层处理整体分为两大核心流程发送端数据封装接收端数据分用八、数据封装过程1. 什么是封装应用层生成的原始数据会逐层向下交付给下层协议处理。每经过一个协议层级当前层都会自动添加专属的协议信息这部分新增信息被称为报头header。最终传输的完整报文结构为报文 报头 有效载荷其中报头是各层协议所需的控制、标识信息有效载荷是上层传递下来的真实业务数据。完整封装示例应用层原始数据hello传输层封装TCP报头 hello网络层封装IP报头 TCP报头 hello数据链路层封装MAC报头 IP报头 TCP报头 hello完成多层封装后数据会以比特流的形式通过物理层介质发送出去。作用直观展示数据从应用层向下传输每一层依次添加协议头部的完整过程。2. 不同层数据的专属名称所有层级的数据本质都是「协议头原始数据」但为了区分层级、方便定义各层数据有专属命名传输层数据段segment网络层数据数据报datagram数据链路层数据帧frame简言之同一份原始数据在不同协议层级会被赋予不同的专业名称。九、数据分用过程当封装完成的数据到达目标主机后不会直接交付给应用程序而是从底层开始逐层向上完成解析处理这个逆向解析的过程就是分用。完整分用流程物理层 → 数据链路层 → 网络层 → 传输层 → 应用层每一层的处理逻辑统一校验自身对应的协议报头信息、剥离当前层报头、根据报头中的标识字段将剩余数据交付给对应的上层协议处理。具体解析逻辑网络层接收数据校验IP报头判断数据是否为本机接收传输层接收数据校验端口信息匹配对应的目标应用程序逐层解析剥离完成后应用程序最终获取到最原始的业务数据。数据抵达目标主机后各层协议依次剥离对应首部通过首部中的上层协议字段将数据精准交付给对应上层协议处理。十、局域网通信流程掌握协议分层、封装与分用的理论后我们结合实际场景拆解两台计算机的真实通信流程。首先从最简单的局域网通信场景入手。典型局域网架构主机A ↔ 交换机 ↔ 主机B两台主机处于同一局域网网段。十一、MAC地址局域网中的身份标识局域网内部的设备通信核心依赖MAC地址完成身份识别与数据转发。MAC地址也叫物理地址属于数据链路层核心标识是每一块网卡的唯一硬件标识全球唯一。示例MAC地址00:16:3e:11:22:33局域网通信过程中所有主机都会通过数据帧中的目标MAC地址判断当前接收的数据是否是发送给自己的。课件明确局域网通信的设备身份校验核心依据为目标MAC地址。十二、同一网段主机通信过程以「主机A向同网段主机B发送数据hello」为例完整通信流程如下第一步应用层生成原始数据主机A应用程序生成待传输数据你好第二步协议栈逐层封装、向下交付原始数据依次经过应用层、传输层、网络层、数据链路层每一层完成专属报头封装最终生成完整数据帧。最终数据帧核心结构目标MAC 源MAC IP信息 传输层信息 原始数据封装完成后数据帧被发送至局域网交换机。第三步交换机转发数据交换机工作在数据链路层读取数据帧中的目标MAC地址匹配对应的设备端口将数据帧精准转发给主机B。第四步主机B分层分用数据主机B接收数据帧后从底层向上逐层解析剥离报头剥离MAC头 → 剥离IP头 → 剥离TCP/UDP传输层头 → 原始数据交付应用程序最终主机B的应用程序成功接收数据你好十三、为什么需要广域网在纯局域网场景中仅依靠MAC地址就能完成所有设备的通信交互。但现实的网络场景中大量设备处于异地、跨区域状态。例如国内主机访问海外服务器两台设备相隔数千公里中间跨越多个独立网络无法通过局域网规则完成通信这就是跨网络通信场景。典型跨网络架构主机A ↔ 路由器 ↔ 互联网 ↔ 路由器 ↔ 服务器B十四、IP地址跨网络通信的地址MAC地址仅适用于单一局域网内部的设备定位与转发无法实现跨网络、跨网段的设备寻址。想要完成远距离网络通信必须依靠IP地址。IP地址属于网络层核心标识核心作用是全网范围内定位目标主机。我们常用的IPv4地址是32位整数日常以点分十进制格式展示示例192.168.0.1每一段数值范围为0~255。十五、跨网络通信流程以「主机A跨网段访问服务器B」为例核心通信逻辑如下主机A封装数据时会固定填写源IP本机IP和目标IP服务器B IP封装完成的数据首先发送至本机默认网关路由器。路由器接收数据后不会直接转发而是完成一系列核心操作拆解网络层数据解析目标IP地址根据路由规则判断最优下一跳路径重新封装网络层、数据链路层报头向下一跳设备转发数据数据会经过多级路由器反复解析、封装、转发最终抵达目标服务器所在网段完成跨网络通信。十六、IP地址和MAC地址的区别IP地址与MAC地址是网络通信的两大核心标识分工明确、缺一不可二者的核心差异是网络基础的重点内容IP地址核心定位长远最终目标核心作用用于全网路径选择定位跨网段的目标主机通信全程保持不变。MAC地址核心定位当前下一跳目标核心作用用于单局域网内部的数据转发每经过一次网段跳转MAC地址都会重新刷新替换。以北京主机访问上海服务器为例通信全程目标IP始终为上海服务器IP但每经过一个路由器、切换一个局域网数据帧的源、目标MAC地址都会同步更新。课件核心总结IP地址负责确定最终通信目标支撑全网路径选择MAC地址负责确定单跳传输目标支撑局域网内部转发十七、网络通信整体流程总结我们以「主机A向主机B发送数据」为例整合所有知识点梳理完整的网络通信闭环流程发送端数据封装应用程序生成原始数据 → 传输层添加传输报头 → 网络层添加IP地址信息 → 数据链路层添加MAC地址信息 → 物理层以比特流形式发送数据网络传输中局域网场景交换机根据MAC地址完成数据转发跨网络场景路由器根据IP地址完成路径选择与跨网段转发接收端数据分用物理层接收比特流数据 → 数据链路层剥离MAC报头 → 网络层剥离IP报头 → 传输层剥离传输层报头 → 应用程序获取原始业务数据十八、全文总结计算机网络通信的核心目标是让所有不同规格、不同系统、不同区域的计算机通过统一规则完成数据交换。本文核心知识点梳理协议网络通信的统一约定本质是双方认可的数据结构保障设备有效交互分层设计将复杂网络功能模块化降低代码耦合度简化通信逻辑数据封装发送端逐层添加协议报头组装成可传输的网络报文数据分用接收端逐层剥离协议报头解析还原原始业务数据局域网通信依托MAC地址通过交换机完成同网段设备数据交互跨网络通信依托IP地址与路由器路由转发完成跨网段、远距离通信整体而言互联网就是无数个局域网、广域网依托统一的TCP/IP协议栈互联形成的巨型网络体系。