OSI参考模型

OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。

模型优点

建立七层模型的主要目的是:

  • 为解决异种网络互连时所遇到的兼容性问题。

最大优点是将服务、接口和协议这三个概念明确地区分开来:

  • 服务说明某一层为上一层提供一些什么功能
  • 接口说明上一层如何使用下层的服务
  • 而协议涉及如何实现本层的服务

网络七层的划分也是为了使网络的不同功能模块(不同层次)分担起不同的职责,从而带来如下好处:   

  • 减轻问题的复杂程度,一旦网络发生故障,可迅速定位故障所处层次,便于查找和纠错;   
  • 在各层分别定义标准接口,使具备相同对等层的不同网络设备能实现互操作,各层之间则相对独立,一种高层协议可放在多种低层协议上运行;   
  • 能有效刺激网络技术革新,因为每次更新都可以在小范围内进行,不需对整个网络动大手术;   
  • 便于研究和教学。

模型的划分

OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
TCP/IP分层(4层):物理层、 网络层、传输层、 应用层。
五层协议 (5层):物理层、数据链路层、网络层、传输层、 应用层。
OSI定义了网络互连的七层框架,即ISO开放互连系统参考模型,如下图:
分布式通信-七层协议 - 图4

各层功能定义

物理层(Physical Layer)

OSI 模型的最低层或第一层,作用就是通过物理手段把电脑连接起来,它主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等,它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。在这一层,数据还没有被组织,仅作为原始的位流或电气电压处理,单位是比特。
物理层有:RJ45、CLOCK、IEEE802.3 (中继器,集线器,网关,调制解调器,网线,双绞线,同轴电缆)

数据链路层(Datalink Layer)

定义

物理层就是传输电路的0和1信号的,但是单纯的0和1没有意义,必须规定解读方式:多少个0和1算一组?每个信号有什么意义?——这就是链路层的意义,它在物理层的上方,将比特组合成字节,再将字节组合成帧,使用链路层地址 (以太网使用MAC地址)来访问介质,并进行差错检测但不能纠正。
数据链路层有:PPP、FR、STP、SDLC、HDLC、VLAN、MAC (网桥,交换机,帧中继)

以太网协议

早些时候,各个公司都有自己的电信号分组方式,后来出现了“以太网”这种协议逐渐占据了主导的地位。“以太网”规定,一组电信号构成一个数据包,叫做“帧(Frame)”;每一帧分成两个个部分:标头(Head)和数据(Data)。
因此,数据链路层链路层的数据包就叫“以太网数据包”,他由“标头”和“数据”两部分组成——其中,“标头”包含数据包的一些说明项,比如发送者、接受者、数据类型等等。
**

MAC地址

以太网规定,连入网络的所有设备,都必须具有“网卡”接口。数据包必须是从一块网卡,传送到另一块网卡,网卡的地址,就是数据包的发送地址和接受地址,也叫MAC地址
每块网卡出厂的时候,都有全世界独一无二的MAC地址,长度是48位的二进制,通常用12个十六进制数表示。
前6个十六进制是厂商编号,后6个是该厂商的网卡流水号,有了MAC地址,就可以定位网卡和数据包的路径了。

广播

一块网卡怎么只带另一块网卡的MAC地址?以太网采用了一种很”原始”的广播式的方式,它不是把数据包准确送到接收方,而是向本网络(局域网)内所有计算机发送,让每台计算机自己判断,是否为接收方
一台计算机向本局域网内的所有电脑均发送相同的数据包,其他计算机收到这个数据包之后,会读取这个数据包的“标头”,找到其中接收方(目标方)的MAC地址,然后与自身的MAC地址进行比对,如果两者相同,说明就是要发给自己的,然后接受这个包并做出进一步的处理,否则丢弃这个包。这种发送方式就叫“广播”,主要通过分组交换机或者网络交换机进行。

网络层(Network Layer)

根据上面的讲解,理论上依靠MAC地址和广播技术,上海的网卡发出的数据包就可以找到洛杉矶网卡了——但是如果全世界的计算机都这么干,那么每一台计算机发出的数据包都同步广播到全世界其他电脑,再一一比对判断,这样显然是低效、不现实的。

