从OSI到TCP/IP:网络协议的演变与作用
个人主页:chian-ocean
文章专栏-NET
从OSI到TCP/IP:网络协议的演变与作用
- 个人主页:chian-ocean
- 文章专栏-NET
- 前言
- 网络发展
- LAN
- WAN
- 协议
- 举个例子:
- 协议的产生
- 背景
- 协议的标准化
- OSI模型参考
- OSI各个分层的作用
- 各层次的功能简介
- TCP/IP协议
- TCP/IP发展历史
- TCP/IP协议发展历史
- TCP/IP的标准化
- TCP/IP的具体含义
- TCP/IP分层
- TCP/IP和OSI模型的对比
- 数据是如何传输的
- 数据压缩过程
- 压缩过程示例:
- 数据解包过程
- 解包过程示例:
前言
在现代社会,计算机网络已成为不可或缺的基础设施,深刻地影响着我们的工作、生活、学习和交流方式。从最初的局域网到如今的全球互联网,网络技术的发展和普及已经打破了时空的界限,将世界各地的人们和资源紧密地联系在一起。无论是在日常生活中的社交互动,还是在全球范围内的信息交流和经济活动中,网络都发挥着举足轻重的作用。
网络发展
起初计算机,以单机模式被使用(也叫做独立模式),随着时间的退役,人们已经不局限于单机模式,而是将各个计算机联系到一起,形成一个计算机网络
以网络连接的计算机:
LAN
**局域网(LAN)**是一个相对较小范围的网络,通常在一个有限的地理区域内使用,如家庭、办公室、学校或企业等。局域网允许在物理距离较近的设备之间进行高速数据传输和共享资源。
WAN
**广域网(WAN)**是一种覆盖广泛地理区域的计算机网络,它通常可以跨越城市、国家,甚至全球。WAN的主要功能是将多个局域网(LAN)或城市网(MAN)连接在一起,形成一个覆盖范围广泛的通信网络。
计算机使用模式的演变:
年代 | 内容 |
---|---|
20世纪50年代 | 批处理时代 |
20世纪60年代 | 分时系统时代 |
20世纪70年代 | 计算机间通信时代 |
20世纪80年代 | 计算机网络时代 |
20世纪90年代 | 互联网普及及时代 |
2000年 | 以互联网为中心的时代 |
2010年 | 无论何时何地—皆为TCP/IP的网络时代 |
协议
协议,通俗来说,就是一套大家约定好的规则,用来帮助不同的计算机、手机或其他设备之间进行交流。就像我们与别人沟通时需要使用共同的语言一样,计算机和设备在互相传输数据时,也需要遵循特定的规则,这些规则就是协议。
举个例子:
假设你和朋友通过手机聊天,你们需要遵循一些“约定”,比如:
- 你们用某种语言(比如中文或英文)交流。
- 你发送消息时需要先输入文字,然后点击“发送”。
- 你们有约定好的表情符号,或者什么时候使用语音消息。
协议的产生
背景
1974年,IBM公司发布了SNA,将本公司的计算机通信技术作为系统化网络体系结构公之于众。从此,计算机厂商也纷纷发布各自的网络体系结构,引发了众多协议的系统化进程。然而,各家厂商的各种网络体系结构、各种协议之间并不相互兼容。即使是从物理层面上连接了两台异构的计算机,由于它们之间采用的网络体系结构不同,支持的协议不同,仍然无法实现正常的通信。
这就是方言和普通话的区别:
协议的标准化
为了解决异构的的问题,ISO(International Organization for Standardization)国际标准化组织,对通信系统做了标准化OSI开放系统互联,Open Systems Interconnection
OSI模型参考
在1984年提出的一种网络通信的标准化框架,旨在为计算机网络通信提供一个统一的、系统化的标准。OSI模型将计算机网络通信过程分为七个不同的层次,每一层都负责不同的功能,并且每层之间相互独立,提供特定的服务。
OSI模型终究是一个模型,,但是对各层做了一系列的解释,但是并没有对协议和接口做了详细的解释,对于学习是起到了很好的引导作用。
OSI各个分层的作用
各层次的功能简介
层次名称 | 功能 | 每层功能概览 |
---|---|---|
应用层 | 针对特定应用的协议 | 电子邮件、远程登录、文件传输协议等应用的协议 |
表示层 | 设备间数据格式和网络标准格式的转换 | 接收不同数据格式的信号,转换成标准格式,如文本流、图像、声音等 |
会话层 | 建立、管理和终止会话连接 | 管理会话的开始与结束,控制数据流 |
传输层 | 传输数据流的控制,确保数据的可靠传输 | 负责建立连接、管理连接的数量以及连接的特性 |
网络层 | 地址管理与路由选择 | 负责数据包通过不同路由到达目标设备 |
数据链路层 | 设备之间的连接和数据传输 | 对数据进行封装为帧,并确保数据能够无误地传输 |
物理层 | 物理设备的电信号传输 | 将数据以比特流的形式通过物理介质(如电缆、光纤、无线信号)传输 |
TCP/IP协议
TCP/IP协议(Transmission Control Protocol/Internet Protocol)是用于计算机网络中通信的一组协议,它是现代互联网和局域网中最广泛使用的协议。TCP/IP协议确保了不同设备之间的通信,使得全球各地的计算机可以通过互联网连接和互相通信。
TCP/IP发展历史
TCP/IP协议发展历史
年份 | 事件 |
---|---|
20世纪60年代后半叶 | 应DoD要求,美国开始进行通信技术相关的研发。 |
1969年 | ARPANET诞生。开发分组交换技术。 |
1972年 | ARPANET取得初步成功。扩展到50个节点。 |
1975年 | TCP/IP诞生。 |
1982年 | TCP/IP规范出台。UNIX是最早开始实现TCP/IP协议的系统。 |
1983年 | ARPANET决定正式启用TCP/IP作为通信协议。 |
1989年左右 | 局域网上的TCP/IP应用迅速扩展。 |
1990年左右 | 不论是局域网还是广域网,都开始倾向于使用TCP/IP。 |
1995年左右 | 互联网开始商用,互联网服务供应商的数量剧增。 |
1996年 | IPv6规范出台,载入RFC。(后于1998年修订) |
TCP/IP的标准化
20世纪90年代,ISO开展了OSI这一国际的标准化,但是OSI并没有得到普及,真正被广泛使用的标准是TCP/IP。
TCP/IP的具体含义
TCP/IP 不仅仅是 TCP 和 IP: 文中首先指出,有些人可能会认为 TCP/IP 仅仅是指两个协议:TCP(传输控制协议)和 IP(互联网协议)。这种理解是片面的。
TCP/IP 实际上是一个协议族: 文章进一步解释,TCP/IP 实际上指的是一个由多个协议组成的协议族,这些协议共同支持互联网的正常运行。在通信过程中,TCP/IP 协议族中的多个协议被用来完成不同的任务。
涉及的具体协议: 文中列举了几个属于 TCP/IP 协议族 的协议:
- IP 协议(包括 ICMP):用于路由和数据包的传输。
- TCP 协议:保证数据传输的可靠性。
- UDP 协议:提供一种不可靠但速度较快的数据传输方式。
- TELNET 协议:用于远程登录。
- FTP 协议:用于文件传输。
- HTTP 协议:用于网页浏览和数据交换。
TCP/IP分层
TCP/IP和OSI模型的对比
- 应用层(Application Layer):负责提供网络服务给用户应用程序,如HTTP、FTP、DNS等协议。它处理数据的表示、编码和加密等任务,确保应用之间的通信。
- 传输层(Transport Layer):负责提供端到端的通信服务,确保数据传输的可靠性和顺序。主要协议有TCP(面向连接、可靠)和UDP(无连接、不可靠)。
- 网络层(Network Layer):负责将数据包从源地址传输到目的地址,主要通过路由器实现数据的路由和转发。主要协议是IP(互联网协议)。
- 数据链路层(Data Link Layer):负责在物理设备之间传输数据帧,提供错误检测和纠正。协议如Ethernet、Wi-Fi等。
数据是如何传输的
数据压缩过程
数据压缩是指在传输数据之前,减少数据的大小,从而提高网络传输的效率,降低带宽消耗。压缩通常发生在 应用层,因为它与具体应用数据内容(如文本、图片、视频等)相关。
压缩过程示例:
- 应用层(应用数据):
- 比如发送一封邮件,内容包括文本、附件等。此时,邮件应用(例如电子邮件客户端)会将文本内容和附件数据压缩成一个更小的文件。例如,使用 gzip 或 zip 等压缩算法。
- 传输层(TCP):
- 压缩后的数据被送到传输层(TCP层)。TCP层会将压缩后的数据切分成更小的段(Segment),每个段包含了头部信息(如序列号、确认号等)和数据部分。TCP 本身不会对数据进行压缩,它只是将压缩后的数据封装在 TCP 包中进行传输。
- 网络层(IP):
- 在 IP 层,TCP 数据包被封装到 IP 包中。IP 层负责提供路由和地址信息。此时,压缩数据仍然存在,只是被封装在不同的协议头中。IP 层主要负责确保数据包的正确传输到目的地。
- 数据链路层(链路层):
- 数据链路层负责将 IP 包进一步封装成帧,以便在物理网络上传输。数据链路层对数据进行帧封装,包括 MAC 地址等网络硬件信息。
数据解包过程
当压缩数据到达目标主机时,解包过程会逐层进行,从最底层到最顶层逐层解封装。解包的目的是将数据从封装的格式中提取出来,交给上层协议进行处理。
解包过程示例:
- 物理层:
- 数据到达目标主机后,物理层负责接收来自网络中的信号,并将其转化为数字数据流。此时的数据是以电信号或光信号的形式传输,物理层的任务就是把它们转化成二进制数据供下层使用。
- 数据链路层:
- 数据链路层会解封装接收到的帧,提取出其中的 IP 包和相关的链路层信息(如 MAC 地址等)。如果数据是通过以太网传输的,数据链路层会将以太网帧的头部信息去除,只保留网络层的数据(即 IP 包)。
- 网络层(IP 层):
- 在网络层,IP 包会被解封装。此时,主机会检查目的 IP 地址,以确定该数据包是否是发送给自己的。如果 IP 地址匹配,主机会将数据包传递到上层(传输层)。IP 层会去掉 IP 头部,只留下 TCP 包裹的数据。
- 传输层(TCP 层):
- TCP 层会对数据进行解封装,移除 TCP 头部信息(如序列号、确认号等),并将数据传递给应用层。传输层的任务是确保数据完整且按顺序到达,TCP 层会进行数据重组,如果需要,还会做数据的重发。
- 应用层:
- 最后,数据到达应用层。应用层会提取数据并解压(如果压缩了)。例如,如果传输的是一封经过压缩的邮件,应用层会用相应的解压工具(如 gzip)对数据进行解压,恢复到原始的邮件内容。
相关文章:

