OSI七层模型和TCP/IP五层模型详细介绍

这里写目录标题

  • 一.OSI含义
  • 二.OSI七层模型
    • 1.应用层
    • 2.表示层
    • 3.会话层
    • 4.传输层
    • 5.网络层
    • 6.数据链路层
    • 7.物理层
  • TCP/IP五层协议
    • 1.应用层
    • 2.运输层
      • 运行在TCP上的协议
      • 运行在UDP上的协议
    • 3.网络层
      • IP协议配套使用的协议
    • 4.数据链路层
  • 四.网络协议分层的好处

一.OSI含义

OSI即是开放式通信互联参考模型,是国际标准化组织提出的一个网络标准框架

二.OSI七层模型

在这里插入图片描述

1.应用层

为用户提供各种请求服务,以及提供各种应用程序和网服务的接口
常见协议有http,https,FTP,SMTP

2.表示层

数据编码,格式转换,数据加密和压缩,提供各种编码和转换功能,确保另一个系统的应用层可以识别。

3.会话层

  • 创建,管理和维持会话,接受来自传输层的数据,负责建立,管理,终止表示层通信会话,支持数据交换

4.传输层

数据通信,建立主机端到端的链接,为会话层和网络层提供端到端的可靠和透明的数据传输,确保数据传输到网络层

5.网络层

  • IP选址以及路由选择,通过路由选择算法,为报文和通信子网选择最适当路径。控制链路与传输层之间的信息转发,建立,和终止网络连接。
  • 数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备。
  • 网络层负责把一个数据从一个网络传递到另外一个网络,最大的功能就是进行路由决策,比如通过 IP,子网等概念,使数据更好着在不同的局域网中传递
  • 传输层的功能就是建立端口到端口的通信,刚才说的网络层的功能则是建立主机到主机的通信,比如通过网络层我们可以把信息从 A 主机传递到 B 主机,但是 B 主机有多个程序,我们具体要发给哪个程序,则是靠传输层的协议来识别,常见协议有 UDP 和 TCP。

6.数据链路层

  • 提供介质访问和链路管理。接受来自物理层的位流形式的数据,封装成帧,传输到网络层;将网络层的数据帧,拆装为位流发送到物理层。
  • 负责建立和管理节点间的链路,通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。
  • 链路层涉及到的协议比较多,比如 Mac 地址啊,ARP 等,这一层主要就是负责数据的通信,使各节点之间可以通信,比如通过 MAC 地址唯一识别不同的节点,通过以太网协议定义数据包等

7.物理层

  • 管理通信设备和网络媒体之间的互联互通。传输介质为数据链路层提供物理连接,实现比特流的透明传输。实现相邻计算机节点之间比特流的透明传送,屏蔽具体传输介质和物理设备的差异。
  • 负责把两台计算机连起来,然后在计算机之间通过高低电频来传送0,1这样的电信号,比如通过一些电缆线传输比特流
  • 在这里插入图片描述

TCP/IP五层协议

在这里插入图片描述

1.应用层

涉及到的协议

  • 域名系统DNS:将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的 IP 数串。
  • 邮件传输协议:SMTP
  • HTTP协议:超文本传输协议,所有的万维网文件都必须遵守这个标准。设计 HTTP 最初的目的是为了提供一种发布和接收 HTML 页面的方法。

2.运输层

作用:

  • 提供端到端的服务
  • 流量控制:防止过载,即过多的数据注入到网络中
  • 拥塞控制:抑制数据传输的速率

运行在TCP上的协议

  • HTTP(Hypertext Transfer Protocol,超文本传输协议)Web服务器传输超文本到本地浏览器的传送协议。端口:80
  • HTTPS(HTTP over SSL,安全超文本传输协议),HTTP协议的安全版本。端口:443
  • FTP(File Transfer Protocol,文件传输协议),用于文件传输。端口:21
  • SMTP(Simple Mail Transfer Protocol,简单邮件传输协议),用来发送电子邮件。端口:25
  • SSH(Secure Shell,用于替代安全性差的TELNET),用于加密安全登陆用

运行在UDP上的协议

  • DNS(Domain Name Service,域名服务),用于完成地址查找,邮件转发等工作。
  • SNMP(Simple Network Management Protocol,简单网络管理协议),用于网络信息的收集和网络管理。
  • NTP(Network Time Protocol,网络时间协议),用于网络同步。
  • DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),动态配置IP地址。

