计算机网络模型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机网络模型
计算机网络是指由通信线路互相连接的许多自主工作的计算机构成的集合体,各个部件之间以何种规则进行通信,就是网络模型研究的问题。
网络模型有OSI七层参考模型、TCP/IP 四层参考模型、五层协议的体系结构。
其中OSI七层参考模型、TCP/IP四层参考模型这两个模型在网络中应用最为广泛。
一、OSI(Open System Interconnection),开放式系统互联参考模型
OSI是Open System Interconnect的缩写,意为开放式系统互联。
一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互联模型。
它是一个逻辑上的定义,一个规范,它把网络协议从逻辑上分为了7层,自上而下依次是应用层、表示层、会话层、传输层、网络层、数据链路层、物理层(见图1)。
每一层都有相关、相对应的物理设备,比如常规的路由器是三层交换设备,常规的交换机是二层交换设备。
OSI七层模型是一种框架性的设计方法,建立七层模型的主要目的是为解决异种网络互连时所遇到的兼容性问题,其最主要的功能就是帮助不同类型的主机实现数据传输(见图2)。
它的最大优点是将服务、接口和协议这三个概念明确地区分开来,通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,但OSI七层参考模型复杂也不实用
图1
图2
各层功能
(1)物理层(Physical Layer)
物理层是OSI参考模型的最低层,它利用传输介质为数据链路层提供物理连接。
它主要关心的是通过物理链路从一个节点向另一个节点传送比特流,物理链路可能是铜线、卫星、微波或其他的通讯媒介。
它关心的问题有:多少伏电压代表1?多少伏电压代表0?时钟速率是多少?采用全双工还是半双工传输?总的来说物理层关心的是链路的机械、电气、功能和规程特性。
(2)数据链路层(Data Link Layer)
数据链路层是为网络层提供服务的,解决两个相邻结点之间的通信问题,传送的协议数据单元称为数据帧。
数据帧中包含物理地址(又称MAC地址)、控制码、数据及校验码等信息。
该层的主要作用是通过校验、确认和反馈重发等手段,将不可靠的物理链路转换成对网络层来说无差错的数据链路。
此外,数据链路层还要协调收发双方的数据传输速率,即进行流量控制,以防止接收方因来不及处理发送方来的高速数据而导致缓冲器溢出及线路阻塞。
(3)网络层(Network Layer)
网络层是为传输层提供服务的,传送的协议数据单元称为数据包或分组。
该层的主要作用是解决如何使数据包通过各结点传送的问题,即通过路径选择算法(路由)将数据包送到目的地。
另外,为避免通信子网中出现过多的数据包而造成网络阻塞,需要对流入的数据包数量进行控制(拥塞控制)。
当数据包要跨越多个通信子网才能到达目的地时,还要解决网际互连的问题。
(4)传输层(Transport Layer)
传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。
该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路。
传输层传送的协议数据单元称为段或报文。
(5)会话层(Session Layer)
会话层主要功能是管理和协调不同主机上各种进程之间的通信(对话),即负责建立、管理和终止应用程序之间的会话。
会话层得名的原因是它很类似于两个实体间的会话概念。
例如,一个交互的用户会话以登录到计算机开始,以注销结束。
(6)表示层(Presentation Layer)
表示层处理流经结点的数据编码的表示方式问题,以保证一个系统应用层发出的信息可被另一系统的应用层读出。
如果必要,该层可提供一种标准表示形式,用于将计算机内部的多种数据表示格式转换成网络通信中采用的标准表示形式。
数据压缩和加密也是表示层可提供的转换功能之一。
(7)应用层(Application Layer)
应用层是OSI参考模型的最高层,是用户与网络的接口。
该层通过应用程序来完成网络用户的应用需求,如文件传输、收发电子邮件等。
各层功能列表总结见下表1
表1
比喻
7 应用层:老板
6 表示层:相当于公司中演示稿老板、替老板写信的助理
5 会话层:相当于公司中收寄信、写信封与拆信封的秘书
4 传输层:相当于公司中跑邮局的送信职员
3 网络层:相当于邮局中的排序工人
2 数据链路层:相当于邮局中的装拆箱工人
1 物理层:相当于邮局中的搬运工人[1]
二、TCP/IP参考模型
这里针对是TCP/IP四层参考模型
TCP/IP参考模型是计算机网络的祖父ARPANET和其后继的因特网使用的参考模型。
ARPANET是由美国国防部DoD(U.S.Department of Defense)赞助的研究网络,所以有时又称为DoD(Department of Defense)模型,是至今为止发展最成功的通信模型,它用于构筑目前最大的、开放的互联网络系统Internet。
TCP/IP模型分为不同的层次,每一层负责不同的通信功能。
但TCP/IP简化了层次模型只有4层,自上而下依次应用层(即主机-网络层,对应osi上三层应用层、表示层、会话层)、传输层(主机到主机)、网际层IP、网络接口层(对应osi下两层数据链路层、物理层)。
这种对应关系详见图3
图3
下面,分别介绍各层的主要功能。
1、主机到网络层
实际上TCP/IP参考模型没有真正描述这一层的实现,只是要求能够提供给其上层-网络互连层一个访问接口,以便在其上传递IP分组。
由于这一层次未被定义,所以其具体的实现方法将随着网络类型的不同而不同。
2、网络互连层
网络互连层是整个TCP/IP协议栈的核心。
它的功能是把分组发往目标网络或主机。
同时,为了尽快地发送分组,可能需要沿不同的路径同时进行分组传递。
因此,分组到达的顺序和发送的顺序可能不同,这就需要上层必须对分组进行排序。
网络互连层定义了分组格式和协议,即IP协议(Internet Protocol)。
网络互连层除了需要完成路由的功能外,也可以完成将不同类型的网络(异构网)互连的任务。
除此之外,网络互连层还需要完成拥塞控制的功能。
3、传输层
在TCP/IP模型中,传输层的功能是使源端主机和目标端主机上的对等实体可以进行会话。
在传输层定义了两种服务质量不同的协议。
即:传输控制协议TCP(transmission control protocol)和用户数据报协议UDP(user datagram protocol)。
TCP协议是一个面向连接的、可靠的协议。
它将一台主机发出的字节流无差错地发往互联网上的其他主机。
在发送端,它负责把上层传送下来的字节流分成报文段并传递给下层。
在接收端,它负责把收到的报文进行重组后递交给上层。
TCP协议还要处理端到端的流量控制,以避免缓慢接收的接收方没有足够的缓冲区接收发送方发送的大量数据。
UDP协议是一个不可靠的、无连接协议,主要适用于不需要对报文进行排序和流量控制的场合。
4、应用层
应用层对应于OSI七层参考模型的应用层和表达层。
因特网的应用层协议包括Finger、Whois、FTP(文件传输协议)、Gopher、HTTP(超文本传输协议)、Telent(远程终端协议)、SMTP(简单邮件传送协议)、IRC(因特网中继会话)、NNTP(网络新闻传输协议)等
三、TCP/IP五层参考模型
通过上面,我们可以看到OSI与TCP/IP体系都有成功和不足的地方。
OSI的七层协议体系结相对复杂,又不实用,但其概念清晰,体系结构理论也比较完整。
TCP/IP协议应用性强,现在得到了广泛的使用,但它的参考模型的研究却比较薄弱。
TCP/IP虽然是一个四层的体系结构,但实际上只有应用层、传输层和网络互连层三层,最下面的网络接口层并没有什么具体内容。
因此在学习计算机网络的原理时往往采用Andrew S.Tanenbaum建议的一种混合的参考模型。
这是一种折中的方案,采用五层协议的体系结构,吸收了OSI和TCP/IP的优点,这样概念阐述起来既简洁又清晰,这五层自上而下分别为应用层、运输层、网络层、数据链路层、物理层。
三个参考模型对应关系见下图4。
图4
下面简单介绍一下各层的主要功能
1、物理层
物理层是五层体系结构中的底层。
它的任务是利用传输介质为通信的网络结点之间建立、管理和释放物理连接,透明地传送比特流。
“透明地传送比特流”表示上层协议只看到“0”、“1”比特流,而不用关心物理信号的传输,因而也就“看不见”物理层是如何实现比特流的传输的。
物理层利用的一些物理媒体(如双绞线、同轴电缆、光缆等)并不在物理层协议之内而是在物理层协议的下面。
因此也有人把这些物理媒体认为是网络体系结构的第0层。
2、数据链路层
数据链路层在五层体系结构中位于物理层和网络层之间,相对于高层,数据链路层所用的服务和协议都比较成熟。
在发送数据时,数据链路层的任务是将在网络层交下来的IP数据报组装成帧(framing),在两个相邻结点间的链路上传送以帧(frame)为单位的数据。
每
一帧都是由数据和一些必要的控制信息,如同步信息、地址信息、差错控制以及流量控制信息等组成的。
3、网络层
网络层在五层体系结构中位于数据链路层和传输层之间,它的作用是为分组交换网上的不同主机提供通信。
而传输层的作用是为运行在不同主机中的进程提供逻辑通信。
注意它们之间的区别。
在发送数据时,网络层会把传输层产生的报文段或用户数据报封装成分组进行传送。
网络层还有一个任务就是路由的选择,使源主机传输层所传下来的分组能够交付到目的主机。
3、传输层
传输层在五层体系结构中位于网络层和应用层之间,其作用是为运行在不同主机中的进程提供逻辑通信。
4、应用层
应用层是五层体系结构中的最高层。
它可以根据用户所产生的服务请求确定进程之间通信的性质是否满足用户的需要。
应用层直接为用户的应用进程提供服务。
图5直观地说明了分层的协议体系对应用进程中的数据的影响,数据是如何在各层之间进行传递的,以及在分层的协议体系传递过程中所发生的变化。
假定两台计算机是直接相连的,发送端的应用程序进程要与接收端的应用程序进程进行数据交换,具体过程如下:
1)发送端应用程序进程将它的数据发送到应用层,应用层数据加上本层的控制报头H5,形成应用层的协议数据单元,传到传输层。
2)传输层收到这个数据单元后,加上本层的控制报头H4,再向下交给网络层。
3)网络层进行同样的处理,加上本层的控制报头H3,再传到数据链路层。
4)数据链路层得到数据后,将控制信息分成两部分,分别加到本层数据单元的首部(H2)和尾部(T2),构成数据链路层的协议数据单元,再向下交给物理层。
5)数据到达物理层后,物理层将以比特流的方式将数据通过物理传输媒体传送到接收端主机。
比特流是从有首部的这头开始传送的。
6)比特流到达接收端后,再从接收端的物理层开始依次上传,每层根据控制信息进行必要的操作,剥去控制信息,将剩下的数据单元上交给更高的一层。
直到最后,把发送端应用程序进程发送的数据交给接收端的应用程序进程。
从这个过程可以看出数据在传送过程中有这样的特点:在发送端自顶向下层层添加控制信息,在接收端自底向上层层剥去控制信息。
这样做有什么好处呢?首先,如果数据在传送过程中出现错误,可以根据这些控制信息及时发现和纠正,保证数据传送的可靠性。
其次,上层的数据不含有下层的协议控制信息,这样相邻层之间可以保持相对独立性,下层具体实现方法的变化不会影响上层功能的执行。
应用程序进程间的数据交换是一个复杂的过程,但在用户看来,就好像发送端应用程序进程直接把它的数据交给了接收端应用程序进程。
同理,图2-8中任何两个对等层之间,也好像直接把数据传送给对方一样。
实际上对等层之间是没有直接通信能力的,这只是一种形式上的逻辑通信,需要依靠下面各层提供支持。