从OSI到TCP/IP:网络协议的演变与作用
个人主页:chian-ocean 文章专栏-NET 从OSI到TCP/IP:网络协议的演变与作用 个人主页:chian-ocean文章专栏-NET 前言网络发展LANWAN 协议举个例子: 协议的产生背景 协议的标准化OSI模型参考OSI各个分层的作用各层次的功能简介 TCP/…...

Stream流性能分析及优雅使用
文章目录 摘要一、Stream原理解析1.1、Stream总概1.2、Stream运行机制1.2.1、创建结点1.2.1、搭建流水线1.2.3、启动流水线 1.3、ParallelStream 二、性能对比三、优雅使用3.1 Collectors.toMap()3.2 findFirst(),findAny()3.3 增删元素3.4 ParallelStream 四、总结…...
iOS 电子书听书功能的实现
在 iOS 应用中实现电子书听书(文本转语音)功能,可以通过系统提供的 AVFoundation 框架实现。以下是详细实现步骤和代码示例: 核心步骤: 导入框架创建语音合成器配置语音参数实现播放控制处理后台播放添加进度跟踪 完整…...

【和春笋一起学C++】(十七)C++函数新特性——内联函数和引用变量
C提供了新的函数特性,使之有别于C语言。主要包括: 内联函数;按引用传递变量;默认参数值;函数重载(多态);模版函数; 因篇幅限制,本文首先介绍内联函数和引用…...
GitHub 趋势日报 (2025年06月02日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 1339 prompt-eng-interactive-tutorial 1080 courses 624 onlook 596 system-desi…...
卫星的“太空陀螺”:反作用轮如何精准控制姿态?
卫星的“太空陀螺”:反作用轮如何精准控制姿态? 在距地面500公里的轨道上,一颗遥感卫星正以7.8km/s的速度飞越目标区域。此时星载计算机发出指令:“滚转15并对准目标点”。短短数秒后,数吨重的卫星如同被无形之手推动般…...

proteus新建工程
1 点击新建工程 2 输入项目名,选择工程文件夹 3 下一步 4 不创建pcb 5 直接下一步 6 点击完成 7 创建完毕...
缓存击穿 缓存穿透 缓存雪崩
缓存击穿 缓存穿透 缓存雪崩 在日常开发中,我们经常会在后端引入 Redis 缓存来减轻数据库压力、提高访问性能。本文将逐点介绍 Redis 缓存常见问题及解决策略。 缓存穿透 问题描述: 缓存穿透指的是客户端请求的数据,在缓存中和数据库中都不…...

RTC实时时钟DS1338Z-33/PT7C433833WEX国产替代FRTC1338S
FRTC1338S是NYFEA徕飞公司推出的一种高性能的实时时钟芯片,它采用了SOP8封装技术,这种技术因其紧凑的尺寸和出色的性能而被广泛应用于各类电子设备中。 FRTC1338S串行实时时钟(RTC)是一种低功耗的全二进制编码十进制(BCD)时钟/日历外加56字节的非易失性…...

Redis命令使用
Redis是以键值对进行数据存储的,添加数据和查找数据最常用的2个指令就是set和get。 set:set指令用来添加数据。把key和value存储进去。get:get指令用来查找相应的键所对应的值。根据key来取value。 首先,我们先进入到redis客户端…...

【免费数据】1980-2022年中国2384个站点的水质数据
水,是生命之源,关乎着地球上每一个生物的生存与发展。健康的水生生态系统维持着整个水生态的平衡与活力;更是确保人类能持续获得清洁水源的重要保障。水质数据在水质研究、海洋生物量测算以及生物多样性评估等诸多关键领域都扮演着举足轻重的…...
Java基础 Day28 完结篇
一、方法引用 对 Lambda 表达式的进一步简化 方法引用使用一对冒号 :: Tips:静态方法用类名加双冒号,非静态方法用对象名加双冒号 通过方法的名字来指向一个方法 参数可推导即可省略 可以使语言的构造更紧凑简洁,减少冗余代码 二、单元…...
小红薯商品搜索详情分析与实现
前言 小红书作为国内知名的社交电商平台,拥有丰富的商品数据和用户评价信息。对于数据分析师、产品经理或电商从业者来说,能够获取小红书的商品数据具有重要的商业价值。本文将详细介绍如何通过逆向工程实现小红书商品搜索API的调用。 免责声明:本文仅用于技术学习和研究目…...

Git 极简使用指南
Git 是一个强大的分布式版本控制系统,但入门只需要掌握几个核心概念和命令。本指南旨在帮助你快速上手,处理日常开发中最常见的 80% 的场景。 核心概念 仓库 (Repository / Repo): 你的项目文件夹,包含了项目的所有文件和完整的历史记录。…...

力扣刷题Day 69:搜索二维矩阵(74)
1.题目描述 2.思路 首先判断target是否有可能在矩阵的某一行里,没可能直接返回False,有可能就在这一行里二分查找。 3.代码(Python3) class Solution:def searchMatrix(self, matrix: List[List[int]], target: int) -> boo…...
c#压缩与解压缩-SharpCompress
SharpCompress SharpCompress 是一个开源项目库,能够处理文件。c#库对于压缩已经有很多,可以随意选择,看了SharpCompress感觉比较简洁,还是介绍给大家。 项目地址: sharpcompress 项目使用 引入nuget包࿱…...
Neo4j 安全深度解析:原理、技术与最佳实践
在当今数据驱动的世界中,图数据库承载着关键的关系信息,其安全性至关重要。Neo4j 提供了一套多层次、纵深防御的安全体系。 Neo4j 的安全体系提供了从认证授权到数据加密、审计追溯的完整解决方案。安全不是单一功能而是一种持续状态,其有效…...

MySQL指令个人笔记
MySQL学习,SQL语言笔记 一、MySQL 1.1 启动、停止 启动 net start mysql83停止 net stop mysql831.2 连接、断开 连接 mysql -h localhost -P 3306 -u root -p断开 exit或者ctrlc 二、DDL 2.1 库管理 2.1.1 直接创建库 使用默认字符集和排序方式…...

2022年 国内税务年鉴PDF电子版Excel
2022年 国内税务年鉴PDF电子版Excelhttps://download.csdn.net/download/2401_84585615/89784658 https://download.csdn.net/download/2401_84585615/89784658 2022年国内税务年鉴是对中国税收政策、税制改革和税务管理实践的全面总结。这份年鉴详细记录了中国税收系统的整体状…...

基于Java的OPCDA采集中间件
1.软件功能及技术特点简介: 软件功能及技术特点简介: OPCDA是基于Java语言开发的OPC client(OPC客户端)跨平台中间件软件,他支持OPC SERVER的OPC DA1.0/2.0/3.0。OPCDA实时采集数据(包括实时数据、报警数…...
基于PyQt5的相机手动标定工具:原理、实现与应用
基于PyQt5的相机手动标定工具:原理、实现与应用 一、背景介绍二、功能详解与实现原理2.1 图像加载与预处理2.2 交互式透视调整2.3 透视变换数学原理2.4 图像拼接核心技术2.5 用户界面优化细节三、完整使用流程四、应用场景实例五、技术优势分析六、代码七、总结一、背景介绍 …...

vue2 项目中 npm run dev 运行98% after emitting CopyPlugin 卡死
今天在运行项目时,发现如下问题: 开始以为是node_modules依赖的问题,于是重新 npm install,重启项目后还是未解决。 在网上找了一圈发现有人说是 require引入图片地址没有写。在我的项目中排查没有这个问题,最后发现某…...

JavaScript 性能优化实战:从原理到框架的全栈优化指南
在 Web 应用复杂度指数级增长的今天,JavaScript 性能优化已成为衡量前端工程质量的核心指标。本文将结合现代浏览器引擎特性与一线大厂实践经验,构建从基础原理到框架定制的完整优化体系,助你打造高性能 Web 应用。 一、性能优化基础&#x…...

2025年- H61-Lc169--74.搜索二维矩阵(二分查找)--Java版
1.题目描述 2.思路 方法一: 定义其实坐标,右上角的元素(0,n-1)。进入while循环(注意边界条件,行数小于m,列数要>0)从右上角开始开始向左遍历(比当…...
微服务商城-用户微服务
数据表 用户表 CREATE DATABASE user; USE user;CREATE TABLE user (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 用户ID,username varchar(50) NOT NULL DEFAULT COMMENT 用户名,password varchar(50) NOT NULL DEFAULT COMMENT 用户密码,MD5加密…...
数学复习笔记 26
5.25:这题还是有点难度的。主要是出现了新的知识点,我现在还没有那么熟悉这个新的知识点。这块就是,假设一个矩阵可以写成一个列向量乘以一个行向量的形式,这两个向量都是非零向量,那么这个矩阵的秩等于一。这个的原理…...
创建型-设计模式
文章目录 单例模式工厂模式建造者模式原型模式 单例模式 单例模式有饿汉式 和 懒汉式。这个我觉得无需多言,每个学过Java的都知道。 1.单例的使用:我一般就是用饿汉式,因为App开发的开发一般数据处理并不复杂,所以直接使用饿汉式…...
移动AI神器GPT Mobile:多模型自由切换
GPT Mobile是什么 GPT Mobile是一款开源的本地移动部署AI工具,主要用于安卓设备。以下是其相关介绍: 功能特点 多模型交互:支持与多个大型语言模型(LLM)同时进行对话,用户导入相应的API密钥,就可连接OpenAI、Anthropic、Google、Ollama等平台,还能根据需求自由切换不同…...

【黄金评论】美元走强压制金价:基于NLP政策因子与ARIMA-GARCH的联动效应解析
一、基本面:多因子模型解析黄金承压逻辑 1. 政策冲击因子驱动美元强势 通过NLP模型对关税政策文本进行情感分析,构建政策不确定性指数(PUI)达89.3,触发美元避险需求溢价。DSGE模型模拟显示,钢铁关税上调至…...
ubutu修改网关
修改Netplan配置以指定静态网关 1. 编辑Netplan配置文件 打开Netplan配置文件(通常位于 /etc/netplan/01-netcfg.yaml 或类似路径): sudo nano /etc/netplan/01-netcfg.yaml 2. 修改配置文件 在DHCP配置基础上,添加静态网关和…...