热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

网络协议分层OSI七层模型,TCP/IP五层(四层)模型

目录什么是协议分层?分层的作用OSI七层模型第一层:物理层第二层:数据链路层第三层:网络层第四层:传输层第五层:会话层第六层:表示层第七层:应用层比喻举例T

目录

什么是协议分层?

分层的作用

OSI七层模型

第一层: 物理层

第二层: 数据链路层

第三层: 网络层

第四层: 传输层

第五层: 会话层

第六层: 表示层

第七层: 应用层

比喻举例

TCP/IP 五层 (或四层) 模型

应用层

传输层

网络层

数据链路层

物理层




什么是协议分层?

协议分层类似于打电话时, 定义不同层次的协议.

比如说, 我们都用普通话交流, 而不是用各地的方言.

这个例子很简单, 但是实际的网络通信则是更复杂, 需要分更多的层次.


分层的作用

分层最大的好处, 类似于面向接口编程, 定义好两层间的接口规范, 让双方来遵守这个规范来对接.


OSI七层模型

OSI : 即 Open System Interconnection, 开放系统互连.


  • OSI七层网络模型是一个逻辑上的定义和规范, 把网络从逻辑上分为了7层
  • OSI最主要的功能就是帮助不同类型的主机实现数据传输.
  • 最大的优点是将 服务 接口 协议 这三个概念明确的区分开了, 通过七个层次的结构模型可以使不同系统的网络之间实现可靠的传输.

OSI七层模型分为以下七层:


第一层: 物理层

功能: 传输信息的介质规格, 将数据以实体呈现并传输的规格

比特流与电子信号之间的切换. 

1. 物理层包含物理连网媒介, 例如:网卡, 连接器等.

2.物理层的协议产生并检测电压发送和接收数据的信号.

例如: 你个你的PC插上一张网卡, 你就提供了一个物理层.


第二层: 数据链路层

功能: 同步 差错 制定MAC方法

1. 它的主要功能是将从网络层接收到的数据分割成特定的可被物理层传输的帧.

2. (Frame)是用来移动数据的结构包, 它不仅包括原始(未加工)数据, 或称“有效荷载”, 还包括发送方和接收方的网络地址以及纠错和控制信息. 其中的地址确定了帧将发送到何处, 而纠错和控制信息则确保帧无差错到达.

3. 通常, 发送方的数据链路层将等待来自接收方对数据已正确接收的应答信号.


第三层: 网络层

功能: 地址管理 与 路由选择

网络层协议还能补偿数据发送 传输以及接收的设备能力的不平衡性. 为完成这一任务, 网络层对数据包进行分段和重组.


第四层: 传输层

功能: 管理两个节点之间的数据传输, 确保数据准确 可靠 有序的从A传输到B.

因为如果没有传输层, 数据将不能被接受方验证或解释, 所以, 传输层常被认为是 OSI模型 中最重要的一层.

在网络中, 传输层发送一个 ACK(应答) 信号以通知发送方数据已被正确接收. 如果数据有错或者数据在一给定时间段未被应答, 传输层将请求发送方重新发送数据.


第五层: 会话层

功能: 通信管理, 负责网络中两个节点之间建立和断开通信连接.

会话层的功能包括: 建立通信连接, 保持会话过程通信链接的畅通, 同步两个节点之间的对话, 决定通信是否被中断以及通信中断时决定从何处重新发送 

例如: 使用全双工模式或者半双工模式, 如何发起传输, 如何结束传输, 如何设定传输参数.

会话层管理传输层以下的分层.


第六层: 表示层

功能: 设备固有数据格式和网络标准数据格式的转换.

充当应用程序和网络之间的 “翻译官” 角色.

表示层协议还对图片和文件格式信息进行解码和编码.


第七层: 应用层

功能: 针对特定应用的协议. 

 应用层提供的服务包括文件传输(FTP) , 文件管理以及电子邮件的信息处理(SMTP)等.


比喻举例

像发快递的过程 (Http, 应用层)

你向快递公司申请下单 (第一次请求)

快递公司接单 (应答)

你向快递小哥联系取件 (回应应答)

你将物品放进快递盒子里面 (开始封装请求, 会话层)

快递小哥把盒子装好贴上快递单带回去 (传输层)

快递小哥到达门店检查是否区域寄件 (网络层)

