解码同样数据的SMTP与POP数据包后得到的解码数据怎么会不一致??? SMTP与POP除了命令不一样外,数据上基本是相同的,所以小弟发送同一封邮件,用相同的代码SMTP和POP的数据在网络层(IP包)进行截获,然后用同一个解码模块对SMTP和POP的数据部分进行解码,结果SMTP的数据完全正确,而POP的数据却有时正确有时有问题,或者一部分正常,一部分不正常,经过观察发现有时候POP的数据包有错位的情况发生,比如第10个包错位到了20,原来11一个包到了10的位置,不知道是不是这个原因?请大虾指点。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 哦?还是这个问题阿...做协议分析要一层层来,ip分片比较少见,但tcp次序颠倒是很可能的,比如某个包发送时丢失,tcp会继续发送后边的包,等超时没有正确的ack才重传刚才那个。要判断TCP的SEQUENCE NUMBER,提前到达的包要缓存起来,直到前边缺少的都填满再送给上层处理。 恩,是啊,这个可能是网络延时造成的重发,但是TCP协议的描述是:顺序的无差错的。这个意思是什么?是不是表示是表示层是这样的,而且最迷糊的是为什么SMTP没这样的情况啊? 呵呵,smtp没有是因为运气好。假如你把ip包按到达顺序排列,不做tcp排队的话,smtp也可能会出错。tcp是顺序的无差错的,意思是,即使ip包颠三倒四地到达,tcp保证按正确的次序,无错地送给上层协议。如果不能确定,tcp会假装没有收到东西。而这就是你没做的工作。建议用个链表,把乱序的包存起来,每次向上层报告一个正确的包后,在链表中搜索有无后续包可以接上。 VS2010 输出窗口如何显示错误数和警告数 突然,有个突发奇想 有关ListCtrl的一些问题 用api函数实现像vb中inputbox那样的对话框 关于一组立体图像匹配的问题 Onsize中让窗口不要太小,限制窗口的最小尺寸,最好源码 COM 对象类型辨认问题 为什么这样就“静态链接”了? 我有一个精确定时的ActiveX DLL (ccrpTmr.dll),请问再vc中如何使用它?? 请问为何我做的弹出菜单运行时只显示一小竖条,用鼠标点击后再显示菜单? 请大侠帮忙。如何提取多文档程序中的文档名称 如何在住doc中显示我的一个对话框中的变量
做协议分析要一层层来,ip分片比较少见,但tcp次序颠倒是很可能的,比如某个包发送时丢失,tcp会继续发送后边的包,等超时没有正确的ack才重传刚才那个。
要判断TCP的SEQUENCE NUMBER,提前到达的包要缓存起来,直到前边缺少的都填满再送给上层处理。
tcp是顺序的无差错的,意思是,即使ip包颠三倒四地到达,tcp保证按正确的次序,无错地送给上层协议。如果不能确定,tcp会假装没有收到东西。
而这就是你没做的工作。建议用个链表,把乱序的包存起来,每次向上层报告一个正确的包后,在链表中搜索有无后续包可以接上。