1
纵横于天地之间——互联网络技术
1.6.6 六、交谈的基础——协议

六、交谈的基础——协议

(一)协议是什么?

网络协议的英文是Protocol。协议是我们日常生活中的常用词,比如商务合同中的合作协议(Contract)。合作协议是双方对所要完成的事情的规程的约定。在商务协议中,甲乙双方(也有可能是多方)对合作的内容、合作方式、双方义务进行说明。

网络协议是什么?

网络协议是在通信过程中通信规程的定义。协议是指通信双方必须遵循的控制信息交换的规则的集合。

关于通信,最典型而且是大家最熟悉的例子,是打电话。

一个完整的打电话的过程包括:

img146 拨号;

img147 电话网络公司的交换机接通;

img148 对方振铃;

img149 对方拿起话机;

img150 开始通话;

img151 通话结束,挂机。

电话号码对应的就是对方的地址。应该注意的是,拨号是拨网络公司,请求网络公司的交换机接通对方的话机(通信终端)。

这是我们每个人最熟悉的过程,但是要完成这样一个过程,需要许多的条件:

img152 电话机要能够和网络连接,这种连接,不仅仅是电缆插头匹配(这是最根本的要求),而且电信号要匹配;

img153 网络公司的交换机和电话机的电信号要匹配,双方要能够理解对方信号的意义;

img154 被叫方同样需要能够理解电话网络;

img155 通信双方的语音信号变成电信号传给网络时,要能够被恰当地传输;

img156 当收到对方的语音信号时,要能够准确地从电信号中提取出声音信号;

img157 语音信号要能够转换成声音;

img158 通信双方需要理解对方的内容。

如何使上面的通信过程能够完成呢?这就是协议的作用。

通信协议就是对类似上面的通信过程进行的约定。要支持一个完整的通信过程,一般会针对不同的步骤制订不同的协议,这些协议的集合就是协议体系,有时也称为协议栈。

一个协议一般要包括三个要素:

img159 语法

指数据与控制信息的结构或格式,确定通信时采用的数据格式、编码及信号电平等。

img160 语义

由通信过程的说明构成,它规定了需要发出何种控制信息完成何种动作以及做出何种应答,对发布请求、执行动作以及返回应答予以解释,并确定用于协调和差错处理的控制信息。

img161 同步

是对事件实现顺序的详细说明,指出事件的顺序以及速度匹配、排序。

(二)协议体系

协议作为网络的重要基础,其发展走过了漫长的过程。正如人类工业化发展的历程一样,规范化和标准化对网络的发展起到了非常巨大的作用。

中国人是真正的制造业标准化的鼻祖。在西安秦始皇兵马俑出土的许多兵器,经过考古专家的研究,其制造过程达到了近于完美的程度。以数量最多的箭头为例,几乎每一个箭头的尺寸都是完全一致的,呈现了一种按照现代空气动力学观点也是非常完美的曲线,飞行得最远,而且穿透人体的力量最大。要知道,这是两千多年前所达到的水平。

1.OSI七层模型

OSI七层模型也称为OSI/RM(Open System Interconnect/ Reference Model),是国际标准化组织定义的网络架构模型。

国际标准化组织ISO 在1977年建立了一个分委员会专门针对网络架构进行研究,提出开放系统互联(OSI)模型,并定义了每一层次的功能。开放系统互联OSI参考模型共7层,包括:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,如图2-10所示。

img162

图2-10 OSI七层模型示意图

各层的功能为:

img163 物理层。提供为建立、维持和断除物理链路所需的机械的、电气的、功能的和规程的特性,提供在物理链路上传输非结构的位流以及故障检测指示的功能;

img164 数据链路层。在物理信道上建立具有一定的信息传输格式和传输控制功能的信道,提供数据链路的流量控制,检测和校正物理链路产生的差错;

img165 网络层。控制数据块穿越通信子网的活动,包括路由选择、拥挤控制、网络互联等功能,它的特性对高层是透明的,根据传输层的要求来选择服务质量,向传输层报告未恢复的差错;

img166 传输层。提供建立、维护和拆除传送连接的功能,选择网络层提供的最合适的服务,在系统之间提供可靠的透明的数据传输,提供端到端的错误恢复和流量控制;

img167 会话层。提供两个进程之间建立、维护和结束会话连接的功能,提供交互会话的管理功能,有3种数据流方向的控制模式,即一路交互、两路交替和两路同时会话模式;