因此,上面我们强调,广播是在发送者所在的局域网内广播的,不同也就是说,如果两台计算机没有在同一个子网(局域网)内,是无法通过广播直接传过去的。前面我们说过,互联网是由一个个子网组成的更大的子网,一级一级组网,最终构成的互联网。

因此我们必须找到一种方法,区分哪些MAC地址属于同一个子网。如果是同一个子网就采用广播的形式,如果不是,则采用“路由”的方式(后面会讲)发送——这就导致了网络层的出现,他的作用是引入一套新的地址,使我们能够区分哪些计算机属于同一个子网,这个套机制就叫做“网络地址”,也就是“IP地址”
网络层通过IP寻址来建立两个节点之间的连接,为源端的运输层送来的分组,选择合适的路由和交换节点,正确无误地按照地址传送给目的端的运输层,就是通常说的IP层。
网络层有:IP、ICMP、IGMP、ARP、RARP、OSPF、IPX、RIP、BGP、IPSec、GRE、IGRP(路由器)

IP协议

网络地址由32个二进制位组成,习惯上,我们分成四段十进制数表示IPV4地址,从0.0.0.0到255.255.255.255。
互联网上的每一台计算机,都会被分配到一个IP地址,这个地址由两部分组成,前一部分代表网络,后一部分代表主机(又称终端)。

子网掩码

单从IP地址,我们无法判断两台计算机是否处于同一个网络,这时候需要子网掩码。所谓”子网掩码”,就是表示子网络特征的一个参数,它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0。
知道”子网掩码”,我们就能判断,任意两个IP地址是否处在同一个子网络。方法是将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。

IP数据包

根据IP协议发送的数据,就叫做IP数据包。不难想象,其中必定包括IP地址信息。
但是前面说过,以太网数据包只包含MAC地址,并没有IP地址的栏位。那么是否需要修改数据定义,再添加一个栏位呢?
回答是不需要,我们可以把IP数据包直接放进以太网数据包的”数据”部分,因此完全不用修改以太网的规格。这就是互联网分层结构的好处:上层的变动完全不涉及下层的结构。
具体来说,IP数据包也分为”标头”和”数据”两个部分。
分布式通信-七层协议 - 图5
“标头”部分主要包括版本、长度、IP地址等信息,”数据”部分则是IP数据包的具体内容。它放进以太网数据包后,以太网数据包就变成了下面这样。

分布式通信-七层协议 - 图6

IP数据包的”标头”部分的长度为20到60字节,整个数据包的总长度最大为65,535字节。因此,理论上,一个IP数据包的”数据”部分,最长为65,515字节。前面说过,以太网数据包的”数据”部分,最长只有1500字节。因此,如果IP数据包超过了1500字节,它就需要分割成几个以太网数据包,分开发送了。

路由/路由器/网关/交换机

上面我们已经确定了两台计算机是否遭同一个子网中,如果在,则采用广播+MAC寻址的的方式发送数据包,如果不是,则要采用“路由”的方式了,那么什么是“路由”呢?

路由

就是通过互联的网络把信息从源地址传输到目的地址的活动。路由引导分组转送,经过一些中间的节点后,到它们最后的目的地。
从“路由”的定义中可以看到,“路由”是一种活动,一种动作,一种行为,作用是是将信息从原地址传输到目的地址,比较特殊的是,原地址和目标地址是在两个不同的子网中的。那么如何传输呢?路由定义一条路径,经过因特网发送包到另一网络上的地址,但路由不定义完全路径,只定义从主机到可以将包转发到目的地的网关(子网)间的路径段(或从一个子网到另一个子网)。

路由器

简单理解就是实现路由功能的机器。路由器连接两个或多个网络并提供路由功能。
前面我们说过,网卡是计算机的一个硬件,它在接收到网路信息之后,将信息交给计算机。当计算机需要发送信息的时候,也要通过网卡发送。一台计算机可以有不只一个网卡,比如笔记本就有一个以太网卡和一个WiFi网卡。计算机在接收或者发送信息的时候,要先决定想要通过哪个网卡。路由器可以通俗理解为一台配备有多个网卡的专用电脑,它让网卡接入到不同的网络中。

