网络知识(二)——OSI七层与TCP/IP四/五层网络架构

时间:2024-05-30 16:42:52

1.  OSI七层理论模型

OSI是Open System Interconnect的缩写,意为开放式系统互联。开放系统互连参考模型 (Open System Interconnect 简称OSI)是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。它从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层

网络知识(二)——OSI七层与TCP/IP四/五层网络架构

OSI是一个参考标准,解释协议相互之间应该如何相互作用。OSI七层参考模型的各个层次的划分遵循下列原则:

  • 同一层中的各网络节点都有相同的层次结构,具有同样的功能。
  • 同一节点内相邻层之间通过接口(可以是逻辑接口)进行通信。
  • 七层结构中的每一层使用下一层提供的服务,并且向其上层提供服务。
  • 不同节点的同等层按照协议实现对等层之间的通信。

各层基本功能与协议:

网络知识(二)——OSI七层与TCP/IP四/五层网络架构

2.  TCP/IP  四/五层模型的协议

TCP/IP参考模型是计算机网络的祖父ARPANET和其后继的因特网使用的参考模型。ARPANET是由美国国防部DoD(U.S.Department of Defense)赞助的研究网络。逐渐地它通过租用的电话线连结了数百所大学和*部门。当无线网络和卫星出现以后,现有的协议在和它们相连的时候出现了问题,所以需要一种新的参考体系结构。这个体系结构在它的两个主要协议出现以后,被称为TCP/IP参考模型(TCP/IP reference model)。

OSI七层模型太过细化,有一定的参考意义,但实现起来比较繁琐,相比较而言,TCP/IP模型比较简洁,具有较强的实际应用价值。

2.1 五层

五层模型:

网络知识(二)——OSI七层与TCP/IP四/五层网络架构

 各层基本功能与协议:

网络知识(二)——OSI七层与TCP/IP四/五层网络架构

如上图所示,我们将TCP/IP分为5层,越靠下越接近硬件。我们由下到上来了解一下这些分层。

(1)物理层

该层负责 比特流在节点之间的传输,即负责物理传输,这一层的协议既与链路有关,也与传输的介质有关。通俗来说就是把计算机连接起来的物理手段

(2)数据链路层

控制网络层与物理层之间的通信,主要功能是保证物理线路上进行可靠的数据传递。为了保证传输,从网络层接收到的数据被分割成特定的可被物理层传输的帧是用来移动数据结构的结构包,他不仅包含原始数据,还包含发送方和接收方的物理地址以及纠错和控制信息。其中的地址确定了帧将发送到何处,而纠错和控制信息则确保帧无差错到达。如果在传达数据时,接收点检测到所传数据中有差错,就要通知发送方重发这一帧。

(3)网络层

决定如何将数据从发送方路由到接收方。网络层通过综合考虑发送优先权,网络拥塞程度,服务质量以及可选路由的花费等来决定从网络中的A节点到B节点的最佳途径。即建立主机到主机的通信

(4)传输层

该层为两台主机上的应用程序提供端到端的通信。传输层有两个传输协议:TCP(传输控制协议)和 UDP(用户数据报协议)。其中,TCP是一个可靠的面向连接的协议udp是不可靠的或者说无连接的协议

(5)应用层

应用程序收到传输层的数据后,接下来就要进行解读。解读必须事先规定好格式,而应用层就是规定应用程序的数据格式。主要的协议有:HTTP.FTP,Telent等。

2.2 四层

5层模型只是为了方便介绍计算机网络原理而这么分的,而在实际应用中还是TCP/IP四层模型。如下:

网络知识(二)——OSI七层与TCP/IP四/五层网络架构

那么为什么还会在工作或者与人交谈中听到“数据链路层”、“层二交换机”、“物理层”等TCP/IP模型中并不存在的层呢?虽然实际应用中是四层TCP/IP模型,借助5层模型,即将TCP/IP的网络接口层拆分成物理层和数据链路层,某些情况下可以将问题描述的更加清晰,比如当听到“层二交换机”时,我们就可以知道描述的是只有交换功能的交换机,而不是“层三交换机”,所谓层三交换机就是指工作在网络层的交换机,层三的交换机不但拥有交换功能还有路由功能。

TCP/IP将计算机网络分成了四个层次,分别是网络接口层(又称链路层)、网络层传输层应用层,如下图所示:

网络知识(二)——OSI七层与TCP/IP四/五层网络架构

如上图所示,我们将TCP/IP分为4层,越靠下越接近硬件。我们由下到上来了解一下这些分层。

(1) 网络接口层

网络知识(二)——OSI七层与TCP/IP四/五层网络架构

  •  网络层传输数据需要建立在物理设备的基础上, 链路层就是我们平时接触的网卡和网卡的驱动程序(以太网,WIFI)。
  • 上层(比如网络层,传输层等等)不知道也不需要知道数据在物理上是如何传输的。比如数据究竟是用双绞线传输的还是用同轴电缆,到底是有线的网络接口还是无线的网络接口传输,这些细节统统不需要链路层的上层去操心,这样的好处就是比如一会使用有线,一会使用无线,这对于处于网络层的IP实现,或者是传输层的TCP实现来讲,是不需要有任何变化的。
     