img168 表示层。代表应用进程协商数据表示,完成数据转换、格式化和文本压缩;

img169 应用层。提供OSI用户服务,例如事务处理程序、文件传送协议和网络管理等等。

各个网络节点具有这7个层次的全部或几个层次的功能,各节点的相同层次间的通信规则和约定称为协议。协议的关键成分是:语法,包括数据格式、编码及信号电平等;语义,包括用于协调和差错处理的控制信息;定时,包括速度匹配和排序。

OSI是第一个关于网络体系的标准,在这个标准中,明确了网络中的许多概念,对网络的发展起到了非常重要的指导作用。分层的分析方法,成为了计算机技术领域的经典方法。

但是,OSI不是一个成功的标准:

img170 层次划分过多,造成了层与层之间的联系过于复杂。到目前为止,没有哪一家的网络产品实现了全部七层的内容;

img171 标准本身缺乏对网络互联的定义,对网络的发展速度估计不足;

img172 缺乏网络安全的相关内容,后来在ISO7498-2中得到了补充,表现出了对安全的认识不足。

在本质上,由于OSI本身对网络互联的认识不足,从而丧失了互联网发展的大好时机,导致了被TCP/IP所击败。

但是,OSI在人类网络发展过程中的历史贡献是不可磨灭的。

2.IEEE802系列

互联网的主体实际上是局域网的集合。局域网的标准是由美国电气与电子工程师协会IEEE802委员会制定,被称为IEEE802标准。802系列标准在技术上和市场上取得了巨大的成功,后来IEEE802局域网标准已经得到了国际标准化组织ISO的采纳,成为计算机局域网的事实标准,这就是ISO8802标准。

IEEE802主要包括以下标准:

img173 IEEE802.1,体系结构及高层接口;

img174 IEEE802.2,逻辑链路控制LLC;

img175 IEEE802.3,CSMA/CD(带冲突检测的载波侦听多路复用)访问控制方法和物理层技术规范;

img176 IEEE802.4,令牌总线访问控制方法和物理技术规范;

img177 IEEE802.5,令牌环访问控制方法和物理层规范;

img178 IEEE802.6,城域网访问控制方法和物理层技术规范;

img179 ……。

802系列标准与OSI的对应关系见图2-11所示。

img180

图2-11 IEEE802标准与OSI七层模型的对应关系

如图2-11可以看出,IEEE802标准主要解决了七层模型中的下面两层。我们可以从另外一个角度来看看IEEE802,如图2-12所示。

img181

图2-12 IEEE802标准体系与OSI

3.TCP/IP

受OSI七层模型的影响,为了对TCP/IP协议体系进行说明,同样有一个对应的五层模型。

TCP/IP模型及其与OSI的对应关系如图2-13所示。

img182

图2-13 TCP/IP模型

在TCP/IP协议体系中,不涉及物理层的内容。

TCP和UDP是运输层协议。TCP的意思是传输控制协议,UDP是数据报协议。按照专业术语,TCP提供可靠的运输层服务,UDP提供不可靠的运输服务。可靠与不可靠如何区别?

这就如同打电话和通过邮局发邮件。当我们通过电话网络是吸纳语音通信时,如果受到干扰,导致我们不能听清楚对方说的内容,可以立刻要求重复。英语“Pardon”、“Pardon please”或者“I beg your pardon”就用在这里;发邮件就不同,如果不做特别的要求,交给邮局后,我们不能保证信件被准确地投送并被收信人收到(当然现在可以通过电话或者挂号进行确认,而这又成为了TCP或者改进了的UDP)。

IP是网络互联协议,是网络层的主要协议。TCP和UDP的数据经过分组后通过IP在网络层实现传输。

ICMP是网际控制报文协议,附属IP,IP层通过ICMP与主机或者路由器交换控制信息,主要是报文错误以及其他信息。

IGMP是Internet组管理报文协议,其作用是把UDP数据报进行广播,传输到多个主机。

ARP是地址转换协议,其作用是实现地址解析,从IP地址转换为MAC地址(网卡地址)网;RA卡RP刚好相反,是从MAC地址转换为IP地址。

注意ARP和RARP协议是我们每天要使用的协议,这是因为以太网的普及,基本上大多数计算机所处的网络是以太网。也就是说TCP/IP的底层大部分是基于以太网的。

