TCP/IP应用层协议可以分为三种类型:一类依赖于提供可靠连接的TCP协议,如远程登陆协议(Telnet)、简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)、文件传输协议(File Transfer Protocol,FTP)和超文本传输协议(Hyper Text Transfer Protocol,HTTP)等;第二类依赖于提供不可靠连接的UDP协议,如简单网络管理协议(Simple Network Management Protocol,SNMP)、简单文件传输协议(Trivial File Transfer Protocol,TFTP)等;而另一类则是既依赖于TCP协议,也依赖于UDP协议,如域名系统(Domain Name System,DNS)等。
四、实践操作
背景知识/准备工作
在本实验操作中,使用PC、交换机、路由器,规划并创建一个简单的TCP/IP网络。
通过Packet Tracer模拟器模拟TCP及UDP的通信过程,使用Wireshark网络协议分析软件分析网络设备在通信中的TCP、UDP协议网络通信过程。
本实验需要以下资源:
安装有网卡的WindowsXP系统的主机、Packet Tracer模拟器、Wireshark网络协议分析软件;
交换机两台;
路由器各两台;
以太网交叉电缆一根,直通线四根、反转线缆一根。
(一)TCP连接的建立和释放(Establishand Release TCP Connections)
TCP是面向连接的协议,在数据传输前,首先要建立连接;在数据传输过程中需要维护连接;在数据传输结束时,需要释放连接。以“模块一”中的“网络通信的过程分析”一节的实例来分析TCP的通信过程。
(1)启动Packet Tracer4.11模拟器。创建拓扑结构,接下来完成IP地址、接口配置、路由配置等操作。
(2)通过设置过滤器准备捕获网络TCP通信过程和数据流量。点击工作区右下角的模拟模式图标【Simulation】,在模拟配置面板【Simulation Panel】中,点击编辑过滤器按钮【Edit Filters】,点击【ShowAll/None】清除选择,并点击【TCP】。
(3)访问应用和服务。点击主窗口中的Server0,点击弹出的窗口中的【Config】标签,在【Config】标签中,点击左边【HTTP】工具将出现界面。点击主窗口中的PC,点击弹出的窗口中的【Desktop】标签,在【Desktop】标签中,点击【Web Browser】图标。在地址栏的URL文本框中输入“http://192.168.2.2”,并点击【Go】按钮,将浏览服务器提供的页面。
(4)捕获TCP通信过程。完成前面的操作之后,点击工作区下部的【Auto Capture/Play】
自动捕获/播放按钮,在【Simulation Panel】的【Event List】事件列表中将逐步显示TCP通信的过程。
(5)分析TCP的通信。点击事件列表中任何一个事件,再点击工作区中的图标查看设备的PDU信息。包含了源IP、目标IP、源端口和目标端口以及顺序号和确认号等信息。
TCP开始建立连接时,源主机开始发送连接同步请求,包含了建立连接所需要的连接参数协商,接收方目标主机将在接收到请求之后向源主机发送确认和连接参数同步。接下来,发送方使用确认告诉接收者双方同意建立连接之后,数据开始传输。
源主机需要与目标主机建立TCP的可靠连接时需要经过以下几个过程:初始化报文中的顺序号和确认号,如果目标主机可以完成连接,则连接需要采用三次握手的过程来建立。
在用户数据传输结束后需要释放建立的连接,参与传输的任何一方都可以释放该连接。
但在一个传输连接上,客户和服务器的数据传输是双向的,在关闭了客户进程到服务器进程的连接后,服务器到客户进程的连接可能仍然存在。如图5-54所示,释放连接需要通信的双方完成两个二次握手的步骤,完全释放连接的过程通常被称为四次握手的方式。
(二)UDP的通信过程
UDP是无连接的协议,在数据传输前,不需要建立连接;在数据传输过程中需要维护连接;在数据传输结束时,需要释放连接。以“模块一”中的“网络通信的过程分析”一节的实例来分析UDP的通信过程。
(1)启动Packet Tracer4.11模拟器。创建拓扑结构如图5-55左侧部分所示,接下来完成IP地址、接口配置、静态路由配置等操作。
(2)通过设置过滤器准备捕获网络UDP通信过程和数据流量。点击工作区右下角的模拟模式图标【Simulation】,在模拟配置面板【Simulation Panel】中,点击编辑过滤器按钮【Edit Filters】,点击【Show All/None】清除选择,并点击【UDP】。
(3)配置应用和服务。在客户端使用域名方式访问WEB服务器时,需要DNS服务器为客户端提供域名解析。本例中的服务器既提供了WEB服务功能,又提供了DNS的域解析功能。
点击主窗口中的Server0,点击弹出的窗口中的【Config】标签,点击【Config】标签中左边【DNS】工具条【Domain Name】文本框中输入自定义的域名,【IP Address】
文本框中输入WEB服务器的地址“192.168.2.2”。
点击主窗口中的PCO,点击弹出的窗口中的【Desktop】标签,点击【IP Configuration】图标,配置PC0的IP地址、子网掩码、默认网关,在【DNS Server】文本框中输入DNS服务器的IP地址,关闭IP Configuration对话框。
点击【Web Browser】图标。在地址栏的URL文本框中输入“http://www.none.com”,并点击【Go】按钮访问服务器提供的页面。主机PC0如果需要访问站点,首先获取这个站点的IP地址。所以在进行WEB访问之前需要通过DNS查询所输入的域名的IP地址。通过Packet Tracer捕获DNS的通信过程来了解UDP的通信过程。
捕获到的UDP的通讯过程列表,DNS客户端主机192.168.0.2将一个DNS名字解析请求发送给位于192.168.2.2的DNS服务器。在PC0接收到的最后一个报文中,应用层的信息是:DNS;传输层的UDP端口是源服务器提供的端口53,目标端口是本地的动态端口1029。在接收到的PDU详细信息中,可以看到DNS服务器发给客户端的响应的信息格式和字段内容。
(三)分析数据通信协议
Wireshark是一个免费的功能强大的图形用户界面的网络协议分析软件。它的主要作用是允许你从一个网络或曾经保存的捕获文件以交互方式浏览数据分组,并尝试显示数据包的尽可能详细的情况。Wireshark可能算得上是当前最好的开源网络分析软件,网络管理员用来解决网络问题检测网络安全隐患;开发人员用来测试协议执行情况。它具有以下特点:
(1)可以实时捕捉数据包,能显示数据包的详细协议信息;
(2)支持多种不同类型的网络接口(包括无线局域网接口等);
(3)通过多种方式过滤数据包并以多种色彩显示数据包;
(4)支持多种网络分析软件数据包格式,可以将捕捉文件输出为其他分析软件支持的格式;
(5)对多种协议及通信编码提供支持;
(6)可以很容易在Wireshark上添加新的协议,或者将其作为插件整合到新的程序里。
(7)不是入侵检测系统,但可能对察看发生了什么会有所帮助。
(8)仅仅是监视网络,不会发送网络数据包或做其他交互性的事情。
以上这些特点可方便快捷地进行网络的组建、设备的配置、协议的测试等网络技术相关的学习。接下来使用Wireshark在通信过程中完成分析协议。
(1)可以访问官方网站http://www.wireshark.org下载最新的软件版本及相关文档。下载后直接双击安装Wireshark,安装完成后,双击桌面上的快捷方式启动Wireshark,启动界面。
点击工具栏上的第一个按钮【】打开捕获接口对话框。选择指定的网络适配器点击按钮【】开始捕获数据。点击工具栏上的第二个按钮【】打开捕获选项对话框,选择指定的网络适配器后,点击按钮【】开始捕获数据。
在开始数据捕获之后,所有流经本地网络接口的数据通信都被记录下来。在窗口工作区中列出了捕获后的数据。如果只需要捕获指定类型的数据可以使用中的按钮设置捕获的过滤条件。如果要捕获所有的数据而只是显示指定类型的协议,只需要在工具栏的输入过滤条件。本例中输入【TCP】后点击【】。
在捕获的数据中,可以查看到每一个数据报文的详细信息,捕获到的帧的类型、帧的源地址和目标地址;IP协议的源地址和目标地址;TCP的源端口和目标端口等内容,可以点击报文前的【】显示更详细的报文信息。根据捕获的数据,可以了解TCP协议,理解捕获的TCP数据流中应用层的数据,甚至可以从数据流中查找到Telnet口令。点击【Analyze】菜单,选择【Following TCP streams】命令。
网络会话是特定端点之间的数据流,如IP会话是指两个IP地址之间的所有流量,点击【Statistics】菜单,选择【Summary】命令,可以查看保存的捕获信息文件的概要。点击【Statistics】菜单,选择【Protocol Hierarchy】命令,可以根据协议分级查看捕获的信息统计。
一、教学目标
最终目标:熟练掌握通信过程;掌握网络检测及故障排除方法。
促成目标:
1.基于OSI模型或TCP/IP模型检测网络;
2.自上而下的网络故障检测和排除方法;
3.自下而上的网络故障检测和排除方法;
4.分治法实现网络故障检测和排除。
二、工作任务
1.实现网络连接,完成协议配置;
2.分析网络故障产生原因;
3.根据故障现象收集故障特征;
4.选择故障检测和排除方法;
5.实现故障定位和排除。
三、相关知识点
(一)网络故障诊断概述
现代的网络规模越来越大,因此网络管理的问题也就日益突出。目前网络存在的最大问题就是无序管理,直接原因是网络的扩展速度越来越快,而适合网络管理的软件成本的高昂成为制约网络有效管理的重要因素。
故障管理是最基本的网络管理功能,主要包括故障诊断、故障隔离和故障排除3个方面,其中,故障诊断是网络故障管理的先决条件。在网络运行出现异常时负责检测网络中的各种故障,主要包括网络节点和通信线路两种故障。
网络故障现象可以说形形色色,没有一种检测方法或工具可以诊断出所有的网络问题。
在大型网络系统中,出现故障时往往不能确定具体故障所在的具体位置。很多时候网络中出现的故障是随机性的,需要经过很长时间的跟踪和分析,才能找到其产生的原因。这就需要有一个故障管理系统,科学地管理网络所发现的所有故障,具体记录每一个故障的产生、跟踪分析、以至最后确定并排除故障的全过程。因此,发现问题、隔离问题、解决问题是故障管理系统的主要目标。
故障管理系统的主要功能有:故障告警、事件报告管理、运行日志控制、测试管理、确认和诊断测试。
(二)网络故障诊断策略
要顺利地诊断并排除网络故障,网络工程技术人员必须掌握基本的技能和策略,同时对网络技术和协议要有深入的理解。一个有效的故障排除策略能便于发现问题和根源、缩小问题的范围并解决问题。常规故障排除过程由以下三个主要阶段组成:收集症状、隔离问题、解决问题。
该故障排除模型的核心是收集症状和任何相关的数据,从而排除非问题所在,并找出问题所在。当问题被隔离之后,就可以着手解决问题。下图描述了常规故障排除过程中的每个阶段、执行顺序及经过数次反复后的解决结果。
(1)收集症状:收集一切有价值的信息,有助于认识和理解问题,有助于识别和分析故障的现象,对故障原因、位置进行初步判断。这部分主要包括收集和存档来自网络、用户、终端系统的症状。
(2)隔离问题:根据收集的症状,某些可能性已被排除而问题依然存在,接下来应进入隔离问题阶段。可能性测试、恢复和推翻方式是可以选择的收集故障现象的方法。通常可以采用故障排除方法用于快速排除故障的可能性并对其他可能性进行测试。三种主要的故障排除方法是:自上而下、自下而上和分而治之。通过进一步测试,以缩小故障范围,确认故障的位置。