网络分层模型( OSI、TCP/IP、五层协议)
1、网络分层模型
计算机网络是一个极其复杂的系统。想象一下最简单的情况:两台连接在网络上的计算机需要相互传输文件。不仅需要确保存在一条传输数据的通路,还需要完成以下几项工作:
- 发起通信的计算机必须激活数据通路,这包括发出信令以确保数据能够在通路上正确发送和接收。
- 需要告知网络如何识别接收数据的计算机。
- 发起通信的计算机必须确认对方计算机已开机并且连接到网络。
- 应用程序需要明确对方计算机中的文件管理程序是否准备好接收和存储文件。
- 如果计算机的文件格式不兼容,至少一台计算机需要进行格式转换。
- 需要确保针对各种差错和意外事件(如数据传输错误、重复或丢失,网络结点交换机故障等)有可靠的措施,以确保对方计算机最终能够正确接收文件。
因此,相互通信的两个计算机系统必须高度协调合作,这种协调是相当复杂的。为了设计这样复杂的计算机网络,早在ARPANET设计初期就提出了分层方法。通过分层,庞大而复杂的问题被转化为较小的局部问题,更易于研究和解决。1974年,IBM公司推出了系统网络体系结构SNA(System Network Architecture),这一网络标准也是按照分层方法制定的。至今,使用IBM大型机构建的专用网络仍在使用SNA。随后,其他公司也纷纷推出具有不同名称的体系结构。
全球经济的发展导致对不同网络体系结构的用户迫切希望能够互相交换信息。为实现不同计算机网络体系结构的互连,国际标准化组织ISO于1977年设立了专门机构。他们提出了试图使世界范围内各种计算机互连成网的标准框架——开放系统互连基本参考模型OSI/RM(Open Systems Interconnection Reference Model),简称OSI。"开放"指的是非独家垄断。因此,只要遵循OSI标准,一个系统就可以与世界上任何其他遵循相同标准的系统进行通信。
2、网际互联及OSI七层模型
开放系统互连基本参考模型OSI/RM(Open Systems Interconnection Reference Model)包括七层模型,分别为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。


-
物理层(Physical Layer)
- 作用:主要任务是在物理媒体上实现比特流的透明传输
- 主要功能:定义接口特性、定义传输模式(单工、半双工、双工)、定义传输速率、比特同步、比特编码
- 传输单位:bit(比特)
- 典型协议:Rj45、802.3
- 设备:集线器(Ethernet Hub)、转发器(Repeater);
- 备注:没有寻址的概念;
-
数据链路层(Data Link Layer)
- 作用:主要任务是把网络层传下来的数据报组装成帧;
- 传输单位:frame(帧)
- 主要功能:成帧(定义帧的开始和结束)、差错控制(帧错+位错)、流量控制、访问(接入)控制(控制对信道的访问)
- 典型协议:SDLC、HDLC、PPP、STP
- 设备:以太网交换机(Ethernet Switch)、桥接器(bridge,网桥);
- 备注:交换机通过MAC地址转发数据,逻辑链路控制;
-
网络层(Network Layer)
- 作用:主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务;
- 主要功能:路由选择、流量控制、差错控制、拥塞控制;
- 典型协议:IP、IPX、ICMP、IGMP、ARP、RARP、OSPF;
- 传输单位:packet(数据包);
- 设备:路由器(Router)
- 备注:实现寻址
-
传输层(Transport Layer)
- 作用:主要任务是负责主机中两个进程的通信,即端到端的通信;
- 主要功能:可靠传输、差错控制、流量控制、复用分用;
- 典型协议:TCP、UDP、SPX、port(65535个端口)、EIGRP、OSPF;
- 传输单位:fragment(段);
- 设备:网关(gateway);
- 备注:负责网络传输和会话建立;
-
会话层(Session Layer)
- 作用:主要任务是负责在数据传输中设置和维护计算机网络中两台计算机之间的通信连接
- 主要功能:建立、管理、终止会话;使用校验点可使会话在通信失效时从校验点/同步点继续恢复通信,实现数据同步;
- 典型协议:NFS、SQL、ASP、PHP、JSP、RSVP(资源源预留协议);
- 传输单位:message(报文);
- 设备:网关(gateway);
- 备注:负责会话建立;
-
表示层(Presentation Layer)
- 作用:主要任务是用于把数据转换为能与接收者的系统格式兼容并适合传输的格式;
- 典型协议:ASCII, JPEG. PNG, MP3. WAV, AVI;
- 传输单位:message(报文);
- 设备:网关(gateway);
- 备注:可以提供加密服务;
-
应用层(Application Layer)
- 作用:主要任务是控制应用程序;
- 典型协议:telnet, SSH, HTTP, FTP, SMTP, RIP, BGP
- 传输单位:message(报文);
- 设备:网关(gateway);
- 备注:为应用程序提供网络服务;
OSI模型的传输数据封装过程如下:

