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

计算机网络分层、OSI模型、TCP\IP模型、五层模型

目录分层为什么分层?怎么分层分层的基本原则几个概念分层结构ISOOSI参考模型应用层表示层会话层传输层网络层数据链路层物理层TCPIP协

目录

分层

为什么分层?

怎么分层

分层的基本原则

几个概念

分层结构

ISO/OSI参考模型

应用层

表示层

会话层

传输层

网络层

数据链路层

物理层

TCP/IP协议

五层参考模型




分层


为什么分层?

根据设计模式可以知道,实现一个复杂的、多功能的程序,为了便于维护和扩展,程序的功能应该是解耦合的。比如对于一个网站,会有Dao层(用于数据库连接、增删改查),service层(业务逻辑处理),Controller层(专门负责业务模块的流程控制),为了进一步解耦和,在这些层中还需要首先设计接口,再设计其实现类。每个层单独完成一份任务,专注一份任务,这就是分层的设计思路。


怎么分层


分层的基本原则

1、各层之间相互独立,每层只实现一种相对独立的功能

2、每层之间界面相对清晰,易于理解,相互交流尽可能少

3、结构上可分割开,每层都使用最合适的技术来实现

4、保持下层对上层的独立性,上层单向使用下层提供的服务

5、整个分层结构应该能促进标准化工作


几个概念

实体:任何接受或发送信息的硬件或软件进程。在许多情况下,实体就是一个特定的软件模块

协议:控制两个对等实体(或多个实体)进行通信的规则的集合(水平)。

通俗来讲在对一件物品进行封装,协议规定的封装的各个细节,对等实体通过协议获悉封装的各个细节,然后按照这些细节对封装解封。

协议的三要素:语法,语义,同步

语法指语言的规范、规则,例如运输层报文的格式、IP层分组的格式等等

语义指要完成的操作,表达的意思是否合理

同步指规定的操作顺序

接口(访问服务点SAP):上层使用下层服务的入口

