文档视界 最新最全的文档下载
当前位置:文档视界 › TCP抓包分析

TCP抓包分析

TCP抓包分析
TCP抓包分析

TCP抓包分析

一TCP 格式

源端口:数据发起者的端口号;?

目的端口:数据接收方的端口号;

32bit 序列号: 标识当前数据段的唯一性;

32bit 的确认号:接收数据方返回给发送方的通知;

TCP头部长度为20字节,若TCP头部的Options选项启用,则会增加首部长度,因此TCP是首部变长的传输层协议;

Reserved、Reserved、No nee CWR ECN-Echo 共6bit,保留待用。?

URG1bit 紧急指针位,取值1代表这个数据是紧急数据需加速传递,取值0代表这

是普通数据;?

ACK 1bit确认位,取值1代表这是一个确认的TCP包,取值0则不是确认包;PSH 1bit 紧急位,取值 1 代表要求发送方马上发送该分段,而接收方尽快的将报文交给应用层,不做队列处理。取值0 阿迪表这是普通数据;?

RST 1bit重置位,当TCP收到一个不属于该主机的任何一个连接的数据,则向对方

发一个复位包,此时该位取值为1,若取值为0代表这个数据包是传给自己的;?

SYN 1bit请求位,取值1代表这是一个TCP三次握手的建立连接的包,取值为0 就代表是其他包;?

FIN : 1bit完成位,取值1代表这是一个TCPI断开连接的包,取值为0就代表是其他包;?

Window?Size: 16bit窗口大小,表示准备收到的每个TCP数据的大小;? Checksum 16bit的TCP头部校验,计算TCP头部,从而证明数据的有效性;? Urgent?Pointer : 16bit紧急数据点,当功能bit中的URG取值为1时有效;? Options : TCP的头部最小20个字节。如果这里有设置其他参数,会导致头部增大;? Padding :当TCP头部小于20字节时会出现,不定长的空白填充字段,填充内容都

是0,但是填充长度一定会是32 的倍数;?

Data :被TCP封装进去的数据,包含应用层协议头部和用户发出的数据。

二数据截图

1. 第一个TCP M文:

2. 第二个TCP M文:

3. 第三个TCP M文:

二分析

上面截图的三个TCP报文段表示了TCP连接时的三次握手阶段。

1. 第一个TCP报文

这是要建立连接的客户(我)向服务器发出连接请求段

在TRANSMISSION CONTROL PR0TOCO截图中我们可以知道源端口号也就是主机端口号为50590,而目的端口号为HTTP的80端口,确认号为0 (相对的),而首部长度为32字节,在标志位FLAGS( 0x0002)中,只设置了SYN也就是位同步标志,表示请求建立连接。窗口大小WINDOW SIZ为8192,校验和CHECKSUM 0x553a,说明是正确的。选项是12字节,里面的内容有最大段(MSS大小为1440字节,占4个字节。

2. 第二个TCP报文

这是服务器在收到请求后,发回确认(SYN+ACK。

在TRANSMISSION CONTROL PROTOCO截图中我们可以知道源主机(服务器)端口号为80,目的主机(客户机)端口号为50590, SEQUENCNHJMBER=0,ACK=#部长

度为32字节。在标志位(0x0012)中设置了ACK和SYN其中SYN表示认可连接,ACK 表示对所接受的段的确认。窗口大小(WINDOW SIZ)为5840,校验和(checksum)为

0x646d,表示正确。选项(options )占12字节,其中包括最大段(MSS大小为1460 字节,占4字节。

3. 第三个TCP报文这是客户向服务器发出的确认段源主机(客户机)端口号为50590,

目的主机(服务器)端口号为80,SEQUENCE

NUMBER=1,ACK=<部长度为20字节。标志位(0x0010)中只设置了ACK表示对所接受的段的确认。窗口大小为16560,校验和为0x7b5f,表示正确。这样就完成了TCP连接的建立阶段。没有options 选项。

相关文档