(三)主要应用协议

TCP/IP是互联网的协议体系。在应用层,有一些常用的协议,对互联网有着非常重要的影响,这些协议的缩写也是我们经常在网络看到的。

1.FTP

FTP(File Transfer Protocol),文件传输协议,文件传输协议允许用户从一台计算机到另一台取得文件,或发送文件到另外一台计算机。互联网上的文件传输是基于TCP/IP的非常重要的应用,这也就是我们平时所进行的“下载(Download)”采用的协议。

当然,对文件的操作,除了“下载”之外,还可以“上载(Upload)”,从网络把你所需要的文档、电影、音乐等以不同的文件格式保存,把内容传到你自己的计算机上,称为“Download”,反之是“Upload”,支持这些功能的协议就是FTP。

2.HTTP

HTTP,HyperText Transfer Protocol,超文本传输协议。这是我们对网站Web页面进行访问的协议。

HTTP类似于TCP,也就是在通信过程中有一个连接的过程,当连接建立后,通过浏览器向服务器(Web服务器)发送请求,而这些请求通常是我们要访问的Web页面。服务器把所请求的页面副本传给浏览器,浏览器对页面进行解释。

3.SNMP

SNMP,Simple Network Management Protocol,简单网络管理协议。SNMP的使用非常广泛,但是对普通用户而言常常是不可见的。

SNMP的作用是用于网络的管理,是网络管理员使用的协议。当前的版本是版本3,简称SNMPv3。

什么时候使用SNMP呢?如果你希望开发一个网络管理软件,对网络状态进行监视,仔细研究SNMP是个必要的途径。

4.电子邮件

在互联网上,电子邮件是使用最为广泛的服务。E-mail几乎是在网络上最流行的英文词汇。和电子邮件相关的协议主要有三个:SMTP、POP、IMAP和MIME。

SMTP,Simple Mail Transfer Protocol,简单邮件传输协议。

POP,Post Office Protocol,是目前最流行的电子邮件协议,其中最普及的是版本3,简称POP3协议。

IMAP,Internet Message Access Protocol,Internet邮件访问协议,其成熟版本是版本4,简称IMAP4,POP3的替代协议。

MIME,Multipurpose Internet Mail Exchange,多用途Internet邮件扩充。

SMTP要求邮件服务器必须在任何时候做好接收电子邮件的准备,当用户输入邮件的时候,SMTP的客户程序即试图发送。对SMTP的使用通常采用一个两阶段交付过程:

第一阶段,在具有永久Internet连接的计算机上运行SMTP服务器进程,并为用户分配电子邮箱。

第二阶段,用户进行拨号,运行从邮箱检索邮件的协议,把邮件传输到用户使用的计算机,阅读邮件。

POP3协议是最流行的把邮件从邮箱传回计算机的协议。用户在自己的计算机运行POP3的客户程序,建立和邮件服务器的TCP连接。在客户程序,用户首先发送登录名和口令,传送到服务器进行身份鉴别,当身份鉴别通过,就可以发送命令,对邮箱进行检索以及其他操作。

一般而言,常规的方式是电子邮件需要两个服务器支持,SMTP服务器接受用户发送的邮件,并将邮件添加到用户的邮箱,POP3服务器接受用户提取邮件的指令,并完成邮件的处理工作。

IMAP是对POP3的改进,基本过程和POP3类似,与POP3的区别是IMAP4允许用户动态创建、删除和重命名邮箱。

MIME的主要作用是通过电子邮件发送非ASCII数据。MIME并不是SMTP和POP3的替代,而只是对二者的扩充。事实上,只是提供的一种编码方式。每个MIME邮件包含了特定的信息,以告知接受方数据类型和所采用的编码格式,当邮件被接收的时候,按照指定的格式进行解码。

5.TELNET

TELNET是网络早期发展的产物。在TCP/IP中,提供TELNET协议,是为了对网络发展的早期远程终端中字符工作模式提供支持。TELNET协议使用户可以通过互联网连接到计算机上,建立TCP连接后,用户通过键盘输入的信息直接传递到远程计算机,就如同使用本地键盘进行操作一样。当然,远程计算机的屏幕也可以传回用户的屏幕。

随着计算机的发展,图形工作模式成为了操作系统的标准工作模式,字符终端已经基本上被淘汰。但是TELNET在某些特定的环境下仍然被广泛使用。