各个地区的物流转运中心 (物理层)

转到运输车上 (链路层)

到达当地分发 (网络层)

当地快递站点派送 (传输层)

快递小哥签收 (会话层)

拆开快递 (表示层)

收到快递 (应用层)

虽然这个举例子了, 但是OSI七层模型既复杂复杂又不是用不实用, 所以, 实际组建网络时, 只是以 OSI七层模型设计中的部分分层, 也就是以下 TCP/IP 五层 (或四层) 模型来实现.


TCP/IP 五层 (或四层) 模型

TCP/IP五层协议如下:

TCP/IP是一组协议的代名词, 他还包括许多协议, 组成了TCP/IP协议簇.


应用层

负责应用程序间的沟通, 例如简单的文件传输协议(FTP), 网络远程协议(Telnet) 等, 网络编程主要就是针对应用层.


传输层

负责两台主机之间的数据传输. 例如: 传输控制协议(TCP), 能够确保数据可靠的从源主机发送到目的主机.


网络层

负责地址管理和路由选择.


数据链路层

负责设备之间的数据帧的传送和识别.

例如: 网卡设备的驱动.


物理层

负责光/电信号的传递方式.

例如: wifi无线网使用电磁波等就属于物理层的概念. 

物理层的能力决定了最大传输速率、传输距离等.

  物理层我们考虑的比较少. 因此很多时候也可以称为 TCP/IP四层模型.


推荐阅读
  • 本文回顾了作者初次接触Unicode编码时的经历,并详细探讨了ASCII、ANSI、GB2312、UNICODE以及UTF-8和UTF-16编码的区别和应用场景。通过实例分析,帮助读者更好地理解和使用这些编码。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • C语言中全部可用的数学函数有哪些?2.longlabs(longn);求长整型数的绝对值。3.doublefabs(doublex);求实数的绝对值。4.doublefloor(d ... [详细]
  • 本文将带你快速了解 SpringMVC 框架的基本使用方法,通过实现一个简单的 Controller 并在浏览器中访问,展示 SpringMVC 的强大与简便。 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 零拷贝技术是提高I/O性能的重要手段,常用于Java NIO、Netty、Kafka等框架中。本文将详细解析零拷贝技术的原理及其应用。 ... [详细]
  • 本文介绍如何在 Android 中自定义加载对话框 CustomProgressDialog,包括自定义 View 类和 XML 布局文件的详细步骤。 ... [详细]
  • 在本文中,我们将详细介绍如何构建一个用于自动回复消息的XML类。当微信服务器接收到用户消息时,该类将生成相应的自动回复消息。以下是具体的代码实现:```phpclass We_Xml { // 代码内容}```通过这个类,开发者可以轻松地处理各种消息类型,并实现高效的自动回复功能。我们将深入探讨类的各个方法和属性,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文详细介绍了一种利用 ESP8266 01S 模块构建 Web 服务器的成功实践方案。通过具体的代码示例和详细的步骤说明,帮助读者快速掌握该模块的使用方法。在疫情期间,作者重新审视并研究了这一未被充分利用的模块,最终成功实现了 Web 服务器的功能。本文不仅提供了完整的代码实现,还涵盖了调试过程中遇到的常见问题及其解决方法,为初学者提供了宝贵的参考。 ... [详细]
  • JVM钩子函数的应用场景详解
    本文详细介绍了JVM钩子函数的多种应用场景,包括正常关闭、异常关闭和强制关闭。通过具体示例和代码演示,帮助读者更好地理解和应用这一机制。适合对Java编程和JVM有一定基础的开发者阅读。 ... [详细]
  • 在 CentOS 6.4 上安装 QT5 并启动 Qt Creator 时,可能会遇到缺少 GLIBCXX_3.4.15 的问题。这是由于系统中的 libstdc++.so.6 版本过低。本文将详细介绍如何通过更新 GCC 版本来解决这一问题。 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • 本视频教程将带你快速了解 Android 开发的基础知识,并详细讲解如何在 Android 应用中使用 SQLite 数据库进行数据存储和管理。 ... [详细]
  • 一篇关于五个编程问题的 Reddit 帖子引发了广泛讨论,特别是关于这些题目是否适合所有软件工程师。 ... [详细]
author-avatar
dx152
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有