网关

是路由器的一种,通常我们把网络层使用的路由器称为网关,路由器可以在网络接口级或物理级路由;网关是在网络层上路由(个人感觉应该是一种概念,即在网络层连节两个子网的概念,并不存在实体,真正实现路由功能还是得靠路由器)。
说的再通俗一点,路由器上面有MAC地址和MAC地址对应的IP,而网关由于是网络层的概念因此只有IP地址。在今天很多局域网采用都是路由来接入网络,因此现在通常指的网关就是路由器的IP。
另外,需要强调一点,虽然路由器上面有MAC地址和IP地址,但它并不能通过MAC地址工作,必须通过IP寻址,因为它是工作在网络层的设备。

网络交换机

是一个扩大网络的器材,能为子网中提供更多的连接端口,以便连接更多的电脑。交换机与路由器的区别:

  • 工作层次不同
    交换机主要工作在数据链路层(第二层)
    路由器工作在网络层(第三层)。
  • 转发依据不同
    交换机转发所依据的对象是:MAC地址。(物理地址)
    路由转发所依据的对象是:IP地址。(网络地址)
  • 主要功能不同
    交换机主要用于组建局域网,连接同属于一个(广播域)子网的所有设备,负责子网内部通信(广播)。
    路由主要功能是将由交换机组好的局域网相互连接起来,或者将他们接入Internet。
    交换机能做的,路由都能做。
    交换机不能分割广播域(子网),路由可以。
    路由还可以提供防火墙的功能。
    路由配置比交换机复杂。

这里我们还是需要说明一点:
交换机虽然主要依靠MAC地址查找工作在数据链路层,但是他也可以有IP地址,这样就可以进行远程登录等操作了。
LAN,全称Local Area Network,中文名叫做局域网WAN,全称Wide Area Network,中文名叫做广域网。WAN是一种跨越大的、地域性的计算机网络的集合。通常跨越省、市,甚至一个国家。广域网包括大大小小不同的子网,子网可以是局域网,也可以是小型的广域网;WLAN,全称Wireless LAN, 无线局域网,通俗点讲就是WiFi。
家用的路由器,一般包括了交换机和路由器,因此他有两个接口——WAN端口用于连接至Internet;LAN端口用于连接至局域网设备。

举例说明

下图中位于中间位置的路由器有两个接口IP,地址分别为199.165.145.17和199.165.146.3。它们分别接入到两个网络:199.165.145和199.165.146。
分布式通信-七层协议 - 图7
显然,199.165.145和199.165.146是两个不同的子网,他们通过中间的路由器连接节,这个路由器有两个网卡:199.165.145.17和199.165.146.3。
现在考虑一种情况,我们从主机145.17生成发送到146.21的IP包:
第一步:先写好数据包的标头,即写清楚发送者的IP地址(199.165.145.17)和接受者的IP地址(199.165.146.21),145.17会参照自己的路由表:
分布式通信-七层协议 - 图8
第一行表示,如果IP目的地是199.165.145.0这个网络中的主机,那么说明是在同一个子网中,只需要用自己在eth0上的网卡(MAC地址)通过交换机直接传送,不需要前往路由器。
第二行表示所有不符合第一行的IP目的地,则应该送往送往199.165.145.17这个网关,也就是中间router接入在eth0的网卡IP地址。
我们的IP包目的地为199.165.146.21,不符合第一行,所以按照第二行,发送到中间的router。主机145.17会在数据包的头部写上199.165.145.17对应的MAC地址,这样,就在199.165.145这个局域网中通过交换机(通过广播MAC地址)广播到199.165.145.17对应的主机(路由器)。
第二步:中间的router在收到IP包之后,提取目的地IP地址,然后对照自己的routing table:
分布式通信-七层协议 - 图9
从前两行我们看到,由于router横跨eth0和eth1两个网络,它可以直接通过eth0和eth1上的网卡直接传送IP包。第三行表示,如果是前面两行之外的IP地址,则需要通过eth1,送往199.165.146.8(右边的router接口IP)。我们的目的地符合第二行,所以将IP放入一个新的帧中,在帧的头部写上199.165.146.21的MAC地址,通过199.165.146网中的交换机广播发往主机146.21。
IP包可以进一步接力,到达更远的主机。IP包从主机出发,根据沿途路由器的routing table指导,在router间接力。IP包最终到达某个router,这个router与目标主机位于一个局域网中,可以直接建立数据链路层的(广播)通信。最后,IP包被送到目标主机。这样一个过程叫做routing。
整个过程中,IP包不断被主机和路由封装入帧(信封)并拆开,然后借助连接层,在局域网的各个网卡之间传送帧。整个过程中,我们的IP包的内容保持完整,没有发生变化。最终的效果是一个IP包从一个主机传送到另一个主机。利用IP包,我们不需要去操心底层(比如数据链路层)发生了什么