3、TCP/IP 四层模型:
ARPA 在研究 ARPAnet 时提出了 TCP/IP 模型,模型从低到高依次为网络接口层(对应 OSI
参考模型中的物理层和数据链路层)、网际层、传输层和应用层(对应 OSI参考模型中的会话层
表示层和应用层)。TCP/P 由于得到广泛应用而成为事实上的国际标准。

-
应用层(Application Layer):应用层是最靠近用户的一层,负责处理特定应用程序的通信细节。在这一层,各种应用程序通过使用不同的协议来实现数据交换,比如HTTP(超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议)等。
-
传输层(Transport Layer):传输层主要负责在网络中传输数据。其中的TCP协议提供了可靠的数据传输机制,确保数据的完整性和顺序性;而UDP协议提供了一种更快速但不可靠的传输方式。
-
网络层(Network Layer):网络层负责在不同网络之间传输数据包。其中的IP协议定义了数据包的传输规则和地址分配,确保数据能够正确地从源主机传输到目标主机。
-
数据链路层(Data Link Layer):数据链路层负责在直接相连的两个节点之间传输数据。它将数据包转换为比特流,并控制数据在物理介质上传输的方式。
TCP/IP模型与OSI模型相比,将传输层和网络层合并到一起,更加符合实际网络通信的需求。因此,在实际应用中,TCP/IP模型被广泛应用于互联网和局域网等网络环境中,成为了网络通信的基础。
TCP/IP模型的传输数据封装过程如下:

4、五层参考模型:
OSI的七层协议体系结构提出的概念清晰,理论完整,但它既复杂又不够实用。相比之下,TCP/IP体系结构则更简洁实用,并且在实际应用中得到了广泛应用。TCP/IP是一个四层体系结构,包括应用层、运输层、网际层和网络接口层(网际层的命名强调解决不同网络间的互连问题)。
然而,实质上,TCP/IP只有最上面的三层被广泛使用,因为最底层的网络接口层并没有明确定义的内容。因此,在学习计算机网络原理时,通常采取综合OSI和TCP/IP的优点的办法,采用一种只有五层协议的体系结构。这种简化的五层模型既简洁又能很清楚地阐述概念。为了方便,有时也将最底下的两层称为网络接口层。
5层网络模型是一种简化后的网络体系结构,通常用于描述计算机网络中不同层级的功能和协议。这种模型包括以下五个层级:
-
应用层(Application Layer):应用层是最靠近用户的一层,负责处理特定应用程序的通信细节。在这一层,各种应用程序通过使用不同的协议来实现数据交换,比如HTTP(超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议)等。
-
传输层(Transport Layer):传输层主要负责在网络中传输数据。其中的TCP(Transmission Control Protocol)提供了可靠的数据传输机制,确保数据的完整性和顺序性;而UDP(User Datagram Protocol)提供了一种更快速但不可靠的传输方式。
-
网络层(Network Layer):网络层负责在不同网络之间传输数据包。其中的IP(Internet Protocol)定义了数据包的传输规则和地址分配,确保数据能够正确地从源主机传输到目标主机。
-
数据链路层(Data Link Layer):数据链路层负责在直接相连的两个节点之间传输数据。它将数据包转换为比特流,并控制数据在物理介质上传输的方式。
-
物理层(Physical Layer):物理层是网络模型的最底层,负责传输原始比特流,将数据转换为电信号或光信号,并在物理媒介(如网线、光纤)中进行传输。
这种5层网络模型综合了OSI模型和TCP/IP模型的优点,简化了网络体系结构并且清晰地划分了不同层级的功能。通过这种模型,我们可以更好地理解和描述计算机网络中各个部分的作用和协作关系。
5层网络模型的传输数据封装过程如下:

