您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 房地产 > 计算机网络协议仿真实验
【实验六TCP传输控制协议】【实验目的】1、掌握TCP协议的工作原理;2、理解TCP协议的通信过程。【实验学时】4学时【实验类型】综合型【实验内容】1、理解TCP首部中各字段的含义及作用;2、理解三次握手的过程;3、能够分析TCP协议的建立连接、会话和断开连接的全过程;4、学会计算TCP校验和的方法;5、了解TCP的标志字段的作用。【实验原理】TCP协议是面向连接的、端到端的可靠传输协议,它支持多种网络应用程序。TCP必须解决可靠性,流量控制的问题,能够为上层应用程序提供多个接口,同时为多个应用程序提供数据,TCP也必须能够解决通信安全性的问题。1、TCP的封装IP首部TCP首部TCP数据IP数据报TCP数据报20字节20字节图6-1TCP的封装2、TCP首部格式:各字段含义:16位源端口号和16位目的端口号:端口号通常也称为进程地址。32位序号:序号用来标识从TCP发送端向TCP接收端发送的数据字节流。32位确认序列号:表示一个准备接收包的序列号。计算机网络协议仿真实验14位首部长度:首部长度指出了首部中32bit字的数目。正常的TCP首部长度是20字节。6个标志字段:URG紧急指针;ACK确认序号;PSH推标志;RST重建连接;SYN同步序号;FIN结束标志。16位窗口:TCP的流量控制由连接的每一端通过声明的滑动窗口大小来提供,窗口大小为字16位检验和:检验和字段覆盖了TCP首部和TCP数据。TCP检验和的计算方法和UDP检验和的计算方法一样,计算时需要考虑伪报头。16位紧急指针:URG标志置1时紧急指针才有效。16位源端口号16位目的端口号32位序号32位确认序号16位窗口大小4位首部长度保留(6位)ACKPSHRSTSYNFINURG16位检查和16位紧急指针选项数据1161732图6-2TCP分组格式示意图【实验步骤】注意:本实验要求服务器端启动TELNET服务。练习一:运行netstat命令1、在浏览器的地址栏输入:,在命令行下输入:netstat-n回车。2、观察TCP状态,记录LocalAddress、ForeignAddress和State。3、在浏览器的地址栏输入:,在命令行下输入:netstat-n回车。4、观察TCP状态,记录LocalAddress、ForeignAddress和State。5、再开一个命令行窗口,输入:telnetbbs.jlu.edu.cn,6、观察TCP状态,记录LocalAddress、ForeignAddress和State。7、三次记录有什么不同,为什么?8、使用带其他参数的netstat命令,查看网络状态。例如:netstat–anetstat–b练习二:利用仿真编辑器编辑并发送TCP数据包计算机网络协议仿真实验2说明:●在本实验中由于TCP连接有超时时间的限制,故仿真编辑器端和协议分析器端的两位同学要默契配合,某些步骤(如计算TCP校验和)要求熟练、迅速。●为了实现TCP三次握手过程的仿真,发送第一个连接请求帧之前,应该暂停仿真编辑器端的TCP/IP协议,否则计算机系统的网络会对该请求帧的应答帧发出拒绝响应。具体操作为在仿真端主机上运行“开始/程序/网络协议仿真教学系统基本版/TCP过滤/启动过滤”。●通过手工编辑TCP数据包实验,要求理解实现TCP连接建立、数据传输以及断开连接的全过程。在编辑的过程中注意体会TCP首部中的序列号和标志位的作用。首先选择服务器主机上的一个进程作服务器进程,并向该服务器进程发送一个建立连接请求报文,对应答的确认报文和断开连接的报文也编辑发送。其步骤如下:1、打开协议仿真编辑器,单击工具栏中的TCP协议选项2、填写该帧的以太网协议首部:⑴源MAC地址:本机MAC地址;⑵目的MAC地址:服务器的MAC地址;3、填写IP协议头信息:⑴协议字段:协议类型值为6,即上层协议类型应为TCP;⑵总长度:IP头部+TCP头部+数据长度⑶首部校验和:应用前面学到的知识进行计算;⑷源IP地址:本机IP地址;⑸目的IP地址:服务器的IP地址⑹其它字段默认4、填写TCP协议信息:⑴源端口:任意大于1024的数,不要用下拉选择;⑵目的端口:可以设80(HTTP协议);⑶序号:选择一个序号ISN(假设1942589885),以后的数据都按照这个来填写;⑸首部长度和标志位:首部长度和标志位设为5002(即长度20字节,标志SYN=1);⑹窗口大小:任意;⑻校验和:覆盖TCP首部(包含伪首部)和TCP数据两部分,计算方法同UDP协议一样。值得注意的是伪首部中的协议号是0006,而不是UDP时的0011;⑼将设置完成的数据帧复制3份;修改第二帧的TCP首部长度和标志位为5010(即标志位ACK=1),TCP层序号为1942589885+1。修改第三帧的TCP首部长度和标志位为5011(即标志位ACK=1、FIN=1),TCP层序号为1942589885+1。5、在发送该TCP连接请求之前,先运行一次ping目标服务器,目的是让目标服务器知道自己的MAC;计算机网络协议仿真实验36在工具菜单栏中选择TCP三次握手下的启动过滤,以暂停TCP/IP协议。7、点击菜单栏中的“发送”,在弹出对话框中选择发送第一个帧;8、在协议分析器一端截获相应的应答报文,可以设置协议端口(80)过滤。这里要求协议分析器一端的同学及时准确地捕获应答报文并迅速从中获得应答报文的接收字节序号,并告之仿真编辑器一端的同学;9、我们假设接收字节序号为:3246281765,修改第二帧和第三帧的TCP应答序号中的值:3246281766;10、计算第二帧的TCP校验和,发送。对服务器的应答报文进行确认;11、计算第三帧的TCP校验和,发送。断开连接,完成TCP连接的全过程;12、协议分析器一端截获相应的请求及应答报文并分析,注意观察“会话分析”中的会话过程。注意:实验结束后启动仿真编辑器端的TCP/IP协议。具体步骤是:工具—TCP三次握手暂停过滤。练习三:使用TCP连接客户端工具测试各种TCP连接建立和断开的过程1、首先选择一个TELNET服务器,并建立一个TCP连接,步骤如下:⑴选择一个TELNET服务器,比如服务器IP为172.16.1.177,启动协议分析器的捕获功能;⑵在仿真编辑器的TCP连接试图中,填写所选择服务器的IP地址及服务器进程的端口号,选择23端口,点击“连接”,建立本机与TELNET服务器的TCP连接;在TCP连接客户端程序的返回窗口中会有返回信息;图6-3TCP连接视图界面2、断开连接:⑴点击“断开”按扭,即可断开与服务器端的连接。⑵在协议分析器一端刷新截获报文,从“会话分析”中找出此连接的三次握手、服务器返回的信息、拆除连接的几个数据包;3、由1步和2步,画出TELNET连接建立、拆除连接的会话过程,标记出每步的序号、确认序号、SYN、ACK、FIN等标志位。4、选择一个服务器,并建立一个TCP连接,步骤如下:⑴在地址本中选择扫描到的服务器,点击端口扫描按钮,开始扫描该服务器开放的端口。⑵双击该主机IP,将其IP填加到服务器信息IP地址中,比如:bbs.jlu.edu.cn服务器(IP=10.100.66.92);计算机网络协议仿真实验4⑶双击端口号80,也会自动填加到服务器信息端口中。(也可以手动输入)⑷单击“连接”按钮,建立连接。图6-4TCP连接视图界面5、断开连接⑴单击“断开”按扭,即可断开与服务器端的连接。⑵在协议分析器一端截获报文,从HTTP会话中找出此连接的三次握手、拆除连接的几个数据包;6、由4和5步,画出HTTP连接建立、拆除连接的过程,标记出每步的序号、确认序号、SYN、ACK、FIN等标志位。7、首先选择一个FTP服务器,并建立一个TCP连接,步骤如下:⑴选择一个FTP服务器,比如:实验室的FTP服务器(IP=172.16.1.177);⑵填写所选择服务器的IP地址及服务器进程的端口号21,点击“连接”,建立本机与FTP服务器的TCP连接;图6-5TCP连接视图界面8、断开连接:⑴点击“断开”按扭,即可断开与服务器端的连接。⑵在协议分析器一端截获报文,从“会话分析”中找出此连接的三次握手、服务器返回的信息、拆除连接的几个数据包;9、由7和8步,总结FTP连接建立的过程和拆除连接的过程。记录序号、确认序号、SYN、ACK、FIN、PSH等标志位。10、上述3个TCP连接操作的过程可以用下图描述,写出每一步的序号和确认序号及标志位变化情况。计算机网络协议仿真实验5图6-6TCP连接过程的示意图练习四:多TELNET客户端同时运行1、在仿真编辑器端同时打开两个或更多命令提示符窗口,在这些窗口上同时运行:C:telnet服务器IP地址2、在协议分析器一端捕获数据,分析仿真编辑器发送和接收的TCP数据包。说明哪些包是属于同一TCP连接上的,你是根据什么进行区分的?练习五:察看会话状况1、在协议分析器的“会话分析”视图窗口中,查看多个TCP连接,并与自己的分析结果进行比较,注意观察标志位。2、捕获大量数据包,分析其中完整的TCP会话。【思考问题】结合实验过程中的实验结果,回答下列问题1、如果在练习二发送建立连接请求帧之前,仿真编辑器端不运行“PING服务器”命令,而又停止了仿真编辑器端的TCP/IP协议,可能出现什么情况?通过实验来验证你的答案。2、根据练习五说明:在仿真编辑器端,系统是如何把接收到的数据显示到相应的窗口的。3、根据实验中窗口的变化和确认序号,分析TCP协议所使用的滑动窗口协议机制。【实验报告要求】1、说明TCP协议三次握手的工作过程和拆除连接的过程。2、回答练习中提出的问题。3、提出新的TCP协议仿真实验的方法。【实验七TCP与UDP端口扫描】计算机网络协议仿真实验6【实验目的】1.了解常用的TCP、UDP端口扫描的原理及其各种手段2.增强网络安全意识【实验学时】建议4学时【实验类型】综合型【实验内容】1、学习TCPConnect端口扫描方法;2、学习TCPSYN端口扫描方法;3、学习TCPFIN端口扫描方法;4、学习UDP端口扫描方法;【实验原理】一.TCP/UDP报文头格式UDP报文格式见实验六(用户数据报协议UDP);TCP报文格式见实验七(传输控制协议TCP)实验原理。在TCP首部中6个标志位的用法依次为:URG紧急指针(urgentpointer)有效。ACK确认序号有效。PSH接收方应该尽快将这个报文段交给应用层。RST重建连接。SYN同步序号用来发起一个连接。FIN发端完成发送任务二.ICMP端口不可达报文ICMP端口不可达报文格式见实验四(Internet控制报文协议ICMP)实验原理。类型域为3,代码域为3表示该ICMP报文为端口不可达报文,它是ICMP目的不可达报文的一种。三.TCPconnect()扫描这种方法最简单,直接连到目标端口并完成一个完整的三次握手过程(SYN,SYN/ACK,和ACK)。操作系统提供的“connect()”函数完成系统调用,用来与每一个感兴趣的目标计算机的端口进行连接。如果端口处于侦听状态,那么“connect()”函数就能成功。否则,这个端口是不能用的,即没有提供服务。这个技术的一个最大的优点是不需要任何权限,系统中的任何用户都有权利使用这个调用。另一个好处是速度。如果对每个目标端口以线性的方式,使用单独的“connect()”函数调用,那么将会花费相当长的时间,你可以通过同时打开多个套接字,计算机网络协议仿真实验7从而加速扫描。使用非阻塞I/O允许你设置一个低的时间用尽周期,同时观察多个套接字。但这种方法的缺点是很容易被发觉,并且很容易被过滤掉。目标计算机的日志文件会显示一连串的连接和连接是出错的服务消息,目标计算机用户发现后就能很快使它关闭。四.TCPSYN扫描这种技术也叫“半开式扫描”(half-openscanning),因为它没有完成一个完整的TCP协议连接。这种方法向目标端口发送一个SYN分组(packet
本文标题:计算机网络协议仿真实验
链接地址:https://www.777doc.com/doc-3753807 .html