ARP协议

因为IP数据包是放在以太网数据包里发送的,所以我们必须同时知道两个地址,一个是对方的MAC地址,另一个是对方的IP地址。通常情况下,对方的IP地址是已知的(后文会解释),但是我们不知道它的MAC地址。所以,我们需要一种机制,能够从IP地址得到MAC地址。
这里又可以分成两种情况。
第一种情况,如果两台主机不在同一个子网络,那么事实上没有办法得到对方的MAC地址,只能把数据包传送到两个子网络连接处的”网关”(gateway),让网关去处理。
第二种情况,如果两台主机在同一个子网络,那么我们可以用ARP协议,得到对方的MAC地址。ARP协议也是发出一个数据包(包含在以太网数据包中),其中包含它所要查询主机的IP地址,在对方的MAC地址这一栏,填的是FF:FF:FF:FF:FF:FF,表示这是一个”广播”地址。它所在子网络的每一台主机,都会收到这个数据包,从中取出IP地址,与自身的IP地址进行比较。如果两者相同,都做出回复,向对方报告自己的MAC地址,否则就丢弃这个包。
总之,有了ARP协议之后,我们就可以得到同一个子网络内的主机MAC地址,可以把数据包发送到任意一台主机之上了。

传输层(Transport Layer)

传输层建立了主机端口到端口的链接,作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路。
传输层有:TCP、UDP、SPX等,数据包一旦离开网卡即进入了网络传输层。

端口

有了MAC地址和IP地址,我们已经可以在互联网上的任意两台电脑之间建立通信了。接下来的问题是,同一台主机上许多程序(进程)都需要用到网络,比如你一遍浏览网页一遍聊天。当一个数据包从网上发送过来的时候,我们需要一个参数来区分,他到底是提供哪个进程使用的——这个参数就叫做“端口号”,他其实就是每一个使用网卡的程序的编号。每个数据包发送到主机特定的端口,所以不同的程序就能取到自己想要的数据包。
端口是0到65535之间的一个整数,正好16个二进制。0~1023的端口被系统占用,用户只能使用大于1023的端口。不管是浏览网页还是聊天,应用程序都会随机选用一个端口,然后与服务器简历相应的端口关系。
“传输层”的功能,就是建立“端口到端口”之间的通信。相比之下,“网络层”的功能是建立“主机到主机”的通信。只要确定主机和端口号,我们就能实现程序之间的交流。

Socket

传输层是建立“端口到端口”之间的通信,更具体一点,也就是程序和程序之间的通信,或者“进程间通信”
进程间通信分为两种:一种是主机内部(或终端内部)进程间通信,这个由终端或主机上的操作系统决定,比如在Android系统上面进程间通信就是AIDL;另一种是跨主机进程间通信或者网络进程间通信,也叫“socket通信”。我们可以先笼统的理解——Unix系统把主机+端口,叫做”套接字”(socket),当然,这样说是有失偏颇的。

