初识网络原理

初识网络原理

一、网络发展史

独立模式

这是计算机网络出现前的状态,时间大致在20世纪50年代到60年代初。

  • 特点:每台计算机都是孤立的,没有连接能力,数据只能通过磁带、卡片等物理介质在机器间传递。
  • 代表场景:早期的大型机(如IBM 360)仅服务于单个机构,用户需在终端上本地操作,无法跨设备共享资源。
  • 意义:这个阶段奠定了计算机的计算能力基础,但也凸显了“信息孤岛”的痛点,为后续网络互联需求埋下了伏笔。

网络互连

从20世纪60年代末开始,为解决独立模式的弊端,人们开始尝试让不同计算机连接起来。

  • 标志性事件:1969年ARPANET的诞生,这是互联网的前身,它首次实现了跨地域的计算机分组交换通信。
  • 技术突破
    • 提出了分组交换技术,取代了传统的电路交换,让数据传输更高效、容错性更强。
    • 后续发展出TCP/IP协议(1974年),为全球范围的网络互联提供了统一的“语言”。
  • 演变:从最初的4个节点,逐步扩展到连接大学、研究机构,最终成为互联网的骨干。

局域网LAN

20世纪70-80年代,随着个人计算机的普及,办公室和校园内的短距离网络需求激增。

  • 定义:覆盖范围通常在1公里以内,用于连接同一建筑或园区内的设备。
  • 核心技术
    • 以太网(Ethernet):1973年由施乐公司发明,后来成为局域网的主流标准,采用CSMA/CD机制解决冲突。
    • 令牌环(Token Ring):曾是以太网的主要竞争对手,通过令牌传递来控制数据发送。
  • 典型设备:交换机、集线器,用于将多台电脑、打印机等设备连接起来,实现文件共享、打印机共享等功能。
  • 意义:让小型团队和机构内部的资源共享变得便捷,极大提升了办公效率。

广域网WAN

广域网是跨越城市、国家甚至全球的网络,用来连接不同地域的局域网或主机。

  • 特点:覆盖范围广、传输距离长,通常依赖电信运营商的公共通信线路(如光纤、卫星、专线)。
  • 关键技术
    • 路由器(Router):负责在不同网络之间转发数据包,是广域网的核心设备。
    • VPN(虚拟专用网络):通过公共网络建立安全的私有连接,让企业分支机构可以安全互联。
  • 代表案例:除了ARPANET,还有后来的帧中继、ATM,以及现在的互联网本身就是全球最大的广域网。
  • 作用:打破了地理限制,让远程办公、跨地域协作和全球信息交换成为可能。

二、网络通信基础

IP地址

核心定义

IP地址是网络层为互联网中每一台联网设备分配的唯一逻辑标识,作用是在全网范围内定位通信的源设备和目的设备,类似现实中“小区+楼栋号”,让数据知道“从哪来、到哪去”。

关键特性

  • 唯一性:在同一网络段(或全网)中,设备的IP地址不会重复(通过DHCP分配、静态配置实现);
  • 分层性:IP地址分网络位主机位(如IPv4的A/B/C类地址、无类路由CIDR),网络位标识“设备所属的网络”,主机位标识“网络内的具体设备”,方便路由转发;
  • 版本:主流为IPv4(32位,点分十进制,如192.168.1.1)和IPv6(128位,冒分十六进制,如2001:0db8:85a3:0000:0000:8a2e:0370:7334),IPv6解决了IPv4地址枯竭问题;
  • 分类:分公网IP(全网可访问,由运营商分配)和私网IP(内网专用,如192.168.0.0/16、10.0.0.0/8,需NAT转换才能访问公网)。

核心作用

仅定位设备,无法定位设备上的具体应用——比如知道IP是192.168.1.100,只能确定是这台电脑,但不知道是给电脑上的微信、浏览器还是QQ发数据。

端口

核心定义

端口号是传输层为设备上每个网络应用进程分配的16位整数标识(范围0~65535),作用是在单台设备内定位具体的通信应用,类似现实中“楼栋里的房间号”,让数据知道“发给设备上的哪个程序”。

