实验六TCP报文段的格式及协议分析

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验六TCP报文段的格式及协议分析【实验目的】1、分析TCP报文段的格式;2、了解TCP报文段首部结构以及各个字段的内容及其作用;3、通过观察TCP协议的交互掌握TCP连接建立、数据传输、连接释放的过程。【实验内容】1、分析TCP报文段的结构,熟悉各个字段的内容、功能、格式和取值范围;2、编辑TCP报文段首部各字段的内容;3、单个或批量发送已经编辑好的TCP报文段;4、分析TCP协议的交互过程。【实验原理】TCP是TCP/IP体系中面向连接的运输层协议,提供全双工的和可靠交付的服务。TCP报文段的格式如下图所示:目的端口数据偏移检验和选项和填充源端口序号紧急指针窗口确认号保留FIN32bitTCP首部数据20字节SYNRSTPSHACKURG源端口和目的端口:各占2个字节,是运输层与应用层的服务接口。序号:占4个字节。TCP连接传送的数据流中的每一个字节都被编上一个序号。首部中序号字段的值指的是本报文段所发送的数据的第一个字节的序号。确认号:占4个字节,是期望收到对方下一个报文段的数据的第一个字节的序号。数据偏移:占4bit,它指出报文段的数据起始处距离TCP报文段的起始处有多远。实际上就是TCP报文段首部的长度。保留:占6bit,保留为今后使用。紧急比特URG:当URG=1时,表明紧急指针有效。它告诉系统报文段中有紧急数据,应尽快传送。确认比特ACK:ACK=1时确认号字段才有效,ACK=0时确认号字段无效。推送比特PUSH:接收方接收到PUSH=1的报文段时会尽快的将其交付给接收应用进程,而不再等到整个接收缓存都填满后再向上交付。复位比特RST:当RST=1时,表明TCP连接中出现严重差错,必须释放连接。复位比特还用来拒绝一个非法的报文段或拒绝打开一个连接。同步比特SYN:在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文段。对方若同意建立连接,应在响应的报文段中使SYN=1和ACK=1。因此,SYN=1就表示这是一个连接请求或连接接收报文。终止比特FIN:当FIN=1时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。窗口:占2个字节,用来控制对方发送的数据量,单位是字节,指明对方发送窗口的上限。校验和:占2个字节,校验的范围包括首部和数据两个部分,计算校验和时需要在报文段前加上12字节的伪首部。紧急指针:占2个字节,指出本报文段中紧急数据最后一个字节的序号。只有当紧急比特URG=1时才有效。选项:长度可变。TCP只规定了一种选项,即最大报文段长度MSS(MaximumSegmentSize)。TCP连接建立的过程如下图所示:SYN,SEQ=x主机BSYN,SEQ=y,ACK=x1ACK=y1被动打开主动打开确认确认主机ATCP连接释放的过程如下图所示:FIN,SEQ=xACK=x1ACK=y1FIN,SEQ=y,ACK=x+1应用进程释放连接通知主机应用进程应用进程释放连接主机B主机A【实验步骤】练习一:分析TCP报文段的格式1、运行报文仿真编辑器;2、单击工具栏上的“新建报文”按钮,在弹出的“新建报文”对话框中选择报文类型为“TCP”,单击“确定”按钮,报文仿真编辑器自动构造一个TCP报文段;3、也可以通过单击工具栏上“打开”按钮,选择安装目录下Data目录中报文仿真编辑器存档文件:tcp.pef,报文仿真编辑器显示预存的TCP报文段;4、选中报文列表框中的一条记录,报文仿真编辑器中间部分自动显示此条报文记录的协议结构树;5、选中协议结构树中的“TCP首部”结点,报文仿真编辑器右侧部分自动显示当前TCP报文段首部各个字段的内容;6、查看TCP报文段首部中各个字段的结构和内容,分析各个字段的含义。练习二:编辑TCP报文段格式中的字段内容1、在报文仿真编辑器的右侧修改TCP报文段的各个字段的内容;2、单击“保存”按钮;3、查看修改后的字段内容。练习三:发送和接收TCP报文段序列1、运行报文解析器;2、单击报文解析器工具栏上的“开始捕获”按钮,报文解析器开始捕获数据报;3、单击报文仿真编辑器工具栏上的“发送报文”按钮,报文仿真编辑器弹出“发送成功”对话框;4、单击报文解析器工具栏上的“停止捕获”按钮,在报文解析器左侧报文列表框中查看所接收到的报文仿真编辑器发出的报文;5、选中其中一条报文记录,报文解析器中间部分自动显示此条报文记录的协议结构树,比较是否与发送的报文相同。练习四:TCP协议分析1、单击报文仿真编辑器工具栏上的“打开”按钮,选择安装目录下Data目录中报文仿真编辑器存档文件:tcp.pef,报文仿真编辑器显示预存的TCP报文段;2、单击报文解析器工具栏上的“开始捕获”按钮,报文解析器开始捕获数据报;3、单击报文仿真编辑器工具栏上的“发送报文”按钮,报文仿真编辑器弹出“发送成功”对话框,发送出报文列表框中的报文;4、可以看到报文解析器接收到报文仿真编辑器发出的报文,单击报文解析器工具栏上的“停止捕获”按钮,停止捕获报文;5、单击工具栏上的“协议分析”按钮,报文解析器弹出协议分析对话框。在“协议”下拉列表中选择“TCP”,对话框下部的列表框中显示存在的TCP连接。选择一个TCP连接,单击“确定”按钮;6、报文解析器左侧的报文列表中显示这一次TCP连接中所有的报文,右侧以图形的方式显示该TCP连接的交互过程。选中左侧报文列表中的一条记录,报文解析器中部显示该报文的协议结构树,右侧的协议交互图中以蓝色突出显示该TCP报文段;7、在左侧的报文列表中选择不同的TCP报文段,观察协议交互的进行过程,以及TCP首部各个字段值的变化。【实验报告要求】1.记录实验数据2.分析实验结果例:MAC帧首部目的地址:FF-FF-FF-FF-FF-FF源地址:00-01-6C-E9-0D-2C类型:ARPARP硬件类型:以太网协议类型:IP硬件地址长度:6协议地址长度:6操作:ARP请求源硬件地址:00-01-6C-E9-0D-2C源协议地址:192.168.1.6目的硬件地址:00-00-00-00-00-00目的协议地址:192.168.1.2(16进制显示框)00000000:FFFFFFFFFFFF0001–6CE90D2C0806000100000010:0800060400010001–6CE90D2CC008010600000020:000000000000C0A8–0102其中“类型:ARP”对应值为08063.未知数据包的分析本部分通过Sniffer软件捕获本机所在计算机网络中的未知数据包,要求对所捕获的数据包进行分析。数据包一如下(下图截取了该数据包16进制表中的前10行):未知数据包一的16进制值根据以下举例,分析上述捕获的数据包为一个什么协议的请求报文。未知数据包二如下:未知数据包二的16进制值分析如下:第一行前12个字节为协议MAC帧首部中的目的硬件地址和源地址。紧随其后的两个字节是MAC帧首部中的类型字段,标识从上层接收到什么类型的协议,“0806”表示从上层收到的是类型的数据报。则接下来的数据就代表该数据报的内容。“0001”表示硬件类型为以太网,“0800”表示采用的协议类型为IP类型,“0604”分别表示硬件地址长度为6字节及协议地址长度为4字节,“0001”表示执行ARP请求操作,“0013d4ae4426”“3b4f129b”表示了源硬件地址,源协议地址(59.79.18.155)“000000000000”“3b4f12fe”表示了目的硬件地址和目的协议地址(59.79.18.254)。剩余的0均为填充数据。综上得出,该数据包为一个什么协议的请求报文。

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功