logo资料库

计算机网络实验报告-实验七-分析TCP协议数据报格式.doc

第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
资料共6页,全文预览结束
实验课程名称 计算机网络实验报告 实验项目名称 分析 TCP 协议数据报格式 专 业 班 级 电子信息科学与技术 08 级 1 班 学 生 姓 名 学 号 指 导 教 师 理 学 院 实验时间:2010 年 5 月 25 日 1 / 6
一、 实验名称 实验七 分析 TCP 协议数据包格式 二、 实验目的 掌握 TCP 协议的作用和格式; 分析数据报各字段的含义及作用; 理解三次握手的过程; 学会计算 TCP 校验和的方法; 了解 TCP 的标志字段的作用。 三、 实验器材 计算机及以太网环境。 四、 实验内容(步骤) 1. 打开“命令提示符”窗口,输入:netstat –n 回车。 2. 观察 TCP 状态,记录 Local Address 、Foreign Address 和 State。 可以通过上图观察到,现在的 TCP 状态为空。 3. 在浏览器输入:www.zhjnc.edu.cn ,在“命令提示符”窗口输入:netstat –n 回车。 4. 观察 TCP 状态,记录 Local Address 、Foreign Address 和 State。 通过上图可以观察到,在 TCP 协议下,本地地址套接字、外部地址套接字、状态,依 次列于图中。 5. 比较两次记录的不同之处。 第一次由于未建立任何连接,因此没有任何 TCP 信息,而第二次则成功建立了 TCP 连 接,因此有相应的 TCP 连接信息得到。 6. 打开 Wireshark,选择菜单命令“Capture”“Interfaces…”子菜单项。弹出“Wireshark: Capture Interfaces”对话框。单击“Options”按钮,弹出“Wireshark: Capture Options” 对话框。单击“Start”按钮开始网络数据包捕获。 2 / 6
7. 单击“Stop”按钮,中断网络协议分析软件的捕获进程,主界面显示捕获到的 TCP 数 据包。 下面对 94 帧的 TCP 数据包进行分析: 由上图可以知道,TCP 协议包括 源端口(2 字节):http80(0050) 目的端口(2 字节)49811(c293) 序号(4 字节):1(相对序号) 期望得到的下一分组序号:518 确认号(4 字节): 首部长度:20 字节 标志(2 字节):0x18(推送,确认) 3 / 6
数据偏移(4 位) 保留(4 位) 紧急 URG:0 确认 ACK:1 推送 PSH:1 复位 RST:0 同步 SYN:0 终止 FIN:0 窗口(2 字节):7168 检验和:0x66cb 序号确认分析:正在网络中传输的序号 517 TCP 数据报数据分组 517 字节 经过上述分析可知,捕获到的 TCP 数据包是符合 TCP 协议格式的,TCP 协议格式如下: TCP 协议是面向连接的、端到端的可靠传输协议,它支持多种网络应用程序。TCP 必 须解决可靠性,流量控制的问题,能够为上层应用程序提供多个接口,同时为多个应用程序 提供数据,TCP 也必须能够解决通信安全性的问题。 1. TCP 的封装 2. TCP 首部格式 0 16 31 源 端 口(16 比特) 目 的 端 口(16 比特) HLEN (4 比特) 保留 (6 比特) U R G A C K P S H 校 验 和(16 位) 序 号 (32 比特) 确 认 号 (32 比特) R S T S Y N F I N 窗 口 大 小(16 比特) 首部 紧急指针(16 比特) 选 项 与 填 充(≤40 字节) 数 据(必须填充成 16 比特的整数倍) TCP 段格式  源端口和目的端口字段——各占 2 字节。端口是运输层与应用层的服务接口。 运输层的复用和分用功能都要通过端口才能实现。  序号字段——占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个 序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。  确认号字段——占 4 字节,是期望收到对方的下一个报文段的数据的第一个字 4 / 6
节的序号。  HLEN 字段——占 4 bit,它指出首部长度,单位为:32 bit 字(4 字节)。正常 的 TCP 首部长度是 20 字节。  6 个标志字段——占 6 bit。紧急比特 URG:当 URG  1 时,表明紧急指针字段 有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。 确认比特 ACK:只有当 ACK  1 时确认号字段才有效。当 ACK  0 时,确认 号无效。 推送比特 PSH (PuSH):接收 TCP 收到推送比特置 1 的报文段,就尽 快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。复位比 特 RST (ReSeT):当 RST  1 时,表明 TCP 连接中出现严重差错(如由于主机 崩溃或其他原因),必须释放连接,然后再重新建立运输连接。 同步比特 SYN : 同步比特 SYN 置为 1,就表示这是一个连接请求或连接接受报文。 终止比特 FIN (FINal):用来释放一个连接。当 FIN  1 时,表明此报文段的发送端的数据 已发送完毕,并要求释放运输连接。  窗口字段 —— 占 2 字节。窗口字段用来控制对方发送的数据量,单位为字节。 TCP 连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对 方以确定对方的发送窗口的上限。  检验和 —— 占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在 计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。  紧急指针字段 —— 占 16 bit。紧急指针指出在本报文段中的紧急数据的最后一 个字节的序号。 8. 观察协议树区中 TCP 数据包结构,是否符合 TCP 报文格式。从“会话分析”中找出此 连接的三次握手的数据包,对此数据包进行分析。记录标志字段的值。 从以上观察可知,TCP 数据包结构符合 TCP 报文格式。为了实现数据的可靠传输,TCP 要在应用进程间建立传输连接。TCP 使用三次握手建立连接。 从上图中可以看出,第一次握手,SYN=1,Seq=0(相对序号); 建立连接前,服务器端首先被动打开其熟知的端口(上图为 80 端口),对端口进行监听。 当客户端要和服务器建立连接时,发起一个主动打开端口的请求(临时端口)。然后进入三 次握手过程: 第一次握手:由要建立连接的客户向服务器发出连接请求段,该段首部的同步标志 SYN 被 置为 1,并在首部中填入本次连接的客户端的初始段序号 SEQ(上图 SEQ=acbdbbee,相对 序号为 0)。 5 / 6
第二次握手,SYN=1,ACK=1(相对确认序号),Seq=0(相对序号); 第二次握手:服务器收到请求后,发回连接确认(SYN+ACK),该段首部中的同步标 志 SYN 被置为 1,表示认可连接,首部中的确认标志 ACK 被置为 1,表示对所接收的段的 确认,与 ACK 标志相配合的是准备接收的下一序号(ACK=acbdbbef),该段还给出了自己 的初始序号(例如 SEQ=1663aa4b)。对请求段的确认完成了一个方向上连接。 第三次握手,ACK=1(相对确认序号),Seq=0(相对序号), 第三次握手:客户向服务器发出的确认段,段首部中的确认标志 ACK 被置为 1,表示 对所接收的段的确认,与 ACK 标志相配合的准备接收的下一序号被设置为收到的段序号加 1(ACK =1663aa4c)。完成了另一个方向上的连接。 6 / 6
分享到:
收藏