关键特性

  • 进程关联性:一个网络应用进程(如浏览器、MySQL、微信)会绑定一个/多个端口号,端口号与进程一一对应(同一设备内端口号唯一);
  • 端口范围划分
    • 知名端口(0~1023):系统保留,对应通用网络服务,如80(HTTP)、443(HTTPS)、21(FTP)、22(SSH)、3306(MySQL);
    • 注册端口(1024~49151):用户可注册的应用端口,如8080(Tomcat默认)、7001(WebLogic);
    • 动态端口(49152~65535):系统临时分配给客户端应用的端口(如浏览器访问百度时,系统会临时分配一个动态端口作为客户端端口);
  • 双向性:通信中源端和目的端都有端口号(客户端一般用动态端口,服务端用知名/注册端口)。

核心作用

弥补IP地址的不足,实现设备内的应用级寻址——IP定位设备,端口定位设备上的应用,二者结合才能确定“数据的最终接收方”。

协议

核心定义

网络协议(Protocol)是通信双方为实现数据交换而约定的一系列规则、标准和约定的集合,类似现实中“不同国家的人交流要讲同一种语言(如英语)”,让不同厂商、不同系统的设备能“互相理解、正确通信”。

协议的核心要素

所有网络协议都包含这三个核心部分,缺一不可:

  • 语法:规定数据的格式、结构和编码方式(如“数据头部占多少字节、数据体从哪个位置开始”);
  • 语义:规定数据的含义、各字段的作用(如“某个字段值为1表示请求,为2表示响应”);
  • 时序:规定通信的先后顺序、速率匹配、同步方式(如“客户端先发送请求,服务端再返回响应”“发送方发完数据后需等待确认,未确认则重传”)。

协议的分类方式

  • 协议分层(最常用):物理层协议(如RJ45、光纤标准)、数据链路层(如以太网MAC、ARP)、网络层(如IP、ICMP、路由协议OSPF)、传输层(如TCP、UDP)、应用层(如HTTP、HTTPS、FTP、SMTP);
  • 传输特性:面向连接(如TCP)、无连接(如UDP、IP);
  • 功能:寻址协议(IP、ARP)、传输协议(TCP、UDP)、应用服务协议(HTTP、MySQL)、控制协议(ICMP、SNMP)。

核心作用

消除设备间的“通信壁垒”,定义“怎么传、传什么、怎么理解”,是网络通信的基础。

五元组

核心定义

五元组是传输层用于唯一标识互联网中一个端到端网络会话的五个核心字段的组合,是IP、端口、协议的结合体,也是网络设备(如路由器、防火墙、交换机)进行会话识别、流量转发、访问控制的核心依据。

五元组的组成

源IP地址 + 源端口号 + 传输层协议 + 目的IP地址 + 目的端口号

示例:小明用浏览器访问百度,五元组可能为:
192.168.1.100(源IP) + 56789(源动态端口) + TCP(传输协议) + 180.101.49.11(百度目的IP) + 443(HTTPS目的端口)

补充:四元组/三元组

  • 四元组:去掉「源端口号」,即源IP+目的IP+传输协议+目的端口,用于模糊识别同一类服务流量(如所有访问443端口的HTTPS流量);
  • 三元组源IP+目的IP+传输协议,用于识别两台设备间的特定协议通信(如两台设备间的TCP通信);
  • 六元组:五元组基础上加「入接口/出接口」,用于网络设备(如防火墙)的精准流量控制。

核心特性与作用

  • 唯一性:在全网范围内,一个五元组对应唯一的一个网络会话(比如你用浏览器开两个百度标签,系统会分配两个不同的源端口,形成两个不同的五元组,对应两个会话);
  • 核心应用:防火墙的访问策略(允许/拒绝某五元组流量)、路由器的会话表转发、NAT的地址转换、流量统计与监控(如统计某IP访问某服务的流量)。

关键注意

五元组的传输层协议只能是TCP或UDP(主流传输层协议),因为只有传输层才有端口号,网络层及以下无端口概念。

协议分层

分层的核心原因

网络通信是一个复杂的过程(涉及物理传输、寻址、连接、数据解析等),如果将所有功能揉在一起,会导致协议复杂、难以维护、兼容性差