(2)网络层  IP

网络知识(二)——OSI七层与TCP/IP四/五层网络架构

  • 网络层的作用是在复杂的网络环境中为要发送的数据报找到一个合适的路径进行传输。(也就是从众多节点中选出一条效率最高的路径去传输)
  • 网络层不能保证数据报的可靠性传输,可靠性是由网络主机中的传输层(TCP)来进行保证的。也就是说网络层不管传的数据是什么,也不管你传没传送到达,只管一味的传输。(闷头楞传~)
     

网络知识(二)——OSI七层与TCP/IP四/五层网络架构

  • 图a就是有连接(TCP,有序)的传输:由主机A向主机B传输数据时,提前建立一条连接:主机A->节点1->节点3->主机B。则在由A向B传输多个数据报时,均只能使用这条路线进行传输。
  • 图b是无连接(UDP,无序)的传输:当由A向B发送数据报1时,从主机A开始发现由A到节点1的网络比较空闲,就使用这条路径发送,到达节点1时,发现可以使用节点1到节点3的路径,于是就走这条路径,同理再走到主机B;当发送数据报2时,此时发现由A到节点2的网络比较空闲,就使用这条路线发送,之后同理。
     

(3)传输层    TCP/UDP

网络知识(二)——OSI七层与TCP/IP四/五层网络架构

 

 传输层主要做的是将你应用层的数据分块编号传输,同时还要确认你的数据到达,如果某一块的数据没有到达那么我只需要再次传输传输失败的内容即可。这样就保证了我只需要传输失败的部分而不是每次都整体重新传输。

如图:我们将原数据拆分为四组数据,当我们传输数据的过程中每次将数据传到服务端的TCP层时,它都会确认并通知客户端对应的编号数据已到达。这时比如3号的传输过程中传输失败了那么客户端是迟迟不能收到服务端回应的,对此我们要做的只是再重新传输失败的3号即可而不是像之前一样整体重新传输。

1.TCP协议所做的事情:保证可靠性和拆块数据

  • 客户端TCP层将HTTP层数据拆块。
  • 传输数据完成后服务端需要向客户端发送收到信息,如果在规定时间内客户端没有收到服务端发送的信息收到的信息后客户端将重新发送。(超时重传,保证可靠性)。
  • 所有数据传输完成后服务端TCP层将拆块的数据组合成原有数据交给HTTP层处理。
     

2.TCP UDP的区别

  • UDP是面向无连接的、不可靠的数据报服务;只需找到目标端口号就可以直接开始发送数据,即发送数据之前不需要建立连接而TCP要经过3次握手创建连接。UDP不需要确认数据是否丢失是否到达,只管传就可以。
  • 使用场景: 游戏、视频会议等不需要确认数据有效性且需要快速传输的场景。比如游戏吃鸡,我卡顿两秒后恢复了,我不需要知道这卡顿的两秒发生了什么不需要知道它的数据是什么,我只关心2秒后恢复网络的这最新一帧的画面是什么。
  • TCP是面向连接的、可靠的字节流服务。

3.TCP 协议被认为是稳定的协议,因为它有以下特点:(都是为了确保数据不丢失,所有数据都传输成功)

  • 面向连接,“三次握手”。
  • 双向通信( 客户端发送,服务端接收同时告知客户端接收完成)。
  • 保证数据按序发送,按序到达。
  • 超时重传。
     

3. 两种模型的不同

TCP/IP协议是美国国防部发明的,是让互联网成为了目前这个样子的标准之一。开放式系统互联模型中没有清楚地描绘TCP/IP协议,但是在解释TCP/IP协议时很容易想到开放式系统互联模型。两者的主要区别如下:

TCP/IP与OSI最大的不同在于OSI是一个理论上的网络通信模型,而TCP/IP则是实际运行的网络协议。

(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参考模型虽然有许多不尽人意的地方,但还是比较成功的。

(9) TCP/IP协议中的应用层处理开放式系统互联模型中的第五层、第六层和第七层的功能。

(10) TCP/IP协议与低层的数据链路层和物理层无关,这也是TCP/IP的重要特点。

(11)TCP/IP协议中的传输层并不能总是保证在传输层可靠地传输数据包,而开放式系统互联模型可以做到。TCP/IP协议还提供一项名为UDP(用户数据报协议)的选择。UDP不能保证可靠的数据包传输。

4. 小结

本节引出并总结了TCP/IP的网络四层模型,有什么层,各层用到的基本协议及作用,这里仅仅是主要概念的总结,更深层次的理论没有涉及,下一节就开始分析各层是如何实现本节说的功能作用的,也就是各层用到的网络协议原理及作用。