1.1.2当今最常用的几例通信工具即时消息(IM)以先前的Internet中继聊天(IRC)服务为基础,同时合并了多个其他功能(如文件传输、语音和视频通信)。1.3.2网络要素下图显示了一个典型网络的各个要素,包括设备、介质和服务,它们通过规则结合在一起,共同作用来发送消息。交换机—用于互连局域网的最常见设备防火墙—为网络提供安全保障路由器—当消息在网络中传输时,帮助定向消息无线路由器—家庭网络中常用的一种路由器网云—用于概述一组网络设备,其详细信息对于后续讨论可能并不重要串行链路—一种WAN互连形式,用闪电形状的线条表示协议是网络设备用于彼此通信的规则。现在,联网的行业标准是TCP/IP(传输控制协议/Internet协议)协议族。TCP/IP协议指定了格式、编址和路由机制,从而确保消息可传递到正确的收件人。1.4.1网络体系结构描述网络体系结构的特征:容错能力、可扩展性、服务质量以及安全性。1.4.5提供网络安全保障维护通信完整性使用数字签名、哈希算法和校验和机制可以在整个网络中保证源完整性和数据完整性,从而防止未经授权地修改信息的情况。2.1.1通信要素通信的第一步是将消息或信息从一个人或设备发送给另一个人或设备。人们使用许多不同的通信方式来交流观点。所有这些方式都有三个共同的要素。第一个要素是消息来源,即发送方。消息来源是需要向其他人或设备发送消息的人或电子设备。第二个通信要素是消息的目的地址,即接收方。目的地址接收并解释消息。第三个要素称为通道,包括提供消息传送途径的介质。2.1.2传达消息将数据划分为更小、更易于管理的片段,然后再通过网络发送。将数据流划分为较小的片段称为分段。消息分段主要有两个优点。首先,通过从源设备向目的设备发送一个个小片段,就可以在网络上交替发送许多不同会话。用于在网络上将交替发送的多个不同会话片段组合起来的过程称为多路复用。第二,分段可以增强网络通信的可靠性。每个消息的独立片段无需经过网络中的同一条路径从源设备传送到目的设备。因此,如果某条路径因数据流量过大或故障而堵塞,仍可以使用备用路径将各个消息片段转发到目的设备。如果有部分消息未能传送到目的,则只需重新传输丢失的部分。使用分段和多路复用在网络上传输消息的弊端是提高了该过程的复杂程度。试想一下,这就如同您要邮寄一封100页的信件,但每个信封里只能装一页纸。写地址、贴邮票、邮寄、收信和打开全部一百个信封的过程对发信人和收信人而言都很耗费时间。在网络通信中,每个消息段也必须经过类似的过程才能确保其到达正确目的设备并重新组装成原始消息的内容。整个网络中各种类型的设备都要协同工作才能确保消息片段稳定可靠地到达其目的设备。2.1.6网络介质现代网络主要使用三种介质来连接设备并提供传输数据的途径。这三种介质是:电缆内部的金属电线玻璃或塑料纤维(光缆)无线传输2.3.1用于规范通信的规则层的运用只是一种模型,藉由这个模型,我们可以方便地将复杂的任务划分为多个部分,从而分别描述其工作原理。2.3.2网络协议网络协议簇说明了以下过程:消息的格式或结构网络设备共享通往其它网络的通道信息的方法设备之间传送错误消息和系统消息的方式与时间数据传输会话的建立和终止2.3.4协议的交互Web服务器和Web浏览器之间的交互是协议簇在网络通信中的典型应用示例。这种交互在二者之间的信息交换过程中使用了多种协议和标准。各种不同协议共同确保双方都能接收和理解交换的报文。这些协议包括:应用程序协议:超文本传输协议(HTTP)是一种公共协议,控制Web服务器和Web客户端进行交互的方式。HTTP定义了客户端和服务器之间交换的请求和响应的内容与格式。客户端软件和Web服务器软件都将HTTP作为应用程序的一部分来实现。HTTP协议依靠其它协议来控制客户端和服务器之间传输报文的方式传输协议:传输控制协议(TCP)是用于管理Web服务器与Web客户端之间单个会话的传输协议。TCP将HTTP报文划分为要发送到目的客户端的较小片段,称为数据段。它还负责控制服务器和客户端之间交换的报文的大小和传输速率。网间协议:最常用的网间协议是Internet协议(IP)。IP负责从TCP获取格式化数据段、将其封装成数据包、分配相应的地址并选择通往目的主机的最佳路径。网络访问协议:网络访问协议描述数据链路管理和介质上数据的物理传输两项主要功能。数据链路管理协议接收来自IP的数据包并将其封装为适合通过介质传输的格式。物理介质的标准和协议规定了通过介质发送信号的方式以及接收方客户端解释信号的方式。网卡上的收发器负责实施介质所使用的标准。2.4.2协议模型和参考模型网络模型有两种基本类型:协议模型和参考模型。协议模型提供了与特定协议簇结构精确匹配的模型。协议簇中分层的一组相关协议通常代表连接以人为本的网络与数据网络所需的全部功能。TCP/IP模型描述了TCP/IP协议簇中每个协议层实现的功能,因此属于协议模型。参考模型为各类网络协议和服务之间保持一致性提供了通用的参考。参考模型的目的并不是作为一种实现规范,也不是为了提供充分的详细信息来精确定义网络体系结构的服务。参考模型的主要用途是帮助人们更清晰地理解涉及的功能和过程。开放式系统互联(OSI)模型是最广为人知的网际网络参考模型,用于数据网络设计、操作规范和故障排除。尽管TCP/IP模型和OSI模型是讨论网络功能时使用的主要模型,但网络协议、网络服务或网络设备的设计人员也可以自行创建模型来代表自己的产品。不过,设计人员最终还是需要将自己的产品或服务与OSI模型和TCP/IP模型之中任一或全部相关联才能与行业通信。2.4.3TCP/IP模型网际通信的首个分层协议模型建立于二十世纪七十年代,称为Internet模型。它定义了四个功能类别,若要成功通信,就必须实现这些功能。TCP/IP协议簇的体系结构遵循了此模型的结构。因此,Internet模型通常被称为TCP/IP模型。2.4.4通信过程TCP/IP模型描述了组成TCP/IP协议簇的各种协议的功能。在发送主机和接收主机上实现的这些协议通过网络交互,为应用程序提供端到端传送。完整的通信过程包括以下步骤:1.在发送方源终端设备的应用层创建数据2.当数据在源终端设备中沿协议栈向下传递时对其分段和封装3.在协议栈网络接入层的介质上生成数据4.通过由介质和任意中间设备组成的网际网络传输数据5.在目的终端设备的网络接入层接收数据6.当数据在目的设备中沿协议栈向上传递时对其解封和重组7.将此数据传送到目的终端设备应用层的目的应用程序2.4.5协议数据单元和封装在通过网络介质传输应用程序数据的过程中,随着数据沿协议栈向下传递,每层的各种协议都要向其添加信息。此过程通常称为封装。一段数据在任意协议层的表示形式称为协议数据单元(PDU)。在封装过程中,后续的每一层都根据使用的协议封装其从上一层接收的PDU。在该过程的每个阶段,PDU都以不同的名称来反映其新的表现形式。尽管目前对PDU的命名没有通用约定,但本课程中根据TCP/IP协议簇的协议来命名PDU。数据-一般术语,泛指应用层使用的PDU数据段-传输层PDU数据包-网络层PDU帧-网络接入层PDU比特(位)-通过介质实际传输数据时使用的PDU2.4.6发送和接收过程在网络中发送报文时,主机中的协议栈自上而下工作。以Web服务器为例,我们可以使用TCP/IP模型来说明向客户端发送HTML网页的过程。应用层协议HTTP向传输层传送设定为HTML格式的网页数据,从而开始了整个过程。应用程序数据在传输层被划分为多个TCP数据段。每个TCP数据段都添加了一个标签,称为报头,其包含的信息用于指定目的计算机上运行的哪个进程应接收报文。此外,它还包含供目的进程用于将数据重新组装成原始格式的相关信息。传输层将网页的HTML数据封装到数据段内,然后将其发送到执行IP协议的Internet层。在这里,整个TCP数据段被封装到添加了另一个标签(称为IP报头)的IP数据包内。IP报头包含源主机和目的主机的IP地址以及将数据包传送到其相应的目的进程所需的信息。随后,会将IP数据包发送到网络接入层以太网协议。在这里,会将数据包封装到帧头和帧尾中。每个帧头都包含源物理地址和目的物理地址。物理地址用于唯一标识本地网络中的设备。帧尾则包含错误检查信息。最后,服务器网卡将比特编码到以太网介质中。接收主机上的过程与之相反。数据在朝着最终用户应用程序沿协议栈向上移动的过程中被解封。2.4.7OSI模型OSI模型最初由国际标准化组织(ISO)设计,旨在提供一套开放式系统协议的构建框架。其初衷是希望使用这套协议开发一个独立于私有系统的国际网络。作为一种参考模型,OSI模型详细罗列了每一层可以实现的功能和服务。它还描述了各层与其上、下层之间的交互。虽然本课程将围绕OSI模型组织内容,但是TCP/IP协议栈中确定的协议将是我们讨论的重点。请注意,我们提及TCP/IP模型的各层时只使用其名称,而提及OSI模型的七个层时则通常使用编号而非名称。2.4.8比较OSI模型与TCP/IP模型根据OSI参考模型可以说明构成TCP/IP协议簇的协议。在OSI模型中,TCP/IP模型的网络接入层和应用层被进一步划分,用于说明这些协议层需要实现的详细功能。TCP/IP协议簇在网络接入层并没有指定通过物理介质传输时使用的协议,而只是描述了从Internet层到物理网络协议的传递。而OSI模型第1层和第2层则论述了接入介质所需的步骤以及通过网络发送数据的物理手段。这两个网络模型之间主要的相似之处在于OSI模型第3层和第4层。OSI模型第3层是网络层,几乎全部用于论述和记录发生在所有数据网络中的用于编址并在网际网络中路由消息的过程。Internet协议(IP)是TCP/IP协议簇中包含第3层所述功能的协议。OSI模型的第4层是传输层,通常用于描述管理源主机和目的主机之间各个会话的一般服务或功能。这些功能包括确认、错误恢复和定序。传输控制协议(TCP)和用户数据报协议(UDP)这两个TCP/IP协议提供了这一层需要的功能。TCP/IP应用层包括许多协议,为各种最终用户应用程序提供特定功能。OSI模型第5层、第6层和第7层供应用程序软件开发人员和厂商参考,用于生产需要访问网络进行通信的产品。2.5.1网络中的编址OSI模型描述了对数据进行编码、格式化、分段和封装以便通过网络传输的过程。从源设备向目的设备发送的数据流可以划分为多个片段,并与从其它源主机传输到其它目的地址的消息交替发送。随时都有数十亿这类信息片段在网络上传输。因此,每个数据片段必须包含充分的标识信息才能到达正确目的地。为了将数据从一台主机上运行的源应用程序成功传送到另一台主机上运行的目的应用程序,必须包含几种不同类型的地址。我们可以使用OSI模型作为依据,了解每一层需要的不同地址和标识符。2.5.2数据送达终端设备在封装过程中,当数据在源主机上沿协议栈向下传输时添加了地址标识符。正如有多层协议要对数据进行一定的准备工作以便将其传输到目的地一样,也有多层编址用于确保其传送。第一个标识符是主机的物理地址,包含于第2层PDU(称为帧)的帧头中。第2层涉及报文在单一本地网络中的传输。第2层地址在本地网络中是唯一的,代表物理介质上的终端设备地址。在使用以太网的LAN中,此地址称为介质访问控制(MAC)地址。当两台终端设备在本地以太网络中通信时,它们之间交换的帧包含目的MAC地址和源MAC地址。一旦目的主机成功接收帧后,会删除第2层地址信息,因为数据已经解封并沿协议栈上移到第3层。2.5.3数据通过网际网络第3层协议主要用于在网际网络内将数据从一个本地网络移动到另一个本地网络。第2层地址仅仅用于同一个本地网络中不同设备之间的通信,而第3层地址则必须包括供中间网络设备定位其它网络中主机的标识符。在TCP/IP协议簇中,IP主机地址中包括有关该主机所在网络的信息。中间网络设备(通常是路由器)在每个本地网络的边界解封帧,以便读取数据包(第3层PDU)报头中包含的目的主机地址。路由器使用此地址的网络标