① 简述计算机网络的OSI体系结构模型和TCP/IP体系结构模型的内容及其特点
OSI(开放系统互联模型)分7层,
而TCP/IP模型一般分四层或五层(最底层网络接入层可以分为两层物理层和数据链路层),
现在网络层次术语仍然使用OSI模型所定义的层次结构,
但现在建立的大多数网络所使用的网络标准和协议是根据TCP/IP模型的。
OSI是早期的网络模型,相比较TCP/IP模型更符合现在的网络结构。
② 计算机网络体系结构的ISO/OSI网络体系结构
国际标准化组织ISO(International Standards Organization)在80年代提出的开放系统互联参考模型OSI(Open System Interconnection),这个模型将计算机网络通信协议分为七层。这个模型是一个定义异构计算机连接标准的框架结构,其具有如下特点:
①网络中异构的每个节点均有相同的层次,相同层次具有相同的功能。
②同一节点内相邻层次之间通过接口通信。
③相邻层次间接口定义原语操作,由低层向高层提供服务。
④不同节点的相同层次之间的通信由该层次的协议管理,
⑤每层次完成对该层所定义的功能,修改本层次功能不影响其它层、
⑥仅在最低层进行直接数据传送。
⑦定义的是抽象结构,并非具体实现的描述。
在OSI网络体系结构中、除了物理层之外,网络中数据的实际传输方向是垂直的。数据由用户发送进程发送给应用层,向下经表示层、会话层等到达物理层,再经传输媒体传到接收端,由接收端物理层接收,向上经数据链路层等到达应用层,再由用户获取。数据在由发送进程交给应用层时,由应用层加上该层有关控制和识别信息,再向下传送,这一过程一直重复到物理层。在接收端信息向上传递时,各层的有关控制和识别信息被逐层剥去,最后数据送到接收进程。
现在一般在制定网络协议和标准时,都把ISO/OSI参考模型作为参照基准,并说明与该参照基准的对应关系。例如,在IEEE802局域网LAN标准中,只定义了物理层和数据链路层,并且增强了数据链路层的功能。在广域网WAN协议中,CCITT的X.25建议包含了物理层、数据链路层和网络层等三层协议。一般来说,网络的低层协议决定了一个网络系统的传输特性,例如所采用的传输介质、拓扑结构及介质访问控制方法等,这些通常由硬件来实现;网络的高层协议则提供了与网络硬件结构无关的,更加完善的网络服务和应用环境,这些通常是由网络操作系统来实现的。 物理层建立在物理通信介质的基础上,作为系统和通信介质的接口,用来实现数据链路实体间透明的比特 (bit) 流传输。只有该层为真实物理通信,其它各层为虚拟通信。物理层实际上是设备之间的物理接口,物理层传输协议主要用于控制传输媒体。
(1)物理层的特性
物理层提供与通信介质的连接,提供为建立、维护和释放物理链路所需的机械的、电气的、功能的和规程的特性,提供在物理链路上传输非结构的位流以及故障检测指示。物理层向上层提供位 (bit) 信息的正确传送。
其中机械特性主要规定接口连接器的尺寸、芯数和芯的位置的安排、连线的根数等。电气特性主要规定了每种信号的电平、信号的脉冲宽度、允许的数据传输速率和最大传输距离。功能特性规定了接口电路引脚的功能和作用。规程特性规定了接口电路信号发出的时序、应答关系和操作过程,例如,怎样建立和拆除物理层连接,是全双工还是半双工等。
(2)物理层功能
为了实现数据链路实体之间比特流的透明传输,物理层应具有下述功能:
①物理连接的建立与拆除
当数据链路层请求在两个数据链路实体之间建立物理连接时,物理层能够立即为它们建立相应的物理连接。若两个数据链路实体之间要经过若干中继数据链路实体时,物理层还能够对这些中继数据链路实体进行互联,以建立起一条有效的物理连接。当物理连接不再需要时,由物理层立即拆除。
②物理服务数据单元传输
物理层既可以采取同步传输方式,也可以采取异步传输方式来传输物理服务数据单元。
③物理层管理
对物理层收发进行管理,如功能的激活 (何时发送和接收、异常情况处理等)、差错控制 (传输中出现的奇偶错和格式错)等。 数据链路层为网络层相邻实体间提供传送数据的功能和过程;提供数据流链路控制;检测和校正物理链路的差错。物理层不考虑位流传输的结构,而数据链路层主要职责是控制相邻系统之间的物理链路,传送数据以帧为单位,规定字符编码、信息格式,约定接收和发送过程,在一帧数据开头和结尾附加特殊二进制编码作为帧界识别符,以及发送端处理接收端送回的确认帧,保证数据帧传输和接收的正确性,以及发送和接收速度的匹配,流量控制等。
(1)数据链路层的目的
提供建立、维持和释放数据链路连接以及传输数据链路服务数据单元所需的功能和过程的手段。数据链路连接是建立在物理连接基础上的,在物理连接建立以后,进行数据链路连接的建立和数据链路连接的拆除。具体说,每次通信前后,双方相互联系以确认一次通信的开始和结束,在一次物理连接上可以进行多次通信。数据链路层检测和校正在物理层出现的错误。
(2)数据链路层的功能和服务
数据链路层的主要功能是为网络层提供连接服务,并在数据链路连接上传送数据链路协议数据单元L-PDU,一般将L-PDU称为帧。数据链路层服务可分为以下三种:
①无应答、无连接服务。发送前不必建立数据链路连接,接收方也不做应答,出错和数据丢失时也不做处理。这种服务质量低,适用于线路误码率很低以及传送实时性要求高的 (例如语音类的)信息等。
②有应答、无连接服务。当发送主机的数据链路层要发送数据时,直接发送数据帧。目标主机接收数据链路的数据帧,并经校验结果正确后,向源主机数据链路层返回应答帧;否则返回否定帧,发送端可以重发原数据帧。这种方式发送的第一个数据帧除传送数据外,也起数据链路连接的作用。这种服务适用于一个节点的物理链路多或通信量小的情况,其实现和控制都较为简单。
③面向连接的服务。该服务一次数据传送分为三个阶段:数据链路建立,数据帧传送和数据链路的拆除。数据链路建立阶段要求双方的数据链路层作好传送的准备;数据传送阶段是将网络层递交的数据传送到对方;数据链路拆除阶段是当数据传送结束时,拆除数据链路连接。这种服务的质量好,是ISO/OSI参考模型推荐的主要服务方式。
(3)数据链路数据单元
数据链路层与网络层交换数据格式为服务数据单元。数据链路服务数据单元,配上数据链路协议控制信息,形成数据链路协议数据单元。
数据链路层能够从物理连接上传输的比特流中,识别出数据链路服务数据单元的开始和结束,以及识别出其中的每个字段,实现正确的接收和控制。能按发送的顺序传输到相邻结点。
(4)数据链路层协议
数据链路层协议可分为面向字符的通信规程和面向比特的通信规程。
面向字符的通信规程是利用控制字符控制报文的传输。报文由报头和正文两部分组成。报头用于传输控制,包括报文名称、源地址、目标地址、发送日期以及标识报文开始和结束的控制字符。正文则为报文的具体内容。目标节点对收到的源节点发来的报文,进行检查,若正确,则向源节点发送确认的字符信息;否则发送接收错误的字符信息。
面向比特的通信规程典型是以帧为传送信息的单位,帧分为控制帧和信息帧。在信息帧的数据字段 (即正文)中,数据为比特流。比特流用帧标志来划分帧边界,帧标志也可用作同步字符。 广域网络一般都划分为通信子网和资源子网,物理层、数据链路层和网络层组成通信子网,网络层是通信子网的最高层,完成对通信子网的运行控制。网络层和传输层的界面,既是层间的接口,又是通信子网和用户主机组成的资源子网的界限,网络层利用本层和数据链路层、物理层两层的功能向传输层提供服务。
数据链路层的任务是在相邻两个节点间实现透明的无差错的帧级信息的传送,而网络层则要在通信子网内把报文分组从源节点传送到目标节点。在网络层的支持下,两个终端系统的传输实体之间要进行通信,只需把要交换的数据交给它们的网络层便可实现。至于网络层如何利用数据链路层的资源来提供网络连接,对传输层是透明的。
网络层控制分组传送操作,即路由选择,拥塞控制、网络互连等功能,根据传输层的要求来选择服务质量,向传输层报告未恢复的差错。网络层传输的信息以报文分组为单位,它将来自源的报文转换成包文,并经路径选择算法确定路径送往目的地。网络层协议用于实现这种传送中涉及的中继节点路由选择、子网内的信息流量控制以及差错处理等。
(1)网络层功能
网络层的主要功能是支持网络层的连接。网络层的具体功能如下:
①建立和拆除网络连接
在数据链路层提供的数据链路连接的基础上,建立传输实体间或者若干个通信子网的网络连接。互连的子网可采用不同的子网协议。
②路径选择、中继和多路复用
网际的路径和中继不同与网内的路径和和中继,网络层可以在传输实体的两个网络地址之间选择一条适当的路径,或者在互连的子网之间选择一条适当的路径和中继。并提供网络连接多路复用的数据链路连接,以提高数据链路连接的利用率。
③分组、组块和流量控制
数据分组是指将较长的数据单元分割为一些相对较小的数据单元;数据组块是指将一些相对较小的数据单元组成块后一起传输。用以实现网络服务数据单元的有序传输,以及对网络连接上传输的网络服务数据单元进行有效的流量控制,以免发生信息堵塞现象。
④差错的检测与恢复
利用数据链路层的差错报告,以及其他的差错检测能力来检测经网络连接所传输的数据单元,检测是否出现异常情况。并可以从出错状态中解脱出来。
(2)数据报和虚电路
网络层中提供两种类型的网络服务,即无连接服务和面向连接的服务。它们又被称为数据报服务和虚电路服务。
①数据报 (Datagram)服务
在数据报方式,网络层从传输层接受报文,拆分为报文分组,并且独立地传送,因此数据报格式中包含有源和目标节点的完整网络地址、服务要求和标识符。发送时,由于数据报每经过一个中继节点时,都要根据当时情况按照一定的算法为其选择一条最佳的传输路径,因此,数据报服务不能保证这些数据报按序到达目标节点,需要在接收节点根据标识符重新排序。
数据报方式对故障的适应性强,若某条链路发生故障,则数据报服务可以绕过这些故障路径而另选择其他路径,把数据报传送至目标节点。数据报方式易于平衡网络流量,因为中继节点可为数据报选择一条流量较少的路由,从而避开流量较高的路由。数据报传输不需建立连接,目标节点在收到数据报后,也不需发送确认,因而是一种开销较小的通信方式。但是发方不能确切地知道对方是否准备好接收、是否正在忙碌,故数据报服务的可靠性不是很高。而且数据报发送每次都附加源和目标主机的全网名称降低了信道利用率。
②虚电路 (Virtue Circuit) 服务
在虚电路传输方式下,在源主机与目标主机通信之前,必须为分组传输建立一条逻辑通道,称为虚电路。为此,源节点先发送请求分组Call-Request,Call-Request包含了源和目标主机的完整网络地址。Call-Request途径每一个通信网络节点时,都要记下为该分组分配的虚电路号,并且路由器为它选择一条最佳传输路由发往下一个通信网络节点。当请求分组到达目标主机后,若它同意与源主机通信,沿着该虚电路的相反方向发送请求分组Call-Request给源节点,当在网络层为双方建立起一条虚电路后,每个分组中不必再填上源和目标主机的全网地址,而只需标上虚电路号,即可以沿着固定的路由传输数据。当通信结束时,将该虚电路拆除。
虚电路服务能保证主机所发出的报文分组按序到达。由于在通信前双方已进行过联系,每发送完一定数量的分组后,对方也都给予了确认,故可靠性较高。
③路由选择
网络层的主要功能是将分组从源节点经过选定的路由送到目标节点,分组途经多个通信网络节点造成多次转发,存在路由选择问题。路由选择或称路径控制,是指网络中的节点根据通信网络的情况 (可用的数据链路、各条链路中的信息流量),按照一定的策略 (传输时间最短、传输路径最短等)选择一条可用的传输路由,把信息发往目标节点。
网络路由选择算法是网络层软件的一部分,负责确定所收到的分组应传送的路由。当网络内部采用无连接的数据报方式时,每传送一个分组都要选择一次路由。当网络层采用虚电路方式时,在建立呼叫连接时,选择一次路径,后继的数据分组就沿着建立的虚电路路径传送,路径选择的频度较低。
路由选择算法可分为静态算法和动态算法。静态路由算法是指总是按照某种固定的规则来选择路由,例如,扩散法、固定路由选择法、随机路由选择法和流量控制选择法。动态路由算法是指根据拓扑结构以及通信量的变化来改变路由,例如,孤立路由选择法、集中路由选择法、分布路由选择法、层次路由选择法等 从传输层向上的会话层、表示层、应用层都属于端一端的主机协议层。传输层是网络体系结构中最核心的一层,传输层将实际使用的通信子网与高层应用分开。从这层开始,各层通信全部是在源与目标主机上的各进程间进行的,通信双方可能经过多个中间节点。传输层为源主机和目标主机之间提供性能可靠、价格合理的数据传输。具体实现上是在网络层的基础上再增添一层软件,使之能屏蔽掉各类通信子网的差异,向用户提供一个通用接口,使用户进程通过该接口,方便地使用网络资源并进行通信。
(1) 传输层功能
传输层独立于所使用的物理网络,提供传输服务的建立、维护和连接拆除的功能;选择网络层提供的最适合的服务。传输层接收会话层的数据,分成较小的信息单位,再送到网络层,实现两传输层间数据的无差错透明传送。
传输层可以使源与目标主机之间以点对点的方式简单地连接起来。真正实现端一端间可靠通信。传输层服务是通过服务原语提供给传输层用户(可以是应用进程或者会话层协议),传输层用户使用传输层服务是通过传送服务端口TSAP实现的。当一个传输层用户希望与远端用户建立连接时,通常定义传输服务访问点TSAP。提供服务的进程在本机TSAP端口等待传输连接请求,当某一节点机的应用程序请求该服务时,向提供服务的节点机的TSAP端口发出传输连接请求,并表明自己的端口和网络地址。如果提供服务的进程同意,就向请求服务的节点机发确认连接,并对请求该服务的应用程序传递消息,应用程序收到消息后,释放传输连接。
传输层提供面向连接和无连接两种类型的服务。这两种类型的服务和网络层的服务非常相似。传输层提供这两种类型服务的原因是因为,用户不能对通信子网加以控制,无法通过使用通信处理机来改善服务质量。传输层提供比网络层更可靠的端一端间数据传输,更完善的查错纠错功能。传输层之上的会话层、表示层、应用层都不包含任何数据传送的功能。
(2)传输层协议类型
传输层协议和网络层提供的服务有关。网络层提供的服务于越完善,传输层协议就越简单,网络层提供的服务越简单,传输层协议就越复杂。传输层服务可分成五类:
0类:提供最简单形式的传送连接,提供数据流控制。
1类:提供最小开销的基本传输连接,提供误差恢复。
2类:提供多路复用,允许几个传输连接多路复用一条链路。
3类:具有0类和1类的功能,提供重新同步和重建传输连接的功能。
4类:用于不可靠传输层连接,提供误差检测和恢复。
基本协议机制包括建立连接、数据传送和拆除连接。传输连接涉及四种不同类型的标识:
用户标识:即服务访问点SAP,允许实体多路数据传输到多个用户。
网络地址:标识传输层实体所在的站。
协议标识:当有多个不同类型的传输协议的实体,对网络服务标识出不同类型的协议。
连接标识:标识传送实体,允许传输连接多路复用。 会话是指两个用户进程之间的一次完整通信。会话层提供不同系统间两个进程建立、维护和结束会话连接的功能;提供交叉会话的管理功能,有一路交叉、两路交叉和两路同时会话的3种数据流方向控制模式。会话层是用户连接到网络的接口。
(1)会话层的主要功能
会话层的目的是提供一个面向应用的连接服务。建立连接时,将会话地址映射为传输地址。会话连接和传输连接有三种对应关系,一个会话连接对应一个传输连接;多个会话连接建立在一个传输连接上;一个会话连接对应多个传输连接。
数据传送时,可以进行会话的常规数据、加速数据、特权数据和能力数据的传送。
会话释放时,允许正常情况下的有序释放;异常情况下由用户发起的异常释放和服务提供者发起的异常释放。
(2)会话活动
会话服务用户之间的交互对话可以划分为不同的逻辑单元,每个逻辑单元称为活动。每个活动完全独立于它前后的其他活动,且每个逻辑单元的所有通信不允许分隔开。
会话活动由会话令牌来控制,保证会话有序进行。会话令牌分为四种,数据令牌、释放令牌、次同步令牌和主同步令牌。令牌是互斥使用会话服务的手段。
会话用户进程间的数据通信一般采用交互式的半双工通信方式。由会话层给会话服务用户提供数据令牌来控制常规数据的传送,有数据令牌的会话服务用户才可发送数据,另一方只能接收数据。当数据发完之后,就将数据令牌转让给对方,对方也可请求令牌。
(3)会话同步
在会话服务用户组织的一个活动中,有时要传送大量的信息,如将一个文件连续发送给对方,为了提高数据发送的效率,会话服务提供者允许会话用户在传送的数据中设置同步点。一个主同步点表示前一个对话单元的结束及下一个对话单元的开始。在一个对话单元内部或者说两个主同步点之间可以设置次同步点,用于会话单元数据的结构化。当会话用户持有数据令牌、次同步令牌和主同步令牌时就可在发送数据流中用相应的服务原语设置次同步点和主同步点。
一旦出现高层软件错误或不符合协议的事件则发生会话中断,这时会话实体可以从中断处返回到一个已知的同步点继续传送,而不必从文件的开头恢复会话。会话层定义了重传功能,重传是指在已正确应答对方后,在后期处理中发现出错而请求的重传,又称为再同步。为了使发送端用户能够重传,必须保存数据缓冲区中已发送的信息数据,将重新同步的范围限制在一个对话单元之内,一般返回到前一个次同步点,最多返回到最近一个主同步点。 应用层作为用户访问网络的接口层,给应用进程提供了访问OSI环境的手段。
应用进程借助于应用实体 (AE)、实用协议和表示服务来交换信息,应用层的作用是在实现应用进程相互通信的同时,完成一系列业务处理所需的服务功能。当然这些服务功能与所处理的业务有关。
应用进程使用OSI定义和通信功能,这些通信功能是通过OSI参考模型各层实体来实现的。应用实体是应用进程利用OSI通信功能的唯一窗口。它按照应用实体间约定的通信协议 (应用协议),传送应用进程的要求,并按照应用实体的要求在系统间传送应用协议控制信息,有些功能可由表示层和表示层以下各层实现。
应用实体由一个用户元素和一组应用服务元素组成。用户元素是应用进程在应用实体内部,为完成其通信目的,需要使用的那些应用服务元素的处理单元。实际上,用户元素向应用进程提供多种形式的应用服务调用,而每个用户元素实现一种特定的应用服务使用方式。用户元素屏蔽应用的多样性和应用服务使用方式的多样性,简化了应用服务的实现。应用进程完全独立于OSI环境,它通过用户元素使用OSI服务。
应用服务元素可分为两类,公共应用服务元素 (CASE)和特定应用服务元素 (SASE)。公共应用服务元素是用户元素和特定应用服务元素公共使用的部分,提供通用的最基本的服务,它使不同系统的进程相互联系并有效通信。它包括联系控制元素、可靠传输服务元素、远程操作服务元素等;特定应用服务元素提供满足特定应用的服务。包括虚拟终端、文件传输和管理、远程数据库访问、作业传送等。对于应用进程和公共应用服务元素来说,用户元素具有发送和接收能力。对特定服务元素来说,用户元素是请求的发送者,也是响应的最终接收者。
③ OSI参考模型各层的功能作简单介绍
下面对OSI参考模型各层的功能作简单介绍。
物理层:位于OSI参考模型的最底层,提供一个物理连接,所传数据的单位是比特。其功能是对上层屏蔽传输媒体的区别,提供比特流传输服务。也就是说,有了物理层后,数据链路层及以上各层都不需要考虑使用的是什么传输媒体,无论是用双绞线、光纤,还是用微波,都被看成是一个比特流管道。
数据链路层:负责在各相邻节点间的线路上无差错地传送以帧( Frame)为单位的数据。每一帧包括一定数量的数据和一些必要的控制信息。其功能是对物理层传输的比特流进行校验,并采用检错重发等技术,使本来可能出错的数据链路变成不出错的数据链路,从而对上层提供无差错的数据传输。换句话说,就是网络层及以上层不再需要考虑传输中出错的问题,就可以认定下面是一条不出错的数据传输信道,把数据交给数据链路层,它就能完整无误地把数据传给相邻节点的数据链路层。
网络层:计算机网络中进行通信的两台计算机之间可能要经过多个节点和链路,也可能要经过多个通信子网。网络层数据的传送单位是分组或包(Packet),它的任务就是选择合适的路由,使发送端的传输层传下来的分组能够正确无误地按照目的地址发送到接收端,使传输层及以上各层在设计时不再需要考虑传输路由。
传输层:在发送端和接收端明孙之间建立一条不会出错的路由,对上层提供可靠的报文传输服务。与数据链路层提供的相邻节点间比特流的无差错传输不同,传输层保证的是发送端和接收端之间的无差错传输,主要控制的是包的丢失、错序、重复等问题。
会话层:会话层虽然不参与具体的数据传输,但它要对数据传输进行管理。会话层建立在两个互相通信的应用进程之间,组织并协调其交互。例如,在半双工通信中,确定在某段时间谁有权发送,谁有权接收;或当发生意外时(如已建立的连接突然断了),确定在重新恢复会话时应从何处开始,而不必重传全部数据。
表示层:表示层主要为上层用户解决用户信息的语法表示问题,其主要功能是完成数据转换、数据压缩和数据加密。表示层将欲交换的资料从适合于某一用户的抽象语法变换为适合于OSI系统内部使用的传送语法。有了这样的表示层,用户就可以把精力集中在他们所要交谈的问题本身,而不必更多地考虑对方的某些特性。
应用层:应用层是OSI参考模型中的最高层,它确定进程之间的通信性质以满足用户的需要,负责用户信息的语义表示,并在两个通信者之间进行语义匹配。这就是说,应用层不仅要提供应用进程所需要的信息交换等操作,还要作为相互作用的进程的用户代理,来完成一些为进行语义上有意义的信息交换所必需的功能。
以上所述的各层的最主要功能可以归纳如下:
应用层:与用户应用进程的接口,即相当于“做什么?”
表示层:数据格式的转换,即相当于“对方看起来像什么?”
会话层:会话的管理与数据传输的同步,即相当于“轮到谁讲话和从何处讲?”
传输层:从端到端经网络透明地传送报文,即相当于“对方在何处?”
网络层:分组交换和路由选择,即相当于“走哪条激漏链路可到达该处?”
数据链路层:在链路上无差错地传送帧,即相当于“每一步该怎么走?”
物理层:将比特流送到物理媒体搜御上传送,即相当于“对上一层的每一步应该怎样利用物理媒体?”
由上可见,OSI参考模型的网络功能可分为三组,下两层解决网络信道问题,第三、四层解决传输服务问题,上三层处理应用进程的访问,解决应用进程的通信问题。
④ 28 张图详解网络基础知识:OSI、TCP/IP 参考模型(含动态图)
目录
1、网络协议
其实协议在我们生活中也能找到相应的影子。
举个例子,有 2 个男生准备追求同一个妹子,妹子来自河南,讲河南话,还会点普通话;一个男生来自胡建,讲闽南语,也会点普通话;另一个男生来自广东,只讲粤语;
协议一致,沟通自如
语言不通,无法沟通
你们猜猜?最后谁牵手成功了?答案肯定是来自胡建的那位,双方可以通过 普通话 进行沟通,表达内容都能理解。而来自广东的帅哥只会讲粤语,不会普通话,妹子表示听不懂,就无法进行沟通下了。
每个人的成长环境不同,所讲的语言、认知、理解能力也就不同。为了使来自五湖四海的朋友能沟通自如,就需要大家协商,认识某一个语言或规则,彼此能互相理解,这个语言就是普通话。
通过这个例子,大家可以这样理解:
把普通话比作“协议”、把聊天比作“通信”,把说话的内容比作“数据”。
相信这样类比,大家就知道,协议是什么了?
简单地说,就是程序员指定一些标准,使不同的通信设备能彼此正确理解、正确解析通信的内容。我们都知道计算机世界里是二进制,要么 1,要么 0,那为啥可以表达丰富多彩的内容呢?
也是因为协议,不同字段,不同组合,可以解析不同意思,这就依然协议,让协议来正确处理。
例如,我们使用手机连 WiFi 来刷抖音,使用的是 802.11(WLAN)协议,通过这个协议接入网络。如果你所连的 WIFI 是不需要手动设置 IP 地址,是通过自动获取的,就使用到了 DHCP 协议,这样你的手机算上接入了 局域网, 如果你局域网内有台 NAS 服务器,存放了某些不可描述的视频资源,你就可以访问观看了,但这时你可能无法访问互联网资源,例如,你还想刷会抖音,看看妹子扭一扭,结果出现如下画面:
出现这种画面,说明无法使用 互联网, 可能是无线路由器没有设置好相关协议,比如: NAT、PPPoE 协议(上网账号或密码设置错误了),只有设置正确了,就可以通过运营商(ISP)提供的线路把局域网接入到互联网中,实现手机可以访问互联网上的资源(服务器)。玩微信撩妹子、刷抖音看妹子。
网络协议示意图
延伸阅读
1、局域网:最显着的特点就是范围有限,行政可控的区域可以是一所高校、一个餐厅、一个园区、一栋办公楼或一个家庭的私有网络。
2、城域网:原本是介意局域网和广域网之间,实际工作中很少再刻意去区分城域网和广域网了,所以这边不再介绍。
3、广域网:简单说就是负责把多个局域网连接起来,它的传输距离长距离传输,广域网的搭建一般是由运营商来。
4、互联网:把全世界上提供资源共享的 IT 设备所在网络连接起来,接入了互联网就可以随时随地访问这些资源了。
5、物联网:把所有具有联网功能的物体都接入互联网就形成了物联网。如空调联网,就可以远程控制空调; 汽车 联网,就可以远程获取行程数据。
总结一下吧!我们可以把电脑、手机等 IT 设备比喻做来自五湖四海的人们,大家都通过多种语言(网络协议)实现沟通(通信)。所有人要一起交流,就用普通话,大家都能理解。所有胡建人在一起,就用闽南语进行沟通,彼此也能理解。这么的方言,就好比计算机网络世界里也有这么多协议,只是不同协议用在不同地方。
好奇的同学,可能就会问,那网络协议是由谁来规定呢?这就需要提到一个组织,ISO。这个组织制定了一个国际标准 ,叫做 OSI 参考模型,如下,很多厂商都会参考这个制定网络协议。
OSI 参考模型图
2、OSI 参考模型
既然是模型,就好比模范一样,大家都要向它学习,以它为原型,展开学习研究。前面我们也提到了一些协议,这么多协议如果不进行归纳,分层,大家学习起来是不是感觉很凌乱?
所以 OSI 参考模型就是将这样复杂的协议整理并进行分层,分为易于理解的 7 层,并定义每一层的 服务 内容,协议的具体内容是 规则 。上下层之间通过 接口 进行交互,同一层之间通过 协议 进行交互。相信很多网络工程师在今后工作中遇到问题,讨论协议问题还会用到这个模型展开讨论。所以说,对于计算机网络初学者来说,学习了解 OSI 参考模型就是通往成功的第一步。
OSI 参考模型分层功能
7.应用层
为应用程序提供服务并规定应用程序中通信相关的细节,OSI 的最高层。包括文件传输、Email、远程登录等协议。程序员接触这一层比较多。
应用层示例图
6.表示层
主要负责数据格式的转换,为上下层能够处理的格式。如编码、加密、解密等。
表示层示例图
5.会话层
即负责建立、管理和终止通信连接(数据流动的逻辑通路),数据分片、重组等传输的管理。
会话层示例图
4.传输层
保证可靠传输,不需要再路由器上处理,只需再通信双方节点上进行处理,如处理差错控制和流量控制。
传输层示例图
3.网络层
主要负责寻址和路由选择,将数据包传输到目的地。
网络层示例图
2.数据链路层
负责物理层面上互连、节点之间的通信传输,将0 、 1 序列比特流划分为具有意义的数据帧传输给对端。这一层有点类似网络层,网络层也是基于目的地址来传输,不同是:网络层是将数据包负责在整个网络转发,而数据链路层仅是在网段内转发,所以大家抓包会发现,源目 MAC 地址每经过一个二层网段,都会变化。
数据链路层示例图
1.物理层
负责 0、1 比特流(0、1 序列)与电压高低电平、光的闪灭之间的互相转换,为数据链路层提供物理连接。
物理层示例图
OSI 为啥最后没有得到运用呢?其实最主要的原因,是 OSI 模型出现的比 tcp/ip 出现的时间晚,在 OSI 开始使用前,TCP/IP 已经被广泛的应用了。如果要换成 OSI 模型也不太现实。其次是 OSI 是专家们讨论,最后形成的,由于没有实践,导致该协议实现起来很复杂,很多厂商不愿意用 OSI,与此相比,TCP/IP 协议比较简单,实现起来也比较容易,它是从公司中产生的,更符合市场的要求。综合各种因素,最终 OSI 没有被广泛的应用。
下面我们来看看 TCP/IP 与 OSI 分层之间的对应关系及相应的协议:
4.应用层
从上图,可以知道 TCP/IP 四层模型,把应用层、表示层、会话层集成再一起了,该层的协议有:HTTP 、 POP3 、 TELNET 、 SSH 、 FTP 、 SNMP 等。
目前,大部分基于 TCP/IP 的应用都是 客户端/服务端 架构。一般我们把提供资源服务的那一侧叫服务端, 发起访问服务资源的这一侧叫客户端。
应用层
3.传输层
主要职责就是负责两端节点间的应用程序互相通信,每个节点上可能有很多应用程序,例如,登录了微信,又打开了网页,又打开迅雷看看,那数据到达后怎么正确传送到相应的应用程序呢?那就需要 端口号 来正确识别了。传输层中最为常见的两个协议分别是传输控制协议 TCP (Transmission Control Protocol)和用户数据报协议 UDP (User Datagram Protocol)
面向连接 顾名思义,就是建立连接,什么时候建立连接呢?就是在通信之前需要先建立一条逻辑的通信链路。就跟我们平时打电话一样,得先拨通,通了之后即链路建立好了,这条链路只有你和对方可以在这条链路传播说话内容。挂电话后,这条链路也就断开了。
面向无连接 无连接,即通信之前不需要建立连接,直接发送即可。跟我们以前写信很像,不需要管对方在不在?直接写信寄过去就可以了。
面向连接传输
面向无连 接传输
2.网络层
主要职责就是将数据包从源地址发送到目的地址。
在网络传输中,每个节点会根据数据的 IP 地址信息,来判断该数据包应该由哪个接口(网卡)发送出去。各个地址会参考一个发出接口列表, MAC 寻址中所参考的这张表叫做 MAC 地址转发表 ,而 IP 寻址中所参考的叫做 路由表 。MAC 地址转发表根据自学自动生成。路由控制表则根据路由协议自动生成。MAC 地址转发表中所记录的是实际的 MAC 地址本身,而路由表中记录的 IP 地址则是集中了之后的网络号(即网络号与子网掩码)。
1.网络接口层
在 TCP/IP 把物理层和数据链路层集成为 网络接口层 。主要任务是将上层的数据封装成帧发送到网络上,数据帧通过网络到达对端,对端收到后对数据帧解封,并检查帧中包含的 MAC 地址。如果该地址就是本机的 MAC 地址或者是广播地址,则上传到网络层,否则丢弃该帧。
封装与解封装
所谓的封装,其实就跟你寄快递的时候,给物品加上纸盒包装起来或者快件到站点,快递员贴一层标签的过程。在网络上,就是上层的数据往下送的时候,下层会添加头部,不过,只有在二层,不仅会加上头部,还会在上层数据尾部添加 FCS。
封装
所谓解封装,就如同你收到快件一样,一层一层地拆外包装,直到看到快件。网络也是,一层一层地拆掉头部,往上层传送,直到看到数据内容。
解封装
我们把应用层的数据封装传输层头部后的报文,称为 段 ;
把段封装网络层头部后的报文,称为 包 ;
把包封装以太网头部和帧尾,称为 帧 。
⑤ 计算机网络技术第2章里面OSI参考模型中的第一层物理层的协议数据单元里面的信号(首部1010011
为什么要在意这些 微不足道的 细节,纤正这就是陆竖埋 随便写的 0和1组成的数据,只是这条数据的某一部分,一般是固定的但是这并没有写全。这些数据都是叠加而早蚂来的
⑥ 计算机网络模型(OSI & TCP/IP)
开放式系统互联模型 (英语: O pen S ystem I nterconnection Model,缩写:OSI;简称为 OSI模型 )是一种 概念模型 ,由 国际标准化组织 提出,一个试图使各种计算机在世界范围内互连为网络的标准框架。7层中按照功能可分为资源子网和通信子网。每层提取一个字简记为“物联网书会使用”
根据建议X.200,OSI将计算机网络体系结构划分为以下七层,标有1~7,第1层在底部。 现“OSI/RM”是 英文 “Open Systems Interconnection Reference Model”的缩写。
应用层(Application Layer)提供为应用软件而设的接口,以设置与另一应用软件之间的通信。例如:HTTP、HTTPS、FTP、Telnet、SSH、SMTP、POP3等。所有能与用户交互产生网络流量的程序都在这一层。
表达层(Presentation Layer)把数据转换为能与接收者的系统格式兼容并适合传输的格式。用于处理在两个通信系统中交换信息的表示方式(语法和语义)。有如下功能:
😊数据格式变换(比特流解析成图片...)
😊数据加密解密
😊数据压缩与恢复
会话层(Session Layer)负责在数据传输中设置和维护计算机网络中两台计算机之间的通信连接。向表示层用户实体/用户进程提供 建立连接 并在连接上 有序 的 传输 数据。这是会话,也是建立同步(SYN)。功能如下:
》建立、管理、终止会话
》使用校验点可使会话在通信失效时从校验点/同步点继续恢复通信,实现数据同步。(适用于传输大文件)
传输层(Transport Layer)把传输表头(TH)加至数据以形成数据包。传输表头包含了所使用的协议等发送信息。例如:传输控制协议(TCP)、用户数据报协议( UDP) 等。负责主机中两个进程的通信,即端到端的通信。传输单位是报文段或用户数据报。功能如下:
👍可靠传输、不可靠传输
👍差错控制
👍流量控制
👍复用分用
网络层(Network Layer)决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成报文。网络表头包含了网络数据。例如:互联网协议(IP)、ICMP、IGMP……等。主要任务是将分组从源端传递到目的端,为分组交换网上的不同主机提供通信服务。网络层的传输单位是数据报。功能有:
😎路由选择
😎流量控制
😎差错控制
😎拥塞控制(若所有节点来不及接受分组而要大量丢弃分组的话,网络处于拥塞状态)
主要任务是把网络层传下来的数据报组装成帧。这层传输单位为帧。
数据链路层(Data Link Layer)负责网络寻址、错误侦测和改错。当表头和表尾被加至数据包时,会形成 信息框 (Data Frame)。数据链表头(DLH)是包含了物理地址和错误侦测及改错的方法。数据链表尾(DLT)是一串指示数据包末端的字符串。例如以太网、无线局域网(Wi-Fi)和通用分组无线服务(GPRS)等。
分为两个子层:逻辑链路控制(logical link control,LLC)子层和介质访问控制(Media access control,MAC)子层。功能有:
😜成帧(定义帧的开始和结束)
😜差错控制(帧错+位错)
😜流量控制
😜访问(接入)控制,控制对信道的访问。
主要是在物理媒体上实现比特流的透明传输。传输单位是bit。物理层就是个小傻瓜。
物理层(Physical Layer)在局部局域网上传送 数据帧 (Data Frame),它负责管理电脑通信设备和网络媒体之间的互通。包括了针脚、电压、线缆规范、集线器、中继器、网卡、主机接口卡等。功能有:
🤢定义接口特性
🤢定义传输模式(全双工、半双工、单工)
🤢定义传输速率
🤢比特同步
🤢比特编码
TCP/IP提供了点对点链接的机制,将数据应该如何封装、寻址、传输、路由以及在目的地如何接收,都加以标准化。它将软件通信过程 抽象化 为四个 抽象层 ,采取 协议堆栈 的方式,分别实现出不同通信协议。协议族下的各种协议,依其功能不同,被分别归属到这四个层次结构之中,常被视为是简化的七层 OSI模型 。
该层包括所有和应用程序协同工作,利用基础网络交换应用程序专用的数据的协议。 应用层 是大多数普通与网络相关的程序为了通过网络与其他程序通信所使用的层。这个层的处理过程是应用特有的;数据从网络相关的程序以这种应用内部使用的格式进行传送,然后被编码成标准协议的格式。
一些特定的程序被认为运行在这个层上。它们提供服务直接支持用户应用。这些程序和它们对应的协议包括 HTTP (万维网服务)、 FTP (文件传输)、 SMTP (电子邮件)、 SSH (安全远程登录)、 DNS (名称<-> IP地址寻找)以及许多其他协议。 一旦从应用程序来的数据被编码成一个标准的应用层协议,它将被传送到IP栈的下一层。
在传输层,应用程序最常用的是TCP或者UDP,并且服务器应用程序经常与一个 公开的端口号 相联系。服务器应用程序的端口由 互联网号码分配局 (IANA)正式地分配,但是现今一些新协议的开发者经常选择它们自己的端口号。由于在同一个系统上很少超过少数几个的服务器应用,端口冲突引起的问题很少。应用软件通常也允许用户强制性地指定端口号作为运行 参数 。
链接外部的客户端程序通常使用系统分配的一个随机端口号。监听一个端口并且通过服务器将那个端口发送到应用的另外一个副本以创建对等链接(如 IRC 上的 dcc 文件传输)的应用也可以使用一个随机端口,但是应用程序通常允许定义一个特定的端口范围的规范以允许端口能够通过实现 网络地址转换 (NAT)的路由器映射到内部。
每一个应用层( TCP/IP参考模型 的最高层)协议一般都会使用到两个传输层协议之一: 面向连接的 TCP传输控制协议 和无连接的包传输的 UDP用户数据报文协议 。 常用的应用层协议有:
运行在 TCP 协议上的协议:
HTTP (Hypertext Transfer Protocol,超文本传输协议),主要用于普通浏览。
HTTPS (Hypertext Transfer Protocol over Secure Socket Layer, or HTTP over SSL,安全超文本传输协议),HTTP协议的安全版本。
FTP (File Transfer Protocol,文件传输协议),由名知义,用于文件传输。
POP3 (Post Office Protocol, version 3,邮局协议),收邮件用。
SMTP (Simple Mail Transfer Protocol,简单邮件传输协议),用来发送电子邮件。
TELNET (Teletype over the Network,网络电传),通过一个终端(terminal)登陆到网络。
SSH (Secure Shell,用于替代安全性差的 TELNET ),用于加密安全登陆用。
运行在 UDP 协议上的协议:
BOOTP (Boot Protocol,启动协议),应用于无盘设备。
NTP (Network Time Protocol,网络时间协议),用于网络同步。
DHCP (Dynamic Host Configuration Protocol,动态主机配置协议),动态配置IP地址。
其他:
DNS (Domain Name Service,域名服务),用于完成地址查找,邮件转发等工作(运行在 TCP 和 UDP 协议上)。
ECHO (Echo Protocol,回绕协议),用于查错及测量应答时间(运行在 TCP 和 UDP 协议上)。
SNMP (Simple Network Management Protocol,简单网络管理协议),用于网络信息的收集和网络管理。
ARP (Address Resolution Protocol,地址解析协议),用于动态解析以太网硬件的地址。
传输层 (transport layer)的协议,能够解决诸如端到端可靠性(“数据是否已经到达目的地?”)和保证数据按照正确的顺序到达这样的问题。在TCP/IP协议组中,传输协议也包括所给数据应该送给哪个应用程序。 在TCP/IP协议组中技术上位于这个层的动态路由协议通常被认为是网络层的一部分;一个例子就是 OSPF (IP协议89)。 TCP (IP协议6)是一个“可靠的”、 面向链接 的传输机制,它提供一种可靠的字节流保证数据完整、无损并且按顺序到达。TCP尽量连续不断地测试网络的负载并且控制发送数据的速度以避免网络过载。另外,TCP试图将数据按照规定的顺序发送。这是它与UDP不同之处,这在实时数据流或者路由高 网络层 丢失率应用的时候可能成为一个缺陷。 较新的 SCTP 也是一个“可靠的”、 面向链接 的传输机制。它是面向记录而不是面向字节的,它在一个单独的链接上提供通过多路复用提供的多个子流。它也提供多路自寻址支持,其中链接终端能够被多个IP地址表示(代表多个实体接口),这样的话即使其中一个连接失败了也不中断。它最初是为电话应用开发的(在 IP 上传输 SS7 ),但是也可以用于其他的应用。 UDP (IP协议号17)是一个 无链接 的数据报协议。它是一个“尽力传递”(best effort)或者说“不可靠”协议——不是因为它特别不可靠,而是因为它不检查数据包是否已经到达目的地,并且不保证它们按顺序到达。如果一个应用程序需要这些特性,那它必须自行检测和判断,或者使用 TCP 协议。 UDP的典型性应用是如流媒体(音频和视频等)这样按时到达比可靠性更重要的应用,或者如 DNS 查找这样的简单查询/响应应用,如果创建可靠的链接所作的额外工作将是不成比例地大。 DCCP 目前正由IETF开发。它提供TCP流动控制语义,但对于用户来说保留UDP的数据报服务模型。 TCP和UDP都用来支持一些高层的应用。任何给定网络地址的应用通过它们的TCP或者UDP 端口号 区分。根据惯例使一些 大众所知的端口 与特定的应用相联系。 RTP 是为如音频和视频流这样的实时数据设计的数据报协议。RTP是使用UDP包格式作为基础的会话层,然而据说它位于因特网协议栈的传输层。
TCP/IP协议族中的 网络互连层 (internet layer)在OSI模型中叫做 网络层 (network layer)。
正如最初所定义的, 网络层 解决在一个单一网络上传输数据包的问题。类似的协议有 X.25 和 ARPANET 的 Host/IMP Protocol 。 随着 因特网 思想的出现,在这个层上添加附加的功能,也就是将数据从源 网络 传输到目的网络。这就牵涉到在网络组成的网上选择路径将数据包传输,也就是 因特网 。 在因特网协议组中, IP 完成数据从源发送到目的的基本任务。IP能够承载多种不同的高层协议的数据;这些协议使用一个唯一的 IP协议号 进行标识。ICMP和IGMP分别是1和2。 一些IP承载的协议,如 ICMP (用来发送关于IP发送的诊断信息)和 IGMP (用来管理 多播 数据),它们位于IP层之上但是完成网络层的功能,这表明因特网和OSI模型之间的不兼容性。所有的路由协议,如 BGP 、 OSPF 、和 RIP 实际上也是网络层的一部分,尽管它们似乎应该属于更高的协议栈。
网络访问(链接)层实际上并不是因特网协议组中的一部分,但是它是数据包从一个设备的网络层传输到另外一个设备的网络层的方法。这个过程能够在 网卡 的 软件 驱动程序 中控制,也可以在 韧体 或者专用 芯片 中控制。这将完成如添加 报头 准备发送、通过 实体 介质 实际发送这样一些 数据链路 功能。另一端,链路层将完成数据帧接收、去除报头并且将接收到的包传到网络层。 然而,链路层并不经常这样简单。它也可能是一个 虚拟专有网络 (VPN)或者隧道,在这里从网络层来的包使用 隧道协议 和其他(或者同样的)协议组发送而不是发送到实体的接口上。VPN和信道通常预先建好,并且它们有一些直接发送到实体接口所没有的特殊特点(例如,它可以加密经过它的数据)。由于现在链路“层”是一个完整的网络,这种协议组的 递归 使用可能引起混淆。但是它是一个实现常见复杂功能的一个优秀方法。(尽管需要注意预防一个已经封装并且经隧道发送下去的数据包进行再次地封装和发送)。