彩信不能发送TCP包分析流程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
彩信不能发送TCP包流程分析正常流程
1.数据包4498,服务器向客户端返回100 Continue;
Next sequence number: 1835
Acknowlegement number: 1003
2.数据包4503,客户端发送消息;
序列号是1003,Ack是1835,Len:293
3.数据包4504,客户端发送数据包
4.数据包4505,服务器返回ACK消息
有问题的服务数据包分析
1.数据包5281,服务器返回100 Continue给客户端
序列号1766,Ack号:1003;
下一个序列号是1835
2.数据包5282,客户端向服务器返回TLSV1.2消息。
序列号:1003,Ack号1835
下一个序列号:1312
此时,服务器端在等待客户端序列号为1312的TCP数据包,但是后来接收到的数据包都不是这个序列号的TCP数据包,因此,导致附件无法上传。
而从这个时间点以后,客户端就没有发送序列号为1312的包给服务器,而且,我们发现从开始发送数据,只能抓到TLSv1.2的数据包,而不能抓到TCP的数据包,因此,应该是网络的某些地方拦截了TCP数据包才导致该问题必现。
序列号为近端发送给远端的数据包大小;
ACK号为近端接收到远端的数据包大小;
SYN数据包大小为1,FIN包大小为1;
ACK数据包大小为0;
HTTPS流程梳理
不做摘要认证流程
图中可以清晰的看到整个HTTP的流程,其中红色为远端到近端,蓝色为近端到远端。
从图中可以看到,整个流程如下:
1.客户端发送POST消息给服务器;
2.服务器解析multipart/form-data字段,发现找不到,直接向客户端返回500 Server Error;
3.服务器还会返回一个错误内容:提示请求消息中不包含multipart/form-data字段;
4.客户端接收到错误内容后,发送POST消息,消息内容中包含multipart/form-data字段;
5.服务器返回100 Continue;
6.客户端发送内容,包含name,filename等信息,还包含文本内容;
7.到流的最后,客户端发送了userid,date,msgid信息;
8.服务器保存附件,返回200 OK,整个附件上传完毕。
之前一直怀疑,为什么返回500 Server Error时,附件还能继续上传?
答:服务器返回500 Server Error后,还返回了一个错误原因,客户端发现是由于消息格式不对,因此会再次发送POST消息,这次的POST消息带了multipart/form-data字段,因此,附件上传继续按照正常流程走。
遗留问题:
在附件上传的过程中,既有TLSV1.2协议的包,也有TCP协议的包,而且都很大,不知道原因何在?
摘要认证POST消息流程
从图中可以看到:
1.客户端发送POST消息到服务器,未带multipart/form-data字段,未带摘要认证信息;
2.服务器检测消息,发现未带摘要认证内容,返回401错误;
3.客户端发送POST消息到服务器,带摘要认证信息,带multipart/form-data字段;
4.服务器返回100 Continue;
5.客户端发送附件,包含name,filename,以及文件内容;
6.到流的最后,客户端发送userid,date,msgid信息;
7.服务器保存附件成功,返回200 OK,整个附件上传完毕。