实验六 TCP及应用分析
创始人
2024-04-01 18:56:27
0

我喜欢月亮,月亮不知道

实验六 TCP及应用分析

    • 1.telnet程序和tcp连接分析
    • 2.http协议分析
    • 3.ftp协议分析

文中小鲨鱼是指Wireshark软件
本文参考教材是四川轻化工大学陈年老师所编著的"TCP/IP协议分析教程与实验"
在这里插入图片描述

1.telnet程序和tcp连接分析

目的:在真实网络中使用telnet程序访问dbs站点,观察分析捕获到的tcp通信报文,理解掌握tcp协议的原理和telnet协议工作特点

(1)小鲨鱼过滤tcp.port==23

nslookup bbs.newsmth.net 得到ip为120.92.212.76

telnet bbs.newsmth.net

(2)首先看到从本机到telnet服务器的第一次握手的tcp报文

端口号是23,序列号为0,说明是相对序列号,首部为32字节,是一个有选项的tcp首部
在这里插入图片描述
flag中只有syn为1,window size通告tcp通信的本端可以接收数据大小为64240

紧急指针为0,表示没有紧急数据
在这里插入图片描述
mss最大报文段长:1460

window scale 窗口因子:8,表示窗口大小左移8位(乘256)

SACK选择确认许可

第二次

是从服务器发回给本机的
在这里插入图片描述
源端口23,序列号为0,确认序列号为1

ack为1,syn为1,窗口大小为8129
在这里插入图片描述
mss是1324,窗口因子为5,选择确认许可SACK

第三次

本机发往服务器
在这里插入图片描述
序列号和确认序列号为1

这时,连接就建立好了

(3)点开服务器发的第一个telnet报文
在这里插入图片描述
发送方希望接收方确定终端类型

push置1,因为telnet希望tcp能尽快把协商工作方式命令发送出去

pc继续向服务器发送telnet
在这里插入图片描述
有两条协商命令,确定终端类型,协商窗口大小(终端的命令行方式的窗口大小)

在这里插入图片描述
命令部分有子选项,在刚才确定终端类型的命令基础上要求接收方发来自己的终端类型

echo(回显):服务器希望把接收到的回显给pc

suppress go ahead和echo结合:实现一次一字方式

数据部分就是我们在程序执行时看到的图案的编码

(4)pc向服务器发一个tcp的确认报文,只有54字节,tcp里面数据部分是没有的,ack为1,向它的接收方却认1424序号以前的报文

(5)服务器继续发来后面的telnet数据,以及一个tcp确认报文

(6)pc向服务器发送telnet报文完成前面的有关协商
在这里插入图片描述
第一个子选项确定终端类型,pc向服务器发送自己的终端ansi,同意了suppress go ahead和echo和binary
在这里插入图片描述
协商出了窗口大小的宽和高

(7)服务器最后发一个tcp确认报文

(8)在命令行输g,捕获到四个报文,有两个为telnet,两个为tcp

本机发过去的telnet:只有一个数据g,服务器返回的也一样,验证了一次一字

tcp报文都没有数据

(9)输guest

可以看到社区可以用光标键操作,可以从报文里看到数据,服务器会把有关的数据信息传回来

(10)
在这里插入图片描述
把光标放到"离开水木"点回车,就可以退出

然后会得到tcp四次挥手报文

首先服务器发了一个fin置位的报文,这个报文没有数据,作用是通过首部标志位fin置位通知tcp连接的另一端拆除tcp连接

然后pc给出响应,再发起一个fin置位报文,通告服务器自己也要拆除连接

然后服务器给出响应,就断开站点

2.http协议分析

目的:通过捕获观察在上网时产生的http数据报文更好的理解http协议工作过程

(1)随便选一个站点访问,nslookup www.cnpaf.net,得到ip

过滤(tcp || http) && (ip.addr==123.56.44.131),打开浏览器访问 www.cnpaf.net

(2)首先是pc向服务器发起两次tcp连接请求,分别是64418和64419向web服务的80端口发的syn置1的报文,目的是提高页面数据的传输速率

(3)三次握手之后,浏览器可以通过64425建立的连接发起http请求
在这里插入图片描述
第一部分是请求行

请求方法是get,表示是从服务器是取得相应的资源

请求URI是/,表示根,要和后面的请求头中的主机名称结合起来,描述要访问的资源,在web服务器主机上的位置

版本号是HTTP/1.1,

第二部分是请求头

accept表示终端支持数据类型和语言

UIR表示终端浏览器支持https

user-agent表示终端软件类型

accept encoding表示终端浏览器支持压缩方式

host表示访问名称

connection是keep-alive,表示在一次http请求响应完成后,tcp连接还要持续

响应是在6641帧中

(4)点开6641
在这里插入图片描述
第一部分是状态行

RV是响应版本

SC是状态码,表明服务器处理请求的状况,取值为302,定义是found

RP说明信息现在是redirect,是重定向,指出请求的那个URI位置的资源已经被重定向,迁移到新的位置,新位置在响应头中

第二部分

location:index.html,表示请求的URI资源迁移到这里

下面还写了下一个请求的帧在哪里
在这里插入图片描述
这时pc再次发出get请求,

请求行URI为/index.html,就是重定向调整后的URI

full request URI给出了完整的请求URI

后面的http响应报文由21个tcp报文段重组而成,状态码为200,表明数据传输是成功的

总结:在get请求之后,服务器发回的响应报文是由多个tcp段构成

通信中可能有多个tcp连接以及一个tcp连接中产生多次报文交互,这样报文相互错杂,可用小鲨鱼的追踪流观察

(5)刷新网页

pc在多个端口上向服务器发起tcp连接,里面的get操作和之前分析的差不多,响应报文状态码是304,表明网页没有修改,浏览器会从本地缓存提取网页数据,可提高通信效率

(6)关闭网页

pc在所有端口上向服务器发出RST置1的报文,通知服务器拆除连接

3.ftp协议分析

(1)在防火墙里允许"文件传送程序"

nslookup 一个网址 获得ip

nslookup ftp.sjtu.edu.cn

(2)过滤(tcp || http) && (ip.addr==202.38.97.230 )

命令行输ftp,再open 202.38.97.230

三次握手之后的第一个ftp响应报文

报文由响应行组成,

响应码是220,表示服务就绪

响应传输,表示服务器使用的软件名称

源端口21,目的端口56025

(3)匿名登录

先看用户user报文,user命令表示要登录,参数是用户名

然后服务器给出响应,331是允许匿名登录

然后输入口令,参数是口令

(4)执行各种命令

pwd:看服务器所处位置

cd一个目录,报文里的命令就变成了cwd,切换到该目录下

下载文件,报文中可以看到pc高段端口和服务器的21端口建立连接,pc输入口令,执行CWD/,再执行type A,用ascll传输数据,pc再发出pasv命令,希望ftp工作在被动方式,执行list命令,服务器把数据传过来,然后拆除tccp连接

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...