浅谈对【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 ...
随机推荐
- PHP练习题三
1.用PHP打印出前一天的时间格式是2006-5-10 22:21:21. echo date(‘Y-m-d H:i:s’, strtotime(‘-1 days’)); 2.不使用第三个变量交换两个 ...
- idea使用maven骨架创建maven项目
Maven 骨架创建 Java Web 项目 1) File -> New -> Project... 2) 如下图 3)如下图 GroupId和ArtifactId<项目名> ...
- LuManager升级php5.6.27方法
LuManager自带的PHP在FastCGI模式是 5.2.17版,非FastCGI模式是 5.3.14版.由于360网盘的停服,已不敢再用那些免费的网盘,干脆自己搭个私有云.查了下相关资料准备先试 ...
- springBean参数注入的几个方法
1.普通方式注入 applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> < ...
- MFC clist 学习设计
最近想设计一款WEBSHELL的综合破解工具. 然后设计到了日志输出那儿,因为MFC不熟悉,刚学.所以一直在想用edit控件好还是clist比较好. 今天设计了一下日志输出界面,然后记录一下学习笔记. ...
- CocoaPods学习系列3——创建和使用私有Pods
前一篇记录了使自己的项目支持CocoaPods管理的过程,核心的步骤就是podspec的配置和提交.这个文件,记录了类库的详细信息,用于对类库的集成. 需要注意的一点,上一篇创建的podspec文件, ...
- 十二道MR习题 - 3 - 交集并集差集
题目 有两个文件A和B,两个文件中都有几百万行数字,现在需要找出A文件和B文件中数字集合的交集.并集.以及A对B的差集. 简单说一下思路: 这个问题关键在于key和value的设计.这里我将文件中的数 ...
- 八行代码解决八皇后问题(c++)
说的有点夸装,实际上并不只是巴航代码,加上前面的变量声明之类的一共有40多行的样子吧,好像是在知乎上看到的,现在有时间再把它写下来: 其中用到了一些c++11特性,例如lambda 以及给予范围的 f ...
- 剑指offer--37.和为S的两个数字
链接:https://www.nowcoder.com/questionTerminal/390da4f7a00f44bea7c2f3d19491311b来源:牛客网@华科渣硕 不要被题目误导了!证明 ...
- css3 hover 效果
链接 链接 链接 链接 大量级 11 22 类似拉勾 33 包括各种流行的hover 小众 极光