实验八_传输层 应用层协议分析(笔记)

实验内容:

实验八_传输层 应用层协议分析(笔记)

实验过程:

1.

      1)

实验八_传输层 应用层协议分析(笔记)

实验八_传输层 应用层协议分析(笔记)

2

实验八_传输层 应用层协议分析(笔记)

以管理员运行模式执行以下终端命令:

实验八_传输层 应用层协议分析(笔记)

可知网站ip:123.125.114.144

Dns:114.114.114.114

实验八_传输层 应用层协议分析(笔记)

如上图可知dns解析的是tcp;

   3)

实验八_传输层 应用层协议分析(笔记)

如上图可知;

       HTTP版本号:1.1

实验八_传输层 应用层协议分析(笔记)

可知服务器向浏览器返回的状态码: 200  OK

实验八_传输层 应用层协议分析(笔记)

从上图可知请求的是:/apipic/app/icon5/MobilInputBundLe.ico

数量是1

 

2.

      1)

实验八_传输层 应用层协议分析(笔记)

实验八_传输层 应用层协议分析(笔记)

实验八_传输层 应用层协议分析(笔记)

实验八_传输层 应用层协议分析(笔记)

  • SYN(Synchronize sequence numbers):同步***,用来发起一个连接请求
  • FIN(No more data from sender):表示发送端发送任务已经完成(既断开连接)

原端口/目的端口(16bit)

我们都知道网络之前的通信是不通主机之间的通信,就windows系统而言通过查看任务管理器我们可以知道一台主机有许多进程,当我们发送数据时怎 么知道要发送到对方主机那个进程里呢,所以这就是端口号的作用,在TCP报文中包涵了源端口/目的端口,源端口标识了发送进程,目的端口标识了接收方进 程。在此报文中我们的源端口号是0xc4b7 = 50359, 目的端口是0x01bb = 443如下图所示:

实验八_传输层 应用层协议分析(笔记)

***(32bit):

Sequence Number这个是发送***,用来标识从源端目的端发送的数据字节流,它表示在这个报文端中的第一个数据字节的顺序号,系列号是32位的无符号类型, 序号表达达到2^32 - 1后又从0开始, 当建立一个新的连接时,SYN标志为1,系列号将由主机随机选择一个顺序号ISN(Initial Sequence Number)。此报文中的***是0x2eb35ac1早已超过了2^32 - 1 所以这里的***为0,如下图:

实验八_传输层 应用层协议分析(笔记)

确认号(32bit):

Acknowledgment Number它包涵了发送确认一端所期望收到的下一个顺序号。因此确认***应当是上次成功接收到数据的顺序号加1。只有ACK标志为1时确认序号字段才 有效。TCP为应用层提供全双工服务,这意味着数据能在两个方向上独立的进行传输,因此连接的两端必须要保证每个方向上的传输数据顺序。

窗口大小(16bit):

表示源主机最大能接收多少字节,下图大小是0x2000。

实验八_传输层 应用层协议分析(笔记)

TCP的三次握手和四次挥手

整个过程如下图所示:

实验八_传输层 应用层协议分析(笔记)

TCP的三次握手

Tcp3次握手是如下所示,我们通过分析数据包来验证是否如下图所示:

实验八_传输层 应用层协议分析(笔记)

实验八_传输层 应用层协议分析(笔记)

第一次握手:

主机192.168.1.54向主机42.81.93.34发起连接请求,可以看在这时的SYN被置为1了,***Seq = 0,如下图

实验八_传输层 应用层协议分析(笔记)

第二次握手:

主机42.81.93.34应答主机192.168.1.54,可以看到这个时候的应答包含了SYN,ACK,ACK = Seq + 1 = 1, 这里的Seq是第一次握手发起请求的Seq值,并不是下图报文中红框表示的Seq值。

实验八_传输层 应用层协议分析(笔记)

第三次握手:

主机192.168.1.54应答主机42.81.93.34,可以看到这个时候的应答包是ACK, ACK = Seq + 1 = 1,这里的Seq是第二次握手主机42.81.93.34产生的序列值

实验八_传输层 应用层协议分析(笔记)

实验八_传输层 应用层协议分析(笔记)

实验八_传输层 应用层协议分析(笔记)

实验八_传输层 应用层协议分析(笔记)

至此,便可验证三次握手

TCP四次挥手

实验八_传输层 应用层协议分析(笔记)

第一次挥手

将设客户端首先发起断开连接,那么客户端回想服务端发送FIN置为1TCP包,请求断开连接,意思就是我要断开和你的连接了,但是如果你还有数据没有发送完给我你不必立即关闭连接。

第二次挥手

服务端收到客户端的断开连接请求立即响应一个ACK报文,意思是告诉客户端你发起的断开连接请求我已经收到了,但是我还没有准备好,你在等一会,这个时候服务器端可能还有数据要发送给客户端,也可能正在准备释放资源。这个时候客户端进入FIN_WAIT状态,继续等待服务端的FIN报文。

第三次挥手

服务端确认已经发往客户端的数据已经发送完成,则向客户端发送FIN报文,告诉客户端我已准备好关闭连接了。

第四次挥手

客户端收到服务端的FIN报文后就知道可以关闭连接了,当时它还是不确定,怕服务端还是不知道我要关闭连接了,所以发送一个ACK包后进入TIME_WAIT状态,如果服务端没有收到ACK那么服务端则可以发起重传,如果收到了ACK报文,客户端等待2MSL后已然没有收到回复,则证明服务端已经正常关闭了,那我也就可以关闭连接了。