那么,Socket是什么?
  • 从编程语言的角度,socket是一个无符号整型变量,用来标识一个通信进程。两个进程通信,总要知道这几个信息:双方的ip地址和端口号,通信所采用的协议栈。socket就是和这些东西绑定的,实现socket可以使用unix提供的接口,也可以使用wIndows提供的winSock。
  • socket本质是编程接口(API),对TCP/IP的封装。TCP/IP只是一个协议栈,必须要具体实现,同时还要提供对外的操作接口(API),这就是Socket接口。通过Socket,我们才能使用TCP/IP协议,因此有了一系列我们知道的函数接口——connect、accept、send、read、write等。

JDK的java.net包下有两个类:Socket和ServerSocket,在Client和Server建立连接成功后,两端都会产生一个Socket实例,操作这个实例,完成所需的会话,而程序员就通过这些API进行网络编程。 Socket连接过程分为三个步骤:服务器监听,客户端请求,连接确认。

UDP/TCP协议

UDP和TCP协议都是传输层的协议,他们的主要作用就是在应用层的数据包标头加上端口号(或者在IP协议的数据包中插入端口号)。

  • UDP协议的优点是比较简单,容易实现,但是缺点是可靠性较差,一旦数据包发出,无法知道对方是否收到。
  • TCP协议可以近似认为是有确认机制的UDP协议。每发出一个数据包都要求确认。如果有一个数据包遗失,就收不到确认,发出方就知道有必要重发这个数据包了。

TCP协议主要的确认机制是“三次握手,四次挥手”

会话层(Session Layer)

会话层就是负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。
会话层的功能包括:建立通信链接,保持会话过程通信链接的畅通,同步两个节点之间的对话,决定通信是否被中断以及通信中断时决定从何处重新发送。   
你可能常常听到有人把会话层称作网络通信的“交通警察”。当通过拨号向你的 ISP (因特网服务提供商)请求连接到因特网时,ISP 服务器上的会话层向你与你的 PC 客户机上的会话层进行协商连接。若你的电话线偶然从墙上插孔脱落时,你终端机上的会话层将检测到连接中断并重新发起连接。会话层通过决定节点通信的优先级和通信时间的长短来设置通信期限。
会话层:NFS、SQL、NETBIOS、RPC。

表示层(Presentation Layer)

表示层提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。如果必要,该层可提供一种标准表示形式,用于将计算机内部的多种数据格式转换成通信中采用的标准表示形式。数据压缩和加密也是表示层可提供的转换功能之一。
表示层有:JPEG、ASCll、DECOIC、加密格式等。
应用程序和网络之间的翻译官,在表示层,数据将按照网络能理解的方案进行格式化;这种格式化也因所使用网络的类型不同而不同。   
表示层管理数据的解密与加密,如系统口令的处理。例如:在 Internet上查询你银行账户,使用的即是一种安全连接。你的账户数据在发送前被加密,在网络的另一端,表示层将对接收到的数据解密。除此之外,表示层协议还对图片和文件格式信息进行解码和编码。

应用层(Application Layer)

应用层是最靠近用户的OSI层。这一层为用户的应用程序(例如电子邮件、文件传输和终端仿真)提供网络服务。
应用层有:DHCP、HTTP、WWW、HTTPS、FTP、TFTP、NFS、SMTP、SNMP、POP3、P2P、DNS、TELNET、GTP等。
请求头:http1.1、POST、URL、正文格式(content-type)、长度(content-length)
请求参数:购买的产品信息、数量

DNS

域名名称系统,端口53,是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网
网络中的数据包,是通过“端口号+IP地址+MAC地址”来识别目的地址的,也就是说定位一个主机的时候,我们是定位的是他的IP地址。当我们在浏览器输入一个域名的时候,DNS服务器会根据域名找到对应的IP地址返回给客户端。

分布式通信-七层协议 - 图10

一个网络数据包的传输过程

首先我们设置了本机参数:

  • 本机IP地址:192.168.1.100
  • 子网掩码:255.255.255.0
  • 网关的IP地址:192.168.1.1
  • DNS的IP地址:8.8.8.8

