网络模型简介:OSI七层模型与TCP/IP模型
计算机网络是现代信息社会的基石,而网络通信的基础在于理解网络模型。网络模型是对通信过程的抽象,它帮助我们理解数据从源到目的地的传输过程。常见的网络模型有 OSI 七层模型 和 TCP/IP 模型,这两种模型在理论和实践中都起着重要作用。
一、OSI七层模型
OSI(Open Systems Interconnection)模型是由国际标准化组织(ISO)制定的网络通信标准,旨在提供一个框架,用于理解不同网络协议如何协同工作。OSI 模型将网络通信分为七个层次,每一层都完成特定的任务,并通过接口与上下层进行交互。
七层模型的层次结构:
-
物理层(Physical Layer):
- 主要负责数据的物理传输,定义了传输媒介、信号、连接方式等。常见的物理设备包括电缆、交换机、网卡等。
- 协议:Ethernet、USB、Wi-Fi(物理层协议通常较为具体,依赖于硬件实现)。
-
数据链路层(Data Link Layer):
- 负责在物理介质上可靠地传输数据帧,保证数据的完整性,并提供错误检测与纠正。数据链路层还负责物理地址(MAC 地址)的管理。
- 协议:Ethernet、PPP、HDLC、ARP。
-
网络层(Network Layer):
- 主要负责将数据包从源设备传送到目标设备,处理路径选择(路由),并解决不同网络间的通信问题。网络层的核心是 IP 协议。
- 协议:IP(IPv4、IPv6)、ICMP、ARP、RIP、OSPF。
-
传输层(Transport Layer):
- 负责在源和目标主机之间建立端到端的通信,确保数据传输的可靠性,提供错误校验和流量控制。主要包括两种传输协议:TCP 和 UDP。
- 协议:TCP、UDP、SCTP。
-
会话层(Session Layer):
- 负责建立、管理和终止会话。会话层提供了全双工、半双工或单工通信的支持,并确保数据在不同应用间能够顺利传递。
- 协议:NetBIOS、RPC、SMB。
-
表示层(Presentation Layer):
- 负责数据的格式化与转换,包括数据压缩、加密与解密。表示层确保发送方与接收方的数据格式一致。
- 协议:JPEG、MPEG、SSL/TLS。
-
应用层(Application Layer):
- 这是用户与网络进行交互的层,处理各种网络应用程序的协议,提供网络服务。常见的应用协议包括 HTTP、FTP、DNS、SMTP。
- 协议:HTTP、FTP、SMTP、DNS、POP3、IMAP。
二、TCP/IP模型
TCP/IP(Transmission Control Protocol/Internet Protocol)模型是由美国国防部制定并广泛应用于互联网通信的标准模型。TCP/IP 模型的设计更为简洁,它将原来的七层模型简化为四层。TCP/IP 模型的主要目标是确保不同类型的设备能够通过互联网相互通信。
TCP/IP模型的层次结构:
-
网络接口层(Network Interface Layer):
- 相当于 OSI 模型中的物理层和数据链路层,负责在物理媒介上传输数据包,并与网络硬件进行交互。
- 协议:Ethernet、Wi-Fi、PPP。
-
互联网层(Internet Layer):
- 相当于 OSI 模型中的网络层,主要负责路由和数据包传输,包括 IP 地址的处理。互联网层确保数据包从源到目的地的传输路径。
- 协议:IP(IPv4、IPv6)、ICMP。
-
传输层(Transport Layer):
- 对应于 OSI 模型中的传输层,负责端到端的数据传输、可靠性控制和流量管理。常见协议包括 TCP 和 UDP。
- 协议:TCP、UDP。
-
应用层(Application Layer):
- 相当于 OSI 模型中的会话层、表示层和应用层,主要处理网络应用程序之间的交互。应用层协议规定了数据如何格式化、压缩、加密等。
- 协议:HTTP、FTP、SMTP、DNS、Telnet。
三、常见协议简介
-
IP协议(Internet Protocol)
- IP 协议负责将数据包从源设备发送到目的设备,通过 IP 地址进行寻址和路由。IPv4 和 IPv6 是两种主要的 IP 协议版本。IPv4 地址是 32 位的,支持大约 43 亿个地址,而 IPv6 地址是 128 位的,支持几乎无限的地址。
-
TCP协议(Transmission Control Protocol)
- TCP 是一种面向连接、可靠的传输协议。它确保数据包按顺序到达目的地,并提供错误校验和重传机制。适用于对数据可靠性要求较高的应用,如文件传输、网页浏览等。
-
UDP协议(User Datagram Protocol)
- UDP 是一种无连接、不可靠的传输协议,它不保证数据包的顺序和到达。UDP 适用于对速度要求较高、对可靠性要求较低的应用,如视频流、在线游戏等。
-
HTTP协议(Hypertext Transfer Protocol)
- HTTP 是一种用于网页浏览的协议,通常通过端口 80 进行通信。它是无状态的,即每次请求之间没有记录。
-
FTP协议(File Transfer Protocol)
- FTP 用于在客户端和服务器之间传输文件。它支持两种工作模式:主动模式和被动模式,通常通过端口 21 进行通信。
-
DNS协议(Domain Name System)
- DNS 是一种用于将域名转换为 IP 地址的协议,类似于互联网的电话簿。它帮助用户通过域名访问网站,而不需要记住复杂的 IP 地址。
四、总结
了解 OSI 七层模型和 TCP/IP 模型是掌握计算机网络的重要基础。OSI 模型为我们提供了一个理论框架,将网络通信过程细分为七个独立的层次,而 TCP/IP 模型则更加简洁,广泛应用于实际的网络中。通过学习这些模型和协议,能够帮助我们深入理解网络的工作原理,并为解决实际问题提供理论依据。
无论你是网络工程师、系统管理员还是开发人员,熟悉这些网络模型和协议都将极大提升你的专业能力,为你在网络领域的发展打下坚实的基础。
相关文章:
网络模型简介:OSI七层模型与TCP/IP模型
计算机网络是现代信息社会的基石,而网络通信的基础在于理解网络模型。网络模型是对通信过程的抽象,它帮助我们理解数据从源到目的地的传输过程。常见的网络模型有 OSI 七层模型 和 TCP/IP 模型,这两种模型在理论和实践中都起着重要作用。 一、…...

