OSI七层经典模型架构以及网络的基本概念
在大、中型网络中,通常通过模块化方式将网络功能结构进行分解。但是在各个模块内部,还是存在结构的扩展和弹性问题。
譬如一个园区网络需要接入大量用户等,这个问题一般通过网络的层次化来解决。 传统的网络采用三个层次,核心、汇聚、接入各司其职,核心层提供数据高速通路,汇聚层进行流量汇聚和控制策略,接入层为终端提供多种接入方式。
但是呢?在实际的环境中呢?比如我们以一个典型园区网络架构为例:

OSI:Open System Interconnect Reference Model, 开放式系统互联参考模型。
OSI模型的设计目的是成为一个开放网络互联模型,来克服使用众多网络模型所带来的互联困难和低效性。
OSI参考模型很快成为计算机网络通信的基础模型。
在设计时遵循了以下原则: 各个层之间有清晰的边界,便于理解; 每个层实现特定的功能,且相互不影响;
每个层是服务者又是被服务者,即为上一层服务,又被下一层服务;
层次的划分有利于国际标准协议的制定;
层次的数目应该足够多,以避免各个层功能重复。
OSI参考模型具有以下优点:
简化了相关的网络操作;
提供即插即用的兼容性和不同厂商之间的标准接口;
使各个厂商能够设计出互操作的网络设备,加快数据通信网络发展;
防止一个区域网络的变化影响另一个区域的网络,因此,每一个区域的网络都能单独快速升级;
把复杂的网络问题分解为小的简单问题,易于学习和操作。

OSI七层模型中,给每一个对等层数据起一个统一的名字为:协议数据单元(PDU,Protocol Data Unit)。相应地,应用层数据称为应用层协议数据单元(APDU,Application Protocol Data Unit),表示层数据称为表示层协议数据单元(PPDU,Presentation Protocol Data Unit),会话层数据称为会话层协议数据单元(SPDU,Session Protocol Data Unit)。通常,我们把传输层数据称为段(Segment),网络层数据称为数据包(Packet),数据链路层称为帧(Frame),物理层数据称为比特流(Bit)。 封装(Encapsulation)是指网络节点(Node)将要传送的数据用特定的协议头打包,来传送数据,同样在某些层进行数据处理时,也会在数据尾部加上报文,这时候也称为封装。OSI七层模型的每一层都对数据进行封装,以保证数据能够正确无误的到达目的地,被终端主机接受、执行。

物理层涉及到在通信信道(channel)上传输的原始比特流,是OSI参考模型的基础,它实现传输数据所需要的机械、电气功能特性。它不关心每一bit流(0,1)所代表的含义( 如代表地址还是应用数据),只关注如何把bit流通过不同物理链路传输至对端。典型的像中继器、集线器(hub)就属于物理层设备。 链路层主要任务是提供对物理层的控制,检测并纠正可能出现的错误,使之对网络层显现一条无错线路,并且进行流量调控。 网络层检查网络拓扑,以决定传输报文的最佳路由,转发数据包。其关键问题是确定数据包从源端到目的端如何选择路由。网络层设备通过运行路由协议(Routing Protocol)来计算到目的地的最佳路由,找到数据包应该转发的下一个网络设备,然后利用网络层协议封装数据包,利用下层提供的服务把数据发送到下一个网络设备。 传输层位于OSI参考模型第四层,最终目标是向用户(一般指应用层的进程),提供有效、可靠的服务。 在会话层及以上的高层次中,数据传送的单位不再另外命名,统称为报文。会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。 表示层主要解决用户信息的语法表示问题。它将欲交换的数据从适合于某一用户的抽象语法,转换为适合于OSI系统内部使用的传送语法。即提供格式化的表示和转换数据服务。数据的压缩和解压缩,加密和解密等工作都由表示层负责。 应用层为操作系统或网络应用程序提供访问网络服务的接口。

TCP/IP(Transfer Control Protocol/Internet Protocol,传输控制协议/网际协议)模型的开放性和易用性,以致在实践中得到了广泛应用,从而使TCP/IP协议栈事实上的标准协议。 TCP/IP模型与OSI参考模型的不同点在于TCP/IP把表示层和会话层都归入应用层,所以TCP/IP模型从下至上分为四层:网络接口层,网络层,传输层和应用层。在有些文献中也划分成五层,即把物理层也单独列出。

TCP/IP协议每一层都有对应的相关协议,且均为达成某一网络应用而产生,对于某些协议在分层上还不能严格对其定义。
比如ICMP、IGMP、ARP、RARP协议我们把他们放在与网络层IP协议同一层。
但在某些场合我们可能会把ICMP、IGMP放在IP协议的上层,而把ARP、RARP放在IP协议的下层。
应用层 HTTP(超文本传输协议):用来访问在WWW服务器上的各种页面。
FTP(文件传输协议):为文件传输提供了途径,它允许数据从一台主机传送到另一台主机上。
DNS(域名服务系统):用于实现从主机域名到IP地址之间的转换。
传输层 TCP (传输控制协议) :为应用程序提供可靠的面向连接的通信服务,适用于要求得到响应的应用程序。目前,许多流行的应用程序都使用TCP。
UDP(用户数据报协议):提供了无连接通信,且不对传送数据包进行可靠的保证。适合于一次传输小量数据,可靠性则由应用层来负责。
网络层 IP(互联网协议):IP协议和路由协议协同工作, 寻找能够将数据包传送到目的端的最优路径。IP协议不关心数据报文的内容,提供无连接的、不可靠的服务。
ARP(地址解析协议):把已知的IP地址解析为MAC地址。
RARP(反向地址解析协议):用于数据链路层地址已知时,解析IP地址。
ICMP(网际控制消息协议):定义了网络层控制和传递消息的功能。
IGMP(网际组管理协议):用于组播组成员管理。
数据链路层 数据链路层分为两个子层:逻辑链路控制子层(LLC, Logic Link Control Sublayer),介质访问控制子层(MAC, Media Access Control Sublayer)。

