当前位置: 首页 > news >正文

网络模型简介:OSI七层模型与TCP/IP模型

计算机网络是现代信息社会的基石,而网络通信的基础在于理解网络模型。网络模型是对通信过程的抽象,它帮助我们理解数据从源到目的地的传输过程。常见的网络模型有 OSI 七层模型TCP/IP 模型,这两种模型在理论和实践中都起着重要作用。


一、OSI七层模型

OSI(Open Systems Interconnection)模型是由国际标准化组织(ISO)制定的网络通信标准,旨在提供一个框架,用于理解不同网络协议如何协同工作。OSI 模型将网络通信分为七个层次,每一层都完成特定的任务,并通过接口与上下层进行交互。

七层模型的层次结构

  1. 物理层(Physical Layer)

    • 主要负责数据的物理传输,定义了传输媒介、信号、连接方式等。常见的物理设备包括电缆、交换机、网卡等。
    • 协议:Ethernet、USB、Wi-Fi(物理层协议通常较为具体,依赖于硬件实现)。
  2. 数据链路层(Data Link Layer)

    • 负责在物理介质上可靠地传输数据帧,保证数据的完整性,并提供错误检测与纠正。数据链路层还负责物理地址(MAC 地址)的管理。
    • 协议:Ethernet、PPP、HDLC、ARP。
  3. 网络层(Network Layer)

    • 主要负责将数据包从源设备传送到目标设备,处理路径选择(路由),并解决不同网络间的通信问题。网络层的核心是 IP 协议。
    • 协议:IP(IPv4、IPv6)、ICMP、ARP、RIP、OSPF。
  4. 传输层(Transport Layer)

    • 负责在源和目标主机之间建立端到端的通信,确保数据传输的可靠性,提供错误校验和流量控制。主要包括两种传输协议:TCP 和 UDP。
    • 协议:TCP、UDP、SCTP。
  5. 会话层(Session Layer)

    • 负责建立、管理和终止会话。会话层提供了全双工、半双工或单工通信的支持,并确保数据在不同应用间能够顺利传递。
    • 协议:NetBIOS、RPC、SMB。
  6. 表示层(Presentation Layer)

    • 负责数据的格式化与转换,包括数据压缩、加密与解密。表示层确保发送方与接收方的数据格式一致。
    • 协议:JPEG、MPEG、SSL/TLS。
  7. 应用层(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模型的层次结构

  1. 网络接口层(Network Interface Layer)

    • 相当于 OSI 模型中的物理层和数据链路层,负责在物理媒介上传输数据包,并与网络硬件进行交互。
    • 协议:Ethernet、Wi-Fi、PPP。
  2. 互联网层(Internet Layer)

    • 相当于 OSI 模型中的网络层,主要负责路由和数据包传输,包括 IP 地址的处理。互联网层确保数据包从源到目的地的传输路径。
    • 协议:IP(IPv4、IPv6)、ICMP。
  3. 传输层(Transport Layer)

    • 对应于 OSI 模型中的传输层,负责端到端的数据传输、可靠性控制和流量管理。常见协议包括 TCP 和 UDP。
    • 协议:TCP、UDP。
  4. 应用层(Application Layer)

    • 相当于 OSI 模型中的会话层、表示层和应用层,主要处理网络应用程序之间的交互。应用层协议规定了数据如何格式化、压缩、加密等。
    • 协议:HTTP、FTP、SMTP、DNS、Telnet。

三、常见协议简介
  1. IP协议(Internet Protocol)

    • IP 协议负责将数据包从源设备发送到目的设备,通过 IP 地址进行寻址和路由。IPv4 和 IPv6 是两种主要的 IP 协议版本。IPv4 地址是 32 位的,支持大约 43 亿个地址,而 IPv6 地址是 128 位的,支持几乎无限的地址。
  2. TCP协议(Transmission Control Protocol)

    • TCP 是一种面向连接、可靠的传输协议。它确保数据包按顺序到达目的地,并提供错误校验和重传机制。适用于对数据可靠性要求较高的应用,如文件传输、网页浏览等。
  3. UDP协议(User Datagram Protocol)

    • UDP 是一种无连接、不可靠的传输协议,它不保证数据包的顺序和到达。UDP 适用于对速度要求较高、对可靠性要求较低的应用,如视频流、在线游戏等。
  4. HTTP协议(Hypertext Transfer Protocol)

    • HTTP 是一种用于网页浏览的协议,通常通过端口 80 进行通信。它是无状态的,即每次请求之间没有记录。
  5. FTP协议(File Transfer Protocol)

    • FTP 用于在客户端和服务器之间传输文件。它支持两种工作模式:主动模式和被动模式,通常通过端口 21 进行通信。
  6. 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中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

MySQL 主从同步异常处理

阅读原文&#xff1a;https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主&#xff0c;遇到的这个错误&#xff1a; Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一&#xff0c;通常表示&#xff…...