协议分层的核心思想是「分而治之」:将网络通信的整体功能拆分为多个层次,每个层次只负责完成一个特定的核心功能,层与层之间通过接口交互,上层依赖下层提供的服务,下层无需关心上层的实现细节。

主流分层模型:OSI七层模型 vs TCP/IP四层模型

OSI七层模型是理论模型,定义了网络通信的完整分层标准;TCP/IP四层模型是实际工业模型,是互联网的核心实现模型,二者一一对应,实际开发/运维中以TCP/IP四层模型为主。

分层对应关系

OSI七层模型TCP/IP四层模型核心功能核心协议/技术
应用层应用层为用户/应用提供网络服务(数据解析、业务逻辑)HTTP/HTTPS、FTP、SMTP、MySQL、DNS
表示层应用层数据格式转换、加密、压缩(如JSON/XML解析、SSL加密)归为应用层实现,无独立协议
会话层应用层建立/管理/终止应用间的会话(如TCP连接的会话管理)归为应用层/传输层实现
传输层传输层端到端的数据传输(可靠传输、流量控制、端口寻址)TCP、UDP
网络层网际层全网范围的寻址与路由转发(IP寻址、路由选择)IP(v4/v6)、ICMP、ARP、OSPF、BGP
数据链路层网络接口层局域网内的帧传输(MAC寻址、差错检测)以太网MAC、PPP、VLAN
物理层网络接口层物理介质上的二进制比特流传输(电气/物理标准)RJ45、光纤、无线WiFi、串口

分层的核心原则

  • 上下层服务关系:每一层都向上一层提供「服务」,同时接受下一层的服务(如应用层依赖传输层的端到端传输服务,传输层依赖网络层的寻址路由服务);
  • 层间透明性:上层无需知道下层的具体实现,只需通过统一的服务接口使用下层功能(如浏览器(应用层)只需调用TCP协议的接口发送数据,无需关心IP怎么寻址、网线怎么传比特流);
  • 跨设备同层通信:两台设备的同一层次之间遵循相同的协议,即「同层通信」(如发送方的传输层和接收方的传输层都遵循TCP协议,才能互相理解数据)。

核心作用

  • 降低开发复杂度:各层协议可独立开发、升级、替换(如升级HTTP1.1到HTTP2,不影响传输层TCP的使用);
  • 提升兼容性:不同厂商的设备只需遵循同一层的协议标准,即可互相通信(如华为路由器和思科路由器都遵循IP协议,可互相转发数据);
  • 便于问题定位:分层后可快速定位网络故障(如物理层故障是网线断了,网络层故障是IP寻址失败,应用层故障是HTTP请求报错)。

封装

核心定义

封装(Encapsulation)是指数据在发送端从上层到下层传递的过程中,每一层都会在接收到的上层数据基础上,添加本层的「协议头部(Header)」(部分层还会添加尾部(Trailer)),最终形成适合物理层传输的二进制比特流的过程。

简单说:封装就是「层层打包」,每一层都给数据加上自己的“标识头”,让接收方能按头识别协议、解析数据。

封装的具体过程

以“小明用浏览器(应用层)发送HTTPS请求(TCP传输)到百度服务器”为例,从应用层物理层的封装步骤如下,每层数据都有专属名称

步骤1:应用层——生成「应用数据(Application Data)」

浏览器(HTTPS)根据业务逻辑生成原始数据(如“请求百度首页的指令”),这部分数据是纯业务数据,无任何网络协议头。

步骤2:传输层——添加「TCP头」,封装为「段(Segment)」

传输层(TCP)接收到应用数据后,添加TCP头部(包含源端口、目的端口、序列号、确认号、标志位等核心字段),将应用数据封装为TCP段

  • 核心作用:通过端口定位应用,通过序列号/确认号保证数据可靠传输。

步骤3:网际层(网络层)——添加「IP头」,封装为「数据包(Datagram)」

网际层接收到TCP段后,添加IP头部(包含源IP、目的IP、协议字段、TTL、校验和等核心字段),将TCP段封装为IP数据包

  • 核心作用:通过源IP/目的IP定位设备,通过「协议字段」标识上层使用的传输协议(如0x06表示TCP,0x11表示UDP)。

