浅谈对【OSI七层协议】的理解
我们每天都在上网冲浪,在这背后到底有那些设备、协议去支撑呢?ISO是【Open System Interconnection】的缩写,该模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架。
我们就通过对它的介绍,来了解网络通信!
我们从最底层的物理层开始介绍,一直介绍到最上层的 应用层
物理层(physical layer)
单位:bit 比特
理解:实际传送数据的 载体 就像是我们走路的地面,负责承载和种各样的信息
概念:物理层提供有关同步和全双工(单工传输指数据只能按单一方向发送和接收;半双工传输指数据可以在两个方向传输但不能同时进行,即交替收、发;全双工传输指数据可以在两个方向同时传输,即同时收和发)比特流在物理媒体上的传输手段,为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境,是整个开放系统的基础。
物理层的媒体包括架空明线、平衡电缆、光纤、无线信道等。通信用的互连设备指DTE(Data Terminal Equipment)和DCE(Data Communications Equipment)间的互连设备。
DTE即数据终端设备,又称物理设备,如计算机、终端等都包括在内;
而DCE则是数据通信设备或电路连接设备,如调制解调器等。
功能:建立、维护、断开物理连接(由底层网络定义协议)。物理层要为终端设备间的数据通信提供传输介质及其连接。
协议:其典型的协议有RS 232C、RS 449/422/423、V.24和X.21、X.21bis等。
物理设备:网卡,网线,集线器,中继器,调制解调器
数据链路层(DataLink Layer)
单位:frame 数据帧
理解:管控网络层 就像是高速收费站或者是道路的分插口,通过不同的指示,告诉你应该走哪条线路
概念:物理层要为终端设备间的数据通信提供传输介质及其连接。介质是长期的,连接是有生存期的。在连接生存期内,收发两端可以进行不等的一次或多次数据通信。
每次通信都要经过建立通信联络和拆除通信联络两个过程。
这种建立起来的数据收发关系就叫做数据链路。
而在物理媒体上传输的数据难免受到各种不可靠因素的影响而产生差错,为了弥补物理层上的不足,为上层提供无差错的数据传输,就要能对数据进行检错和纠错。
数据链路的建立,拆除,对数据的检错,纠错是数据链路层的基本任务。
建立逻辑连接、进行硬件地址寻址、差错效验等功能。(由底层网络定义协议)
功能:链路层是为网络层提供数据传送服务的,这种服务要依靠本层具备的功能来实现。链路层应具备如下功能:
链路连接的建立、拆除和分离;
帧定界和帧同步。链路层的数据传输单元是帧,协议不同,帧的长短和界面也有差别,但无论如何必须对帧进行定界;
顺序控制,指对帧的收发顺序的控制;
差错检测和恢复。
独立的链路产品中最常见的当属网卡,网桥也是链路产品。数据链路层将本质上不可靠的传输媒体变成可靠的传输通路提供给网络层。
总之:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。
协议:数据链路层协议的代表包括:SDLC、HDLC、PPP、STP、帧中继等。
物理设备:网卡,网桥,交换机
网络层(network)
协议数据单元(PDU):packet(数据包)
理解:它允许其它协议在上面行驶并找到到其它电脑的出口。进行逻辑地址寻址,实现不同网络之间的路径选择。
概念:网络层的产生也是网络发展的结果。在联机系统和线路交换的环境中,网络层的功能没有太大意义。--这句话意味着,只有广域网以上的信息传输才有意义。
当数据终端增多时。它们之间有中继设备相连,此时会出现一台终端要求不只是与惟一的一台而是能和多台终端通信的情况,这就产生了把任意两台数据终端设备的数据链接起来的问题,也就是路由或者叫寻径。
另外,当一条物理信道建立之后,被一对用户使用,往往有许多空闲时间被浪费掉。人们自然会希望让多对用户共用一条链路,为解决这一问题就出现了逻辑信道技术和虚拟电路技术。
中继控制层,其主要功能是利用数据链路层所保证的邻接节点间的无差错数据传输功能,通过路由选择和中继功能,实现两个端系统之间的数据传输。
为此,网络层还具有多路复用功能,采用统计时分复用原理,将一条数据链路复用为多条逻辑信道,从而实现一个数据终端设备利用一条物理电路同时和多个远程数据通信设备的通信。
网络层规定了网路连接的建立和拆除规程以及数据传送规程等。
其主要任务是:通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。
该层控制数据链路层与传输层之间的信息转发,建立、维持和终止网络的连接。
具体地说,数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备。
功能:网络层为建立网络连接和为上层提供服务,应具备以下主要功能:
1.路由选择和中继;
2.激活,终止网络连接;
3.在一条数据链路上复用多条网络连接,多采取分时复用技术;
4.检测与恢复;
5.排序,流量控制;
6.服务选择;
7.网络管理。
协议:ICMP IGMP IP(IPV4 IPV6) ARP RARP
物理设备:路由器
备注:在实现网络层功能时,需要解决的主要问题如下:
寻址:数据链路层中使用的物理地址(如MAC地址)仅解决网络内部(子网)的寻址问题。
在不同子网之间通信时,为了识别和找到网络中的设备,每一子网中的设备都会被分配一个唯一的地址。由于各子网使用的物理技术可能不同,因此这个地址应当是逻辑地址(如IP地址)。
交换:规定不同的信息交换方式。常见的交换技术有:线路交换技术和存储转发技术,后者又包括报文交换技术和分组交换技术。
路由算法:当源节点和目的节点之间存在多条路径时,本层可以根据路由算法,通过网络为数据分组选择最佳路径,并将信息从最合适的路径由发送端传送到接收端。
连接服务:与数据链路层流量控制不同的是,前者控制的是网络相邻节点间的流量,后者控制的是从源节点到目的节点间的流量。其目的在于防止阻塞,并进行差错检测。
传输层(transport)
协议数据单元(PDU):segment(数据段)
理解:卡车 TCP/UDP协议像是是高速公路上的“卡车”,它们携带的货物就是像HTTP,文件传输协议FTP这样的协议等。定义传输数据的协议端口号,以及流控和差错效验。
概念:运输层(传输层),解决的是计算机程序到计算机程序之间的通信问题,即所谓的“端”到“端”的通信。OSI 模型中最重要的一层。端开放系统之间的数据传送控制层。
功能:主要功能是端开放系统之间数据的收妥确认。
同时,还用于弥补各种通信网路的质量差异,对经过下三层之后仍然存在的传输差错进行恢复,进一步提高可靠性。
另外,还通过复用、分段和组合、连接和分离、分流和合流等技术措施,提高吞吐量和服务质量。
协议:工作在传输层的一种服务是 TCP/IP 协议套中的TCP(传输控制协议),另一项传输层服务是IPX/SPX协议集的SPX (序列包交换)。
用户数据报协议UDP(User Datagram Protocol):提供无连接服务;传输控制协议TCP(Transmission Control Protocol):提供面向连接服务。UDP和TCP都使用IP协议。
会话层(session layer)
协议数据单元(PDU):SPDU (数据)
理解:仓库管理员
概念:负责在网络中的两节点之间建立、维持和终止通信。(在五层模型里面已经合并到了应用层)
当通过拨号向你的 ISP(因特网服务提供商)请求连接到因特网时,ISP 服务器上的会话层向你与你的 PC 客户机上的会话层进行协商连接。
若你的电话线偶然从墙上插孔脱落时,你终端机上的会话层将检测到连接中断并重新发起连接。
会话层通过决定节点通信的优先级和通信时间的长短来设置通信期限
功能:1.将会话地址映射为运输地址;
2.数据传输阶段;
3.连接释放。
表现层(presentation layer)
协议数据单元(PDU):PPDU (数据)
理解:货物包装
概念:数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层)
数据表示形式的控制层,其主要功能是把应用层提供的信息变换为能够共同理解的形式,提供字符代码、数据格式、控制信息格式、加密等的统一表示。
功能:应用程序和网络之间的翻译官,在表示层,数据将按照网络能理解的方案进行格式化;这种格式化也因所使用网络的类型不同而不同。
表示层管理数据的解密与加密,如系统口令的处理。例如:在 Internet上查询你银行账户,使用的即是一种安全连接。
你的账户数据在发送前被加密,在网络的另一端,表示层将对接收到的数据解密。除此之外,表示层协议还对图片和文件格式信息进行解码和编码。
应用层(application)
协议数据单元(PDU):APDU(application protocol data unit)(数据)
理解:货物
概念:应用层也称为应用实体(AE),它由若干个特定应用服务元素(SASE)和一个或多个公用应用服务元素(CASE)组成。
功能:每个SASE提供特定的应用服务,例如文件运输访问和管理(FTAM)、电子文电处理(MHS)、虚拟终端协议(VAP)等。
CASE提供一组公用的应用服务,例如联系控制服务元素(ACSE)、可靠运输服务元素(RTSE)和远程操作服务元素(ROSE)等。主要负责对软件提供接口以使程序能使用网络服务。
术语“应用层”并不是指运行在网络上的某个特别应用程序 ,应用层提供的服务包括文件传输、文件管理以及电子邮件的信息处理。
协议:常见协议:HTTP FTP TFTP SMTP SNMP DNS
以上是从下到上的介绍OSI七层模型。
那么接下来我们从上到下的开始诠释OSI七层模型
我们把应用层比喻为货物,那么我们首先在应用层将货物产生出来。
应用层:
|--产生货物。即产生数据。
表现层:
|--货物处理并进行打包。即数据的表示、安全、压缩。
会话层:
|--仓库管理员,确定货物的目的地。即负责在网络中的两节点之间建立、维持和终止通信。
传输层:面向通信部分的最高层,也是用户功能中的最底层。
|--卡车,进行货物的运输。同时还扮演着司机的角色,因为在不同子网之间通信时,为了识别和找到网络中的设备,每一子网中的设备都会被分配一个唯一的地址。
|--由于各子网使用的物理技术可能不同,因此这个地址应当是逻辑地址(如IP地址)。相当于要找到中转站的地址。
网络层:路由器
|--公路,只有卡车没有公路也不行,那么多车肯定要有秩序。开始的时候我们修路是为了一端到另一端,可能最初的时候就是一家人到另一家人。
|--可是后来村子里的人多了起来,我们就希望这条路上多些人走,或者多些车行驶。为解决这一问题就出现了逻辑信道技术和虚拟电路技术。
数据链路层:交换机
|--政府,或者警察。 建立逻辑连接、进行硬件地址寻址、差错效验等功能。说白了就是对网络层下来的数据进行控制,看看是否出错;并且对物理层传输的时候产生的错误进行弥补。
物理层:架空明线、平衡电缆、光纤、无线信道等
|--大地。一切数据传输的基础。
以上的比喻纯属个人观点,帮助新手理解OSI七层模型。
下面附送一张个人觉得特别好的一张
OSI解释图:
注意:此图仅供初学者了解OSI七层模型。