3.网络层

通过IP寻址来建立两个节点之间的连接,之后把运输层产生的报文段或用户数据报封装成分组和包进行传送,在发送分组时不需要先建立连接,每一个分组独立发送,与其前后的分组无关。在这个过程中网络层不提供端到端的可靠传输服务,尽最大努力进行交付(由网络的主机中的运输层负责可靠交付)。

IP协议配套使用的协议

地址解析协议 ARP (Address Resolution Protocol)
网际控制报文协议 ICMP (Internet Control Message Protocol)
网际组管理协议 IGMP (Internet Group Management Protocol)

4.数据链路层

两台设备之间的数据传输,可以看成是在一条管道上进行的,传送的数据单位是帧(每一帧包括数据和必要的控制信息(如同步信息,地址信息,差错控制等)),链路层保证被传输数据的正确性
在这里插入图片描述

  • 封装成帧 :就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧,首部和尾部的一个重要作用就是进行帧定界。
  • 透明传输:在数据传输过程中,如果数据中的某个字节的二进制代码恰好和 SOH 或 EOT 一样,数据链路层就会错误地“找到帧的边界”从而导致这些数据都能够按照原样没有差错地通过这个数据链路层。解决透明传输问题:字符填充 (插入转义字符)
  • 差错检测:在传输过程中可能会产生比特差错:1 可能会变成 0, 而 0 也可能变成 1。在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate),误码率与信噪比有很大的关系,为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施,在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC 的检错技术。

四.网络协议分层的好处

  • 简化问题的难度和复杂度:通过各层独立,可以将问题分割在各个层去处理
  • 灵活,易于维护,通过上下接口不变,可以更好的维护,更新。
  • 促进标准化工作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/922269.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

云原生之运维监控实践-使用Prometheus与Grafana实现对MinIO服务的监测

背景 如果你要为应用程序构建规范或用户故事,那么务必先把应用程序每个组件的监控指标考虑进来,千万不要等到项目结束或部署之前再做这件事情。——《Prometheus监控实战》 去年写了一篇在Docker环境下部署若依微服务ruoyi-cloud项目的文章,当…

SQL注入--时间盲注--理论

时间盲注的原理 当我们使用任何查询语句,界面都没有回显或者回显都不变化时,就要通过sleep()函数来判断我们的查询是否正确,这个过程就叫做时间盲注。 sleep(3) 延时三秒后再进行SQL查询。 ?id1 and sleep(3)-- //立即查询,…

Spring注入Map学习

Spring注入Map学习 在Spring中 在策略模式中, 会经常用到 根据Bean名称获取Bean的实例 有2个方法很好用 1. 使用Autowired注入 2. 使用构造方法注入 但是奇怪的一点是: 日志打印并没有看到结果, 第一行的 Autowired的结果 是个null 那是因为 注入时机 的问题 注入时机&…

基于卡尔曼滤波器的 PID 控制

基于卡尔曼滤波器的PID控制算法结合了经典控制理论和现代信号处理技术。卡尔曼滤波器(Kalman Filter, KF)可以对噪声数据进行平滑处理,从而改善PID控制器的性能,特别是在处理具有噪声和不确定性的系统时。以下是详细的设计过程&am…

Day 25

491.递增子序列 力扣题目链接(opens new window) 给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。 示例: 输入: [4, 6, 7, 7]输出: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,7], [4,7,7]] 说明: …

机器学习: 阿里巴巴发布基于:蒙特卡洛的应用Marco-o1

本人项目地址大全:Victor94-king/NLP__ManVictor: CSDN of ManVictor git地址:https://github.com/opendatalab/MinerU 写在前面: 笔者更新不易,希望走过路过点个关注和赞,笔芯!!! 写在前面: 笔者更新不易,希望走过路…

数据结构(Java版)第五期:ArrayList与顺序表(下)

