计算机网络参考模型

简介: 计算机网络参考模型

简介

       本章大家将学习网络参考模型的概念,对干参考模型的讲解将会贯穿网络课程的始终,因为它是理解网络这个全新世界的关键所在,如果将网络工程师的技能比作一门绝世武功,那么对于网络参考模型的理解就是内功心法。本章的主要内容有三个部分:各层的名称,功能,数据在各层之间的传输过程,TCP/P协议簇,由于大家初次接触网络参考模型,因此本章内容讲解得比较浅显,对于TCP/IP协议只达到简介的层面,并非本章的重点。而本章最核心的内容是第2.2节,即数据在各层之间的传输过程,据此也可以对各层功能有更好的理解。

1.分层模型

       我们对这个世界的认识往往只是冰山一角,大部分的“真相”都掩藏在海平面以下,网络世界

更是如此。平时在家里访问各种网页或聊QQ 时,我们的操作无外乎双击图标,打几个字而已,但

对于计算机和网络中转设备来说,这是一个相当复杂的过程,就好像邮寄一份礼物给远方的朋友

我们需要做的只是将这份礼物交给邮局并注明正确的地址,如果不出意外,这位友人将在一两周后

收到,但是这份礼物中间经历了哪些复杂的过程,传递礼物的双方就不得而知了。对于网络的最终

用户,了解到这个层次已经足够了,但如果想成为一名网络专业人员,就必须对这个过程了如指掌,这样才能分析排查网络的常见故障。

1.1 分层的思想

       下面将开始研究网络传输的真正的过程,但是这个过程非常复杂,因此应首先建立分层模型分层模型是一种用于开发网络协议的设计方法。而分层思想本质上讲就是把节点间通信这个复杂问

题分成若干相对简单的问题逐一解决,而每个问题对应一层,每一层实现一定的功能,相互协作即

可实现数据通信这个复杂任务。

       让我们试想一下,早上时间比较紧张的时候,冲一杯牛奶是一种不错的早餐方案,作为最终用户,我们并没有感受到喝一杯牛奶有多难,因为我们只是把奶粉从超市买回家,用水冲开而已,但奶粉的生产者将面临一系列复杂的问题,例如,如何选择物美价廉的奶源,如何将牛奶运送到奶粉厂且保证牛奶不变质,奶粉的整个生产工艺(包括检验),如何包装能更吸引客户,如何与各大超市洽谈,如何与物流公司沟通等。作为一名奶粉厂的管理者,应该如何应对这么复杂的事情呢?最好的方法就是用分层的思想,将整个生产销售流程分成几个不同的管理模块,每个模块由专门的负责人管理协调,干是奶粉厂就会出现各个部门,原料采购部 奶源加工车间奶粉生产车间奶粉包装车间,销售部门等,如图所示,

       这样奶粉加工生产的整个过程一下就变得很清晰了,更重要的是,如果出现各种问题,如奶粉质量问题,管理者可以很快确定问题的原因,从而有针对性地解决问题。这些部门有着各自相对独立的职责,又是彼此相关联的,处于流程前端的部门为后续部门服务,后续部门也需要在前端部门的基础上实现其功能。例如,原料采购部为奶源加工车间服务,因为只有优质的奶源才能保证加工的半成品的质量,奶源加工车间的工作又是在原料采购部的基础上完成的。一旦在最后的成品中发现细菌超标,可以很容易确定是奶源加工车间出了问题。

       现在让我们从现实世界回到网络世界,网络节点间通信也体现了这种思想,赋予每一层一定的功能,相邻层之间通过接口来通信,下层为上层提供服务,一旦网络发生故障,很容易确定问题是由哪一层的功能没有实现而导致的,将故障产生的原因聚焦于一点,有助于更加清晰明了地分析问题,解决问题,另外,对于还处于学习阶段的我们,首先将网络最终的通信目标分解成各个子层的目标,然后逐一研究每一层的功能是如何实现的,这种思想有助于将复杂问题简单化,清晰化。

1.2 OSI参考模型与TCP/IP协议簇

       在网络环境中常用的分层模型有两种:OSI参考模型与 TCP/IP参考模型,下面将分别介绍这两

种模型。

1.OSI 参考模型

       通过之前的例子,大家应该可以理解分层模型对于网络管理而言,就像是企业组织架构对于企业管理一样具有至关重要的地位。由于各个计算机厂商都采用私有的网络模型,因此给通信带来了诸多麻烦,ISO于1984年颁布了OSI参考模型OSI参考模型是一个开放式体系结构,它规定将络

分为七层,从下往上依次是物理层,数据链路层,网络层,传输层,会话层,表示层和应用层,如

图所示,

1)物理层

       物理层(PhysicalLayer)的主要功能是完成相邻节点之间原始比特流的传输。物理层协议关心的典型问题是使用什么样的物理信号来表示数据1和0一位持续的时间有多长,数据传输是否可同时在两个方向上进行,最初的连接如何建立及完成通信后连接如何终止,物理接口(插头和插座)有多少针及各针的用处。物理层的设计要涉及物理层接口的机械、电气,功能和过程特性,以及物理层接口连接的传输介质等问题。另外,物理层的设计还涉及通信工程领域内的一些问题。

