TCP协议分析.doc
TCP协议分析一、 实验目的 1. 对tcp的3次握手做详细分析2. 对tcp的流量控制做详细分析3. 对tcp的序号确认做详细分析二、 实验原理1. tcp报文格式2. TCP连接的建立TCP是面向连接的协议。在面向连接的环境中,开始传输数据之前,在两个终端之间必须先建立一个连接。对于一个要建立的连接,通信双方必须用彼此的初始化序列号seq和来自对方成功传输确认的应答号ack(指明希望收到的下一个八位组的编号)来同步,习惯上将同步信号写为SYN,应答信号写为ACK。 整个同步的过程称为三次握手,下图说明了这个过程:3. TCP连接的释放对于一个已经建立的连接,TCP使用四次握手来结束通话(使用一个带有FIN附加标记的报文段)4. TCP重传机制TCP每发送一个报文段,就对这个报文段设置一次计时器。只要计时器设置的重传时间到期,但还没有收到确认,就要重传这一报文段。三、 实验步骤1、实验准备1)打开虚拟机设置ip为172.16.6.32) 设置VM1 ip为172.16.6.23) 互ping及选端口虚拟机ping主机主机ping虚拟机虚拟机中输入Netstat an对此,我选择135端口4) 对wireshark进行准备工作2、实验步骤1)通过telnet 172.16.6.3 135向虚拟机发包抓到三帧握手的包第一帧主机向虚拟机发请求报文首部长度header legth:20字节主机随机开放的端口(源端口):2328虚拟机接收端口(目标端口号):135,序号默认为0,实际为把ba27 2b7d校验和:Syn=1,seq=0,ack=0;滑动窗口大小:65535最大字段:1460字节第二帧虚拟机向主机确认接收方当前可用缓存窗口大小64240,表示当前最多可发送64240个字节Syn和ack都为1,确认号变为1第三帧主机向虚拟机确认Syn=0,ack=1,seq=1,序列号为1主机窗口大小为46537在telnet中输入字母b后,得到第四帧和第五帧第四帧(主机向虚拟机发包)序列号seq=1,期待得到序列号为2下一帧的报文窗口大小为46537确认号ack为1数据的ascii码为62(b)第五帧 (虚拟机向主机发确认包)序列号seq为1,确认号ack为2,虚拟机当前可用缓存窗口大小64239,第二帧时窗口大小为64240,现在为64239因为接收到了一个数据,窗口大小-1.输入一串数据后得到12帧从的六帧开始序列号seq为2,确认号ack为1,期待得到序列号为3下一帧的报文主机当前可用缓存窗口大小64237,第七帧 虚拟机向主机确认序列号seq为1,确认号ack为3,虚拟机当前可用缓存窗口大小64238,第5帧时窗口大小为64249,现在为64238因为接收到了一个数据,窗口大小-1.第17帧虚拟机向主机确认序列号seq为1,确认号ack为8,虚拟机当前可用缓存窗口大小64233,第7帧时窗口大小为64248,现在为64233因为接收到了五个数据,窗口大小-5断开连接 收到四帧挥手的包第18帧:主机向虚拟机发送断开请求,序号8,确认号1第19帧:虚拟机单独向主机发送断开响应报文,序号1,确认号9第20帧:虚拟机向主机发送断开请求,序号1,确认号9第21帧:主机向虚拟机发送断开响应报文,序号9,确认号2TCP协议分析结束