然后打开浏览器访问谷歌的网址:www.google.com ,按下回车。这意味着,浏览器要向Google发送一个网页请求的数据包。
第一步:DNS查询。在浏览器DNS中搜索、在操作系统DNS中搜索、读取系统hosts文件,查找其中是否有对应的ip、向本地配置的首选DNS服务器发起域名解析请求,得到Google的IP地址是172.194.72.105。
第二步:客户端浏览器组成应用层数据包,包括请求头和请求体,发送HTTP请求。我们假定这个部分的长度为4960字节,此时的数据包结构如下:

分布式通信-七层协议 - 图11

第三步:建立TCP连接。在传输层,TCP/UDP数据包需要设置端口,接收方(Google)的HTTP端口默认是80,发送方(本机)的端口是一个随机生成的1024-65535之间的整数。TCP数据包的标头长度为20字节,加上嵌入HTTP的数据包,总长度变为4980字节。
分布式通信-七层协议 - 图12
第四步:在网络层,TCP数据包再嵌入IP数据包。IP数据包需要设置双方的IP地址,发送方是192.168.1.100(本机),接收方是172.194.72.105(Google)。IP数据包的标头长度为20字节,加上嵌入的TCP数据包,总长度变为5000字节。
分布式通信-七层协议 - 图13
第五步:客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的MAC地址。通过子网掩码可以知道Google与本机不在同一个子网络,因此,我们要向Google发送数据包,必须通过网关192.168.1.1转发,也就是说,接收方的MAC地址将是网关192.168.1.1的MAC地址。
以太网数据包的数据部分,最大长度为1500字节,而现在的IP数据包长度为5000字节。因此,IP数据包必须分割成四个包。因为每个包都有自己的IP标头(20字节),所以四个包的IP数据包的长度分别为1500、1500、1500、560。
分布式通信-七层协议 - 图14
分割成四个数据包,分割只能分割数据部分,每个数据包都要具有相同的标头,不然找不到目的地址:
分布式通信-七层协议 - 图15
总结起来,数据封装过程:
分布式通信-七层协议 - 图16
分布式通信-七层协议 - 图17
第六步:响应http请求。经过多个网关的转发,Google的服务器172.194.72.105,收到了这四个以太网数据包。根据IP标头的序号,Google将四个包拼起来,取出完整的TCP数据包,然后读出里面的”HTTP请求”,接着做出”HTTP响应”,再用TCP协议发回来。
第七步:浏览器解析html。
第八步:断开TCP链接。
模拟过程如下:
GET www.google.com

  • 7:应用层www.google.comIP:80
    • http、smtp、ssh
  • 4:传输层控制:三次握手>传输数据>四次挥手
    • tcp、udp
    • socket IP:PORT-IP:PORT
      • netstat -natp
  • 3:网络层
    • ip、ICMP
    • ROUTE:下一跳
      • route -n
  • 2:链路层
    • 以太网 Ethernet:MAC
    • ARP:全F,两点通信,交换机学习
    • arp -a
  1. $ route -n
  2. Kernel IP routing table
  3. Destination Gateway Genmask Flags Metric Ref Use Iface
  4. 0.0.0.0 10.0.2.2 0.0.0.0 UG 100 0 0 enp0s3
  5. 10.0.2.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s3
  6. 192.168.56.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s8

总结

每一层的作用如下:

  • 物理层:通过媒介传输比特,确定机械及电气规范(比特Bit)。负责把逐个的比特从一跳(结点)移动到另一跳(结点)。对应设备:网卡,网线,集线器,中继器,调制解调器 。
  • 数据链路层:将比特组装成帧和点到点的传递(帧Frame)。在局域网内部实现主机与主机之间的通讯。对应设备:网桥,交换机。
  • 网络层:负责数据包从源到宿的传递和网际互连(包PackeT)。对应设备:路由器。
  • 传输层:提供端到端的可靠报文传递和错误恢复(段Segment)。对应设备:网关、防火墙。
  • 会话层:建立、管理和终止会话(会话协议数据单元SPDU)
  • 表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU)
  • 应用层:允许访问OSI环境的手段(应用协议数据单元APDU)