2)数据链路层

       数据链路层(DataLinkLayer)负责将上层数据封装成固定格式的帧,在数据帧内封装发送和接收端的数据链路层地址(在以太网中为MAC地址,MAC地址是用来标识网卡的物理地址;在广城网中点到多点的连接情况下,可以是一个链路的标识),并且为了防止在数据传输过程中产生误码,要在帧尾部加上校验信息,当发现数据错误时,可以重传数据帧。

3)网络层

       网络层(NetworkLayer)的主要功能是实现数据从源端到目的端的传输,在网络层,使用逻辑地址来标识一个点,将上层数据封装成数据包,在包的头部封装了源和目的端的逻辑地址。网络层

根据数据包头部的逻辑地址选择最佳的路径,将数据送达目的端。

4)传输层

       传输层(TransportLayer)的主要功能是实现网络中不同主机上用户进程之间的数据通信,网络层和数据链路层负责将数据送达目的端的主机,而这个数据需要什么用户进程去外理,就需要传输层帮忙了。

       例如,用QQ发送消息,网络层和数据链路层负责将消息转发到接收人的主机,而接收人应该

用QQ程序来接收还是用IE浏览器来接收,就是在传输层进行标识。

       传输层要决定对会话层用户(最终的网络用户)提供什么样的服务,因此,我们经常把1~3层的协议称为点到点的协议,而把4~7层的协议称为端到端的协议。

       由于绝大多数主机都支持多进程操作,因此机器上会同时有多个程序访问网络,这就意味着将有多条连接进出于这台主机,因此需要以某种方式区别报文属于哪条连接。识别这些连接的信息可以放在传输层的报文头中,除了将几个报文流多路复用到一条通道上,传输层还必须管理跨网连接的建立和拆除,这就需要某种命名机制,使机器内的进程能够说明它希望交谈的对象。

5)会话层

       会话层(SessionLayer)允许不同机器上的用户之间建立会话关系。会话层允许进行类似传输层

的普通数据传送,在某些场合还提供了一些有用的增强型服务;允许用户利用一次会话在远端的分

时系统上登录,或在两台机器间传递文件。

       会话层提供的服务之一是管理对话控制。会话层允许信息同时双向传输,或任意一个时刻只能单向传输,如果属于后者,则类似于物理信道上的半双工模式,会话层将记录此时该轮到哪一方。

       一种与对话控制有关的服务是今牌管理(TokenManaqement)。有些协议会保证双方不能同时进行同样的操作,这一点很重要。为管理这些活动,会话层提供了令牌,令牌可以在会话双方之间移动,只有持有令牌的一方可以执行某种关键性操作。另一种会话层服务是同步的,如果在平均每小时出现一次大故障的网络上,两台机器间要进行一次两小时的文件传输,会出现什么样的问题呢?每一次传输中途失败后,都不得不重新传送这个文件,当网络再次出现大故障时,可能又会半途而废。

       为解决这个问题,会话层提供了一种方法,即在数据中插入同步点。当每次网络出现故障后,仅需重传最后一个同步点以后的数据。

6)表示层

       表示层(PresentationLayer)用于完成某些特定功能,对这些功能人们常常希望找到普遍的解决

方法,而不必由每个用户自己来实现,值得一提的是,表示层以下各层只关心从源端机到目标机可

靠地传送比特,而表示层关心的是所传送信息的语法和语义。表示层服务的一个典型例子是用一种

大家一致选定的标准方法对数据进行编码。大多数用户程序之间并非交换随机比特,而是交换诸如

人名,日期,货币数量和发票之类的信息,这些对象是用字符串,整型数,浮点数的形式,以及由

几种简单类型组成的数据结构来表示的。

       在网络上,计算机可能采用不同的数据表示法,所以在数据传输时需要进行数据格式转换。例如,在不同的机器上常用不同的代码来表示字符串(ASCI码和EBCDIC)整型数(二进制反码或补

码)及机器字的不同字节顺序等。为了让采用不同数据表示法的计算机之间能够相互通信并交换数

据,我们在通信过程中使用抽象的数据结构(如抽象语法表示ASN.1)来表示所传送的数据,而在

机器内部仍然采用各自的标准编码,管理这些抽象数据结构,并在发送方将机器的内部编码转换为

适合网上传输的传送语法及在接收方做相反的转换等工作都是由表示层来完成的。

       另外,表示层还涉及数据压缩和解压,数据加密和解密等工作。

7)应用层

       联网的目的在于支持运行于不同计算机上的进程之间的通信,而这些进程则是为用户完成不同任务而设计的。应用是多方面的,不受网络结构的限制。应用层(ApplicationLayer)包含大量人们