5. OSI、TCP/IP、五层协议的体系结构对比

相关文章:
网络分层模型( OSI、TCP/IP、五层协议)
1、网络分层模型 计算机网络是一个极其复杂的系统。想象一下最简单的情况:两台连接在网络上的计算机需要相互传输文件。不仅需要确保存在一条传输数据的通路,还需要完成以下几项工作: 发起通信的计算机必须激活数据通路,这包括发…...
前端开发 之 15个页面加载特效上【附完整源码】
文章目录 一:彩球环绕加载特效1.效果展示2.HTML完整代码 二:跷跷板加载特效1.效果展示2.HTML完整代码 三:两个圆形加载特效1.效果展示2.HTML完整代码 四:半环加载特效1.效果展示2.HTML完整代码 五:音乐波动加载特效1.效…...
Spring Boot使用JDK 21虚拟线程
JDK 21引入的虚拟线程(Virtual Threads)是 Project Loom 的一部分,旨在显著简化并发编程并提高 Java 应用的可扩展性。以下是虚拟线程的主要特点: 1. 概念 虚拟线程是轻量级线程,与传统的操作系统线程不同࿰…...
《从0到1常用Map集合核心摘要 + 不深不浅底层核心》
《从0到1常用Map集合核心摘要不深不浅底层核心》 前置知识 什么是键值对 键值对是一种数据结构,键是唯一标识,值是对应数据,用来快速查找信息。例: {"name": "Alice"},键是name,…...
12 设计模式之工厂方法模式
一、什么是工厂方法模式? 1.定义 在软件开发中,设计模式 是解决常见软件设计问题的最佳实践。而 工厂方法模式(Factory Method Pattern) 作为创建型设计模式之一,常常被用来解决对象创建问题。它通过将对象的创建交给…...
spaCy 入门与实战:强大的自然语言处理库
spaCy 入门与实战:强大的自然语言处理库 spaCy 是一个现代化、工业级的自然语言处理(NLP)库,以高效、易用和功能丰富著称。它被广泛应用于文本处理、信息提取和机器学习任务中。本文将介绍 spaCy 的核心功能,并通过一…...
python包的管理和安装——笔记
1.列出包 pip list pip freeze 用这2个可以查看当前python 下所有的包和版本,还有下载地址 如果只是想导出当前的环境 可以用 2.安装pipreqs pip install pipreqs,pipreqs ./可以导出当前项目的包这个包 遇到编码报错 pipreqs ./ --encodingutf8 p…...
Vue前端页面内嵌套本项目iframe窗口的通信传输方式
一、目的 想要在iframe中使用本项目页面、并能够与其父页面组件实现实时通信。Vue前端页面内嵌套本项目iframe窗口的通信传输方式-星林社区 https://www.jl1mall.com/forum/PostDetail?postId20241202172800023969 二、iframe通信方式 1.接收消息 页面需要监听 message 事件…...
【WEB开发.js】addEventListener事件监听器的绑定和执行次数的问题(小心踩坑)
假设我们有一个按钮,用户点击该按钮后,会选择一个文件,且我们希望每次点击按钮时只触发一次文件处理。下面我会给你一个简单的例子,展示放在函数内部和放在函数外部的区别。 1. 将事件监听器放在函数内部(问题的根源&…...
用于LiDAR测量的1.58um单芯片MOPA(一)
--翻译自M. Faugeron、M. Krakowski1等人2014年的文章 1.简介 如今,人们对高功率半导体器件的兴趣日益浓厚,这些器件主要用于遥测、激光雷达系统或自由空间通信等应用。与固态激光器相比,半导体器件更紧凑且功耗更低,这在低功率供…...
【GPT】代谢概念解读
以下是对代谢中分解代谢和合成代谢两个概念的深入解读,用简单易懂的方式展开说明: 1. 分解代谢(Catabolism) 什么是分解代谢? 分解代谢是身体把大分子“拆开”的过程。就像把一个三明治分解成面包片、肉片和菜叶&#…...
Devops-git篇-01-git环境配置
环境配置 设置用户签名 配置用户名: git config --global user.name 你的用户名 配置邮箱: git config --global user.email 注册的邮箱 配置好之后,可以用git config --global --list命令查看配置是否OK $ git config --global --list u…...
STM32 HAL库开发学习1.STM32CubeMX 新建工程
STM32 HAL库开发学习1.STM32CubeMX 新建工程 一、 STM32 CubeMX 下载二、CubeMX 功能介绍1. 固件包路径设置2. 新建工程 三、创建项目实例1. 新建项目2. GPIO 管脚设置3. GPIO 窗口配置4. 调试设置5. 时钟配置6. 项目管理(1)项目信息(2&#…...
JS学习(2)(浏览器执行JS过程、JS的ECMAScript、DOM、BOM)
目录 一、浏览器如何执行JS? (1)浏览器主要的组成部分。 1、渲染引擎。 2、JS引擎。 (2)演示。 二、JS的组成。 (1)JS主要由三部分组成。 1、JS基础。 2、JS-API。 (2)EC…...
如何解决服务器扫描出的ASP木马问题
随着互联网的发展,网站安全问题日益凸显。其中,ASP(Active Server Pages)木马因其隐蔽性和危害性成为攻击者常用的手段之一。本文将详细介绍如何检测和清除服务器上的ASP木马,以保障网站的安全。 1. ASP木马概述 ASP…...
SpringBoot 架构助力夕阳红公寓管理系统可持续发展战略
摘 要 如今社会上各行各业,都在用属于自己专用的软件来进行工作,互联网发展到这个时候,人们已经发现离不开了互联网。互联网的发展,离不开一些新的技术,而新技术的产生往往是为了解决现有问题而产生的。针对于夕阳红公…...
TCP、HTTP、RPC
一、TCP (Transmission Control Protocol) 定义 TCP(传输控制协议)是一种面向连接、可靠传输的传输层协议,用于在计算机网络中提供端到端的数据通信服务。它是互联网协议套件的一部分,与IP(互联网协议)一…...
《C++ 中 RNN 及其变体梯度问题的深度剖析与解决之道》
在当今人工智能蓬勃发展的浪潮中,递归神经网络(RNN)及其变体长短期记忆网络(LSTM)和门控循环单元(GRU)在处理序列数据方面展现出了强大的潜力。然而,当我们在 C中着手实现这些网络时…...
TypeScript 在 React 中的应用
文章目录 前言一、为什么要在 React 中使用 TypeScript?二、如何在React中使用 TypeScript三、高级类型结语 前言 随着前端开发的复杂度不断提升,开发者对于代码质量、可维护性和开发效率的要求也日益增高。TypeScript 作为一种为 JavaScript 添加静态类…...
黑马2024AI+JavaWeb开发入门Day07-部门管理-日志技术飞书作业
视频地址:哔哩哔哩 讲义作业飞书地址:day07作业 完成新增班级和查询班级的接口开发 1、ClazzController.java package org.example.controller;import lombok.extern.slf4j.Slf4j; import org.example.pojo.Clazz; import org.example.service.Clazz…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...
push [特殊字符] present
push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...
鸿蒙(HarmonyOS5)实现跳一跳小游戏
下面我将介绍如何使用鸿蒙的ArkUI框架,实现一个简单的跳一跳小游戏。 1. 项目结构 src/main/ets/ ├── MainAbility │ ├── pages │ │ ├── Index.ets // 主页面 │ │ └── GamePage.ets // 游戏页面 │ └── model │ …...
VisualXML全新升级 | 新增数据库编辑功能
VisualXML是一个功能强大的网络总线设计工具,专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑(如DBC、LDF、ARXML、HEX等),并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...
算术操作符与类型转换:从基础到精通
目录 前言:从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符:、-、*、/、% 赋值操作符:和复合赋值 单⽬操作符:、--、、- 前言:从基础到实践——探索运算符与类型转换的奥秘 在先前的文…...
图解JavaScript原型:原型链及其分析 | JavaScript图解
忽略该图的细节(如内存地址值没有用二进制) 以下是对该图进一步的理解和总结 1. JS 对象概念的辨析 对象是什么:保存在堆中一块区域,同时在栈中有一块区域保存其在堆中的地址(也就是我们通常说的该变量指向谁&…...
Python环境安装与虚拟环境配置详解
本文档旨在为Python开发者提供一站式的环境安装与虚拟环境配置指南,适用于Windows、macOS和Linux系统。无论你是初学者还是有经验的开发者,都能在此找到适合自己的环境搭建方法和常见问题的解决方案。 快速开始 一分钟快速安装与虚拟环境配置 # macOS/…...
