3.5.2 互联网通信协议
采用共同遵守标准化协议的互联网络称为Internet(因特网),又称国际互联网。它是全球最大的、开放的、由众多网络相互连接而成的特定计算机网络。
因特网有五种类型的网络互联:①相同类型的局域网互联;②不同类型的局域网互联;③通过主干网将局域网互联;④通过广域网(WAN)将局域网互联;⑤局域网上的计算机访问外部网上的计算机系统。
不同地域的诸多计算机互联在一起的网络要进行通信,会遇到许多需要解决的问题。连接不同类型的网络时,会遇到更多复杂问题。例如:不同的网络结构;不同的传输规则;不同的寻址方案;不同的最大分组长度;不同的网络接入机制;不同的超时控制;不同的纠错方法;不同的路由选择;不同的用户接入控制;不同的管理和网络安全问题;等等。
要确保通信数据能顺利地传送到目的地,通信各方需要建立共同遵循的规则和约定,这些规则和约定称为通信协议(Communications Protocol)。
通信协议制定法则:把复杂的通信协调问题进行分解和分层处理,每一层实现相对独立的功能,上下层之间互相提供服务;使复杂问题简单化,便于对网络功能的理解和标准化。
1.互联网体系的七层协议
1979年国际标准化组织(ISO)成立了一个专门研究机构,提出了解决计算机在世界范围内互连互通的标准框架,即7层架构的“开放系统互连基本参考模型OSI/RMl”,简称OSI。通信双方(系统A主机和系统B主机)的每层都有自上而下和自下而上两种服务功能,如图3-24所示。
图3-24 OSI开放系统互连基本参考模型
(1)物理层(Physical Layer)。物理层的作用是实现计算机间比特流的透明传送。“透明传送比特流”表示经实际电路传送后的比特流不会发生变化。
(2)数据链路层(Data Link Layer)。数据链路层的任务是:解决同一网络内节点之间的通信问题,建立和管理节点间的链路,提供可靠的传输数据的方法。
具体工作是:
1)(自下往上传送时)装帧:接收来自物理层的比特数据流,并封装成MAC帧,并传送到上一层(网络层)或本层(局域网)寻址自用。
2)(自上往下传送时)拆帧:将来自上层的MAC数据帧,拆装为比特流数据并转发到物理层,以便提供可靠的数据传输。
(3)网络层(Network Layer)。网络层的主要任务是解决不同网络间的通信问题,通过路由选择算法,为报文或分组选择最适当的路径。
网络层把数据链路层的数据转换为IP(网络互联协议)数据包,然后通过路径选择、分段组合、顺序控制、进/出路由等控制,将信息从一个网络传送到另一个目的网络。
(4)传输层(Transport Layer)。传输层是OSI模型的第4层。主要任务是:为上、下两层提供可靠的数据传送,提供可靠的端到端的无差错和流量控制,保证报文的正确传输,监控服务质量。
自下往上传送时:向高层(会话层和应用层)透明地传送报文。TCP(传输控制协议,是一种面向连接的通信协议)和UDP(用户数据报协议),用来支持需要在计算机之间传输数据的网络。
自上往下传送时:从会话层获得数据,向网络层提供传输服务,这种服务在必要时,对数据进行分割,并确保数据能正确无误地传送到网络层。
(5)会话层(Session Layer)。会话层的任务就是组织和协调两个主机之间的会话进程通信,并对数据交换进行管理。当建立会话时,用户必须提供他们想要连接的远程地址。而这些地址与MAC地址或网络层的逻辑地址不同,它们是为用户专门设计的,更便于用户记忆。
(6)表示层(Presentation Layer)。表示层的主要功能是“处理用户信息的表示问题,对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话层。
(7)应用层(Application Layer)。负责完成网络中应用程序与网络操作系统之间的联系,建立与结束使用者之间的联系,并完成网络用户提出的各种网络服务及应用所需的监督、管理和服务等各种协议。
2.什么是TCP/IP
在Internet没有形成之前,早在1969年各个地方就已经建立了很多小型的网络。但是各式各样的小型网络却存在不同的网络结构和数据传输规则,将这些小网连接起来后各网之间要通过什么样的规则来传输数据呢?就像世界上有很多个国家,各个国家的人说的是各自的语言,怎样才能互相沟通呢?如果全世界的人都能够说同一种语言(即世界语),这个问题不就解决了吗?TCP/IP就是Internet上的“世界语”,中文译名为传输控制协议/互联网络协议。
Internet实际上就是将全球各地的局域网连接起来而形成的一个“网际网”,简单地说,Internet就是由底层的IP和TCP组成的。
OSI 7层协议体系结构虽然概念清楚、理论完整、分工明确、各司其职,但实现起来太复杂,运行效率很低。要理解Internet不是一件容易的事。
TCP/IP的开发研制人员将互联网体系7层协议简化为便于理解的TCP/IP 5层体系结构,称为互联网分层模型或互联网分层参考模型。图3-25是OSI体系结构与TCP/IP体系结构的关系。
图3-25 OSI体系结构与TCP/IP体系结构的关系
实际上TCP/IP 5层体系结构是OSI 7层协议体系模型的一个浓缩版本。现今已成为实际应用的互联网体系结构。
5层体系结构中,由于每层的数据交换方式不同,因此各层的数据交换单元格式也不一样。图3-25所示的TCP/IP体系结构图中,把物理层和数据链路层合并在一起,并统称为网络接入层。
第1层:物理层——比特流传输;
第2层:数据链路层——MAC帧(Frame)交换;
第3层:互连网络层(IP层)——IP数据包(Datagram)交换;
第4层:传输层(TCP层)——分组(Packet)交换;
第5层:应用层——报文(Message)交换。
几个专有名词说明:
1)报文(Message)。一段完整的数据信息称为报文,其长短不需一致。在应用层实现报文交付。
2)分组(Packet)。分组是传输层信息交换的数据单元。它是用户把发送的报文分成多个更小的数据段。在每个数据段的前面加上必要的控制信息组成首部,有时也会加上尾部,构成一个分组。
3)数据包(Datagram)。IP数据包是网络层信息交换的数据单元。包含一个包头(Header)和数据本身,其中包头描述了数据的目的地以及和其他数据之间的关系,如图3-10所示。
4)MAC帧(Frame)。MAC(媒体访问控制)帧是数据帧的一种,它包括三部分:帧头、数据部分、帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等,数据部分包含网络层传下来的数据。
3.TCP/IP体系的功能
(1)物理层。提供端到端的比特流传输。
(2)数据链路层。数据链路层的任务是:解决同一网络内(局域网)节点之间的通信问题。建立和管理节点间的链路,提供可靠的传输数据方法。
数据链路层的数据传输单元包括逻辑链路控制(LLC)和媒体访问控制(MAC)两个子层,如图3-26所示。
图3-26 数据链路层的组成
数据链路服务通过LLC子层为上面的网络层提供统一的接口。在LLC子层的下面是MAC子层,它将上层传入的数据添加一个头部和尾部,组成MAC帧。
1)如果通信双方在同一个局域网内,数据链路层通过MAC地址寻址。找到目的主机后,双方便可直接进行通信。
2)如果通信双方不在同一网络内,网络间的寻址通过IP地址(网络地址)首先寻找目的网位置,然后在目的网中根据MAC地址(目的主机地址)寻找目的主机。
因此,在跨网通信时,数据链路层的MAC帧还要添加IP地址,重新封装为新的“数据包”后再送到上面的网络层进行信息交换。
(3)网络层(又称IP层、网际层)。网络层的主要任务是:解决不同网络间的通信问题,IP寻址和路由选择、拥塞控制和网际互联等。网络层的数据传输单元是分组(Packet)。
送到网络层的数据包是经过数据链路层协议重新封装后的数据包。网络层数据包的包头包含源节点地址、目的节点的IP地址和控制数据。
网络层只是尽可能快地把分组(Packet)从源节点送到目的节点,提供网际互联、拥塞控制等,但是不提供可靠性保证,数据包在传输过程中可能会丢失。
(4)传输层(又称TCP层)。传输层的主要任务是通过TCP(传输控制协议)或UDP(用户数据报协议)向上层(应用层)提供可靠的端到端服务,确保“报文”无差错、有序、不丢失、无重复地传输,为端到端报文传递提供可靠传递和差错恢复。
1)TCP(Transmission Control Protocol,传输控制协议)。TCP提供可靠的、面向连接的运输服务,在传输数据之前必须先建立连接,数据传输结束后要释放连接。因此增加了许多开销,如确认、流量控制、差错重传和连接管理等,使协议数据单元的首部增大很多,要占用许多处理器资源,此外,TCP不提供广播或多播服务。为避免TCP协议占用很多的处理器资源,网络层还可采用UDP用户数据报协议。
2)UDP(User Datagram Protocol,用户数据报协议)。UDP提供的是无连接的尽最大努力服务,在传输数据之前不需要先建立连接,但不保证可靠性交付。虽然UDP不提供可靠的交付,但在某些情况下,UDP是一种最有效的工作方式。
例如:DNS(Domain Name System,域名系统)和NFS(Network File System,网络文件系统)使用的就是UDP这种传输方式。此外,UDP还能在主机上识别多个目的地址,允许多个应用程序在同一台主机上工作,并能独立地进行数据包的发送和接收。图3-27是两种传输协议提供的逻辑通信信道。
图3-27 两种传输协议提供的逻辑通信信道
(5)应用层。应用层的任务是向用户提供应用程序,包括:SMTP(电子邮件协议)、FTP(文件传输访问协议)、TELNET(远程登录协议)、HTTP(超文本传输协议,“超文本”是指页面内可以链接包含图片,甚至音乐、程序等非文字的元素)、SIP(会话初始协议)、RTP(实时传输协议)和RTCP(实时传输控制协议)等。表3-1是OSI 7层网络模型与TCP/IP 5层网络模型功能特性比较。
表3-1 OSI 7层网络模型与TCP/IP 5层网络模型功能特性比较