255.255.255.255为目的地址,以2483为端口,填写数据并发送。
4.查看主机B、C、D、E、F上的“UDP工具”接收的信息。 ● 哪台主机能够接收到主机A发送的UDP报文? 5.查看协议分析器上捕获的UDP报文,并回答以下问题:
● 主机A发送的报文的目的MAC地址和目的IP地址的含义是什么?
四、实验要求:
以小组形式协作完成实验。
五、实验报告要求:
在实验结论或体会中应体现对下列问题的思考: 1.为什么UDP协议的“校验和”要包含伪首部? 2.比较UDP和IP的不可靠程度? 3.思考UDP的差错处理能力。
4.在可靠性不是很重要的情况下,UDP可能是一个好的传输协议。试给出这种特种情况的一些特例。
5.UDP协议本身是否能确保数据报的发送和接受顺序?
20
实验七 传输控制协议(TCP)
一、实验目的:
掌握TCP协议的报文格式。 掌握TCP连接的建立和释放过程。 掌握TCP数据传输中编号与确认放过程。
掌握TCP协议校验和的计算方法;理解TCP重传机制。
二、实验学时:2
三、实验内容及操作步骤:
练习1 察看TCP连接的建立和释放
各主机打开协议分析器,进入相应的网络结构并验证网络拓扑的正确新,如果通过拓扑验证,关闭协议分析器继续进行实验,如果没有通过拓扑验证,请检查网络连接。
本练习将主机A、B、C、D、E、F作为一组进行实验。
1.主机B、C、D启动协议分析器捕获数据,并设置过滤条件(提取TCP协议)。
2.主机A启动TCP工具连接主机C。
(1)主机A启动“实验平台工具栏中的地址本工具”。点击[主机扫描]按钮获取组内主机信息,选中主机C,点击[端口扫描]按钮获取主机C的TCP端口列表。
(2)主机A启动“实验凭条工具栏中的TCP工具”。选中“客户端”单选框,在“地址”文本框中填入主机C的IP地址,在“端口”文本框中填入主机C的一个TCP端口,点击[连接]按钮进行连接。
3.察看主机B、C、D捕获的数据,填写下表。 字段名称 Sequence Number Acknowledgement Number ACK SYN 报文1 报文2 报文3 ● TCP链接建立时,前两个报文的首部都有一个“最大字段长度”字段,
21
它的值是多少?作用是什么?结合以太网最大帧长分析此数据是怎样得出的。
4.主机A断开与主机C的TCP连接。 5.察看主机B、C、D捕获的数据,填写下表。 字段名称 Sequence Number Acknowledgement Number ACK SYN 报文1 报文2 报文3 ● 结合步骤3、5所填的表,理解TCP的三次握手建立连接和四次握手释放连接过程,理解序号、确认序号等字段在TCP可靠连接中所起的作用。 练习2 编辑并发送TCP数据包
本练习将主机A和B作为一组,主机C和D作为一组,主机E和F作为一组,现仅以主机A、B所在组为例,其他组的操作参考主机A、B所在组的操作。
在本实验中由于TCP连接有超时时间的限制,故协议编辑器和协议分析器的两位同学要默契配合,某些步骤(如计算TCP校验和)要求熟练、迅速。
为了实现TCP三次握手过程的仿真,发送第一个连接请求帧之前,编辑端主机应该使用TCP屏蔽功能来防止系统干扰(否则计算机系统的网络会对该请求帧的应答帧发出拒绝响应)。
通过手工编辑TCP数据包实验,要求理解实现TCP连接建立、数据传输以及断开连接的全过程。在编辑过程中注意体会TCP首部中的序列号和标志位的作用。
首先选择服务器主机上的一个进程作服务器进程,并向该服务器进程发出一个建立连接请求报文,对应答的确认报文和断开连接的报文也编辑发送。其步骤如下:
1.主机B启动协议分析器捕获数据,设置过滤条件(提取HTTP协议)。 2.主机A上启动协议编辑器,在界面初始状态下,程序会自动新建一个单帧,可以利用协议编辑器打开时默认的以太网帧进行编辑。
3.填写该帧的以太网协议首部,其中:
源MAC地址:主机A的MAC地址 目的MAC地址:服务器的MAC地址 协议类型或数据长度:0800(IP协议) 4.填写IP协议头信息,其中:
高层协议类型:6(上层协议为TCP)
22
总长度:40(IP首部+TCP首部) 源IP地址:主机A的IP地址
目的IP地址:服务器的IP地址(172.16.1.100) 其它字段任意。
应用前面学到的知识计算IP首部校验和。 5.填写TCP协议信息,其中:
源端口:任意大于1024的数,不要使用下拉列表中的端口 目的端口:80(HTTP协议)
序列号:选择一个序号ISN,以后的数据都根据它来填写 确认号:0
首部长度:50(长度20字节) 标志位:02(标志SYN=1) 窗口大小:任意 紧急指针:0
使用协议编辑器的“手动计算”方法计算校验和;再使用协议编辑器的“自动计算”方法计算校验和。将两次计算结果相比较,若结果不一致,则重新计算。
● TCP在计算校验和时包括哪些内容? 6.将设置完成的数据帧复制3份。
修改第二帧的TCP层的“标志”位为10(即标志位ACK=1)。TCP层的“序列号”为1942589885+1。
修改第四帧的TCP层的“标志”位为11(即标志位ACK=1、FIN=1),TCP层的“序列号”为1942589885+2。
修改第四帧的TCP层的“标着”位为10(即ACK=1),TCP层的“序列号”为1942589885+2。
7.在发送该TCP连接请求之前,先ping一次目标服务器,让目标服务器知道自己的MAC地址。
8.启动“实验平台工具栏中的启动屏蔽”,为TCP/IP协议栈过滤掉收到的TCP数据。
9.点击开始菜单栏中的[发送]按钮,在弹出对话框张选择发送第一帧。 10.在主机B上捕获相应的应答报文,这里要求协议分析器一端的同学及时准确地捕获应答报文并迅速从中获得应答报文的接收字节序列号,并告知协议编辑器一端的同学。
11.假设接收字节序号为:3246281765,修改第二帧和第三帧TCP层的“确
23
认号”的值为:3246281766。
12.计算第二帧的TCP校验和,将该帧发送。对服务器的应答报文进行确认。
13.计算第三帧的TCP校验和,将该帧发送。
14.在主机B上观察应答报文,要及时把最后一帧“序列号”告知协议编辑器一端的同学。
15.修改第四帧的TCP“确认号”为接收的序列号+1(即3246281767)。 16.计算第四帧的TCP校验和,将该帧发送。断开连接,完成TCP连接的全过程。
17.协议分析器一端截获相应的请求及应答报文并分析,注意观察“会话分析“中的会话过程。
18. 编辑端主机启动“实验平台工具栏中的停止屏蔽“,恢复正常网络功能。
练习3 TCP的重传机制
本练习将主机A和B做为一组,主机C和D作为一组,主机E和F作为一组。现仅以主机A、B所在组为例,其他组的操作参考主机A、B所在组的操作。
1.主机B上启动“实验平台工具栏中的TCP工具“,作为服务器,监听端口设置为2483。
2.主机B启动协议分析器开始捕获数据并设置过滤条件(提取TCP协议)。 3.主机A启动TCP工具连接主机B。
(1)主机A启动“实验平台工具栏中的TCP工具”。 (2)选中“客户端”单选框。
(3)在“地址”文本框中填入主机B的IP地址。
(4)在“端口”文本框中填入主机B的TCP监听端口(2483)。 (5)点击[连接]按钮进行连接。 4.主机A向主机B发送一条信息。
5.主机B启动“实验平台工具栏中的启动TCP屏蔽”,过滤掉接收到的TCP数据。
6.主机A向主机B在发送一条信息。
7.主机B刷新捕获显示,当发现“会话分析实图”中有两条以上超时重传报文后,启动“实验平台工具栏中的停止TCP屏蔽”,恢复正常网络功能。
8.主机A向主机B在发送一条信息,之后断开连接。
9.主机B停止捕获数据。依据“会话分析示图”显示结果,绘制本练习的数据交互图。
24