服务:下层为相邻上层提供的功能调用(垂直


注:协议是相同层次,对等层次之间,服务是上下两层之间的


SDU:服务数据单元,是某一层的数据集

PCI:协议控制信息,控制协议操作的信息

PDU:协议数据单元,对等层次之间传送的数据单元

向下是一种封装的过程(类似套娃),在某一层,将数据集SDU加上控制信息PCI组成PDU发到下一层成为下一层的SDU,在下一层SDU再与PCI组成PDU发到下一层。在解封的时候,将接收到的PDU解封装,去掉PCI,还原为SDU送给接收方用户


概念总结

网络体系结构是从功能上描述计算机网络体系结构(并非是硬件)

网络体系结构是分层结构

每层遵循某个或者某些网络协议以完成本层功能

网络体系结构是计算机网络的各层和各层协议的集合



分层结构

1、7层OSI参考模型(法定标准)

2、4层TCP/IP参考模型(事实标准)


ISO/OSI参考模型

 物联网淑慧试用

  端到端是逻辑链路,这条路可能经过了很复杂的物理路线,但两端主机不管,只认为是有两端的连接。

  点对点是基于MAC地址和或者IP地址,是指一个设备发数据给与该这边直接连接的其他设备,这台设备又在合适的时候将数据传递给与它相连的下一个设备,通过一台一台直接相连的设备把数据传递到接收端。

传输层只认为我是直接由发送端到输入端,但任务却是一步一步的完成的

下面没有考虑中间系统

 大部分层都是在头部加上PCI,而数据链路层在尾部也加上了一些信息


应用层

不同网络应用的应用程序之间需要不同的通信规则,因此需要应用层协议


表示层

处理两个通信系统中交换信息的表示方式

1、数据格式变换 2、数据加密解密 3、数据压缩和恢复 

电脑从网卡收到都是二进制格式的一串数据,需要表示层将二进制转化为能够识别的数据,如处理成图片,音频,视频等等


会话层

给表示层实体或者用户进程建立连接并在连接上有序的传输数据

1、建立,管理,终止回话

2、使用校验点可以使的通信失效时从校验点或者同步点继续恢复通信,实现数据同步(适用于传输大文件)


传输层

主要是提供不同主机上的进程之间的逻辑通信(端到端的通信),即使在不可靠的网络层(主机之间的逻辑通信)传输下,传输层也能提供可靠的传输。传输的单位是报文段或者用户数据报

具体功能

1、靠传输、不可靠传输

2、错控制

3、量控制(控制发送方的发送速度)

4、复分用

  复用:多个应用层进程可同时使用下面运输层的服务

  分用:运输层把收到的信息分别交付给上面应用层中相应的进程

报文段上有指明发送给接收方的某个端口号

可差的也能留用?


网络层

又称为IP层或者网际层

主要任务是把分组从源端到目的端,也可以说在不同的网络之间(基于数据包的IP地址)尽力转发数据包,不负责丢包重传和接收顺序。

网络层传输单位是数据报


这里说明下数据报和分组的关系

当数据报过长的时候,可以将数据报分成多个分组,然后放到连路上进行传递


功能

1、路由选择

2、流量控制

3、差错控制

4、拥塞控制


数据链路层

主要任务是把网络层传下来的数据报组装成

数据链路层的传输单位是

功能

1、成帧(需要定义帧的开始和结束, 变为..........0101010101011110101.......)

2、差错控制  帧错+位错

3、流量控制

4、访问(接入)控制    控制对信道的访问  比如广播式网络,同一时刻只能由一个主机进行发送数据


物理层

物理媒体上实现比特流的透明传输

物理传输的单位是比特

透明传输:不管传输什么比特组合,都应当可以进行传输

功能:

 1、定义接口特征,比如网线的引脚

  2、定义传输模式,单工,双工,半双工(单工 只能a到b  半双工 可以a到b 也可以b到a 但同一时刻只能一个)

3、定义传输速率

4、比特同步

5、比特编码


TCP/IP协议

相同点:分层、 两种协议都能实现异构网络互联

不同点:OSI先出现模型,再出现协议,后者则相反

TCP/IP设计之初就非常看重IP协议,因此将IP协议作为重要层次,所以网络层中是面向无连接的


五层参考模型

 

 

 


推荐阅读
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 大数据环境下的存储系统构建:挑战、方法和趋势
    大数据环境下的存储系统构建:挑战、方法和趋势陈游旻,李飞,舒继武清华大学计算机科学与技术系,北京100084摘要:互联网规模的迅速扩展促使 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 如何压缩网站页面以减少页面加载时间
    本文介绍了影响网站打开时间的两个因素,即网页加载速度和网站页面大小。重点讲解了如何通过压缩网站页面来减少页面加载时间。具体包括图片压缩、Javascript压缩、CSS压缩和HTML压缩等方法,并推荐了相应的压缩工具。此外,还提到了一款Google Chrome插件——网页加载速度分析工具Speed Tracer。 ... [详细]
  • 计算机网络概述计算机网络基本概念计算机网络计算机网络是互连的、自治的计算机集合。协议计算机网络中的实体在进行数据交换的过程中必须遵循的规定或约定,称为网络协议。协议的三个要素:语法 ... [详细]
  • 负载均衡 LVS vs Nginx 对比
    前言今天总结一下负载均衡中LVS与Nginx的区别,之前看过好几篇博文一开始就说LVS是单向的,Nginx是双向的,我个人认为这是不准确的,LVS三种模式中,虽然DR模式以及TU ... [详细]
  • 这篇文章主要讲解了“面向对象设计的六大原则是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 突破MIUI14限制,自定义胶囊图标、大图标样式,支持任意APP
    本文介绍了如何突破MIUI14的限制,实现自定义胶囊图标和大图标样式,并支持任意APP。需要一定的动手能力和主题设计师账号权限或者会主题pojie。详细步骤包括应用包名获取、素材制作和封包获取等。 ... [详细]
  • 我们身边的网络知识
    我们身边的网络常识今天咱们交流的主题是网络基础,这块东西对于咱们计算机或者通讯专业的人来说应该是很熟悉的,今天拿出来再说一说,是因为这块知识在咱们工作和生活中时刻都在使用,并且非常 ... [详细]
author-avatar
于俊毅智文建志
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有