项目3网络体系结构和网络协议 作为公司的一名网络管理员,刚刚接到部门主管分配的两项工作任务: 任务1:公司给新入职的员工每人配备了一台新电脑,这些电脑需要配置相应的IP地址才能上网,领导让你过去帮忙处理一下。 任务2:公司最近网络故障频繁,部门主管希望你能够使用Wireshark抓包工具捕获网络数据包,分析、检测网络安全隐患,以解决实际的网络问题。 要完成以上任务,除了要掌握网络组建的基本知识,还应深入了解网络体系结构和网络协议,并熟练运用这些协议和命令管理好公司的网络,以保证网络的正常运行。对于新入职的员工,部门主管自然不会降低要求。 31网络体系结构 网络体系结构是指通信系统的整体设计,它为网络硬件、软件、协议、存取控制和拓扑提供标准。它广泛采用的是国际标准化组织(International standard Organization,ISO)在1979年提出的开放系统互连(OSIOpen System Interconnection)的参考模型。 32OSI参考模型 计算机网络系统的功能强,规模庞大,通常采用高度结构化的分层设计方法,将网络的通信子系统划分成一组功能分明、相对独立和宜于操作的层次,依靠各层之间的功能组合提供网络的通信服务,从而减少网络系统设计、修改和更新的复杂性。 1分层体系结构与网络协议 在计算机网络中,每一台连接在网上的计算机都是网络拓扑中的一个节点。为了正确地传输、交换信息,必须要制定一定的规则,通常把在网络中传输、交换信息而建立的规则、标准和约定统称为网络协议。网络协议包括以下三个要素: (1) 语法。语法规定协议元素(数据、控制信息)的格式。 (2) 语义。语义规定通信双方如何操作。 (3) 同步。同步规定实现通信的顺序、速率适配及排序。 由此可见,网络协议是计算机网络体系结构中不可缺少的组成部分。计算机网络包含的内容相当复杂,如何将复杂的问题分解为若干个既简明又有利于处理的问题呢?实践表明,采用网络的分层结构最为有效。计算机通信的网络体系结构实际上就是结构化的功能分层和通信协议的集合。 采用分层设计的方法的好处主要有以下几点: (1) 各层之间相互独立。某一层并不需要知道它的下一层是如何实现的,而仅仅需要知道该层的接口(即界面)所提供的服务。由于每一层只实现一种相对独立的功能,因而可将一个难以处理的复杂问题分解为若干个较容易处理的更小一些的问题。这样,整个问题的复杂程序就下降了。 (2) 灵活性好。当任何一层发生变化时(如技术的变化),只要层间接口关系保持不变,则在这层以上或以下各层均不受影响。 (3) 各层都可以采用最合适的技术来实现。 (4) 易于实现和维护。这种结构使实现和调试一个庞大而复杂的系统变得易于处理,因为整个的系统已被分解为若干个相对独立的子系统。 (5) 有利于促进标准化。因为每一层的功能及其所提供的服务都已有了明确的说明。 分层设计的方法是开发网络体系结构的一种有效技术,一般而言,分层应当遵循以下几个主要原则: (1) 设置合理的层数,每一层应当实现一个定义明确的功能。 (2) 确保灵活性。某一层技术上的变化,只要接口关系保持不变,就不应影响其他层次。 (3) 有利于促进标准化。由于采用分层结构,每一层功能及提供的服务可规范执行,层间边界的信息流通量应尽可能少。 (4) 为了满足各种通信业务的需要,在一层内可形成若干子层,也可以合并或取消某层。 2OSI参考模型 随着计算机系统网络化互连业务的需要,从20世纪70年代起,世界许多著名的计算机公司都纷纷推出了自己的网络体系结构。比如IBM公司的SNA(System Network Architecture),Digital公司的DNA(Digital Network Architecture)等。这些公司的产品自成系列,能够方便地实现同类计算机系统的互连成网。然而,由于各公司设计的计算机专有系统所用的体系结构、控制机理和信息格式彼此不同、互不兼容,使不同的计算机系统之间的通信变得相当复杂。为了更加充分地发挥计算机网络的作用,就需要建立一个国际范围的标准。国际标准化组织吸取了SNA、DNA以及APPA网等网络体系结构的成功经验,参照了X25开放互连结构特性,从用户系统信息处理的角度,提出了开放系统互连的参考模型(OSIRM),即ISO 7498,并于1984年5月批准为国际标准。 如图31所示,OSI开放系统互连参考模型采用了7个层次的体系结构,从下到上分别为物理层(Physical Layer,PH)、数据链路层(Data Link Layer,DL)、网络层(Network Layer,N)、传输层(Transport Layer,T)、会话层(Session Layer,S)、表示层(Presentation Layer,P)和应用层(Application Layer,A)。 图31OSI开放系统互连参考模型中的体系结构 3OSI参考模型功能简述 (1) 物理层 在OSI参考模型中,物理层是参考模型的最低层,它包括物理网络介质,如电缆、连接器、转发器等。物理层的功能是:建立系统和通信介质的物理接口;提供物理链路所需要的各种功能和规程。 物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据的比特流,而不是连接计算机的具体的物理设备或具体的传输媒体。现有的计算机网络中的物理设备和传输媒体的种类非常多,而通信手段也有许多不同方式。物理层的作用正是要尽可能地屏蔽掉这些差异,使物理层上面的数据链路层感觉不到这些差异,这样就可使数据链路层只需要考虑如何完成本层的协议和服务,而不必考虑网络具体的传输媒体是什么。 (2) 数据链路层 在OSI参考模型中,数据链路层是参考模型的第2层。数据链路层的主要功能是:在物理层提供的服务基础上,在通信的实体之间建立数据链路连接,将数据传输到以“帧”为单位的数据包中,并采用差错控制与流量控制方法使有差错的物理线路变成无差错的数据链路。 数据链路层是指在网络上沿着网络链路在相邻节点之间移动数据的技术规划。它的主要任务是加强物理层传输原始比特的功能,使之对网络层显现为一条无错线路。发送方把输入数据分装在数据帧里,按顺序传送各帧,并且有可能要处理接收方回送的确认帧。这里,帧是用来移动数据的结构包,帧中包含地址、控制、数据及校验码等信息。它不仅包括原始(未加工)数据,或称“有效荷载”,还包括发送方和接收方的网络地址以及纠错和控制信息。其中的地址确定了帧将发送到何处,而纠错和控制信息则确保帧无差错到达。因为物理层仅仅接收和传送比特流,并不关心它的意义和结构,所以只能依赖各链路层来产生和识别帧边界。可以通过在帧的前面和后面附加上特殊的二进制编码模式来达到这一目的。如果这些二进制编码偶然在数据中出现,则必须采取特殊措施以避免混淆。 传输线路上突发的噪声干扰可能把帧完全破坏掉。在这种情况下,发送方机器上的数据链路软件可能要重传该帧。然而,相同帧的多次重传也可能使接收方收到重复帧,比如接收方给发送方的确认丢失以后,就可能收到重复帧。数据链路层要解决由于帧的破坏、丢失和重复所出现的问题。数据链路层可能向网络层提供几种不同的服务,每种都有不同的服务质量和价格。 数据链路层要解决的另一个问题是防止高速的发送方的数据把低速的接收方“淹没”。因此需要某种流量的调节机制,使发送方知道当前接收方还有多少缓存空间。通常流量调节和出错处理的功能同时完成。 (3) 网络层 在OSI参考模型中,网络层是参考模型的第3层。网络层的主要功能是:为数据在节点之间传输创建逻辑链路,通过路由选择算法为分组通过通信子网选择最适当的路径,以及实现拥塞控制、网络互联等。 网络层通过综合考虑发送优先权、网络拥塞程度、服务质量以及可选路由的花费来决定从一个网络中节点A到另一个网络中节点B的最佳路径。在网络中,“路由”是基于编址方案、使用模式以及可达性来指引数据的发送。网络层协议还能补偿数据发送、传输以及接收设备能力的不平衡性。为完成这一任务,网络层对数据包进行分段和重组。分段即是指当数据从一个能处理较大数据单元的网络段传送到仅能处理较小数据单元的网络段时,网络层减小数据单元大小的过程。这个过程就如同将单词分割成若干可识别的音节给正学习阅读的儿童使用一样。重组过程即是重新构成被分段的数据单元。类似地,当一个孩子理解了分开的音节时,他会将所有音节组成一个单词,也就是将部分重组成一个整体。 (4) 传输层 在OSI参考模型中,传输层是参考模型的第4层。传输层是计算机通信体系结构中关键的一层。它汇集下3层功能,向高层提供完整的、无差错的、透明的、可按名寻址的、高效低费用的端到端的通信服务,起到承上启下的作用。 传输层的基本功能是从会话层接收数据,并按照网络能处理的最大尺寸将较长的数据包进行强制分割,把它分成较小的单位,传递给网络层。例如,以太网(一种广泛应用的局域网类型)无法接收大于1 500B(字节)的数据包。传输层能确保到达对方的各段信息正确无误,而且,这些任务都必须高效率地完成。从某种意义上说,传输层使会话层不受硬件技术变化的影响。 通常,每当会话层请求建立一个传输链接,传输层就为其创建一个独立的网络连接。如果传输连接需要较高的信息吞吐量,传输层也可以为之创建多个网络连接,让数据在这些网络连接上分流,以提高吞吐量。另一方面,如果创建或维持一个网络连接不合算,传输层可以将几个传输连接复用到一个网络连接上,以降低费用。然而,在任何情况下,都要求传输层能使多路复用对话层透明。 传输层也要决定向会话层提供什么样的服务。最流行的传输连接是一条无错的、按发送顺序传输报文或字节的点到点的信道。但是,有的传输服务是不能保证传输次序的独立报文传输和多目标的报文广播的。 传输层是真正的从源到目标的“端到端”的层。源端机上的某程序,利用报文头和控制报文与目标机上的类似程序进行对话。而在传输层以下的各层中,协议是每台机器包括中间结点都要参照执行的协议,而不是最终的源端机与目标机之间的协议。通常在它们中间可能还有多个路由器,这些路由器都要对路过的信息块进行1~3层的处理,也就说,1~3层是链接起来的,4~7层是端到端的。 很多主机有多道程序在运行,这意味着这些主机有多条连接进出,因此需要有某种方式来区别报文属于哪条连接。识别这些连接的信息可以放入传输层的报文头。 除了将几个报文流多路复用到一条通道上,传输层还必须解决跨网络连接的建立和拆除问题。这需要某种命名机制,使机器内的进程可以讲明它希望与谁会话。另外,还需要一种机制以调节通信量,使高速主机不会发生过快地向低速主机传输数据的现象。这样的机制称为流量控制,它在传输层(同样在其他层)中扮演着关键的角色。 (5) 会话层 在OSI参考模型中,会话层是参考模型的第5层。会话层的功能是:负责两节点之间建立通信链接,保持会话过程通信链接的畅通,使两个节点之间的对话同步,决定通信是否被中断以及通信中断时决定从何处重新发送。 会话层允许不同机器上的用户建立会话关系。“会话”是指在两个实体之间建立数据交换连接,常用于表示终端与主机之间的通信。会话层允许进行类似传输层的普通数据传输,并提供对某些应用有用的增强服务会话,也可用于远程登录到分时系统或在两台机器间传递文件。 会话层服务之一是管理会话。会话层允许信息同时双向传输,或任一时刻只能单向传输。若属于后者,则类似于单线铁路,会话层记录此时该轮到哪一方了。 一种与会话有关的服务是令牌管理。有些协议保证双方不能同时进行同样的操作,这一点很重要。为了管理这些活动,会话层提供了令牌。令牌可以在会话双方之间交换,只有持有令牌的一方可以执行某种关键操作。 另一种会话服务是同步。如果网络平均每小时出现一次大故障,而两台计算机之间要进行长达两小时的文件传输时该怎么办?每一次传输中途失败后,都不得不重新传输这个文件,而当网络再次出现故障时,又可能半途而废了。为了解决这个问题,会话层提供了一种方法,即在数据流中插入检查点。每次网络崩溃后,仅需要重传最后一个检查点以后的数据。 (6) 表示层 在OSI参考模型中,表示层是参考模型的第6层。表示层的主要功能是:用于处理在两个通信系统中交换信息的表示方式,主要包括数据格式变换、数据加密与解密、数据压缩与恢复等功能。 表示层如同翻译。在表示层,数据将按照网络能理解的方案进行格式转化,这种格式转化的结果因所使用网络的类型不同而不同。表示层管理数据的解密与加密,如系统口令的处理。如果在Internet上查询你的银行账户,使用的即是一种安全连接。你的账户数据仍会在发送前被加密,在网络的另一端,表示层将对接收到的数据解密。除此之外,表示层协议还对图片和文件格式信息进行解码和编码。 注意:表示层以下的各层只关心如何可靠地传输比特流,而表示层关心的是所传输的信息的语法和语义。 (7) 应用层 在OSI参考模型中,应用层是参考模型的最高层。应用层的主要功能是供完成特定网络功能服务所需要的各种应用程序。 应用层是计算机网络与最终用户的界面,为网络用户之间的通信提供专用的程序。OSI的7层协议从功能划分来看,下面6层主要解决支持网络服务功能所需要的通信和表示问题,应用层负责对软件提供接口以使程序能享用网络服务。应用层提供的服务主要有:文件传输、访问和管理、电子邮件、虚拟终端、查询服务和远程作业登录。 综上所述,可将OSI模型各层的功能及信息交换的单位汇总如表31所示。 表31OSI参考模型各层的功能 模型各层名功能信息交换的单位 应用层在程序之间传递信息报文 表示层处理文本格式化,显示代码转换报文 会话层建立、维持、协调通信报文 传输层确保数据正确发送传输协议数据单元 网络层决定传输路由、处理信息传递分组 数据链路层编码、编址、传输信息帧 物理层管理硬件连接位 33TCP/IP参考模型 通过上面的简单介绍,不难发现OSI体系结构概念清晰,但是层次过于复杂。而互联网的分层协议体系结构为全球信息连网奠定了基础。实际上,互联网是一个虚拟网,所谓虚拟网是指互联网由许许多多的网互连而成,如图32所示。 图32互联网 互联网执行TCP/IP协议,并定义任何可以传输分组的通信系统均可视为网络。因此,互联网具有网络对等性,不论复杂的网络,还是简单的网络,甚至两台连接的计算机网络都是如此。它依托在物理网络上运行,但又与网络的物理特性无关。 331TCP/IP的体系结构 网络互连是目前网络技术研究的热点之一,取得了很大的进展,出现了众多的网络协议。TCP/IP(Transmission Control Protocol/Internet Protocol)就是一个被普遍使用的网络互连的标准协议。TCP/IP协议开发于20世纪60年代后期,是实现网络互连的核心。从1978年起TCP/IP就取得了网络领域的主导地位,它是目前最流行的、不依赖于特定硬件平台的网络协议。虽然它不是OSI标准,但它被公认为当前的工业标准。著名的Internet就是以TCP/IP协议为基础进行通信的。随着Internet技术的发展,TCP/IP也成为局域网中必不可少的协议之一。 事实上,TCP/IP协议是一个用于计算机通信的协议簇,它包括很多协议,如TCP、IP、Telnet、SMTP、FTP、UDP等,其中最重要和最著名的就是传输控制协议TCP和网际协议IP。一般人们常提到的TCP/IP协议指的就是Internet所使用的体系结构,或者整个TCP/IP协议簇。 基于硬件层次上执行TCP/IP协议的因特网仅由4个概念性的层次组成,自下而上依次为:网络接口层、互联网层(IP层)、传输层和应用层,各层次上分别有不同协议与之相对应,如表32所示。 表32TCP/IP体系结构 应用层TelnetFTPSMTPDNSHTTP 传输层TCPUDP 互联网层(IP层)IPICMPARPRARP 网络接口层SLIPPPP 1网络接口层 网络接口层对应于OSI参考模型的数据链路层和物理层,它提供了TCP/IP与各种物理网络的接口,是TCP/IP的实现基础。这些通信网包括多种广域网,如ATM、FR、MILNET和X25公用数据网,以及各种局域网,如Ethernet、IEEE、TokenRing的各种标准局域网等。它还为网络层提供服务。TCP/IP体系结构并未对网络接口层使用的协议做出强制的规定,它允许主机连入网络时使用多种现成的和流行的协议。 2互联网层(IP层) 互联网层是TCP/IP体系结构的第2层,它解决了计算机与计算机之间的通信问题,实现的功能相当于OSI参考模型中网络层的无连接网络服务。互联网层负责异构网或同构网的计算机进程之间的通信。它将传输层的分组封装为数据报(Datagram)格式进行传送,每个数据报必须包含目的地址和源地址。在互联网中,路由器(Router)是网间互连的关键设备,路由选择算法是网络层(包括互连子层)的主要研究对象。 互联网层有4个重要的协议:网际协议IP(Internet Protocol)、Internet控制报文协议ICMP(Internet Control Message Protocol)、地址转换协议ARP(Address Resolution Protocol)和反向地址转换协议RARP(Reverse Address Resolution Protocol)。它们是实现异构网络互联的关键协议。 3传输层 传输层位于互联网层之上,它的主要功能是负责应用进程之间的端到端通信。TCP/IP协议的传输层提供了两个主要的协议:传输控制协议TCP(Transport Control Protocol)和用户数据报文协议UDP(User Datagram Protocol)。TCP提供可靠性服务,比如文件传输、远程登录,一次传输要交换大量的数据。UDP具有高效率,适用于交互型应用,比如数据库查询,其可靠性则由应用程序解决。 4应用层 在TCP/IP体系结构中,传输层之上是应用层,它包含了网络上计算机之间的各种应用服务。用户通过API(应用进程接口)调用应用程序来运用TCP/IP互联网提供的多种服务。应用程序负责收、发数据,并选择传输层提供的服务类型,如连续的字节流,独立的报文序列,然后按传输层要求的格式递交。 应用层包含所有的高层协议,如远程登录协议(Telnet)、文件传输协议(FTP)、简单邮件传输协议(SMTP)、超文本传输协议(HTTP)和域名系统(DNS)等,并且总是不断有新的协议加入。几乎所有的应用程序都有自己的协议。 要把数据以TCP/IP协议的方式从一台计算机传送到另一台计算机,数据需要经过上述四层通讯软件的处理才能在物理网络上传输。TCP/IP模型的工作原理如图33所示。 图33互联网上TCP/IP模型的工作原理 在图33中描述了两台主机A、B上的应用程序之间的通信过程。主机A通过应用层、传输层、互联网层到网络接口层进入网络1,按帧1格式传送和处理;路由器收到网络1的帧1,在互联网层加以识别数据报头,选择转发路径,形成帧2,流经网络2。主机B在网络2中获取帧2,经互联网层、传输层、应用层到达主机B。主机B到主机A的通信过程类似于主机A到主机B的通信过程。 在实现TCP/IP分层模型的工作原理时,还需要理解层间的界限:应用程序与操作系统(OS)之间的界限;协议地址的界限,如图34所示。 图34TCP/IP分层模型的界限 在互联网中,软件分为操作系统软件和非操作系统软件。应用层程序是非操作系统软件。操作系统软件集成了网络协议软件,目的是减少在协议软件的低层间进行数据传送的开销。在互联网层之上的所有协议软件只使用IP地址,在网络接口层使用具体的物理地址。需要强调的是,TCP/IP协议并没有确切地规定应用程序应该怎样与协议软件相互作用,也就是说没有对应用程序接口进行标准化,因此,在原理上必须区分TCP/IP协议与接口。 332TCP协议 TCP是传输控制协议,它是TCP/IP协议簇中的一个重要协议。它对应于OSI模型的传输层,它是在IP协议的基础上,提供一种面向连接的、可靠的(没有数据重复或丢失)数据流传输服务。 图35显示出了从发送方的高层协议通过TCP到达接收方的高层协议数据传输的完整过程。 图35TCP报文段的传输过程 根据图35对TCP报文段的传输过程说明如下: ①发送方的高层协议发出一个数据“流”给它的TCP实体进行传输。 ②TCP将此数据流分成段。然后将这些段交给IP。 ③IP对这些报文段执行它的服务过程,包括创建IP分组、数据报分割等,并在数据报通过数据链路层和物理层后经过网络传给接收方的IP。 ④接收方的IP在可能采取分组检验和重组分段的工作后,将数据报变成段的形式送给接收方的TCP。 ⑤接收方的TCP完成它自己的任务,将报文段恢复成它原来的数据“流”形式,送给接收方的高层协议。 1TCP提供的三种最重要的服务 1) 可靠地传输消息 为应用层提供可靠的面向连接服务,确保发送端发出的消息能够被接收端正确无误地接收到。TCP去掉重复的数据,在数据丢失时重发数据,并且保证精确地按原发送顺序重新组装数据。 TCP允许两个应用程序建立一个连接,然后发送完数据并终止连接。所谓连接,就是两个对等实体为进行数据通信而进行的一种结合。面向连接服务是在数据交换之前,必须先建立连接,当数据交换结束后,则应终止这个连接。面向连接服务具有连接建立、数据传输和连接释放三个阶段。总之,TCP协议使两台计算机上的程序通过互联网以类似于电话的方式进行通信成为可能。一旦两个程序建立了连接,那么它们可以在交换任意大小的数据后再结束通信。 当路由器由于到达的数据报过多而引起超载的时候,它必须将一些数据报丢弃,结果,一个数据报在互联网上传输时就可能丢失。TCP将自动检测丢失的数据报,并且要求对方计算机在数据丢失时重发数据。 互联网结构复杂,每个数据报可以通过多条路径到达同一目的地。当路由器开始沿另外一条新的路径传送数据报,就好像高速公路上的汽车在前方出现问题时会绕道而行一样。由于路径的变化,一些数据报会和它们发送时不同的顺序到达目的地,TCP自动检测到来的数据报,并且将它们按原来的顺序调整过来。 有时,网络硬件故障也会导致重复地发送同一个数据报,结果一个数据报的多个副本可能会到达目的地。TCP将自动检测有没有重复的数据报发来,如果有,它只接受最先到达的数据报。 总之,尽管IP协议使计算机能够发送和接收数据报,但IP协议并未解决数据报在传输过程中所有可能出现的问题,因此连上互联网的计算机还需要TCP协议来提供可靠的无差错的通信服务。 2) 流量控制 TCP在其连接的通信过程中,能够调整流量,以防止内部的TCP数据传递出现拥挤,从而导致服务质量下降和出错。 为了控制流量,TCP模块间通信采用了窗口机制。这里,窗口是接收方接收字节数量能力的表示。在ACK应答信息中,加上接收方允许接收数据范围的信息回送给发送方。发送方除非收到来自接收方的最大数据允许接收范围的信息,否则总是使用由接收方提供的这一范围发送数据。 当建立一个连接时,连接双方的主机都给TCP分配了一定数量的缓存。每当进行一次TCP连接时,接收方主机只允许发送端主机发送的数据不大于缓存空间的大小。如果没有流量控制,发送端主机就可能以比接收端主机快得多的速度发送数据,这使得接收端的缓存出现溢出现象。因此,接收方必须随时通报缓冲区的剩余空间,以便发送方调整流量。 3) 阻塞控制 任何一个网络,当过多的数据进入时,都会导致网络阻塞,互联网也不例外。阻塞发生时会引起发送端超时,虽然超时也有可能是由数据传输出错引起,但在当前数字化网络环境中,由于传输介质(例如使用光纤)的可靠性越来越高,数据传输出错的可能性很小。因此导致超时的绝大多数原因是网络阻塞。TCP实体就是根据超时来判断是否发生了网络阻塞的。 TCP考虑到网络的处理能力,除了设置接收通告窗口外,还在发送端设置一个阻塞窗口,发送窗口必须是接收通告窗口和阻塞窗口中较小的那一个,即: 发送窗口=min(接收通告窗口,阻塞窗口) 和接收通告窗口一样,阻塞窗口也是动态可变的。在连接建立时,阻塞窗口被初始化成该连接支持的最大段长度,然后TCP实体发送一个最大长度的段;如果这个段没有超时,则将阻塞窗口调整成两个最大段长度,然后发送两个最大长度的段;每当发送出去的段都及时地得到应答,就将阻塞窗口加倍,直至最终达到接收窗口大小或发生超时,这种算法称为“慢启动”。如果发生了超时,TCP实体将一个门限参数设置成当前阻塞窗口的一半,然后将阻塞窗口重新初始化成最大段长度,再一次执行慢启动算法,直至阻塞窗口大小达到设定的门限值;这时减慢阻塞窗口增大的速率,每当发送出去的段得到了及时应答,就将阻塞窗口增加一个最大段长度,如此,阻塞窗口呈线性增大,直至达到接收通告窗口大小或又发生超时。当阻塞窗口达到接收通告窗口时,便不再增大,此后一直保持不变,除非接收通告窗口改变或又发生超时;如果发生超时,则使用上述阻塞控制算法重新确定合适的阻塞窗口大小。 TCP确保每次TCP连接不过分加重路由器的负担,当网络上的链路出现拥挤时,经过这个链路的TCP连接将自我调节以减缓拥挤。 采用以上的流量控制和阻塞控制机制后,发送端可以随时根据接收端的处理能力和网络的处理能力来选择一个最适合的发送速率,从而充分有效地利用网络资源。 2TCP报文段的格式 TCP协议在两台计算机之间传输的数据单元称为报文段。报文段交换涉及建立连接、传输数据、发送确认、通知窗口尺寸,直到关闭连接。TCP报文段的格式,如图36所示。前面是TCP头,后面是数据。报文段既可以用来建立连接,也可以运载数据和应答。 图36TCP报文段的格式 每个报文段分为两部分,前面是TCP头,后面是数据。在TCP头中的源端口段和目的端口段各包含一个TCP的端口号,分别标识连接两端的两个应用程序。序列号标识本报文段中的数据在发送者字节流中的位置。确认号标识本报文段的源发方下一个期待接收的字节的编号。 偏移段包含一个整数,指明报文段头的长度,单位是32位。需要这个段是因为TCP头中的任选项段长度可变。因此,这个TCP报头的长度随所选的选项而变化,标有保留的段为6位,留给将来使用。 有些报文段只载送应答,而另外的报文段载送数据,还有的报文段请求建立或关断一条连接。TCP协议使用标有编码位的6位段确定报文段的目的与内容。表33列出了这6位编码位段中各位的含义。 表33TCP报文段头中6位编码位段中各位的含义 位(自左至右)含义位(自左至右)含义 URG紧急指针段有效RST重置连接 ACK确认段有效SYN同步序列号 PSH本报文段请求一次PUSH(推进)FIN发送者已到达自己字节流的结尾 TCP协议每次发送一个报文段时,通过在窗口段中指定它的缓冲区大小,通告它愿意接收多少数据。该段包含一个网络标准字节顺序表示的32位无符号整数。窗口通告给出了稍带机制的又一例子,因为它们伴随所有的TCP报文段,既包括那些运载数据的报文段,也包括那些仅运载应答确认的报文段。 尽管TCP是面向流的协议,但有时候处于连接的一端的程序也需要立即发送带外数据,而不用等待连接的另一端上的程序消耗完数据流中正传输的数据。为了提供带外信令,TCP允许发送者把数据指定成是紧急的,这意味着接收程序应被尽可能快地通知紧急数据到达,而不管紧急数据处于流中什么位置。当在一个报文段中发送紧急数据时用以标志紧急数据的机制由CODE段中的URG位和紧急指针段组成。当URG位置为1时,紧急指针指出窗口中紧急数据结束的位置。紧急指针的值是从序列号段值开始算起的数据段中的正偏移。将紧急指针值与序列号相加就得到最后一个紧急数据字节的编号。 TCP头中的可选项段用来处理其他各种情况。目前被正式使用的可选项可用于定义通信过程中最大报文段长,它只能在连接时使用。 可选项的长度是可变的,只要求它以字节为单位,因此有可能不是32的整数倍。在不是32位的整数倍的情况下,为使可选项长度成为32位的整数倍,可在表示可选项的结束的可选项后面填充一些位来满足要求。 TCP头中的检验和用于头和数据中的所有16位字,检验和也覆盖了在概念上附加在TCP报头前的伪报头(即伪头),该伪头含有源地址、目标地址、协议标识符和TCP段长,如图37所示。 图37TCP伪报头结构 在伪头内,标有发送方IP地址和接收方IP地址的段分别包含报源互联网地址和报宿互联网地址。这两个地址在发送TCP报文时都要用到,协议标识符段包含IP分组的协议类型码,每段又标明了报文段长度(不包括伪头)。 为了计算检验和,TCP把伪头回到TCP报文段上,再对全部内容(包括伪头、TCP报文段头及用户数据)求出16位的反码之和,检验和的初始值设成0,然后每两个字节为1单位相加,若相加的结果有进位,那么将和加1。如此反复,直到全部内容都相加完为止。将最后的和值对1求补,即取二进制反码,便得到16位的检验和。 3TCP连接管理 对于面向连接服务,即使是可靠的网络服务,还是需要连接的建立和释放过程。连接管理使连接的建立和释放能正常进行。 建立连接时需要解决每一端都能确知对方的存在,允许通信双方协商可选参数,对运输实体资源进行分配等3个问题。 连接的建立采用客户机/服务器方式。主动发送连接的运输实体的进程为客户机,而被动等待连接的运输实体的进程称为服务器。 在连接建立过程中,存在两种方式,要么由运行客户进程的运输实体,先向其TCP发出主动打开命令,表示要向某个IP地址的某个端口建立运输连接;要么由运行服务器进程的运输实体,先向它的TCP发出一个被动打开命令,要求它准备接收客户进程的连接请求。接着,服务器进程就处于“监听”的状态,从而不断检测是否有客户进程连接请求的到来。如有,则予以响应。 TCP采用如图38所示的3次握手过程建立传输连接。 图38传输连接建立的过程 ①A(客户端进程)发出“请求连接”TCP段,段头的SYN置1,序列号Seq=x(A初始报文序列号)。 ②B(服务器进程)返回一个TCP段,段头的SYN和ACK均置1,其序列号Seq=y(B初始报文序列号),确认(ACK)域则为x+1,告示A端序列号为x,请求正确收到,并对此作出肯定应答。 ③A正确收到B的应答后,需要再发送一个ACK置为1的TCP段,在确认(ACK)域中填入y+1,以示对B的初始序号的确认。 此时,运输客户进程的运输实体A向上层应用进程告知连接已建立,而运行服务器进程的运输实体B收到A的确认后,也通知上层应用进程,连接已经建立。 TCP使用一种修改的3次握手释放传输连接,如图39所示。 图39传输连接释放的过程 用以建立和释放连接的3次握手之间的差别发生在机器接收到初始的FIN报文段之后,TCP不是立即产生第2个FIN报文段,而是发送一个应答,然后将关断连接的请求通知应用程序。将请求通知应用程序并获得响应可能需要相当长的时间。上述确认防止在等待期间生发初始的FIN报文段。最后,当应用程序指示TCP完全关断连接时,TCP发送第2个FIN报文段,并且源场点以自己的第2个报文段即ACK应答。 333IP协议 IP协议也称网际协议,是TCP/IP协议簇的核心协议之一。IP协议最基本的服务是提供一个不可靠的尽最大努力去完成好任务的、无连接的分组投递系统。说它不可靠,是因为所要求的投递不能保证成功,分组可能丢失,投递无序或重复投递。而IP协议并不检测这些情况,发生这些情况也不通知发送者或接收者。说它无连接,是因为每一个分组的外部都独立于其他分组,一串分组从一个机器发出,可以经由不同的路径(可以从多条路径中找到较好的到达目的地的路径)到达另一机器,也可能部分分组都丢失了,而其余的仍被投递。说这种服务是尽最大努力做好的,是因为IP尽最大努力去投递分组,并不轻易地抛弃分组,仅当资源用尽或下面的物理网失效时才会发生不可靠的现象。 IP协议定义数据传递的基本单元——IP分组及其确切的数据格式,有时更加明确地叫做IP数据报。IP协议也包括一套规则,指明分组如何处理,错误怎样控制。特别是,IP协议包含不可靠投递的思想,以及与此关联的分组路由选择的思想。 在一个物理网络上传递的单元是帧,它包含头和数据,头给出了源和目的地址的信息,称为IP分组。类似典型的物理网络帧,IP分组也分头和数据区,分组的头包含源和目的地址。当然,不同点在于IP分组包含的是IP地址。IP分组可以为任意长度,然后当它们从一台机器移动到另一台机器时,必须放在物理网络帧中进行传输。 IP模块是TCP/IP技术的核心,而IP模块的关键成分则是它的路由表。路由表放在内存储器中,IP模块使用它为IP分组选择路由。 1关于IP地址 为了使得计算机之间能够进行通信,每台计算机都必须有一个唯一的标识。由IP协议为Internet的每一台主机都分配一个唯一地址,称为IP协议地址(简称IP地址)。IP地址对网上的某个节点来说是一个逻辑地址。它独立于任何特定的网络硬件和网络配置,不管物理网络的类型如何,它都有相同的格式。IP地址在集中管理下进行分配,确保每一台上网的计算机对应一个IP地址。 2IP地址的结构 Internet覆盖了世界各地的多个不同的网络,而一个网络又包括多台主机,因此,Internet是具有层次结构的。Internet使用的IP地址也采用了层次结构。 IP地址以32位二进制位的形式存储于计算机中。32位的IP地址由网络ID和主机ID两个部分组成,如图310所示。 图310IP地址的结构 图310中,网络ID(又称为网络标志、网络地址或网络号)主要用于标志该主机所在的Internet中的一个特定的网络;而主机ID(又称为主机地址或主机号)则是用来标志该网络中的一个特定连接。在一个网段内部,主机ID必须是唯一的。 在IP地址中携带了位置信息,也就是说,通过一个具体的IP地址,就可以知道该主机是位于哪个网络。正是因为网络标志所给出的网络位置信息才使得路由器能够在通信子网中为IP分组选择一条合适的路径。寻找网络地址对于IP数据包在Internet中进行路由选择极为重要。地址的选择过程就是通过Internet为IP数据包选择目标地址的过程。 由于IP地址包含了主机本身和主机所在的网络的地址信息,所以在将一个主机从一个网络移到另一个网络时,主机IP地址必须进行修改,否则,就不能与Internet上的其他主机正常通信。 3IP地址的表示 在计算机内部,IP地址通常使用4个字节的二进制数表示,其总长度共32位(IPv4协议所规定的),如下所示: 11000000101010000000000101100100 为了表示方便,国际上采用一种“点分十进制表示法”,即将32位的IP地址接字节分为4段,高字节在前,每个字节再转换成十进制数表示,并且各字节之间用圆点“”隔开,表示成wxyz。这样IP地址表示成了一个用点号隔开的4组数字,每组数字的取值范围只能是0~255。例如,上面用二进制表示的IP地址可以用点分十进制1921681100表示,如图311所示。 图311IP地址的表示方法 4IP地址的分类 为适应不同规模的网络,可将IP地址进行分类。每个32位的IP地址的最高位或起始几位标志地址的类别。Internet将IP地址分为A、B、C、D和E五类,如图312所示。 图312IP地址的组成 图312中A、B、C类被作为普通的主机地址,D类用于提供网络组播服务或作为网络测试之用,E类保留给未来扩充使用,每类地址中定义了它们的网络ID和主机ID各占用32位地址中的多少位,就是说每一类中,规定了可以容纳多少个网络,以及这样的网络中可以容纳多少台主机。 1) A类地址 A类地址用来支持超大型网络。这类地址仅使用第一个8位组标志地址的网络部分,其余三个8位组用来标志地址的主机部分。用二进制表示时,A类地址的第1位(即最左边的那1位)总是0。因此,第1个8位组的最小值为00000000(十进制数为0),最大值为01111111(对应十进制数为127),但是0和127这两个数保留,不能用作网络地址。任何IP地址第1个8位组的取值范围从1~126都是A类地址。 2) B类地址 B类地址用来支持中、大型网络,这类IP地址使用四个8位组的前两个8位组标志地址的网络部分,其余两个8位组用来标志地址的主机部分。用二进制表示时,B类地址的前2位(最左边)总是10。因此,第一个8位组的最小值为10000000(对应的十进制值为128),最大值为10111111(对应的十进制值为191),任何IP地址第一个8位组的取值范围从128~191都是B类地址。 3) C类地址 C类地址用来支持小型网络。C类IP地址使用四个8位组的前三个8位组标志地址的网络部分,其余的一个8位组用来标志地址的主机部分。用二进制表示时,C类地址的前3位(最左边)总是110。因此,第一个8位组的最小值为11000000(对应的十进制数为192),最大值为11011111(十进制数为223),任何IP地址第1个8位组的取值范围从192~223都是C类地址。 4) D类地址 D类地址用来支持组播,组播地址是唯一的网络地址,用来转发目的地址为预先定义的一组IP地址的分组。因此,一台工作站可以将单一的数据流传送给多个接收者、用二进制表示时,D类地址的前4位(最左边)总是1110。D类IP地址的第一个8位组的范围是从11100000~11101111,即从224~239。任何IP地址第1个8位组的取值范围从224~239都是D类地址。 5) E类地址 Internet工程任务组保留E类地址作为科学研究使用。因此Internet上没有发布E类地址使用。用二进制表示时,E类地址的前4位(最左边)总是1111。E类IP地址的第一个8位组的范围是从11110000~11111111,即从240~255。任何IP地址第一个8位组的取值范围从240~255都是E类地址。 对于IP地址,我们应该从以下几个方面来理解: (1) IP地址是一种非等级的地址结构,与电话号码的结构不一样,也就是说IP地址不能反映任何有关主机位置的物理地理信息。 (2) 当一个主机同时连接到两个网络上时(如作路由器用的主机),该主机就必须同时具有两个相应的IP地址,其网络号码是不同的,这种主机成为多地址主机。 (3) 按照Internet的观点,用转发器或网桥连接起来的若干个局域网仍为一个网络,因此,这些局域网都具有同样的网络号码。 (4) 在IP地址中,所有分配到同一网络号码的网络,不管是小型局域网还是很大的广域网都是平等的。 5保留IP地址 在IP地址中,有些IP地址是被保留作为特殊用途的,不能用于标志网络设备,这些保留地址空间如下。 1) 网络地址 用于表示网络本身,具有正常的网络号部分,主机ID部分为全“0”的IP地址代表一个特定的网络,即作为网络标志之用,如102000、131300和1923010分别代表了一个A类、B类和C类网络。 2) 广播地址 IP协议同时还规定,主机ID为全“1”的IP地址是保留给广播用的。广播地址又分为直接广播地址和有限广播地址两类。 (1) 直接广播 如果广播地址包含一个有效的网络号和一个全“1”的主机号,那么称之为直接广播地址。在IP网络中,任意一台主机均可向其他网络进行直接广播。例如C类地址21191192255就是一个直接广播地址。直接广播在发送前必须知道目的网络的网络号。 (2) 有限广播 32位全为“1”的IP地址(225225225225)用于本网广播,该地址叫作有限广播地址。有限广播将广播限制在最小的范围内,在主机不知道本机所处的网络时(如主机的启动过程中),只能采用有限广播方式,通常由无盘工作站启动时使用,希望从网络IP地址服务器处获得一个IP地址。 (3) 回送地址 A类网络地址127000是一个保留地址,也就是说任何一个以127开头的IP地址(127000~127255255255)均为一个保留地址,用于网络软件测试以及本地机器进程间通信。这个IP地址叫作回送地址,最常见的表示形式为127001。在每个主机上对应于IP地址127001有个接口,称为回送接口。IP协议规定,无论什么程序,一旦使用回送地址作为目的地址时,协议软件不会把该数据包向网络上发送,而是把数据包直接返回给本机。 (4) 所有地址 0000代表所有的主机,路由器用0000地址指定默认路由。表34列出了所有特殊用途地址。 表34特殊用途地址 网 络 部 分主 机 部 分地 址 类 型用途 Any全“0”网络地址代表一个网段 Any全“1”广播地址特殊网段的所有节点 127Any回环地址回环测试 全“0”所有网络路由器指定默认路由 全“1”广播地址本网段所有节点 由此可见,每一个网段都会有一些IP地址不能用作主机的IP地址。例如C类网段19216810,有8个主机位,因此有28个IP地址,去掉网络地址19216810和广播地址1921681255不能用来标志主机,那么共有26个可用地址。A、B、C类的最大网络数目和可以容纳的主机数信息如表35所示。 表35A、B、C类地址的最大网络数和可容纳的主机数 网络类型最大网络数每个网段可容纳的最大主机数目 A27-2=126224-2=16 777 214 B214216-2=65 534 C224=2 097 15228-2=254 6公用地址和私有地址 公用IP地址是唯一的,因为公用IP地址是全局的和标准的,所以没有任何两台连到公共网络的主机拥有相同的IP地址,所有连接Internet的主机都遵循此规则,公用IP地址是从Internet服务供应商(ISP)或地址注册处获得的。 另外,在IP地址资源中,还保留了一部分被称为私有地址的地址资源供内部实现IP网络时使用。REC1918留出3块IP地址空间(1个A类地址段,16个B类地址段,256个C类地址段)作为私有的内部使用的地址,即10000~10255255255、1721600~17231255255和19216800~192168255255。根据规定,所有以私有地址为目标地址的IP数据包都不能被路由至Internet上,这些以私有地址作为逻辑标志的主机若要访问Internet,必须采用网络地址翻译(Network Address Translation,NAT)或应用代理方式。 7子网划分 为了解决IP地址资源短缺的问题,同时也为了提高IP地址资源的利用率,引入了子网划分技术。 1) 子网编址模式下的地址结构 子网划分是指由网络管理员将一个给定的网络分为若干个更小的部分,这些更小的部分被称为子网。当网络中的主机总数未超出所给定的某类网络可容纳的最大主机数,但内部又要划分成若干个分段进行管理时,就可以采用子网划分的方法。为了创建子网,网络管理员需要从原有IP地址的主机位中借出连续的若干位作为子网络ID,如图313所示。 图313子网划分示意图 也就是说,经过划分后的子网因为其主机数量减少,已经不需要原来那么多位作为主机ID了,从而可以将这些多余的主机位作为子网ID。 2) 子网掩码 引入子网划分技术后,带来的一个重要问题就是主机或路由设备如何区分一个给定的IP地址是否已被划分了子网,从而能正确地从中分离出有效的网络标志(包括子网络号的信息)。通常,将未引进子网划分前的A、B、C类地址称为有类别的IP地址;对于有类别的IP地址,显然可以通过IP地址中的标志位直接判定其所属的网络类别并进一步确定其网络标志。但引入子网划分技术后,这个方法显然是行不通了。 例如,一个IP地址为102233,已经不能简单地将其视为是一个A类地址而认为其网络标志为102000,因为若是进行了8位的子网划分,则其相当于是一个B类地址且网络标志成为102200;如果是进行了16位的子网划分,则又相当于是一个C类地址并且网络标志成为102230;若是其他位数的子网划分,则甚至不能将其归入任何一个传统的IP地址类中,可能既不是A类地址,也不是B类或C类地址。 换句话说,当引入子网划分技术后,IP地址类的概念已不复存在。对于一个给定的IP地址,其中用来表示网络标志和主机号的位数可以是变化的,取决于子网划分的情况。将引入子网技术后的IP地址称为无类别的IP地址,并因此引入子网掩码的概念来描述IP地址中关于网络标志和主机号位数的组成情况。 子网掩码通常与IP地址配对出现,其功能是告知主机或路由设备,IP地址的哪一部分代表网络号部分,哪一部分代表主机号部分。子网掩码使用与IP地址相同的编址格式,即32位长度的二进制比特位,也可以分为4个8位组并采用点分十进制来表示。但在子网掩码中,与IP地址中的网络位部分对应的位取值为“1”,而与IP地址主机部分对应的位取值为“0”。这样通过将子网掩码与相应的IP地址进行“与”操作,就可决定给定的IP地址所属的网络号(包括子网络信息)。 例如,102233/255000表示该地址中的前8位为网络标志部分,后24位表示主机部分,从而网络号为102000;而102233/2552552470则表示该地址中的前21位为网络标志部分,后11位表示主机部分。显然,对于传统的A类、B类和C类网络,其对应的子网掩码应分别为255000、25525500和2552552550。 表36给出了C类网络进行不同位数的子网划分后其子网掩码的变化情况。 表36C类网络进行子网划分后的子网掩码 划分位数23456 子网掩码255255255192255255255224255255255240255255255248255255255252 为了方便表达,在书写上还可以采用诸如“XXXX/Y”的方式来表示IP地址与子网掩码,其中每个“X”分别表示与IP地址中的一个8位组对应的十进制值,而“Y”表示子网掩码中与网络标志对应的位数。如上面提到的102233/255000也可表示为102233/8。而102233/2552552470则可表示为102233/21。 3) 子网划分的方法 在子网划分时,首先要明确划分后所要得到的子网数量和每个子网中所要拥有的主机数,然后才能确定需要从原主机位借出的子网络标志位数。原则上,根据全“0”和全“1”IP地址保留的规定,子网划分时至少要从主机位的高位中选择两位作为子网络位,而只要能保证保留两位作为主机位。A、B、C类网络最多可借出的子网络位是不同的。A类可达22位、B类为14位,C类则为6位。显然,当借出的子网络位数不同时,相应可以得到的子网络数量及每个子网中所能容纳的主机数也是不同的。表37给出了A、B、C三类网络的子网络位数和子网络数量、有效子网络数量之间的对应关系,所谓有效子网络是指除去那些子网络位为全“0”和全“1”的子网后所留下的可用子网。 表37三类网络进行子网划分后的子网掩码 A类网络划分子网数与对应的子网掩码 占用主机位数子网数量有效子网数量子网掩码子网中可容纳的主机数 121=22-2=0255128008 388 606 224=44-2=2255192004 194 302 323=88-2=6255224002 097 150 424=1616-2=14255240001 048 574 525=3232-2=3025524800524 286 626=6464-2=6225525200262 142 727=128128-2=12625525400131 070 828=256256-2=2542552550065 534 B类网络划分子网数与对应的子网掩码 占用主机位数子网数量有效子网数量子网掩码子网中可容纳的主机数 111=22-2=0255255128032 766 222=44-2=2255255192016 382 323=88-2=625525522408 190 424=1616-2=1425525524004 094 525=3232-2=3025525524802 046 625=6464-2=6225525525201 022 727=128128-2=1262552552540510 828=256256-2=2542552552550254 C类网络划分子网数与对应的子网掩码 占用主机位数子网数量有效子网数量子网掩码子网中可容纳的主机数 122=22-2=0255255255128126 221=44-2=225525525519262 323=88-2=625525525522430 424=1616-2=1425525525524014 525=3232-2=302552552552486 625=6464-2=622552552552522 334UDP协议 UDP(User Datagram Protocol)用户数据报文协议是一种简单的数据报传输协议,可以提供无连接的、不可靠的数据流服务。UDP是在计算机上规定用户以数据报方式进行通信的协议。UDP与IP的差别在于,IP对于系统管理的网络软件可以使用,一般用户无法直接使用,而UDP是普通用户可以直接使用的,故称为用户数据报协议。UDP必须挂在IP上运行,它的下层协议是以IP作为前提的。 UDP报文是由UDP报头和数据域两部分组成,其格式如图314所示。 图314UDP数据报文格式 在UDP报文格式中,各字段的含义如下: UDP源端口号:源端口号是任选项。该端口号若被指定,当接收进程返回数据时,这些应用数据就不会被别人得到,不指定这个域时,其值设置为0。 UDP目的端口号:该端口号用以在等待数据报的进程之间进行多路分离,可以作为接收主机与特定应用进程相关联的地址。 UDP报文长度:表示数据报头及其后面数据的总长度。最小值是8字节,即UDP数据报报头长度,用来告诉计算机信息的大小。 UDP校验和:根据IP分组头中的信息做出伪数据报头,跟UDP数据报头和数据一起进行16位的检验和计算。对数据为奇数字节的情况,增加全0字节使其成为偶数字节后再进行计算。检验和计算的方法与IP中所使用的相同。当检验和的结果为0时,将它的所有位都置成1(对1求补)。当检验和域的所有位都是0时,对接收方而言就不再具有检验和的意义,这在debug和高层协议认为检验和没有问题的情况下使用。 伪报头是放在UDP报文前边的,其格式如图315所示。 图315计算UDP检验和时使用的12个字节的伪报头 它取自于IP数据报报头中的源IP地址、目的IP地址、协议号(17)及UDP长度(就是UDP报头中的UDP长度),不足用0填充。使用伪报头的目的在于检证UDP数据报是否已到达它的正确报宿。正确报宿的组成包括互联网中一个唯一的计算机和这个计算机上唯一的协议端口。在地址方面,UDP报头本身只是确定了协议端口的编号。因而,为验证报宿,发送计算机的UDP要计算一个检验和,这个检验和既包含了UDP数据报,也包含了报宿主机的IP地址。 在获取目的IP地址时,发生了UDP与IP之间的交互作用,这违背了分层原则。但出于实际的需求,这种伪报头结构成了原有分层结构上的折中产物。 用户数据报协议UDP,特别适用于交互式短信息,它效率高,尤其是在通信子网已经相当可靠的环境中,UDP有用武之地。 335TCP/IP其他各层的协议 1ARP协议 在TCP/IP体系结构中,除了IP地址这一重要的概念之外,还有另外一个重要的地址概念,即硬件地址(MAC)。IP地址与MAC地址的区别在于:IP地址放在IP数据报的首部,而硬件地址则放在MAC帧的首部。网络层及其以上层次使用的是IP地址,而链路层以下使用的是硬件地址。 ARP(Address Resolution Protocol)称为地址解析协议,它与IP配套使用。其功能是将一个目的地IP地址映射到待求的物理网卡地址上。 由于IP地址有32位,而局域网的MAC地址是48位,因此它们之间不存在简单的转换关系。此外,在一个网络上可能经常会有新的主机加入进来,或者撤走一些主机,更换网卡也会使主机的硬件地址改变。而任何IP数据报又必须经过物理网络(如以太网)传送。于是就提出这样一个问题:假设计算机A要通过物理网络向计算机B发送一个IP分组,A只知道B的IP地址,如何把这个IP地址变成B的物理地址MAC呢?TCP/IP协议设计人员采用一种创造性的方法,解决了诸如以太网这样具有广播能力物理网络的地址转换问题。为了避免依赖一个映射表,他们选择了一种低层协议动态地映射地址,这就是所谓的地址解析协议(ARP)。使用ARP协议的每台主机都要维护一个IP地址到MAC的转换表,称ARP表。进行通信时,查ARP表,实现从IP地址到物理地址的变换。ARP表放在内存储器ARP高速缓存(ARP Cache)中,其中的登录项是在第一次需要使用而进行查询时通过ARP协议自动填写的。 当主机A欲向本局域网上的某个主机B发送IP数据报时,就先查看ARP表,如果有主机B的IP地址,就可以直接查出其对应的硬件地址,再将此硬件地址写入MAC帧,然后通过局域网将MAC帧发往此硬件地址。如果IP模块在ARP表中找不到主机B的IP地址的登录项,而任何IP数据报又必须经过物理网络(如以太网)传送,在这种情况下,主机A就自动运行ARP,然后按以下步骤找出主机B的硬件地址。 (1) 如果IP模块在ARP表中找不到主机B的IP地址的登录项,源主机A的ARP就使用广播以太网地址发一个ARP请求分组给网上每一台计算机(内含目的主机B的IP地址)。 (2) 收到广播的每个ARP模块检查请求分组中的目标IP地址,当该地址和自己的IP地址相同时,目的主机B就向源主机A发送一个ARP响应分组,附上自己的硬件地址。 (3) 源主机A收到目的主机B的ARP响应分组后,就在ARP高速缓存中写入目的主机B的IP地址到硬件地址的映射表中。 已知主机IP地址、主机MAC地址和服务器IP地址,需要请求服务器MAC地址,ARP的工作原理如图316所示。 图316ARP的工作原理 使用ARP协议,一是不必预先知道连接到网络上的主机或网关的物理地址就能发送数据;二是当物理地址和IP地址的关系随时间的推移发生变化时,能及时给予修正。一般情况下,两个主机之间相互通信的情况是存在的,为了减少网络上的通信量,源主机A在发送到ARP请求分组时,就将自己的IP地址到硬件地址的映射写入ARP请求分组中。收到广播的目的主机B一方面向源主机A发送一个ARP响应分组,附上自己的硬件地址,同时目的主机B也将源主机A的这一地址映射写入自己的ARP高速缓存中。这就为主机B以后向主机A发送数据报提供了方便。 2RARP协议 RARP(Reverse Address Resolution Protocol)是反向地址解析协议。RARP协议可以实现MAC地址到IP地址的转换。反向地址解析协议RARP广泛用于获取无盘工作站的IP地址。 通常,一台计算机的IP地址保存在其外存储器(一般是磁盘)中,操作系统在启动时从这里找出这个地址。那么,无盘工作站如何确定自己的IP地址呢?反向地址解析协议RARP就是为这一目标而设计的。 (1) RARP允许在网上站点广播一个RARP请求分组(其格式与ARP数据报类似),无盘工作站将自己的硬件地址同时填写在发送方硬件地址段和目标硬件地址段中。 (2) 网上的所有机器收到这一请求,但只有那些被授权提供RARP服务的计算机才处理这个请求,并且发送一个回答,称这样的计算机为RARP服务器(为了运行无盘工作站,在每个以太网上必须有一个RARP服务器,广播帧是不能通过IP路由器转发的。RARP服务器上存放有一张事先做好的无盘工作站硬件地址和IP地址的映射表)。当RARP服务器收到RARP请求后,它就从此映射表中查找该无盘工作站的IP地址,然后写入RARP响应分组,并且将响应分组直接发送给请求的机器。 (3) 请求的机器从所有的RARP服务器接收回答,然而只需要一个回答就够了,从而获得自己的IP地址。 这一切都只在系统初启动时发生。RARP此后不再运行,除非该无盘设备重新设置或者重新启动。 3ICMP协议 ICMP(Internet Control Message Protocol)是互联网控制报文协议。如果一个网关不能为IP分组选择路由,或者不能递交IP分组,或者这个网关测试到某种不正常状态,例如网络拥挤影响IP分组的传递,那么就需要使用ICMP协议来通知源发主机采取措施,避免或纠正这类问题。因此,ICMP协议提供的服务有:测试目的地的可达性和状态,报告报文不可达的目的地,数据报的流量控制,路由器路由改变请求等。 ICMP也是在网络层中与IP一起使用的协议。ICMP是封装在IP数据报中传输的。ICMP通常由某个监测到IP分组中错误的站点产生。从技术上说,ICMP是一个差错报告机制,当发现数据报有错时,将ICMP报文置入IP数据报内,只向该数据报的原始报源发送差错报告,由源站点执行纠错。例如,如果IP分组无法到达目的地,那么就可能使用ICMP警告分组的发送方:网络、机器或端口不可到达。ICMP也能通知发送方网络出现拥挤。 ICMP的使用主要包括以下3种情形: (1) IP分组不能到达目的地。 (2) 在接收设备接收IP分组时,缓冲区大小不够。 (3) 网关或目标主机通知发送方主机,应该选用较短的路径(如果这种路径确实存在)。 注意:ICMP数据报和IP分组一样,同样不能保证可靠传输,ICMP信息也可能丢失。为了防止ICMP信息无限地连续发送,对ICMP数据报传输的问题不能再使用ICMP传达。另外,对于被划分成报片的IP分组而言,只对偏置等于0的分组片(也就是第1个分组片)才能使用ICMP协议。 ICMP报文需要如图317所示的两级封装。每个ICMP报文都在IP分组的数据段中通过互联网传输,而IP分组本身又在帧的数据段中穿过每个物理网。 图317ICMP的两级封装 为标识ICMP,在IP分组协议段中包含的值是1。重要的是,尽管ICMP报文使用IP协议封装在IP分组中传送。但ICMP不被看成是高层协议的内容,它只是IP中要求的一部分。之所以使用IP递交ICMP报文,是因为这些报文可能要跨过几个物理网络才能够到达最终投宿。因此,ICMP报文不能依靠单个物理网络来递交。 ICMP报文有两种,一种是错误报文,另一种是查询报文。每个ICMP报文的开头都包含3个段:1字节的类型段、1字节的编码段和2字节的检验和段。8位的类型段标识报文,表示13种不同的ICMP报文中的一种。8位编码段提供关于一个类型的更多信息。16位的检验和的算法与IP头的检验和算法相同,但检查范围限于ICMP报文结构。 表38给出了ICMP 8位类型段定义的13种报文的名称,每一种都有自己的ICMP头部格式。 表38ICMP报文类型 类型段 ICMP报文类型段ICMP报文 0回送应答13时戳请求 3无法到达目的地14时戳应答 4抑制报源15信息请求(已过时) 5重导向(改变一条路径)16信息应答(已过时) 8回送请求17地址掩码请求 11IP分组超时18地址掩码应答 12一个IP分组参数有问题 作为例子,图318展示出了回送请求和回送应答报文的格式。 图318回送请求和回送应答报文 回送请求报文(类型=8)用来测试发送方通过互联网到达接收方的通信路径。在许多主机上,这个功能叫做“ping”。发送方发送一个回送请求报文,里面包含一个16位的标识符及一个16位的序列号,也可以将数据放在报文中传输。当目的地机器收到该报文时,把源地址和目的地址倒过来,重新计算检验和,并传回一个回送应答(类型=0)报文,数据段中的内容(如果有的话)也要返回给发送方。 4Telnet协议 远程登录是互联网提供的一个服务。远程登录就是用户通过网络登录到远程计算机系统中,使用远程计算机系统的资源。远程登录的根本目的在于访问远程系统的资源。Telnet(Telephone Network的缩写)是一个简单的远程终端协议。用户用Telnet就可在其本地通过TCP连接登录到远程的另一个主机上(使用主机名或IP地址)。Telnet能把用户的击键传输到远程主机,同时也能把远程主机的输出通过TCP连接返回到用户屏幕。这种服务是透明的,用户感觉到好像键盘和显示器是直接连在远程主机上的。 Telnet也使用客户/服务器模式。当用户使用Telnet登录到远程计算机时,事实上启动了两个程序,一个叫做Telnet客户程序,它运行在本地机上。另一个叫做Telnet服务器程序,它运行在远程计算机上。本地机上客户程序完成如下功能: (1) 建立与服务器的TCP连接。 (2) 将本地终端上的键盘输入传送到远程系统。 (3) 从远程系统接收输出的信息,并把该信息显示在本地终端屏幕上。 Telnet服务器程序完成如下功能: (1) 通知本地机远程计算机系统已经准备好了。 (2) 等候用户输入命令,并对用户命令作出反应(如显示目录内容,或执行某个程序等)。 (3) 远程系统将结果送回本地终端。 由此可知,远程登录过程分为3个步骤:Telnet允许某台机器上的用户与远程计算机上的登录服务器建立TCP连接;然后通过该连接将用户键入的命令直接传送到远程计算机上;远程计算机执行命令,并将结果返回到用户机器的屏幕上。 在以上过程中,输入/输出均对远程系统内核透明,远程登录服务本身对用户也是透明的,用户好像直接连入了远程系统中。这种透明性是Telnet的重要特点,也是Telnet内部机制的重要部分。 Telnet协议实现了如下三大功能: (1) 它定义了一个网络虚拟终端协议,为远程系统提供一个标准终端接口。 (2) Telnet允许客户进程与登录服务器进行选项协商,并且Telnet协议还提供一组标准选项。 (3) Telnet对称处理连接的两端。 像应用层的许多其他服务一样,远程登录也采用客户/服务器方式。远程登录的工作过程如图319所示。首先,本地机器上的Telnet客户程序与远程登录服务器建立TCP连接;然后,客户程序将从用户终端接收键盘输入命令,并将其通过TCP传送给Telnet服务器,同时它会接收服务器返回的字符数据,并通过本地操作系统将它显示在用户终端上。 图319远程登录的工作过程 5FTP协议 FTP(File Transfer Protocol)是文件传输协议。FTP是Internet上最早出现的服务功能之一,到目前为止,它仍然是Internet上最常用的也是最重要的服务之一。文件传输协议FTP是一个通用协议,用于主机间传送文件,主机类型可以相同,也可以不同;可以传送不同类型的文件,如计算机软件、声音文件、图像文件等。 FTP采用的是客户机/服务器模型。当用户启动FTP进行文件传输时,事实上启动了两个程序,一个是本地机上的FTP客户程序,它向FTP服务器提出下载文件的请求。另一个是远程计算机上的FTP服务器程序,它响应用户的请求,把用户指定的文件下载到用户的计算机上。客户机与服务器之间建立两条TCP连接,一条用于传送控制信息,一条用于传送文件内容。FTP的控制连接使用了Telnet协议,主要用于利用Telnet提供的简单身份认证系统,供远程系统鉴别FTP用户的合法性。 FTP是一种功能很强的协议,除了从服务器和客户机传送文件外,还可以进行第三方传送。这时客户机必须分别开通两个主机(比如A和B)之间的控制连接。如果客户机获准从A机传送出文件,并向B机传入文件,则A服务器程序就建立一条到B服务器程序的数据连接。客户机保持文件传送的控制权,但不参与数据传送。 6SMTP协议 SMTP(Simple Mail Transfer Protcol)是简单邮件传输协议。当邮件传输程序与远程服务器通信时,它构造了一个TCP连接并在此让进行通信。一旦连接存在,这两个程序就遵循简单邮件传输协议(SMTP),它允许发送方说明自己,指定接收方,以及传输电子函件信息。 尽管邮件传输看起来很简单,但SMTP协议仍须处理许多细节。例如,SMTP要求可靠的传递——发送方必须保存一个信息的副本,直到接收方将一个副本放至不易丢失的存储器(如磁盘)上。另外,SMTP允许发送方询问一个给定的邮箱在服务器所在的计算机上是否存在。 SMTP的最大特点就是简单。SMTP只定义了邮件如何在邮件传输系统中通过发送方和接收方之间的TCP连接进行传输,但它没有规定邮件服务器与用户之间的接口以及邮件的存储、邮件系统多长时间发送一次邮件等操作。 34其他网络通信协议 本节主要介绍一些可以与Windows操作系统一起使用的其他网络通信协议,包括IPX/SPX协议、Net BEUI协议和AppleTalk协议。 341IPX/SPX协议 IPX/SPX(Internet Work Packet Exchange/Sequences Packet Exchange)协议,又称为网际数据仓交换/序列数据包交换协议,它是在NetWare网络操作系统中使用。NetWare协议具有高度的模块化,这种模块化使之更适应于不同的硬件,且简化了其他协议并入这个协议包的任务。但Windows NT及Microsoft的其他产品不使用IPX/SPX协议组与NetWare通信。Microsoft开发了与IPX/SPX相似的版本,称作NWLink IPX/SPX协议的兼容传输协议。 1IPX/SPX协议通信协议的特点 IPX/SPX是Novell公司的通信协议集。与NetBEUI的明显区别是,IPX/SPX显得比较庞大,在复杂环境下具有很强的适应性。因为,IPX/SPX在设计一开始就考虑了多网段的问题,具有强大的路由功能,适合于大型网络使用。当用户端接入NetWare服务器时,IPX/SPX及其兼容协议是最好的选择。但在非Novell网络环境中,一般不使用IPX/SPX。尤其在Windows NT网络和由Windows 95/98组成的对等网中,无法直接使用IPX/SPX通信协议。IPX/SPX比TCP/IP更小、更快,由于具有路由选择功能,因此可以在不同网段中进行传递。 IPX/SPX协议组主要由两大协议组成,即IPX协议和SPX协议,SPX协议是IPX协议的扩展。IPX具有完全的路由功能,可用于大型企业网。它包括32位网络地址,在单个环境中允许有许多路由网络。IPX的可扩展性受到其高层广播通信和高开销的限制。服务广告协议(Service Advertising Protocol,SAP)将路由网络中的主机数限制为几千。尽管SAP的局限性已经被智能路由器和服务器配置所克服,但是大规模IPX网络的管理仍是非常困难的工作。 2IPX/SPX协议的工作方式 IPX/SPX及其兼容协议不需要任何配置,它可通过“网络地址”来识别自己的身份。Novell网络中的网络地址由两部分组成,即标明物理网段的“网络ID”和标明特殊设备的“节点ID”。其中,网络ID集中在NetWare服务器或路由器中,节点ID即为每个网卡的ID号(网卡卡号)。所有的网络ID和节点ID都是一个独一无二的“内部IPX地址”。正是由于网络地址的唯一性,才使IPX/SP具有较强的路由功能。 在IPX/SPX协议中,IPX是NetWare最底层的协议,它只负责数据在网络中的移动,并不保证数据是否传输成功,也不提供纠错服务。IPX在负责数据传送时,如果接收节点在同一网段内,就直接按该节点的ID将数据传送给它;如果接收节点是远程的(不在同一网段内或位于不同的局域网中),数据将交给NetWare服务器或路由器中的网络ID,继续数据的下一步传输。SPX在整个协议中负责对所传输的数据进行无差错处理,所以IPX/SPX协议也称为“Novell的协议集”。 Windows NT中提供了两个IPX/SPX的兼容协议,即NWLink IPX/SPX协议和NWLink Net BIOS,两者统称为NWLink通信协议。NWLink协议是Novell公司IPX/SPX协议在微软网络中的实现,它在继承IPX/SPX协议优点的同时,更适应了微软的操作系统和网络环境。Windows NT网络和Windows 95/98的用户,可以利用NWLink协议获得NETWare服务器的服务。如果用户的网络从Novell环境转向微软平台或两种平台共存时,NWLink通信协议是最好的选择。不过在使用NWLink协议时,其中,NWLinkIPX/SPX协议类似于Windows 95/98中的IPX/SPX协议兼容协议,它只能作为客户端的协议实现对NetWare服务器的访问,离开了NetWare服务器,此兼容协议将失去作用;而NWLink Net BIOS协议不但在NetWare服务器与Windows NT之间传递信息,而且能够用于Windows NT、Windows95/98相互之间的任意通信。 342Net BEUI协议 Net BEUI协议是非可路由协议,由包括Windows 2000在内的所有Microsoft网络产品支持。它主要用于小的LAN网络中(包括20~200台计算机,不需要选择路由到其他的子网),包括运行多种操作系统的计算机,基于Windows 2000的Net BEUI,叫做Net BIOS帧,它提供与已存在的使用Net BEUI协议的局域网的兼容性。 1Net BEUI协议的特点 Net BEUI由IBM于1985年开发完成,它是一种体积小、效率高、速度快的通信协议。Net BEUI也是微软最钟爱的一款通信协议,所以它被称为微软所有产品中通信协议的“母语”。微软在其早期产品,如DOS、LAN Manager、Windows 3x和Windows for Workgroup中主要选择Net BEUI作为自己的通信协议。在微软如今的主流产品,如Windows95/98和Windows NT中,Net BEUI已成为其固有的缺省协议。有人将Windows NT定位为低端网络服务器操作系统,这与微软的产品过于依赖Net BEUI有直接的关系。Net BEUI是专门为几台到百余台PC所组成的单网段部门级小型局域网而设计的,它不具有跨网段工作的功能,即Net BEUI不具备路由功能。如果用户在一个服务器上安装了多块网卡,或要采用路由器等设备进行两个局域网的互连时,将不能使用Net BEUI协议。否则,与不同网卡(每一块网卡连接一个网段)相连的设备之间及不同的局域网之间将无法进行通信。 虽然Net BEUI存在许多不尽人意的地方,但它也具有其他协议所不具备的优点,在3种通信协议中,Net BEUI协议占用内存最少,在网络中基本不需要任何配置。 2Net BEUI与Net BIOS之间的关系 Net BEUI协议中包含一个网络接口标准Net BIOS。Net BIOS是IBM在1983年开发的一套用于实现PC间相互通信的标准,其目的是开发一种仅仅在小型局域网上使用的通信规范。该网络由PC组成,最大用户数不超过30个,其特点是突出一个“小”字。后来,IBM发现Net BIOS存在许多缺陷,所以于1985年对其进行了改进,推出了Net BEUI协议。随即,微软将Net BEUI协议作为其客户机/服务器网络系统的基本通信协议,并进行了扩充和完善。最有代表性的是在Net BEUI中增加了叫做SMB(Server Message Blocks,服务器消息块)的组成部分,以降低网络的通信堵塞。 人们常将Net BIOS和Net BEUI混淆起来,其实Net BIOS只能算是一个网络应用程序的接口规范,是Net BEUI的基础,它不具备严格的通信协议功能。而Net BEUI是建立在Net BIOS基础之上的一个网络传输协议。 343AppleTalk协议 AppleTalk是苹果计算机公司在20世纪80年代早期开发的一个协议簇,它是专门为Macintosh计算机设计的。AppleTalk的目标是允许多用户共享资源,如文件和打印机。提供这些资源的设备叫做服务器,而使用这些资源的设备(如一个用户的Macintosh计算机)被称为客户机。因此,AppleTalk是分布式客户/服务器网络系统的一个早期实现版本。 AppleTalk是Apple计算机的专有协议栈,设计用来使用Apple Macintosh计算机在网络环境中共享文件和打印机,Windows 2000支持AppleTalk,它使得一台Macintosh客户机能够在可路由网络环境中与基于Windows 2000服务器进行通信,且AppleTalk是可路由协议。AppleTalk协议的特征如下: (1) 它使得Macintosh客户机可以访问运行Windows 2000的服务器。 (2) 它是可路由的,运行AppleTalk的计算机可以在一个可选取路由的网络环境中穿过网络进行通信。 (3) 它使得Macintosh客户机可以访问由运行Windows 2000的服务器提供的打印服务(服务器上安装Print Server for Macintosh)。 35Wireshark网络协议分析工具简介 Wireshark是一个网络数据包分析软件,功能只截取网络数据包,是一款免费、开源的网络抓包工具。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换,可以实时检测网络通信数据,检测其抓取的网络通信数据快照文件,通过图形界面浏览这些数据,可以查看网络通信数据包中每一层的详细内容。 1Wireshark主要应用 (1) 网络管理员用来解决网络问题。 (2) 网络安全工程师用来检测安全隐患。 (3) 开发人员用来测试协议执行情况。 (4) 用来学习网络协议。 2Wireshark主要特征 (1) 支持UNIX和Windows平台。 (2) 在接口实时捕捉包。 (3) 能显示包的详细协议信息。 (4) 可以打开/保存所捕捉的包。 (5) 可以导入/导出其他捕捉程序支持的数据包的数据格式。 (6) 可以通过多种方式过滤包。 (7) 多种方式查找包。 (8) 通过过滤以多种色彩显示包。 (9) 创建多种统计分析。 任务1IP规划与子网划分 任务目标: (1) 了解IP地址组成的基本原理。 (2) 掌握IP规划与子网划分的方法。 (3) 了解子网划分的意义与实现方式。 技能要求: (1) 能够进行常规的子网划分。 (2) 实现子网划分功能。 (3) 通过对子网网络的组建实现整个网络的资源共享。 操作过程: 1) 需求提出。 某公司网络需要进行升级,公司现有销售部、技术部、后勤部3个部门,销售部有100台PC,技术部有60台PC,后勤部有50台PC,原有网络19216810/24,先对网络进行切割,以降低广播影响,请合理规划网段。 2) 需求分析。 (1) 首先要对网络进行切割以满足100台PC的需求,具体方法是:将19216810/24网络切割为19216810/25和1921681128/25网络,IP地址19216811/25~1921681126/25分配给销售部。 (2) 将1921681128~1921681255(子网掩码255255255128)进行进一步的切割,即将1921681128~1921681191子网掩码255255255192分配给技术部;而将1921681192~1921681255子网掩码255255255192分配给后勤部。 3) 分配方案 销售部:19216810~1921681127子网掩码:255255255128 技术部:1921681128~1921681191子网掩码:255255255192 后勤部:1921681192~1921681255子网掩码:255255255192 任务小结: 通过本任务,我们已经掌握了IP规划与子网划分的方法,这对网络工程建设和后期管理有很大帮助。希望能够更多接触网络工程的实践,以提升自己的专业技能。 任务2配置和管理TCP/IP 任务目标: (1) 学会配置主机的IP地址信息。 (2) 掌握TCP/IP参数的配置方法。 技能要求: (1) 正确配置主机的IP地址信息。 (2) 能够保证主机通过企业上网。 操作过程: 1) 打开“开始”→“控制面板”→“网络和共享中心”→“网络和共享中心”界面,单击“本地连接”命令,如图320所示。 图320“网络和共享中心”界面 2) 弹出“本地连接状态”对话框,单击“属性”按钮,如图321所示。 图321“本地连接状态”对话框 3) 弹出“本地连接属性”对话框,网络适配器正确安装后,系统会自动安装与网络适配器相关的若干组件,选中“Internet协议版本4(TCP/IPv4)”复选按钮,如图322所示。 4) 弹出“Internet协议版本4(TCP/IPv4)属性”对话框,选中“使用下面的IP地址(S)”及“使用下面的DNS服务器地址(E)”单选按钮,在IP地址栏里输入管理员分配的电脑IP及相关参数,单击“确定”按钮即可,如图323所示。 图322“本地连接属性”对话框 图323“Internet协议版本4 (TCP/IPv4)属性”对话框 任务小结: 通过本任务,你已经配置好新员工电脑的TCP/IP参数,并且应该可以正常上网了。 任务3使用Wireshark工具捕获数据包 任务目标: (1) 熟悉Wireshark软件的安装和配置过程。 (2) 熟悉Wireshark软件的界面和使用方法。 技能要求: (1) 正确安装与配置Wireshark工具软件。 (2) 使用Wireshark工具软件完成数据包的捕获。 操作过程: 1安装Wireshark工具 可以从https://wwwwiresharkorg/downloadhtml下载最新版本的Wireshark,在Windows或者Linux平台上安装。 Wireshark的安装过程非常简单,Wireshark安装包含有WinPcap,所以不需要单独下载并安装WinPcap,只需要按照安装向导执行默认操作即可。图324所示是在64位Windows平台上安装Wiresharkwin64244版本的Wireshark安装引导界面,安装步骤略。 图324Wireshark的安装 2启动Wireshark 单击“开始”菜单,选择“所有程序”中的“Wireshark”,启动“Wireshark网络分析器”操作界面,如图325所示。 图325“Wireshark网络分析器”操作界面 3使用Wireshark捕获数据包 1) 选择网络接口。在启动的Wireshark操作界面上直接双击要捕获数据包的网络接口(“无线网连接”或“本地连接”),或者在主菜单上选择“捕获”→“选项”,弹出图326所示的“Wireshark捕获接口”对话框,选择要捕获数据包的网络接口,然后单击“开始”按钮,弹出图327所示的捕获界面。 图326“Wireshark捕获接口”对话框 图327捕获界面 2) 捕获数据包 (1) 用其他主机对本机IP地址使用Ping命令,或用远程主机对本机IP地址使用Ping命令,例如用Ping命令来实现对wwwbaiducom的链接,捕获到了很多与执行Ping命令无关的数据包,因此需要执行过滤,选择我们需要的数据包进行针对性分析。在Wireshark的“过滤”工具栏中输入icmp,因为Ping命令是基于ICMP实现的,按“回车”键后出现图328所示的界面。 图328用ICMP过滤后的结果 根据图328过滤后得到的数据,分析:在默认情况下,执行Ping命令,主机屏幕只会回显4个报文,为什么捕获的数据包却有8个? (2) 双击捕获到的1318号数据包,查看各协议字段,如图329所示,并根据此图分析:在默认情况下,执行Ping命令,发送数据包的大小为32b,为什么捕获到的数据包大小为74b。 图329IP地址数据包协议字段 (3) 捕获到的数据包协议由头部和数据两部分组成,真实的数据是封装在ICMP报文中的,因此需要展开ICMP协议字段对该报文进行解码,如图330所示,才能看见真实的数据内容。 图330IP数据包的解码 (4) 重新配置主机的IP地址参数,确保能接入Internet,打开浏览器,在地址栏中输入wwwbaiducom,使用Wireshark捕获数据包,如图331所示。 图331捕获的数据包 任务小结: 本任务让同学们对Wireshark抓包工具软件的功能有了一定的了解,并通过实践操作掌握了Wireshark软件的操作方法和步骤,这些有助于同学们对网络协议的理解和分析。