热门标签 | 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协议作为重要层次,所以网络层中是面向无连接的


五层参考模型

 

 

 


推荐阅读
  • 最近在看GitHub上的一个很火的项目是:ImageSharp。这是一个纯.netcore的图像处理库,没有使用其他的任何依赖。在看这个项目过程中激发了我对图像文件编码解码的兴趣。 ... [详细]
  • 计算机网络计算机网络分层结构
    为了解决计算机网络复杂的问题,提出了计算机网络分层结构。计算机网络分层结构主要有OSI7层参考模型,TCPIP4层参考模型两种。为什么要分层不同产商 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • Panabit应用层流量管理解决方案
    Panabit是一款国内领先的应用层流量管理解决方案,提供高度开放且免费的专业服务,尤其擅长P2P应用的精准识别与高效控制。截至2009年3月25日,该系统已实现对多种网络应用的全面支持,有效提升了网络资源的利用效率和安全性。 ... [详细]
  • 大数据环境下的存储系统构建:挑战、方法和趋势
    大数据环境下的存储系统构建:挑战、方法和趋势陈游旻,李飞,舒继武清华大学计算机科学与技术系,北京100084摘要:互联网规模的迅速扩展促使 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 本文回顾了作者初次接触Unicode编码时的经历,并详细探讨了ASCII、ANSI、GB2312、UNICODE以及UTF-8和UTF-16编码的区别和应用场景。通过实例分析,帮助读者更好地理解和使用这些编码。 ... [详细]
  • 本章介绍了TCP/IP协议族中的链路层,其主要功能是为IP模块发送和接收IP数据报。链路层还支持一些辅助性协议,如ARP。此外,本文详细探讨了不同类型的链路层技术及其应用。 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • Controller Generator Outputs Model JavaScript File to App Assets Directory ... [详细]
  • 本文详细介绍了在Linux系统上编译安装MySQL 5.5源码的步骤。首先,通过Yum安装必要的依赖软件包,如GCC、GCC-C++等,确保编译环境的完备。接着,下载并解压MySQL 5.5的源码包,配置编译选项,进行编译和安装。最后,完成安装后,进行基本的配置和启动测试,确保MySQL服务正常运行。 ... [详细]
  • 在CodeIgniter框架中集成新库文件的过程中,我遇到了一些困惑。具体来说,在跟随nettuts的认证教程时,对于在Welcome控制器中添加的构造函数代码,特别是关于Session的验证部分,我感到不太理解。这部分内容涉及如何确保Session已经初始化并具备相应的功能,这对于实现用户认证至关重要。为了更好地掌握这一知识点,我计划深入研究CodeIgniter的官方文档,并参考更多相关资源,以确保能够正确地集成和使用新库文件。 ... [详细]
  • 计算机网络软考基础知识,软考基础知识专题5:计算机网络知识
    全国计算机资格与水平考试软件设计师复习资料专题五:计算机网络知识1、计算机网络知识1.1计算机网络知识概述:计算机网络的发展:计算机网络就 ... [详细]
  • Linux内核那些事之连接跟踪
    “本文分析了Linux内核连接跟踪的关键实现”连接跟踪(也叫会话管理)是状态防火墙关键核心,也是很多网元设备必不可少的一部分。各厂商的实 ... [详细]
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社区 版权所有