协议层次及服务类型
OSI 七层模型
OSI 模型全称为开放式通信系统互连参考模型,是国际标准化组织 ( ISO ) 提出的一个试图使各种计算机在世界范围内互连为网络的标准框架。OSI 将计算机网络体系结构划分为七层,每一层实现各自的功能和协议,并完成与相邻层的接口通信。OSI 的服务定义详细说明了各层所提供的服务。某一层的服务就是该层及其下各层的一种能力,它通过接口提供给更高一层。各层所提供的服务与这些服务是怎么实现的无关。OSI参考模型并没有提供一个可以实现的方法,只是描述了一些概念,用来协调进程间通信标准的制定。即OSI参考模型并不是一个标准,而是一个在制定标准时所使用的概念模型框架。

- 物理层:机械、电子、定时接口通信信道上的原始比特流传输 --比特(Bit)
- 数据链路层:物理寻址、同时将原始比特流变成逻辑传输路线–帧(Frame)
- 网络层:控制子网的运行,如逻辑编址、分组传输、路由选择–分组、数据包(Packet)
- 传输层:将数据进行分割,并将这些数据交给网络层且保证这些数据段有效的到达对端 –数据段(Segment)
- 会话层:不同机器上的用户之间建立及管理会话 –数据(data)
- 表示层:信息的语法语义以及它们的关系,如加密、解密、转换翻译、压缩解压缩 –数据(data)
- 应用层 :定义了应用进程之间的交互规则,通过不同的应用层协议为不同的网络应用提供服务 –消息/报文(message)
物理层:首先要解决两台物理机之间的通信需求,具体就是机器A往机器B发送比特流,机器B能收到这些比特流。物理层主要定义了物理设备的标准,如网线的类型、光纤的接口类型、各种传输介质的传输速率等,主要作用是传输比特流,即 01010二进制数据,将它们转化成电流强弱来进行传输,到达目的主机后再转化成 010101的机器码,即数模转换与模数转换。网卡就工作在这一层。
数据链路层:在传输比特流的过程中会产生差错、数据传输不完整的可能,因此数据链路层应运而生。数据链路层定义了如何格式化数据以进行传输,以及如何控制对物理介质的访问。通常还提供错误检测和纠正以确保数据传输的可靠性。本层将比特数据组成了帧,其中交换机工作在这一层,将帧解码并根据帧中包含的信息把数据发送到正确的接收方。
网络层:随着网络节点的不断增多,点对点通信时是需要经过多个节点的。那么如何找到最佳节点、如何选择最佳路径便成为了首要的需求,此时便有了网络层。网络层的首要功能是将网络地址翻译成对应的物理地址、并决定如何将数据从发送方路由到接收方。网络层通过综合考虑发送优先权、网络拥赛程度、服务质量以及可选路由的花费来决定从一个网络节点A到另一个网络中节点B的最佳路径。由于网络层处理并智能指导数据发送、 路由选择网络各段,所以路由器属于网络层,此层的数据我们成为数据包。
传输层:随着网络通信需求的进一步加大,通信过程中需要发送大量的数据,如海量的文件传输,可能需要很长时间,而网络在通信的过程中会中断好多次,此时为了保证传输大量文件时的准确性,需要对发送方发送出去的数据进行切片,切割为一个个的段落即 Segment进行发送。那么便出现了数据段丢失、要不要重传、每个段落要按照顺序到达嘛等问题。传输层解决了主机间的数据传输、传输质量等问题。该层为OSI模型中最重要的一层。传输协议同时进行流量控制,或是基于接收方可接收数据的快慢程度规定适当的发送速率。除此以外传输层按照网络能处理的最大尺寸将数据分割成较小的数据片。同时对每一个数据片安排一个序列号,以便数据到达接收方节点的传输层时能以正确的顺序重组,该过程称为排序。
会话层:现在我们已经保证给正确的计算机发送正确的封装过后的信息,但是用户的体验并不好。因为每次都需要我们手动的去调用TCP打包、然后调用IP协议去找路由。所以我们要建立一个自动收发包,自动寻址的功能,于是便有了会话层。会话层的作用即建立和管理应用程序之间的通信。
表示层:现在我们可以保证了应用程序可以自动的收发包和寻址,但是对于不同系统之间的通信仍然存在语法的问题。例如用Linux给 windows发包,exe文件并不能在Linux下执行,shell 在windows下也不能执行,此时便出现了表示层。表示层帮我们解决了不同系统间的通信语法问题,在表示层数据将按照网络能理解的方案进行格式化,这种格式化也因所使用的网络的类型不同而不同。
应用层:此时虽然发送方知道自己发送的是什么,转换成字节数组后有多长,但是接收方并不知道,所以应用层的网络协议诞生了,应用层规定发送方和接收方必须使用一个固定长度的消息头,消息头必须使用某种固定的组成,而且消息头中必须记录消息体的长度等一系列信息,以方便接收方能够正确的解析发送方发送过来的数据。
TCP/IP参考模型
TCP/IP参考模型首先由ARPANET所使用的网络体系结构,后来该结构被美国国防部用来做为计算机网络的标准。在其推动下,市场上绝大多数的厂商也以该标准为主,用以商用。基于 TCP/IP 的参考模型将协议分成四个层次,如上图所示,它们分别是:网络接口层、网络层、传输层、和应用层。
应用层:TCP/IP 模型将 OSI 参考模型中的会话层、表示层和应用层的功能合并到一个应用层实现,通过不同的应用层协议为不同的应用提供服务。例如:FTP、Telnet、DNS、SMTP 等。
传输层:该层对应于 OSI 参考模型的传输层,为上层实体提供源端到对端主机的通信功能。传输层定义了两个主要协议:传输控制协议(TCP)和用户数据报协议(UDP)。其中面向连接的 TCP 协议保证了数据的传输可靠性,面向无连接的 UDP 协议能够实现数据包简单、快速地传输。
网际互联层:网际互联层对应 OSI 参考模型的网络层,主要负责相同或不同网络中计算机之间的通信。在网际互联层, IP 协议提供的是一个不可靠、无连接的数据报传递服务。该协议实现两个基本功能:寻址和分段。根据数据报报头中的目的地址将数据传送到目的地址,在这个过程中 IP 负责选择传送路线。除了 IP 协议外,该层另外两个主要协议是互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)。
网络接入层:网络接入层的功能对应于 OSI 参考模型中的物理层和数据链路层,它负责监视数据在主机和网络之间的交换。事实上,TCP/IP 并未真正描述这一层的实现,而由参与互连的各网络使用自己的物理层和数据链路层协议,然后与 TCP/IP 的网络接入层进行连接,因此具体的实现方法将随着网络类型的不同而有所差异。
TCP/IP 五层参考模型
五层体系的协议结构是综合了 OSI 和 TCP/IP 优点的一种协议,包括应用层、传输层、网络层、数据链路层和物理层。五层协议的体系结构只是为介绍网络原理而设计的,实际应用还是 TCP/IP 四层体系结构。
比较 TCP/IP 参考模型与 OSI 参考模型
共同点:
- 都采用了层次结构的概念
- 都能够提供面向连接和无连接的通信服务机制
不同点:
- OSI 采用了七层模型,而 TCP/IP 是四层
- OSI 是一个在协议开发前设计的、有清晰概念的模型;TCP/IP 是先有协议集然后建立的、事实上得到广泛应用的弱模型,功能描述和实现细节混在一起
- TCP/IP 一开始就提出面向连接和无连接服务,而 OSI 一开始只强调面向连接服务,直到很晚才开始制定无连接的服务标准。
数据如何在各层之间传输【数据的封装过程】
在发送主机端,一个应用层报文被传送到运输层。在最简单的情况下,运输层收取到报文并附上附加信息,该首部将被接收端的运输层使用。应用层报文和运输层首部信息一道构成了运输层报文段。附加的信息可能包括:允许接收端运输层向上向适当的应用程序交付报文的信息以及差错检测位信息。该信息让接收端能够判断报文中的比特是否在途中已被改变。运输层则向网络层传递该报文段,网络层增加了如源和目的端系统地址等网络层首部信息,生成了网络层数据报。该数据报接下来被传递给链路层,在数据链路层数据包添加发送端 MAC 地址和接收端 MAC 地址后被封装成数据帧,在物理层数据帧被封装成比特流,之后通过传输介质传送到对端。
TCP/IP 协议群
| OSI 七层概念模型 | TCP/IP 四层参考模型 | 对应的网络协议 |
|---|---|---|
| 应用层(Application | HTTP, TFTP, FTP, NFS, WAIS, SMTP, Telnet, DNS, SNMP | |
| 表示层(Presentation) | 应用层 | TIFF, GIF, JPEG, PICT |
| 会话层(Session) | RPC, SQL, NFS, NetBIOS, names, AppleTalk | |
| 传输层(Transport) | 传输层 | TCP, UDP |
| 网络层(Network) | 网络层 | IP, ICMP, ARP, RARP, RIP, IPX |
| 数据链路层(Data Link) | FDDI, Frame Relay, HDLC, SLIP, PPP | |
| 物理层(Physical) | 网络接口层 | EIA/TIA-232, EIA/TIA-499, V.35, 802.3 |
各层的常见协议详解如下:
| 协议 | 作用 |
|---|---|
| HTTP | 超文本传输协议(HyperText Transfer Protocol) |
| FTP | 文件传输协议(File Transfer Protocol)用于在客户端和服务器之间进行文件传输 |
| SMTP | 简单邮件传输协议(Simple Mail Transfer Protocol)是一个在网络上传输电子邮件的标准 |
| DNS | 域名系统(Domain Name System)是域名和 IP 地址相互映射的分布式数据库 |
| SSH | 安全外壳协议(Secure Shell)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境 |
| DHCP | 动态主机配置协议(Dynamic Host Configuration Protocol)的主要作用是集中管理、动态分配 IP 地址提升地址的使用率 |
| TCP | 传输控制协议(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议 |
| UDP | 用户数据报协议(User Datagram Protocol)是一个简单的、无连接的、不可靠的、面向数据报的通信协议 |
| IP | 网际协议(Internet Protocol)是用于分组交换数据网络的一种协议,功能包括寻址、路由、尽最大努力交付数据包 |
| ICMP | 互联网控制消息协议(Internet Control Message Protocol)用于返回通信环境的错误消息。traceroute 和 ping 都是基于 ICMP 消息实现的,traceroute 是通过发送含有特殊 TTL 的包,然后接收 ICMP 超时消息和目标不可达消息来实现的;ping 则是用 ICMP 的“Echo request (8)”和“Echo reply (0)”消息来实现的 |
| IGMP | 因特网组管理协议(Internet Group Management Protocol )管理 IP 协议多播组成员 |
| RIP | 路由信息协议(Routing Information Protocol)是一种内部网关协议(IGP),是距离向量路由协议的一种实现 |
| OSFP | 开放式最短路径优先(Open Shortest Path First)是一种内部网关协议(IGP),使用 Dijkstra 算法计算最短路径,是链路状态路由协议的一种实现 |
| BGP | 边界网关协议(Border Gateway Protocol)是互联网上一个核心的去中心化自治路由协议,属于矢量路由协议。BGP 用于互联网上,将自治系统视作一个整体;每个自治系统使用 IGP(代表实现有 RIP 和 OSPF)进行路由 |
| ARP* | 地址解析协议(Address Resolution Protocol)通过 IP 寻找 MAC 地址 |
| ARQ | 自动重传请求(Automatic Repeat-reQuest)是一种错误纠正协议 |
| IEEE802 | IEEE 802 指 IEEE 标准中关于局域网和城域网的一系列标准,其中最广泛使用的有以太网、令牌环、无线局域网等 |
相关设备
- 集线器(Hub)是物理层的硬件,连接所有的线路,广播所有信息
- 网桥(Bridge)是数据链路层的硬件。网桥隔离两个端口,不同的端口形成单独的冲突域,减少网内冲突。网桥在不同或相同类型的 LAN 之间存储并转发数据帧,根据 MAC 头部来决定转发端口,显然是数据链路层的设备
- 交换机(Switch)是数据链路层的硬件,相当于多端口的网桥。交换机内部存储 MAC 表,只会将数据帧发送到指定的目的地址
- 路由器(Router)是网络层的硬件,根据 IP 地址进行寻址,不同子网间的数据传输隔离
计算机网络的性能指标
- 速率:比特(bit)是计算机中数据量的单位,也是信息论中使用的信息量的单位。速率的单位是 b/s,或kb/s, Mb/s, Gb/s 等
- 带宽 :“带宽”是数字信道所能传送的“最高数据率”,单位是“比特每秒”,或 b/s (bit/s)。
- 吞吐量:表示在单位时间内通过某个网络(或信道、接口)的数据量,吞吐量更经常地用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。吞吐量受网络的带宽或网络的额定速率的限制。
- 传输时延:(发送时延 )发送数据时,数据块从结点进入到传输媒体所需要的时间。也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。
- 传播时延:电磁波在信道中需要传播一定的距离而花费的时间。
- 处理时延:交换结点为存储转发而进行一些必要的处理所花费的时间。
- 排队时延:结点缓存队列中分组排队所经历的时延。排队时延的长短往往取决于网络中当时的通信量;
- 总时延:数据经历的总时延就是发送时延、传播时延、处理时延和排队时延之和。
参考资料