简述OSI七层模型及每层的功能任务和协议

2024-04-12 15:52

本文主要是介绍简述OSI七层模型及每层的功能任务和协议,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、OSI七层模型的功能和任务
    • 1.物理层
    • 2.数据链路层
    • 3.网络层
    • 4.传输层
    • 5.会话层
    • 6.表示层
    • 7. 应用层
  • 二、OSI七层模型每层的协议

在这里插入图片描述

开放系统互连参考模型(Open System Interconnect,简称OSI)是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。OSI模型是一个具有七层协议结构的开放系统互连模型,旨在使全球范围的计算机能够进行开放式通信。每一层都包含多个实体,处于同一层的实体称为对等实体。每一层都实现不同的功能,并以协议的形式正规描述这些功能,这些协议定义了某层同远方一个对等层通信所使用的一套规则和约定。每一层向相邻上层提供一套确定的服务,并且使用与之相邻的下层所提供的服务。

 OSI参考模型是具有7个层次的框架自底向上的7个层次分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层

以下是OSI模型与TCP/IP四层模型和五层协议的关系:

在这里插入图片描述

在数据传输过程中,每一层都承担不同的功能和任务,以实现对数据传输过程中的各个阶段的控制。

一、OSI七层模型的功能和任务

1.物理层

  物理层的主要功能是透明地完成相邻节点之间原始比特流的传输。其中“透明”的意思是指物理层并不需要关心比特代表的具体含义,而要考虑的是如何发送“0”和“1”,以及接收端如何识别。物理层在传输介质上作为系统和通讯介质的接口,为数据链路层提供服务。
解决两个硬件之间的通信。

2.数据链路层

  数据链路层负责在两个相邻节点之间的线路上无差错地传送以为单位的数据,通过流量控制和差错控制,将原始不可靠的物理层连接变成无差错的数据通道,并解决多用户竞争问题,使之对网络层显现一条可靠的链路。

3.网络层

  网络层是通讯子网的最高层,其主要任务是在数据链路层服务的基础上,实现整个通讯子网内的连接,并通过网络连接交换网络服务数据单元(packet)。它主要解决数据传输单元分组在通信子网中的路由选择、拥塞控制和多个网络互连的问题。网络层建立网络连接为传输层提供服务。

4.传输层

  传输层既是负责数据通讯的最高层,又是面向网络通信的低三层(物理层、数据链路层和网络层)和面向信息处理的高三层(会话层。表示层、应用层)之间的中间层,是资源子网和通信子网的桥梁,其主要任务是为两台计算机的通信提供可靠的端到端的数据传输服务。传输层反映并扩展了网络层子系统的服务功能,并通过传输层地址为高层提供传输数据的通信接口,使系统之间高层资源的共享不必考虑数据通信方面的问题。

5.会话层

  会话层利用传输层提供的端到端数据传输服务,具体实施服务请求者与服务提供者之间的通信、组织和同步它们的会话活动,并管理它们的数据交换过程。会话层提供服务通常需要经过建立连接、数据传输和释放连接三个阶段。会话层是最薄的一层,常被省略。作用:建立和管理应用程序之间的通信。

6.表示层

  负责数据格式的转换,将应用处理的信息转换为适合网络传输的格式,或者将来自下一层的数据转换为上层能处理的格式。
  表示层处理的是用户信息的表示问题。端用户(应用进程)之间传送的数据包含“语义”和“语法”两个方面。语义是数据的内容及其含义,它由应用层负责处理;语法是与数据表示形式有关的方面,例如,数据的格式、编码和压缩等。表示层主要用于处理应用实体面向交换的信息的表示方法,包括用户数据的结构和在传输时的比特流(或字节流)的表示,这样,即使每个应用系统有各自的信息表示法,但被交换的信息类型和数值仍能用一种共同的方法来描述。

7. 应用层

  作用是通过应用程序之间的交互完成特定的网络应用。应用层是直接面向用户的一层,是计算机网络与最终用户之间的界面,在实际应用中,通常把会话层和表示层归入到应用层,使OSI/RM成为一个简化的五层模型。



二、OSI七层模型每层的协议

在这里插入图片描述

  • SMTP:25端口,邮件发送
  • FTP:20数据端口/21控制端口,文件传输协议
  • HTTP:80端口,超文本传输协议,网页传输
  • DHCP:67端口,IP地址自动分配
  • SNMP:161端口,简单网络管理协议
  • DNS:53端口,域名解析协议,记录域名与IP的映射关系
  • TCP:可靠的传输层协议
  • UDP:不可靠的传输层协议
  • ICMP:因特网控制协议,PING命令来自该协议
  • IGMP:组播协议
  • ARP:地址解析协议,IP地址转换为MAC地址
  • RARP: 反向地址解析协议,MAC地址转IP地址

在这里插入图片描述

这篇关于简述OSI七层模型及每层的功能任务和协议的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/897579

相关文章

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

Redis消息队列实现异步秒杀功能

《Redis消息队列实现异步秒杀功能》在高并发场景下,为了提高秒杀业务的性能,可将部分工作交给Redis处理,并通过异步方式执行,Redis提供了多种数据结构来实现消息队列,总结三种,本文详细介绍Re... 目录1 Redis消息队列1.1 List 结构1.2 Pub/Sub 模式1.3 Stream 结

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分

Spring Boot 集成 Quartz并使用Cron 表达式实现定时任务

《SpringBoot集成Quartz并使用Cron表达式实现定时任务》本篇文章介绍了如何在SpringBoot中集成Quartz进行定时任务调度,并通过Cron表达式控制任务... 目录前言1. 添加 Quartz 依赖2. 创建 Quartz 任务3. 配置 Quartz 任务调度4. 启动 Sprin

Linux之计划任务和调度命令at/cron详解

《Linux之计划任务和调度命令at/cron详解》:本文主要介绍Linux之计划任务和调度命令at/cron的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux计划任务和调度命令at/cron一、计划任务二、命令{at}介绍三、命令语法及功能 :at

Android实现悬浮按钮功能

《Android实现悬浮按钮功能》在很多场景中,我们希望在应用或系统任意界面上都能看到一个小的“悬浮按钮”(FloatingButton),用来快速启动工具、展示未读信息或快捷操作,所以本文给大家介绍... 目录一、项目概述二、相关技术知识三、实现思路四、整合代码4.1 Java 代码(MainActivi

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient