网络分层

网络分层

  ISO提出的OSI(Open System Interconnection)模型将网络分为七层,即物理层( Physical )、数据链路层(Data Link)、网络层(Network)、传输层(Transport)、会话层(Session)、表示层(Presentation)和应用层(Application)。OSI模型并不是一个标准,而是一个概念性框架,一个在制定标准时使用的概念性框架。

OSI模型中各层功能

OSI中的层
功能
例子
应用层
为应用软件而设计的接口,实现与另一应用软件进行网络通信的功能
HTTP、SMTP、SSH、Telnet、POP3等
表示层
把数据格式化为适合传输且能被接收者兼容的格式
XDR、ASN.1、ASCII等
会话层
设置和维护网络中两台计算机之间的通信连接
RPC、BSD sockets、密码验证协议等
传输层
提供端对端的接口(把传输表头加至数据以形成数据包)
TCP、UDP、RTP等
网络层
为数据包选择路由(决定数据的路径选择和转寄,把网络表头加至数据以形成数据包)
IP、IPX、ICMP、BGP等
数据链路层
负责网络寻址、错误侦测和发错;添加表头和表尾,生成数据帧;分为LLC和MAC两个子层
以太网、令牌环、帧中继、PPP、IEEE802.11等
物理层
以二进制数据形式在物理媒体上传输数据(数据帧)
调制解调器、无线电、光纤等

TCP/IP是事实的标准

  OSI模型的分层复杂且不实用,在因特网中,实际使用的是TCP/IP分层模型。
  TCP/IP分层模型(TCP/IP Layering Model),又称作因特网分层模型(Internet Layering Model)或因特网参考模型(Internet Reference Model),是我们“现实所见”的各层。它是现实存在的,通过它,我们可以用比较简单的方式,理解现实网络是如何以分层的方式搭载起来的。
  TCP/IP分层模型在各层名称上,虽然有的与OSI模型中的一样,但它们并不完全是相同的东西。TCP/IP协议分层模型有:四层模型、五层模型以及七层模型。
  • 四层模型:网络接口层、网络层、传输层、应用层
  • 五层模型:物理层、数据链路层、网络层、传输层、应用层
  • 七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
不同人员关注的模型不一样:
  对于普通大众,可能会更关注四层模型,因为物理层和数据链路层都是跟网卡和物理线路有关,会话层、表示层、应用层都属于上层制定协议规则的人员决定。
  对于网络设备公司,可能更关注五层协议模型,因为他们生产的设备要明确区分物理层和数据链路层,物理设备更关注数据的传输,相对不太关注应用层协议定制。
  对于制定应用层协议的人员,就要更关注七层协议,选择TCP还是UDP,数据的加解密方式,压缩格式等,SSH、HTTPS这些协议的,就要关注并区分会话层、表示层、应用层负责处理哪些功能。
四层模型
五层模型
七层模型
1.应用层
1.应用层
1.应用层
2.表示层
3.会话层
2.传输层
2.传输层
4.传输层
3.网络层
3.网络层
5.网络层
4.网络接口层
4.数据链路层
6.数据链路层
5.物理层
7.物理层
应用层
  通常人们认为OSI模型的最上面三层在TCP/IP分层模型中是一个应用层,是普通的与网络相关的程序之间进行通信所使用的层。该层处理过程是应用特有的,网络相关的程序以应用内部使用的格式进行数据传送,数据被编码成标准协议的格式,传递到下一层。TCP/IP(传输层)中有一个相对较弱的会话层,由TCP和RTP的打开和关闭连接组成。
传输层
  通常人们认为OSI模型的传输层与之对应。传输协议(如TCP)解决端到端的可靠性(是否到达目的地)和保证数据 按照正确顺序到达这样的问题,也包括解决数据应该发送给哪个应用程序(通过端口号)。
  TCP协议:通信双方通过三次握手(3个数据包的交互)创建连接;双方内部维护了一个连接状态的字段,双方通过该状态来判断连接是否有效,一般通过定期发送心跳包的方式,然后等待对方响应心跳包来判断对方是否在线,以维持连接;正常的断开连接是通过四次握手(4个数据包交互)告知对方关闭连接,4次交互过程中通过不断修改内部维护的那个连接状态字段,直到最终在操作系统撤销Socket资源。

物理层
  涉及物理实体(传输媒体),在连接的各种传输媒体之间传输比特流。作用:尽可能消灭掉不同传输媒体和通信手段的差异。用于物理层的协议也常称为物理层规程 (procedure)。
  电缆/光缆传输的是高低电平0/1的比特流。物理层不是指具体的物理实体(传输媒体)。
  物理层的主要任务,确定与传输媒体的接口的一些特性。4 个特性:
    机械特性:指明接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等。
    电气特性:指明在接口电缆的各条线上出现的电压的范围。
    功能特性:指明某条线上出现的某一电平的电压的意义。
    过程特性:指明对于不同功能的各种可能事件的出现顺序
数据链路层:
  在一条物理线路之上,通过一些规程或协议来控制数据的传输,以保证被传输数据的正确性。实现这些规程或协议的硬件和软件加上物理线路,就构成了数据链路(从数据发送点到数据接收点所经过的传输途径)。当采用复用技术时,一条物理链路上可以有多条数据链路。
  数据链路层主要有两个功能 :帧编码和误差纠正控制。帧编码意味着定义一个包含信息频率、位同步、源地址、目标地址以及其他控制信息的数据包。数据链路层协议又被分为两个子层 :逻辑链路控制(LLC)协议和媒体访问控制(MAC)协议。
  每个网络设备都最少有一个网卡(运营商网络路由器的每个端口是一个网卡),每个网卡有网卡地址也叫硬件地址(英文缩写MAC),数据链路层的协议数据单元数据帧(PDU)的首部信息里面有自身MAC和目的MAC,这也是属于物理层范畴,因为需要涉及具体的物理设备连接。
网络层
  对应OSI模型中叫做网络层。
  根据目的IP进行发送,一般都是IP路由转发协议,而它最终会转化到数据链路层。需要使用到链路层的ARP协议,ARP协议可以根据网络层PDU的IP地址获得物理地址,这样就可以使得数据链路层能知道发送到哪个MAC,MAC地址只需要局域网内部唯一就可以正确转发到目的MAC。

总体而言:
  物理实体【包括个人电脑、路由等】遵守物理层协议,实现自己的功能。向上,消灭物理实体之间的差异,将信号抽象为比特流;向下,物理实体依据自己的原理而工作,比如,无线路由器在规定射频波段中发送电磁波信号等。
  网线、无线电等,以及它们两端点的物理设备,构成了数据链路层,遵守数据链路层协议,使它们能够在两端点之间正确传输数据。向下,将数据编码转为物理信号,供物理层传输;向上,将物理信号转为编码,实现帧编码和误差纠正等。
  无数条数据链路构成了网络,而实现网络的第一步,就是区分每条链路的端点,于是IP协议应用而生,只有区分了不同端点,才可以向上为数据传输提供基础,向下找到具体数据链路进行传输数据。
  网络最基础、最应该、最本该实现的功能就是“数据传输”——遵守不同的传输层协议(比如:TCP、UDP),实现不同要求的数据传输,以在不同IP的端点之间进行数据流转,如果再配上端口号,则可轻松实现网络里“应用程序”之间的数据传输。
  此时,数据传输并没有所谓的“状态”存在(Session),不能持久地为“应用程序”提供传输服务,会话层的诞生,就是为了解决这个问题。会话层协议(如果有)约定了建立、管理和终止本地和远程应用程序之间的连接的方式(一般,应用程序内部会显式实现会话的管理维护)。在现代 TCP/IP 系统中,会话层是不存在的,只是 TCP 协议的一部分。在 OSI 模型中,这一层负责优雅地关闭会话,还负责会话的“检查点”和恢复。可以作一个形象的比喻,“会话”是“数据传输”的主管,统领一批数据传输的连接,而会话层,就是这位主管的管理方式。到了此层,数据仍然是接收者不可识别、不可理解的“纯乱码”。
  从数据透明性的角度讲,从物理层至会话层,基本目的是实现透明的数据运输。而表示层和应用层,则是对数据的理解和使用,并不透明。
  表示层(或称表达层),负责把数据转换为与系统格式兼容(并适合传输[压缩、加密等])的格式,关心“被传输数据”发出的语法和语义。作为接收者,使用协议以将“乱码”读懂;或作为发送者,按协议将数据转为接收者可读懂的“码”。该层协议(如果有)是网络数据和应用程序数据的翻译者,比如,将 EBCDIC 编码的文本文件转换为 ASCII 编码的文件,将对象序列化为XML或将XML反序列化为对象……题外话,加密分为链路加密和端到端的加密,对于表示层,参与的加密属于端到端的加密。
  应用层并不是应用程序实体本身,是开放的、被传输数据进入应用程序实体的、与另一应用软件之间进行通信的接口。例如,预订网站可能有两个应用程序实体:一个使用 HTTP 与其用户通信,另一个使用远程数据库协议来记录预订。因此,应用层无法确定网络中资源的可用性,而是交由应用程序实体内部进行。另一种对应用层的理解可以是:应用层是在不同应用程序实体之上抽象出来的“应用程序”,总之,它绝不是应用程序实体本身。比如,HTTP协议,并不是IIS应用程序或者Tomcat等。
posted @ 2021-06-26 02:51  误会馋  阅读(541)  评论(0编辑  收藏  举报