软件测试压力太大了怎么办?
本文其实是知乎上针对一个问题的回答: 目前在做软件测试,主要负责的是手机端的项目测试,项目迭代很快,每次上线前验正式都会发现一些之前验测试包时候没有发现的问题,压力太大了,应该怎么调整 看过我之前其…...

微信小程序-点餐(美食屋)02开发实践
目录 概要 整体架构流程 (一)用户注册与登录 (二)菜品浏览与点餐 (三)订单管理 (四)后台管理 部分代码展示 1.index.wxml 2.list.wxml 3.checkout.wxml 4.detail.wxml 小结优点 概要…...
转换算术表达式
文章目录 构造二叉树表示的算术表达式:按先序次序输入二叉树中结点的值(操作数及运算符均以一位字符表示,注意转换), #字符表示空树,如上图的算术表达式 输入2##*3##4## 输入格式 第一行输入表示要计算的算术表达式的二叉树结点的…...
99.17 金融难点通俗解释:归母净利润
目录 0. 承前1. 简述2. 比喻:小明家的小卖部2.1 第一步:计算收到的所有钱2.2 第二步:减去各种支出2.3 第三步:计算能带回家的钱 3. 生活中的例子3.1 好的经营情况3.2 一般的经营情况3.3 不好的经营情况 4. 小朋友要注意4.1 为什么…...
【Flutter】旋转元素(Transform、RotatedBox )
这里写自定义目录标题 Transform旋转元素可以改变宽高约束的旋转 - RotatedBox Transform旋转元素 说明:Transform旋转操作改变了元素的方向,但并没有改变它的布局约束。因此,虽然视觉上元素看起来是旋转了,但它仍然遵循原始的宽…...
MYSQL学习笔记(六):聚合函数、sql语句执行原理简要分析
前言: 学习和使用数据库可以说是程序员必须具备能力,这里将更新关于MYSQL的使用讲解,大概应该会更新30篇,涵盖入门、进阶、高级(一些原理分析);这一篇是内容较少,主要讲解:聚合函数和简要介绍sql语句执行过…...
thinkphp6+swoole使用rabbitMq队列
安装think-swoole安装 composer require php-amqplib/php-amqplib,以支持rabbitMq使用安装rabbitMq延迟队列插件 安装 rabbitmq_delayed_message_exchange 插件,按照以下步骤操作: 下载插件:https://github.com/rabbitmq/rabbitmq-delayed-…...
大模型开发 | RAG在实际开发中可能遇到的坑
近年来,大语言模型 (LLM) 的飞速发展令人瞩目,它们在各个领域展现出强大的应用潜力。然而,LLM 也存在一些固有的局限性,例如知识更新滞后、信息编造 (幻觉) 等问题。为了克服这些挑战,检索增强生成 (Retrieval-Augment…...

mybatis是什么?有什么作用?mybatis的简单使用
mybatis是什么? MyBatis 是一个持久层框架。 有什么作用? 简化了对数据库数据的操作。 如何简化数据操作的? MyBatis 通过提供 SQL 映射、动态 SQL、结果映射、事务管理等功能,我们直接去用就可以了。 怎么使用?&…...
求平均年龄(信息学奥赛一本通-1059)
【题目描述】 班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位。 【输入】 第一行有一个整数n(1≤n≤100),表示学生的人数。其后n行每行有…...

CY T 4 BB 5 CEB Q 1 A EE GS MCAL配置 - MCU组件
1、ResourceM 配置 选择芯片信号: 2、MCU 配置 2.1 General配置 1) McuDevErrorDetect: - 启用或禁用MCU驱动程序模块的开发错误通知功能。 - 注意:采用DET错误检测机制作为安全机制(故障检测)时,不能禁用开发错误检测。2) McuGetRamStateApi - enable/disable th…...