OSI七层经典模型架构以及网络的基本概念的更多相关文章
- 网络之OSI七层协议模型、TCP/IP四层模型
13.OSI七层模型各层分别有哪些协议及它们的功能 在互联网中实际使用的是TCP/IP参考模型.实际存在的协议主要包括在:物理层.数据链路层.网络层.传输层和应用层.各协议也分别对应这5个层次而已. ...
- OSI七层协议模型、TCP/IP四层模型学习笔记
1. OSI七层和TCP/IP四层的关系 1.1 OSI引入了服务.接口.协议.分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型. 1.2 OSI先有模型,后有协议,先有标准,后进行 ...
- OSI七层协议模型、TCP/IP四层模型和五层协议体系结构之间的关系
一.OSI七层模型 OSI七层协议模型主要是:应用层(Application).表示层(Presentation).会话层(Session).传输层(Transport).网络层(Network).数 ...
- 简述OSI七层协议模型、TCP/IP四层模型和五层协议之间的关系
一.OSI七层模型 OSI七层协议模型主要是:应用层(Application).表示层(Presentation).会话层(Session).传输层(Transport).网络层(Network).数 ...
- OSI七层协议模型、TCP/IP四层模型
OSI七层协议模型 TCP/IP四层模型 首先我们梳理一下每层模型的职责: 链路层:对0和1进行分组,定义数据帧,确认主机的物理地址,传输数据: 网络层:定义IP地址,确认主机所在的网络位置,并通过I ...
- 速记OSI七层协议模型
OSI七层协议模型 第一层:物理层(Physical) 第二层:数据链路层(Data-Link) 第三层:网络层(NetWork) 第四层:传输层(Transport) 第五层:会话层(Session ...
- OSI七层与TCP/IP五层网络架构详解
引用自:http://www.2cto.com/net/201310/252965.html OSI和TCP/IP是很基础但又非常重要的网络基础知识,理解得透彻对运维工程师来说非常有帮助.今天 ...
- OSI七层与TCP/IP五层网络架构
OSI七层模型 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 表示层 数据格式化,代 ...
- python之路28 网络编程基础之OSI七层协议模型
OSI七层协议 """ 七层模型,亦称OSI(Open System Interconnection).参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间 ...
- OSI七层协议模型
OSI七层模型详解 TCP/IP协议 链接:https://www.nowcoder.com/questionTerminal/b2ccf60bbb13483b94b4bffe200b4f3c 来源: ...
随机推荐
- java内存区域——daicy
Java虚拟机 运行时数据区 主要分为五部分:方法区,堆(这两块是所有线程共享的区域),程序计数器,本地方法栈,虚拟机栈(vm stack)(这三块为线程隔离区域) 程序计数器(Program Cou ...
- Java之基础语法
最近发现公司中老的项目有些是基于Java开发的, 为了更好的后期维护 不得而要好好了解一下java, 之前一直比较抵触这门语言,现在随着了解的语言(PHP,Python,golang,shell,no ...
- nodejs版本管理工具之nvm
有时候 项目中依赖不同版本的node,这就需要我们使用一个版本管理工具 有序的管理这些node,这里介绍使用nvm GitHub地址:https://github.com/nvm-sh/nvm 前提: ...
- vagrant搭建开发环境
一:我们为什么需要用这玩意 我们在开发中经常会面临的问题:环境不一致,有人用Mac有人用Windos还有几个用linux的,而我们的服务器都是linux. 在我本地是可以的啊,我测了都,没有问题啊,然 ...
- Java设计模式——职责链模式:解锁高效灵活的请求处理之道
嘿,各位 Java 编程大神和爱好者们!今天咱们要一同深入探索一种超厉害的设计模式--职责链模式.它就像一条神奇的"处理链",能让请求在多个对象之间有条不紊地传递,直到找到最合适的 ...
- PythonDay5Advance
PythonDay5Advance 函数和模块 main函数要有,用户自己选择要做的功能,根据选择调用不同的函数 用户注册的信息需要使用一个文件存储,登录需要判断用户是否存在,密码是否正确 注册的时候 ...
- 构建交互式聊天界面:react-chat-element 实战小计
react聊天组件库:react-chat-elements 需求场景:用户可以通过多元的用户交互方式,如文件.图片.声音以及文字等输入相关信息,AI给出对应的回答 react-chat-elemen ...
- Gitbook在Docker中安装插件的方法
别光在那百度,什么先book.json添加plugin,然后在install? 哥,你现在用的是docker哎,docker都启动不了,你如何gitbook install呢? 乖乖听我的,按我的方法 ...
- Rapid SCADA v6安装常见问题
用了很多年的Rapid SCADA v5,现在官网已经推出了v6,就简单写一下有关v6的安装指南吧. 本指南面向Windows用户,不适用于linux用户 步骤 从官网下载Rapid SCADA最新的 ...
- Git+Gitee使用分享
Git+Gitee快速入门 创建仓库 初始化本地仓库 验证本地git是否安装好 打开cmd窗口,输入git 这样就OK. Git 全局设置:(只需要设置一次) 这台电脑如果是第一次使用 ...