当前位置: 首页 > news >正文

TCP传输控制协议分析

 实验四   TCP传输控制协议分析

一、实验目的

掌握TCP协议的报文形式;掌握TCP连接的建立和释放过程;掌握TCP数据传输中编号与确认的过程;理解TCP重传机制。

二、准备工作

本实验需要下载安装抓包工具软件(SnifferWinshairk或网路岗或其它)。

三、实验内容及步骤

步骤一:设定实验环境
安装serv-u

步骤二:查看分析TCP三次握手

1、在PC2中安装FTP服务端程序。

2、在PC1中开启协议分析软件,进行数据包抓包。

3、在PC1中的协议分析软件中利用工具栏中的TCP连接工具对PC2发起连接

IP地址中填入PC2地址192.168.168.31,端口填入FTP服务端口21,然后点击连接。

分析PC2中捕获到的三次握手报文。

 

 

 

TCP三次握手过程中第一个报文

 

TCP三次握手过程中第二个报文

 

 

 

 

 

 

TCP三次握手第三个报文

 

步骤三:查看分析TCP确认机制

1、在PC1中开启协议分析软件进行数据包捕获。

2、在PC1协议分析软件工具栏中的TCP连接工具中连接到PC2FTP服务器并发送dir命令。

3、分析捕获到的FTP数据包

步骤四:查看TCP连接超时重传过程

1、查看PC1ARP缓存记录,确保有PC2ARP记录,如下图所示。

2、将PC2从网络中断开,确保PC2不会对PC1发送的TCP连接请求进行回应。

 

 

 

3、在PC1中开启协议分析软件,进行数据包捕获。

4、在PC1中用工具栏中的TCP连接工具对PC2FTP服务发起连接,如下图所示。

 

5、在PC1中分析捕获的TCP数据段。

 

 

四、实验数据分析

       从图中我们可以看出,首先由我ip192.168.168.30,向ftp服务器的ip192.168.168.31发出请求,192.168.168.31接到192.168.168.30请求后发出回应,尔后192.168.168.30在发出确认信息,192.168.168.30192.168.168.31就可以通信。

       在图中,可知

       192.168.168.30端口是55166

       192.168.168.31端口是21

       在前面的“三次握手”后192.168.168.30可以登录到192.168.168.30。由于我们用的是IE浏览器登录就可以不要dir打开命令了。在目录中我们可以看到FTP空间里的文件,可以复制到192.168.168.30上,此时是通过TCP协议来完成的。

       由于我们没有使用FTP工具登录,所以下载文件是不能进行断点或超时重传的实验,不过我们可以通过别的下载软件例如QQ旋风。我们首先联网下载一个文件,下载到一定程度后断网,就可以抓包到qq旋风不断发出请求连接,但一定数据后(可以自己调整请求次数)就停止发出请求。

 

五、实验总结

       本次实验是新加的,不过难度很大。首先要自己搭建FTP空间。由于条件有限,我只能自己搭建了一个让同学来访问。当然这样是有缺点的就是我不能分析ftp的网络协议和数据。

不得不让同学帮我截图。自己搭建的FTP空间有很多限制比如不能使用迅雷、快出、QQ旋风等等下载工具,所以不能做到断点和重传。


本文转自 梦朝思夕 51CTO博客,原文链接:http://blog.51cto.com/qiangmzsx/800005


相关文章:

  • linux下安装java,ant,maven,git
  • bootstrap-徽章-链接
  • centos下编译安装nginx,并增加nginx_upstream_check_module模块
  • LOD层次细节算法-大规模实时地形的绘制
  • oracle10g创建用户
  • 【体系结构】MySQL 日志文件--慢查询日志
  • java注解[转]
  • Notepad++使用技法
  • 12月21日 特殊权限与软、硬链接文件
  • jquery.pagination.js分页插件的运用
  • 宋体、变量-Oracle存储过程基本语法-by小雨
  • Allot流量控制系统软件升级过程
  • FTP服务器配置与管理(2) 创建FTP站点
  • 局域网介质访问控制方法
  • javascript中toString跟toLocaleString的区别
  • CAP 一致性协议及应用解析
  • Django 博客开发教程 8 - 博客文章详情页
  • es6--symbol
  • JavaScript设计模式系列一:工厂模式
  • Markdown 语法简单说明
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • Vue.js 移动端适配之 vw 解决方案
  • 爱情 北京女病人
  • 复习Javascript专题(四):js中的深浅拷贝
  • ​TypeScript都不会用,也敢说会前端?
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (十一)c52学习之旅-动态数码管
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (四)JPA - JQPL 实现增删改查
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)关于多人操作数据的处理策略
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • .Mobi域名介绍
  • .NET Core引入性能分析引导优化
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • .NET正则基础之——正则委托
  • /etc/sudoer文件配置简析
  • ?
  • @Data注解的作用
  • @EventListener注解使用说明
  • [2016.7 test.5] T1
  • [20190401]关于semtimedop函数调用.txt
  • [BUUCTF]-Reverse:reverse3解析
  • [bzoj1006]: [HNOI2008]神奇的国度(最大势算法)
  • [C++]类和对象(中)
  • [CareerCup] 2.1 Remove Duplicates from Unsorted List 移除无序链表中的重复项
  • [codevs 1515]跳 【解题报告】
  • [FZSZOJ 1223] 上海红茶馆
  • [iOS]如何删除工程里面用cocoapods导入的第三方库
  • [js]js设计模式小结
  • [LeeCode]-Divide Two Integers 不用乘除的除法运算
  • [luogu P1527]矩阵乘法(矩形k小)