3.DNS协议分析;

1)

实验八_传输层 应用层协议分析(笔记)

如上图我们可知默认DNS服务器地址是:114.114.114.114

ping www.baidu.com

实验八_传输层 应用层协议分析(笔记)

将自动进行域名解析,默认发送4ICMP报文.

启动Wireshark,选择一个有效网卡,启动抓包.

实验八_传输层 应用层协议分析(笔记)

默认ping一次百度发送4icmp包(数量自己设置,添加选项-n即可设置数量),一次DNS解析,在控制台回车执行完毕后停止监控.

实验八_传输层 应用层协议分析(笔记)

可以发现DNS为应用层协议,下层传输层采用UDP,再下层网络层是IP协议,然后是数据链路层的以太网帧.

2)查询百度的IP及CNAME记录

命令及反馈:

实验八_传输层 应用层协议分析(笔记)

如果没有记录显示,则表示解析不成功

3)使用指定的DNS查询

命令及反馈:

实验八_传输层 应用层协议分析(笔记)

 

 

4)

实验八_传输层 应用层协议分析(笔记)

客服端口:52906

服务器端口是53

查询的类型是:IN(0X0001)

4.OICQ协议分析

1)抓包接口设置成本地连接

点击start,登录qq,输入oicq进行过滤qq包

 

实验八_传输层 应用层协议分析(笔记)

找到第一个OICQ,点击后,点击oicq-IM software

实验八_传输层 应用层协议分析(笔记)

可以看到自己登录的QQ号码为1244657296

本机ip

实验八_传输层 应用层协议分析(笔记)

实验八_传输层 应用层协议分析(笔记)

本机IP=192.168.3.1,第一个是从本机发送到目的IP的,第二个是从服务器返回来的

分析数据报协议

实验八_传输层 应用层协议分析(笔记)

百度qq端口历史:

QQ是通过UDP协议进行数据传输的,8000是腾讯QQ服务器的端口。
早先的版本QQ客户端所用的端口是4000,如果再开第2,3个QQ时会依次打开4001,4002端口。
现在的版本QQ客户端所用的端口是5000,如果再开第2,3个QQ时会依次打开5001,5002端口。
即是qq服务器端口80,客服端动态分配;

实验八_传输层 应用层协议分析(笔记)

如上图查看运行端口55362

这是UDP协议部分的信息,destination port = 8000,这在国内主要是QQ服务器使用的端口号,

Source port:55362这是qq服务端当前使用的端口

分析以太网(数据链路层)

实验八_传输层 应用层协议分析(笔记)

如上图可知ip src:192.168.3.1 && ip des:182.254.33.149

实验八_传输层 应用层协议分析(笔记)

如上图可知Hangzhou_8d:28:3c(0c:da:41:8d:28:3c) 表明路由器厂商是杭州的一个厂商

实验八_传输层 应用层协议分析(笔记)

如上图可知qq传输数据是加了密的;使用的hash单向加密,所以我们查看上述这样的qq数据流是乱码的,哈哈。

5.

1

    实验八_传输层 应用层协议分析(笔记)

实验八_传输层 应用层协议分析(笔记)

我要分析的DHCP包如下:

实验八_传输层 应用层协议分析(笔记)

2)DHCP发现包:

实验八_传输层 应用层协议分析(笔记)

从以上图可知,客服端目前没有ip地址,因为发现阶段是以广播的形式发送。也就是网络上的DHCP服务器都是可以收到此数据包。

现在我们分析包里面各选项的值的情况如下:

实验八_传输层 应用层协议分析(笔记)

从以上图可知:DHCP消息类型是53;客服端标识符:长度为7,硬件类型以太网0x01等信息都可获取

3)分析DHCP提供阶段数据

实验八_传输层 应用层协议分析(笔记)

各选项分析:

实验八_传输层 应用层协议分析(笔记)

4)DHCP请求包分析:

实验八_传输层 应用层协议分析(笔记)

各选项分析:

实验八_传输层 应用层协议分析(笔记)

5)DHCP确认包分析:

实验八_传输层 应用层协议分析(笔记)

各选项分析:

实验八_传输层 应用层协议分析(笔记)

以上就是DHCP的四个阶段

  1. 实验注意事项:

1)HTTP协议分析较难,在此只是进行简单的分析;注意抓包之前清空arp表与刷新dns

2)TCP协议中的三次握手,四次挥手要先掌握原理,然后进行抓包分析,这样易上手

3)DNS主要使用nslookup命令进行相关信息查询

4)OICQ即qq使用的协议,在抓取的相关包中,可以清楚的查看相关各项信息,需要注意的是,该协议是单向加密,打个比方,即用户编辑的信息是A,发送到服务器为B,A->B是通过相应的**进行加密,这只有生产,**的人可知,其他角色无法获取

4)对于DHCP我们只要理解到它的四个阶段;分别是发现,提供,请求,确认即可

  1. 实验参考资料:

1)https://blog.****.net/qq_39290490/article/details/81784324

2)https://www.cnblogs.com/jiangzhaowei/p/7998515.html

3) https://www.cnblogs.com/kabi/p/6113768.html

4)https://blog.****.net/qq_40770143/article/details/84347364

5)https://wenku.baidu.com/view/e62e588fbe23482fb5da4cce.html