前言
网络术语中的参考模型指的是OSI参考模型,由ISO(国际标准化组织)制定的一套普遍适用的规范集合,以使得全球范围的计算机平台可进行开放式通信。
ISO创建了一个有助于开发和理解计算机的通信模型,即开放系统互联OSI参考模型。OSI参考模型将网络结构划分为七层:即物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。每一层均有自己的一套功能集,并与紧邻的上层和下层交互作用。在顶层,应用层与用户使用的软件进行交互。在OSI参考模型的底端是携带信号的网络电缆和连接器。总的说来,在顶端与底端之间的每一层均能确保数据以一种可读、无错、排序正确的格式被发送。OSI参考模型是对发生在网络中两节点之间过程的理论化描述。
一、OSI参考模型
- 物理层
物理层是OSI参考模型的最低层或第一层,该层包括物理联网媒介,如电缆连线连接器。物理层的协议产生并检测电压以便发送和接收携带数据的信号。在你的桌面PC上插入网络接口卡,你就建立了计算机连网的基础。换言之,你提供了一个物理层。尽管物理层不提供纠错服务,但它能够设定数据传输速率并检测数据出错率。网络物理问题,如电线断开,将影响物理层。同样地,如果你没有将网络接口卡在计算机的电路板中插得足够深,计算机也将在物理层出现网络问题。
IEEE已制定物理层协议的标准,特别IEEE802规定了以太网和令牌环网应如何处理数据。术语“第一层协议”和“物理层协议”,均是指描述电信号如何被放大及通过电线传输的标准。 - 数据链路层
数据链路层是OSI参考模型的第二层,它控制网络层与物理层之间的通信。它的主要功能是将从网络层接收到的数据分割成特定的可被物理层传输的帧。帧是用来移动数据的结构包,它不仅包括原始数据,或称“有效荷载”,还包括发送方和接收方的网络地址以及纠错和控制信息。其中的地址确定了帧将发送到何处,而纠错和控制信息则确保帧无差错到达。
数据链路层的功能独立于网络和它的节点和所采用的物理层类型,由于它们要对帧解码并使用帧信息将数据发送到正确的接收方,所以它们是工作在数据链路层的。 - 网络层
网络层,即OSI参考模型的第三层,其主要功能是将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。网络层通过综合考虑发送优先权、网络拥塞程度、服务质量以及可选路由的花费来决定从一个网络中节点A到另一个网络中节点B的最佳路径。
由于网络层处理路由,而路由器因为即连接网络各段,并智能指导数据传送,属于网络层。在网络中,“路由”是基于编址方案、使用模式以及可达性来指导数据的发送。网络层协议还能补偿数据发送、传输以及接受的设备能力的不平衡性。为完成这一任务,网络层对数据包进行分段和重组。分段即是指当数据从一个能处理较大数据单元的网络段传送到位能处理较小数据单元的网络段是,网络层减小数据单元的大小的过程。 - 传输层
传输层主要负责确保数据可靠、顺序、无错地从A点到传输到B点。因为如果没有传输层,数据将不能接受发给验证或解释,所以,传输层常被认为是OSI参考模型中最重要的一层。传输协议同时进行流量控制或是基于接收方可接受数据的快慢程度规定适当的发送速率。
除此之外,传输层按照网络能处理的最大尺寸将较长的数据包进行强制分割,例如,以太网无法接受1500字节的数据包。发送方节点的传输层将数据分割成较小的数据片,同时对每一数据片安排一系列好,以便数据到达接收方节点的传输层时,能以正确的顺序重组。该过程即被称为排序。 - 会话层
会话层负责在网络中的两节点之间建立和维持通信。术语“会话”指在两个实体之间建立数据交换的连接;常用于表示终端与主机之间的通信。所谓终端时指将几乎不具有自己的处理能力或硬盘容量,而只依靠主机提供应用程序和数据处理服务的一点之间的对话,决定通信是否被中断以及通信中断时决定从何处重新发送。 - 表示层
表示层如同应用程序和网络之间的翻译官,在表示层,数据将按照网络能理解的方案进行格式化;这种格式化也因所使用网络的类型不同而不同。表示层管理数据的解密与加密,表示层协议还对图片和文件格式信息进行解码和编码。 - 应用层
OSI参考模型的顶端也即第七层是应用层。应用层负责对软件提供接口以使程序能适应网络服务。术语“应用层”并不是指运行在网络上的某个特别应用程序。应用层提供的服务包括文件传输、文件管理以及电子邮件的信息处理。
二、TCP/IP参考模型
- 应用层
应用层对应于OSI参考模型的高层,为用户提供所需要的各种服务,例如:FTP、Telnet、DNS、SMTP等. - 传输层
传输层对应于OSI参考模型的传输层,为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性。该层定义了两个主要的协议:传输控制协议(TCP)和用户数据报协议(UDP).
TCP协议提供的是一种可靠的、通过“三次握手”来连接的数据传输服务;而UDP协议提供的则是不保证可靠的(并不是不可靠)、无连接的数据传输服务. - 网际互联层
网际互联层对应于OSI参考模型的网络层,主要解决主机到主机的通信问题。它所包含的协议设计数据包在整个网络上的逻辑传输。注重重新赋予主机一个IP地址来完成对主机的寻址,它还负责数据包在多种网络中的路由。该层有三个主要协议:网际协议(IP)、互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)。
IP协议是网际互联层最重要的协议,它提供的是一个可靠、无连接的数据报传递服务。 - 网络接入层(即主机-网络层)
网络接入层与OSI参考模型中的物理层和数据链路层相对应。它负责监视数据在主机和网络之间的交换。事实上,TCP/IP本身并未定义该层的协议,而由参与互连的各网络使用自己的物理层和数据链路层协议,然后与TCP/IP的网络接入层进行连接。地址解析协议(ARP)工作在此层,即OSI参考模型的数据链路层。
三、模型比较
- 共同点
(1)OSI参考模型和TCP/IP参考模型都采用了层次结构的概念。
(2)都能够提供面向连接和无连接两种通信服务机制。 - 不同点
(1)OSI采用的七层模型,而TCP/IP是四层结构。
(2)TCP/IP参考模型的网络接口层实际上并没有真正的定义,只是一些概念性的描述。而OSI参考模型不仅分了两层,而且每一层的功能都很详尽,甚至在数据链路层又分出一个介质访问子层,专门解决局域网的共享介质问题。
(3)OSI模型是在协议开发前设计的,具有通用性。TCP/IP是先有协议集然后建立模型,不适用于非TCP/IP网络。
(4)OSI参考模型与TCP/IP参考模型的传输层功能基本相似,都是负责为用户提供真正的端对端的通信服务,也对高层屏蔽了底层网络的实现细节。所不同的是TCP/IP参考模型的传输层是建立在网络互联层基础之上的,而网络互联层只提供无连接的网络服务,所以面向连接的功能完全在TCP协议中实现,当然TCP/IP的传输层还提供无连接的服务,如UDP;相反OSI参考模型的传输层是建立在网络层基础之上的,网络层既提供面向连接的服务,又提供无连接的服务,但传输层只提供面向连接的服务。
(5)OSI参考模型的抽象能力高,适合与描述各种网络;而TCP/IP是先有了协议,才制定TCP/IP模型的。
(6)OSI参考模型的概念划分清晰,但过于复杂;而TCP/IP参考模型在服务、接口和协议的 区别上不清楚,功能描述和实现细节混在一起。
(7)TCP/IP参考模型的网络接口层并不是真正的一层;OSI参考模型的缺点是层次过多,划分意义不大但增加了复杂性。
(8)OSI参考模型虽然被看好,由于没把握好时机,技术不成熟,实现困难;相反,TCP/IP参考模型虽然有许多不尽人意的地方,但还是比较成功的。
四、相关考点
TCP
TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。
- TCP报文格式
固定长度20字节,可变长度40字节。TCP的最大报文段长度即MSS一般是1460字节(1500MTU-20IP Head-20TCP Head)。MSS(最大分段大小)指数据的长度最大1460字节 - ACK确认机制
- TCP会话建立——三次握手
- TCP会话结束——四次握手
- TCP流量控制——滑动窗口协议
- TCP可靠传输机制
UDP
UDP无面向连接服务DLNS
无面向连接服务——在通信前要不需要建立会话连接,直接开始传输数据,不可靠
UDP适用场景
传输小数据包的场景(UDP不会主动重传,只有接收方重新申请时才会重传)
对实时性要求高的场景(直播比赛等)
报文格式
源端口 Source port
标识哪个应用程序发送的
目标端口 Destination Port
标识哪个应用程序接收的
长度 Length
UDP头部+UDP数据的字节数,最小为8字节
检验和 Checksum
对头部和内容进行校验
IP协议
IP信息包传送
IP是网络之间信息传送的协议,可将IP信息包从源设备(例如用户的计算机)传送到目的设备(例如某部门的www服务器)。为了达到这样的目的,IP必须依赖IP地址与IP路由器两种机制来实现。
IP地址
IP规定网络上所有的设备都必须有一个独一无二的IP地址,就好比是邮件上都必须注明收件人地址,邮递员才能将邮件送到。同理,每个IP信息包都必须包含有目的设备的IP地址,信息包才可以正确地送到目的地。同一设备不可以拥有多个IP地址,所有使用IP的网络设备至少有一个唯一的IP地址。
IP路由
互联网是由许多个网络连接所形成的大型网络。如果要在互联网中传送IP信息包,除了确保网络上每个设备都有一个唯一的IP地址之外,网络之间还必须有传送的机制,才能将IP信息包通过一个个的网络传送到目的地。此种传送机制称为IP路由。
各个网络通过路由器相互连接。路由器的功能是为IP信息包选择传送的路径。换言之,必须依靠沿途各路由器的通力合作,才能将IP信息包送到目的地。在IP路由的过程中,由路由器负责选择路径,IP信息包则是被传送的对象。
IP地址与IP路由是IP信息包传送的基础。此外,IP信息包传送时还有一项很重要的特性,即使用非连接式的传送方式。非连接式的传送方式是指IP信息包传送时,源设备与目的设备双方不必事先连接,即可将IP信息包送达。即源设备完全不用理会目的设备,而只是单纯地将IP信息包逐一送出。至于目的设备是否收到每个信息包、是否收到正确的信息包等,则由上层的协议(例如TCP)来负责检查。
使用非连接式的优点是过程简单化,可提高传输的效率。此外,由于IP信息包必须通过IP路由的机制,在一个个路由器之间传递,非连接式的传送方式较易在此种机制中运行。
相对于非连接式的传送方式,也有连接式的传送方式,也就是源与目的设备双方必须先建立连接,才能进一步传输数据,TCP就是使用连接式的传送方式
数据包的传输过程
通过http发起一个请求时,应用层、传输层、网络层和链路层的相关协议依次对该请求进行包装并携带对应的首部,最终在链路层生成以太网数据包,以太网数据包通过物理介质传输给对方主机,对方接收到数据包以后,然后再一层一层采用对应的协议进行拆包,最后把应用层数据交给应用程序处理。
网络通信就好比送快递,商品外面的一层层包裹就是各种协议,协议包含了商品信息、收货地址、收件人、联系方式等,然后还需要配送车、配送站、快递员,商品才能最终到达用户手中。
一般情况下,快递是不能直达的,需要先转发到对应的配送站,然后由配送站再进行派件。
配送车就是物理介质,配送站就是网关, 快递员就是路由器,收货地址就是IP地址,联系方式就是MAC地址。
快递员负责把包裹转发到各个配送站,配送站根据收获地址里的省市区,确认是否需要继续转发到其他配送站,当包裹到达了目标配送站以后,配送站再根据联系方式找到收件人进行送件。