普遍需要的协议,显然,对于需要通信的不同应用来说,应用层的协议都是必需的,例如PC(Personal Computer,个人计算机)用户利用仿真终端软件通过网络使用该远程主机的资源。这个仿真终端程序使用虚拟终端协议将键盘输入的数据传送到主机的操作系统,并接收显示干屏幕的数据。

       又如,当用户想要获得远程计算机上的一个文件副本时,他要向本机的文件传输软件发出请求,这个软件与远程计算机上的文件传输进程通过文件传输协议进行通信,这个协议主要处理文件名。用户许可状态和其他请求细节的通信。远程计算机上的文件传输进程使用其他进程来传输文件内容。

       由于每个应用有不同的要求,因此应用层的协议集在OS参考模刑中并没有定义但是 有此确定的应用层协议,包括虚拟终端、文件传输和电子邮件等都可作为标准化的候选。

2.TCP/IP 参考模型

       另外一个著名的模型是TCP/IP模型。TCP/IP是传输控制协议/网际协议(Transmission Control

Protocol/InternetProtocol)的简称,早期的TCP/P模型是一个四层结构,从下往上依次是网络接口层,互联网层、传输层和应用层。在后来的使用过程中,借鉴OSI的七层参考模型,将网络接口层划分为物理层和数据链路层,形成了一个新的五层结构。TCP/IP是一系列协议的集合,所以严格的称呼应该是TCP/P协议簇。

       TCP/IP协议簇的前四层与OSI参考模型的前四层相对应,其功能也非常类似,而应用层则与OSI参考模型的最高三层相对应,如图所示。

        值得注意的是,OSl参考模型没有考虑任何一组特定的协议,因此OSI更具有通用性;而TCP/IP参考模型与TCP/P协议簇吻合得很好,虽然该模型不适用于其他任何协议栈,但如今的网络多以TCP/IP协议簇作为基础,这使得在分层设计上没有过多考虑协议的OSI分层理念,所以没有广泛地应用于实际工作中,相反,人们更多地应用TCP/IP分层模型在实际工作中分析问题,解决问题。

       TCP/IP五层模型应用得更广泛,因此本书及以后的内容在讨论问题时一律采用五层模型,下面是该模型对应的一些常见协议,如图所示,

1)物理层和数据链路层

       在物理层和数据链路层,TCP/IP并没有定义任何特定的协议,它支持所有标准的,专用的协议,网络可以是局域网(如广泛使用的以太网)、城域网或广域网。所以,TCP/IP实际上只有三个层次。

2)网络层

       在网络层,TCP/IP定义了P(InternetProtocol,网际协议),而P又由四个支撑协议成:ARP(地

址解析协议)、RARP(逆地址解析协议)、ICMP(网际控制报文协议)和IGMP(网际组管理协议)。

3)传输层

       传统上,TCP/IP有两个传输层协议:TCP(传输控制协议)和UDP(用户数据报协议)。TCP协议传输更加稳定可靠,UDP协议传输效率更高。

4)应层

       在应用层,TCP/IP定义了许多协议,如HTTP(超文本传输协议),FTP(文件传输协议)、SMTP

(简单邮件传输协议)DNS(域名系统)等。

       上述这些协议将在后续课程中具体讲解,这里大家只要明确协议与各层的对应关系即可,当我们研究具体协议的应用时,结合该协议所在层的功能来理解和分析问题将事半功倍。

相关文章
|
24天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于BP神经网络的苦瓜生长含水量预测模型matlab仿真
本项目展示了基于BP神经网络的苦瓜生长含水量预测模型,通过温度(T)、风速(v)、模型厚度(h)等输入特征,预测苦瓜的含水量。采用Matlab2022a开发,核心代码附带中文注释及操作视频。模型利用BP神经网络的非线性映射能力,对试验数据进行训练,实现对未知样本含水量变化规律的预测,为干燥过程的理论研究提供支持。
|
24天前
|
网络协议 前端开发 Java
网络协议与IO模型
网络协议与IO模型
网络协议与IO模型
|
23天前
|
机器学习/深度学习 网络架构 计算机视觉
目标检测笔记(一):不同模型的网络架构介绍和代码
这篇文章介绍了ShuffleNetV2网络架构及其代码实现,包括模型结构、代码细节和不同版本的模型。ShuffleNetV2是一个高效的卷积神经网络,适用于深度学习中的目标检测任务。
61 1
目标检测笔记(一):不同模型的网络架构介绍和代码
|
4天前
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议
|
9天前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
28 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
18天前
|
机器学习/深度学习 算法 数据挖掘
【深度学习】经典的深度学习模型-02 ImageNet夺冠之作: 神经网络AlexNet
【深度学习】经典的深度学习模型-02 ImageNet夺冠之作: 神经网络AlexNet
25 2
|
25天前
|
开发者
什么是面向网络的IO模型?
【10月更文挑战第6天】什么是面向网络的IO模型?
20 3
|
25天前
|
数据挖掘 开发者
网络IO模型
【10月更文挑战第6天】网络IO模型
35 3
|
25天前
|
缓存 Java Linux
硬核图解网络IO模型!
硬核图解网络IO模型!
|
26天前
|
数据挖掘 开发者
网络IO模型如何选择?
网络IO模型如何选择?【10月更文挑战第5天】
18 2