10 Hyperledger Fabric 介绍
简介 HypeLedger(超级账本)是由Linux基金会2015年创建的首个面向企业应用场景的开源分布式账本平台。 HypeLedger Fabric是HypeLedger种的区块链项目之一HypeLedger Fabric引入权限管理在架构设计上支持可插拔、可扩展是首个面向联盟链场景的开源项目 …...

Word 中实现方框内点击自动打 √ ☑
注: 本文为 “Word 中方框内点击打 √ ☑ / 打 ☒” 相关文章合辑。 对第一篇增加了打叉部分,第二篇为第一篇中方法 5 “控件” 实现的详解。 在 Word 方框内打 √ 的 6 种技巧 2020-03-09 12:38 使用 Word 制作一些调查表、检查表等,通常…...

噪声算法 纹理
噪声是一种程序生成的随机或伪随机数据,在图形学中常用来创建各种自然现象和复杂纹理效果。 它的本质是一种由数学算法公式生成的有规则性或可控的随机数据。 通过噪声算法生成的随机数据具有以下特点: 随机性:噪声数据本质上是随机的&#…...

hexo + Butterfly搭建博客
Hexo是一个基于Node.js的静态网站生成器,主要用于快速搭建博客和个人网站。它使用Markdown语法编写文章,能够迅速生成静态页面并部署到服务器上。 配置node 使用nvm安装node(v16.13.2)后配置镜像 安装并使用node: nvm install 16.13.2 n…...
05.KNN算法总结
KNN算法总结 1 k近邻算法优缺点汇总 优点: 简单有效重新训练的代价低适合类域交叉样本 KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适…...
CentOS 7 搭建lsyncd实现文件实时同步 —— 筑梦之路
在 CentOS 7 上搭建 lsyncd(Live Syncing Daemon)以实现文件的实时同步,可以按照以下步骤进行操作。lsyncd 是一个基于 inotify 的轻量级实时同步工具,支持本地和远程同步。以下是详细的安装和配置步骤: 1. 系统准备 …...
java定时任务备份数据库
文章目录 前言一、定时任务备份二、分享两个windows运行项目脚本总结 前言 数据库备份 程序中数据库备份可以有效避免因为意外,导致数据丢失,因此数据备份显得尤为重要。 一、定时任务备份 定时任务类,要在配置类或启动类开启 EnableScheduling Data Sl4j Servic…...
Vue.js 传递路由参数和查询参数
Vue.js 传递路由参数和查询参数 在 Vue.js 开发中,Vue Router 提供了灵活的方式来处理路由参数和查询参数,使得组件能够根据不同的路径或查询条件渲染相应的内容。 路由参数 路由参数(也称为路径参数)是 URL 路径的一部分&…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...

MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...
MySQL 主从同步异常处理
阅读原文:https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主,遇到的这个错误: Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一,通常表示ÿ…...