logo资料库

TCP协议分析实验报告.doc

第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
资料共7页,全文预览结束
TCP 协议分析 实验目的 1. 掌握 TCP 协议的首部格式。 2. 掌握 TCP 协议的序号确认机制。 3. 掌握 TCP 协议的流量控制机制。 4. 学会协议分析软件发送自定义数据包的方法。 实验原理 1. TCP 协议是面向连接服务和提供可靠数据传输的协议,通过抓包分析 TCP 如 何建立连接,数据传输,释放连接来分析 TCP 协议。 2. TCP 协议是通过三次握手来建立连接,通过序列号和确认号来维护双方的通 信,通过发送窗口的大小来控制流量。 3. 通过多台电脑建立一台电脑的 TCP 连接,可以分析流量控制的实质。 实验步骤 1.在 IP 地址为 192.168.0.250 的主机 A 的命令行窗口里输入 telnet 218.65.113.46 会发现连接不上,因为 23 号端口没有打开。打开 IP 地址为 218.65.113.46 的主机 B 的 浏 览 器 和 主 机 A 的 抓 包 软 件 Irris , 然 后 在 主 机 A 命 令 行 输 入 telnet 218.65.113.46 80,过滤 TCP 及 80,23 端口,捕获 TCP 协议数据包,并分析。 (1) 建立连接的第一帧 第三次握手 TCP 的三次握手。 第二次握手 源端口为 1775 目标端口为 80 序列号占 4 个字节 确认号为 0 首部长度为 7,以四个字节为一个单位 ACK=0 和 SYN=1 表示建立连接的第一帧 初始化接收窗口大小为 16384 SYN=1 表示请求建立连接 TCP 首部总长为 20B,还有 8B 为 TCP 选项,包含 MSS(最大报文段长度)
这是第一次握手: IP 地址为 192.168.0.250 的主机 A 向 IP 地址为 218.65.113.46 的主机 B 发送连接请求,A 随机初始化自己的序列号 50596762,确认号为 0, 初始化 A 的接收窗口大小为 16384,发送 SYN=1,此时 ACK=0。 (2) 与第一帧的源端口和目的端口相反,建立 TCP 连接的套接字 初始化序列号 确认号为 A 第一次握手的序号加 1,即期望对方发送的 下一个数据的第一个字节的编号。 对对方确认,ACK 表示确认号有效 SYN=1 同时希望对方给自己确认 TCP 接收缓存大小,发送方 A 的发送窗口不能超过 24820 字节(隐含了 TCP 流量控制机制) 校验和包括源 IP,源端口号 TCP 的首部数据和 IP 的源 IP,目 标 IP 协议字段(12 字节的伪首部) 这是第二次握手: B 随机初始化自己的序列号 804733534,确认号为 A 第一次 握手的序号加 1(期望对方发送的下一个数据的第一个字节的编号)做确认,为 50596763,初始化 B 的接收窗口大小,发送 SYN=1,ACK。 (3) 该帧为纯确认帧,故序列号为上一帧的确认号。 确认号为第二次握手的序号加 1 ACK=1,SYN=0 表示该帧为纯确认帧, 没有数据。 传输窗体的大小控制流量。
第三次握手: 主机 A 对主机 B 做确认,SYN=0,ACK=1,序列号为上一帧的 确认号,确认号为 B 第二次握手的序号加 1。 (4)第 4 至 9 帧。 第四帧为 IP 地址为 192.168.0.250 的主机 A 向 IP 地址为 218.65.113.46 的主机 B 发送的帧 该帧为 A 发送数据的第一帧,序列 号和确认号不变。 表示传输数据,并且把数据往应用 层提交。PSH=1,TCP 不再等到整 个数据都填满后了再向上交付 校验和提供可靠传输。 传输数据协议 (5)第五帧为 B 向 A 发送的:
B 的序列号为 804733535 A 传了数据 455B,B 对 A 的确认号是期望确认。 该帧为单纯的确认,没传数据 (6)为 B 向 A 发送的第六帧同理 (7)第 7 帧还是 B 向 A 发送的:
B 的序列号为 804733535+1460,同时 B 向 A 传了 1460 个单位数据。 (8)第八帧为 A 向 B 发送的: A 的序列号为上一次的 A 的系列号 50596763+已经传了 455 个单 B 传了 1460B 数据,期望确认,B 向 A 传了 1460 个单位数据。 (B 的序列号 804734995+1460) (9)第九帧为 B 向 A 发送的:
B 向 A 单纯确认,没传数据 如此中间相互传数据,不一一列举。 (10)再例如第 375 帧为 218.65.113.46 向 192.168.0.250 发送的帧 FIN 表示正常释放。 (11)由于有条件的抓包,有些特殊情况不特别列出来分析。 TCP 协议有正常断开连接和非正常断开连接。RST 为 1 表示为异常断开连接。 RST 复位重置标记,表示 TCP 连接中出现严重错误,必须强行释放连接。 注意:在 TCP 中,特殊报文(SYN=1,FIN=1,RST=1)的确认号加 1。 实验分析 (1)TCP 协议是面向字节的。TCP 将所要传送的报文看成是字节组成的数据流, 并使每一个字节对应于一个序号。在连接建立时,双方要商定初始序号。TCP 每
次发送的报文段的首部中的序号字段数值表示该报文段中的数据部分的第一个 字节的序号。 TCP 的确认是对接收到的数据的最高序号表示确认,表示接收端 期望下次收到的数据中的第一个数据字节的序号。TCP 是期望确认和累积确认。 (2)TCP 属于 SR(选择性重传),即发送方某个分组出错或丢失只重传该分组。 接收方增加接受窗口(接受缓存),若收到的分组在接收窗口内且乱序,缓存该 分组,等到分组按序后一起提交,接受窗口的大小一般等于发送方窗口的大小。 (3)TCP 建立连接的过程称为 3 次握手,第一次握手(syn=1,ack=0,sn1=随机 数,ackno=0),第二次握手(syn=1,ack=1,sn2=随机数,ackno=sn1+1),第三次握手 只是对第二次作确认。TCP 释放连接的过程置 FIN 标记为 1。 (4)TCP 的流量控制指的是接收方明确地通过接收窗口大小,限制发送方发送 窗口的最大值,从而达到接收方能够拥有足够的缓存接收数据的目的。TCP 流量 控制:发送端如果发送的数据很小,第一次会照常发送,后面的会等待(这里 windows 是 200ms)等发送数据较大时再放入 TCP 段中发送。可以在命令行输 入 telnet IP 地址 21,IP 地址主机打开 ftp 服务器,连接上后,输入 ab,会分别 打包 a,b 发送个对方。如果快速的输入 abc,则第一次发 a,第二次就会有 bc 一起发送出去。(这里不抓包做实验分析。)
分享到:
收藏