目录 一、用数组实现顺序表 一、用数组实现顺序表 我们提到过,顺序表是基于数组的封装,这次我们以int为例,用数组去实现一个顺序表。 public class MyArrayList {private int[] arr;public MyArrayList(int capacity){//指定初始容量arr n…

YonBuilder移动开发鸿蒙版本编译教程

0.YonBuilder移动开发应用详情页访问路径 登录用友开发者中心,鼠标悬浮右上角昵称处,点击「工作台」进入「开发者中心工作台」 「开发者中心工作台」页面点击左侧竖直菜单面板中「移动应用开发」后,选择右侧页面内的目标应用,即可…

kafka进阶_3.消费消息

文章目录 一、消费消息概览1.1、基本代码1.2、消费过程 二、消费者组2.1、push & pull2.2、消费者组 三、调度器Coordinator四、消费者分配策略五、偏移量offset5.1、起始偏移量5.2、指定偏移量消费5.3、偏移量提交5.3.1、自动提交5.3.2、手动提交 5.4、偏移量的保存 六、消…

(笔记,自己可见_1)简单了解ZYNQ

1、zynq首先是一个片上操作系统(Soc),结合了arm(PS)和fpga(PL)两部分组成 Zynq系统主要由两部分组成:PS(Processing System)和PL(Programmable L…

c语言的qsort函数理解与使用

介绍:qsort 函数是 C 标准库中用于排序的快速排序算法函数。它的用法非常灵活,可以对任意类型的元素进行排序,只要提供了比较函数即可。 qsort 函数原型及参数解释: void qsort ( void* base, //指向要排序的数组的首元素…

【淘汰9成NLP面试者的高频面题】LSTM中的tanh和sigmoid分别用在什么地方?为什么?

博客主页: [青松] 本文专栏: NLP 大模型百面百过 【淘汰9成NLP面试者的高频面题】LSTM中的tanh和sigmoid分别用在什么地方?为什么? 重要性:★★★ 💯 本题主要考察面试者对以下问题的理解: ① 数据特征和模…

JWT加解密应用方案设计与实现

为什么要用令牌技术? 这个问题其实问的就是Cookice、Session、Token(令牌)之间的区别了。 首先,存放的位置做一下比较,Cookice小饼干存放在客户端的浏览器当中,Session会话存放在服务器线程当中(本质上还是需要利用Cookice实现)…

数据集-目标检测系列- 安全背心 检测数据集 safety_vests >> DataBall

数据集-目标检测系列- 安全背心 检测数据集 safety DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集,持续增加中。 贵在坚持! 数据样例项目地址: * 相关项目 1)数据集可视化项目:gi…

C语言菜鸟入门·关键字·int的用法

目录 1. int关键字 1.1 取值范围 1.2 符号类型 1.3 运算 1.3.1 加法运算() 1.3.2 减法运算(-) 1.3.3 乘法运算(*) 1.3.4 除法运算(/) 1.3.5 取余运算(%) 1.3.6 自增()与自减(--) 1.3.7 位运算 2. 更多关键字 1. int关键字 int 是一个关键字&#xff0…

unity中:超低入门级显卡、集显(功耗30W以下)运行unity URP管线输出的webgl程序有那些地方可以大幅优化帧率

删除Global Volume: 删除Global Volume是一项简单且高效的优化措施。实测表明,这一改动可以显著提升帧率,甚至能够将原本无法流畅运行的场景变得可用。 更改前的效果: 更改后的效果: 优化阴影和材质: …

Vue + Websocket播放PCM(base64转ArrayBuffer、 字符串转ArrayBuffer)

文章目录 引言I 音视频处理相关概念和APIII 案例:基于开源库 pcm-player方式播放借助MediaSource和Audio对象播放音频流。基于原生api AudioContext 播放操作III 格式转换js字符串转ArrayBufferbase64 转 ArrayBufferIV 解决pcm-player分片播放问题引言 需求: 基于webscoket传…

【JavaEE进阶】SpringBoot 快速上⼿

了解Maven,并配置国内源 使⽤SpringBoot创建⼀个项⽬, 输出HelloWorld 一、Maven 1.什么是Maven 官⽅对于Maven的描述: Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can man…

QT QFormLayout控件 全面详解

本系列文章全面的介绍了QT中的57种控件的使用方法以及示例,包括 Button(PushButton、toolButton、radioButton、checkBox、commandLinkButton、buttonBox)、Layouts(verticalLayout、horizontalLayout、gridLayout、formLayout)、Spacers(verticalSpacer、horizonta…

PCA算法所体现的核心数学思维

一、PCA算法的基本思想 PCA算法的核心思想是通过线性变换,将数据从原始的高维空间投影到低维空间,同时尽可能保留数据的主要变异性。这种变换是通过找到一组新的坐标轴(即主成分)来实现的,这些坐标轴是原始数据空间的…