步骤4:网络接口层——分两步,封装为「帧(Frame)」

网络接口层分为数据链路层物理层,是封装的最后一步:

  1. 数据链路层接收到IP数据包后,添加MAC头部MAC尾部
    • MAC头部:包含源MAC地址、目的MAC地址、类型字段(标识上层协议,如0x0800表示IP);
    • MAC尾部:包含校验和(FCS),用于检测帧在局域网传输中的差错;
      封装后形成以太网帧
  2. 物理层接收到以太网帧后,将其转换为二进制比特流(0和1),并按照物理介质的标准(如RJ45)在物理层(网线/光纤)上传输。

封装的核心特点

  • 从上到下,层层加头(部分层加尾),数据的整体长度逐渐增加;
  • 每一层的头部都包含本层的核心协议字段,是接收方解析数据的关键;
  • 上层数据作为下层的「数据体」:TCP段的整体是IP数据包的数据体,IP数据包的整体是以太网帧的数据体,层层嵌套。

封装过程简化示意图

应用数据(纯业务数据)
  ↓(加TCP头)
TCP段 = TCP头 + 应用数据
  ↓(加IP头)
IP数据包 = IP头 + TCP段
  ↓(加MAC头+MAC尾)
以太网帧 = MAC头 + IP数据包 + MAC尾
  ↓(转二进制)
比特流(物理层传输)

分用

核心定义

分用(Demultiplexing)是封装的逆过程,指数据在接收端从下层到上层传递的过程中,每一层都会根据本层的协议头部字段,解析并剥离本层的头部(和尾部),将核心数据向上层传递,最终将原始应用数据交给目标应用进程的过程。

简单说:分用就是**「层层拆包」**,每一层根据自己的“标识头”识别数据、拆包,直到将原始数据交给应用。

分用的具体过程(以TCP/IP四层模型+接收HTTP请求为例)

以“百度服务器接收小明的HTTPS请求”为例,从物理层应用层的分用步骤如下:

步骤1:物理层——接收比特流,转换为以太网帧

物理层接收到网线/光纤传来的二进制比特流后,按照物理介质标准转换为以太网帧,并传递给数据链路层。

步骤2:数据链路层——剥离MAC头/尾,传递IP数据包

数据链路层解析以太网帧的MAC头部MAC尾部

  1. 检查目的MAC地址是否为自身MAC地址(或广播地址),如果不是则丢弃该帧;
  2. 检查MAC尾部的校验和(FCS),检测帧是否在传输中出错,出错则丢弃;
  3. 剥离MAC头和MAC尾,将中间的IP数据包传递给网际层(网络层)。

步骤3:网际层——剥离IP头,传递TCP段

网际层解析IP数据包的IP头部

  1. 检查目的IP地址是否为自身IP地址(或组播/广播地址),否则丢弃;
  2. 检查IP头部校验和,检测数据包是否出错,出错则丢弃;
  3. 根据协议字段识别上层传输协议(如0x06为TCP);
  4. 剥离IP头,将中间的TCP段传递给传输层。

步骤4:传输层——剥离TCP头,传递应用数据

传输层解析TCP段的TCP头部

  1. 根据目的端口号定位目标应用进程(如443对应HTTPS服务);
  2. 检查序列号、确认号等字段,完成TCP的可靠传输校验(如重传丢失的段、排序乱序的段);
  3. 剥离TCP头,将中间的原始应用数据传递给应用层的HTTPS进程。

步骤5:应用层——解析应用数据,处理业务逻辑

应用层(HTTPS)接收到原始应用数据后,根据HTTPS/HTTP协议解析数据(如“请求首页的指令”),并执行对应的业务逻辑(如返回百度首页的HTML数据)。

分用的核心特点

  • 从下到上,层层拆包,剥离本层头部(和尾部),数据的整体长度逐渐减少;
  • 每一层都通过本层协议头部的「特征字段」实现分用(如IP头的协议字段、TCP头的目的端口、MAC头的目的MAC);
  • 分用的关键是「唯一标识匹配」:接收方的每一层都要通过头部字段匹配到自身的协议/进程,否则数据会被丢弃。
文件IO 2026-01-30

评论区