当前位置: 首页 > 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 路径的一部分&…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

企业如何增强终端安全?

在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...

安卓基础(aar)

重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...

uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)

UniApp 集成腾讯云 IM 富媒体消息全攻略(地理位置/文件) 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型,核心实现方式: 标准消息类型:直接使用 SDK 内置类型(文件、图片等)自…...

Qt的学习(一)

1.什么是Qt Qt特指用来进行桌面应用开发(电脑上写的程序)涉及到的一套技术Qt无法开发网页前端,也不能开发移动应用。 客户端开发的重要任务:编写和用户交互的界面。一般来说和用户交互的界面,有两种典型风格&…...