本文帮助新人理解计算机网络的大概,计算机网络是一个很庞大的知识体系,要想深入研究还是要多看书,本人在学校学的时候是谢希仁老师的《计算机网络》第六版。
正如上面的比喻一样,本文只是很肤浅的介绍了计算机网络的七层结构。
当我们真正到现实生活中,运输一个东西也是有很多很多繁杂的步骤。
那么问题来了:
为什么有步骤?这个问题就好像你饿了要吃馒头,可是没有馒头你怎么吃馒头呢?肯定要先生产馒头吧。
那么怎么生产馒头呢?根据经验我们知道了怎么生产馒头,然后我们就有的吃了。
那么同理,我们生活中的步骤,生产过程的规定,运用到计算机网络上面来就是一个一个的协议。
现在我们的学习方向变为了对协议的学习。
另附一张:出处不详。。。


浅谈对【OSI七层协议】的理解的更多相关文章
- OSI七层协议模型、TCP/IP四层模型学习笔记
1. OSI七层和TCP/IP四层的关系 1.1 OSI引入了服务.接口.协议.分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型. 1.2 OSI先有模型,后有协议,先有标准,后进行 ...
- 软件开发架构介绍||OSI七层协议之物理层、数据链路层、网络层、传输层(mac地址、ip协议、断开协议、tcp协议之三次握手四次挥手)
一.网络编程 软件开发架构 C/S架构 C:客户端 想体验服务的时候才会去找服务端体验服务 S:服务端 24小时不间断的提供服务,即时监听,随时待命 B/S架构 B:浏览器 想体验服务的时候 ...
- OSI七层协议模型、TCP/IP四层模型和五层协议体系结构之间的关系
一.OSI七层模型 OSI七层协议模型主要是:应用层(Application).表示层(Presentation).会话层(Session).传输层(Transport).网络层(Network).数 ...
- 网络编程之OSI七层协议略析
OSI七层协议 1 物理连接层 用高低电平模拟二进制数01012 数据链路层 以太网协议,Ethernet,要求连入网络的计算机必要要有一块网卡,并且规定全球每一块网卡的mac 地址都不一样,用12位 ...
- 网络之OSI七层协议模型、TCP/IP四层模型
13.OSI七层模型各层分别有哪些协议及它们的功能 在互联网中实际使用的是TCP/IP参考模型.实际存在的协议主要包括在:物理层.数据链路层.网络层.传输层和应用层.各协议也分别对应这5个层次而已. ...
- 简述OSI七层协议模型、TCP/IP四层模型和五层协议之间的关系
一.OSI七层模型 OSI七层协议模型主要是:应用层(Application).表示层(Presentation).会话层(Session).传输层(Transport).网络层(Network).数 ...
- Day09: socket网络编程-OSI七层协议,tcp/udp套接字,tcp粘包问题,socketserver
今日内容:socket网络编程 1.OSI七层协议 2.基于tcp协议的套接字通信 3.模拟ssh远程执行命令 4.tcp的粘包问题及解决方案 5.基于udp协议的套接字 ...
- 网络框架,互联网的组成,OSI七层协议,抽象层
6.25自我总结 1.网络框架 1.单机 单机游戏 以下两个基于网络的 2.CS架构 cs--->client客户/server服务 服务端(应用程序)一个就够了,客户端(应用程序)可以有多个 ...
- 网络编程网络协议篇(osi七层协议)
一 互联网的本质 咱们先不说互联网是如何通信的(发送数据,文件等),先用一个经典的例子,给大家说明什么是互联网通信. 现在追溯到八九十年代,当时电话刚刚兴起,还没有手机的概念,只是有线电话,那么此时你 ...
- 8.6 day27 网络编程 osi七层协议 Time模块补充知识 TCP协议
Time模块补充知识 date和datetime区别是什么? date 就是年月日 datetime就是年月时时分秒 以下代码为什么会报错? import json from datetime imp ...
随机推荐
- C语言之非常简单的几道题
C语言之非常简单的几道题(还是写写),比较简单吧,主要有几道题的数据类型(如,第三题)和语句顺序(如,第二题)需要注意一小下下. 1. 求表达式S=1*2*3……*N的值大于150时,最小的N的值 / ...
- JNI简单步骤01
1.环境变量 1.1.相应的环境变量中,加入如下内容:(Windows) (1).ClASSPATH中输入 : ".;C:\Program Files\Java\jdk1.7.0_07\jr ...
- Spring scope解惑
在2.0之前只有两种singleton和prototype(网上说的,没去验证),后面增加了session.request.global session三种专门用于web应用程序上下文的Bean Si ...
- ACM International Collegiate Programming Contest, Tishreen Collegiate Programming Contest (2018) Syria, Lattakia, Tishreen University, April, 30, 2018
ACM International Collegiate Programming Contest, Tishreen Collegiate Programming Contest (2018) Syr ...
- 使用springmvc的时候报错NoSuchBeanDefinitionException: No qualifying bean of type
NoSuchBeanDefinitionException: No qualifying bean of type 其实我至今都不知道错误的根源在哪里,<context:component-sc ...
- 发现project项目打红色感叹号的一种解决方案
在window-preferences中的xml catalog中对打叉的dtd进行remove. 很有可能是包导错了,打开config build path然后将打红叉的文件进行remove.
- DDOS 攻击工具
DDOS 攻击工具 使用github上的DDOS攻击工具 https://github.com/Ha3MrX/DDos-Attack 将python脚本拷贝到主机,使用 chmod +x ddos- ...
- fiddler抓取不到HTTPS响应
火狐浏览器也安装证书了,但还是抓取不到HTTPS类型的数据包 解决办法:设置代理时在 为所有协议使用相同代理服务器(S)前打钩
- Flexible实现H5页面的rem布局适配
1.https://www.w3cplus.com/mobile/lib-flexible-for-html5-layout.html (使用Flexible实现手淘H5页面的终端适配) 2.http ...
- Juniper
Juniper Networks[编辑] Juniper Networks 公司类型 上市(NYSE:JNPR) 成立 1996年2月 代表人物 执行长:Shaygan Kheradpir技术 ...