计算机网络体系结构的形成
为了使不同体系结构的计算机网络都能互连,国际标准化组织ISO于1977年成立了专门机构研究该问题。他们提出一个试图使各种计算机在世界范围内互联成网的标准框架,即著名的开放系统互连基本参考模型OSI/RM(Open System Interconnection Reference Model),简称OSI。当时看来似乎在不久将来世界一定会按照OSI制定的标准来改造自己的计算机网络。然而到了20世纪90年代初期,TCP/IP的互联网已抢先全球相当大的范围成功的运行了。因此现今规模最大的、覆盖全球的、基于TCP/IP的互联网并未使用OSI标准。
法律上的国际标准OSI
事实上的国际标准TCP/IP
OSI与TCP/IP各层的结构与功能
具有五层协议的体系结构
OSI的七层协议体系结构的概念清楚,理论也完整,但它既复杂又不实用。TCP/IP是一个四层的体系结构,得到了非常广泛的应用。在学习计算机网络的原理时往往采用折中的方法,综合OSI/IP的优点,采用一种五层协议的体系结构。
a. 应用层
应用层是体系结构中的最高层。应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。这里的进程就是主机中正在运行的程序。对于不听的网络应用需要不有不同的应用层协议。在互联网的应用层协议很多,如域名DNS,支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,等等。我们把应用层的数据单元称为报文(messgae)。
b. 运输层
运输层的任务是负责向两台主机中进程之间的通信提供通用的数据传输服务。应用进程利用该服务穿上的应用层报文。所谓通用的,是指并不针对某个特定网路应用,而是多种应用可以使用同一个运输层服务。由于一台主机可以同时运行多个进程,因此运输层有复用和分用的功能。复用就是多个应用层进程可同时使用下面运输层的服务,分用和复用相反,是运输层把收到的信息分别交付给上面应用层的相关进程。
运输层主要有下面两种协议:
• 传输控制协议TCP(Transmission Control Protocol)-提供面向连接的、可靠的数据传输服务,其数据传输的单位是报文段(segment)。
• 用户数据报协议 UDP(User Datagram)。 Protocol)-提供无连接的、尽最大努力(best-effort)的数据传输服务(不保证数据传输的可靠性),其数据传输的单位是用户数据报。
TCP和UDP协议的区别(如下图)
c. 网络层
网络层负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或者用户数据报封装成分组或者包进行传送。在TCP/IP体系中,由于网络层使用 IP协议,因此分组也叫作IP数据报,或简称数据报。网络层的另一个任务就是选择合适的路由,是源主机运输层所传下来的分组,能够通过网络中的路由器来找到目的主机。
d. 数据链路层
数据链路层通常简称为链路层。我们知道,两台主机之间的数据传输,总是在一段一段的链路上传送的, 这就需要使用专门的链路层的协议。 在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报封装成帧(frameing),在两个相邻节点间的链路上传送帧, 每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错信息等)。
e. 物理层
在物理层上所传数据的单位是比特(bit)。发送方发送1或者0时,接收方应该接收相同的1或者0,因此物理层要考虑用多大的电压代表"1"或者"0", 以及接收方如何识别发送方所发出的比特。物理层还要确定连接电缆的插头应当有多少根引脚以及各引脚如何连接。当然解释比特代表的意思,就不是物理层的任务。请注意,传递信息所利用的一些物理媒体,如双绞线、同轴电缆、光缆、无线信道等,并不是物理层协议之内而是在物理层协议的下面。因此也有人把物理层当做第0层。
数据在各层之间的传递过程